From b4defd9c400bd5d7c581e84fa5eb14219100407f Mon Sep 17 00:00:00 2001 From: kn0wmad Date: Thu, 3 Nov 2022 15:44:03 -0600 Subject: [PATCH 1/2] Minor copy change and SDK doc fix --- poetry.lock | 321 +++++++++++++++--- .../developer-docs/getting-started/sdk.rst | 4 +- site/source/index.rst | 19 +- 3 files changed, 281 insertions(+), 63 deletions(-) diff --git a/poetry.lock b/poetry.lock index eb20817..37ff91e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -98,7 +98,7 @@ optional = false python-versions = "*" [package.extras] -test = ["hypothesis (==3.55.3)", "flake8 (==3.7.8)"] +test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] [[package]] name = "docutils" @@ -409,8 +409,8 @@ python-versions = ">=3.7" sphinx = ">=3" [package.extras] -test = ["pytest", "pre-commit"] doc = ["alabaster"] +test = ["pre-commit", "pytest"] [[package]] name = "sphinx-copybutton" @@ -424,8 +424,8 @@ python-versions = ">=3.6" sphinx = ">=1.8" [package.extras] -rtd = ["sphinx-book-theme", "myst-nb", "ipython", "sphinx"] code_style = ["pre-commit (==2.12.1)"] +rtd = ["sphinx", "ipython", "myst-nb", "sphinx-book-theme"] [[package]] name = "sphinx-multiversion-scylla" @@ -526,8 +526,8 @@ optional = false python-versions = ">=3.5" [package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] test = ["pytest"] -lint = ["docutils-stubs", "mypy", "flake8"] [[package]] name = "sphinxcontrib-devhelp" @@ -538,8 +538,8 @@ optional = false python-versions = ">=3.5" [package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] test = ["pytest"] -lint = ["docutils-stubs", "mypy", "flake8"] [[package]] name = "sphinxcontrib-htmlhelp" @@ -550,8 +550,8 @@ optional = false python-versions = ">=3.6" [package.extras] -test = ["html5lib", "pytest"] -lint = ["docutils-stubs", "mypy", "flake8"] +lint = ["flake8", "mypy", "docutils-stubs"] +test = ["pytest", "html5lib"] [[package]] name = "sphinxcontrib-jsmath" @@ -562,7 +562,7 @@ optional = false python-versions = ">=3.5" [package.extras] -test = ["mypy", "flake8", "pytest"] +test = ["pytest", "flake8", "mypy"] [[package]] name = "sphinxcontrib-qthelp" @@ -573,8 +573,8 @@ optional = false python-versions = ">=3.5" [package.extras] +lint = ["flake8", "mypy", "docutils-stubs"] test = ["pytest"] -lint = ["docutils-stubs", "mypy", "flake8"] [[package]] name = "sphinxcontrib-serializinghtml" @@ -601,7 +601,7 @@ requests = "*" Sphinx = ">=0.6" [package.extras] -doc = ["furo", "sphinx-copybutton"] +doc = ["sphinx-copybutton", "furo"] [[package]] name = "tornado" @@ -669,59 +669,278 @@ python-versions = "^3.7" content-hash = "95d7a496b22ba873ce8df134690fe30b3fac088d4fe393bd505e025598d55711" [metadata.files] -alabaster = [] -argh = [] +alabaster = [ + {file = "alabaster-0.7.12-py2.py3-none-any.whl", hash = "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359"}, + {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"}, +] +argh = [ + {file = "argh-0.26.2-py2.py3-none-any.whl", hash = "sha256:a9b3aaa1904eeb78e32394cd46c6f37ac0fb4af6dc488daa58971bdc7d7fcaf3"}, + {file = "argh-0.26.2.tar.gz", hash = "sha256:e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65"}, +] atomicwrites = [] attrs = [] babel = [] -beautifulsoup4 = [] +beautifulsoup4 = [ + {file = "beautifulsoup4-4.11.1-py3-none-any.whl", hash = "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30"}, + {file = "beautifulsoup4-4.11.1.tar.gz", hash = "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"}, +] certifi = [] charset-normalizer = [] colorama = [] -commonmark = [] -docutils = [] +commonmark = [ + {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, + {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, +] +docutils = [ + {file = "docutils-0.17.1-py2.py3-none-any.whl", hash = "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61"}, + {file = "docutils-0.17.1.tar.gz", hash = "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125"}, +] idna = [] -imagesize = [] +imagesize = [ + {file = "imagesize-1.4.1-py2.py3-none-any.whl", hash = "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b"}, + {file = "imagesize-1.4.1.tar.gz", hash = "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a"}, +] importlib-metadata = [] -jinja2 = [] -livereload = [] -markupsafe = [] +jinja2 = [ + {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"}, + {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"}, +] +livereload = [ + {file = "livereload-2.6.3.tar.gz", hash = "sha256:776f2f865e59fde56490a56bcc6773b6917366bce0c267c60ee8aaf1a0959869"}, +] +markupsafe = [ + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, + {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, +] more-itertools = [] -packaging = [] -pathtools = [] -pluggy = [] -port-for = [] -py = [] +packaging = [ + {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"}, + {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"}, +] +pathtools = [ + {file = "pathtools-0.1.2.tar.gz", hash = "sha256:7c35c5421a39bb82e58018febd90e3b6e5db34c5443aaaf742b3f33d4655f1c0"}, +] +pluggy = [ + {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, + {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, +] +port-for = [ + {file = "port-for-0.3.1.tar.gz", hash = "sha256:b16a84bb29c2954db44c29be38b17c659c9c27e33918dec16b90d375cc596f1c"}, +] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] pygments = [] -pyparsing = [] -pytest = [] +pyparsing = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] +pytest = [ + {file = "pytest-5.4.3-py3-none-any.whl", hash = "sha256:5c0db86b698e8f170ba4582a492248919255fcd4c79b1ee64ace34301fb589a1"}, + {file = "pytest-5.4.3.tar.gz", hash = "sha256:7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8"}, +] pytz = [] -pyyaml = [] -recommonmark = [] -requests = [] -six = [] -snowballstemmer = [] -soupsieve = [] -sphinx = [] -sphinx-autobuild = [] -sphinx-collapse = [] -sphinx-copybutton = [] -sphinx-multiversion-scylla = [] +pyyaml = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] +recommonmark = [ + {file = "recommonmark-0.5.0-py2.py3-none-any.whl", hash = "sha256:c85228b9b7aea7157662520e74b4e8791c5eacd375332ec68381b52bf10165be"}, + {file = "recommonmark-0.5.0.tar.gz", hash = "sha256:a520b8d25071a51ae23a27cf6252f2fe387f51bdc913390d83b2b50617f5bb48"}, +] +requests = [ + {file = "requests-2.28.1-py3-none-any.whl", hash = "sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349"}, + {file = "requests-2.28.1.tar.gz", hash = "sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +snowballstemmer = [ + {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"}, + {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"}, +] +soupsieve = [ + {file = "soupsieve-2.3.2.post1-py3-none-any.whl", hash = "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759"}, + {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"}, +] +sphinx = [ + {file = "Sphinx-4.5.0-py3-none-any.whl", hash = "sha256:ebf612653238bcc8f4359627a9b7ce44ede6fdd75d9d30f68255c7383d3a6226"}, + {file = "Sphinx-4.5.0.tar.gz", hash = "sha256:7bf8ca9637a4ee15af412d1a1d9689fec70523a68ca9bb9127c2f3eeb344e2e6"}, +] +sphinx-autobuild = [ + {file = "sphinx-autobuild-0.7.1.tar.gz", hash = "sha256:66388f81884666e3821edbe05dd53a0cfb68093873d17320d0610de8db28c74e"}, + {file = "sphinx_autobuild-0.7.1-py2-none-any.whl", hash = "sha256:e60aea0789cab02fa32ee63c7acae5ef41c06f1434d9fd0a74250a61f5994692"}, +] +sphinx-collapse = [ + {file = "sphinx_collapse-0.1.2-py3-none-any.whl", hash = "sha256:7a2082da3c779916cc4c4d44832db3522a3a8bfbd12598ef01fb9eb523a164d0"}, + {file = "sphinx_collapse-0.1.2.tar.gz", hash = "sha256:a186000bf3fdac8ac0e8a99979f720ae790de15a5efc1435d4816f79a3d377c2"}, +] +sphinx-copybutton = [ + {file = "sphinx-copybutton-0.5.0.tar.gz", hash = "sha256:a0c059daadd03c27ba750da534a92a63e7a36a7736dcf684f26ee346199787f6"}, + {file = "sphinx_copybutton-0.5.0-py3-none-any.whl", hash = "sha256:9684dec7434bd73f0eea58dda93f9bb879d24bff2d8b187b1f2ec08dfe7b5f48"}, +] +sphinx-multiversion-scylla = [ + {file = "sphinx-multiversion-scylla-0.2.10.tar.gz", hash = "sha256:b54d664ecedcf45b98d6be1e939eac596719daa514e4a35f58d8e6330fb05d22"}, +] sphinx-notfound-page = [] -sphinx-scylladb-theme = [] -sphinx-sitemap = [] -sphinx-substitution-extensions = [] -sphinx-tabs = [] -sphinxcontrib-applehelp = [] -sphinxcontrib-devhelp = [] -sphinxcontrib-htmlhelp = [] -sphinxcontrib-jsmath = [] -sphinxcontrib-qthelp = [] -sphinxcontrib-serializinghtml = [] -sphinxcontrib-youtube = [] -tornado = [] +sphinx-scylladb-theme = [ + {file = "sphinx-scylladb-theme-1.2.1.tar.gz", hash = "sha256:55923651acb74988755fd818175999e953e018d372cb778dd5120b03f71fe5ab"}, + {file = "sphinx_scylladb_theme-1.2.1-py3-none-any.whl", hash = "sha256:2666a6990c87c9601beb0c49f118e87d03b27c248ad263e553c3c9dbd9247ec9"}, +] +sphinx-sitemap = [ + {file = "sphinx-sitemap-2.1.0.tar.gz", hash = "sha256:ba3576f38e8d1cabde483dabed2cc2b958af85ff97f2a4442f990b02e967d6a5"}, +] +sphinx-substitution-extensions = [ + {file = "Sphinx Substitution Extensions-2022.2.16.tar.gz", hash = "sha256:ff7d05bd00e8b2d7eb8a403b9f317d70411d4e9b6812bf91534a50df22190c75"}, + {file = "Sphinx_Substitution_Extensions-2022.2.16-py3-none-any.whl", hash = "sha256:5a8ca34dac3984486344e95c36e3ed4766d402a71bdee7390d600f153db9795b"}, +] +sphinx-tabs = [ + {file = "sphinx-tabs-3.4.0.tar.gz", hash = "sha256:75e97ce10b74700deaf87b662539a293c8afc9dfa9d21f126b860118064cb0c5"}, + {file = "sphinx_tabs-3.4.0-py3-none-any.whl", hash = "sha256:31dbe7594b5ef4cfa76a7960448d4607dca167ff21467000213920572c302072"}, +] +sphinxcontrib-applehelp = [ + {file = "sphinxcontrib-applehelp-1.0.2.tar.gz", hash = "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58"}, + {file = "sphinxcontrib_applehelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a"}, +] +sphinxcontrib-devhelp = [ + {file = "sphinxcontrib-devhelp-1.0.2.tar.gz", hash = "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"}, + {file = "sphinxcontrib_devhelp-1.0.2-py2.py3-none-any.whl", hash = "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e"}, +] +sphinxcontrib-htmlhelp = [ + {file = "sphinxcontrib-htmlhelp-2.0.0.tar.gz", hash = "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2"}, + {file = "sphinxcontrib_htmlhelp-2.0.0-py2.py3-none-any.whl", hash = "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07"}, +] +sphinxcontrib-jsmath = [ + {file = "sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8"}, + {file = "sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178"}, +] +sphinxcontrib-qthelp = [ + {file = "sphinxcontrib-qthelp-1.0.3.tar.gz", hash = "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"}, + {file = "sphinxcontrib_qthelp-1.0.3-py2.py3-none-any.whl", hash = "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6"}, +] +sphinxcontrib-serializinghtml = [ + {file = "sphinxcontrib-serializinghtml-1.1.5.tar.gz", hash = "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"}, + {file = "sphinxcontrib_serializinghtml-1.1.5-py2.py3-none-any.whl", hash = "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd"}, +] +sphinxcontrib-youtube = [ + {file = "sphinxcontrib-youtube-1.2.0.tar.gz", hash = "sha256:f468b76550e926c6d918c97b921d6ccc8ec6bc13004746dea309788ea9268991"}, + {file = "sphinxcontrib_youtube-1.2.0-py3-none-any.whl", hash = "sha256:fcc9301b5df3269597310c1ab41806b25fb7bfe41b0344aa8871dbd820d08ca4"}, +] +tornado = [ + {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"}, + {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash = "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"}, + {file = "tornado-6.2-cp37-abi3-win32.whl", hash = "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"}, + {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, + {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, +] typing-extensions = [] urllib3 = [] -watchdog = [] -wcwidth = [] +watchdog = [ + {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a735a990a1095f75ca4f36ea2ef2752c99e6ee997c46b0de507ba40a09bf7330"}, + {file = "watchdog-2.1.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b17d302850c8d412784d9246cfe8d7e3af6bcd45f958abb2d08a6f8bedf695d"}, + {file = "watchdog-2.1.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ee3e38a6cc050a8830089f79cbec8a3878ec2fe5160cdb2dc8ccb6def8552658"}, + {file = "watchdog-2.1.9-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64a27aed691408a6abd83394b38503e8176f69031ca25d64131d8d640a307591"}, + {file = "watchdog-2.1.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:195fc70c6e41237362ba720e9aaf394f8178bfc7fa68207f112d108edef1af33"}, + {file = "watchdog-2.1.9-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:bfc4d351e6348d6ec51df007432e6fe80adb53fd41183716017026af03427846"}, + {file = "watchdog-2.1.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8250546a98388cbc00c3ee3cc5cf96799b5a595270dfcfa855491a64b86ef8c3"}, + {file = "watchdog-2.1.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:117ffc6ec261639a0209a3252546b12800670d4bf5f84fbd355957a0595fe654"}, + {file = "watchdog-2.1.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:97f9752208f5154e9e7b76acc8c4f5a58801b338de2af14e7e181ee3b28a5d39"}, + {file = "watchdog-2.1.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:247dcf1df956daa24828bfea5a138d0e7a7c98b1a47cf1fa5b0c3c16241fcbb7"}, + {file = "watchdog-2.1.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:226b3c6c468ce72051a4c15a4cc2ef317c32590d82ba0b330403cafd98a62cfd"}, + {file = "watchdog-2.1.9-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d9820fe47c20c13e3c9dd544d3706a2a26c02b2b43c993b62fcd8011bcc0adb3"}, + {file = "watchdog-2.1.9-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:70af927aa1613ded6a68089a9262a009fbdf819f46d09c1a908d4b36e1ba2b2d"}, + {file = "watchdog-2.1.9-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ed80a1628cee19f5cfc6bb74e173f1b4189eb532e705e2a13e3250312a62e0c9"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_aarch64.whl", hash = "sha256:9f05a5f7c12452f6a27203f76779ae3f46fa30f1dd833037ea8cbc2887c60213"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_armv7l.whl", hash = "sha256:255bb5758f7e89b1a13c05a5bceccec2219f8995a3a4c4d6968fe1de6a3b2892"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_i686.whl", hash = "sha256:d3dda00aca282b26194bdd0adec21e4c21e916956d972369359ba63ade616153"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_ppc64.whl", hash = "sha256:186f6c55abc5e03872ae14c2f294a153ec7292f807af99f57611acc8caa75306"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:083171652584e1b8829581f965b9b7723ca5f9a2cd7e20271edf264cfd7c1412"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_s390x.whl", hash = "sha256:b530ae007a5f5d50b7fbba96634c7ee21abec70dc3e7f0233339c81943848dc1"}, + {file = "watchdog-2.1.9-py3-none-manylinux2014_x86_64.whl", hash = "sha256:4f4e1c4aa54fb86316a62a87b3378c025e228178d55481d30d857c6c438897d6"}, + {file = "watchdog-2.1.9-py3-none-win32.whl", hash = "sha256:5952135968519e2447a01875a6f5fc8c03190b24d14ee52b0f4b1682259520b1"}, + {file = "watchdog-2.1.9-py3-none-win_amd64.whl", hash = "sha256:7a833211f49143c3d336729b0020ffd1274078e94b0ae42e22f596999f50279c"}, + {file = "watchdog-2.1.9-py3-none-win_ia64.whl", hash = "sha256:ad576a565260d8f99d97f2e64b0f97a48228317095908568a9d5c786c829d428"}, + {file = "watchdog-2.1.9.tar.gz", hash = "sha256:43ce20ebb36a51f21fa376f76d1d4692452b2527ccd601950d69ed36b9e21609"}, +] +wcwidth = [ + {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, + {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, +] zipp = [] diff --git a/site/source/developer-docs/getting-started/sdk.rst b/site/source/developer-docs/getting-started/sdk.rst index a834c7c..c9c6c6c 100644 --- a/site/source/developer-docs/getting-started/sdk.rst +++ b/site/source/developer-docs/getting-started/sdk.rst @@ -25,13 +25,13 @@ embassy-sdk init Initialize the developer key for interacting with the SDK. -By default, this creates the developer key at `/etc/embassy`. You might need to change ownership of this folder depending on your system permissions. +By default, this creates the developer key at `$HOME/embassy`. You might need to change ownership of this folder depending on your system permissions. .. code:: bash chown /etc/embassy -Alternatively, you can write a config file with your desired developer location, it simply needs the following format: +Alternatively, you can write a config file with your desired developer key location, it simply needs the following format: .. code:: yaml diff --git a/site/source/index.rst b/site/source/index.rst index a70e37e..0422042 100644 --- a/site/source/index.rst +++ b/site/source/index.rst @@ -7,7 +7,7 @@ .. hero-box:: :title: Welcome - Here you will find documentation about embassyOS, including DIY guides, user manuals, and developer docs. Welcome to the era of sovereign computing. Anyone can do it. No one can stop it. + Here you will find information on embassyOS, including DIY guides, user manuals, and developer docs. Welcome to the era of sovereign computing. Anyone can do it. No one can stop it. .. raw:: html @@ -46,15 +46,6 @@ Read our FAQ and learn about platform concepts -.. topic-box:: - :title: Developer Docs - :link: developer-docs - :icon: scylla-icon scylla-icon--open-source - :class: large-4 - :anchor: View - - Package a service for the Embassy Marketplace - .. topic-box:: :title: Contribute :link: contribute @@ -64,6 +55,14 @@ Use your skills to add to the Start9 ecosystem +.. topic-box:: + :title: Developer Docs + :link: developer-docs + :icon: scylla-icon scylla-icon--open-source + :class: large-4 + :anchor: View + + Package a service for the Embassy Marketplace .. raw:: html From 63a7142effd9357a95deaad5bea41c61f999bab5 Mon Sep 17 00:00:00 2001 From: kn0wmad Date: Thu, 3 Nov 2022 18:01:31 -0600 Subject: [PATCH 2/2] Dev docs refactor --- site/source/_static/images/dev/nc-install.png | Bin 0 -> 36523 bytes site/source/_static/images/dev/nc-service.png | Bin 0 -> 193509 bytes .../build-package-example/01_setup.rst | 34 -- .../02_create-service.rst | 80 ---- .../03_hardware-compile.rst | 39 -- .../build-package-example/04_docker-build.rst | 77 ---- .../05_create-manifest.rst | 257 ----------- .../06_create-assets.rst | 56 --- .../build-package-example/07_create-s9pk.rst | 23 - .../08_create-makefile.rst | 92 ---- .../09_create-wrapper.rst | 65 --- .../10_install-package.rst | 65 --- .../build-package-example/index.rst | 122 ------ .../build-package-example/resources.rst | 35 -- .../getting-started/environment-setup.rst | 97 ----- .../developer-docs/getting-started/index.rst | 62 --- .../developer-docs/getting-started/sdk.rst | 97 ----- site/source/developer-docs/index.rst | 54 +-- site/source/developer-docs/packaging.rst | 402 ++++++++++++++++++ .../checklist.rst | 2 +- .../developer-docs/specification/index.rst | 1 + site/source/index.rst | 2 +- 22 files changed, 414 insertions(+), 1248 deletions(-) create mode 100644 site/source/_static/images/dev/nc-install.png create mode 100644 site/source/_static/images/dev/nc-service.png delete mode 100644 site/source/developer-docs/build-package-example/01_setup.rst delete mode 100644 site/source/developer-docs/build-package-example/02_create-service.rst delete mode 100644 site/source/developer-docs/build-package-example/03_hardware-compile.rst delete mode 100644 site/source/developer-docs/build-package-example/04_docker-build.rst delete mode 100644 site/source/developer-docs/build-package-example/05_create-manifest.rst delete mode 100644 site/source/developer-docs/build-package-example/06_create-assets.rst delete mode 100644 site/source/developer-docs/build-package-example/07_create-s9pk.rst delete mode 100644 site/source/developer-docs/build-package-example/08_create-makefile.rst delete mode 100644 site/source/developer-docs/build-package-example/09_create-wrapper.rst delete mode 100644 site/source/developer-docs/build-package-example/10_install-package.rst delete mode 100644 site/source/developer-docs/build-package-example/index.rst delete mode 100644 site/source/developer-docs/build-package-example/resources.rst delete mode 100644 site/source/developer-docs/getting-started/environment-setup.rst delete mode 100644 site/source/developer-docs/getting-started/index.rst delete mode 100644 site/source/developer-docs/getting-started/sdk.rst create mode 100644 site/source/developer-docs/packaging.rst rename site/source/developer-docs/{getting-started => specification}/checklist.rst (97%) diff --git a/site/source/_static/images/dev/nc-install.png b/site/source/_static/images/dev/nc-install.png new file mode 100644 index 0000000000000000000000000000000000000000..5c34fd2e0699914643e9b0660e16ccbd62b65ba8 GIT binary patch literal 36523 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 literal 0 HcmV?d00001 diff --git a/site/source/_static/images/dev/nc-service.png b/site/source/_static/images/dev/nc-service.png new file mode 100644 index 0000000000000000000000000000000000000000..51d6e731587627fceb42fc05ece63dc25d212653 GIT binary patch literal 193509 zcmZU)1z40p_c%(IbVxTyNp~&?2#ACt-Q6q=QVY^u0;0f@A|)MCi*yM{cOytQyX>-i z@%w)NxcBZn@AJ;i%$a#-&Y78$@w(b-L{%Up%Ay zL>KC|P-R@`|AX%L{4(!vU3Vp{ng~tZ2W)&LB|SZ5*Uh*7vW9#$2R&Pez`%*ID<&sz z=a_VVj9j<%B&>2d%`v`$d9LNZWkk3hT9dR$&p?CcA-}---4x*2lfsAj{$2PRjW+~2 z5d|-f6{V3!s5gx9cG@|xXEld0xwx@9Qk_|nZtG;H5}Y5;3w~A5ftML-FI49!60xE* zdp$z6H1Plg!8=4jl@X$UwH`zx^VhS+1yt;Lr$fidIHT0Qf?0TN3E97(j*|=mFx;%_ zl1F5C=7-0+Eh!_#G`2{MePhlEs-UI%@OcQ(Xu*HqdKKBHW&TAWs!`1M*K9M=F+P-d zA)zRD`Ocov-qFKPrN+yV%;c8;$ezpux6m7CT&p@(nWuP#X_f^*(=M=OE;~4neOzt> zdm{}8EiE+O$2=YydaN@V)?*I+@u7Qs9zccbR(t0gp3v?H-wgcMO3k14*{sTdi3zT`x zy4(9&vjn=kdHBc#%Cr5ah0J6AU$Gz?%YT~qy2`T|Y3Z^k1HJ88Bm{&6gxC}aSXfx( zyzLxh-m1L(AMnS2@@!7NzMe9If&l>m0s*1|KyODuVQFb;K_L-A5fT2!7W_W%J$$VL z`8|Bt|J%v`>PN-i$JX1~)7Kg3!Sb(PYa5`SuRI&uzk&Yu@4w$^AL#slM)L6apJ_c# zQ1D-kps;|D;Q#LX5mfG9sf@03puL;1inIIU@;r{AAT1^=_n-FvzncFu;{OF{^nV~F z{@;-QSIz$yQs2kkTN&v7IHa$_|G~`v4Eujq{tuv>;J=ywUn}w7W&Tg;<2ox4$O-;$ zoGB3Wy#b%1p(&zis3^S)L_ZG2FU;0&zLgR6{G>$8jfY1pMY8$vS)7E^#6tVTXXQJC zui5Jj47{46&B$?)F|wh^vy3#BKTLi0 zJWkH{^H4L0XRp-kSy_>A%(_z!I{+LDA_TWdUO4n`3#xsq#sv(MJoHI8FK=(62JcpGQLAXZsuG-;B@ozG=Z z&zL$e`{ZD1nIe+%RJr@(i!62h#k%lzf`{0LXw(Qj<=2K16@;~&Zg?E@%N0e5!!CFj zGG2l~JHmtkVliraVbW*0*O^omo}q~Ac;3VUhYIx2C5RB{M6+CAX)SYL1`8yu^k><5 zY6GTWWUn|Xz%^$3!oM6zM>6LbE-T`uK#R<4(Z~-2`5$DN&VAA=`%sjgY)BPEG|tD7 zO={^O?j1Wo0wQww=Sa-Qip&N!lqMNHC6YUq)2XLGp)UK)lw6x9aa!UkE)3W7j$^L= z*{}T~0iSdJ5d!=tDf@M4L_K<0i)G3QtBeLmY2YR;>=UKf$RkK64eQ>~IvS-w+chmA=mJ zelvxbp0y$qlX*8AZ?(daICE##L=3yO{!t$+bd52f9$N%jQeR{~VSmJPYVX$}9IebN zsqI>C>PW|3=GNGcdb#Q!{hitWGgikiv}%=WXH|tE!wbyHS&KLA9j=s{hM$_7)cLaC zse1GIX77VTO~V$a5c@o~0#*?#*o63jI$7Y6igc_aSaD?wHsAN4QCx6s19!oBwtDwT zh$EpF8|V!lAN4Rnq-i`EGJ~6Ur3`ACuXS*Pd+k5@k(1l)U1(-WQfJ|A_J@nZwn%_m zVqv+GKFWA%xOt-Y5z)12WasS6=XkKU1isrQ1P@$VJwm<616Jawx}qyehEL*KAX>Jd z=S2x@$Q~PSLdVi%=odD=nn(f4M=Gp^BV20Rv3hc@J>3tGd0*@AJF^G9EF$yB&+*V-0maEkV6Ng7ekDF znB`W4@3t+^*^w`i*5mIsU#|>9E~&%NU$A+FDCKjMdr1-?(1|_<2db(^cqA0fM-sTd za+ygo$8gd8Hu_{kKr{=t^pD)7M%sG4jmXZ7x`p;18S!uUup(3)D&@(*$<9`q=PX z{-~A?ine>ijn#;pNOrMTH6yY&k`wf#3wQZ91Kh^W%i1=-l$ z0XggE=Q5{HCzPZ)&>|8zcj5?%$Q2jd+R1t6b`|mK^|DhosF(yU^wRJx?uv~WI3fpaanxMS8tx5Fb zZtO*|Ap--Gp!EO9#x}l(`RFMq%Vk{~`g&MdFSg$nX@Wi*3K_SO zZbvmIDYB<&%u4hMI7^8My{J<1LH^dvIDlA&8_PRlOhQ!s9H`%NNqv`@?$xekd+e%x z-v~s3;u8g53-L+Yph9yIt^5W#>16>W>`4OUYu#aQKtHi*C8I52YP|txYX#ZZQcSE_ z-H!VUByJHZWiJ1?AQehW;Qwh^Uzx~uyqhy|hy zv7WC$Y0um5oYdIX{+usz1@N6sMRzsEls&2TM|QLX&SRMhop63Z-CniWEmtYD_%oq0 z1~iYUA<$^X;MI%y#l<%7haCneY!l`NzM33s30S+~qObcK?&k)gp~vAez5lkv%t#oz zk@hgDU$->~rU5O2ppS`FQ1p$cWqDLrJG2U#K=bnH2fz6bDXflCaFd-B?uPI(rXOk$=i%HXkA18UQWP?t$eHWqQvqk>Cu$C zE$+($duNS``$~Zq=v0jDhkE9XWjE{hiZ{W3SDkN9pMaW-1y`N@uD-&Aeka(L7B?hx z*{r2*G&}p>|1Do>UNCpvfZiMX!>Dp<-*s!_PAZ?8b^Haan6JMo)1`{w@y$AZT_|uT ze)lD^r{TjxM2fva3yB4aZ`iPQ9)W;=nzuo?@_>}DQMV}oRuJPoXb~V*_veBO0fz1D zP=FpaH-7Qr`V~sH@dXbyM9~dW| z*k-LPaFmOfPFbs-{LZyF*uk)$ZwKnSGdXIAyj!KK=idv5wrR2B49E)9Z@u378VvTp zyn}t#q79DJ0$tL%8p-YVF#_&|edeFbUPNUc3*N0cPNJ^Bw|B9qZtsT@xWZM!Ab%c; zRXKL?TY8CGrj|tgQsYJ|wPn~+LEtfd74X~GpOTBSrXB4T`BU2t=W&|M3^V?*BoLgj zWua_?9@sYW@>r(#7SYc%UwbxaVDQ$#vEV(93G}U@W$n^y;|jN!s%LzHe2wx7_2ur6 zHRAb3Lz3W=Ij`GVYRe``uGe*gF*v`WR(=>>$0sI@kk8$rZjjKsMx{s`V`b&8F4!NH z;LV@7LK9260|~bP-(k{~&`J5@`7gjn&=KX8cF_ZPyYrHivyQWK=mX zL&)tDw?<@5#gRX!_IP^Pq^hQ-FV?&6zTEF@iNZS+v4jkCSe-RwKuPcCxudYu z6)s9MIUu(CF0v11w&!D+Ig(1^5uI4 z3~9!a*M4Rt8(N*uSHqDxhsN|DGniD8KhfKfT`Qi{zn2!E1->8FadX*lcR!5GsXWD; z0}O=^G@IK%9@fsz3y1MKF1~&_?!hFfQ%%e+%)sP5+;Bt_#*yf)guzf-B!czGK&Pn2 z;KZl=-rY79HkMeP?N_M*OG>zmPNEJIQ9N0T8JwEOQJLCJkTsNK@K!YS@zQ>Q)@Wa< zVNT8pFwBQvVPR<}6`-wgi@2Ix@|l!(T-o&Fex!j;^U#|)?y`d1(z!3Qf|yVSD^NRJ zpyTxZNLU%FiRK>e{u`~-*8d!FmY2#^a#sIvw=(&(q?Uno($u1n{nyEv=>{U3(I0Bv zvJz+RemEPT7#E}qS`etKX`zdu?F1Zl^whL&yc{UxcMbh1klmYp*C(qyR~gfwVo>M@ z!wPT3Xqw0s9co#$@j37lK9DBO0WB8AE}pb*q>Mog)k$P5)3Wzuby|#~L*^obq+w%V z)T*T;?st`@inENg{-_WDst819`yU>T*#RBLC_1dhGYU=V7iIB45G4p*r>)NQM{t4f ztaY_qeR?lIfs}!YK)2VJ1X-U!RlSpzD>fV6`6E^Q@S2q@psCvOQW7?PSACYEhF>Q< zLI$lbPyV!bWfy15i&Lm$qPg>I5tIB{CWVosl+=@h`E4TEPyG`22DpX<)RV(6`zZ6E zjQ?0Kx|ACGs8ru=K#D5-8__*AMMg0XU_W$U7R@p7WLi^@>h9@Yqah_P0d>G3Px)fD zsk_GzGYCU*&Su0z02M?39k&pkyym}h;uL;6OZ4e=ff#M0bNPzjr<#>-hJwjCjM8VF zS7;#)EBX+q^eDHo$tyVD=%m;?rG4!=|2r_sPI9wizv_ECfel{gn<9lB*8KaI@Y6ep zqZ*S})cx`*Qt=>RD&+`ON}p1Nh53!Nk_Hri&5?#O*9{1Tfx9@=Pd(K_q+tu$1cr@4B} zeOBVB#l&2d=DYOKcRyd{VIz-TZ(Um-<%GTGUCMU#P>Kv~c!y6A*#B^&g?t9?nhGMK zt%2W5eKG9qKnQhw{QmdpVC6(kah_t@OfXF_`_E!Raz&x!y0$s1pEyknfD3|KNxEBU zdhdRnQks^m&t+=!nZAsF!Q+csjxL&B?{5;hz=T3qJgZ!Ry$P4n!6QB`d5B12nc?q0 z{?M6yH&2+5?%SJ0@wX<`7kwcau-~G4#g~V|We%M3K%Fr9|EdMq+V4^M_e9_>qvJAs z!!`I!Cl%Rx3^iAHc3FE_{(F;QG2~9|RPZknq00ofY7VoiEs%z3 z5!r_%(c=WLnf2N0e2gFh>y4Z_lxtg4=nj$Oa&Do!0v z{jvLrHE(ua597zW^%2)HU&4=J8^mZ!T;WaR)t`kLx%}$Ftw;(dBh1(pnFkeFz6rm2 zQmEw4KG?@UX8en>Wlz1nmX^=s&0sKgFp=z(#1abBKlCGn^gb54cMUkn|LcD_!nLFd zfU;T?bdC{R-grLg_;p$cVXUk?-yFDYJ3G_3*se2?L1BF&L7XV9f+a(uuRu$wAVMnf z#VkYQ`1iJBg4KY455MwdYgOSsFv{)AHQz$Xjo%M(Itnl;UJXUl-q;|0%$BYC_5^vKBJ!^@2Z#2ho|je^=!-HtvnK#!sSrLx$a{w>`Eu4T&ToT<_#xXW+dJ z%kZijrl86o^#2q`t0)S1Cd89~t?@K#f$6d;Hl^t^BjAjM`0l1m&s8hro?VcRu$>@n zNa4^#CfrO9=Yv}oWuY*EhRry~A5OVd=5JiFS*pW1jj^4Mq&YDGvcI3c1}**R_T7+S z2FUEiC*H@tyGb@ZKvk3%v?K~5i`G0J{3Pfa-!ytMTh4<#a{jiiJGfR=SJ!bBguLZ= ze)op5DVkh>bG}T|F?c_p$N#MBPMr&eSlH26^O=A#(uinlu71z4i_`wmdr z8a=}3X|+3sEYqIxq|2L1OxjmdbsAtt<3Pm#&w_PBvMKa5;XDS)jQx+=E8UlxmF>&n zp%Zp;Y5~95$G5kBaU2LL(kn5IYF;pi|FpJ*KwxyXM*7) zL&$yBiAV@F{H7M<4n`rUJq67foy>7?5BF5>WI`*;0{2)=^;d1R(H-Nhspi9`FFk zyrbj4fCDeFo<_D2!F>ScnNSMkzJ!V?0m{`9#b=M)jW1+{zk7yQF=rUz&FAK1pZYtc zCrt9O{H^-t9>;vzN4Zcgpqv$SJaSQ!X{mJrK=I3WqRUF)imq1$B}> zdTQ+#c2W)^rw4LD_3&u1Y_Uw`aMmEob^}ksFf6ThVA`IGHfc1Y(B{|9hN_#j#9G=5 z|D(64!=ii6+q7~r=#SpO37MVeRe$wtH;@yp`HG=-VCk>|-A10wawC2HGWU)X|G)qX z#vYqUg^&PdN9Z9M6HL21sM9cYD7kG?=T?zly;jSgfGLDV%!#ys4OtwD!lmBA-=nW- zZ!fuT?0mTR#KSdKp7M>`qwV4D2-VVcx4hy zl8F*@vok2=EySgN2=`SGi>*?a&kXHwoKN)}0y!`Tk)v+0CRaZ^nv;1~f=(qhCuryn0~CpTl7CzoXkf^cI}2sj|W|CVwZ#(n)dZ?a&vDScL|L@R@9U# zDqyw~kl088Yz6L6G~kAv`fPtWqZqr~xB7F^4M)1fGI+-= zSEqy&ptkw~=4!L@paYrbRwLvcL}xf57tz!w34CFdu1AO7hmu1Z;mEAb^rLC-+`j}n z`$r}%D;~1+Ql34$Lpm_Kw4pQJG@)es+tsDp90+oN7;r4a+ob=Hla;+v6wBb!y6wkL zR7ZX0k=Z5hoN-EaoN74VR06fdp<_UvBArIi7NBY-t@Ao1m_QZ)nN2i)ZfK|8$J z@~}**Okx2PIdqQSt?9muNP&D6F#J%Kc=en{>d0HK&j)!x2L zf`Q~yA-Y`zHL8OCoZ)U+s$+MX`ET@8CqVa7cRd6Vi9^%^-dqdHuar&4{`}+NqD5Oo zlinTH{`v91?3+-4)AJvKbAn+$!R8(Q&0r*!j&EipSVVr&3-u@$wRYds*zfLN==Ch2 zd{Vk@=2x6DuQPV9;x|$E(>cdOflhxi14sOrAOREhzDLt@VZm_VNsFwetYQS=iM@mD~uI@?Rx}3ijCs7AgqJ5Q*`viYgF6uLKh~nmsy>&YW}qHvx+7;8$O!hR2F}*8P(LJhNIO2eU}B# zF7Ptngy`ddPLsY zc|f52cqH`ZiO9r0Xsb6GDxOY(Rxr^_);6A?7vpm9aLFdjZ^ggEy}Hsi zEA&>nBjgE(C*<$U=%u}xJN^#RyMJ+S83-nnHC>pmv{nkcW%CMf#q)(_0E)58FErnBg2q^clrLmfZu=SRCUaq$szw-QdtG|iV66S z?4|jK-az~qK_-nT8q_^4Xa~_3NqbDAeD2JInzu)gz)9dhB2d=#$x6=CZyZ05d;349 ztO^*%4_ts3Dn4MljJ#SFM&DG2qoc9#S%lu`%kGRfx?S|DPL#87YO)v>&|K~oT#Yre z-SN(~sw&{;=LaOE>797Da&l_+$OqCBHS?3eqwm0>TUXtk2)z6IpliI^NHQHcely}8 z!w;GfoOvfz?hRU!M|S&+i$gKj-^qVnR%!USoNPlTTH<$djO@7-?B7-{LGDcqab-qz#!M`~QVYiLo<>0d}uH=S| z{V=#0efJn196_BDWg+c4diAR;5D6RO%rU!Ur|&v*LJ%^p*q~bj$5|{wE;upl%F65m z&`Rg9#`>xGMFP?|RlGLA?6&D;bG|z!3*|Vm`&^Turi%P8A04%E=t&TTPJ_H>wckUE%}{jM-;sU< zLkePRD+YD@#R!2FCYOf*R0av@unwpv;s#39d@8Qr(w8_20D?LF zRohMpHA<)%yRaY0uKK8G`b72f*uQRb`4~Y2px5I#^rnw2yw!=s&VNZFv4}Cnb_V%tgrjafeGK|eTFjGueqV&21)YA2mGvmQR874NJHmQfJ_5J7L z71+1c`yabx^&14LZX0O4e<-kVqcUKZ4jHZ8*q+ zSdOBWZtFOjyGI#)mR^*pj>v~GQ(eST)<00%DVKQLb%Gtm1ibi5-huo~D~6IsQ@ zBZW=7Cb~IOF*z+ZmH2(fs>Aw(U^}H?Sf*DO~MwR7U+*M}0dAAp^~)LiHw`&0dHgDZ)H)l%GsR zpUD`FHL_IbHnHE)Vxt9;C3uo-^3^UIx8bHW3Sn8tyY|Y3^#cd76`YidT-m{Baf$R4 zcZ&i0D^For`RCJ?3VV;87%m&D?vukuzjb3+_~eK!-XZ1Yo@tre#GW>%GXjb`h)&;F zTP_8&qxUTZVnFXw#~Vae$-hx+9wC*Ia2r8;jIT~k%l|A|%f2%On$anQ1v>g`kGZ4F ztUy5?-9*c6qZ4bjv3{!X%)0}d$yC$ofYXa^N&mtI(fgvOHAf)#p^f!>64;6B<5Z_W z!Gjxhkbf!a-8>qorV4Qu&>ZolkErnTUyr@9l@Yt8O6K6hq6f`dB-hr@KdQoAsSV6_4sD^$RJG{T{}~ zT)!`KHwW9F9j#X_-}~~+JYW6f=&;nNGueT!=aGLRTH2dEzugTOr_|0fca#K3(UatTl9#NR z@EGFU7Cc!RxcBYH#5Ny0S5%P?%f)I}#vQAyTv{@?fd~u=Dhf0=ry`XVs>QB1Jdn({ z)Q|Gj5GBn8pd_|s8=R_#oTDIor})xM1b0ZkUlW6aLCBe5HsZz2cL}Y&c%_11W&6*c zcV0GG^*>W(iNT~TXiK;|9McKSBt4IeavN2J9Y4XA%&grpOL6J$q16%J4Zu#owPaJ1 zxlRvHvY*BNPUA|r_|0PH_mh2fF7K(LqUB&yvdap5p&pa)be~kLlwwt7g{<+7*+jLZ2q9zO}@zXlz*h=iFdIEsIf_1RB{`i!%JN6&qz?{oAy zQ93R4Pm$EOT$4{8E$0*$l9wcrt{uA@-kZc&MK;BHI-4J#Ut}#jVHh!vC;WWAoB&yY z?Tas|wlTbJhXn$cvG*+t@9NW&5-%}nx0HppD&C1(nb?S)i)@N#omr_1y++V#IIFF; zo7L)l(*I$2XcXEf`1W}|u#C|Y#4PhB;S0uo7i899ytXlHjrSyKEqJN_?&+gG$woG$ zRzaeT`fOjcYM0Mk5kN^2=-X3enY|gN(ET4PG>uJ>&5ZmKr!uF_U_ja2m zhP8eLYAIDJ(mnryw&1jZFD|X?>8l$kLlMhkc6yZX z&`aW)7A3R@-w?lyH9fUo0?;wI#4Rj3khTHB8*`KBkkY!~0qy0zfk^C3y3dXHPl1Mk zmT;1XSmcT*@^RjeiHyX`c?e-T&neG19!5&Im$QBtqlK1*(MH}*?yW(C(^Lo+yWsyK z<;7+}*;RXUIzunW!DLOMa7}ue-)EXWK)HKAsDd7iu|XA}&VpxqLpOW}v~&X3Wd)=l zGQ8_oJ|ikWyVoe+X>|#*2=--mX0Dr9WxCS4FDT{Ld`Km1v_$jRSvR-YUso6@06Bk8 zUajx&J2Uc-y*_hF4s?Mg2V@)ZhcQM0$PDpW0{W5kOU}W!vmIAoe*x>5SA~BSGCpoGvs*WHF%~$SEcLM%-xC*oo z4@~)|*Ki=u3&-MVSDfgF?MiRZT7rM5s{f)X_2tMg{Ai`qA{Q}X%4qlCFaP6HoG`sQ zQ;4Be>*th~hd<^uu0sT!&x7K-6v7k)eh0fnT#yd?c0SOKWw&9i zmWw(d>Nd-xPnt}*R!o80S<;(YY0`wEA25Rq7ZIFVx0hcM-EOOcs`~r5j7!=}le9Z; z&UKC-_JNt%E5#^rTEI$EIr2YFl(i4rkA7AENz7pq-(R*C;KyB9h_cGQputtK&`A0~ zfF_egE|>P*(|Km>W}*kt=(S_fDB681-X+#9w8wYN-N+t{F3`@pRQ&`NFDe@Yz(cdW zZ54-6b;T??;97jGZ;&h=2z_4`;w;7`60t4xBL~e)dL4T>R(Z6VxHgqms5H?$&4$97JcLglUif<9gW_n`c7oBz&Z%OSd_1 z)ZDtcE>I`Q(#h8HldI-=kD4lO;Vbddu+AF1B|(Jv*YZr`KZ!FwPW_0P2?oM+V(@X^g*q7V2Uc^NoV#x0I@u zF1UYJ2?kkEiw1ng#v)1167<+o0KCNrbB@wEmsn=k>2yq05bYa<%?cgTADwpsHE#7+5~*^CI7aV9R*Wd^-XN4`i{@gqsW2Dz;UcN&TbRqQ zy+*xG9bvDXH#V=PRJ)~KU+$-(WOpxuo=bcq^(RM9T_UtcSW)9bhfI;@&OJ}Sw1lIw zTNuIu6p|O81rG3V_%04<%p~WlY!)k{+^2)l242XqriE_aI8YX=pYR+#+H*AYPjL`H3IqFaj!gHt4^4ZPzta5~$Ls(eK_J#+MiV z46wiC#PrV2*{Ek<|G4%cguo(a2dLE@!+dEd^&k}bxXt;b*dFKZBCam%$(GXbS_}V&_$%Wbi zYQEw&?BGAG!DU>oJ$JjUDVU%z79gI%rzygBD!CMa%iy$N3F*P<{ zco!6q|I0rzgmPPuSyLaw`rMZILYrb!m{f!tqsU*rV=?3VZ^U$cQS^HfvlESX1s(CY7Pv94Rj6MQ z^ltl>f!)78i|ff(SAJ^>MtKV=ZUzQpG9P~7V!O+SZy;}f_|GIu!ru2unaZF#2sa+p z)7zf1r){>^UxwTQVD>pnP0nYO4&jFW$l#k}d-xdyA`jcu8yf~5!8S@!&-^b)Ku!?Y zFW|ME4E)S-zr+#r>tc!iN2vLRU;9(bf}Qe zk5Azk@26|wB7LhzJ+*#$ffcI-9|HO^7xpkR&07uc+Ha7Xf4_0BpTq*8CAM+ArX$Yc zLwY&yDggR}czcPFns{`^Jr^b6jWuSz8Z_5HKoVD0&bYEEZ>+EO1Y`Q!0L1wxlN;g) zonk|Cm+WN#6wUF<;Zd)YcqfTGZH2UMb)=wCQ%{+ph8TmB*52=%e;OG$3N>Iu#r2W2 zjtO+UKoc5+Ah-+{e-AP2{K`PgPoM%kHx9}G-LsXIyrFJRa|UqRFJoaLxuHAs`->}? z>lS~ZrkQ7zrd|m8;s;3pN;vG^l+IsFy@>j$lHW&1H0br=b9tM_v*JNv9*XE?3TnJnD`gfA3%6FLVav;T z3JKfQHR8=hW?zH5x%$at0o)ikQi`qikAkL#rYEkhT2CCVl6v1$moga)<%|d!cI9Vu z3Sz~#ZG?#06}R;xk}bTwiNZSbg?kYEM8lw?$piZV*q{Mgu^!4l29n5y$C{jrzOP{B zA9?i5T05CDwEWF|1q0tsh^@GtTk#3*@Odrf5lX#m1&1I>q&6FGj{yaZf6rdGj*ceG zDWIA)T~8KwQs$1I!E^UyQ5^1^m%mwkT^||%e(`I?6W=5RoL4fC&H>C^s2$HWdK(0+ zbKgA=l?p=Q!%0xUTBzYDu&aGsQ@6LeclQNa6kaKN^+&UG=O3K3)boFWm(_=5bP(S- z@_|h^?DHi=PO55QF0II6@WZ638&eMpn9u=LhC9BF-|DQ{WhI8@gT?fnGrKNnhmB@e zVOclU=EDvl;+v?ro$b`e3>=aVn>kABp$Hd4!nUxf`wjaX^Wz`;$oeFtSJ$!t^fbB+ zbj~(X%h9%NH2q^QT)H3xNl!;t)7@>c-vEPwWo{Uc)@!~T#h+B9HT{8|{jMr!ObEt5 zYr_=m#W}02B(~Br?L{XlN!|%iBr>lDAtG6p^vTtJz-G+Co|XVR-4Z{Dr=z@@P;}NBmdT4#?_(DQE?zLlp!B#OFm+jMn0Ad7yX;@t=(ID z^|w=R6v^YAy0nF3dCW%g+z5*BI`gQcITX@ZS$JgTGymRmfd(^ClZQ_yo04M~d7IS% z4D20=OR^X;>$v4`Z1FF#p-J&)E3Ab-XP6ha$X?ZJ<_#CWL>qqF>14932oFH{#r|S| zyM7DzW$C$%oCWa+%vikNLp1`!j=p4M-Au+l_up`rgfA~la1T2MoTu79+T6(wOw%aB zF?Q5g$LKG1y=ZsqtYBBDN7LW3Mc@|7ZFF`-73N~ffQkUiP6q5KYd|;U z9nrS92+<8u8_D_Gk)rS1pD)|`x?eG+>Sw0t{g^2x!dud@Tm;PSrj$RByhS~VpN~2Q zB=tosT^zKddzZO;i+F@AH~n|KMn(nIlBx9X$t3mDQ!)bryEv%B_ zGsA)^X~d`b!sv+aGYNio7x{NygEDw3SHb{51)>JC#3vq87HU zEqyYpVrnIj|L4N;LDS+Xu;GW#{xUQ24s=2Sg32Fc#_%wUBtB$NGAKX&QLHfcodvLR zr8a={23=W6>lNHU#-U2XJJpXDd=te!mX{6dnJ3TWElbE6lw>y%!xAEBi zh*;KT8tJ;Mn}c@+3$8zE<=uYpTRFuWCt!;5C;@loJyBHWHX40sC}oL|Dg-1k3TC1+ zsta+Gd<{vWfpB9?N$prdTJKPP9pVBbIeHbzBw+~4zB4HlJX!M5NBe>E@A3^G=sK+B z;dW(-1QbZt@e_32(ceNVG5*rZ-}5w2`ZoV+LbLYMh2Ee~)RRGsKBB+<&XM}4NB3=M zr=3V#fPo^uqg8hOS75UFL!xCv53MzDh%unf^5M`Wq8k``_2rv2iNOpKi;$IjG-c9E8H$-7nC z9driziz{xInPUV%{FY}WXr<<)EC(7T^fI!2o&KhtHjq)veC=&^VRax967c)3h#GKK zItNpG(2`84uML5Xjg6>vJm;fmbQjRGoU?7E7gnY(Af5VMkevg5rHlOC003*etTkl> z(YY&?3nQga)~GGi*x*JSs39&6#lH*j=5%o|d}g%w`J=O*jeaya;m1$p-ZYAM#q6@rI4qlDO9h$2coowKZ`fHNUOx%HptjH4kxw9v4eQD^wqWb|`n#v|MQ}94 zYcn8U)j=<=TTQor1i!J!SoTDLO`-#G!V9?B7~gWV(MW1LR5dYW1W<} z>oeLAA<2KKa-l@(_TJ(>$_BFl>E5r`Q_VLp`OWueea&I=GpEq)itK3}(B{wSqd|KRrmS(r|$j`+cS2Rnb7y!-%7q{51YU za(jCBznC!THx(V{_Wbwc#X`-LJ10%BJTRYY$d*lxw6d$ zHiCCruQbPJw@ZkifqWRUb8&`$Uf#lxjAT(Ee`%|xAji>sbZ=T{Xp`v46V|3yMO632 ztwGa_p@}9%!Lg5FZyFQms&>Exs3x;@U9^W23)E3;>v5LLiInVXfgj6K3K;~J1LbXB z^Xg_1*FRo-CdR0pS_|{M<8>Vtoq}#9D=sjwz&7Mkw){YHL~~bGidTwgWmKEe&m6r{ zg}z>?3{IaryvM;6&sOy~@r7!yMeyp+(C7bxM;-O=h}3w>Z&ai<4LqyTZ1dY0|B=5Np<8W@!`jssNwMSn7gWrK4Em}h5|7w< zFL?>vOwHO7>|~1}VAH^`MYQDJHdmPlj%st3s?#BYU5}r}Y3xz$4lgPH=IHj;68Dp4 z-4Lg_FK=$^ihB4VKp>zxP{@s#w2e_?#D0t-Ya)7129i%{&lxs85J?BIp>UA8;pdA> z-JmoG2nf}wj(g}R?396%x5L|2iqfEa^*xKrBH zk_CGzM%UR?kU!JVR^MXrnXdR?C-d@a8swv~+mOBBEy~q=K1D;aj}^t0r4wSNKpFA% z^rsBly8YJ5s0F+Bcd-!SdvbLmj!0yt3ygPUuvqFv65##R;7EIk0mUco?A2RK%+zxU zY4s>05UT81V_emBas=R=9sAaIX_uo4J*I=GhfgP6$(9Tmsr<@vq=@z&;6Vw2Cg`Kb zVnH|2!vIbIgDIaqQ5ukxn>H2=rdFYGG)z$~0x>>I-urIh8ZJ~u$JhVq)jSO>rqED$DdTksFP>tUmdDhM3 zON`d^(AX@*LzPV|Ff2K)ba$=)5)SGqFXB=FKOW2D^y^lBc=_6r50hp+vs2)bWIdK^ zhcF^xn8Z^~!Oq%+dm)~oc(%`!REJWM`qH*D6+cQ3A93E&PS{RT*pLBFeX^gMg#)Ng z{}~WuvNhNxI!qQu*p%{O2VmBqC`)v!DTM>Fdad{H&It?(zcbByml|XnP;Di_%4jpb*aTc))|!rQHwU~2fv+`V)^ zg<;NOR+HNO)?6%C_}-Fk5qCYTSNwUb7Z|n3^|4?1oM}9Xxs(YbjaNB2xc)a*-OSDx zX3o{-wP!H$jO0wI5;x%5ntD3=|1(srA(aO7VspeJb+fnAkr2MBM^f!0LL=)Z$~zsi z7?Z??%#cBhtqd$2OAVNf)Qqx3MigmY6xEPC;^E1EN^CNkd`@LVQZVbS(8MvZA@1Dn z%>3J7a&$h+F7RG>SChD|xQ4!p=YJ)Qt?Sw5SM_Rd{|7u+oA~txk5=gZ^XY`^?Qx=`GRX^;J1{@qz1OtAgOv!D=V^p zJLW_1V0OnJr2B;X9q>7`X4MdsvME|}rfmh`eZ0vP%Dr_WB<~a6^g88ns z83A(KO*%AT@%l0m#EOcJ^OmdE$l8#2eQjPRTk&zwDCbT1S&8(= zt6Wz@=J7a3=Lt&Xq2yVfqsmuJNZN=|@)+ohYx>xXVAIgMm(sK0CSG(WBE^|0tU)AC z=`Zfzc=l5o*sj;cz>{CR=|e$Nixmo~SQ zTjKEGW87sgebT${Do%8vCTDc%%SQgR!+K+2`?S(n5a-HMh#un@5zo>Nw9h-tPiNUbgxjta1&^nT!EJtc$BZxh`Ugn`_v^ z<$48mkl8{HWm#y%Ios6t(OjhaK>34PS*#o$vSX^y&MWi!Z-$$-WOl=(hbARh_wyD{ z?j38$p=g@mf*%Tk5goDMop($K=LLFy^zYG3%DdL#AkxNXnl$9-FdGe99$sY#fzTi1 z1tw+{JPIG9eD1F< zs?&8oUoc4s`Wpq0uey`X^U3msR9;|Y&`mC@1-r#q7&yn2irah{^>#$;S|{awHilWu zTUxa{!hbb8`!j<<-3Mh0ME>85g=F+(oG>BsKRz1P_h`7EfFFsR3r#GY52dOdnw`X$ z9XA8|4sv4!iSv*3aB8(Y<+pr{lhd?W__Orh7(JfX2ztYjnW3K0ZkbLymi8Zuo8dy%_825qYOm~ z!t{LHyhT(qWVa8i*6bNnY%CO42|2t6yf?bc#C$l9#XqCqq+KjeiF7yp$x?-oDwE@T zxI7xnQ-;J7?Mg)x%sqiN8*#x%sExHs%$6Y(nrVIV3bUJGXIuBWiZgjx(wM>ZIvwqt z(Lw)@Dwg;xh>IoRg$~J8Wx_PDm0XP7?3s+@1kv1wrq5AO)|4W91c3x=bk4gql{vF?_FRzrssm8UW~bPmU{zxEJUH7AH>!;3vfh>y^i7wmRcF3j+mM zk&MZ#kqfd{AIr%xg{wI+hhsDtGbvO*Q)u%ZEi}KuELYwk|JitN!p33%P{lhenUnC3 zVwjK>hd{N^jrAwO(mZ}}sl|3O*W>)pguFnm~NRF{q`)boz3JCmnf-jpM8nt!- z;6T>wr|0Okcln=T4+qcdngQwF`Nk|TH`Fcfn@NxS=AMk1hQ=~j>N81#Gy|u3V9Vbq z8vzBPvn)!&JSldGQtHUdG!i1XyHN;D9ymTPa7vw~KS9x=92Y$z8&0c4VO z;gb8Adb$^s;Q3&3ya6+pbSP9$f*;z*)#69UkjAl3@n1^Alu&*Gp35jGulucaNz#DM z_?!_BY_uvcTu9>s7#lyDg*)A;xAnlutnpJo8a8J@ajl`GnnTuWcRuDO;vP+(fjbTi z-j|)%@#ch>(IFiDzJ1#NXPu-g7^d=nVPps+1~eKtmDr;i?XASN2U7Va5blkVZr<*0Q;xmC$XXI^jMjnyj9)SX5$r&m(bwIrEjreMP}H zey);Mtg`mVm&5d#`>;Q*K!CoWy7{uW+3T;|BgX$l^8|3QbJ_=`rxP?xNO|y1^IC1h zm|B-_lr`U$32uNumE$*Sy_9a4tcrq^KGW&q`ui%on~E)!)9jbdT5nCdZ|^!v1}q6i z*3~|gUNB(Z4WRcacDqX7=)O$Lbf!f_?`(ynp|ret14gmte{LNKew&xfS1A!cp3G}Z z5dHvAwin;^&|Ox8t{7j~u4}(B>S6sF(fYA2cY)k$C{^!EG8Vy{7)k4QTi00r2i8%u9O4BX0>3ri{U#`;j$ z9+BS&7PYnVyso zQ9WRoG-x$sMj#$isq{|aG4V^j=~JXLW{Z+=NMsxv4kH08wnuevI*Hr9c=xy0;(bzO z47Q+X_O6)`O=d-(R<97m^(Z>TOox1T&?OJZh5F?t860uFV$J4+jQ7XOVf?$HK zIGfbu=#=MO(bjD@^e_zCCxoL3iiP})CA?p7UJH77(n+S9a zLt?>W?<-G`PoHoOH8>)y0bwyR@1#m;Op{JnC-ElIFwl_^%yH*D$kg!klc zFd@AZBS4qFB_aGei$Uuk$z>Nz*&ko;z9&2no4NW^)Q9{^$MA(TI_n*2>inV$M9AY$ zbWow@dhkeiNUO%eMBZRF5Ig3*55OX~8?H z&`c4WtvZSuH^K|zpD;>q!@J(UGg1NG&gThxosY zt5o=vj!yf;+P^g}^eJt9MlyP(K&^NARB(hGFd=FH4C_=>QW;L5{&P6@U}7v_!oCuv zZd-Nc4HL|O{N~FrV0>&=EbzJ!4+2nUcbk*Hr$9}F#8{P}YX5G;A&rVr)?@C+ zATszWfkKE(`;7us6q^Wxh~SbmG0jKZNPRf_wE`Rq^CyS1SQ9>Fvet+@CjviBp<;wa zi}t4WrN;tr8lToS&3O?A;TGYDaL)YjtXc6F8my3sLQ1pd)wMsGGfo*8>}ZZ6Oc$%6 z!A+NC_LuILTS3>~)|_sU)_@tJ;NUBk$00y|%RoXlVlX^pm5ZBeMnFX8hi~kx%UoH+ z9sMK)3#p^y9la_Y@`|LP-_jTV)%4Yl4-iXLoVFyfvvSy1Lb4Zq>JIqSGi6`9d(XPg zt&WX;%{&bf;BJqU53Y_=3S;kDcKCe@{YzW9Gej4>{(34uDU^QW0zqTeM!P#Me34uU zKA&hNw+`uL(+a6(C~)wq_#nyf8BZnNL7j&4J`l-nBjBJ^T8(wN)THa&JS;30eZYMY z_z&$rxl!5D6ta6h6(=!S1ox(}1}gARYcg##rUsQ*CK z%ER(~FdGsdZUpohQMN(MYcV05xzd;snVhQdnKXq0T0g;-Et9s_)-bZE!YivJp5VKc zjRqa0_Z~WV&iL!__r^vhD|b?Fojj6(b4SO=r}+NA9Wy!XWo0+tPnj*f{dF>dMSMy> zC0pI3p22P?1p7R$>2`CVPXwUcLq)%7n_*U6u}_h;N`>!c=&sIl8hW~khV=8b-cNrO z1^y1{-2eSpL*l4;d^E3&qA2zjA1sUKA27Pr#VCvE*>{Fqu(IJtD~saz+W)t&n1fan z1X+}Z;cw#*9dRr%ev77doDhV*sYGIAoaKmRz^1%CgpFyzMfslR^0K}Trr50`kAMRy zbp)^&Pa;G(B*)HB>bK@(y25wwy$0@XWbWV>V4)@bB*L#k*Ye0Qs;SNweRWbf>o${o@FrfmPKPTHf^lNuspeS zh_3V40lH0Yx|YJ%we0uH-Sl|9eU*&ItYY(SQxTtW`Wv(Mr_d8;#TcAM3GYA4zMC-y zye|UIu+8+N>E+OhKX9QPDV4^qI7DFJll@Y9_0V-h4szfwXX6)`7aT~}Ot=0qVn!M# zLZye}n4Z;ng!DHsa<)(Kdle=(#6wgJpZbhuk2vmlNR>ZxZLimQgbKwKv|ESjewtAT%&Ft z>mCO8K?g$p|s_4q2A(9LceCLkwZj+QiU>G-PIF*(Gw* zgUlLbBGb>Ct{C-v2QI&P)FCewyh#r^@9-CzGC+_y@KK2F9qGRcRP~+6Hvb1?12xxs zv8S}tx|w3I#m*!RHw}0v5Mfpw8G##%8LZ}WO;K>T_GUQ?p)y)RG`huUg(EGMHEGmj zi_qJ}oW=}V{ss}H;bnh#cbI)OBnxd`mARdtD_Zlv;V6HHJ~qs5W7pWdWD~O)YYs56?-NGEmZOJk?>9l=6Kb;@_1o_#!IX4Jj0W*t@ zxs_~eHYI?vBBsRe{x=p$v1tiw$^t@%yuX6;4_+eL1~UtaZt?XvYj3F&iJw9?OF}F} z(-7e;x!D$hrLrrUtac#Bz~Y>SO;|FVtQUQ134F+~^cqQVKRap9k&yxyqMjnWTE5x- zY$YqSrGD`T1YEWXcEFbqe|>TEyDQ-|@$sAkc(Uvyr*EfgJC=X){g>Zj^hk&Ew-i`_8?3-Z}QSTYN^?0 zjE-HQX-jNTPd+Q2SW~w@sTid|6T^7Q7g!8w+lD#K?7o_RSyTPT)Zbj*+M3o@3 zQi1fMkWnW3iI05j)>i^KC2EAP?|(Qkk4^26cLg-yoi?PXxG%!5cJS|~?Vk!J<)jb5 z-nRd`X3Fs{SwL)9IE4J(>E|S9Pe~(()|>xQsY*zJXp5*8(@GRWZ|#~mcymDje|6sF zyeB}T)*94Zh>EYrYiW^9Z8IkHk?0^*;Uxl7Y~;wcPAnq5S*92M^E&vl)YKssVeBP} zV{?Vb2D8;Rq66IaY`VSNj&kf5k+oBSg-$2@S&*u%fdulkH4oj^@Z7g=9z(7&?jYV% zI|EbvD<&`9919-iVQ<9lPuotR65b1E;GN`_whM=gxhd)5mGL7!%NrJ9`FHN8v-2LQ zY^-XsN8*!3RtRGp+1okS#*~?FxfW@YYoveNh@eLY1vvkC?Mflo#$?3neM*juvwA*> zkWMOa@kP_Y>ng)Y)^&!kk&1}T;*O5hWT`*SQfCLnZZq4gi}TYqUpjnLl2(dSWM6A$ z@eI;&JPVorRH!UXb&>AjkvV-Q6hq=u`D?5EAvK+e-2}nn zM)aekJdDTFj^V3;8H|Y6fv?t!S@hX|9qN_tPO%jc+LMWA{A(=6h)naPb50}p*giN( z7KK%_O*zGj=bePWio#eB?;bD*SDWoh7q7-BR!V;+)8LmX2kaq&QM&U;D!LEIlEgIl zUa^El$o;|RaczUH$8m0C@vA*XH9FF(#IZimBNV=>TL-Ruy$6}qe9nq>2}UKv^Et39 zez!sEL~k80?gyu;tXfgM7NWq0(i}aJKXHz3L!|zXd`{Z3Mx7{P%&oYC<^4iC9WsH-7isXQUbx{xHdr>1t?)P0q)K!uCw8 zeu{w$h&{2H_U%Q`6~(v^hz6-EDPpX3l-;t?^2~>Cr}U3xuEcd0N`Sj|7;_!ZRE~t< zjxM-CAT=`yXneI63}M`GFX}qszoCC{V!(Q|*BY#ui=l!4g!dsnt7O1Y-&4R88qqVt zuYz9h-hJE)$02?1g5c7mT63J)l6^}qTg)&|Z3mDFeUe5(&Ji!A0G+}dX#Q1%o(qOLJ|0F)bzimuv#FRpuGgdSjcmlKwey# zINF>eLD&X|FOgevu+A>=C~$LuOLNrs0qri&%v}h)gY2F2jm`T+6MfXTB;wx~#lJ#) zOJJLS=WBXYy+IRKmNHCVCkdh{M+jC7aP_@h>giR4VvF)0vYn_l4@#GySdbq*-{?2J zQJ7CNs~c7Mok%UJ{KX=H{&_FAx4p0o&euQEYOfH?V1cN7M4@FAR37_G-HWSA%$*0W!;lMQx)mrUda7b-8yeNu-xCRSgmlpNrH7PoAa zNtPco5VI0wZg0cA*NZ)l%>6&gx4;hap93#~=^rvya_nG7+W~J0hbpi z-%PDn=7CVw>dT_edoQ^x8Xx7zR+lldDrR@PI_)>rLFxztXO_xH>e1&q)|3@jN^tnD!5&23`TMY+Iwzs0p3dTZu7sFGb4fvr?onBpfYd2_BC*3@|kA);CO^xAE91Rck$gTC*BD= z3{0%@<6gVSYzRnOXtstpj{Z(~|Ck}-%cZ#pb_Bc_KO8T~=l=#oGz$u*^-zG*a__e& z#2UUmheQRVsQ;1EDl0{QYuSyhawX%h=)`fY`M#DRV%15}o!FH2HD%SikNfP;Z`vo_ zR|%!tGXjUpnG_K4%qRN-5Tw{ouM5Me8T%AD&b(buglAvoBtrX#hWNhRoMxs*b9cjy znpz0fqs4$)4XpPRQ2Wbxv)Ok}@#;sv(?vslpH{d%%=IXq#_UY`Ir2-0A?1Msu+YGc zIB?j%)|OW<-zcw{649S3R*r-VPH!qYU6LXk8)Cs3%&{Jaf(Qncqlq#m>P7BT8|IKk zAc{s))Du!X)=Ot-DB$R6jFtv+5HC;F+_5zlEebI=r6MiGV8E9}3XMX4zVLi`zLUZx zm+|#5|B;gCCrP_BohW)e)n~qC57PjWt+|0|JdguI3#3?@@pKYy@bOtzr&XJG_7He9 zkVM4GGYMQ>f?6C0`Sx{p!{FJo6cR7=J`wn0|NGupeKdN>qSp-^drT{yV*oxh&Z>bo zpOK2+)cu%u`K~fXdZZ90U;P!BW1Kwo))Arp!3v%92*X2gdBqG=m*j5{?BM&)!tS#} z&n2>6Jo&bZ!?>JwJ*gSN>DYo@4%9PB*vD8}%}Aei%QGtaL$1HJ`BD|Uo>-qI63P>n z&=WY8%f;14jApv>+~8{mBtCzPp!=VWiTFPIf)R0$2d($=v^kLE*=Q^^h`0<<$X*q1 zV+$lt9=zujA^kL0LP{)l*sQIiiG-=(HEn9VV85}l8GBQO=o#|wsSnNa-|PUQ40)cK zxg-3)d^g3K3H@ax(zK$U@jOMse-egmWV`So47c{NqG8Z1_JX{zTP(PEeT!C0UM_KD zp{2K^FO)0hTj;A@H90meCog@MvUEOWLmmudT>NJm7B(6Z1F!L5h<-w4LXnOlT!`8k zZ4J?@(gM@hFm9)8zr8%t=(nCSh$ViJ@>+2I8t3_w3M2|${4)_af|4|$FIp&mi&W5) zh7&^$=jEhqyP-==rbfSu1%bx+LY!%RUG|%MkkRys=)*&dMQUrC(<;526M)S^-T@Fqf2g#=J+f( zEfS}gbyTQ_t}**At!ZJp(yV4h+ELJ`flze2(3r`@K942KHr(j)f6+yuMn6PvlVgxY zDLxiJCr+s?kQw@~N{p2_ zB>_Hxg{Kd~8Ril(#n`~WQ0#T+fM#Y^ohJ-jXXJ3u&Pe+1;D0RnU3iC($}=kJeRbUo z*@T7NH|uvc!VoDoBRTHdjy$2L?_goF(SR8e4&k&(^wl{W|5Q(aa-Ye3I*jeh^eR(5!_-*7s z+pX_>qxo{FJDyEK-;R4XrqyLI6@tlUs@dHg6@jr5E+(IUmaXq^zRfi7^1$=gNWsH_ z4|T|N*-4#tXh07Bsp7{e!FQXpK&eE)Zp=Rz&ID`Lg&`=+OMlBDYoIcY?W;cZNMlN| zJ@@XEl#5aNyFyeO`pt5>>~M1Jmky*0dnPMgvl`r^(>UV|I1*mMx!0?1x%a!xXyX*p z<`|SnVXOOmFcVeTz-ruGY|PhLd?q~~nK&Xo;*qv@-d({%7c@l={da1^)VoB+>%GtD zi$aiJCyn01Z4sbzt_V2aGeT+a)viGRS6yc{Vd=5D?5gC)&0jg8&ddrtc1M1x?`NNPZdclOLj+Ki^&Ib zrKZU%?hX^XjRJF*nrF)v^Y87mtfxJ=k%HePP@`c%Jh}Ea~<%-WCdPPMDJ6Mw~_W=gPRk6i; zA!6a;wa@_IjCkJ5?#h1OjQ9zMr#Q;H3kXu*Ex-rB%Me{2WSe61wo2F4P<@{gFmcOMnwdPwxuG4WztxP)hID zeMgKjHb#F%uUNZA_6v!kTB*9u8~;>H%7@@JWYlea%IZS021?|o4@+g9q1$XkUDcGO zj#rPvg~3m{F!CISjL%-uvN@~Fa$t9B1ifcv>X1{_|&_D-FNE7IY_0Y zbLzKowMngU%TcwlYs|MP|F`qCr^b6%00@n?uYHZRdURZ?cGKKYS7B8Xn=|lCQ>Dpv zEP-c#w1kf&|M3?-Z-#66=pOvm`(sHFo-X*-gNxldz|Og8qP5fiV+(r?)uCzz*zfRY zXYplQS>^WcjIcF8yo=pxV%MCS;cD>Ex@V^T_fMBYCTX04s~uqidA4pl8>dqcGVvY~ zj8kE_91is!sj^Me4u5ME3V3;# z6St4w^894$t4g4V-Xp=)xEN6W2T`}4<>Bt_4&|Lxs#ka}WuGf)g#1W35LB1K-iQdJ zz*zW0ePftiq4l5(JaXx_3z*9Ef7ImgxAyhO{Ol)lqm0kzdZSD#>VsEXi};gKm*+^P z*`0Mi%3t03FJ*Q5y5|0VnH?Z%0M|M)%}K7axb-ef*@32zwVZO6cewj&-Yo$Cws`$r z_#2<%R|0ne=`|tD*Y1|#AD!~{kQxr*Hy&YSAqN<++K`JOS-rDPTg`D4lgXT{k{))nW!J4#&tP6m@;G53-^#Hbp zV^~`~z#N`U0_44Z$TjU3PeuM{)zQpO(i@j+Q?uBf7_{f=`Ss_6a0(|i@Ld{gR)(_N+uTfKZk_QTKw-cH9+q*otVG7qiaH{>a%0p0# z`=gj>f`47!MZ*p+>O<>VYqk_vC<*QD-04xhb%=N1GX8YAfsVL!TbEP7vOv(#ZEm>p z6s>Wf_ICK-qlfJCYD|ikLS4WAf^*B0HJ9keL>^bx{2!f!d?3d3tNYe}0mZlFkJdcX zO9i$wGULbRB_4Z=f{X`+w(Dh-wU>wnXDo$?1*zFB$#JdB;isz$`tHI!cDQ*IkWeB*G~2H(mK)VjL*;{+@t=)CZepK|Sd-Q<222oQF$|M(zn=Z>b& z0oMj44;OAUbC~K%r~po*@sK++-ad?se*;NTLU*A4x2?wy?$d99%p>9_;N$E1r~7n? z84B%v&JBcq8IP<*j$PHl{MoI7DUt5WP{M?Q8#G8r6^?`)Rg^nFFJ|91nUw;C3^-=I zjq0FiPY%PBd9@PUz1QIczFdwF2=w-y7}57 ztI@pMU>mS!zeI=V9@ad2u^bn$Tx(H{%K@i8n#y=>+3p$~!S_S9HP2mG-<~kR)mT+(`5c+p{=5Y zT*Uz}bk?oDKlL7*rjUtD$4slnE9YPFdlP(fLAYawQ_|noZ|dqLl96cen9x45(FNkY zSJJzbh8jN1M(z<8@)(_k#IC>ovd{(`3jBk)UU7Obrp~>b5%#wFiZvndp`Gi%1mz7% z$^FY0ZC%NB!`Yl_lJVHuO-^m6u_dc;iBL+4z)Ed}E15uz_I>QOOx}%UgT;b(iEGz2 zZL;MdP*kx@VtQ|bl|pML^`5WX1wf!Si`sO>uVRyE6?5lGvDZLOkB2Sy2YnkUQGG5S zIf+3)6B=nJ>@AS7@4HK(%cp~X>!*h}{snK{|*_jCl%@)LQO>ehL zS{yU6Q;k*B`sdl6NwwGdyK`@Vm#9aRfWQ{3P_M24EWG_uX5dlU{WfZzfepiVKGGRt z^^EG9?k+)SMo#!(B(sU1g?F(@E6tUHQEAB`tgOI=)Fk$a}i3HnXyUD^}BZ0kMNw~@t@Ks#@^a#Fgsi7XH2GPR6%_tt(q z-v=i>M0=`HcRTtnTPxkXv}Uk1mj82%nE#s0U-(|G1aCIb}$r};_C ztEQ%JEKQ(Q)}_GdB^p8ucl1i%Bt(=V$T5la&DCg5<*W!E@bfX56 z0ljWZDQWvV^=qJ2)H$U4WPmnQ7JdO-P~Ph6fFC|35G}MneYRG>+a_m`-Zac`%nafD zwHIPK4rC!<=SF6X($6zRa$~jlU6_H#TJ1O5*;(xH)r?IZcEH`P*P_20k68D$YyORZ z#~iP&5`(*f>G#QihtGS-x<}Z=9igMTla?3sd~!v5Y@>2R-@{mnH!!Y6pl8?)0)&6Cg_v$Owu@Rvnh&(LyM>&em4_%;FGUXiW|%xHw|}C=z6Q)7sgZ%@3{n z&3N!~jzaTC?Udq1jha-)roN|j9{v7T_6XQT^h=@4h9oV9;w$AOz^$Iv!0>#&(v>CX zlt9>KUKG|yY9b8FJh;ndbt6b*?DT<9@;}~zLSeq}2x8l9BywGbox%GvpnLWiP!Lte zcjGvvJA*1_yI4EMkPg3th(~W8g^>UD(f~KcZ}=PE`u%{^7*>k-%v8U`!L^VJVFcci9&4NL zD-foG4CTk+k2cnABsuI|g;SUs)JO@A@xMYpM$#C9CPn6KUYyh2{7gD!B8MKTyXUQu z;%WmkS;GzIGQzTmC?OW3ZIBi3(K70@Yu$N$;69rr=?_QE_C02?%+nxut(%H4$(P1z z1)a5vODc027N3NC7f+Xx=Q*@pSIER*mY|v_+)k)_Oi%Yt{S*kCdIsFq?u2J%Bzhkl z6vPe_*u=W6+Z2A~gdY0` z^G2wALu$V)Vi1FRYV^_tP4nYI7$TvJ)K5u0TJxHn4r$|6Y$}=%!pow08geQ5NK;YgzLIAAc$}QA( zcbr^yKHfqK1DZ(waNB5c6+Bz;r-K~(k)D_cbMa1dnE`YQ8a;VvoLC0?Kl(#%@0Xyu ze?i5!#q|KIYSl{&Y;ITXWAx(}SO)KCV(g&{+;*5WX5;HDVs)ZZ@&%}%RXdERHv$R3 z$(xUU`N`8*t#M6?Z6Wp39&6Dr^mT&fvG%@h6tDegsDvDWz;D`5K$cd1hi%@uurCjG z{S(>i2D10@31hx+pQPOi+Ji+y@S6L&M-)&m5> z?4UL_O2fp2q|lDg9)Mq(ErFIUhsG)B)~*l#-(0C0R#*?We1sq?n&G$0gmbd?7RvHHAN{Vrf&!W6z8@3rRS!QCl(%0c{an<-LWbIW^u zZ5<@bYec+1I%IXr2{IWxHKwQe$iD(Z;N>$CsK$O?2k>I)5kz#cF$5qx06QJI>NJTS zyq6hXAl)UX0ffT--k+O0eU#DLFX*NyB1mf2E4R=}uN->8a%QiPeo?Co<`NWS?9HP* zA`E5{md`)dw^AkL%31a&1oz*>Oqb*~=% zER~H17gOb1e}7j;-Z+68F$iNxx&R=gI$CArsA8VTKKH9rYNkG}I|J48Db{+UV zKalkcMhgsu2@+oL`^u&sz%ZuXY^*`~Ju%su@kQx2kMVnYSVUt|LZLv00l*v@wI6-} zhJoKF7G*JQ>}vU0J-ed7uFcdBM!gwm^6GhbH)W_e6u!~b{Cqo^g}y2%;zNM`RXv|E5s zitYH{Ez|W57iM$+1z(P{$4X4Im*Tk4cDZi6*p%+^qEKUwSo< zY6+i|YRk-pU2?6tIxPGtZ%nS3c&i~s?f*E0LJMp{ozp0Y#+|B^g$u+c*#~nhK=I|& zH|L<|;-YG6bBmUR#8uBb;J9xe9)!VWsOZjUDyn(#+qMW?Pix!w1fu}k8e;E;!V-@^ z&ykLl3QI!oe>!FU>8IEx)h$^Nj(*K~2^MAlG0doIzLc`yUiucE43ZRif?`83!Eg(R z1GY^k{PbAY8u*#gO7Js{6(AVW*bH`E&2A^{TMZF^RV3?C#Hnu6$NFx3{lHIlnzOvf zglD_E;d{DJmUFb9u^nb+rBb6TUPuSbOtb9xj()3VhyS|xzf(qg|BMW;UXw?phB*{^ zcwGOEfrlWHf{S4IIk$xx%@!I@Szzz!Wz7DJ&pNlMm70iYMj_tI*U2kYeC$`kv^#^N znbj+PdHM41XEL&?L+LONjIO7@*BqZCULExWtxlD+@+Yotp5a#{h*P~>`bfWK8%b39 zJ_e=|*8XTsU0M(5LvszX1_ndqm13-?%Mr?IWgM3t#!qt17~wN<;ey#vC11yQRIbt= zdrdyodwZk4F&s2?Uy~y*&LaXk!&ZvcKu`Jj4Cwjs7rZsIgx4q(N?H3kT-6#FN4>hZ zgTEy|NTAWo%L|(&R}@!euyPGA6k_V{COl5?pEjDt@o=oel!0{TIPuq^aJB2CCxgf1 zLQnv-EsS$^9WW})QI6$_J6lyxGZzj2M+|Wrww^=qPo~Y%DFEd8@O1ejeQs~vPpK0H zg_nOp3n06+ZWsk+C^WRE4wR8hFCQ+7K_`w`I&|n)@ty@IZhw=&KHw)k#)+Q(4>W$? z56Tu9N5y`A20K9=VQ#ah8<$J_8{e&MbT-{O;3MOkc=3cE%(qoeZ9C!Gh1h-%4|7W! zbU+?HSWf?!<;>-8EJ%$`?^4UvGXqPjFLNv=y;^DacdA-wRFrV=MtgDiM$a^YXLIs~ z8~3k_O3iXH>y~fV?0(y_Q?LK|FM;uQmpm2(7y)pVrn>a@;}8<-#&%Z zE$0q+Z*fqN5BzwbydDq=J-r;d8nB-86UZ?}dxJOAtm$0Vb%?cS_NDztj;k+Ug|YEh zzIB#7A90PGyb47t3$0llcq%Q>5Be0M^LZs)>^}T`f*2w1&M?G4aKjbh`%Ekme+r=zwe8Aa239!^^NF{emBc#MC3BkDF_2D{tVc$m#|EG=eg)vgQ|dSsur5bymlyE|Gd_(G#w=9Vw+K9O1`OT$`rkXpkk6nkh4%IKTO(qjc?fab zyWB>NzjnLcF-I{RqbqDqgh`sl3seVh4YLG3r!^N~k&$5VhZJKQWSF*diURVvHo~wCmr}Yqpww1Wm{PD8 zwhxeRYtuNDlUSfxDE^&Iw++doZu&3y-R+PjR_EqV@kYgg?DvGiH@8cI8i_Y@iGZtk z3PzOo4V;i^IzyJ&YIAxH{8S|UT7CZ0mWMl)2z~Bc+7_1h5vOuYh3$&j)RTw*x5~EW z7kn2J3cbu(S+Z6@AHtM@VKQYg!g9u!dWkbGYo5)Rb$?#-ah9)=f0Zy#)7i*ew6jtE zm5PcM`UBmxiKC9NfM1A9oAlt7FNHzaOPG`;s4Pg@m${a#bL z4_~%FA92yofR7Impp)Zz`vf}RCb_xd9`j#PpgRIq+)p3b7{@&Ks}W@m%N9bB9!(Xs zD73`_WHz_+?Oi0Pjl@RJ;bruHlE6KA$TjbPqGI>5BOQUqejFmjZ_fYE3*cJU@c*77 zoX7C@mb{=a)$Y5UT*nZ-W)cXoQ`Al9{vrWCJ5J+q2Cl{Q`?HY?t*YmpX%t-($eoVE zb~>v>11}Hr+SP(`*R_q7HcqVtXD)>L3OQ(j_Sa?FIkNC=&Ht;$!DHR9ZET;V#v%IP zBv2XjM7xt{zdDRmf}tYF2vyy&xLR1Nfnw44$XI61!0tjHJxL3_$ji*y!3Wy(rVV7f zP5TMi(~TA=gaYmndb)=hfyhL1kscAQ-QY3*q^xwUuZRj4H*sc({=#m4xRl~WYf_hn zHBdmSq3;s86{eNfbt%n2fZDL>ytVhdFsUfwnq}v} zY_bY>86HY?UmfUwnQE8lDWBsX3y#@a1KlI3Y7*UMcT)Om-tWro)PI|j0I)Bwch|a3 z5iC;%rq?xXY4o2J7YY&N=;_2gH>0hn5?T_CwXF_3x;P&e@VUyGMJGe~SZ8e#%j#}q z&Keyb+5zR(X~3p7$D;+3isYH~vpp?v?nmHX(7y~%hQ&|6dI%4v0BV)ZwOm`VlNg8> z84X5xQBq)`IvU@Sc10FUH+}bv!e={@H0R#(93Ml*8z~%?<~n|GB%$o}>xtCxeZ&@_ z=vO&J+#Qi8Nf z=OQRbNlL>aDbn36Azcd6u^<8>CDIa0N(o4(EGXTbA|TQo3(MAf_Wo7%@CbaTU|HRsnm!JM~T^QhfLRH0EnY^#s_*|=u( zEM4k>KUVaG$Irt5XD>CJSa|)-+<)#nvj9=0lE;}fBi+9^U$KThdNi`+uTArbg2f*+ zJAXRS`1)VEP|3#2$SbNVf&QPYWb=5!qU|_F=|Zuq%I5T=c5IK~s?7gzF7?zNn`Z;9 z=DN3){HFSUpT2!tdqoxv#X)t+NKI3M15V3KMs*h{OTL5DzwOs@n|%378T5r&8jZmv zF(a%av%#!x)|s*gh39m?8u3mI^s@bSZ{wT)9Yu;_&Hv3wZj*R7eTKL$+$F-4UzPl= z6hSicZ{(+Sf+7dzBFgy;b|CHV8kJWM{dKZfQ~jmA##7q<4=*K)P3)g?+G`8; zHjP_q;qtgeZ_Km2*va?l$V_G?9wY~&9e$-!-g?>v-5E?fE!sS^=>CKX*_#ZD#HtJ@7 z82JnBz;R9EXmCqX%D+Cm)>9*!B$DMI`ot(&M97tik~%b^*ma_mpbu1%7UN@l50MUR zcn54s-yvK8vlj(zLEPbgwUv+UtwvjlJkGF;C8L#|iS|rfr{z{n$8WIjW9jU5!KP zUq8qwBqmr?IV*x)7A*iZpc%?}j~KAQA=vL{91m7arn{S5EjP?vZ%?sZRVLM;o5az6 zy_u*kSF$wHc6xSn;2nop9G{3^TBMqA!6wH*Vx;7#4JIeNw;+Pk)3;LG_2XS!Sz{?b ziw{QtR^-Fzo4`X@p`BG&pULK{&T@HnA2t`;0np-3l-(=pO^H^C1PAUbHbC8loLh>fpMqzTjK63i?_hU$r?DW~N@o5~Je80so;zK&PWLBtPZ6H5`A37RsY0vL zj?d(l=GDrP`|)lW(I`Rfh-YEzRb=j#9XPj6+<{(P_@4#(hKlLO<6JW(8Jb1)pA;*0aIFF$K8#(ioGyq3MPGZ%Q7bg& z@>yKDWtEv{?%%pZ@c<6z|C)S?FE=Y(vHV#4_xeXU7Me`4yHAKh5HF*ZpAQOb+s2Dx z&A-apEBslhNH#E6cQL+I zwkucvlg~BiN3yu@>RPjB@ZOuXGoI78K*-`eOgS2izH0CPE3_1Y(AE6ciCF03qI%VW zFcrP(z*X`!{SeHB7Jse*bN`XYiO5Ia#sJR$JBeA9R?VKs`pYQ`y1QKL+jy$3XZq~> z9@ukr-ej|u8Vr)jIlYV(Uii%}()&kst}=Z#Em>X4gH62e_`R=;_JwQSjU$>a?03)0 zU$2Z+TYGw^8ZNn^-D?iuYe#TT|7HyOYsj#rcUOf~T~Gt@I~Jv$l!2^5=@%GJGjzGn zcm>#0N8xJE(ap!RTOWTz%&B)K&u~t$IF91?@Z-?te8$|T zGf7sefPt#=Q6gyt+!Pd=GL)zE)>yoSbiZBkFe29VWtE&BLZ? zwrCb+&laAq=6Jp?7*Hg59f(oIyH}t|!r>4=!qod=a7dI@TK_@7qM@M2p>=>w_8Ct* zvIDm`;Qv|v*c&}D>Lnz5g7R2;dj!d}&Z#jFqhf{P6<902(e1}3r~J&SN-ZKG7y~9l zB<8#$LAG4p=Y#6f>72haN1~J#Z(U*xN5dky-x9UO`z}X{OL)V%L26&fbcKMIBh^S* zgO}P8UV|C>#cpk~qrO{C`;TKV=WeKVx(`>)=O|-mKCe}(eaZU@RMGa)>xAFm&QQ+k zQ!_F2hD(3u7 z{l2Rteb(eq`@^>sne!DytX~o+f)X^vWb73``QSs+X&6)OuToJ1bzFoxd4=3uJ_DN_ zuli@}@7P%oW3)j5Hqtkwa8vFCI9c@F+V6NA!M09jS?O#&QHbEvkjX^ON*A$4IbJ2k zVLWTj;bEhTN(c6Z8dt)`1Mu%FSl){MF=mv1WPHq&O&BLv#O^j$L5$BPwo9(Az>&2B zbt}z{($imgFb~u~Bou}ZYjYa$lh{(GTiqQ#cI~GkH8mwv?wfVqXv%Yl?C?hrMc`*F z2C_~fHb%F1zy%N0{1(5dtGgTZBWI`H%62WcZ_DvcZlBM->^IVgTdaXbFT?nIg=8-T z5>42iB)-ADr=jHABkWmgE5m-P!BvkVHMyOCN-043Y}Js;Bxc2wQ&i-=(J0kLNVqx|1EjQ0ZcatQ)vDeG~bYD|4V!6$Y2hPdFJ7z3lC)K?Q~ zjJ$D61aEYo)%%R?+6b}Ed&Ir3O?-UM-hL+Zt}a_It-SwS_tTsx-2!D$r5XS04?k~j z7Plli4=6jslZN)TQakZ&irn?SUEzp+Vw0%Dv)bpv0U_i?F6J zWC`H_OjtCbdjajSqO4^<`B6D2J%8^uLcLibux>9@?p4ic6 z+{Z0`!IfZk?GRtSTO=jj5L?`(*SCCrR0HvsNx0f^Ter$)Vu7k@!=k#^W@o<`T`w-2 zIgj3F*?YUZD?*GHDQRbp6!H27@pyLfF{98&rRNoCK7PvMFGGA4b73AlinRXNIW_)X z+)S{IciWldL(Cl^yvT^eNujJEBq7I>e~lu5TX4;}40%3ZeB>*e)3W3PQ-CCo>{R_V z&5pwY+~;V5ZZqm9jFl34<`APeX)CopL4;o$*F&OFuu0>!z~#x!I7S{r{{t6*RnNoT zXeZ-q;N2Da_lt2ge<(VFhl+IlwZEGep&+7w@$KEI*taXGq6%j&X*q?W&wolvV6S3~ z??SxY>np=wO_vP%KILpWL3#G4jO{;J{3|iO(FA9B8k13HpS#MvRnT+>B9?2Ub?T0s zki$qzCV_|U@PrnrhDa2z4h&Y&W;Kq@cw?T=#x{~+yPM83iCLgVw?1yJ72Wgw{AKek z$xI0Af9(z&W!c|L;qUgyF6e7@>#R1zY9Xid;e4YRwWZXz5(>6c6eecW1 z9`P^XkQuG1H@Mh-Nvi}j=zc5>LEU7ZQ6@kmQE=#r>mhNLo%eWRJRt`xAi%bVFhg$Y z+clk^0(rXeDnD%*@)=OP$U8E5k^Ol0zB>-j>@+KSY0`ZzGLQdYP;l+J-CI@aXULKu zohrupDM5Q8C4JY0WXBk=qe&w+?3_bRq=w>Q1+lonxRUkl7(7X`tF+YD2bMr$Nps$vp%ZlG=&R#5+34ia#2OgXll6=vZ z$nmdq2q-IN`x1nI$8qdF0n`59!ve#SRjDir&Xe`gyw7B|<(>_>_j3lPCfHwF+}E-O ztM&KR_YF6JC8Kjvdw6d%dJf#~w`K|4OP|M;2(T2T@@t~UsGj5>U-(;sKNx6a2}*gY za{DwIV}99VvcFpM`C<8&adJWRxyX^wUx^X|cu}PJrXn>`OV6eg_=Rb)5iu(RJ;h=* zB&d5%FFDkgt2`c4A>#qU3~M082|%VkzJVJ}nVHJr(-6bP7&U%+-35e}TLH1u-H>Z& zrBF~5;Qmukc3A(`zVcTvVo{1+(a(7U9=fzvbuTKPQuOXyJT;`14HzDdFRvc()=HAN-?Otyya>_qU0>f=KDO)?A?= zCK!AQoVgr}gccc_C<;$Y%FU+p;#9Zd)Cu!&GKg(-CrTrV>U}n=yfyTjd)4xzx{-}~ z;OCp+*CPE)Q2N23&E#Kho1lmoQ-=g-J^zDvLfM(gZZ)tvu2$jbvnX8?&Ue%VTP3}3 ztXR5r(<_&AeMIdz6_Hc}nU{TcIFZF<=l9#!Hi43X?J5$Sp8ckrykF^~RXVfY?p-x{ z6v$Lh{}*h-vDz94Uw}Cs77yac2;Okwz5b_lw;ivj=WAFX1slohOHh(IWWk@etRb{; zK`YW`8YkiXBj_97(j#aRC-O6?lpIOmC2Vn2~U^talCYWt3Vn zk^Eg#WW4};m?G$@bJTgx8jc2$VK&s3cHR6Rz5XaSBOp+ot9v@1;c|}Bivg;xTnYZh z8j|GpC9F?8ofwFL*Fe;!{8bhKJPeFvh3$7HQ1PMeendLHsR*}y-$EDlxPW}eDLPNR%~A5JD3BbKV@dC{=h@+D`}xosEJIx zk9AftIR5+?)i>~$d@)6nZA4i;{SN~4<_cniVR{<{(CB$kgA#X4J*tTMZAJ4qD8G^&Z47;h3s=R0Zb&k!|!PnE4Gt z2$#&oQSj@lQRpHbXBDl@Yh_NrB|_d(p6UQxY7HNal6NHci1qtn_@!7u{R{TuBO|2; zF-+gNU{%%Ox#}LPJOWE`o>h3he6JEh*uG&P-X}paVCMQeP@?$T;!COislM_;!&I=u zk24$6Wd}Sog{3Eg$#?-;vb?4o@*PPSWoy9r?65oTj%nwt)w{Ot(PXB^;9U~4QMa@4 z0r;u2o%GLsCxI#so!cDl?_up59oyQT+oWfleE?SH*xj@e50Kw=^ZQ36tQOah!G0sq zT26{vuSQjK+0Yq#@HPGUkm_^sIzq^K6_>&t_5I-bbZLDqqQvvB8O5(!MzlL^=11`B z?>qpZ))TRsTvDU&N&+d^W1LWUa<`WV@&uKvgWhS0;*aRoWi3hy50{ieLh@*j&UG;)PdeBEykP#`OS%f zpuv5-q-4Mz3o~^%nA8DYG-?_6Ve}n8nI(VLw?P=jwcq2Pe{lev6G`1lAgN_~RUfhD zGm}*BaPV~Rg*$aAj)-M%;$ClS>STL3HCNP7L`$8q(;s991>XCYAA@VE&cywwk;?1` zCxgK3mm*W+47>6dch$)o6#W}VEYxH;DqLPWS_6X;^{V%*6NA#0q0BrF{t=Oq{#H}0 zBjh5FX=D;uQ~|LcY}R$(bqS%#jZ2GIzEDax6ZjbyWXa6*Ebrxbf5k3Y0gKsoe2=-!4bMFjU9E~)goEYE?!86WkkQxoAYPFI;o$zi5vS^wj|Y^U zLq%}Imamk}S4_9=tus!uI?0kCYC4QtJeqj<`GInNdSwn?i$1FR)_}*1Xr(!i+8`y`fTk&f1a~>TjwAh98`ZZMx>Vuh)A^0cmRy4^xKqsRg~pg$BWSo|ujJ z$Ge#|KXxG(vt^l-U`&`JBD;*sDVYVe8rI}BkPhJwz#N0pmSm5u=&|`9V(S2Yeekcm zvNT1N{%lgbfDCdOWFD4xbDvmij54!Do}WZfESv7c{nx?5Zr zUc;N7-D4cJ1Q^i;uJ^4$GBG>e`ciXQP@a z)r8N?H#*$5w;`|b%`caXJmgG#AeM^n{$*39YEJLCV1X1W?{Rlg*ND2@c;)(g&<)P# zww39d-FB>2H?g40b}%#5Ws*$^zA1J*63aJl?%ISI^|yI8pUz>Gux`KpEjtYV&JeWs zdZ6*N4w&)Ttuiqm_d$SGSar}R8gN3xWn&ulkgX$U4{$$}6gjj0a9p;N;U&}Lm)>G? z`#F4mvj}i;6Awl`fr+@QlAuU7W<1X4IJ#8s)uzhLUuUNgv3yy58*KaD`LgLTpXEXI zhH^Dbp**hXO_QhF!ettLjL=CcTWqx_ak6V#$IU^e_vfaygKVW(U>ss_SO2FmxaD%UK%QcAKF;wHBtg~8#BsY zd1mQ!dGI+_8QR(N@DSYJ>p}M+9sxDWc4JQz0cLhtJ%u)Pa;F`d{xdxOf{>%Oo4MLOwvgV?=Sx8slEeQ&6qmQ>GnZbWJ~IhS zLGuJn53*H|>^?TU4Dv#nGD4g-P!C=R=F;QlP+cfJN{!7a6|CxJ}N(9F*kAjBHNwB_LLgi>Zx1M} z0DQZ(8=gCzeLU{w?9l$MZ4LR6B)xW3!BF993(YuA%SHa2VE(IT?u(K9VD3{yt<1!T}S(p9&&^IGok92M&3=KL=M%*sRquxPq4yVE{U3wsK^#&rxMKF9rpg!Gx;248E% zGX2)_Y-6l-YfY}t&$n&=im#97a1&v;7@sY_m0>?qFT>IsERYV9ZRkAK^_mv?BKu8H zC}fX!>*%Dd!K2HPb`Q}zpAv4%6GK!lDOx1pim{gd%xodLeK-AE5YD*-x`FZCQ7uvZ z&vR4E#99XTX0V16MS6RNvQfLI8Vkgt%n1qqmL#>|!Wb}rI zr3K_#HO#G%q9lGXd2SZ!^yK_Xr0!K-2gIMgM4a1e|ESXE$Tnx~O;!rCP(VFA(gc6Z zD1dYh#@B=$fR7!)CKAA=>~IZ>cY*!|3LLPIw{wmtV*+$%Ue3tJapnZLl6pFD?>#PVJAV*CEN*2c%t{R(gy>a)r(#q z?qqm^kn3_-{sCOVbpD}`%=R3TraX{q4bN6j&(smM2F8{1`)?+ZVK&$6rH$+MmB>q} zkWu`8{tJ-!guc^n`g(|w+HAgq1>LlTeWvcJE?PEcUL=}s3LG@#aWjjaxhmZU21A@j z%D}y>Md7^QQ!&G>J)wL726)cU11v<}7TGMxCrlf!F&AD^cFCd$##~elp8%C!8V&vy zI-c<;)Z7Gp*yUq_IcZ-9UfuA1m75*7(x)_Y8_zdQKomP?yUvGgHx3Hj*@q2ja4a++ zJ;Y1b(Yp6`MUt%Hme4WZ)&V4kABrGW>(2BY)`bTbbt0}y7a$bw5@lFHL8g#N@5i)> zOYl9=3(iJyQZ&gj?@^Pa#uy7!On?jb*3rX8mZ^t`&WsN^a%2;bmedCK-TK!spVpvj zZ5_V5P|GLV;%K$%&3Jp)Wz;*Zrq$w!?g{~U2P5NxL@^t7a@Q4LHRUvk{eOyK@6;hA zX-Dkn_YNcKPge}s&$19({E$|mTx0kFRZK?OvK-!h?0%`M(I;v{;p^TqR)_+6C}al# zllCTNn*=xcS9bnY*AW6Xe+2CI+M*{rA3dttV}QPGe;kEN5XF|U(Yy5rU750EgPOS6 znvsjT8h5&B7zx-R36uKuDk6gRJ$yGeD0Qs*k1?qaE-(ke3;*Z_2ok9w+9v z;+&A*Tne-WoVHMn+tm1C0OZf*}@hIOoWW8v>lTBZtd5Or^n{5saazC z216#{hNcu?T;Y<>wsK#c7B=&Xouw9#DS@N&cage_X-nL%#Zo6y{1bgT*l%^u-TBMo zMDwZngByiQ8a&Z75utbggr;2~_?TkTA%-W@n`E{G-Ersn*K5``*9$Ec3knFXKq1s7 zA$1F}T07`MQ-_aqDjB%*R`O8LbFW#C`;b6-Viumq)A#aZvC3?G>W8m(;2 z4$ePS`XpvTA~@}xJyNx1VYxCD2mN;Q25b2gry_mK16Ar-t~*}nLh0TvjfTk_CDd>3 zyU+0~#m@x3O+-M^j+vRpJ9%Q$Cvog(C$Oan_-e{=`)kg16}aB?BlcOpRBl1!SNuDk z_0Po`8x|jB6~hI8u;5;q_1@1~s_3bZGi%gxjES(BrBJ!7QVX=JMpYb)c~+p97_jo& z6{%bL$#cfl;M^%Os9w=^$6I%#y)_mM;J%Mj&I&}~1`e9fO%*2SV7uNIBlCEY#?S-c z@YX$c#@o&hPjUqetF9KH+uA4+35F|RXd;&{Gu)>+^tiZTt7zw6_MaORjg;;6SAevB zA|3KgbO5#1PZvhw0NkJgP5}D>sPvg++}Uh3Y1kXCMGc^?TyofB?MoBsuEr087q?2N zHGda%iu66xy(-`vrtE+5P8sgvAwt(zAOT)MgLm97J9j+VHe=Y(3(5P-#IsYtS1`wy zCoDRa#$KIyRlTLZ{noV11B!I~%gf}BHDU{)cQ5Abrebh88DxX&^d~HT!Yyx>GIN*P z)gKP;>_HQ{exFARouvnVEOO}tqQaZ9B}yK1Va?+Fk7saA8Sa{c`KXin=U@V^mc0OJ z*%tc}=q|uH07pO>@2T7hD@=u;l0A287bqY1??6sLm_Cz5L(INrReZRv*-G^}=e>$c zxTj7Tt7gHEp@^!3OnKpK|1p3q?rLF-E5;@y_!o!idaPQZOcv)y!g*rOuAT#n9?iwO`BC}dHAdON8h`yx{yl=sbbd2=M2S^$|sG3!nak{L6x-|g1%e-Z2*(-?9 zM3%M?VCT5?$2XasI7jt%*C16cwE%9@TD}=-`7+jv5}u3>+&aP)!HxpuRQx zEuACWX%3%9A0aE zvmNXL^6(wLI2_0vi*EJLwF%X%N(yRdy%x2g>I|EyZ+i9ZoaCt%QUe z1wWQbKgt!94bVxmmPIVS>#F^3v1YkkCyyM-%@v^jBV~R(<=|Qdb}5oOuPY6;X!&{a zL-vUIP#;ZAjID-#RBd?47 z7vwE7u|r)j zj-=GJKNRa#M$~z_$1*Gn9$Zg9f4KTH3?~VK{JHU3UGYZf8L_N{GIeT$Gl?v|yC~3k zw0k<=V4hj}St47{mvr~ClbK+!`kV_?56^|U`IFIcg#({C?g~w@SLV(Tmw$P36nB&3a7;k zQLsA;s6qy37FlP%2O&*U$n48Zoah5;_dt&Vt=>}`7sO{Ut7h1l5C5X~S%5Y!Ldt?8 zZsEiC(%-AZ?_vn0T)v-aC7&1lyF2yRh){tWz1tu&Z0jhAH`a7Oo;X!13g-FiRx$GD z9FIGK2K4tV@`I1Gti;Y$5v1=g(+O-~u< zL2icU>-|y{OM}P6OY9o4(JRr|fqS0Vwyi(bTP+AmS8weWQR;<@cpjKkx`e?CmZdKb zE(>1-U(G|`wtl2$;X8Xkj zNSZ9(&g8xlSDnsx%ZGA*x*rC<#oIs)NBZ`_@ApLDQ9SR6bdB1CIDAdK2mPO(Qx!xC zx}MuUk-oxbecPN-+=b8lhTh=FHT~2))?NQwZtu7erqL(-ANRM*SAj zI-meN!vS(x?dbJU@E5KGGz>bLDJs~mTcZk1jg0bP@D%+%84nHwOHt|F}Kr1g$ zSxbRG94_6wuviJjR3+$eDEaBihZX&{=_(^aT$tpNNgV!5ZZM}ttd|mLGoD9O&dg@;M2KiqC z`pG#0rjQzEaypvBSq45K^r%(PxvEwA6nv}X7YN;A9u^YRjG1T|%^+u&)}Ln!aXEtP z0l34H?9SM;+it}W{mu1Myw@E{6D9fPfC4+EaYvFUhlzIS3NruE;ZTh=m#}Dp?mWvt z8$BZ2SP5B%F%~5AsYi!Ga8W$o)nRMcmuyO68L>D}D+KC#>$_CvP~)*CUCiGdOtJpO zQ|6&`fAHS8j@`y1>%OPCyF&RLt zyK-r98quX#Ea|1+3b9MUdsx2REU|y*hydA=KCUgYyx=cuj_jL+_hYWk}l<2$d|q zlAxcHgLTFBY)%kVB{~e_!$mqh86Jt;LzzbOGM>-@jSI-KXydMB=t{NkR?kkW7(4!m z%hm^ae#@DO1N*K@q2$vRBkV~K+T$iE(`AE`(-vopE}S7xe4NzeO^vF%$k3+QV*Ekn zREN4z8l(%(8!1ISK$XI>_#v}rny@dod?|;T+!}JjX7eML)7XD)=Q=-ZwpXApj^^f3 z$>GZ{^ZNEd+W`9^Xenh08FRLz2~$UVOD zM%|Cd$LO7Rr>sli+E;zr#M8zKTh%93D{=tWdCnRtu|AC4L8!tLqgtlcao)&?-Eh|J zi$)=WGs?W4oCMxN3e!R!Pa(M9+dfM>C$~}seoG04B1-5h@UBkFZ0078z2ZQYre?MQAEJcRa3 zpWmeuIVFDg||;knX8{%Wv0a3lu`YKS{Gk|szVS^Yk;sH z*ZxkZV3+1a^N?%c;@;vJo`NF&BHj#RL4~WWexGIQi+MNG;prd4S4|0Sm z+mPoYnpI=EpBx#XTC}cf$SPtH2A`ZZLw<5m1Kx6VAA8n~HMfS;ynvZn2?(xl>Aa+D zZ=Oa;fHLmxZ)+fX=lrRH*B!C<4#C%juQbt-P{ zW{ve2p)e^kbVGaMrTX=sL$EGDfG&GeSsU|I66e8i4PsfkD-yG8`%){j5et%=%io9e z!;Lqjotq5**?v$kt!P&D5KaQqnWDM)QR+x#D%PnFfc)9z+!nocV$NJk2MNHFUwwTv z-2vJewn*glbE4Y}Lr$ZIZ;~w_y0R%XsYSjEY3}es(+7JakD?Too+*UQ0@Ph6`R7VM zM7K*22o-#_@bo|e4 zVq|__EsPYc>PXIcN{|uIe&($SNs;fZOyj80p)F4h)~O^|5p4_JxPEHD;#21h3tRGJf+MkS{C>&&RQ4TAMfp915_6Z)`dGr`r6hTo^y)+^q(1H}#vJ zlP5n~Xol$l_!KKe=vtjXD`Lw&`j7+YtY9(rx@e7DNO{TW zXyh+x33+z!xdAOYtNhphlvNs=-iT`ovY4&2ES$Wv#S#Y3A4db0yc4LaigUZwX37^= z-vA!mrcuy|tpC>48Hbh6RoNQ5c#%+e052SAnYtwg$`@R@`~$9`1)u*MIxmJliEOfd zq=2gJtWguXG{(D%0*hH6)1@6x8;@*WmL_%}Jb;xoB|Y`%l<)w<#6tPOg132HpXyCa z)sKG^xA8K#maWW~PTVw~&sJKa>OZs|EQ-X8;Q(Z&*!E58!V?b02Dtgugp{!-Yo;4C zz#^UacSNQLcDQ8JT6^MFaBj|A2lHmm)u2adStVqb+-H$2(k>11stBs5+i;++^U8`JHp?ktQ&lO zty!6cBdI0Ke+76sY7!! zHSZ;Er48IY=ia;mQgD5Xup9l-p(K(daEl`GA`MPnaWQ8|El0#iww0Q@-SSwSUu>Zq zT=T6`yzQkhiTy24a_>n4(7UvgyMufZRZV5`{T=9+65)xZbbjat0a@V?KJWU?Vk(S& zRDV6ub%Ou#Tl!M48x#0tAZLTW$vd|9!*A%)`7ca;*iMapIJI~LF1bmIrWeayT9_bU zDA`*5NQ-)nS`OP&)?8KS+pqT9V=Ct8Q{Q1WC}zhIJ@C{#H$2SK$9`;Cv_)f0=a=#8hAGu1>&1~g=+&(YuI>zA{iW!f2;z_L-$3N%Nb;|Y`7w~6iP z-FlONyl~uH)ur~D^bgI~Up+Q+l1IwncYGT^5I>!z#xhz*=Gv4(zO;5U$qsDo0=Ub8 zu2HnI0}wR_)ItK0^?y&EPXy`W-TC0*bou~b(2Dbjz$X-us?LiG9ybz-58r`GcgP*= z)Lb1v7>z^IMXW?zzw9k*^bP=rc3ULjXq3+?U9he1WKR98b!Yf~a(|`Ua&oxax0#Db zOUb=|?~webl>?;+Xd$j?VDCmro>02%Wyr-lu5^Jq0Lkt}=-r{4!a)g+ zz=0BQIe&nkgg-%>!}Js)ErUl2z~01dpZJf7K zLD-zTZ3m@5iXx_;i#~{>+mG*PeRWZHd?%&dyxuH$w@3rTX9zdZV=r?J${@YPC>Wm( z7{av0-3XS&ColCZc|D4ZuvXcdEfJBjq1zwvhF*j`5!NWpSpzoeH!ooE6jRq#5d55| z<`@1U{Rp87pu>OgY|4l`Bh$FG=KA?-{a z1;1vi8dyRHW_rnIcrSIUkcDSh4DMNJ1x0w={D91L5DgG?%ao8*gUz%%Vy`MzNmXVZ zhqq+uM1)-H51=(~Rf8Ly@9f_W91cxiPBQ>e;MX61L}?zLoTNrQlnT>gatO)^_c}tY z_@_f~XJW&S3*L?;eDP|!_!&`bb7y8%KhFkErGBck-KgCWd6G0sIGg`hUouX)CfOY7b_6NmamY)jX*qmg?0itaDU9k0)K2Fo*xMVmc* zp;LBckBD0wte~nMvV^OdIP)-lhXZ)01CiIVJ2snWs<9({W-90t$`!M52n^5GMh49C ztPD;jzy{1J2!BGH9=j-gPX6^r`L5bQpd@QW(v(SZjf^hTeI^vM5R)Oa_e`V~bC$Q& zwkEC5Ug$mDb=pyey_4V$moWTuRVKD&2pViq5s!`bZ9~jV_@hNGlvlezXsF5o3G2uQ z@F*2g9rQT-H67JEg;9XEJ=ao0kb|gt4ES*lU$g4k+#AR&0~<{AnJ4YHvs*1!3Kbo; zulT2Bc5b)V7ysd=+bckz{q;O+qZAGJ9-uN`L6tZ0&K5Ab+prY< zfmm@aqT_D6{`kXujP5TJeqZDL-uo=x8plh39~KGmc&aJh04luNvF2t!z2s_;7B0fe z{3St<(c{Rue$S<~iJaumw?DY(dxX3XWhMrhGQKO?52$O2*mii1j(&>w7}s?!3)fq` zkutgLkkNk7F`~MQs&hRw(`I3*HA1_uCz96ClY&3( zndi0TUSnM)snYK?ZL}g{LN9lSEX+OAD~p$x5hI-O4e+qp$n}X$p{kJSpt6#4%nI%{ z*73=x559#7MsX|jN|8Rbdn0Y1rvI={J2T_^`wgJW(Na_g;}zNmx0>lR-b zJPoX*k*OD{iBwU%ulR&A5RY+-nECN*6Dl~7Mo{hH-#L*`RzZsn|D2Zj3aasqh$uB? z4kr3M3AOkk+WF?f_tgit^eY$#?2LrbZ<%7VR$t)>#@ORsEWWURde7Z@?aZdb*6yU{ zAA7MiWJY%0X>(V7yp`{N;zO;WVwjgrfX^ni)uXp$Iu^j2DCxL6AmX?>w(BRlJk#Gj zD3Db=U8nI*EPUFY3Tj;UqST~$hWU0;@?xIF>0Y;W32b2XJD%RY)5WuKCK|ODd4as9 z*?9K9T}}`!_SHqtB&x(~9}1T-Kl{v`+#dXX5#eyp>9OUhGdY{x)j|lt48D~XE2VIO zGOFsnB}=Gp@CHS!86S@>G07u|IKD>2oT#-&Af?RDi1YptbDqG*QuorS$(}gZHn&z7 z3rn|*T-HFi>*c@G#ie^f`?K+#XrEP5l&EDlM}2#|=}l3#2Tjc=?z238p{~e%R9;58 zoP0?V(htwsG5ONMH2;jq;JV--6Z`7<%JkQ7^HvpCrX3k{P^(B?pe||$MB=PO!lRro z&U6Z?Gd$6a=joy#Vt$>52H8Ab>7~*S*}WYxc7)z4KAo0rlojdswW4oO9Nmrb6JWYF z&W`QP7t9g;MvN9qf3V&QYlks?N$ltY#K~Lr962ppMUr$fH8)}6&{4;(FGU93a>SxZ+OnwM?nE@M8VyzLFZ@~`3uRD^#rmesL4 zY~rhYV0RIqg8r>`A$?>4*vh6M=6gxPB+t_Y@{k4igCkg7-_RHch;V}AyidV@je-LJE<7^{M!hyHoJ0hT%@OjT&2;9Gr8hPgcUK+ zz_VyOA12Ph;@SrZD>Z8waci$d@mqH;$?Ac~zd}D|*u@8TjPBwU^o_yEGGbU9H-YX< zi6M6!HCx?gJ_fP?6<>nN9N$q_scicaLDu51Xe9LP^rOs51W{mTMNJlEuD?2=k$DXj zUHPDRHvxD=615(+y7d=tZkW+a8!GruxUtDNqTv9{c?hOh68>1k$V2iGtmk$=suy1) zg5V5wF~@$s94bm^Q_c_*AcGzk^Y>MIY)h;k9(4!sx`mx^ZS+cOWGR;)rLlCxPF_g*@f0sUvA=}l)h7{PdSy1cfjCN`VI@$|?;+M+`ebF>YWTYgL7k?@GBJHiYN zRsakr6KM~;Q*I}36H8KnaUqA=)4K;8q$Y`M3r%mxpWdaP+hu^9g#Mem%Gy{$AIqWB#%V@ zL737kDK`HlYXSMpeJ zG(wrkGUHj`0;1Lf4HCwQkN;|AA)zx>j0lY;pc;NW3dXP8wvz6;_dI3G0BHn;AKX$Z zjFus~!cpe`PYVD-VV6xy`&x%s>0B*^jedPn9S=_$k4#;ajM};WB{QBh=gb|MPu?N> z-}}$ElAD<)#Vy=Z|P;V_5-SAJYqyQvFv2MR5lU7GPZF1Q7vJWHdXb#tLw^UMGC|5hSd{wWS^?>R_Y z!*|wRwg94=LV@^rL}9ivS@^C6+=>rLA}t?lpl=ji>>2^CoSQ<292)$(MWk4iBk_;Z zoZVYGQT-8&212am&}Ibi{61#@o7hD^ifag%e)9)I;}wwWp7z|5Bb|0uPUGp}EH z0NJ~8zFh7W>;sm7^5dTf2IL|TAx+BtV-mQ-)11)O?f z7n81$+SejMF<#K(rYqYKPHeZe1dTm*55gqyB-RqAr+6u{tmFBmAanAT_E8CP&Yc@EbB)IGi|j-mt9o)w8x4%_5v)nT&a#~KNq`E-2R~3<3Ics{zd;68@NFZnUk~h zbe4#s?XMDjg3%}??+xE;@tU<~17{?!SJaP`1S<_&7K`8kjE4{uckUMs25{vW2^!YvBtd;cb-L0WR@Zlqhf zkr0tsy1RSnM!J+nB&DUL8>FPWyE~TMXL*0Vzw3JbfsL7S&di*9=5@ESTo)fV>F|Ke z1X1PNUv6(GLsjKPukM&PsBtI5Faz#(Xw z;K@Dt=NMmvM+wT{ZYKCzAmu>@aa{LT?Egpss`>bwcT`TCk48ptQC$R03t<+Sjpdc? zLIrKA%CgYnP>|nFP}5ml&)=Fc=w}6!VY)Y;f(8QshMr)Dw&VK4!kVr_E`al9MnTHn zqxjX+J1d^SAW)JenYXdWpI{R7Ib}o5@hGkhb^bRAPbfWx(2+*yorr|n#>4f)b{@}y zBz*hWy+q;wIBx_I`>3lrCpkB3hJNGEtDL(j&Y!&5UV=P<$YLA+CU8c*B5S z^d*hvp%7B3qwTy?g(*g3nkCesXGq_%y?a~vd0H)TFB^^0EdjiB>2=Fq%~@Z+Oox)K z!)UScj;l7b20ph4%lBVigtuu0Ia)Vx7U%{?>`emVnzFV|JFB$wda1QI8A3NBA5n{3 zhO}8WWmJR_4rDmATr?dXb6qg3NLc0e8_`5nfecOV}1VN z>n1wKCU2XMJOroEoYYN;*9rI2EsS0=_|XzthOZ`gDbUWv&t=oz!b9w}gGY;O9rUdL zYUbZ`zM{v`asAcx>f7w@*sR^?Oc2LKniFgxp$Z)#lKJB6sgNLdT2W|?6j~k%_fqd- z%tb}=;|Kn9Yx`*{q}K^bQD48C+;+~=dHI`lL`Pr1ZtUmL!+iI9{`WBsq8U-0zeJok zo7S!&b(Vi^EKYCqdV&M7aKZ0XHyr6if|AyLE=i*C>zT(-1spitI)BSz)GTfwwjQkv zX@d}&K^GT)?KY|cSb*&ii8R$^4xlIabjd|`(erq4bcUNTt&Fb(W4Whk5a2w_3~$ec zd=eBHKw@D=W)Uh~@lNw{0}4l(xeaI7cK3I4V`7Xp*bwx)f3pdittQ^Mep%+aZ&A(O z#t$s26>)|(y@w)x>RRo9^}CG;GD9i?enAaE#=ixjps)qdw$MI(O~3k-gda0k5^v;Q z=2l)*2o}ku>$a4Ht4whF)X9oUR#w&&3AYt?x;AoMO%F=bba_7|_PBwIZ7+jq6;V{3 zWGCx;DB(8=|4%Z1|e{hk0r<84(Cir!eFa zt1g`JH{8~tBT6?Wum{G=IELIiS4oV^URFS@%M;2*{g=I`P09W-h1aMLR|? z)$wyS(Jh*+k5)FEpT+*^NmO~7M`q;)?ne*A+;WXL4Sh#(4Q56C6(+P~uH$O@k?BYU zNln#fE+wy*g^*K7lf*gFPRt2iciy+|2df*n*c3_-4#ny51Ml8<7h%Ys6^j@^*Z=+g zC+O|~05Zk<0mId!*yy`Hsg*EWlPeAOU1@i#h|0e7c7~ww;YCfGvBgYAqi=mp_wvsWA6N{pQMk-1T#B_cb;+y+*%0Zxf$z z*zgBn4a<9Fj}Ia+R|-9UzFcC^Hvdl;#Rn}c%yI&T@A4L!FTqFjaD*6KQQWDRs9M<+ z$IYL|`fLAEejH&}^oAnMolZl^4>V@1!}+J038=F%KiD z--s52Vv#G8g0TDtfrC)fJs9HZzBAJ8MTqXamS8fpxC!_J98{&-idi=Y>EJH<9! zXh88MbPNIOw^3GY?=Sc1@*U8FKT$Z7?p7{)|Hxx*ZC(1V5{GS=$~eF3WU*~8JMe)} zQ~?wcIg~d!>Y(xW>rXurd7ZN-?wgUi&cV;WM%n-*!*R5s#4B6}6d*aLL1^6sjGoda z_qWx442IQnKwkN(;$l6YCmk#i!8P$?(Ss-7Md`FeEG{QpHibFEwe9TW`iKFd@`1$0fM4Th)7KI0#8P&vgRg=dJu`XN%@BjH)kuf z8b3E@Ca$ZMH`%Aj;8LA54wFwh!N-D$aBjH}e~aQ{;P9Q*0^f9RbG)4J(7{7&__ttT z$SHBU1H=n#GSTP(WmR6OKE_Fx@P_VRUT?&=X%2gAFs^@0Ve7jqr78RFar}hi`6Be? z1PBuOyvl7Xi6&VF4}%%09PN`Dyah+~`^ypJ^9+6NKQjsiL= z4i$lHX|+L-(HywBS%0Q`xDR?R4FZjppEbN)7@rBY9?JYfx=N)Mic06Ec zJa~;k;GSw8=!#shub1NPTc7GXp}-F=xn(4}xu zz`X>FulW1tE85K=*0NV7K_VRwr0Vw3yBS8_@<1CpamLTV%`5B6rk)>K$_U;~xMm@K zLz9t7`)~1tuIrqsj{KAyEu!;3GNc(E_wS=5w0$<23n|4sP@T-!^h?4Cl_=7?Rp?xs zQllc0g7l&il&>b8l1;``NI8GdT!rLX| zakdH_f=P+P=9k$p%6FA|9gJLsiL07c*&Oil%S|p4#U1Q&C*-T1pTo@RXlU@wOf@(P z$@ZJdj#mPLp{CtZcGXXU%Ci2RTpB#pFMZL`JnwFtykX&%5^rMv{eM`&3tYXfEv6H} zR;W#2Ve4nB|6_T=Odzc`yfJi#8zUcLi7N%K%ByBcBsx*LWuhg6#5+z|Nv*W`loS^e z(>~IxkFL?59g?K!TlHJ$3_80pE(0@sa;o%efuAb3r5T${|x3k zo#&`|a4m!P>S59Tr}m9>dgxS}Qsjv1VKb0%QwbgqP2o?wZi@j)*ua#Ze8ej@(E61e z_MgGRHpbJFSw?2g{1m^y(Nx11(RUTE;3`zEOxf7zPIvkmcy{VsJKTI~`8$+&#Z2|9XGmy@47gErCF zc9Qa;b&^8GM}5AIKk$R*G*z91jcs)C@o#Gvy#6C-sz@;?=YjacRH!>Q%wO~P>n}3+ z@cof?`m$rZT&!W1iSowINDK#PjAzPBDMed*p#t_CVJ`SfXhTCR79^GKB|Iy|AJ1Mv z{eMkvZizFdwiCn#fhpJ{QA6f5obNr01+`iFmK*yAg@7()9J=E_UAMyj2rkmw=}Ie) z5~MV`P;d>Jc)ega{2TxBKSraOr#lq?eDTFeU*PGfxAi+G&=T44`bTxAG3@s%M|Xlx zH~OrR01)I4r<{a{aQsnpC^N{Uo8;PhY zs=u?R`kJ%d-;%NCQNiUyY>FR83{l3XKU(MQlvkOf^nXK^7BMRuE0Ymhidli72G>91 z()qK-Vs@)tbQ5-el~AuzA=M8Z&MBLDb$D5Y+S+=@EZEHWApCkQ=xLxyV1fjBWk0sr z<-B{kZk1?~t+GQli`&Sozuv%Too6(cyzV`zZi-lP!4b8u5sj9`G=A%y(Mo?05XNa- zzs&GZ@gutBuWw%Jwv?aS2cGn7Iaa)9g;@sJQQU8Gs|ST8z&4ft!-5VDIrz#l!!WSHBtsb@iV}HEs(J2;NMI2Ut^pjL*&@XP=_a&eRHNrzzZJ_Wf#mSXCki#A*hsh z0L8$rc)7s%2Nzwg7WLvq&k}i}G~uPIMJ>Wuv2_hUV3?UqY2L}r{W%nEb7=D5!7R|* zOzQl9_3)I$Uo1E+)W$?GIgV4Q5c_nsB!`yrZA{)3P>Agu}p{k?`xtogwm z=;<78TiNm)rWh%lV|_sR_=C8XdSNui4!#dTbLRG($m4Rql_lK}?D{hX|(6~8l~`)t1@zw_sgZEw-dfByNC zZjllf0U=d>arHODA@s<#iWdE>fkjdE;CcKm> zQIhu=XH6xl3f7Tb*v#l30flsoey=Mupvq1J9RL^dmP00@BB5wdvP;G-PJC2)Ocizl z)-+2dKr~o-nt4aR-S-HLp_nhCtA0hNLr0?|1rGU)q~)8HoSIt0HGGXjfR`Q-^Y@T7 zYYMqK3!dfLEXXPtajFG5;47j9Qdt-{g=o00m{E_vIX~!!u8;{f>?$V)RC--$8x>kn zx>X<>NVA0#Cgmdo4u?J6qJ=X3?Hn;=sG^&}kI?mExME!R=;+RN!=<8~Np(fKpUQar zySIf_gZ&sag9{}*;eiy|339Wn?WM*8@QR%`(?m?^-y+jA0v6VOCzA?#=^6e?Y&TK zr3^wY<~KTv#?bjos4?G~*!~Y28Rk^>{xiXiG-QU*u>fQOnhD*J?19oTl0pQw)cb&| z53&#!NQ>Zdv|rYAzJX2q~5M& zra}PIkxzU3Edi4_kCCuH6AlaG&2_WrecbPb4YSQ|U$}cUo(wawBM(L|{8F&^ezu4-Of8t>+fq{CIrZo?^~->|t&- z9Vg4Ok@h7x@nVzaK?A zyc=$JLf;hkeT(SFuvePOoGHV0rbko4rQF5NK0?!FyTX_@rZ$P5NKpD58c3u(v_2a` zN`s94;?{=t92(tR&$N=SDZ2vvXj7x;l`j;+N)!%N3={x6eM)}yur9!8ZV8zXT)757 zWmLL-lsJa{o-k#`C)&BrnOjbR4&B9!>*sQK5{%MAiR-n+^R!|(ae|ttDXE4^H8QRG zKCif7JW)d{?Owxc(Z)On6^aiFE*vvU*mfFWhaw4d!V4{*sTT+z!yHb-tKHES6LFLM zfZX%Tl{*(VF@(OIvSZxBsEEI(p8`b^vEWnlCt9gD0SbIOoMNsPAzw7Ao5LYes53Z9 z3@4o6gk{+W;0X2W_y`RQNubwTAx~^jr?#vF?f@-{2IGj);dwWxE?nPyb;z1O{MKyk zRlYw}p_8605~)6%i&&wm2J!CB%ta)1@m~Kp9xKCj5DAw4FT*FLrsa8F?%jy!tPEi` z#rl}us2ni@xS&$*>Aa}Uc0Fg9-8p<3%nTu}A`ui%Dbnp!)8fwxhsq{GM1oJ6U&V!A z+eG|s~IhM4tWCG{>RTDfl@B?Nr@6SJ$z-cOr_s`2x)R3 z;*Xb>zYg3c$lL7jC+`2UGJzoppZy`H-JBX&o~@i$sq`x+EQHVIbuK{GSRR}=I3G}9QANv#3M+3Sqmg*BS$2%YzxAJ7pcYf46}59CiDv0m zcJ9Ap+8?6~H1G*m3D927#|ds$@kaf>L}7lKxafR!R+odgTwGNviSy>~(3ZH3eVA@h z(>a#yZ{Y0i68^*Yg&+uRmyl--Gv&h7GSTZ!)E009Ge~T1HwuetDt-j4j$67|7iL484mvRt!s zzw+%G!K@(O23CfO2%_l!olX-p6e6G0ER2ZLb8?ub=k=2-V4UihQU1JU^%x;c7u{+q zl3QHf6H5h0K>8Nvi6b{r!XsRNj+UiKTXh8QY2OtMHs-J44~x%%m~5||qQQhAi8~2s z`Ay^`)kyY_!-MXO?o2derENNA1mEfO9uLKUO^=(@Swf?Eb!A-pZi#>ue#Yp^ZKuhS zJKrAFXe|wD=wv6}^GF2Vo&0EGu=`}fg@iNsrf3sXMs-oZ%nh^6{`?_!6W9l2lHUQm z#~p^BKyrm(ms97BAgME!%CxANC{(6=Ag0%`*TC(8%7K}qzb{J2f#bo_Li6<#oh*lzOseYZ@8Ysji!Gt)y4kpzNg-N8rt33j^xoQc#C%wu{09Wcud%|)p3f=ik z1)zrCH4=}Q>mONvP=28q^mzc>(xV?P;i43H-*;6YVf>~{uso5g3hD$ z7zeXf-)gRHG@Ivm-Ugg$AACgilm~dE##8c+G&)o?wL!qdvsh%pGit(@GIpUGqlXb! zR2$&j&X>RZj!SI&NGuQBBKz6(l^};-zL!mH=e4tTb35GlSp~fji^GiM)lbXk4}bXH zzc;@MA&c#x@Y#V$0p>NzhtS6=iN$e4th;jEY$u2Or%7p?rKR7;GI`TwWrqcUZ!ZJx zSDncC?ca*wZpATXZX`(fA6=1(`#1mn=JO+-+#}4PeAzx>ETAu)O`j!OIui3YzM8NR z7<=V*iZ z*f4U_n8f;(ukh1;*5%q2<9NP0br`H1TVt4juBO~EH$mv*++a>Znk{u3@a%H8l360$ z&X|VP43YL^!AL}dfXHoe$-*&5>*O3w*26Xc5|x>qqnefDu}9*$_PD>$6CQh7)dnd< zGA2*1y9aI5AvkU#*@|N{+s?8qf7ad4l=zh_Y4PU}05nXV67?~HI1PFLy zUi<;%*fw>(oKn(h$Cpk7ILY(4|1flU+(nPbf?vb6T8lcFk_Xi9?Rj`2U(}r5&V$s3 zKSmrbR+I!tz8}k7sF})LXvRIIr=R+ZKnDqYd0MoRcqaKSXcBTX<04C44}GexUY-C! zFvxfv;{qbSgf-cl`TqzPG8Cw-xHekn*VM4nyU;c z@4+Sr)&|4L%~yW-zOprZli(}`a4m|X9!-?sV?I_p0H_XU_|);e?wAS!cG$sAeR*Fm zn>2B@Xca~SSQ^beOlmBy;2C?m^b6(O+gPmft)$6GQcyVsDORbQhM8+++g?uQ^d0W2 zR;%Jm15IDvtk&Y86{rV1D*vi%@A*`18GM|soRU}CR3!JcAtT$h&U)o37Wf6xvVCFw*RB2}CE55e%C|>3cjFKyy+iPJIU=;u z1LAjcVv_dR6NqQVNUmCVe)Tbc z@#%ggpqjluu8`DB!fQ>mB;m*T2&;toezpg{CGYa--7?52HiJ!$Mqoire3!26S{;NJ zt@&8bdGfa}di#`=E&<6n*>^w33!!AuZ|&KUEJSbg>FM;Y0tlJ*G)wom`k}~gED6$Y zbw{RJ@HuZz=&Vm31kSGDsyN#t#B8CR4mBOQxW8|vX-|+)X9lg;frT2^&JD%~U{m2T zB^8*O6g#)8tXK=D58F+0p5V;E`JqCkBR5=8p{&FtmnE2hST*?B^=S)dogEF0%@$LP z6!x5wE`(A~_8;Z^QZ0^$90a`bN*o`H(ic81G=Xod8hzX-K0Ze5eTDzcHOV_JNTG4+ z$%>Z}%Ndvx--UO~JxFc_0&T!|6Klc0k-X!(A53Vte7xRYHhZA$*8<*YiXbaesh#e@ z&dmCaju!1Rb4Bv%y`uMr>6zwY|R`;(HYvt*o35T{IFxJUD+gnCT|0+WHNm61`_ zU*yV7goJ6nUw^gNArNW^RH@*pE1|wmDMAW5#A0=(duxLKB9+jWJTqixK-_WZQDKf}H zcmn8Mm@GpSKffRcWJuz@@89~M-m0?OMRavu3M~L>r_@LYH;{v1N7Fo92yr^@W#nC# zcL=d`<`*t5xAZsrnEXr{M)}rSni1&q@8L+f{WDixo*m$RTzgnahuP0Z@MH^7%9jK| zwgCaa{=W6;XmQTGa!5hak^n0;UmeK85Q^AnpXUTA=!f1Uw#85IOx8)RKOdtJmI(zg$gQ*%a?-5f^UpE#<_Fhgi(U^^V1q-2H!8}@f2rq* zhphhbYuXV0mw|~#L_z-DjIcIt-7d$u@cV(ETPl3+6|vgn{uuMelchh(t5y*2H=UcgpSB?aSMSv%_^2C*dh9Jg0L=>JapQ|iqb7iO)PP-z@e zi0+Yd^8f()xq$%w8yxe{=Z0%4PUP<2>5LyMj1#t7J=7QIGr+V2sEWbL6XLG7X`bVY zR`72$l(OlTX9iCGIt8}PZeBCfZ9QgDIbe#j_Nuql3?Eu$n+yU#A*7#lJ{=C}^@u>- ziO1pd>EPv!X9o~D75NBpg$@}VvpbF^L2$KgJCQ5S(3Xjp$d}FWHVp;v&kR<_Cx};g z?tC9`Baf%YL(7dMx1_Rqt2`fJqv_^y z=Xiz?I-C{pXQ;Rp2uv%{zwLeX&Y{o#aK=Wf650iSl*i42sQFB0WQ0rgj5t6EY#!oh10#CgWmzq>t=+1T30mhHdL9;gqKKo+ zOa_??T;lv7@hJ?2?AGBuo&3Je>w=eg#QltN>M}6Ur^VlG@=G6 zB3%WY(Y@fjp36#-q9+Yr+ib-=GT zKd?Au8cg+?kk^a0fp!>qJ-w{7UAx|{pMr=~Y!whWl_#Y#4&em{s(D0C8~*7GHqu65 zH4UdQF8&zCzx>m2R>~)``LJE7el9NP=Kn+8pp{0+$QPGuBm1)pO{ng^B9PE_Fk&~% zoP^`cm*vTOOZJM!O;z(;)+hpFO?`ekD4vE$2Ya)T;MYMf3_XrJq%R+U?w8?xGu=d6 zk(Endq}2BlBaLTBZc_q|C4o`Hgl)$+^OZ)d*#>JAg5Hzjk5>3s3QwKj{_2xwiRNLV z4Utgt<$GWtv*j1R6WKg7_d!5lb%x>RVJ8$y&`E7i%3(eE^joMp3+Vj)hM;8FAgrk$ z9%$&ehL&3YEq@v}gLb&|7b(#$;Kq=H8gzsKF(}Sw$vH{z#edr8CxB%>%HG@8Gtbvf zZ*(lOw2-8XXiUzA!IqI7&5!$EbtbB$0ui)Qc3_(WLf>U1kK9J%2{$>fc9p`WPr*%? zoDpxuns_HfvGyOl-*-58-TnsrwyXMsJ#i2)202WDhJ@8&aema^a^o&xl4A1qZD1c% zCiE{0T_0lIk7Ys2yZ$gnZe3E%ic6PxAD3~$-J}W8i=||MpdohQK@R2hZjP57rQ1Bo z;?<`Nd=LF9{RHw_cJ8qrVULP_zrZOxJtln45l5>K>5=tGj2P`q4fH`Cx#U61%cz9Q zvzLGBgxPXD)wm-cRk!Wg9tN9h&$X7@r?Y5-wtoX zayQhwtP4Y2H(*EUJHJ`PQ%@i^K>R}h9W-7Q;zI!%T6$z;-2rrp_5%)U;|L4mSg*!E zP*N!67?T;f_SU9?=29RXH=LvE%g8T@o!U{P+eZXXjKMGj?gH?&Z;K0B(dto8?*p=- z@J8{V`*B$q@7C*_X)wQc>=%}E6egZC7i7su55pHUtVQ7aZaU5`vJY4X2N-O}z~v9h zBmmSX`OV+KUltBiJg5`n5MLtPxv-h2?-`@RfwuYN5Zn zZIYw?g6|=LqV2NM*r~Ao9(XCW+-N~YCisP@TqH3#>e1t;eneP?Vp}$ zHt3@F`zfg7S#0^D@6Gd6f@5vdpIcS_;{!d<(FCW)r_f-CrkvjEOt;ZoQ9? z9xR#Bj9-%iWI)iR?A_9Q`v@c`A&}Fsb%sOm+@K9EFUQ8#w$@O@>kB)?4a3K<&GVPo z6RLPyks6%E5g9g<>;4yV==&veM13iUX)IO{(iP{0dS*!xNQU%=e*Qn%0XFL7&=rYD zsLnz3L$5*$@N!-Px3{ksBxX3=Elwe%yloT5D2;id)c0;eQ9-2Nl9THF5jq;&CdmU@ z2}MF_|8164_Rp~VvNAMihr`!@itbY?^`So`wueagQF(PMmjnW45K4T%yLjXL<}9v; z8xcpvjt3K?5d3HyQo#ezW&YuXn7KDdyJImkuN;v!q*GVYF_&kxqo}s1{Gh9 zImg4}-eb8RmQdUYQ{bVwtU9PDqS%E>tUu?9U)NdA+Sc_B%$YUgfvO%$L7T@rki9*bk!CurLkGwzYk>J_%+dgH{o(ZiXw0Wscb1-unYyk68 zgFI1>gT%xB>v>~HUjSw82JjpXA50S@VEt4TjjG;B1e-yjPsjiE2-+o!F#(Ze9CI(z5>zswCPp-{b^XHW-9P zT%GIy76P(rir`df)J+n7rlFb<9R zYbRf28e0xbBIYUjl7aU=Q2{%rFB6kTY@6YT+`~FAdGOj7zS%l+Hp(;7}fn-LXHA_IE%w zgcU8)!%=84FjXw)m zjf>7ywCy)u3+~wZN!c;7=-QR$(}@VGeE>ApEzUmY=6#7Yf*>-ycohDvTHU#{^C7(z zm!ch{4`_vkj;W*GH+3iNw>FG0lj9vH0&+jByhRD@cd^F*D6~=ty=E%#GA>=iwiw zV&P+X1H;tc7VanZklrxAQ&f{jOUU5R&G=3yn_rmvhh_)xgz{@BegBD?a6~vf_Vs_A zapW^@f=uXeK?lqxMvT59r&*mhh*Gh};HG#c0 zJXOO)cO>zc%?d7Bk$)0iAHo1EzV1o7etfM;n8A6nKS{15^59uD2!nhSg>~Tss@SHp zE+mFw1vdTxANH4U_RJ~8Vjt%ZYVqId;Yxa2(ZS^sQ=ojW;aKH`8^9MFEQ%1krTy|W zplqLOj4y`RmT^gEW>(*GO$M8HoPb2naLBNpA~jP|jfC&pW(*-rFFH*EVZv&~Z`&Sh z14NKW&HpLLFlqG+zip)R0%%&xJx=$o1?w-9w-90y(h%IKk&c%(vyu;mq)@N?=ReeA z|7N1zlqyl8!jo6x2_DH1i%=|LTloeiBC}w^)Q|%N0*0FjtZ?3=I_7UtWSXs*upWJp zwh(g!V~{5H0j3W9>mfd>(-A|3E7i1FKitDv1bl_l{tov3n+79HI@ow{i;hMJN8I`_ zk%P`Mgus}??EO`S3VGE6<$U&HcLECMNK4<_P;owWo=s}lM7=wq<+BUwF^n5sA6E~}&o z@QlVW>r{BdR!{;I*>}_(3Od4I!ek3a7&J-oK`rq8vfKl3G0Hr-PfH{HRmC&pK9Hq> zdc!1k-r&V4?-<51ZigcB%l%m!_4Oh;Y-VMCVfX?E;kxjnof1tEN=^M)5u#1(r&Q)9 zShHL~lZgB^8`a1F)lFg-LB(rphjtXhX0^a@xuXexD4 z0)Emyd6i2UQ9e;oO5^&yvy3u1-rERs(=y*q(bO~AM0)c!m) z%$FjU@E0kZ{CArmCGbyHWGp(clZ`^m1Fin0B>AO)1tFgNI5!QH>5^6@byJ`DyHd84 zMj&u=7`1=U*0FtXV~<`uG}4XG64l^Zx9O~}3nru#zT?o#9f4zf3ex<*bdi6q*=wZe zg6ER_6G;V4(|N2N?L;KKTzDss{y<&<*)=Jju70w!M&eNBbr-6M)cPfR$WR76yvDmV zv6%s-f{7`)c$jBFWE2ga*}MyApSe8gIcQZwL40yUpA zWoR4-YVs&}TNT)XajXF=k-^WqiS1r_>q%P&6)BT;$^ubK8a^ySd%-0a7g&M~c!2In#IH%zY zs5HQHbW*6$kKh1&^&>BB?&7f6T`)NJcTf`_YO!k;-|A7qmIFoQ4^U%( z2?%{H`vCp_1Ui@qDyl9#`KVh=*(aaOKv>kvZfMl?dzz0SkXf=#`BUbnkRf_fIkup; z3tqwu#TE#emY5zDN>u!&e2`R@H!q1G&74UIl7zU>pYQJE*YO~XV5cdLcY@}`%&D*I z8QEiGiIGx|Im>e%NT<~=T#*@fv}zzNra3C6K42x4g@&grdpJjlmtX_Vz`6+ z`|loetPC<)S$rN*y?mqemm#@@C@t%dKqVwx7ZQ+cEf0^3h>0 zQWQJ7r6dn9L7IEW!&<(j`84dm1%-HzDmDsSl+Ejc{*yrA>YZ?E>S#fsCZ|8#=lWnl zyfu^Pkci!{5&PNjGeEreo8%)2hnlA~|2&%~&(}dgFdc5}>F)Hoa0j#z1mSla6Fgol z%82+RfMe5DPf0$$4dfEsW1;u-Y(4;8M@JR1(ZZ#NHvJ_;-J zDnT}uN)!*3S-~#S(c3BYkWgGsCDUMBK@F6?AttoLw^Y7exu@Qv>D4b_Q}B-+kL9$xDc|PVfxPF@a^||zQr6+d%Xs1hZ!)g_vxdN zW5W1%C%gGy7E@YRpxaqM?RJ91oa6IfD6He%9*lJt3zb4dS*jhRq{Rb0{WEN|Ql~}! zoH&2Y3FT>ntV>u70=(Ke?My^FA@NR&6Oel=@gE0A1)`9NCJ6G&{yan)LJi&Lg}{~y zh#250l2}^wQ7J1dS&fj|o;TszIu{Sik_3Vgprd@`056l2tElMs9Z&pca4s@x0UjlN zgbEQ3_0xW?-&YE^8@A`iUrkH%kmqA$$m{XVbIoU;Sv^O@tIA=mT^5W(DL7OGJ9JI2J}8lGM>GcC#wjHi?7#cmkT9ll8K;oRjCwB zSQ?Rk=C{>V_Nfc6De^e_d{;S*Q?Kc+grM)2jrj@Umqi>2dwE*4Y`)_mY%l->zC56M zHn8Ni8f%bvdE~ehv3MeQ2=}yGST!C^XD{kAAV3am+XHG;UfFIgNkEtZ0J33ySF_F_ zjD69mL-B+Aqt(GR(4$48&oNQkA&Nw*x=7*`=ulZrTRvTyXx`}lqt%2+>XWB+f<&9I z;4$a|unl-p*Y))t=&XVE{(~eT`MM6$$)k}bqk;5frpQc^^lQgCQ6<7(@&$QtC6$YEcK{l$hrRpK4k5B8}%WuGi{LkHGh~_0-Z43u(H63+3e%_8URL zckxaTfswx*PifFPpKHoAu$5Y#TI>5ZBc*iiDB4rVUoJh`;h0mgj4Rz zLrK%ZnPD5emgRmPsLIe8^7yW3s?lVd;dy!0YgttQ+V|~x+B-SBFLJFt@kX7Y;L@V{ zo)Yx+Poq0+A|k(2oe}08F<99IM;}VI4cJx(cs1_H9003PN9LXmpspEj9=a1P>xnU;1OyKX2zU9IyTQt|~=yyK%DU zIrA}-5GfDz(3^9&*VNvvCU_=TBd6G4Ht-e=>met;Sp8D}lOyl}yg%ugjMqZQs=Kr^ zjDONTyAk=#9Oib z&gGeXTYhL$&t)d;wugCZCXl>qSJg6YYll+0z6vj3JEJg^PZA*II{#~+s(I_>=)7E~ z!hWH~M9!D@rwZYj!}4)AsO4oJ6u8D9?K$(Uaqg4I)le2p@s@lZhl1fgkDQ2|cl50x zi8r$wwJr?AQJOjVjDC063PZcQR0o5mW#|5A+^X|`IAabnXAmViiPId~p13B?dO?Ox zuf2m#LTjKGAY=)Ri))l&=r#z&jY#T{qA0!)$BOWsyGJ+$$Hzz>axF|v2Q`_4*3W}` z_Mrn{cJL#~u~a126QZ~g;KR*#ef^Upc}gj-WrsJG{X?U$LeDN+>Kpq1SO9C3xgvw< z>_C$j?g~EBKHRxBD@XYwx~2ue$K-{8KhFK}!_jZ> zt~I=>x?fmcgQ&r7Loj}MwF)VO?s9@=J05>IRoHJwVBN*&woi}$+0gL>eN3etGTP zYa%Q-o*W}rw@$8s_nMYU#9z+0+)yn|9_<-+@13A`Bscenci2Ojt*?IL3#n!Qj4qxS z-w0l5{Op~Agn&rB{*XRB=mVwNX0m?G{A8v4Io z(;h4qlj)W1@3I%mU&q?UD#wL%r%SJOs?lQEV7M?89KO1%E|3%%(VzYD1aEXVssC3n z?`6YYan(|71gzet=U^E~Dj%a;wBkVpS+bN%DT z&R@gt;qrlAst4Liv_HxpAfS9@7!6p{h{3?(!?aM6Vph^xE0r8^WeLNr-?)ELg{cUKieU9>UTqdlmnw-uDbw%%1C@nUZUA zNRQ|3l-k8$e0Sz9>^`y#{H71vhLp%}E80eC)kf1^=`e`F7*btA3ZrV>)Mv+&#rjD0 zF4rRtHlJ}H?<&Ka)_KyroZ~?!aKS{qm4yAT%*SoE{h9*lZsj&CGVz(JHf$#>#ycM9 zAHQ29@~VqL$qsuoBZefGtY1bgU+VI~cF*^{K8{AI5~Flx!>ZOYJ+iu%-vwriKUwNG z&8EbO15;AoZaeA?z%smSD!7ufnH^_h38rHU+#ad zqqiX#gwl*{{Mk1=Z$NKnk277aMN}T;OfX`ub; zxf~Ie6ipK>4$TAB4FXW|9Ar4hVRzgV!T4T3*B2HPf@Z7+IlpY=jgFoWyA2hDMlKbf z`z1U%FINYet+yRAEXOpZfFPX`zdHhIPOv`MH(`ltWyo!Rk1LGfaY^=EZj@?dvT?Ne zjT3OeVrOqlg*LTW+d(N>8c$l9eFL<9@@ifNUT_wxwz8$otKH#*{~TdV=^{D(N_2QP zNIE=WXOsvL7?2oPH#05Em1f0G0dGG}g5>P%bN@fG-nt>m?`!)8q@^3_E(N4Zh6d?S z1QC$#?i`TLp+mZn4(S-W8zrSdKsp_UVdfdXzx(>@c?ajYW39FKK90}&I+ndHh2@W_ zgQ*|Im_~@lZvfEY|=lGd*N9_)7hNTL$O2St*@! zsJ@OXFoW$uaK3o#@$R_x;P@q?QzPe6E+nzivCfZYh}G6tMo!!*N4;FA<(otdnQ?w1?mvh{=n8gr#2+O5 zm*%Ag;~3R`MpaGVB6A#>Wv8mz3D1Yx)(sVv6Q5H?F%cr>2L(h#IWX;N#}W8n;ScU^ zGq?EwFL=SspbSv1hyqip!SEk}=VySYi_agpr!iln%ifSlm04&D*fW#WYDc;QY$P}H ziZ#$u<@|9pN#$!;@PaGb-YDI*a$V#&dmx^e95&LWqnO{Ju>O)Quczkq4)2jg{H!K{ z5?aLkwG6y*zD$zMB6ett0P$V+mIUOI(}E7su(mOX*)^*(_5g7Wvz3o$7tU?VJ?FwA z*U>Del3P9V^!}H!>j^H{ntg&^IhQr-KR=kN#fC?!Ox76veepPxur+{Zo_E;@%MUmg z?rq<>E?eP}`aY0c;kU>oC^5D2AW$Dho)L^%*~LNkmQ-!|Nb+iFJ7N1G@K9-e@%yOr z!#HB?tZmB~ao1A6?#0kWF-x3pF-qrAGd&W=zkfA$EOfkMH@A^R(p>TrC>ppzS?K34bBqPZqgB0X0ouezH*p{P<5EM@eh>ZnhZML z(n~S`hqW&ha!@b~+?1Fal(Ni{2K%+bRKhPsj(;71RFZw4p6I z>NgTWst33V)w?}VR2OLCVKw(qrHV={vyogsuA}kM&bxtxV;$&O+HN)JV%7`CKJoRr8VGugbU*;XU2(6Xd^yniF*8UKWb^nKr3bXx;%_;i{J{&=QngA&^4$`_+f7IlvhIX@MLzf)c*9_xI>E=>mG8WM*0c zCnuDSc+gxEa+Hg6sQHngY&-2!{ZVB)j7_0Z-_@GLP)E;dH0a#&M7U<;yyKeQ;Zrk9 ze^qiyPS{)1+`_OK!aA9$NB`~P%rMPY*5I#~JBN8)4Y_N-$C*8nXKo$rJBw;)C%<+j z*R<0Lmt#H0(TjV1OZpS~Lk~6M zk9vTjfdp?9&o`YMG|fJ@4C~#lijRo#pwoV>H;(u!D0XSHY(W>i-HuFav{KOA)jhBc z%d6|G%+J1?+0vOx8%Ss5L*_M@4rjY}AB;7-B7FUzm>@z*o>-&w$1nj<@Xc~}BOA#6 zMRN)SQ`ewFsEw!29gbGd3%0DAKJgp?CLf2Zfcq_sdY`1S;a(YF8oqT8bb?=yD3~~_ zRxN@F$j#R}2f$`JoqZZ<1_5?}o%eu1Wm#k~_9K(TE{J-?fm-I>?@Uh%l*@zHS_D+f zK}pyXS#>DrGRAx6*W`kZr`1ZU&kBN9{=j1?8Bi3Y5=q(#1cHFhGx$jO#s8B&o}UaL zXg?ts;F+T4#K5d*MVJ-T^9WhRx#nOh2@0LkD#hUBVLnH4Tz2$QqIUEmGYK5SG@2!+ zpjlT}on)BUn0XQdBfakNwU9gRb=Y!?Dis%6^3-<%q!LsuNY2M9`qTn>IjPo`S{DT$ zUm}b|>Y)Dlu_jlO|6KyRvA9MbFa&xgP!j_eM+(PEXD7dPOx#uWsh>k8C1y!_>RiVq z>1+f|PV%oi6$^mYZzE)4LeZ-CWdSuZwx=Y6V#zXPD9Rq66gC{35v z`^)$Q9A}yovu%!oe+vc@s8)Jc_qU;FK?lZL9iE&6wo4%4qt3vvRG-Lv6p1_=Rns7a z%$SHAdgtZrMH>up=2!i!y~rmEz%8hi_@0C7XeP-CQN;UT>G zG6vu$t(=NEPT^3CPqIUQW6-o2`e`;>;rn`ir;<_dIyX&N<{N|F%WB9hHP<}%g^875 zeLv7&rde4!3Q-$JD95osa6ned9TC%4p$1O6{g!&9Cy`S5hip$5oL6`=?4O4bG_jMN z2pltQqtG@|A@*lLdT0Lml}O=~y-0T#Q#nPd@6ujuo;r3RJ4Zr#%@r&6~nY2xZEcKO)v3c4LnN=zMreG z=0Qy}E2Wle-DV&KEDW2BhG%@Rv$jVZXWnbM@RNS?A(E9AFE7*@SG{KfR(<+!@gbjV zJmW5-Vd?zH=c#;M#^A75X`8VoUy$#VbIC=;MKU3X|0h#gw*PmN1UHS5lqB?zjjjoDcX`)z zP6_?D2DFfNB1*V&u)w2I=VuAEAXK@E%gM)M#2`Y|b4BO#zh8&$>j`|5OZ2Gx&2aGD z$J!M)G5@R|GQY8p;(Hljt%aH0EQJ|3uMnU$0iQgw2}d{w&h|7dVKWP$v8D0oUn^xnFd!T<$O4q0gsl;O6(6mcV$1W1v2A(2-wKyex&cLSi{ zI=3X~BbNAP9uAX{h znZ4WLtA_9BJDR^sF(L;OEKYsn^gjw>5zk~1t7C|7M>h%Qb`058di5h)@0C|4!9a>S zP~$O!_*!{Ud}#OI_FyQ(EbVfIB;0r&aLmKkLca$+7lyy#xNkN)Ops>WGhMBqxpdtx z@P|Fl(uVZXBAc8JPRnn_JXvw%-GL9Yq(!cGuZ$NM?qhY9Y(4_7v{#$g*o`Hc)gCf; zCiC^SKoYCw%8%;|aKfsm9iaH%ymyb^&%jNhBeTYlkc#uG3z?&>?}Rf#VN>~2h+C@F z^~l3fLz$K)O6U#iZADPuXrx3%FNHt!2h>OV02J(bfWVw8p1A-c==eRhQ?Io)Bw6oV z7+{O_Z|LB{r zJ60{m}fj_S4!pKo*%~}X3`~{cGuZgb59rqCi!CY zl1j0@;Kj}=AtnMotZpwxuCAHZukbyQRx<+UZne5~I-O}2Uf|C5VETGXuIKb>O?16v zB^w(ln<)<-Nwipc0@Dxg5d8#PX?b_;ZuxPja3M-~X&okk4MZe*8g2zy=Y5F9?_dnm zVZli!8LkH(4Y1iAfl-^8PpI@`^XVgqGJG=|{-s_HPL(4y^2arKsOS(e1{SJxfd6d* z9OrnO*9s!EM&Xiw5Wx#tJ?}H!=x?7_VVlVmBTddcP97!8n_3pIxN=|Z5mOheuD*?L zZnU0CCv0wiXf-!<8t`^FxR@QNevl>Y%SGUXMY2pBpsbMSpB~z39pyrZK_4YIf9?8} zfP&9HwUFX`u7=1hOI(`HH%~-b+}r=0%_#oTErHnM&9UOZ%)(1$@l<|0Y)H+{ zG~o!(Jp3x$^6{?l1q~wOt$w6sGhX$(9C+`z$gdWqS||fxWyB(*vaD$MtB>&dm-?B} zHu4-r;13#h15p1)Es0vfP{(aXS!;k_&->e&?~N|`mgzk_wM|t6YaiE6uMojM)FIY7N5FCXq0G*@YM$LJ|M?? z)ze{P(foZ@i$573)|p{jTsj&T9ilbE+XxNpIdc&@ZpaK|~%hvlLd+T7_Q z4Efet1~4=?LiEbQK!{Ph*4@##%Wp;2^Yy2u7A!O31No2}i5&N1&y%J4HE8^~g%QKL zJ@9~>5aDwc@T;vs7eRWd2y?ns(Ln4yP)rIT; zbLqGKE5*sUDqFgKq}QqG)zgdxic{Nbmt5NotYw4u_++?bnHx5!nBTPF}aN;%Qq@|yI;aG?vw3~3?m*PNQe)b#Au8dNBzuytZ}eAr z!Yc1!SEhU&bU~CN><|?t=s*A0eG(`>T62 zl7+t(9F*SDCSZ_$X{zu1Qza=Sn+#G$600)|nymHzH;}ImN>483h zF4)hV-F2`7ve5>UQlr*Rwcy4$oTORF_5FyCO1q0LBQopFW%K&XTni%@feMyz+N(c} zt-pP$_tCi~ubmH6lw8+ASD($BF@%halKMh=m9pHGy9lnA88Z_Bo43JtR7N4I z>SZoFt~oJ)O8eL6+j~!fj+?-#mfubZOHQBhX%Ut=2!>oUOTw4}Wd?)*`uZ8jv5`q7 z-+tu2bpsnO#t#Wc0J3LPWd7PNMSp(XjGLL^`(T^g6N1m0swOl~l@D$MS5eH@ir>l?aAf%e2Zs zs)8cVVugb0v7W-vAbh{5=xICyoyRBsggFRJcWb4NFr)SFXK$Zjtsbvbh zWo}4wU6qR{O%$sWz3<_)GBvvJ0WNFm+!F;WQ_tuv@2xzP@J;3UmIh8?v>KK5$>jwr z7Oi+6{U|u?os6P*Y7FwO&E5m>l+?l`&UW;jkO9Lar-&gxFcmnFf@riQai-78)lK_# zH?oZ5&4g?W;T+Z(O6xol;?egy%&|Z7wP4o%GmfeZWrN2!DcG%4DD z87vL}V-8**`xC-~0ZIs`(1g#@D5zx>0SietJH^&hEoeFd{y^zZ1^$`VL3rlA!GqjW z{CX*K!OQK6*D8X&1(O6O&${1wZO@0@KD>?rk;d?4W zPWDDwF-{%PK4y~&msH5;3;-T`MG=-MQaK4-uDMP_@o#P5QF(6RPX4Z>)_;>wNIprr z|8ll)J?u>Jxy>>xQEy}6ynV5%2jS+g){USZ`vTi(7Vg3@-`I}lNjiGlFcgl`7g_=n z-&=^x&R4Hidw7-zpxXywo&;lVGxDb!E7a&UmxxoFJN(pqitC?tQD@ z8|S_2R?J#P@tb5T5*s?PL>N&m85P*BY&{;D`ytC9<=ys$hNiQhAzYV)2Ew5-%6UHF z$Z{zBdLzNA-+rtUbE}=z*i(Bn5juNcsBV}mGLZ2U*n!4khL4&qC|TS^_{5=KQE=Hz zr}j=|U54>p`psalXKBGflmedGj=HL1j<49scsO1{?6uGB29f0nyjKSz_{3C!-{u7z zG;of1sncHJ+?LX=inOb?p4%#+VF%U>K~DP?g8!P$slo6tFD8MBhV-o96g`LPTC9sx z%;RO*?$N#o$%BC{NxW!SgJDe_Un5(#~j~`Z5%M<#@c4;WTet817MbY zdpT0^4iRZa5y)aUjzD=G%)_szNu9P}!>shQr>|P@L~8u*I9he-8I#W+@GNh#Ve@;i zVGQewdl}y`;7N&54P}0<7u5dCJ&Hom$qf4#p0{eCibR`y`9|d3S{!o9{6Xi2g#aoZ zjJVJ8&k|{B=-+K0)JEdt%a~_9ys+UBD;XKWqT5VF|1L^0qz-OUj;QUjXgNv+*74VL zIpqDkHk7@(fL-MZ)DCE@d>k`^70#*)EtA5JLJNPxE(}_FvTTbq2-%;ud)(ewC(mOo zZ2BI4r1`tnxa-9exQ4=7YzWWo*$Sm;uwQwB3Y|W3$zfP^Jh&v>aJzZWjqrvr#=2k! z65bVKKvf?^0fEhuLe6TBLxwqLVfjI{H)f=v6w^NW!yIC0yQW3pW2chA*Gh6s1y&O3k^%Z5T^W z2XBeF{-x`4tZefeHrQV(-LR0=t;hnwk7}>v8{=0keEF)6-aF+q zmQGTqeakYglm)0BfXUQ^EVjfpM|vz`-|rkmKVt^+uWCna%gMzU431z{kDQXWZ5nvj z{?SV)qr83pL}&HB=TZ(O!w2c(#7A5F^xMSk#GNL=$_%{j4P)&$RGVQ>zuvlumKH$~ zM5|LgYo(ZMVws^zJm?P9k75-%VR#%$@XtJ6#ygKJb(1VLMOvm_6VM%d{5Cro@V9?m zXZQySMpaAPP`)L*7~pyt&O|O-<}oE^ZWkLkKLrtvhPacXbNBanf{{a%G8!s-w%XkXh&;g3T5hN)zun#gtdP5-16ms#dj8;-vu zq)Z-FP13F{RK=uq`s^cuPI(^T8tHJ-T}ubq>b1@J*{7MJqM*>deHsI*1H;Y)5XGS*LyH!U02(wyQ1Buv4SzF5bCoX*;JDzZnI*(&bMs5~ zYgVyboWWDzQ@6x1VE%p(e}Up<=-!VbfW6za)ko<%fzv=JDF5pdD>5xlXc*B%=n2TL zY6cF0tvN}cXb8oJHb!yhIv02AVa2YqPxug$2bbR#sEnG>U;gy-i+`+_-x3%i*7zOT zpPx$?<+1WwGtE*xNC(w53h5imlWr@=TTe)K8{yyRGQq}}I+la!B3J|ccx7G0U>%R+nh z0Z9S3r3%h7)YzpkkAWgQn)IEdQcyPN)n9n5;zu|(Nc7QJ*S~UX18XX2xv%xd!xVReg0Pgc-Lq4!vN#pcfK!{A)XY5gP zzI!Zi{1SgnBKiIbPt72Zz=aT1C-bs(hk8n673Dbz?iUm-BfYo`!VS$I>SCzn2P!k2 z?)M@1;yH|^5+9O3mj$6P1?~E5R7N_hr#Zh2afYy<(jA{Da!f4|BhN&^3uW+rI_Zqk zQ3VT~9&7ZNKq^?nE%z>&BN?4$?h=)H{RMt76kWb@PNIqMVzV{$F z$WU-*Z>~EZ)B9OAD(KHP&~+m=Cz1d*NWU&TuVHV#;nQAI03MD6UUIHO4u!KeUPP}l zOM_!^8QH(ze6r4gH(`ptKe^I}a?%7`iAhyIMxU82Br-J3zE-u~!`E|I22c*G}`A?Ty|XsNiH({j2IW+_y)V6$I`jjAdLRH=H*ZG494$d zM2W@#rGbW+fJKJ4TMG;?nN{yn_A)xyI-rU_o=th8g{ZX;o!yCrFiF!GB*IcG%3km% z9eXHgsi;9JTzIO7vN+)4CD}SD^jDWUC=;^r9I_%7OO3g2Uxs8y>wo^{cR3#BrZ>8} zsPsm!b4lNxJyWec?XVnNvxxVE&HCNKM3f%H|2a3wz+=Q^G0e+fDl*7=)FmP;Q+r2gz!t?Y5$~F2?)k_kB%`Bsi+e2} zGtGNLZV8^2{ zM&b51*2#ckm{_eOP-(nBxuMVO`k@B@uk&}7%c<^;b4@}bhGnD9J9*g8p>Y@yE zjf+6;hm#p9d~rCw!)uQBZZ~{&ZN~V z-hS`j;26Oa`$#r9baZJ~@BSAz#lF$*5{5roVZD+$a~m=G zjkt){N1mhlN|)GFpm@gWLGLgi;iA?Cbs6s8ab^+|-rYM7)ePxYVVI_AR51Nn&}^KT zAXNS6*4i!xr)l&YEp=qfNBE;n#)Pv5md`p@Dp03R7IdG7NH3d5zVsqhmWqm6HDAMi z-V75&&{FbReK2Pap2G=qq%kp{fTe!?2EQ6kXaRo=JskVJmiAZE3rdCsj|P4BtqX3< zrJ2+=yabvYU2`~onT3v8%Pqb|`0whyePz&T5_ibxV^Q8|^++G6SxFdUH+lOL|JI+z z`K#EY1d+6rp!Kv$!CP(9mwEczeoDO!3I@GnBQ)j4ldUJ&KQh$|8UnvtP1k3vmY8N)r1Ir4KZt6ZHcH3= zkzC*=gk4x~3gKaGC2%w97mF^>^(@czGC5*M?_*uR!XfTn{S_KI3fY%aiRFA{~NT9ep7Sov2CQ}RQw+<|}o z7f$S!b}aHM7OIybJ%_tY>6fF*8cUR>Y?7^|M-B!gP(pbB6%cJj_aXk_CXB~-yrolUGH5Yt>F)SQkk99g)#L6I5w~HEzB!8f%4mQZW5Vd zcMdd&R(cmk&~2OoaAh)TFaDBlv_K{|nQ2CPF_aY21iwj`H$J&^WGkSwSl5Kb(eJRC zzQ@%JSHMef?ccA(A)LDD7JT|u^#i_y@aq}T)r^FpR&O^r)VYk*sQP>3FI#2xQ@fjg z%pbhNe5nXxy~vhcBP73g=?XQvjC{#(eG!*!%AP%BstULP)66En-z$q!FNlH5u##12 zL9p@!rt}d6F2T*9LXhc}?i;@y!LPNx!L@IChzr_vXs!(8z~rsn4m}*qiPOZyE&&d^ zMb95uf}Am+QXXMQV+Oz3a;S7&`;YNMo93q*wrD1fcJ-fPZA9)bu`KXz6;Zl92Wb?& zqj1iN0^7c$@-^7Wui8&l%>!Mrh2!7Cv!x5((1wG2o0Zc5p-?9AbqSleJ(&*CTZ-Id z`gj|c=BLI)P{3uvb}=k8iiXg3vz~#yb=L(9O9)u>?fyC08xlOAJXAWnI%V8`Rr+*wcFR=pd3EcpIj9z$o?ZrEzaH^q z1#gBm!(&jlDT8*^k?wcU$tf@nMoMJF6_ooNA6Ig{fW_+pD`;YR)Ks9fPaaOB*tBwJ zfZ(>mUQpHXHpQ{B_W7**13n;TS6F%UQi%pYAuE=_J>?`m$5~=mr720#fKC?js9n58 zH(N8+ZeD)Yzj1t?;A)?>y1kwmcR7;NnHXH(|7=Nb6Id#}ryHkbJ2!qdbi=#q_iCtu zg?-0j@ys_moA8xKhU=9mr2*-A@rS*R)@%mJHScXfp^b(bBdpO6Q3~dJrb{P=9p8MP zrTBEghLoP4Uw?r6HqyE6__E{~LlUV|S$Q*gdy}8+mW`qVgIYqH8GX+qV}|mD0z}TP zS)6u6fAesjtHFmFGhv~o7GeFfd$Vp7h{~Nf#2Dv*tEoK;2wC_g z%FkjNhPH2+n$5}pQ5v<~SN?mRzu5E~|C0KipZH8N&3cW90w3NcY*6K#w+Q?C0waWL zWSDnxx#%CVK`|Hkk+UUuVX7I1_}03IK)ZZ{Lei~>**?5}8%5-En|#5ENn}sQZ)|VHCo%fc z7R#|jS4t-<*7IvMptNb5`)qhuR%tQP&)vVsEE&u`JmTgy*Q3Z2L?D_;h(NqF6Y^KFf;j+FSMz-_d>5rQ$A>U4b_i(9b=z=^+ET6rPL>L{Q?K<1Ne z3^e~>mcR-s{k_5LWxbZ~h0qbf=C26CJ%LN}?%@Ke0ejizJ6eo2$PmRHXwMX}LLvF5 zM0syL^F|R&;UWtf5==;Fz~@DH>@=tYP@bD;Yh65gJ1>Wa_$2wk4;yRa;(xu zX9~agPdPW67tz@4i>O4e`V&wn-#+MIS`^DCEe?Ke?(z1_4`$x`9P&z-WK{7N!S7ke zhZauUV-E!ea$tIfeu$XAnAmSUizkE3kouEuX#cZytonk2}}Sui;0o;Y~7}s zSUyz`3DC@btEYoRIf_}VZ=TLNcnt$Hp_#11tN|F-!8unCWQ<4$3$I!rTDT~Hs#+Hs z_}F1Z*@Viu7J3N?%;`;+7-;)y#d1m!MEwe%#=Ep0C^~Ah{UUBQiw+wq<860 zYIXf3V&;~M=RWH3X&!hzF!O<#YuD(fKRy3d>Pd8hTF59o%m@HU891)HlHV(|>sozivDaQ%g(smWMr}5+IoMH& zRfem464rbDCxui-_KG(%mQd^?>AL%<#?o+cV!L56_X6p!O@3Lx2acpOAiB6aM?r*#^e|*AiIx_m8;K#w$Pw_!99w<_ib}p}b<4xD5OaK$;lz zczQSjZMA14xT?;L^=PfrC7!P^laYV*c_^!mMzccG?Zn2Ou|!!23bEb4;PpcSgJr>- zh5(C&voK;L^#cjUdKHe~@{jpH#PZeDO}!B57#;yoeIYBEX}#~8dvo`qNAQ>u?o3on z4D9uKCD*-U9(UF)4!MuX>{s+@(tgQT17g~96))xBML>a^0p3$W0u~t3004S1&P(-y z8O~W(?)%~@b77m}VHEz`)OU6hL!ViKOgsHk^y-Pq=sT9H38w0Aw)5*t~Gm zBXQ&Nw<@XaRcX@86aRCHQ{I2bLap$?M(jDK2EWJ`7uWAp{rjue#tLFeC{!mDFP;{| z{9>j>B7#{p+5aGiBSk9Hkxt@Pt0_#|74OkQ!!5bH{j~m<>1f8i{Bb`s&`d~xJ`phC zTPumD8e-+A9Jk9yM>wr~hBBW0a)2#PPdeJ8)k2((vi=8dcsL=YEJMn+%RiR7lC0kU z5tu=vm=Uwxagge8=4(PL-B~Hb3qfxw%Pcay_N<22k~cz$;y5Q++kP^;Z#9W<4lfpW+o=A%sE+?W(d75_7 z9>R=3UJZd0JeJXpWu&E_RhBATn?w4QvcKhzrft1VRJ+(w$tGKIFG<<$20#<8|c@w@Vjl^}Au+K<+ zs5}GG(Jy8Oq+e+^#X*w$aP7v-CfYiS=DzuBG||>uylzDTUsPj7-~K1#Q-UW4M*e!6 zy;C4*rq?t=>da5Gp>sqg86A%q4tU!7JkXTv3^s_o8DJyBJK$DL;B@W3W)#!H?xB_p z!GFyJ10qZ5AYX56v3Zd3`U@KFeAQP8kT0p3yD&idy?lw-DPddTV@S%xA zNUr=HKU+v5%TZU-8?W;26i246B)}b))Bh0jpYg7%f;~lfo*}y%1PdV<<;d0g>-CtP zCBqf#1En>ZUXlir67`F`S2TOG)r%(HBZg9?FU95mA6C8M6MM@ZQ_K4vUg39NU*FPe z`xz#OxcSx{FW;Y~Lt{)*q&o*UFNXk`CG^mazZv8x+&c`*Ww7VUs^4R{%@iE2FPzkL z4sQO#8U1VB@hp=X$)zLoNF-AxkMk&uhdkEY5I$XO=Q_GQtt`@Z&>J!w%!ChRy7v4s z{jDY#RA2Knn=akw ztqY@NvXt80*if?2aHjQgBzjY~{vVCQFzgW*ntKUA?lhBqMv0+{Xn=Y&l{9N%G+4!4 zXnKH_1sR$gQ^IdcvVc3;GO;l;B+9XZQgpE%Iu)pXkZXC)oPsvmmHYqkB){ezc z;3`J@B6QsI3-Q=%c#^B8BWvexvlZZN=&&^PvAH79=FEKnaYRcDB%-HcB2!|4Pq1fs zz;*`50Lj1u>QF#oBwrZ#*0bSVba-lL&OL3(u^PrncGj=Q&+gFJ84GQ5Qv$9l&Ar9= zY??oz1V6=XP+Z3)=BydVu9FD!+B4)3a|$a3P14{Wi`4@NsaAeXWC+#KX7~q0QGnya zn1%{{L&*CYEO?YjP2<56w~W{_U*&4d<3z1O%+N?aS!`>d4C|#lfB%Mt1lzuvw}F_# z%@TyWwSxZBaGXnCe~)FG^xD`+TVv-bjuYppE67zz;#5mB9mWmQa^s5luSWDT5 zVUDZef*Rv78F&-#woUk@j!cMWyIw%6KG$!@M6-qdovoUExgGWS9`=~Rfe`Q7SB3}r z>Z=bgZG>@k3JdYI%4j)8K8|mk$ORvPi_iEgCueNs%z*Alyc8yq?{Xa%4JN;iKO`&9 zh*FI*|-1a3%@ICr&Df{^_H1ZKiIf)8+}gpq^zAn@g9?Be)dGu&WTX4TM4SMA3iQk3ZyTZs7~rrbGSX15m{-qJ?`Yjy+1 zryb^~YGPD%^J4oP81lmJh~LXis~ErS;2!No{2P2*T=%@wVt(pXtXd8js52Uw%`$mW zwTfJ9Bl5-ob1M5=eGG|Un9UygOM~sV!_^J?9W>9IRj-%`-_KQBs@q31OJrYbo9S!i zR~RbPhe=jp^T1NoAzG($((m_VbLPZu8SW3^2ZGl-Kw=;j3pE=vTo>b0nsAD$)F^*_ zL&{fkjCQk5cR9c7LiO0pDv zXD+tKWJ%U^UUbfVtQUqX&kgZjgsRgwSTJq1sBF0Hh!2#zQb98#{^1h;jU196_#oS_ z{Z`KKJx@6vJ3j4Y)?3zVK2Ksu39`oV%5h~W$|Euvb8aYTgF`7r*?}uzL>OtD6RnCL zr~k~)=o~j=-6_HDN@#O$~pK?|FGa0h)0t<3L z9j+*mz&EX#j(?lb(#XIRb^xZ!Ma^x#Qyx&=wbWX*1cbbY4xn#6tMvWv^%ZrfzyH z`Zp;7xBo-BhuZdm9GG7Qquma;DOCv-@=T}%I!pf32>sY##JMS;LrM(nvh2& zzJEt0MsvD-6pVpG0V3RR z`^DBb4Mu3bDCX!%XqI1Whk|NY`ffs|@^TARc5fZS6_IBmI^>xM;3^%1?Wk}XBD`TnC&xPggDA(eBPnu1v4H8vn>lC#@~#>o>d0Imfhzuv%*LkDlQsY&rR9a6;m2mx z?)HJuP2y+)cQ@7}bS8$6_)nBhY{t*SswB5C$siIF->BFrY*I1v&B8+8oBEYfNXOrX?f zO_o>BBq&D{yEkVePLddqJ9G~(&>icqawk@hI=tTrQeYmrtNCwm#+jHA5X(5M=fm-1 zU@mDHj!?j75{E(4+I8ncQ+~e(eRR*t;@vc7?GF(4UUpoCyyDj$seDpHa=J_3yto&i zB4TKA$m>j_U~_;|+3`20vtR=&FfKxkSRQpSOpO?WdxUio>8^A5zify6BMyBjp*nnE zy8l8gl^hNVop6BCh&1(fiJc9aq{zauRz_KS^(#DrgEfr=Uo?fugs*;4-PA>F6gA(; ztN;6#RM0rrzm&u8DzM~_tk2bgO7V7cJpW&==os?f=98jI=~hX`=p7adBab6hAobl# zh}1l0Oi)P@=guU?|KlYXgQO%L6k0hDn%EAt+E%tQG2pu8xsv|BV5S#eK+nN~jhd&`M zc!V^gaDcV>mKYyA6IO`xmZ}X-=~o zxsD>i{G=-3{lj`S#h9shd)U$@c}q>~U&J^CIp~OsUOKH7Uw(HmuhX!vhO#Dnl9%?H zWxKs#m#hBgQH%S(F!Ot)k6~dzX}}bEwoU68PQvwy%eXK6!N6~|zrbhYxtAX$P7dVj z_ujkv&eCCH4Wp9H*%Ds-!=Tnf$wax{YL4525LXc*v^`{q0Y?Mqm2Wct?34W>+jIVR zFyk6$4pxHyybI}Lz$RH3Iz*0$v4;Xb6VcwT+ej*35e|ry=0}FXa$TNNm-ktE`QcQa z6JPhGdyzCCvG>F58>gHRjkG=v^<3M*$R61l`}N)@?==oSiCSKu9J~Z1g=u)OROVsh zfb{~i9mF1J>4FDr?kjLYV!k*W);kk=0Kwe}RN}f%>t310HN&m1obD?M*3|e2QK%)R zgTuz1yUy&VbA;QzEmo{}Oj(4_NfB zA#}kjMfcj^;QRY%;$q38?Pq6&&j=fIN;WaD12L?!t7BSyE=gd!l_IfMd&v~)L0cQb?tNJ)c83IfvICEXz1 z-8uBY#524<-``r#UoiKqnfp5Dy!O7%=5K-QX1KiNR!fRo{WT!XY;f?LH{xqo#6J=c z?PU<}of(amxlX_FURh+Yk=qw^B7gI}A{GQdC!H{}o&}{@u#--g1Jx{f zd@^F_C1yoE7gv2xXGmW>OEsO0koM0G@WZ%FGSzlWI+^#uNy?E3ifd$^b=w`O10kVY zoaxbeth?fq1;U(FE?cV&C-qKF;qpBkuAz8H*^&o_(rga`4ze-{>b_g>v@y4hc#{B`zdmjcZ{TO4*+xc^+{?2#>4 zFJOXAMdJGTeIci_Azv}{?pRtFF)X(No+r@ZD8#A<6F`Ts8TrnUJHvvH zs*WO=Pl=cA4xkV}DUmZ(G-eoHy~P6RfX@0!iP$A_=^c8b-Yy%O!Yb6ZPWHL;7>_6v za(FCqyD%1(Z!io2Z^!ZUS9BG`7K{k(5s;KQZsCOCM#1C+Q8zbN37eJKuu^7g#por) zLBZ$cquZ}DB|4Nu{_f-s4US@Z@cV1~^%9J-QZ{;VY%b2XBa2=Jb=IT$^KM9=e^~)H zpZrc2SWX(|42`5EchYBy)Voh%a0xl@xh5q_vGYzib9U-Pwg2_UfWd&#vGrN0^imh- zA(|hC-s_k57E9N(Nd29}7`evZ{+`)ij`Xx{yFGXbfc^_YOFLn=N(N-MS8W8XtNiWM!I@W( z#A{M$KhwsF@OK*Vn?*JuayS}l#>A&Sf2{a4tWyf0qIqUm6+ERW2_hT#H`=AF>%t0M9P8DkO6g|9=n3<%+=@!Zl(tqNV@6BCVw{ZoA7h zK*MMo)nL7YUCx}#Q{@sr9m+OUmJ7ECp`d;t9S5@S3ZQq9eu}^$qK{69a>nykZMht4 zDfOyobLfIWZ+0t%988WW0VxAj8kepaygt=g_d7fe^vHXS?SL-HAwFSPcN_SxX0M+? z;;WdG{6v+?9dAZGj_KGZHKfS~9so_xpRl)~9x%KrNzEQSBSn)Vs6p3CSdW&8R?l-Bv2Tqm$~hfp^nl8TNYVuQy^ zw=1ss>uEe@)C+WEp|_M}w7|meNVJdjW0)sC|Fzcd!}k z4L)?@$u-%1p+p#bvWe{;6kGf}aQPvJ$yYBo!jDa<_r+6G?e6xLX;Gg~-g)F!q|n<- z2oC*|;H}p=zU$WuV!p(irHovme3?oN^Rm3sj5oT1-p@GkEJWZ}K--6*pkUjt`2R|j z7qNKOf!@hm8a$HX6jN-%;rq9GXb*^9DcnJ z(-@*SVePuf_F+P3F0vAIAI8Flox~N5db^`}>6J9>r4=IYemT=T?&S^$rV_f~3h5Eu zh~q^k#Wr!ov;=&AZr-}=aiIBy(E7QvxILe9M%%aajwuxo`R$QbLs%5W!bGm@%q-X5 zh2{4;rv(z_QlCqTn{1n`BwcbT1VaE}1G%>zzg4^(ojD)v8{_KvQ+RiP=Zuz4UJNMm zI8ye@%>_Hgai*8tAzA`zlj&Hj*y(fjem|VyA(%jfQ=7y;><&rHo}{y1!!QCNTiLPZ zXp=HL#=)qkwfzDZ-@SBy&9v+6LRz$CC9j{|ho4A2MFkXNkOeE>0kz_pl9q6;HFywm zFzKs^yOJIfX!sb~?S$yXS!ypZw&?k%=Mi|8MQUZZu4x4@T_S`1@BER3T3aAk=WmtF zZ*3%gCv|fWc1EST@dZ@S)C5;1_W-fyreLNdW!jEK3k7ss5{XVvM)hlqOhhRudCM#w zc@O0(TazVP%6msphHp)wH2i12=RN6(8H{#CO9%dO$Fg)-Zo8uyc1;CZe6TePJmu1h zc-mKY13`7=NSk@o+;ZXIu&tX-h2pV{h)$VW@5N5eF0;q_Ui)pJ<0urQsNb+qZm!^= zi><^s@sE--c|W50+P5fuO=cOXtDx|uOmHmL16^O(UDWYCfcHH0i?~6`ke-h1E&29b zh0aI0KYJ4T~;iyPD8Vr$>wtL+Sb?+b#?&LlZn$xX|F1FCxTUR{sICL9?p@ zc34~$!zNKuP{DH=824rcFWD5HJ1I0gkzE6Oq?;-HqAZpXiH!(yc>VLAoGH=Ik&>Xt zsq&42`xCCP`3&>Q(=82#P~sKU@;#WXEeU{Pd9z!8h%pntm3byHqL<%rBIqsMUr9Te zb}|<7_W|<+@Zr2=Q55IU`Jq#IHX&L2w_WVJU&aV7d*OEzABjj^TEzb<5AZ8`4<=IQ z=YS836BE+E=2Df4>w5R&21}+?oM8Nr+e`f9w`qoIV`fC=F8=9Jdv_wFgZ++kwr~8 z?!2O@V&oX$JCny5^Bk{P?y>F!gW5?DY?lv^G@Jd8xEz?kQzN{3o`Xu``jqcNL#W^b z88z!znRMJH1~szyP|t|BX)T zMB(Zt*#E~=o*9~{e5?QaC3c3kk_VlMhCGBQn1%vP%)zH;wm2k5wX~7MZbl6~_NoH^ z{JJnM^Yyl-$#i6`rY^MN=NA+m#D66nPJq-Lxww-VMKxFcJ0y?Cn7E9hGxB`o$nK@< z?&d&8GClZ?-Q1LzTm}anSGE|3n2LZc-M^_3kGQ9R0yD1IQ0y%iuecL4FV^R=i^1Ku zuVN#yZZA3WzZszZV=X6*sI}}(OB1TwOd5n9TUm*4`8E1&+t-7R)QCOer)(QudM1^c zAN9>pIutn>1cZXM*+U6n6p`vaOXhz5lInFL8aM5W!E@cUO3jJsuk3Ok5x=s;!XA?E zPGlUKUJ*^_MJs;{L8mV!=jR9%UT;$o$3-2~jD3$H^y8Q~=N5YL-uN9tT_y&`&P;qK z+xRrzJOHATQGa44JJ^+@w8@>v7w*zyDP#4+^u>#96_ts6H($ZOdG)0%MpXkuYI21h zjFrSy7(L&!XGre7YH%Nv2+0t8E}?6DOb98;M-0U+=Nbv4xs!$RQhm9Z1A?LK=J+uy zm6oOeS06dfNVTd8H4Sbl{FjYN0-L=-CsrcfmrM9(ssr9})3L0PhA!Vj4Xnv8WRZif zPyr(i-;Vy9ML`mdyE*B@k1N3=VZ+{3ccE2)#v`|L9V)IN3Tt$Mqf~zRr=p^6@A3$f z-ppjp{^P#+S85zaT{oEz)Hx0kO?dqUb1>?X7WIE3q9OjLWUxq{S_yg`j8H!((}{vj z&}I0dLKq<4;)8bSYW2mBCkYcWUl^ST^=UbSn51_YE;aw7FdrjG2!Dq01sy!Qk$G3} zeE3T~M#W9zuqAUqo)5a;pL0PfSiF#1bB*V#&0fK6;6(xV!BXCfKTBYDJ9a{fBo1L|?tRCk+`w@wVP*zfpOntda~Avo2nIK@vJm7wfnF2Fq>u zLdK6aG^K#P^-~VH%G-f(8AF!kFNjZys8~y+3y=VL+4va4j0)g*HTNGSe1c%x5^xKS zd$JcH^RL|#mFoSjMu{KYS0yK$rdElqqEp{QftdlaBSb2nH^#KBBsTH9ZU^xC>Z}>} zA@Tj4B4;v;6AahT`@{K~9Ys3hXt3KNssuN=$cUlgik&8pDnRWQM#SF_IV{9q@v#U# zNBBLVzw`Fc7egB|`yg@col{Q5tsm|=$>5)>PA-#oJ*y(qxmXSyPK z=}jB%@INT8E~PBZ`}p+R5l`HikoYo|&ct`!3|boBCNL-I)v-K&tr3oyDy@;EIgsv~ zGO3U?lSn}S2$J73Gp5HIt@`>I{oCSxKri=6!rVNZM0 zs=pZG!CYmu7<6HAS_wp1XbvA!vPq$-cg*MEHriMpRVx;;?%1Xpa4^{i+8BaN|I+` za5`a2cLm`dR#SFlp6<5}`u04AH_81xd`kwS=?`s6BNv}y0&A5T1?tIBm|1-T9OnG{ zxjHTjtK>UaFeBSo^n0bIH;+H_BD$O1wn=gD^LJw9shvO>V{NvA#scr0UP)y+uyHz1 zM$wliW;&&}85Nl+pQ5A}(dZgDrR>;@%i5+tHOegs9HQjNH3zniZeA8}I(~e-fyz7( zAoVZFo#e4#Ti89eZ}cp6#!UT;hOcAgP=afG7NI8%!`%=bh2Qc!tPb1i)efb~Cttf2 zKM^@pj=$Y@=*1hPGDs2=nr0G%N-ic+f9U1HQ)jOo9xZ_x=B>_bdhqa?AM#@i)b}Dt)!Xq`?FS*>STqr*pC1RsOsdw|wz0h3xZ} zGU0D8#-G13ciOg>I{EN6X65fg$AsjzW=4iKvf!mwss1Q+z4v6uM8^l8sYB2)P;rg~ z0fabB^`mIxdB+e1c!+it?K3W}b>hn-(kWB zsZ61Zk=X1VZ=|nXT%6^<>!e{>@=!kn80Tzu2*kv@I{m6sGNdct^tg%0&H^ko{a^nIM{RzplL(Iun z-lzWhGVfUV^4$g%6I_`^%XIeyO*$@37EVBYs&<_EywQg8W=Qd9_5ZH%yig{5r^2l}FW>H7ZDW6!0xnJ3;36A0_)9 zO@T+z_P#{f zZ&)+(YeVe|YrR+h<@*GkEwr#Rc8=Dp$GDcI3g_a+CIQZRJBp^*OX+4#muvC|XSE-4DXfIEnDSbwJK6GZg>5Tij zH+8$!zUbzS6?-{^_}L2Vq78XW@(_u((IE~0I_uct=}8}?{Hv_tf?c+;w1sXc5E7OB z7#-p?oWfbdY2;bEhS&uQ{EP&u*0O009iMj-)_u0J0tCZPE`~X)DL8)E!Rn4?tF-Gr z|0sLYz&1_Ow?+?$@qIW@1)JlXc4RkKnLs z!djR8x1P@Fg{#m_#P0oBZuU4akIAri0Jom0diL(5?q`8W=E^na^tCD?l{$8`_4UI- z>+1nOXiYO0JtpfhcV2pSd(7z-(uoyk!B;#Qj35i6KlndkR(faO>$LfL*u~Y4W(d_V zwO>1wXcg8cR~UZsIGU+*85%aB`DK}bjY=-y_lsnW|k5)Ii?doy`4Xb2& zR?5@+e3)G?v1j3|ubv0CG4!dv?16?Kv7!2>zX&R3G$OL81mj9G|1rd0vb?aW3==X4 z(qkATzT+eAg2;_>59~$=Wx=<)o^hwv4Z`>j@)$*EpYr-plpI(gxSYGF1xJ~AjpL{E zGPADT-wN4NRKGxz6)ic`5Xo@X*^ZRAE_eNShm=dqZZ3TBch$wYUBGU+G5-4Kwi14g z=)mx=YdETam(7%_PkAo-u+WHFrg1CPx!4eg}}0cCY!V#$!Vu-&X^))`a!isj=D;w2!x)(L0H%k`_X%?tBK# zPfBNWJW_3bFW)SAftJj|V>bg%JcQ;^5OtxU-Q#)CO1kGJge4~q!{I9JwkP<)Zhdfb zqkHY|v6Trb(J>tr>2f`ruWqqaIJYWz(>4j{;wU8qys$!HvD>v9lzO38wpdrHH}$*T zdr=^OtRpJnvWJ2}7c^rBOMUTp5?Q-2ux65u7qv?Ee ztKJrkqiG@-aL$HuG0)i|N$>2SvYyW~f2?ko;eKMrm6A6HC|!$XsxWW9|Li+SC~^dn z(FWbk07T8r4_7>?WYuIjvd5jNTCh3D7R9uh8#5{xPR|~zlm`ZoNx4TVqxMk8QMJY1 z@8Pj#Av2pjW+t~;6Hl6u;^9htmnU5~_Y0dZl>|^oiq`p_RUT(Dssnj)Civ;!+Xu@- z7D4}c=iq5au~4Fj-ygC<>XrBrb`{W=OwYqx0Zq|BaZamWSqbbzsjIr$kteF6k&qSw z{}lM}g)Nw$Nd&__vj0kqA~0Y}^(XQi838^I86O6_yFmT!koSF{ASt#~^#lX|=Wl#I zSavo^y6^4Y{t4{oyE{DGj^<15ftapbtA#3(V>R%260*lyT zqd!rRGP;TaDN8g?ZJ)eWeHu9QTQO7L8O&Ry8h-{uF9T+aEpVtR`DN(>y6zrs!RoNt zaxl+#SOSURXgGcW*zoteTmgsrm>)6J0{R{%T1aK?hxc+@J{=72wrb3GTp!LuiQEwl zc5{-0x1yyEi&qD{IG&cXrA@YfhesW8F3}iKITOhGPkg^Euq%IOUceJioNkdbgc4U1 zm7saG|1l3--VZPC=5W~2gJ{9JMYbC6FXH-WP(4TX#o5<-q{fDjwEeA6bL!8Sg`YA_ z#lo@}{g>`zUv?a-Ln(r@=i)il2OQe6W=G7Y&ApV8#w9AO-67ew(DEP2I~o4o ztv;EdY(782!{IWIBZqgl(EEOc`LmfZa4$slr||o|4wQh&fVW4!wHFZ1p)aVjl-^jO zx@RJsHu51gcreuWuX5Zm!~HJYf+d^?=vatYf77z_yIs(&??Z`k&5zU6WosIAU4geW z0+&zIip2*_G?6MtH!nXOW(=o(onAfiiMArB2NlNzks5i2cyH?k;;vWmOIawcZ25Jh@{So+eO8?}g+} zd~$!w6c2>ZG~3Gy=1YA+7ceWaRI``uut%C8W&c<=oqgUhq+WoQ zhb+(J4~*?Tqbk*}V+)$MZ=obIGxS=C$#be!w%7_Kb^ooGro4TZVLyfIVHb<6*^cWL zgTJ<5F+@oKbw5tuiEl2gxkA@jB+MTs{|^s)4Q%`9*Xm{N)iWX z-f~h+VBGJD15h_=xfm)r-iqVdlB4?sOWJwRLsqoH{?K`BdtJFhknlB=-V(w^PLuY( zL+4jjxBcgp{ZqbS${gaAu9u^8TLp8ZrDkwnZS3{COr|(uWS4i_Far+IvgLFUBcPE^ z^?bI59YVkWRQ-{({cGwIEEK!V+G!(I*7J0B)bY$ON*S?DD$#=`vuqvM=gezDn{Bfh~$(IW{?9^K4)_}N0>!wLHz zd0^m2x~9FXH3NxO!Y^N5yraVnU~y18WmFqxQ_ESe>d&e*IHzwlY~s9lpP@_XqfU9C zK!g36nAPxC>;=P2q}1lc%r~nhw~w!57pARpj6`3V)Tv%Ttdrm3qJR7Vy(5*_7`naO zfe`hE5(}-lW?a5)+2{^Gd^!4X+)`2Jv^4u0@Dajlj%UHO@acx7O1r~F9Q_RHx0{Zf zX9%awFAON$;yrW%U%H9Wsve>izOUx|?jgw#^Qt%UAKdYT7NoAz1@A#nb9}h` zy|j-a3S6y455Qp;E=B`y_QS66r#Pj#ISM&323HoVts;UBi~L9Rmt*KD`46~K*EdUN zolkaXfuK8=;vz7;WuUl@F$-_1@?@Cy{QHY0j&o@-+TUStB}3i5fPWeaSSt2y&2W@R z0-jW~Evzi4?7%mcrF2E6st*1#<=X&PlNQNRKYI6cnymTuvJ(Uymb!&BF@GigOHLn1 zC%tUHQ3Hr3Wcl15c>Wt?nQv`!JK48rx2roRAbkKrayo%y3Z_aw_W){u6DGPa{sU!WvLuYCcaId)UiKR(>&FER4d=MwYct%(_I zrn9896hDv-^Y#VBeMIKCD6-MgphG$!gKxNNk#evQYhODQ{VWe*H}~ghOR*IJ#aKA3 z_vjTUbC}~EcKJ~=3^Oj9FOWo?gJv0lq7eVj2)O1k0>Z;&q-0fR3TEYDkVgBC$Bp-N zS24*Vb#1?XwK<-nPc@38Q}#(I#~b@_l0wM(||8zs_pCN%eDkO-0TVe>#?lTCb3NciEf$`a%PJ!i zsJR>hMg-L`-Ou)ma5n_P8L5-(5*t0-ft!S{EaFVMjsJ55TA2|dG!D_uRh zoY$qDUu?cXmpPs88P7bae{j5OTM83=a+^v{%v5(ADJ+n>(R7H~47~qwpM+mEOt*S$ z{8?OwLLhe0|50*=H5=zBHaz&$wHYn!-?JMWx{2(SNt7e|sWP!52Wyss?CYGm#+8rJ zU}A7Sby#vl$HY6qhyjrMs{mpf$6cA^0ks6+JJ@w&%gf$1Ue7+dbQZ2mt}G$4T`Fl% z{F|$tH<{^$K9 z3SivivOu#odbH4B-Lb9%@A^_gKtsZ;x_7VM)MkmN(jUL>r=#-7u`Is9&3C7w5cBwa zj@4JnKABiFrWyW%qozxHK!f%q?NU`ytBucsG^ z8D!gsuVtPMh{ap1`-9qQ?@(}yVeMSFApER~W6+JsQ;Il~rW!5o%dNsTqZ*64eR!Kk zJXcnJ3OA)R-hZ}wViYXrT4qFPM<|f}R?(0aywUajOWv1zwf9nAA6=1} zp|C}~6nf;!*7331n7MBi29fB;k@o8{SriQTSGnc1ddZ@|xcZ(@NIYekr1j1H$yK$j ztAP;okk7j^%&nJx`(BowFytG&pT|~De;<1(FLyC85)$rj%lUs^nQ-ZhtY?qv8H=|q zPBg&>VpbVB#7Z?pp6V=pbF(nE-SCU{qE;C$K1*Hq&61hPGyGc|M~6DQx$2rRVc8Dp zqvO`tnrD~>gA@r#_SBY!j&UGFKC0I2UniKDzLsSIQfJ0>E041?i%#Xc>_~q4imA~t zawi*D9bdZipY)u)sn!GRyN&1=@rehoKNUf}^HwR$o8MLHnNfc9PO_GHkyGpGzQpi2 zox(cOc?=?n=(Qpv)9erM9&3NmZtIaZRTi-ioDtGNa_E-%SZ)rDyRj5|JGmj~uD#8} zb0v1JVjd(8Qz;TC?-rwgT;#^kM)|O+$Kl-X__dbX)%qpJmiZjil$tYVeA(_G1EsNp zoh;T>{fZMEdZqHi7I{Ax8rYub;!?vz&n$X1A!~o-ceX&PDv9NGUO^m*Nj=Yhzoxr| zY@T21qeaGwdG?7&&ae7;JqgUXFAi~Yc!CszZl5g(F7XGK!Ixes-{0A7A!#&`^hyoK zca&Retx%RL;5`d^NgCLtH$^I@x14q(-hBkluU zFm4B;(moJy(P&^V9u!;Ds#VIgZB<{VR)oKQEgOJZ+2Ked6S&siFz+@lX|>{a{IjLv zqyh|QKZ?7+xLqS!@k%$53+yMPJ3f~ss_{Hobh?5xd|K+$N4YXzO(JL0h$Uf_lJ)(k zEwU!!a~c^-PYLw}?LM!G*2Z}(QTe_MT8rN6P}(b>tu*V7DF=Tt#aIA`$I@AW;mFG* zxRAZNsLIWnLt%O4g3WPW6lacpo1*|6OojXfw_o~GAk6#Bl0MrCIqDKiBzCO!bF19$ zCvsWaxC3nrTw(0D*g$yp>+-e5q7>pRwBW)p*wurgy!%e*EesDjE%jfOi_5BH-Bc|m z;l=ogF!h~iTQdlM8^hfFu%^4`7+FSH<9GjEa_;EgAKdu>!WU?KNl?~nZ4ud`4_5}U z{+?HS{n>rHfW6_E4*!?reX6dPG5iP=lA3pDShi%zx-*KAZ{8J|jD#?i2_^aS{_6d# z#324A3z^KuZO~+n#U>a6V;+B+^jACijAT^wtnt^1|D{L0QXIWwBF$&m`&G(8WcB@? zw{7aNV@2CdwUOt6bmVJ`mTiL-1y_(-EzQa#F|3cQVboMGL?4CjNZqD|yG4CpM z$j8959iIg|pS_dABN76AZ4cjX~V0m@Kg1rte(nq`c*< z%X6@oa$#(xdBH1Iv`@d@-V7BqReMr>#941SNaFW!Lfklg&&)Xv{+w#!89DQJ{NZH9 z&IyH%R0L1qkeiG(L%St@NBeME*GiA@(wn8a2B9_YDPtdx9En>)aAr$i%#ZoHIYWmy ziJLDRD1%XZRCv&zkHzNW;_zsRi+ziFXS6^rYNhV4*C*9VoK>j6+Qmi)a6VD>`~rxW z@-c$L#9q9vvQkP}JSc>B5_T7C#DTKRRfEsKSpl)1`!yV&9tu>VpdsIAPs)TZ zZSA*ergZ>!qBjiEzo4lq?tlzDmuBbSs9AFA=>4Nz@|g(nz~FaSY*Q*1b2v*`Gd8hv@-CIbpqUJ& zeGS527hVnUsy&$~PDI7j`k*$;8XC0wr+W`lSyejfTvJasxLIkg zK;fB8?GEyEa5@?gLbm1paP6XY0ZIuQ@V(l1lhXz&zTZc8t!`l3mh~Il1L6jGZiKU3jX^_Z=^34uRGgC{GWitjG z6C=f7tuBfOwkztd2JoXLkcco#z1r1m%FYJ@T`76NMJsc1D8;L6x(^mt>Um%VmE#-5 zSd44`=f6FUv=#C?>OTV*NM8loXSN&%jmHXFkJvr{@ajFwL_OixbDLVC0?tG`hK6h_ zGoPoIX-Wr^eP1`QSy_2b#mwoII2hnFmm4EEPw!oo^0n^urbd4RN#DQh0qhGnMj2-@f9B_sr0cVwu*F!%1n)*t4AbbvV(B zny^ftz5_w0E`Pt{$^L>26Bw++o`w0)^~xgSmGbd7c23!*Y~@aS0`2U(6QG+Fe+guzoiDWU3#BJ zAfEI$ifK?i=84dndt2S-CJy`0MfN*67&kiLaS)Qxk0R#*GiVBayMhB+y5l|G(iFoE z$P{zRlDHUPn$6Y3v0Kec&nK+~qh3a@8}X(~v_`s38_)wD)~3I|sew~lvVh}1Z*r&x z?(0A6;;3`*>1?x>l0gs`5h}s)-_B;aQS^zBnl-gY}-GqKN zMXV{TkwuNme{@P53;mHeH-ojsH;LJ>c|ys3z)_QpYH(+k-`Pum@TUthF(izD$F63% zyyaAXbOc)Bqljs&&w$r1apCZAFdnE% z<86Q*)I0g1NBP<&E0Fqh>yYtTk$c3A0Qc5KhmMH_>dFkd{T8)H_ooB?K&7C({>)-aW1*QDh*h|;~T&yoU0zH%IoI4S-1OUgs zU*Z6Ax99+SD^ivZwFI1v^C_GL)*bgVT=sDio(=HZr8#;(7+z2$6wpJ5S?hWDPfzNs z2{FDT`EdMnC0XBV*-Zgj(Q$LncHz^EfPj%U4omfQaH9Ef#LX>O7rB>}+7A8lun~T# zC2w7r4Q0yUcVP^=h)g?>7)8m+-VZYs;HS#LA8!r}1h$_G%<>znsk7{```Fhn(YF*^ z;#zkg5OHAq2{+g@Ds`IfsZr7=>=Oh^*8DS9WKAS-=k!3>Id9~(#=a;3BU%=o@)*fq(M_gCINE7BM8j9!3##f3oyzUWK`PlnChkMyD-FpV>%iroI>z88#ULBKkql}+7QrI-3HqhZb}N{CtG*A!|ovKM$^cdv|_RR@vgoFDoKVR8YtL* zW*n1$Fp(EpT!dURx};emyv=bD+)qbdQ3?w`;R_JiQ0HD6%N8;L4w-xn7jXwM`^ZRg znbjZ(ggLJ(mUmqQ-~Vu>uK#6!lauE^M!kEf+FlKMrV)7Bolv0ElX~n8{c&GzK>32) zU6#As3t)}4ROi6{qU!-qzC#FGLlH3VS$os?Rvhb=S|wc+>!sb$Uen|;-AU>bhPPm0 zV|?e)u>0Loa-Uf=TTUFQH(lbXIy5$(f6VHwO$-((%e9I-sz&d8nb4Ktk;UQ9alXtQ@>8&b=_F9in%h{y{(R3U|r@% z+5fi-fILWbagEWidHe?Cck@O~mUDlgH4j$d2Ft}?UaMm=I)d4($P}(^-#tp7z?(SR zzBJr^t{!B}KGF&%m_dpbT1>($K`f&cCiBu(`?HzCMNak)wlwzDs4p;ueY~L7OCjsi z5{>kc_u>ks=Uo*Pl#@&$_ z*O6$6>+Pw18?ZRHD+B#cVcpwrPy62x*-R=Jkf##WAdZBJY?i#1>34Q+hE3qqM0g{8 zJDotqc9rzEpHy=?yJ&n;_roJUX-L0J49nX$a zx}kfSO(g03EtcYpKtQd0_)r{KCXi?ll0LB5oEq+`s0_~FAx#?x>E^Pgr)(YU8y$ZSC9M85^*fUC3@i?)Nq|3qxS-X* z2}nJFchA-v_|m5KXu8Xm*SrgqpWXK`m1~kR76FsU%Aiz#);oY z1kiwj8z`mLJCINzKQJu3alDk~-obm`^o3&rlI-DmR9|}kkG`H<*XaAC^{|PG4c0L? z7uK3zE8mpb2);LZ^>;IbK|=f4F^sGD#)L<`eJ;H^9?G6l3qQXV7pOIE%sw398%M+P zmZ9HiQ8Yqgy3ZLs82FK2VOsfXr2WafA7n`Yx%RxacNyQv^4kpTaTBmWiTnYOx2OHH z=zJXh+yGo{BH3*OS>M}S>dZvZOzebcMNU*C|9WnW<_=JgU8})048A4BK5TP zHGJ_2G`h#iRdQWsg{W7;0X@t7=QhiO-{q*#iP}h3)|YUL#T+E5WL9*cGH`Bc5{J$| z2YwI-u54Hh9KJbdYiLG{gC&F7)uF3P_DBqD!dj*{SbYGc>fpu3*A=f7qZ-S98P1N8 zoRCxpcRpVCNOepy;v><~`w4b7YnbxzX-OuO*6Dp?S zAeYCNaY2WuD{c)Iv7#iYwk|%BnOuVY*U38eyPqnH2{SF3La{p>4FqgWC0xdL(rq$B zm5>4+9YA^aBL}Z}+GQ5sB?qC!Fv={uZWpHmd-1pY<~?GEXY_u@#Vqk6TRwJc?P)9i zB+X*0fvAK)Yp(XYyi=TQ%^nbRP<4>dp;B=Rh(}NQ3UG|NX?)s#M3@nycTVq(+;uf< z--Tz|ultIl-zL%%NC@g{#TBu%P#XIW`fg>7qkK^64a(;XfAl@hrD8Edo;K*(es=5@ z)kw$B6+eg;WmGTkCSs^BFK9y^-=xQh{9j5W#qz3G? z=~glW2Kgvu&@wLYOMW4K9?IN@=K+ObJZvcU{kSN&`XT8|jIi7O?GnlxpV4PiSaec3}zer-W zJuspcKNpbr*tO7sI?qb{r(4d7?M18| zKb|ac0->T&U zh-a+l#^nlnpTD?<7Z)NeJa`CvH?a1UB)bk}i9peQ=P3*E@&Pz|7&oCiPGDq<#LWO{ z8m-YM96Ik8L0()mQ4hQ;XFRr7znEjPRjZKO{leMayv+7>=;IQ;-EwWTuXZ;6wuOB2 zzyxxt`2%-&50MYljNEdH22ud`)&f9KqwY&sQiH5poDjoGs9geZ@X6ic;UOF*{&UhWxIaN4$k`utzY$8-HF|9 zdn4U1mv@9EL=CXuIvgcm^`w@g!X8GL4KIA4)fAm;Ar+-aQ2^m3#d=`pQ-72_m9;y- zO$#E0c8Vc8-ti4FXAQ>O9?l^Rk-Okp%w7WvQ{KKUk3y6rY1gr7m8^fVTkXf?EIH_) z&YCaR#A)smPFZh@vJ*oJxC~|mWu@wS_@Rl`=ECB9OLZDzId?es3eLx?I_jWc@?{fU zY>e5qbaA3VB=ofF-doXY!#|o`BEG#Ia@nJfw9+csJh=W-k82X)&N)dm*YW^nHMY|v zN61M~9O+ym|LhaUVgf7wJb~C49iL^;qOfMkBFIPxb-5Ch9E^n`=ifkr>F|b6Q^r$b zVNTs2ELolXxaGdT%1Oj>O^mH7oBw)UI&4P-5&nP|V=%+WfLmwB?)tHGh<)2{(|zTC zx1Uf8i?rDcQTrLhrJSQ--T8(n^Ec`mhCdZ7OoWk>`&B^Q3&52ub*i<1VTII^FvWKa zWgeFJ52Gv3NonfI)5wJAU*t0qZlI-U`DePa0!XwcAYdR)yH2)p=(S_*(rR#=sSZ*a4b#lXi{~u3h z84y+5Mr%q!q(i!q6r`J>TN+6jKtf8CkY+$y=|%}rS~{g1O1cDTl$MSm2N-6b&HJ5m ze!$PI?ET#LQ)^x85yb_b$$(GY`wb=jLQ~G*NZ^=9Nnm*ppc@WTO*OM01pj|V-!k#e4$H2~z8oG&esy)u%hzKh0 zOBH`A@_%7s@9xM6cQ7%^C$t*iZ*B8l#%b!c$BFtDk_jL|MxC1V6R2kpqg*OGStAKm z&=Vj&v0=e-e8&=^@QLi{&mJ7Z&kB*8W~s|TdKRX|Uy>7Oauv88>M`$ys{I{MqU2eu zXO>kEOUNZ$^yHbjvK`2bD%IVNQj|Xvbm)`?t*Is!2J|3-Oa3<=w$7cc^NwGJizcmN z%R4dc)n`TPeg8SKs=ctQn2@G}KZm2B5qr&GY5v%FRPxjAeS!gPLpe(uR_4h%(4xjx zmOTM^fCX4gg6b%y%^5N@-syyCehefox90w)$YCG`;^l|+82AI0$)vUNz36`agge&K zF&@G+d%U&f8;i??45cx?+J@3SNOxT7O=`Hr@7*62#^ch$Y2&uc^3Tj@>Zno_Iti(* z(=X-(#7^HQ9c4+L3APRNVHSZbiui7TQshowpjxGYV7XsK`a!HmM5Pu$GQ z`@HW4?D#0jx!(^c79l@B$8@VBa;T%Cj|$r1|Nov>qa<)RMeC#Dzz^Lo!Zq_>xrm|C z9kB>{k6AS+xRuu&ItwC;(&04{*sWG$kKER25_(<6-xA1PD>GXQN|!i_QKxM$GBzV4 zf@br**$yb56~Jh8K5`Z^4#w5o*+Rd{J+b};TKNWKO38x#6On|$E0C@FjmO4``mEZwY zoK`^3dsG*h%I_k}rl~I_T)7|r*M4Wd*(eJa~A->!G z`Vpgc5@#$dM0GP1Il;wv#u@vUpSC1(bLFRpYdeHd?rQ%6CMW^nIv{%$6LTDH<5W-`yU; z=Gj#kG(2#w#Qz`{OkvCD95l*XH}xJbOlBr5UA4-&crpm?O_46Q=sA?qo1jYSdhY;_`XgL&+4_fB#-2z{=hE;I8BzZ_v@G zY%p^U55SF;LD1ei__6mBCz_hVPjQT)k}hZ5BMLcPj8ss}&Z1#`GzR`q>`8Aq7Eue~ zT!Bs-IyldeliUX<%JLlw_k34@o&m3wx2W{RF8%QIso2*fm){y+`?cJkoBVy>DQ;pH zU6Z+aT{6bemk6F~G53*OaKVyaL;$Rg|AW#-OObaae-LM4PSft_+@qAq5k2wfrq|@c zVUzl3e+SJ&wDa*R9qgjX-iee`zU0QHx%Wk9&nUn;TA0x=lrBtI>`SNdj*nz4_pg=> z>o?2}(vhF^(EC!S)9huM>*|Te(`B}nX%gC>R1Zafp=ku_j61zCp64g!BMq}XLg2)xJ z^<~Scj1#8k<9sjeMa8E}t-Y)UG0b;GL|t; z!zZIaj)?9CGY;-9>wgqANIM${IR43+Asd0)Ez9=8wunM%>?=iAHj0I; zK&SVWS^3l}mwuwe)YYp3L!Z?T_PDjDjjJ41T70|ouFD>*pl z!Zwt!tzjNDET6{FcBPO>I&Ut0rfc6e!W%ES3EQj(JFdvmC$2FLND?4C;jWsCpoLZ- z7sHu)_cK%lt(v8>{{U4hjh-C-B3Dvq-~E8yT@yO*o#vYsUfOSbq&b+HER!em85SA& zi;51Px0SWdop+o^e&eAJ8w=BQv{E-ZX3ub&7~pHwxLabp2iJu*__W)+hAL<(zhqs| z2+W7(-Rylw87-2_2_12FH~~qh0f!6B|w7isDah8%5T_?@vt4$j251Tg-Z|7d}#Zf zwk{~g$WO(#YQIt}SMuv2k;mctM=ry9c&VB{t|k_xkz!~%Pv-TQZ7K9q0=>|XgzO3N8!t1Ne`j7ME_|2g4> z1h}uJ1Y~_WHSXrjb5sEbn~{OqPurD5!EUGnleN@ocL#&ZQdy~Xzu#eKMafoK&X8(H zngH((eIV7adAvBwNSBr1Ilm}{`gCN_?w3*->Bci1Di;f#8t%JQ=UXx~mmFmWPT&JQ zs-PI#M|Ut#I;{;bhn(u_A^P+8(DWZxt?tH-s4#E=_z;76Zq>mmq|J`I$fbcpwa8g9 zWJhcIm9Z|4i!r685M?THP}dX2WR1FB`k(>rMpo$c|GdULuWhIh(H{q5dDp5_B0ZzH zKIUi_a{e42fXutztuT-0Y6Xyl5c*8Vi~9->;#WN+IUX_|(>D#_&$o9gi>{0AnvL2O zI6DYQ^AnQekyB2vU)mP(_jI=i)+&Z!8&KBe?oR7hsG z{9{O&BAE)`?oW5F|6%7Je7;*+rJ3g;ixALrDHZdbXkhq@!2a!hR49EsIBn6H~PekF@fdqwl#C(s&PDr2~Q!^{;O z^nJLJE|uW^?+Hu{l0iXmbxeWT$8_VrQ14}qFt}&vg8lvk z{7(O<7Kj?L!hgMc2NI1{HlQD)tRk(AG>=I@sucSGpJ>q2*3uY(ZZ_U`gqKtfwX3WP z$R>?7QQe9rZ_$RSpwDw33Xl``$~LOQQ32<>i#aV`61&L726y+H{f=faw}}bRpla|* z*5N%U^l2zv(yD-27&|n<|8tY(sKz123NkWk z4`Jg-H={}%eZTEx4y60krMV(QY9gzus@ZD(Pjsc*a4LN3FmT~j+mVZyi*bD<;X}(Q z_m5^*L+KaMfq*^5BVGIGMzeRQhuHz9#WN*-XMks=t>ZL2LG0-UUG!l-1CD-DYf>}lOB$ePg>@%@5FVkAq zPPRgVCf!TjOIHG#TAUBhDx6q}{d68Fg~)dCuSEZp8bn|eNxl`Zi|KyK2b8iWHZlEa zn?I^*>jDqmx1OsDf;ZQ;!x@5?=$dE-Vi))>QpRWBrn&>&I+`tKxoh6)o&6kk8*eW6 zDG2q+5@3a$F2J@SXK<-?50GC3onx;3Ron#u*Nr%JiP6hWa_6dCdFlH4)93Iab~L~e81gGupxcd;|)qXgMTJ#NmXJA zxi?eol=>)`|EcEH#NbG_2#?t=-?n+c7v0pcA7R(y>zTrmzqK4;LLoV4-hWTU_u(hK z%Qc{pX#dim9u0qU3rD`EVI#zaViHx}GEia(3l2-gzmRaf&fTn%y@wE z79NBay$i|Pc*CDmdjEI5TxqYssmf|`5_~obbsbs;Judq<%RpXw zMus_+tdpD@@^#=!Sje{Q%U?$Vpqt9m^OSnD(lxURJaEB%_SKQ-4n^m_F_28-Q}kvnpH9BEO}jgG7VH7%s7n{=7EJ zwx)yqA!eZWS%sM`5xsZ=9~dh53R~m%)fMgzylxR12lwpHmjpmXn$v&6&I{9_;WivD zg7hw2hAhl4{$w+~?!r3HY@u)v{ztvm6DVoMs*qx_V|J#`yEmXL5?#hR+%VkAAKJiQ zc*fyHG3+r_oIctU917(C(u{sM1$%V#Pz#vp(*QlUOtrc)-Zj_f^c=xi@$@od*7U*+ zPteX&kXqlrv<{$b9Nrvaw#WQi4L~ix2k*J`g04l@?$ubmf4vBD>pH@{`x{f8UEr zI?{`;8?5zT@J`DxNU|Gx2ouX=VAZ)4q(aGlS0NMvvt@_L=3m z+M{YAw68kciHHt^JH?*~B0vPoKyQs?yEeK`lLpVg{~%f>e!5IwVNsOZ~hU~8g;g$6-_TQJaB(b>L}KYd!w^Tm*0uxfkN0+4guiis&vk--A{D>|~62#4tx#?{KW}2eef|@XY4TY6==eph$Y6!zSeC7&N28C6@ml@+Z6npI&0*7(5{n5opQzU2 z)YNEYb;GS6pE}Mahu`kN%c8KSm5J>Hjxlu@UbQgAEfkfnpB(>GuH zKrc<3#d@FR;+LPp#`Eo}B71Xh0_jBp;)ntceA+Qu!Vacg1t-Moc0?R4;&-PjrI=oo zM)@9hpg{EU<>qF+(F3b}>2+pb!`RUDm4|y8>nZxg_b0!^9q`k#kPwnfE=`uL>yc(aT`^r@^(opMRS+bajt1xDW`XODP4 z`s!-)>>3`+)R3MyXnSupH#GWNd_JT7rFa8cS-#S3`V?GF^HuEr_r33EJ!d9Y@_FbtUQCM^;QHde^Ayy~S%qW78??GWf zn8iwPFLp5s5<0wxB$OEDI&4Wlh5jK(N$+!0BeQ~$U3eE=c+3l`51+sE1?dfsyY!kJ z0)&2-_cHmF=HFseN4MNw`Yvdp-mLQ3epdbTE^ zo5*>(Z=f50mHhNsQ*iWw`!7_aIE>X>Y#7Qvin;rDxHnDq`9>x^WYMJnWl!Ns52K^D z2bX{_ak}Q68ptjyD)9}@DrT#h7<$vM+pIAF6^~qB%^YN1tA3H-|c3P~qi^`p9xlNX8LV_{!#>4|g%;-gF>irdX7vH`tsKl^wQMR^} zSQ^S$L5uz6>(B0?oBn12$IEXn8qSPyvP3(+I{N#4);%heZ80c0=psUnt%fZ)&%r2r zR+8|94Ria1)25M%+?$Ec1d}!;dsQyPcODI*8fH-!E-1T!pic>bM|5k9uZ# z3Btn)l_ABCH3c{OX4Bo^!8c%(PN2e$kNs9yGsVP!)YgM1p_nWLk2v1hkUDY1tIcT9 z?YvA3c5_X9_n2?a+VUf#D~I{sb8S9mXWxbwgDh==`V62d^_wQzRsDG}F(sY6j=?qY%?1*p|TagGBfh(M=`nyzOOBEX>Ct{k9)+_2Q-jcItsi`l-qSC<5)< zbb#w)U}gN684Muu;>5rC%CPju0SE+*G)Qni1oZ|!B&s@*Msg=Y@Iraw2~a(gxLu=h zc$gUdiOuJG@(o@@=i-5f{Gh11B;@B>E~hra$VuJpaH-{Dmyhu51GTrA`thk#5MNe# zgVU^au!P6j24bcf=CLMb0~1@1S23O@8#sALz`k~=zkTzlG5IFndF4qT zOCrkL_krz4<2ZDM_tIpbGASHe>O{F!g}qA>=J17S>U5ZmH@vCrLt*y!(~1r>lmxwa z9JKbL-f2EbQF%hRUG`nnv-O+M#PPt9i-TnkAE&YMO@RbKYe34ynVZqdt3uMOc>t*n zyg(@f&PO$YYUuw(OIE)`O?f^sP^op(Vh`^k<1m<6@=j1ellOswf&$!qOnioL+8@o- z@E3t^kGl9*Z^eBt7-Z>ZhyMn`s6zCbyXlTIUUSJ}BMIcQ+TE^%OSXDd!Z8qFd+j_q z@e8~?mpFT_Nb4_yGB>GY!@wZt_Escv;4Cc2E!0j*(qb{^G?DiyUP+`Vc`w{e#l2t+ zR6hg?dZHHNXs6sq=7g@FuAgSzvqBtdSrRLZE=vkXU)(!@Y#y!$xF*2PAbpTC$e$&y z7zKTpF+oSl)=rqIT}7)c~@qCLnsMra|6RESxtgtaG2t`Bq7 z5h)DM-9cmY(>)CJ&*~1V*6}}?Iy6Inr82P8X&7|#tbcsj*4@<%X zgw}d4zgOQc^S|-LtqJD*q!l}EOTM8(WWM`eg~S#KBgUF1y%H>t%colR8O&XkB{Gu; zYOX47tp^sOi$^hXUo*%B#Es@$)tHz(vo!LeaKyh{_@eruVmUNS{HRvy88i{v(&-hR zi(sG!@-b+Zj(@4O2L~qY%Z%iACJb$)Pjri7_pyi9W7W|e6*cJn^h(6PU_esQc0t2C z$>2z2G&m-@(J9N^r{MC8CG{?^lQNo2jkLs>lMLqk@IloQgTWsSB(`9bO-#(!-?I65 z!$c0lu{VAq{S>3+t7oG5$}%uDe}48Sk?V(l+T!6}GOjcHH;eGAgi7-^T#uQz^-!P@ zn*IPi3`G?&c9z%-=m;0|us9FOOw;n49e`TkOnW{izSUO4^}hopCW}9LH6fqk5&;w)86yo)@4-XTOGCtLdLMIo$fcID z4~AN2NhTM~D#2vLzdr@G-%mybSkut;vaZi&z3Z+L$Lp=-0_XFApU}C5MpuM3Tdw=X zes&WKP;3{in>`G)Y4uT(n%pezIHZ$@z$Pbud;TEQoP98|pXhb=?7t2H?l_Rl(ze%E z$8Z76K6!NiG-n@V*RYov%W9XRF{z(ZP0Zs_X}?@Uz^rN)<9ZW z2f|@0cnenYn`pf%PL$s2)B1HH;M)`9Ub=FQ~BB8{b2Ma7wCV^^9(LzjclWlsR=lHuN~tQoieMi~cESC<6YMNx3cQ3}y&%;$0IyEl@`xvUD@) z5SMD;Ap9}3io5@BL={XQM`>%bGD>P3%?;yQ)SOTt;%DaBr*=JggrupvYCNuY8EPlgNLy1S zBt}$YplnA}EGJHwB(IL+CMG-}8gi5Kvb8Px7*#q z8PGN%(^q;w<5dH1;p8YhVmcda+%u<3L36a}JDB?Zk;?@HIVCZ$_5#Hk^=S|U?>r9% zv;k7|R$m;DSq=oqm{k!I3u1HSN~ujgB|4pd?#`XLth*{^5P}_|l;FdhBh>Rqhr#K? za<^C5Vl%rcr`yhZ2M(J{-8S`=#Iu{rqYp*vw;CnVwr%|A&p2p9jW?&_*P>pBL?>N6 zi)?B(KV{QK6>6vef#+=tXU>;vTXP>PutMK^NcwhHd-Dez5Pj=8d0Pf#j={AvEgmOB z;~qCz>{FAszufl{+rYH%EmMQ0!>I@Nbr`e6OAQP11NkzlQ2qC+LSR{<8=En zr6yQaq1wE6?0o!GK0ijMn9^|#!Fpp>S6U9s;~-b3Tcil1Q6%HO@~(+1I^^x*-94>#qQpFIQMGt7#a667S^fSDBAuc4$0Xa|ElJ z?TU}`KwGL{@Q(KN?J^qsdd+F&*}^l7&IkA!pJeY$Hq*%Sr0jYolfMPw(Fc{y)O<&t zS0%+?lik<{%41#5?xF69Nfq@e$p$>=N{61NlmrJ{_EdW*0W{lH2A z`vvH~UP#Of#5}=}EVkk%KW7%q-qXM|$dk3E11vB)7hi?D9k0G#7N~;RD?Qm(UJ$y1 zx&U6L3sXST2CU^avw@}gVq-bu_8v^bGQiiT4|-CR*SHQSq3=R;{r321K#&cOA8&{? zA7FHFOx#7eu)p=7>(F?f;j;GclYb&7e2km)bYt_Ug6%d&CAy7=S&uCnwuyrICbVy? zt?5cC8iRH`U3>Kgg$_C{pY2FQtLC?4cENk2ja8adncw&J=8xqB$ub5?`FdFXg8{df z3zJ3K2WQS$orE{bEk>1pf@gCBzs($cih@Dd zP0%B!e2}(A@45SK({tqAn)1TlEKDPIp_hQdojhas6T<6tde)$2oqY?VRDeoaiEhUf zF_Sb7hIr4e(E8APnJM)7OCyY|M{&&9pDmnZd=DCYvSMG%O72~8hm>tr{`6RRYTq;(?TL!9;qwj=94%Dvh*`xLS)8uubRSH{$d@L|WRbDu5ayw6qb08YqJ2b{RR z<8tpZ-*UXl5O-slV0bHWH21}Gmo^$Fxy(v4Taa02LWpen>@fT+=3(rqxuLvZt8I@O zNY@dsV*M17!}`~CkA)sd{m1?RlQ4~^LH&NZDYb1>lfi9725+*t$nj}-@Xgtbk6fNe zuq%RmRKMP!{`I<|e_A3ilAX9XGs`IMxq;u_`#WaKcuz>a4bgS#SdPD- zNW9M~Fm$$T)Z!$gpD>R!)zXXASiw&_H7yW76P$H_44WkRZya1YZ~_z{R0SjgulH>B z<-7Drkmx=Uz~xkBy+7SU_Vu&MevNUMIe`+ebuRwi zTz_2C&3Dmbg5eOE@zG3G&u@$W#{254InlDp^TKE`455Bq1}?>4?tftN9^E9A2v8PJv*P&rM&M7N1kRqwQ^s+L6b}; z_@6p1hAD=-K|<;hD-VCwf9k6}Trv;b+>DGw9km_FFE)D!&Kb`o6@;W*?dB-jQbiAfux+kka@k$vW@(1h-Hq}gWPh2{uN$~ z_E0_%Q5;_hxVd251$L)hkF!5V-xHsoP)F5?H{l9AcJ?Qb|GOKMtbATTX})j*RwW!Qroek%Tsz&ePZJsqTk=Y5Gf6)9{8nS zGp<$3H||3=RkMvvOw2Q1;m{PJB``6XW`Uil;=TE%CD>T6`*IVuNH_%tv*GjRL-yMZ zrtwRx-f1kFS4-aul7N4Y7oW7vK~Y`PABzS#(F|XI1YcW>GyQP`>4+&nFqjAy$R|br zp=ovbf>Gx9G~`yk9{8|qZbt$+VF{rlZJeBYCmTI^eSY9N`g9cIBZ^jGjB<7{DxR5e zqYmg#WUg1vnr4uB+we3`bg;?o?|lq2F7#j6`}j&s+lfyJP8yKz@%y~-xeC(5Z>U4> z4dhpMF8OaUHi0)Y|H>JyS`QyQS#Hy-zBo_ZF#gef_nn&5~$^eLjZdkUw}|IXTDy{7ABG0 z`QtEgx#O5#Lj`*phj|7J{|qdS@D`AR&dT#n&3i6QE9+=UWc827*Owo%BxyGm`p@PXApl*>9)l$1!^>SU z*MqnG4vBP9OY-w)n$D<>otGc?pr#mqg0tpj6FJR`sczMYc9}2MmWwP+L&t&#wkF-n zfW@X)%|AMBK2tWQ{M~$8>N!-_yZ;K?@p(PU{NG&dSFEIpKh&^a_VrnnfIQlL5U^W^ zvG2hAf#F4}+bspIo1T|2gIn;zWU+No^x_Z{Jc2$a%88Q(&jeTJF? zdk7s12M1gq$M~%0!zdo0xUZNHsXggND6ZMAgTBPrsJuB=9)0A9E^H?8xVBqJq9J?n zZZGn~lfc<5XbQ+ zF;C!X#&<>v_Lnq5!K|pp)lFr6+O~S(Bh2O1FZsN*Q#kE8ydBsl*{ldzqq+4}MX}w$ zX@C@v4;_8G%!{s02{X%`CN3w57L7ZE|AZwa3JB*o$ zyLm4wmi#-1JJ42(WbQQlH$c`ivD9=k?sOyVyIT>mfi`_jKqF$hZ*d55qB5;UcUp&R znzWM&m>`P%YiDqu}|yQ;u(?5!ARB` zRX&ry``fkaGxer=p~JUG4J4+F-|^>{d6IA5oW-+iBC77i^jfW<;wdk;1V%zY#2O*Az^>j66xHzFxq)21|K8FZ;xWPaLlt% zVc{m)oNsi|ay8ynR-2n{;>RB<0dsU^e|}vG!&g8ba~qTL!!;MHo}@u=@!4<2!O@%XOo49&%`Y3L=?o7MPf>isNQzPryrObGya{(44M4dJ zBduzCq1f6951C;<%GytEP5dm8@(3rdi=#jBdi!T@lHwv})|cyjJ#JG*{yqMLP&>v2 zY0Q)%7D?lJo>x?LJB$4{Lm#)NsQGtJ?q$r}n)(i3!zn~k!PrFm57YSz3uDO0k7EJ; zk(DcTp3HL0+vx$ArNqqQac+$Vy@Z16LiO3_iGsi}(UGMA!0D=qT3Z)fRSY!;tm*_{ zmz)n1U@ho3rLRdsPR$2HJLKr#jL`z^oJBh1O<6W*R| zyb1d#-ClzrmS^m7Ke#@>=xz5$*1YK;Vv?N@4?@K<_6T#|jMJ93)t~})H#A3{5AY9CK-w2iVw;}LIEJVJj;K$$Vwb2=qZ!>e*Q(1EC zild|rDUg0_z-lAHqKtvKf_>0VB4kOj{fTfVlfR!@3M8MoqMp-_!grmEdGXe)Jmfxn z!IRQ`)pGRQOlgz8iIEXtlzBT}NI=2BUm!%9+0kl~JPNbRb6iEDYn~fJRt%WX~QbI#nZq@sxWzmsnRls)n%$@Tl zm28MEJ4Tjn^XUp;2Ogx!>;gS#xrM)HNT;)`Hw@ZWTui42EqTE_Ie}OV-gY={b3rZd zc9=*t6(VSu%*P083ttB0t=u=viCVd@Yi?0!9?g=BXUt7-8Gz{DvU&2=`(j_}$mtuJ zLXwPuoV4K(_Vg*2T-$8i)`R(y6ZEW&RQB-DR(j@jqWo!F2mQ&B!!(H4U>w_; z^~!Wzl`4cS%45Nk?+EzWmtW_MtN*Xgn+f)=)0%Y;u$>i;iPXQDXf>%Df^L?m&&_tm!q@ zdi>4i6G8_qKKo3brkX*%*NHsE-lzok>^C1jP7(4soOo2i9G|WXUJWRnNspgw8UAPx zIH!2*$_hLh!4kI>ZxDkK;Kf$--JwjzsV;>B$kW14SO*vS`RYw92$? zA11Q~@N^!-Q?Q;Md|VL(4s5WBBDDZJ?%RNwd_ z?f8|HXi{s&;Mj&-;2peB@QSjI;3^s&2_9Jz0DEuP*AgFDv!QX(-&2r$w{M@^RCm56y&@y_qp^h<9HT2#=WIO~&On)N9D zGr|2tH0Hl9V9+$Jfdi$7T)xBkGO7(2bUw#HZ%d-JM8a_Fka|gv^rJepqxo#F1t5vW zl2C`b`+KFloYk<3t}dJ7lT3M8=w`cUeQg=W%i|cJYk9Lo##*yvE)rGnWFmC}4*IRZ znCw;9($_~YUf|#(8QOF;QYMl*(`Z2*Rgj{gKn4RPL}9bcEmBFRA|&;jBB8=;>8BWl z{tEXKKD`>1dp@g@7^#0N8ZN^*Y+lQuOCGzzd@^3n^5>mh1p4Z!v0BHx8+SS6McLd+_2oLZmq7M4@D z>mS=yMCla}WrZJ!n{q7AlqleBj@)@9T*u}lKU3T(l5umQ-KUh)67 zq8^|OPBk(9eTn}=glQ<-adgt}&2_4rdjGyuQqU>ltelUO@`E?!n&0^e|YT&_`7^ZN`pF#sH z&jIeyu_VkYIqWWrblJxT*_;+jt4hoGN_1tCa6c`C3I^(UY!Y>s`yqEW%P(r1adO7yHKgx4cZ5o(qH z#{!7BHJ}0QLAm(gJL1Aa#lYp~DUm(79A{sYk*>e95Fz2&Ov342g9)nLD)&#`%OD89 zlAhF2OCQ-iFr#`{KFYSFz-RPA3Rj9Ld+fz=2|szw+b#`pR@iKzxW4{2bcSN#p~M0O z$=#s+{9qO4|6)h{j&KP^bE{LtQS?I7iCf8$DY>Mf3OXbDkH(x8kooYd5?S4y+8Ack zt2ko39WAYN?$-_{3c@iuBPT9y4`Ml<$@Z%rlYnL1@_fRu8_hx}8FvghAwYHq0ZJyf)d+lMY7>6i8gxnDmwa4FcnJ3P|pWgVJ?K{ zoIBKG$^ZxX@?b)p+oaGUwSx&h-<>>|5BD)I3M>QFtQh!N3K9>%?^!Vj9M$nBCVw@E z49`}0oBK&wRx<|c3v+T!)>fqKn0^eYBe67ZM1yylWHuLVNr3F}0)=Y)QWgV>=iw_> zm}zn$zhnfODuauN;70o`Ie6j&KK}~GH-!vT%d*%EJt7xx!$B2+iuYDc8S{Ona_BFmd79^@P?1yu7v?L6ll~T!$E$&Ig6j_9uz}@s z%)oM-X=0%8VF4@&&n;FwW7I&&Q|A6nI0N@5r58&j+(k=p?dqC!=mnsea98OOfF^lT z?u5=OUEsr}4K8Uk_W~j1&|z}dt2e2OINV(Z*6Gf9J+Jl>tvOq$m>k&V3t~dFl%-Nu zAN7-?IH&mK?nkc;PM&`)i9oSNPrwTq%$2z*P@v4%g<rg+ zsp6xO5vF47@4I6$^4bh8KMyFXc{1{*zNgem%koD|>_vnO|X{~8IH;RwTy$L z49}PL1)?DWe)hH|lNFhSzhmu5TUqMolm3n?YA`tzOH^ykidfU9BTi4m(PaQn+I#2> z%1v}UV38f`5@uaRhEhgrsw)F8U4)^{mH!hM+(mO2K^~yqa2|sNK1P^SOv=7E^g4cQ zruHj9`IP5*H&@(?A8eFkJ{$u^oJ6G6W-QCK#og9}{S#qOuq$bsel|Deb-(K#XOGSv zpXqUS-~(S5H~u#;!SK;kR1osp!XG}TJimv^qSm(+Z>zCAgw(L)n z3D5-iO5ACmHhLJl{Iz=g2bQU#rPtq6T&u@M+$u6|n3mEanbGQYNqZ9so^KWj?&hR5 z!4XAjGUQjo%f$Dk1b!3AN|Kv9o~1a>lMMJzHwiSBDvwh(Z~X-nRns{AG_l^gWS1w* z4Qi&JzBvJ}2*HcjR}aBtQ_;I}Yjui4u6Kb%=M|FXnDJ=%arm1h1+9!tj1dnSf)k9R znB(p6O-IYR;`D4kl=U{R?uISgaU`f5YBM z08pT3-MdUx{<8`>6=ps_DU!W5`mMvpS~}?**6bJgd#%+Sb&qtrZ<9sOm@Gz^Lo>&? z?^Gi#S&Oq%xd-b}fVJw+Y5tVyKF?PDJu}SN&(-;7nvtbTUHR)61_rXMu$}Y>*2lbq zeS&v7hZW^*UGQh48_=NfWbtNSg>CYDX1*J1-E1!@AJl|FSUzMRzfC%~;V$$(yr;hr@H}rMGt^*~;4|G&td6jPp5_&QM7;NFIuy@+{BFQ%O!E+&3DYOw zcjbMk-2;%%sG?SL679IG?0cd2S&#cS*QzJE>}Wjh$>X2JXimzd-7qdr+9{Oy6wi+i&l_fbWh3xhwqtSE#Y^u+A&g2p?FN7e-Zo(Y*6O zg+Wqag&rejaW?n8+P6J9DNFDEi2sW51byn;^kD!t6Ho0$KmOt z?#nj7=xMZfpGl`XQaY3z9KO(PT&EAuzgl@H0hGx9)xE=nO=l-@2ksUhz>`OJ^@#a?4;n}(F!Il`0K>Aidw zxz;j~MO9a!zLl3(w3NlNv$p(Cesb4k9Om8$#vmUe0P0?d^P{8$ zQot7fqkkBSJq3;{&P$!5*P*yZb2>W}-O{g=dAF#t*p9aagZ+LC`8zv)5b#(<9aPhY z13B~c2M#KoKS{zVCN z5Az%xnF)7|Cpwo<1>h%B5O>(+@4E(<%eaM%Q z$8@l65YJLwbZdIOrNKafe}-SmiLD|G{kKxb8XXB+@?O!c5AW4fp(+jknrFI}D_hU# zj?d+poox~UQAjl{zo-3B&T6R?)f{wP)&Zbh+HMZZw!20rVD&=leby|15tp8Y@(XOd zf5j<4WfklfV7UnNBKwicLkNj8V0RbhgZR2fP(XI(tlg=bgr|v?&DTW{6FqsSdLk@D zmRtUaWnk~Ocd{3!+WUu|-08bFo=;M|gLAJ4bL#Tl#C;|Em&bD3+>SphYDjxDFZ)L$ zu3A~c@fO2Hm};2h0_KhYw8Z{dw$ZcrGwAhZ^*oq-qhHy*yEi@$1!i3pN==OmCO#B0XQb-oIas-nD$Y`&(0(I={SJ>!t{bQl*!36h)dW6ez3j zTY_pD8BmHyICs#zY&$(|0-{Vv1CKEqzB-ZI48u`;2>5!_;zaSXI^ozu6#PU4;sDC| zYB~ZhKZo4QX!~}M3BNcM_dKI%ydll#fS&{C#_8Nj3P3(MU~xQXlTSPd`DAaYh2q-K z!=oKt+;MebhX9lk;Ag3S*5@+&fQ(;{3$VSRn(qH#6mLr@#3bI(K z*1QdLhG8GvF@Lz)-tIW+$%!$Cy0ip?h;|LF)mtEU`Nkci=;s9}J#5z6UiJvR1#L7? zlSA%&9u?@#`GFH~4F#%hw*ZtAMrIplKVrRqeim3+oDVe6j229OcF{s~t2=1CmfBf5oOlwxG8ex6u$(G47=VY<>1%o>|Um8C|_hom=(1 z%_4I_pp-!1ugdgkW^B&>CGhGTI;VRo9rZ*Qu+BVhD{;3{P&F1?1{6U z?N|PgqcM)_swFJb^*>A4*V3Uh9=*)@N?V+89c)hZI{KI|XU`Bv%riH1t?mtIqneq!KNr=omjejtRBVRs1@?sm~Vyn5lWK#GNq=GSy-QAUyX((-s_9G3_Sz}#T0|C{dt6)RwS zu?q-I!NB||-P9z=z1#5b`m#S>CaI)5emTgU8zLT#V|0hP-G+!s*X6F^W6Pm-JWfR@ z#e|yi1_{E-m|g}4R=;tK0+UC5Y+L}ajzc`7EX&FV&)dg7ogm!5I zN2=G@%P6i*bbq#fLsJ;bgQET6| zH%CVqb+i9*tqvV)CU{iL^KeX$MVQ#iDVl3|lYgwmZx?U*0jQ&99H6OGRJ@gRJCHs3 zvpA%t_IQmV(Ep(P{cy|`3Uxgpk^QRvrSY1#Svy2`@*6(K#a9oki_oLC7a(BoYo0;? zC1N{|SM`E@#eC~{rv&F!7->VgehdY}*wQ0d^(G#6q<_EL`LVgN)s(`k6WPH}_nl85 z!K+yYxJX9`5jlg?r2%~A;OC|1R#MBlCGIl{iiA{wDhS5cr?cR^zNSEN+%E_a$`}m> zM-0{A5PPou^3O)(ca3KAD)4=4@_grHqrq`T54Q6jBQnCEcuj3w0YUkOG$RY(M_90$=0H2fBy7gv}o#w>G)}-N;4_ z^tZ1q##X*g@K;~AF5?S#9R_@8Zg&z6^&c)j2)&YIQgW-`pKG1LJ8Z~M^xs71E1cjx5{?hgkyf}Z{XbdY-iZd=7lasR1^!sni+!b!T9~ z6E=A~hZP0esi50F2u%WnNTBT77=G~^-su>_aeU;!ciZW`k?WucJM~Fcb|lG(W)iCh zC{gc&nk&C#Pi=c9^2rE}-q!tMQfgPho|A zPiOY(`ZKguojJtvRm&jPy$J`oT!{pNM)x@ols7zK`sy1th)K>ZegDr7vsxWGcTh3X z;5ia}+ndy#*|{!g_tE%Y&|+fHy5&hcyqAU!`2a~{YvnXMd{N@Mn+>;8} zYGCn4C|%B)hU`+ROr>#20e~=pDcl=!0D)U2y)C>A#TooAw;Ax2YcD5wXB} z9K#<2U`bwZ5%6UXa(1Y8O?52><_A%2{mu1b+6WJNT} zPR{{USU1ihFnBr06`V(FDzlLQ%0m%b0qo}U;BuC$UT<3>mGW2 zUUPj2M_^aje#VuZHV`2Q!}c@77By8y75w*%ZI9{I4`wwl67DGB2;y2MB%J>X;87L= zrI%)O{zO0zn*{{vkcas-6NamYEYg5WVzZii$oQBM^Obq~XFC#xcm0S~D0U`G3?uAT zlO)GA-wN>o8aa{@uNqX^yzS(Pz&?>5zV)`f^xY>VOhgx%D?n|+%@82P6(xce-4k5s zr5D0F@IIib4=}Nd%G)ShgF{P{QrTdy^Un`w=n?gKy{Q`lbn}e>PNh+Lv@fd)o--lN zD>Y(+mx0V|LW@bY!(|#z47L~*)BLIOjhNiu-EHr68aIpZM@kqWCY;GExO55oV4kp;6(7 z0l*4zgU7YM`T0f4Q2@4YX|4*ms+zY#M`~I4Q7j_&p|GnGfMlpQL9ow1^ppx9sK;i{ z2Ov8*cE>>;;iGRqAm}cLbh*g&Yx5dx$#e1y*@ocV5@-7 zClAN&@51C@0}3RT#L^?QzddzxK6{yAh2w@V)?vTbcC|7__ ztdD1FnA@;y=;laT2l*sJ|amq&tm-dkJT2UD4UI^?r@e?fFSJjBsdz_lS zjPaC_Oy5fgpg2KaaEulr@&1Cgs5&3pgWN!olB?OuNVdiL{NA!{2p$&zHHTcW}FN zRIyXGqn=m#qQN_Ezg>W;Ua*mS)4l=K=>-Jfd6aXafdy6-fc~awe&?m$tk4Q`B(+pC zjw5rIps)wcI!gylrQxiAQ(#9Ibw*&GNk-+p&`EMSofCMGArXn5L=@e0`-=btvfHIs z#j`}P-lvxwYIK)qQ zz#OwxSXdy_3JzFryeb&Y?!3$p{ouK2tZ1_oV^|JW=GyWq<_IRE1?tLXUIAMWCccdi zBr1KbytCo#-pgAlX3LV_IN7!+AJg<|chXvx?)CENlJ>UnUF6!l)h60doJ}P{WsG}8 zL2@z}d(woumliaslU>H)W&KO`3>ZyAFl2tH$rY4 z)@STgu>^zyyfoZ_xL6ws(q(kwb3$}3i*z>EUsjH9yv~5bkpdXbtGM&XQje($~qC` zay^T_%CJ?uXQa<+!N+Y$o%_dp&eOxjB4XO8emu6+JGZAu7EI1;>K~d9>|X-9$G~D8 zq^T0^V?Wt%e+u@-cgtWLKr(QC2HJjaerBj(^$n1AmRt^+n(Q&1MRm(&=OZ6z{hdDh=+V`f);OGN@YrbCfsBK74jPnEhiA_r*Wx ze?6@jjPnvZj20V5%CW_aohf>F(=hoZCWC|RK=kr3d=UteF~OD0|K)ja?9c0zcps6c z;`hIaPl(Tcuf9BLZO}?wCX6N6(v?E2F$G({lfNn^`S!VTk%*USY{WVQogs?-9lw})sRMIbp1(h`%|En>O_L{d1c{I?+3s6@+LfESV2S7&(`C?2B zo2&xvM*@vNHROu;s&S7m@ZNs|8t}W25y6)F2NLshv!_#+DfnH9$G%?NcT0o$bUaeK zY)(h#b$rMi^_vaCrtoe@8GU`Y-Y@i}@O@)Uv&X5WtA?HF&s4Nd4Ht$A%kb_0-aTxQ z)-7(0M3AD84!Eg&UCNv2cPQY0E$Inw-G(k5sTJmr#=q<>$zaR0Vh?O0B=|X1vxOP% zYk$p+_z1n-U8Cr+sLFz9Le*+le%bu)@QQvrrd#ieN?bhwXj!W;B0)GjgDi_C^0#oVl`YbaOyV?cvb{g2^Y3MOqmv@fo>N(rWcJpQZ8q{ z)xzgvv*~G&7I5O}>wB=geqv7TXR(BvC%WZbpBx{>|2&g)QioG?MVT38{iB&Z;(5#Z z_>0U5V-aFj)6-a(A(s8~2fEm8Ur=EGD)?xoL)%59DH+0}7CQd7{NP!k3CnNTEwQtt zlQjyLSr~X3aNk?hutH*Lz?nS8DEyfX1=_?aTrNI$oSfNjIe+{ulXa)Q%WX-)Jc<); zyVOK{6;&SdPwGavhRvMZG=xvh+wNe4m+wgZe1k4KntWNn0|<=+q(?ee8hn%-aC195=Vhem9oRqAeGf6nYWZ4$e-SV< zrBEdc6JTW;!^JL+e!#$YMe5(?uaP1Pl#$KdD_pT}M}Aa82H{2E+1Rrjbc<8;SYH6a z3-&x=o8IWAV`=CpbB<&XOmPc7w|txSAFy&M6Ucyc_+Z8{RGnY#ZHno?LTqCXtUs9pspPtNM|(v|u>u65 zqQS-sxpetToyX}GWU=O03!?d+8QYASbQwY^%svw&PGUM)7>CfQ`Ue48 z6T9be*#4-}X zD>d#hL9FVZX#J0B$DS0n_)HPHo7Vny+JHuhP^as?Yj%F zGq1Hset7wDPDc7p&MpN{hVQn|AmDRe;9*==-5RkD2_ELRZj(h3kldG|@o@izAZlwl z`a!wC7P_+9m|09|7lN|)!ZJSHS)?e1xlf!=0n0Fh^&}}icT!4v%&E8$cX;rHrn}|xo^w)Mk@()rB>B@>O9{PuFIO2wAff*~N^#x( zJ$%xlizbxXoQ=kL{KUr#A4-j8+&500d0M+?v~CKR&HVv3PYsZJBSgCjg;YNy0=p03 zu$Itjmx{bHh~-higRr(dS-(M03|UgpvHQEOB!OA(SMd3PGsV_FkD2`T2Dfv!vhwc@ za}v;bB#C1=nM>_xo&s?PDv^RwaxD1rz=I7|t795+i@o)pgD*qoH=J28j>QpYBTpKr z=_{|P=`>vHnm?=xTS{b85V5K`CD`N=Q;#foT9XIL{AxE2Bk#Vc-g3sk*Af>zb}u~q zPmm-`t%6oRJ~Lk~miKdFW?$~%?*4eRrG+_FAvF&|68q|sPnuFE?e=LTGi|$_c|z|Rz{2{ir7rq zYz!{Av#-U_%EG^U0>!t%a*1&biFhs5(1u8nH!Mu{CbD>d0?@MJ(YzP#BCiP+%-%75 z0U0>6nr}Yb16^0dzLHGs(6Bar@f&tkpokSVKY)dzO>kkt{;KGw!C>WVM&`6>X%FDw**5RE z7Z;l92dJ9*e+w3<`dP!O8lV(D5cjady!x|rok+l+;=lUOjBIw4$nv_rNH{i|W+xu; zxzZSuS&KK0l3o>%=}(6rSAy=wC<+GP(YXk}*Zm;zrxOKBl9Y6u*_w zmJ8#P2eWuKC6I{DQy&O=#iyt0`*7B)g7d?LB}z6qrz-eytXTD{O+l~UzolLp=e<)_ z40pKhg2J4JEZfR9vFn)yox{5tAsfGAUKT^E6&G0aekaYO^bhM^otL4%A@WdYH zttGuk^7bqPQAAf9B}a$wjO@kX3?jc<^rs^5=ky;e6C`UqC5RwwvMSXI|C9>`yx|p| zzQHWdvEeo4-!4VZ&xBEiJ0@X{z(T>;>sLY#LF@IX!d|;YnM&iYL_F^H<11?%O$yTF z8?SHVnxTUKYSVq&hN)O8CKu2R_yn_syd0}DOMe~%PAbXukX`#Idb^2Pf6Z{@fGBJr zA2aTQ9NE+?`*slRklnit3hyaY&v3$js3T|PP_1{Ls{F_}D}eiiF02n+Oz2hNm71C9 zUdg;1!-=TRw6nrVY4!9|8w-8C$eaO5nA^y2QVm>R(c0_Dw8z^xy|{(5eD}3>C`j1| zFuw-|Z;c?oi7v#`9qzQys+_JReYt`fT2m4H)M5*pwF^ek)okkqtp%?{#wdp*s9??} zjX0ls;a4js;or_v9m-XOr{3}YevuJ!WI%)O7X*w?_Ko~LBzcBT|O8V z$bY-|^DbKvZ`}KO2(7U8^%*7W7IHi(pT4>zPx+hxmatvFzXZd%I+MRz9J$+e#rPbB zd>L5s*QZJeSbgVzyG7;RI2JT_#aU2=As3I{X`XuQOl;Ib=Vf3k&-+GMmdBsh|JA}3 zv44$y_{WJkrZ{z!`y}LI55F)whAC@*l-7eWmMNF3Y3EakT>KhSm1slnSE7h=l+kG8 z{z5=FDT#5DduI?%k>PBV^Z*}V8Bw!|+`>X)UfH+!#_U60;*<$XT}UpxWfGsr4?9$9 z@Z5ibBXdMJ^6#VIpIoWbCim!*LT&D@xjK$6wzaQ>GF;1-cY61PeFK2bs0ODw@!iQ1 z8PAswPV=h+HxF&Asy&rj-VwVZIt*C-&cPWV$HYeu**))*Zh;G2Psv65cE*`5-8Ee7 z`sJCK(I>W{v7{)xXz&*W-1kf?eBW_yLq}eB+Xe18D|j==m?o2=AeeR9hC9lx05)nn zgm3Jnob*cX3;7P-2o&{S*_8`YnIGvoA!tz-V9)FWWFre@{|%{rj|jNHc=ZE=yPzq< zk}`Xg2*#tO?#g9Ee8+oBQ>zm<_1}<#l@``~@ZCEnhT$SqW$K8PE zEv(IF*6@Nl5YDHFhjje-Ng?VUi}b`bLL#?rU)%X`*5a_>sSC)(@MX5C?k>q`WXv?4 z--UNadlx^HW5dH)NL2aeYd#-a_>!S68H$TD0GtU3=S4LSjk*gSJfERX$4@^x$YT!` zcDXg54hfXC&4erjv*W6qEY%0qC9o>Qe=$#VE$;F^_7V)AFDdYR^kSgEqk?d3Cx&>> z2cUA4epmM*8%F4IBJFWyUKkz2@S2iM*#(@E;exDbq{NZQX10;-Un^NRD$|i$ti;C* zYFQdlJ$!&N$5+c}=8>qtZ zgDiwdYLuYP08}B<)3}JV%ue55uz6BAgk6$$PW8BQl3>k~y^qT6Aa_@C2`8ZxI(AWn z+WK>YoaT@RIj`?Xw9TtH4yF$zv;5nA_4YKYQ|a5>hT*N)YzR~hiNxD5a%c&;^c<

lZbPD( zZbiOv2k0juqgQ)>8>y1w3%yE{bZ>3$e(}1$Cwg2Uz9D^mr`D}ILD0FYw*vPlTiWB} zzt*tY2dC_L=3WvivVIYn>*}@)_#r$)KXIb!1@LG#rJsHMi0Gy4GI;a>hVMd0h?9r& zJ%aR~DK?=Rf7E7rnOF3*Kr!fZXxpnaWPw7!G$W37e;c*962ZdGB>joNLMhCRe5dyB z>at>gDrWm#P7Uu7$1D$Qeo3?52ekZtU%1y|WjhiQHjN`XELfL+)j*iP6H0-@6Tln!T$i45pAy4#5hg^ z1v05jCNPGMqEju#z3ejaY#3xXy>1j6T8hs~L9sOzuy{*6Lgp*M;iB>-WdB%esC{XV z=o*2~Adq+MzmBMF1~%5Jh&a;DC1BJBS2ItrpdP2-T!gKv0h^&r&E>I`7+={wk7H{P zyr(&=AxD+F-CUY(L|CF$)PgNzHEbRyXu2HL9(i?Nrn0t~(N$t4_ylSlN6zTv_i~T? zQJ)xBt^alw88c z*In@4*^QROOIX4gTf7srRq?_@hR~TUU`hwG)Z)>4zVo{;vqaTL!9_{jYcQNE^n@V4 zW*DQz7`0?48w}r-8fdL;(fx9Yr0Okag3f?5+z96$RXiCjA)I8D+z##ozR2-)l~MqYZ}+>ZVij1Dy>c$4&I$BbkOoeW`0bSUr)T6{>Fg zeNW<3*N;CvBDoz|DG-F!CP6qSl>CyDzm^p65n503-ni=Pqn8aC)WQ$;JtVbNh?1{_ zF~V-o5-dY}Hj6IKj1*mmY7_(3`JwtIg2%#JMzPJnx&niv?8{~Lc8BghZGXpsGY060 zakC#Vbe?n(u>GLpo<`UeV&H4waUXe4p*?f^UiSwly@H@aR15E`j znX|`=Vea^T;@hXQ#9UpDi-$F%TLbnfZ`(UA6kghFEJm*NTp2y+ZFH4!M`{nP=Ke0i zLNRNO_wbJjB+yf*N?9Bbw?JRj3e|U}0LnM+jDBW7p$R=_IQ&dTMy5I61gBKLbtn2B z+@o4+v|Q=9TTw~#XfdSBPyL&6h{?2Z9u}vt%(5ayu^R*?o(*SbDYj+#(v`4P9Kbt_KN@bR13sC(1}i4K!`rGW&P#7neUZ>R-kKY z92w~@&7Z+0g|qsJ*}@|E-9m6vcH*jFfk|0tUo*@8)foC*NL zY!)K&*hPgY6@Yd|9Q%((2MHpKQDz0jPiHg%5Y_r^YAVn(Mzxm5+%G$_Q8N}tO7p2e z!@nkrrWNj(i{eyVovvo}*!OpcPrP3U-n%{NiGxM&D2yssXWC;1ja~>u6ppdrUL&U0 zVE0(b_YC-gEl zrw93UD%Tf>&{s!1s-r~v=NEM4L27tM9odi_X&HyZ`Z>jo8k>Xg`Q&*JiyOt<9Y;7o z+In>*UyqNdKBifi^YMG=N2i{H%FU7fK?UU>F6@a+kJ)9L=UAn?pf!R#4Y}NF1ce-* zVb&c1wWnr)ReQJnur{&NTygN|Gl$Ji!p*jS$K-qk1HLGqNAdfw7%Na|h6gGyFk2H+ zeenC3s;zRWt74JxTS-!nMgBAdwB~h76lsuWRd-0dCdN@qdb(3_*OB5u5^UpQ=1uq} z+6qqVBHKVO5#i1hF+w8zuB=XbdE)N%NSh?LGd*`tZu&dTV^f{&zV^q0y9*^rq4iI> zJ`@K$mcd~jeew?S?Ni%T{Ms|ct>1J*2e}j*!^>rlPqw_7hE_#=_^%L#N|>p%2CBN8 z*ODuDe&Rg%mM9~-NHpD)g*EYqjv^&KXY-%K-v+CDHrHiCDw!Ay5whQvWKU3{%D@L} zt;O$@Dlb5pfvr!F)3r&fcqt z4wItZS-z}_Vsy>NvM<-|kHr^%gk*a3x{ICXNv12!abNADo+KXb)A z_z=89+{P@#hBK?KV3Od0K2EalFz8XK@O&A2{x?HtpkqPpWZq#d`RPG;lCsNgj*XT8 z%6;mU^m}g6B7r$cgJP&|v`_~q{ z5{^r#ob!Y{$>QQLLp{NIo8`957&oH>{uJB8Z? zd?K}W^us0m9NBmP8Bh;?3mFyA9e<|Tj74pO10?=+(a>hbtIRNktii31+c!Wl?~ZO2HnbtF}6-Dawo{nvpt z#9S(dczL}u(sjKU`?jbuc@w=`{b!I~x#?_>v{;dp>VU0BeTVd-lt0gzXt(sqTR2}J zAOWM{fK2ZtWSYq?47vTO#jgF}vlU1Q)kHZySLahK4|5P=9pg(df9u!8U2>0)_pAN| zJOpvT8L?Ulo01Qx=qX=%G{ue!?QElw$xX5U-lJ%j3^7CC3(Jzdbmnk&5TT=gowB8{ zgi;7M!!vqa>$K=p6exP z>B&fmyt@IU4PA&yeFm8)1=i25*oS>joeO>^8?geN$%wE)Vy2Bjr5x?NO+Ay+ueIwF z_yvtCnhqg*-6ZYN-t0@{n}&t2i4x8rag_UwY!IMLDYnl>c5-y?ITSyheN;;wInkrV z7Mgw)$f`Gj!4T4jnjV#ucC!)8ibzvrfA1r(dvT$+#SDD7%EZ{Cz!_-JAI(Hoj-a}= z2_~9}=8xNovv+e}6(uBe4|x#J(H|AIb=&Uq5ZV>U3~mOUg)X)=kBz9dJkpWQZwX&J zPlR+XX}w$f*q5+2K$iV=)V42hutEs{p&(hG$uDED-|k9AI~v~CmGt_3tmRwyl3kmW zjE{VfhAGDI>6g4E0f{&gq)}H&c=jsZ2YnyqNm85xkD)nJGgFJ8 zxan8Wn)S2Si6lYRN5k}RrmSm(jBUyC7b4F^n8~t*6(C^!wFG;L2h-KTY&EYNVTbiM z%y_)gytQMzPl1tJiy)Z7tium000;F^dS{Yk>eH)-d~SwfSb;i1fSdN{@6XW84;SKq zVIWt{-Jvw%qp_w_XlTQyDPXE7{re&hzSB5aUjahdyEnzWY33olj7=Z zKT6LIn&2%jT(?q`n0nouhVxhd@xtsH|}$_bhS)hyt!3SMj9Buz}zUs+53jK(^3zUBjF#=w!!Yi zLx+D`=~e2J?2H|BtxxzOyip+rTZga7JAAq9_&+-N1%5R~v_vW|MQ>OViNk)PMh?AG zMR$1&Iv)}`)hxuW8te`i)PXQynMDhhMh86R-t0g5L@yaJbuE&Y(Ew-cY zJs#lL*S+d%(bm5*!loN|O|6vQU)TnQu9CPLqU6?LS7%lQ96fUIYU5GhQ4(w%<|dlX zv-2*Us5KSKgAtsB@4;+l7RDg|Y_qW|=4W40UP=xRUBQ&rlg`DwsB;dW?w`pxxn7d0 zQCLzUe!FE{zF8px&mz<`ZK;!mJF4c|-h7DE!j$Y)#e(>T%tt|Y9XEfhRxN(|*vq`nVwKL0*uF-mA2u=BQ>Qvnrpkx^Is}(2HYJBAFe+C;vRoH5DjE39Es^cltjS zJ7koN9E0}$UM|v#y1Xg**SKypUpxRj%;x;`YccrRqfJa^(i7fJGMXnr`S-|X+*6S` z!DzHpO%ElZ6AyM#Hcp^w3+U{+z~cq!km(}nZ?Et^zLzmLzc}Ko;s|zUkg-{=ufT?c zp%zh&uk_j>iO^a`u@H%X1NZwr$Cidjt2??Mg#T6l8J3}kDqX#CQJG$TNbw^ZOqBcC zB+lZMGMX(l^iQ>f4TlS2p&n$04I?h4HDA_jG0agUqGW!bEoML6<9raWd-5gx`mo?@ zqoL7qPzl&fSxu9FvA^7@E~xe7pYH@r*-ZEL$p$okJb+h-Be^nbE(BxHMjh|G+qf9a z)FMe+XUF%T>oC$ik-5^9y<(X0ya7 zHD=Gvhrg~k=Ws;Dt_VNG#&h)UsTY zE>0#0RLDdte1=gxuHAw@&kx#kZBJ3Yg`hj(`Di5LB{;vKKW9H0U(jtyHofK};v;4T zdxVfZp;#IT9FICF6q&f#MC6ry*~zF@^7K7&qZ*aNR+7kS1^smIaXv&D4Nv+Mp`%S? zhPOkj{qtBRvWkp_P?<>(S7YAS3!!LqPy@r7CJQ%TqFiPbTaF%TYPm=yqro`1a@bj25Il_xxARJ_$`Q=xk18= zY7;Aft`BLgA6g%Xc`xv(^|jx~rOa(JzcbFeUjyTEu%c zfF!4I+Eu~E;YFX56Q|c&Z^GD!*4gU9*CfdA1yq%ApaDYEn>R}|);G$w+_sSjBP;Ap z!|v)+gk7r+_sh@a!zfxVl~xfR5mw>{QtyD+Mwq#MZ^{a=NEGFyz?}W0LLs?Lh)o+e zK}a) z!qQ8}u@`!P{8|F!XV4(Ddp-?P(5et;B_vf5b=3!5RPH8cR(&{qIgLiC(8HhhdKLQB z1GY!MNTHthW^Eolr`wBL>o)3?#Cs`uj8ZoG`oQ`KYL7Jj1j)?aE04Ocq_`SMr^`v zIB__$VIkPK0uQ$i8n+gV8wh_0%V@DkYSgYnk4ufWJqA#*u6(nYd&A2nd$m=Rg9WuO z5P(S^ilrx3QUd%)1&ZNPyzW=!^K14|(kD!L1iwIh(%j>)g8CnzlLHoJnY1LgVZB^& z4%Dp|I8d$UpPg}H_-<_l2qHe)Zk$y0me|Sj1x4vIs^4{mp{?RXyK=!)f~-rA&VnT) zr(o-=rMtlNMdk)f49mSZak#mA(O0n1Z1Qyj)TE@dJj6q(fc|v1=%Kav`K4{KwU@Lc z6O}OW+qz6Hn*Q1@td)|KvYEJo?_x}Y9`*7vdKP|bNi}~kt`no883W2t)$fWVCc{#@ z&ZpoCo^Xmf4p)Df9gl5@2TRoCAohBhYYk06oM~Vi*M+4U{u`>xy#nx)Up4tU`H}!s z**Kg-#r#aRv4D|xQ$Ds}cH`0NVZob}<()QL>Y6xHJSj z8Vz-(4bj;sb0_JGGO4_!eC}kbO^#LOwX(D7O?Bu8zVEQXBDl}sju(AU(xlamx9(F< zfrGAJKnzd1Xj{Dxf#a6_ zv&|R_K8Y>D(3af_+T$AaU{$gI)AlVJZ{K+dKC|dtk`>sx@L%ZQVJzr)#m`G_F9rd$ zGYQe2+y=_y0R-6aJL^xZSE@`Ld%NmP-&UL9=JWNf-WwD;&=5WQH3p%6+3ADOW9@hs z6dmO1_qg77L=8RJU-K_sq-qTwPFKrHT&-GA$o3OwOXh_ z!!a1i)J)Km%4~oKlf|x*RkA|U-Uog<4{_nA<#aUegx$ZMs1dhqwAVk44{*}$-Vp|40)4ph*0j9B9`BieAAsh0_?~S z_~YWgGod+dXOd9e+?*SKBM-0>CVp)Z?2OvG5qB|&GDz~jy)h$-(84TyMslrjkKd@J zy6u=Z=bJ}{ej}G0dr_omk_EB~NOh}A#NUcQiCA#t6P6EY$Wdn2rJ|MeilXMa^ixH- znTb}7j~n=zLBs!6ylMg|Xc4t!m0qQ4=f*xnQ=nB1ju>>&G1)4bk3CtRZAe*#hur~` z6!x7B%sKhZC|mx66nqvlQZ!X!HMQN~^VFxr-i~ZYhL>rZ-epz;O`xR|F?Uj_Zmg%E z&HFuv+`!FcFAJO|jPk5jxoOTbyZdDtZ~DIdBWuE6*t-!IJ&SgxOgA)~gVx9b%OW|3 z)_PBhdxG_ita{$D=g0VivRinW);60*jCDiN&37|K^j-abSeCyEyd@p@V!F#za&Nea z2iGS+r#B>;$iyZ2YY{OUP0=C`17Ad4Vbq5^m4hemW@>1^k4rswiXLP{A41$ko^J<% z%kMV1Gwn&-9q_^F{2xpPv?}-LY9el~`qsDTVrEgN>n0m?3>5Ee(Knk&_S@Bl8h?#G zg-ca4%1zFLyZnI?ReAIldH*}Oz>Kjiq(#Y|caI2MltY*kvO2AkqQuRWJuM{O*0;EGOANLEjzIJJ{~QcJ>`I zsXODk)lUZ*3}ilvC}*fCmF9Vl2PLG+W~zR#%sh7O)u%v>8J6hVK6K?5ec{aeov@`@ z6Z}_7LZZhY43zuo7o4XzS-a|A3Lo7V?{DZLTD^v9rcH9csBx#nW}s`L?JRquQ2vQq zg<{jU$|K^J86)gDcQ^*Jy?G)7*qrzaxGTRGUlsqt3+jD9ccFXGrBSfsru_Zx5=RQv2VgpYuCrm@UsbV}Zh?0-juGX9sR}6S(CO_DE%jcU@va_TlLArFj(}Rb~`G%{XOaB96tnra; z^w&CwnqBH)v|!%K)DCtbh}7kpVu#d1Q|9fRsen6tdhx2MG2Qqdky~ds_o$4FuJ@c{ z_y4@{0mUmYGsTqFBYtzr_h5whSKb1d!$hDA^lH_PRy?p1D)5OE}{4)apb_z*d3 z3*Y`<5e|3;@%m>K*q&X!GLqC~adD^chDR*xO5wA)mDw{sRBs2a; zh`49DeeVden$&&!c*f$BWXQwwTWFI+_yg)&QYISbDxA0j?{#;?`6DHN4-cggMBn?G zq9LtvgC{7|!!c`Sf8xJRhav(}b8Xv_9Y2^eW+p@E?t`}valb3m_kW`HwYxXFX&*R$ z(v1+qRpq24W>@2ghPIWRIF)OzKFM_2>@8^#C?MR)B_lSd-;W0G!yo81^WMwZ$JtD` zzCSxEF=?H>A=rq^?x^25502pP#s9}{xNXS(s0r_8s|k-c&Q803zukK?CY&2rDxYkF z=VvJwRvYnDTPLWjM51YL1)AH}558)7vw0-wCAD2Tb`9l$f+*6VBko zM_Rdj)H>1fRM$R`yZ>Ln{4$>*KjX#nMSi?%AMbF=~Y@FQSXMjh)AUF}MHZ1F%qy)pYI?HNI zLxK7BygZ+{9)`+WDODA(dg|BmTRi0?{jMyOj63*-oi>HL-fFe8@X$OGPC&2%f*trp zC>8~@)k_VN4gLpsxEJ+a!|u0j*&a7qG+H%i?Ct+{?IJ?#ci)_sT%YnDw4E4P%U^BD z1gbvxbyPOCdl5ZFZY)`*rQj%+ax5><1I3uXDQ0L&j^acqSpEm5;Ok03IV+G~r)m9f z)B6uD1lnQ1;bK>{`Y^B7nuEq|Lxs&(Rue~!)U=UBmHF0%Nx|7Z6(XxBnw8(KH^`R+~8E3BsW@;W)M9(>km#Xjosn-lX%@>p_4NKM^!F-x2xYb|ys z@Di})(?}vL)$5^YI#V?f*fSPMSq@Srv@{_D%?RJJ%G9^*#hK>cx^wR#cxbR%-u+m! z=lp2VXJp)|YShl3-^6l{Q0hIShQ$|>sXAlcB13jpl5_#)cbsI^Ocl|wsW`V%Q4e^k z{Nges9}*u(D%`SG|EZSt?-Mul(mXR{LPcca@k0Ua(Yza{>Hd#Fz_9s&gxDJLtHBEi)Dl24)bm=n@fG(Nw2IcF8`Y`9$;Af#&uJ zw~<=)|A(-B5aK}*PCT!-yX9m)i~H;d@r(r3`Xn05gHL+x1Mj>ZK7u4ays5p;QvTck zWQ^PNNk5(H_1R{X(+def0n@N3(bQ@M)w3!s1O-_kHk5m?bBGcj&g z?QY4_lBbCSPqe4f$v+Q^W*i(xiu{_C-IQYGo;8>IbPbxc8>aNxuf__SsM(BI)+^ou zWblhJ>5Wc-<%r?>1Ym;l%QM3h9Ds+X=i-ZK=yAj9(%TJvj|Ehwx5G;=pm7b!hy5!* ziR8n0l>vGeRBw5JOfXk0{<6kizoAA==+5Eu0 zR}b)A25=~UTS#440+&mR(&(lAwE`r(`66?@U>zobfla`RVFB;38xjUjQ$KSdvXeRF z%&?!;cwg|lh!k~GYJG?kQ2OmGA~(4;V6#_zW;~FuQkYNjxqvp)*r9}L`DpJ^2joSs zZ-`HiHJFY_wfpCrPY#kzGBBC$?xvX_l6Vvk08Rew9!U5?ALLlnES+*G;i8}yk^m?E z(kcOVbm1XqY-H-`hq1$yC{kMS(O+UaK0*%IxNcGI0Dd#J=OnZ;hZTnT%hCRG*zLFm z-MDAO7Z0`0!8M{a9|#l%BzWmeufsu@{skKr1IjrX zJs;r&_9Ye6d%fPZe&lzYy1w+yk?;CUqM+8mx?$eTNXe5$!LJ^Rxn4*LLpp{Wf60_M zVFUAvl(5^TyT4oMSrsxLTUlj?0>qH|(2xt)XiqH^^t|tU-E$J&4gB4QO(08-;W=ww z6M&H+K(@y9M?bz#_(8FPd{2fn_x-tg(RvfB(osnlp{fqM0ak0FRt-65uOhB5Ln9~l zC+5llSF0jVNEGysh0OfC_$|6nYiZ~D3jmIp;GW==rBM{qnaR&^l<7qnL#TW8(*!VJ zl5*pw5#x>-b2-T>uy?>*T_BF^-}jB!6aE1}07ff|@@tLMY}u!uF)Nlo-QgGodjiEX zq5irO<@4wb$4AEq;7qif^_{uA-@$Wx^!^fU+Dmlz^0kbcdw0G>mkIsDvP$(%lT*-AD|G3epJD z-Q5k6gCHR@1Hu5q%sc$P>;0d#n0xLy&pG!wpS`!)hpTpYUA2T;cJ`qQq@-_}*8<|< z=IE#zboTGSOoavf(kSEu0}i*berP%nN)=5F0bH%>2O)2$PG?!z!{m`BLi;VY6O;v4 z5YaKvhdgk|IS7S=Z_(xcp_gx$ZX(y|aR!+HAAb|Up@7NI4J-*UG0tcIOG&ul46#WE0o!J7_k**mvKT%(R>S(WT4wP35+?QKK$Be7GWG5R?ljQRL$B7t|Q?JMI{Y0|iQUgKgo3`n^XCNQV<>X>d?`LdrxYHho&KcmJEm;(8v4^$`vU^7 z>?8?d%g)Eh5yp_k?%QlYlWdT$G>SzHwd{tB`2`5ba9OP!Es543A3L7fQTz>(+U2)HG(_yZ0yB&ziJr!7EVlxgJM1g^>B&dNu z>_n{@A~RQMi-KO3IEVhNhPNd)v400oUJrap!F_j!Zx37zMVq;cIrKh~nU<;UJlt$+ z>@SnU`1qVf>BqtrT)oTQz9jKfuyhY}q)6l7kb(wm9>o&U*>qh0wfosJ*F9$z^3TWQ zhqq8$%Y7{Ix{?f8HyO&5)HK46*$e8G-9WBz17;c9v`0sGJSUrbcEcp@T74!R_O7eH zuKb^bt-0=F5tw}>CAi1uMC`7k4)}|4;Nz|-qGs3pOepV62sxcQ(e@Lj3zz(+j#Nh- zl{?5^Qf#(ZpgcP({IccQ0P#riH753w4zAJYJ?ChYE^@?&Yi;|NEl>?pmOH(r^cN&* zI1+H`F$L`AUK`*}4Nb{(aQLX|x8yJoll&?|WM0hWmzAykOo>Nvk(`%7s7CYXs}XWb z2Oz?p0xJG0jGky(J0ww@}jPDJe6=FzZ-Wk8Yr;$JURu$;ZCFaz*akHXFTIYVF zE0k-hj4&EZm$f`uu4z&IJ^k|{JD5q33b&S(zSlt)@jCX#NKrIHqO@BKJ)J*Tnct2Z zDv_9|E{{@$%2VU-If;2KI|qfV3E$NLVIx;3JxC{wV;&v|qxpIF)n1~&+B(U~`p`t~ zDI}fks>2+?zVY6Z!2xFk=J1zQ3PGX5-<($Xuc&~?!`l$c zT`CN`#8!wCCNl-2aZ2{M;^VbC)L?QbMJZ7e`F;7dc zUvLA&X(T0jXz8y@{JNa~tV>#Oby^CZd=D)GEfBI4xnQZ3;T%~E`o__?1o=t^XU z>rW67??)%6sPuDQ1daD=X7 z04-mW+FeK)D=Yh_3g7|&o2GHf98~-tI(d-u^TZ`>q<|NOMD2CD$Y?mRB`4yC`a!@v zbPTF1IRfpWK~MQiL?*ILRr9KxIRjx1LxGGCJ>+}3rDoW6d*Pko`5M7luQcbAo-A)q13aBPxA!+!G*KE^QU(oa^#`}OCj z_S?t7yidLL@IcI{wtb)o7zFVe{e{dxIJ&B%GVkAz$kCuc2oi1n8>Shz3cnT*iaW_~ zt~(-StVl%Ro4?K*E6;xI@2vLt0n=cOuUiQO@`2aKwrJVRb2%sdn0A@q<1eY}S^*G@ zpr=5s=lDE%<@Y;xfO*yAwJQ~9CI#)6i!$EVg$iz%oPaI_m70* zgecaYr5a>j>K2Fl7M%(NvT?<3$2~`7CUcCT zzQHs11UN@(0jTyl1Qvm!glbL!-X10nWSegZ$L;sq7zW%Vx;yukazCa5xsXb<*kZQX z>SaAZM+HY}X&IgF_Ms!obRL6p_r7f?k`z>4uY- zu5tA~r^T}5eSZY60G@M+9Qrru-lBH}DXUxDYtFtPY*b%W>McMj4-7Ol8$$_~mWdCU z=V550TlU)~vZ&F+B5I$U0x~u|zM(1ZT!k|I?e_}SV6Ro!WkD|itw&td8klLnl9%Xm^c*bfM|ZAU^{$|L>RJ z613~w>0ad`bYVTNa+hq}$l3HSaLo@6+$j9HW%5)LE)?F3BMqKl801*=<92wq!>+_} zCcjn6_}}13&~;pP7Uf1?q&@Ukrw~hCMT5(5HS?}}ak4_bphpA|liZ>~t*KMF&P@vz z1L3vvsxN~59Yzv!94EGj+`_W>XFLNGrnz&piVonrmF%^19;C$w!6NZQZ*N~cqlX!4&07cHJYZU`YI>sfTbtaJ$9P&NiwC?czTf+G&=y~QQIgK=o z?`uM*Za>MInuR*jWeI&A7Ot@YUJCWaY#y?sG7)YG09OK0!osg`P41oTntUKL z{v~)iQ)c$b{Q+To2Cta|fuC}|WN!v3;05?Wv(RHV~ zu3f?G0HMAw5v>`5ZO#G+n^$@aqP1$G{Qla7_yC)9FbHkb-Us-k{IIZp$RSk_Kv)kq za!+i@Q$yqY1`; zGUngmg+8fi?7AIyGKd7dyeKC=4Ns1LuCqZ0z-RS|Do}sa#lBm9^b+skl<{!%|KCFr z4&f0ZLFt*{3oY)>nh0I!_0IcDF*x3?5k{u_G1lb*VXO=vRgohpbcr;#pEvrEPhb}XknK8iV1cw-%G6-&AA$=4 zlS_c#20WD(KWJpeKm~Q@0RcG9f3ZQ&c(swE)YcE&NFe>~N)Cc;cVvgztce2&=575< zkSYAtirTi=@e^@c@NW_hF8d5sZFgmhuT@wZuqLWdmM9Z+c(==56cpapD(h>3!YEg> zDa|NSXa5eyPbNUEWA(gxO!0{B$V;?8dckQI`1?<}dh(Gc?91Oh)EiKsMwEFx$`p|a zakc5`4v7~kA^zzC2KCkAF>SaeBjQWlw&e^=^|cyUCA^y$WjnT?BAb(dK=yk?jm?i$ zgBvOe%AJ<-BHb}S&s+?1xC;T&^rqz*s^&8ge64Zo_u|fp2!-{SunBXkq(aE|=^}bA zrvuX*G${qflYqF0?klY8U-su+cimk*o?k=5D^yb%XZ;PuP91C4Yrg@%eq~sK1m1we z-D-cKdP7o@)x018D0qKm5cmS6h}4wcX&L<9OIuuxa&$!8RA~)ys2vx5_U+p?Ma2-) zfcKf%XDOlDdvV0lvz0uSxNBw<$FD2G=cai*0=r;6?-BUaWJq>ke(H(+e2>$bd3OX~ zS0W!CM%;8PC4+736WX7Z#vC|`G&9C=fa%{2pZ!vcdFW;BzA#9K>TeTYt}*E{hx``w zRthRrFmHAwL3rn4q#cn4_by8(Dq(!4Ic4yefOn;As;U_y@r%BE{3aSUb^xG4N6nc) zxC`Ix)x3ZgOrV1XE!Dt*O&Z8HxH6aHU=LlNE_ahJ!b3GZofg`nj6^)kFUC8jLCSZy z)r@QxqMCPl-dzd|097*1CIE!U%3GAjeoxLl`u>|Jx%u?xK?deOH?%25v)77FRb5@A zhS=(Rgw$)v&|;Xz)k+33J1b{>5Nhof2Mjh^dQ3taw_@6^-s1(O+6+S;9&am>Xr~`{ z;G2dZx`>L%exh#A1gLs?gSBo~)}iH(-VXq45#%UGMA>qa4GP`Rn?r4C-;R9G)gl|2 z)QR~b{QT)^zs@j$o7TW&jw1MYpv;(4CdXp9*AH_$@Z<%K_w)SI-oUGgO_A|_;b_zTe@R0pbhDR3%VZv@}Ae&V#VgZl*pGo}HBsf8_h_UG|4z-5sEQ>C&ib_ns4T+j3P!XYz$(JzgDD-=CXas6E^8T@6=^4a+9`{X4^VEl?fI zIo=~O{PB1(wwj_bCdbeM{k_^YOW*>Ah{g4cmY^9Sy)UzvYX3<1Xb;e)(?6|J{!4nAK65<$HNE zGc*1|lV;bSWvbAN$k}xDOwRSy2J4#k;~&|%hU>>aooa49eJozieA5mZjbV{5nPZaj z9yF+ZPjvLQRwc-P{cVR{z+8;NU&Oyp;#>aYU**N*QSi(dbXe13HTR!(cVuVR#orEE zlpOrUsiVj@S{NxWW=|HX8|x0IPf$hVn|9-EOyHE!JaMz@FO2ro_0K~D)!ns}J&7S} za;AwkUwR^AG7tQ!@8e#wHm!XnpQZGj1-xkGo4<`NY1bU9II3Cd zdp0u7SpbD^&5u2$0&bfijq)w7znpgwH?)VvaEtqfvJsb)92fRkw56yE8Wki(6>@}} z-(SlEfT&G%_97Y-Zs=A(to2pgJ(yGAk$L3$YcmA7uFR`(Hr3>&?EBo9kubWxm&dca&90d}eTPV?#hTK%gev@%1Q{5*Ou*0gdbaLyuPqFYlUsg`- zqqDrgNrRdl?GmrbLgCun>4$51b7d}k{*Ga0^MKB4;$h6X{j_FF#n{h2WoVz5ykCpm znk)QbR)csOt&W-0N9eADtgxRLZ%t`!pYQ1wj!`d$q{l0U#P&+(1y@;G)4nQbzp4sbhlcAZb-_%txCoeKph1-><>lA`#j|^eeCfLiV4v zP1Rw_1gz7J6WzOm9Y5rMXXzXVLJ9c0aI=)XqZgWYIA4Un561@|J?$@lPk03AeeyIO zboYngNlY;IM5=wy?YQvn`D!U!q2QJYCU>w>yG5VO9n=fZuuu*ub$*p67V;@n_JB{W zNW^B;g8e-eM0x_g^lT9pqA-r4FfevgDUtF%s(&z_ap(T)WqZiH-;(CA$UXbe4JV#& zaAL!Db>NcRX~MZNWN9$@`7t}gFu@re)VlmE70NqfSh?-ZZYa==_;kO63s50jjPoPF zU8iQZE_lkv#q#+6{_bi+o}I5Zidn8#?tb!3^T(GNf*G$AJlOFE0a)iAP!V~i;Q9od zWrFRz;M0bot2byHRTd<8$3WT}QeQN9%6<1^1426Ba=q1c70HC8W~Oz1ih0=Du%A^; z26;P~CwPN2T=XgsLK_IIVEE$Ui&<*5`gMjp3VaAE?2S~y7f*;C#270}h0GIz00 zZ;CU+ROrx`u_|cUAr1Q5273PjtQE-kq5Z8oZcn&6Vj=uIc1G5|%CPPoNLTj$i*~Qp zf@WQ}-Mf-1@~tV;PMgwu_y~X$8J;I!spxsZHrmu(Dz6R~K+OxRUd;3mt`(}d3)Igb zCmXLq#_2`O7F)CnTGj(L-=??j=DlEu_LFOI+2%(qFcyClh-f)S;lbof7)AY`f<=~> z-IQM8k~F425_bHGOhaK{390yhwR}cqd%O|}&srGPE`SoBONzx7QzjUif!9%yZy4)| zKE@8>ojoa;@lk_wlRtMuNRA$c-gc60kafDj(OI=?UVzZ)<1{|XT>^|ms>zmIGc!9X zezSVl5A8?4cZYJ#auDT@e4k~k=b8_{{D&jR0C45m)vYKnX>lE3JCzx&m`vGk8T$@w z66h8gMYrew{e)g`ISF)MK6%udouQLLirimyc-9*3PjdAVFLhw0#zd8`AAna!PZ)jQ z1=&j+4TLCTv3JhAN(EjH99A1NrflhW-*6w*DE#Oi_}k+qY?DmarpF&1hd)YtCHN7n z_J`l?RbH5Oc&A}^&-iqqluITQiYU(8Eq`%6qRndjov*H5JVzjw>C9##r;9&?qg7$l zZ*DJoKJ(M3kM)WlB~)a>R7YdR#797#GN^vdO6&d?W}#6HVOw*m@-lsoA7MR$&9$&~ z-;6_l5352Z%*c5xj9NGyZf`vm-J+IQ#;$*TA50dxK2^TSfaubg9q9Vrsom<{Zt zZFO)qOr)PQ`{_m1`r-pA_;B_VCKH4gInYh)#E+gtcNfttP5eG#JWzm?tqc8cy0B5q zNS5P5$|+RE;n*GgPb;Vs^7$QPI`b@INR!D!N7+{LS+3zRj*`BG>FgiKULZ7+7D^{+R> ze!WHdZd#=^@<0y-fF@Qla>e7$(^tNcF`bbETDSo>hX3e+`7yP<`~ydRXrIXwDWBJCqZ9+ zpYc!DkBzqi2ak^C;5^JxygAG7e8??You*-T?8J>ztes(?96Fr9vhz$G?KbN zZQ5&;@i$@o;uDee59RN2mphTo42_`9(QF{wFzDZFRD4>n`$D+%j(wS9-rR3KF*l0$ z^F52*0iSUi8(bV|4u;dRKLDGN^GJ@5%E< zkh2V6;S&E5Us;mT`(6f|3W%abC@Q_WxZqO!DuqdB+2ifyF<+0-lop#2gaO0n;ZR zooa|vr6ryUe|$tVi%3d&1vy|{{3Z*Pb})=O85T%T2RIUXA7>o$dEyR9!+2!oy$h!W zm}Xr|NCHn??SV08NRD5o0wu%;Sh20xGye@>8u; z%A&`nm zyslXGtheuetC*RKQz%|p#~Oygb4U;d~4Yqr;OqK1)z00|&6fVy$3j2>g7;fcGt38APn;&;NcW}7iq8OmWk)?=aX&p-V^Ic%Wk^E}fA zncDSVYQ;?mbWYI6Pu7g-W>WxB-36H!-h32iF+%E)c#pPbi_Twt!S}3K0(q+NV~FF4 zw9l!7{Y~=nEJ$^_HWfzz`JPY{Z|Ki%`0W7i{3cc%!%>Xd{kuxE-4bL}7N#p#u%{|b ziD&R-rjAW4OKQvRDz|S28D6~!otag4@2zS_Uy*>?F%LZMb#ML3t_&-rg=j36+w=!7 z`JpLV!iJWcb398?%lNeJq+(KE9X9!3;hu-;suX8MKF&c^yLAIvj~RY$g%A+O^8Lva zuu(B#%pi~<_IfOg5I=6FCyH>ESm_0NyZaEWjqFF2zZd|Pb=@zUEH`*@76|!NW-|+R zwVx7ojVK3<$q)1Q-oW=$cNB#ciJfe}a@~0M@O*CftJk3z|3Ns^%6~y8+4A{OQ3oZ4Q5=F+P1oy=EdhRam z{8F1{C)Hxi&{93R_m}r?JBtU2dYH#$4^lyi8OZUkAfAnE{+zn3xaYZ55^RTkWs<0< z{&y?6>GkA2Cqk*!eHfw_T}`G4qC&^LYU|$R5*oE8BH=^$g^=5zz^hOUNX1aKIe!g( zSzy+|p5dNipq@lM5ZIY1K{VDcwc!(-YUi87|30s8#t)7sxJM-iRoH^3Fm+GG0~Z%Y z0ZjWUxA{pjvDh)ZK&k?0}xE7_u|IWOjST}j*E&FMANsS4ub zXVw&v6+ub6%+7K?X!?Hjmrrh}guc&tRf^<+d5D&0%ymOhUmDb_>CCQM&tBs*8ZnPOnj>c7;Drqs_~A zrK8Gqi<{r5iR$e7|0djWBk)e}n-9Uc-!D_2Xa2w;*GvRQw?vwK*wp z8V-sLZudTW!exx;O~T|PQ=9i8hJUCgAJMj6bl&TG60>H{ z9t8%S=Vw!7i#7nea}C0AUJvTUKo7K+9Cvn%Jbs_E567P`eUJc-sT^hFr74AHEb}G- z&{-!sFAqq#9|7*5$Wm#_P_D68ec9ld=E9o9Th(B#s1604Hh9};RAcdrV3II-G+$`PmFt?Iiqx z3F*MN8<5hYrOwhw0ITrdWi|xX*mbT>3w(|1EMaZ;n6Ley?l|DhRr^%}@`>7FtW)}{ zyjSKxFVtY5hlYUSZ@Q=DyqpCIqc9!ZyUi^~pA;2=Z%5 z2etYXcjt`S6t^^%98`LtUzaSb0LcD)j}yh75vwwZq#q2@zlUO2e!yygm(z1$yGF6J zHB|#m9e;JHichJ%Tmgn|drFx7o*4qzU2=8#sRci(4FQ90x5I#6e#RrbAc?-`F>mHi z-2HQgn0CdiY`wnPrLdx|t>$nI*+xQ7ixNQykuetJ?c>Su2o!(bhm`#p>@@Z8K++zE z{p|gosHKrbfmi~*7vmstj9j6KgzR32(d@E)2*$Ak%CuML(RQMYJETOZ$@-2M4G>TW zy7Sfh?F|XoPhXu&hb{fR_kvRenr1#1yMh{u_h7TTg2!*R<5a&|5ASq|@4iYl!~_0? z=jMV2*w+3YGaSs|Fd}w54Uhro#Ek)$L!HjVPm!RaFF--}-4W$M)N?y1Q{U%$sib5` zX@qF{xhbLzG1HfDiRRMGQ=<)Q-`h5NXoupPbZ6LOpspB7((B_$Q3X5pB3BrnU--9p ziW;z^Qe>0sLy3s}*6^Jr}|31ongp2+k~?@Ov*Nl|=z{i1tJIR1q`htH7(`>N-0 zsQ0j$1Hd>aqztKyjOL9+RiNXR zzRf30$2;o%wfbwIKIut(vy9RSyNX$ra1*Ist3VEZleCn0a5H`@UgSS<8dSifDdfJQ zyf{!F1liGqK16N!L0PY9YM6Z(X)rMhXpq*gp4WZk2uR~ba-vovb+i19cmBzD7RtF> z0J^M)pMBcQu~tbtga1Iyt5R7~R&p{96zR=^$4_wJo64^}SRz8hyRL>kcPFGYcUU~y z-~rnDn4ym)(R6?+9-VJK6gO`4vcRp&`hsfm*;G-wgCNb0 zwB6==S`^wro+{k4Hu+8c@ZD=Tc<6^=PQyZD`i=RWrwE=;q0&FjMNU z%CpGqD$&fJG*$Xk0;XYuM;UfC0v6vj)T8(S&3}9cG60) zm1mi0@~2mO)&FU%nitn>*V7=TNRgp=XCJ!ki0qaiES8J-zEMNn3aqulaKp}femPrV z!&I{lX3N8}W54Ynl8`w@V5;>`FGhpU7a}S{9MOR!mokhC8Kb6mz)L8{yhttmAtq_} zz?kvd&tT~!EiK@cy82H-ZkV|qunL_f9-zW>ia_2cJ$|aIjFv|d}g<6R$n^l-HmjELjnSq z=tsy-bXCnwHs(0Uy215VV2A(O_CJ@fZqVSkZ>`ZGXXLHba_)K8)oC~mFZwTc46Vb* zGj(NCX#O?cuF4wboNslgT5FrO!ODp}Ix-QcsT2S{z`HUZH8#k^Q&9Lyg8jZs$#oS8 zi%F%<##bI!2kTqS$71Z}N${LWK86i#84;&Wze<(&rZ8sZYsKrugLL-ZmDNPpx`VxK zT4+P3(d@|e>}Lu&9psIyShw_Hj{S(G$74GK zLGT0ysc2%OJT_f!*;>8QfU~hn<~&OB&atS@XNQ`^W(YBmO7^1klL)9nAnhE8l@};_ zgy8~^A8(hH%ylIa6gcTeb06|5*M=X(;jc96H(mP@x!5=1A3P2%Nr8dCa~97YzN^Tl zm*&T8%RqeJHnm_k7Hb3^<7~fN;;|lG%jC~R{Tv4H0+X^Gc7kGPW#=-gfLv+QUSb8? z((EL?5sGEqv7-f#t~%uqN9q<~If)>Ug{A(mpH^4SJ|4Xx4RE>}`b*>aa2q0*8KXKn zSlRQ^QGJxa3Kh_Aj6fl}qD}xD?PCrA&hDU;|-&?e-<* zgVPPx(6?Y1iWKq4?*($>4H6&N2>l=&^`su~6^MOx3^^U5U)dpDNPZ7`7la zmQ}GwD=e4qx&*o2C21?*lMH76uiM|jaO(DAOR}ts^RB!xYe5s4>Y2u+u!+YnOTqIk z$|M?$`k=&(l((!9=0@UL_w8oFP)5`d(gDouAE)L$n7xPCill3msHUy;sh)(8&1|z+ zZb%exsJUaGsyvcf!1=hC`>e9xrym49r_H?-km%nSMW&pv?RY*NLyGLHfN~!AD@L$B zBJ%kccwOP4!6Xnd;u5e=i97bfaEwVcCBR&5zhds=k$NKR>iNI5>)YA*`!oo*5TW1b zX&>NuXs6S#*~p_D!`h9Cak;1G_|R z`v&o~JZnVj26w5{5qSWhE8nS1`z&o#JXfIMr#E6HH^@E;p311{Isp_cbzZ)& zv!jz}abiJ|!!bpLqgeiPPIAb|)1ly}?KCX#bV1=Kyl^doHKKTsj=RQ?!9^56BelQO z-+!u$sf&G#$umwWGyUlV+Uw;mkrJ%>UJC~JE9)QOP$r`$BYGc$R3rt<9|*V~Q+aci#;3gfEKxJ+<(u%mP}g%HSQ83JjoYC*-}BUwN}3!b2eXj33EyY36&BL_QS(P$RT zK|o!SWWjr=PDX)VMA)pp?d1O3#1EO+x{*1FSW`H$67=s+<>P27@PR6|6q!odV1a!0 z`^X~pJ53~~TG)<6U&{Y`0jQ)S1j_JmNXyh)k!nenbj@05SjwD-@EQ2;6tGEZ)g@{y zR|}7|FMlJBOq(hleVHmqZ=ex0OLq8V^!UUj_>-i9qHJfTqHp*~CK*MrsM0e|#A~bn zIFmNF-^s2p0O4yiily}h4T-sp1J=b+Jc|m1?2ev75ey42c?u3k3P~rwc{u;UFE~CZ z-TmzSCA%_n9g@&e?lG*;Qdy~LjT_0^tPAHRPGG&8n_@@fI&bmU4IZeO9r~uW{VcQA zlc)@KRKZ^A2ni19_XO4_{BIE2H@I#rr6jXBDLVl$9Wg0O;7+zpWAhV0X+ZuGBB#f5N$}M3*2eO?*lsQ&1ASWLxGNJ+ zkK9#<0UpRYHtEsfNeUoKS{AU$1Q`uVCJ+hAS4zUnIsb~gjN|t0UCak9L>|G9ByFSQ zztmLN9?C*Id<2;2_P9-|jJ-5{19VH#f()7VUmiDGpL!Pm#KRc6N;J`k)3-F(0KJ9A zQ0yqpiC*&r09hn!oNrd*UCP5UN-qE&cs@Rf#S1q@m#Xxr3FQJ+nJ{wUxvC z8O!edp-5OEj`tEdB@O3>{nL2^F9hWMQKqPg#`6vzXPoN#V$8@lmINFL z+%V}r%0xW?dFBU<+$e{4$m|(<#ahwH#kud}jl#0~)r_)yMK8+Def}6Xtv9$-9OBE{ zkSTG9Y$d4tc~x2%HK573l>bVvB&GP#cgbV2P<)v&rsMQWlB=}SR5O-L#GKb?^ekv6 zieJe!swM+f`h|;njPJ&Lob>^A%Qu|mI#S;eY%1O1p9a(mVn?LCjTlG^bKtMom1H9k z&t8}~2DG>0t-Tb3iftK%a62qI$)(*dh2ij(ijZJ=B<`GV)rhQ-htMFu)0gOOKHeI_ zA75Rb7^B~ShA|j}eHK_ve_&L4!42iP4kazyBQSsLkg7ct-dpzjumqb^-N5I{>02E4 zk$e!q8t5cZbU-=dffh{Se_-Eu&3AN(C(%M$uz-xRrQGlDG*>*=HpzV)9isybgwHg( zz>Z(cghkA!#s;IG)p}n}5`s0HjdWxlDF$=d5hZ$~Rad!&W`y37uRYF1GNx_}-z!`# zatiMYV=3;$-2Y@N3*8fX|3is%ya=fNd|}HF(k9cY3;)inj?_LA_`_7AQ9$_2u+#W+ zVkmXPhsJ))K-6Wi8EK(wT_C#F9rZ0m@)2QjK)wj! zlrsGjlbCJsj6BpMpe4L@vP;}j`nUClHtO3PONYu>|16VB7LoqitV(f#cZDK)Pz1W3 zJi+-odi?kw$A5V1j^csm!{oqSPJ1X7wIZnT6=(WJ0o06pL2?(%AN2hwB%&|xuiY<^gR1q*ylrv$iEr8zp98cZnCLE?J$g7rAy` z=|S2_<6Q!#F6uq>@HQhQZ!1g(D!Lm?`gQx*(Y=OD%29e7RbkKrWj308J0;S@_8*}8 zZWO)2St%{z99X-I_MqKR*&ZD*7yk%&e&km)zDS+?wCIojUjJj=_0CPKmc#VY@0<~Y z76^iPi%H^l;58fHN93V#++%<;x-{kAuKfQEQO193$3{9KL&IAi+1Gih0;_{;^i9q^ z4P-F|8tTpyInrgy&Fp41{-L+!f*EL?3v!{k^Jw=ztDwHOCc4boHG7|G_Wf{|gm(Rm z+h*BWay>GD^MDGhES5EpmQwe)i=y5C=H$bSEP$nIEr*dmAFrA0>DOX@i3e00%(HH6 z@f5}!;_!Pf6zx#x(amE|b@kfN?U2FfGkA_F#J_7jz{#MhYhOXTUx0<<<_*=u?m5xQ zc+Gq1@K9<_UbAuGey~dba3guV+d*nKxZvKJe>b^6*2fGLYMZmqg1)g5vzs3G26EHa ziOLROp3~g%2H6y4w9jhAj2o*^@ZPYo7uuljQ_0b28IQ_*j}6dM$dwq4wc1*hO=P8N zAq`<_(2+<7v8;XzeMEHWD^_`mNp*_XdRZ_M@q$eR?=}FJZ3gpKX%<(-(=ffsA^Og5 zPj5g4#G8Nq((mZ$mgHaKyyo9#V6TPtN_Ny2Vh!^Ci|BvC$WIok7J=TO4@OMiJvKQ_l!WkmabalB|#3>0&A3_=f^)QxmbAsQY$($1 ztvIE4n%)-WDj!aDJnLpsTT}J_yO7uRL${yla$dOz&7cabDmCR+6Mbf1Gf&x8LvkLg zpsNu_k|KI5Xe4 zwtSuxlmYh@)~-)6ejt_`9pnjhdxc0x0`&(^74`?-*FcTD$!{pjbK=6@>0#)~64Xp8 z2**&pKn2btR3nN*>8=9>|IIYILmg^gqX7kO6zWGoVWR_LJFG7C(S|Ccwv5f6^ajr}~ zFaM%+7O6qhuy6h~E_vwKi!r7Iat69*QMCD&0&C_F_7|Jcl`4S>9G=U4hUGU7x~v>r4yN(0FVTPM#-4 z4(^t>x(9`Uw(pM4xMr0q=&jJz@c|EJDN}o3q`fhS(doD(6zF%tq=5ZTu@!wZJYaH} z>8TfFcSz?WXjhgVNEzxh-x;R#SQFA*!aXxS=~}`+;EEivGj0ad&gFb{?ZnK{#wHKN z8?^0LM9(kuk{LtU+@rzkhhl(mj~f{Q{(qcya1nvwxG*+%|r!7-51qbky;2iryF(SKwKQkS}7|JH9N04 zx$N~cH7)X+*D5f%icbT#a4`+$G3XRv1@b&@L? z_2CehiR8SWVJ8?v0!Z&>u5)MeDxge*Gr>gog^UZV())M7YD?k~kzY34rPfZS`!dT_ zx}5~pFMh~8kBKVhKkh3scdWaL>IJq4AnoPulP0Q*;16=M8q=gmqo?uc1Pbj+F zUSuF&KXEnpYrLP!Wk>FkucP7ToH0~6Ja-Q`+_UxlhGYxhCa`Z3(=5y0n^j7=O~-nV zbiUPSrir~p?eLV@Z*m=vYzFp>jYUZFSXYx z=c$+Br-k<7qAFiJwDwk4{X}2CI}s9?9tbYBu%Vy~Sxr%ACVzealu53Ct1H-o7fMF$ zk2po^rypW^iUV#PPky!35z$NZP8Z8s1MgRWPUSO&4dH0fa~<*+SdULWykXc4yUUo^ z240x>ULFYvX4zjHPBjLkPBsJwCzaQh_H{#(-PYsxIl1spjMn>#gO5EnIs>ZiPiKOM zrTqR_ZQuU|tTj2laakWA+4!oNdp5_Rc@~6%^*CQo%lgh7r8m1HgXu&o0E0#rbYiYQ zZ0kC$&==#FJY<^=MN+;$%x|_);wLLTpl3Uzo*zQG9<+@l(gg3((9O~LC52H)NKFXC zB|Wa}X_2{}4d`aF-1&4>$Y8w`YaHf0(#&vG1ia<{c>Wnm)v~INDWmThkLnmkzFeoj z?pQ=|AcbI#=#PYLhAWV`%%Sz%8V&<}=ruM{lG>D4@mh(WHm+yp(D2FA$J-J z{>Od!_U(*;$s6m3yr#O4f4t3JBRY4#TY7AX{_%UU2EgJuPcQ$xX?~I##qqqCUeF?J zI+aN=A|Cs^VI*fYtxqxC2q~+y<$!||eT5D>9%)79oNaY!x)8iJNCjuYsRZ6zu)UfQ zMEkfC6vdEPvOuzuWRd83$8PP#T?Yb)5~Wv&V;X>c;93 zef~QLO}+JRycF2YJys{&44J<|S6Hwvs^HX|UvAAjucAG3-&`($&^V6*6#psXCH+Cz zcLIk2yN{JLoW*4fWLS(hsV39dv=*aD!F3=1b}kYn1zjT4eoc*>Z>EcptvF2N3be4P zrb^}R0PkanmV1Eaypsa#xbT%QU+o)v*uRM$gyxk1>co7CmVP>4#NK7(sz@y8x3}mw zKH9VHyXPB;0$qcJT0atCsiI1)QSPU3Aq0axse@C!cy3*NJo!i>X3h(x+-#HLkATNsbl3O`8NG;uRfnn;vRBGA;cGQJ}ZA{nWsm-WS>*8^Op(%mrvubUZw zDA7$AjiUIhD|cKvwG8E~ztH{-BN;0LJh2-wA?aylnXzKszB&UyNRfUPSG6K`Q-eM4 z#SVIyG6u2ku1sugZOM@~v}2H*tje6^v>=V-OBva(9O zc701c;B(D~JIl111Qxd|H?)(%?ON#E8?<)#WVx=9MKKl+^<%{ht-EVMEkED(W13Zb ziQQ_8kSp~24UgnacG?3apzqCGFVOOKw28(P6y>^rQqcAiCbfPWJF~L?UfExFni?;^ zL{D%NtroRoQ{A$b4Z2kF4CgQ8uy}?6VQsp=H2uLoNnOd~t^bC?wAH=u>hA_xaaCln z;CWYUGr1v7v;} z__5ICj1i07KOP>QGZ~weE)&C_tVpCk0BUMXbEGGLIR@G8F#K{@#j{Ktvg-Zs_-DHe zI<6XRtk7eJ*5`k@hY5sChu$IxuKr4&A9wXjAX#a()C6W%Vhg1(pDIlhrSR?8ZXBF5 zm@M~1fjqU*-{&J>)8Ek_9@;5KPJbjHKEGlEXK&#qM}HVhc_My-I#}l_D&AlpG=7kA zYf{bSf4ApOn=1CzYjpspft=Pq-kce_JIsfnlW?K&=}e#e)L-cx3giCY^`_Shez&4~ zIprtOK3#eqd(T}wdc9ZK6Oo4G0F-nn?9ah!q`FxH|3uHg)B)%$pYOX5ai~zQhKrVO zC($1%^MF2sI#Va$b#l)@_8Sc(zA9a+LmlUkHl&dkt2l~toQta)#3j=EhjJ}x-&fv5Kn9P*w8ZQt4N z`v+e&f*Op?5iWP+!BuG{UdW>CUc6(ko005WB}7dwpySsh^gpTU!EKKz+REZ?8+~v> zX55ElT*c}RGPm+d%I6KwT}aq5v&1zf`Nk*6g#?*6a#Lz|c5kM5dSG(fN^{syw`vJo zky@M@^W!-j+HR=^(MdRjy?9^$NaVdNL|bOs3g7s#zSiPf`M1?ntUMZF6U!A2381sQ zyq81gA$X&f-*e7p0RsRJy!5g?xq*+py4`VU5_I*D&lRoI?3Mq=)LX|j{eEx22uL>~ zg1~4{lvF@!bW2K02ojQlgycZFJCqnHr6Apm?h{b5h3ix&zyvL|DHkDZt zei@4bieE|NBUC;;g6iVh{X(2yr9saBKS*j1?+}9m?neoGDirrUiH=okHD;msoIG}q zUZ$vWXw0}kL``4BE#i;q=3rV+LCjYPm}gmvJi zM=XejkQX(aKOWtQ%=6j;KJR(U7w>ZDJm1U?SYK0Rcw^Nb^s{;M>@oTMDU*jhpNk*r zM!wK^yd;C_@OwHAIF13pn@^V4tJ7HYv{|;` zA5+e)86%VsSLJH6TlLe|cmdDs`4m-Ly7%0lh2#qRq2uG@z5(RoKQMs{-%VkMAA#OK zL0YO#f%>NPrw**sKsP9G*3o~#ryt_{Y!v$}7R!ObscP(^z=~8~IXia=HED8e{o8iw zMko~ZcAg*PTt$R#JO1W+{$?nwq{=5r>xw>eBSVk19j{n2JX%&o)3uj8tp6wCh6e%t zBCEs+o2jLTa522V=UXys&$Hd~>sFRsiDBf^dfScK(z=+h4O*sRm2;{#uIX*THZK7& zP`@Ka5Mmc$wPAwr|6F2hZct^`+?;KW2QRKlBh>Knf_JTZe}hpl(kfA*_=t1tfD zeSQN9Eo~TzvK1M|Mour>+gJ@r#UhbpHvrI?#6_SrS_qZ(hDnan(Blt$YGWM(1UZ)L zfQe++o2G+Lc8{nb7e+xb%;ykbJL(Sjx%T`1eoRbGS=&g8^>nNB_&v~yG!6&K1#!Dk zNex-fJtKOvpHJ}sG6+P#?0v829(hCzxoTC&#G=glSSH8yIRbu);f#U2PREPJ0vyoADs;h0*eeX3v zB;R+s>zB;`s~fFP{!=`_Q8I5_I&R;*QCAO$CeBm_;Pc(-sO(qNyph zFlz3P9+=FO|AUo!TxnQ02nq^(NL(3UzH>1`_;T?v^(b>^J744vRVHp#{D-R!weQ;b z?dn6tAbn;#%zDeA-{IDSb+R3WJ^4GCaQa+fn!4tPgF;v?xx0@xcU$F$o+g9-2V1@5 z{^7jwl);bpv_J7lO%6y~6+QcK`x6Imk|XvIQT3lj4A56^p+af$ynYj(KAzt}WS8~d zjq9Y$T*jIfb8}GS7!O|WRYu9$Qx@e55+<>-#IP|As~*VHnIAhI}0J|JL?>_+Q)cP%uPb02_a`NPCwfy8}% zIf~EDCPfzkc2B#a62BgGfmvS_&=*Bxhr{k@+={799aZMZXBO7I(40wXtsgCc8oGpW zus7Mbym-1^mlHKUg@(qqbV`NHkpV>-sWHune=0Y>zWp!VR4)6EB}@?+1HxE)8i=Ic zNv%sICLvvkYWSxJ@D7VI+-q zpp76#L@wXml5QZ}S9wKs?*-ostd|_FX&Tc&)O?9=C1vHu+eaZ2@k=yhHV)`*AkfQ^QXxrYUTTnPs%wKk!bVVPK zXUHt11i3+(QTRrx};oERl{QD{)F};X}4(7rnH4kqi3_ZpbUjCqt z=ZZK{^P1T0U*<^nJq7&UD7KH&0Ii?%5@BLHL)rg53xwjc#eYY3z%lWmJ@@*dppQ+S zp}tjk+T+{n&uLN@15uh&C(jF^E6)K{li!xbavoKP_I>!l->;$Y<_=Y&vB@~Nm`loI zl@1fyw@UJ$w?12bpa1nYLj&TE_y?n9aimtc(Bxezp8pkST{JH)^|5N!9Da&`OmuR` z)HaAG`T@`YP1>BgC6pe!%84Z*S5kjU>dQE+EO-dj`}$07dMfXQ9bXclrOs~1)RKT+ zpppD@=H;`)e`sN_)?p&=g(c}5D}}I-%q@JN70U!qvkF0fOS0QdvzxJ%amY(F(-*wq zY0I%tIzD6uI#!TKv~Mx>C{mdwxJmx5rJ1I@>uI^kE^xDaLXo|+;?sXsx6$2SU*D%4 z30>!ZEG^^4(#yCZAwOs*;|Z~!w{+tmHDnTxun**HxeNC0v_Z?MFPC(x_I{c5z9q}n zE@<~VcDPJnd)I|%uyZcH_+7W=I$Iix6DJ_7t{j5e+`Grfu)Ofy!tK}Br=P-E&An#2 zrv1@UgEf|c88-DObCia<_E7yXYgV{}Y)yU;gFOlCY%kPWrX=-Ca~O7&0oz)4xl#}u z_$>)|m$=)52#ZUAHQ<=KP`~)(*R&u7h3@Bbc3)pm*nGI{u!IS9b&y`0gn~s~dpy+F zpP=18_nx@pV@ZKgR?UPO+*ci}zqzs5+n~##b&F-}wKlt~y>^Wva^Q%6ilm*ZOiV7d?>Ms(>I7ZC%=?ASLr2rZWxW< z7uz})8&eYsHlpL-o4}2y9~Ncndcs>9;78eN+s(({GyayJeE8^dIkiu5eVt5vvd%CWqgi{lCa=PxV%M1+6c@EUq%!oQFb}UDXO$DW#QUSAQ?UR3?MQ)Mb+*BmgIAm-!js(Wpu4J97p}l z&z@Wa!owadG&oXcJ~eNgxjsK|yS=s@6gnV7lDi>_?^ZyM(w7Ix8C_vxMin0(9EVv8 zt*d^?6LsW3DigD-u~#XOJ+28|2gDMPv^b#8MBh)1QDAXh?V=yHfN?-+>H8HVNRQ_s z<=0hcP#!9b?V%Io6S`7&+zRw7*K=JPBQXKg)AFkg1vdfsuyU_WcCgSM>_NQ*-0bVZ zJ}8=s^=K{dw8^J)R0}!$e&m6DlF1q9do!d%4_o@n4G!`9a?68ZdS14mZhY^GaB6Vq*#0` zbSSC0NGaN;$yAjc565ds-Jh$ZHYffzAl_-{f3)Pe+WMws9AH}@5=`_qV00*f z%|5%T>RV@L-@-Rb7o+Uz2p|AA3{iHx71>_Yy`}?x5pS0dcTpcvrNTDAF*^t-pX-5= z;WsjJ@5k_v9qH3<5At20Z9a~#J~6ZKef4PMjm*&9&-u7P=B{FYV0I0oxVdqbWGC4Gxn( za9xlVQX(I&y*o$>hLY}pKbAM*H_TKohBz5*d=~54eskRz?S|74FnwL%h&#-BBZ0*S z0A81ICXlAz!nb!Ht(&B$n2)zqekXi0bHOp%`;16xY_xyv$W3vh4JEL(+#ig z9Ey=)M@eGr_>Uiu#nM~lVFKN6!!V99q4BI1-eb+wh%gEy_K$2}N=1=fa3a$!N% z9-#H#!YQ}q`gz=hcXIU12Y8R#UunNn(tv^{kVY;=bM);Us^O}q7{1N&o`1~`KOtjY zg)~bx4{Gk~OZpg|hM92K_!pkB_nkc)JWURXop=YAK9lE)EwW90ke|j@ zuJr^&2*hbw0(%Ll=sVu@M=e)>9C)d|T_+zVM-A?H)I3Oje??0OVv8fZHo9AOEV&Zy zXIllCq1xU%T;zSeSgBw9%fyP*eb9z(#f_$HQBq$~Uk$xOfK%Qos5h#X%ZT}M27JFE zU#*gc3J1uQUk-oO2_6aAX9PM5b;9ZBM#MCOFq6|k3mDi9uu-+M){iN6nYgHov+xuTx!mjE(K`;EZ+h;AuG7#JQVea+f_T{zK|83S*NSf zeCOxQk8cPjsy6|mZ-t#YA_hD%;S5fBXFS+SYM@i?7Ok7?+VnPx@&3Ink_Z&o1$0;a zE2ChJBhVjnS2}h(@r$%4nlM+!zuxV4V{GCvE@ixu>rtau{IZ_+<(G=j{@wKo1|7b= z<$3Q*F@8rgqYl$w-i=!Y5{Myp_47QEfe8Mz9wp-_!kaE?xgQDy#LMk}4|(W$b8s`| zGYdMhBt9*0j>_AzPcE%2V)!EjmH?@DulUgSg3^FSxcL5WsA>|h0Jaj7r)jZ;)8guw z#KKo6Yk)G&B?PKDZzCVenw{ZA;$s}!L?!Y%0A$%DhWsX}k3S|2xsHdo>vP=ZMG_9? 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 D-LPGT literal 0 HcmV?d00001 diff --git a/site/source/developer-docs/build-package-example/01_setup.rst b/site/source/developer-docs/build-package-example/01_setup.rst deleted file mode 100644 index 136143d..0000000 --- a/site/source/developer-docs/build-package-example/01_setup.rst +++ /dev/null @@ -1,34 +0,0 @@ -.. _packaging-framework: - -============= -1 - Framework -============= - -.. contents:: - :depth: 2 - :local: - -What we'll build ----------------- - -We'll create a web application that produces a hello world page. This web application will be the service we package for the Embassy. During this guide we will: - - 1. Create a simple hello world web service - 2. Create a Dockerfile - 3. Create a Package Manifest - 4. Create a hosted repository which will contain all the service components - 5. Create the packaged service file - -You can find the `complete code `_ referenced in this guide on GitHub. - -Download required tools ------------------------ - -If necessary, download any of the system requirements: - - - Docker - - EmbassySDK - - A code editor - - Terminal - -For more details and installation steps for these tools, visit the :ref:`environment setup ` page. diff --git a/site/source/developer-docs/build-package-example/02_create-service.rst b/site/source/developer-docs/build-package-example/02_create-service.rst deleted file mode 100644 index d661cc8..0000000 --- a/site/source/developer-docs/build-package-example/02_create-service.rst +++ /dev/null @@ -1,80 +0,0 @@ -.. _packaging-create-service: - -================== -2 - Create Service -================== - -For this example, we are going to create a simple Rust project that serves a static web page. - -.. code:: bash - - mkdir hello-world && cd hello-world - cargo init - touch src/index.html - -In ``index.html`` add: - -.. code:: html - - - - Hello World! - - -

Hello World!

- - - -In ``main.rs`` add: - -.. code:: rust - - use hyper::service::{make_service_fn, service_fn}; - use hyper::{body::Bytes, Body, Request, Response, Server}; - use std::convert::Infallible; - use std::net::SocketAddr; - - async fn handle(_req: Request) -> Result, Infallible> { - Ok(Response::new(Body::from(Bytes::from_static( - include_bytes!("index.html"), - )))) - } - - #[tokio::main] - async fn main() { - // Construct our SocketAddr to listen on... - let addr = SocketAddr::from(([0, 0, 0, 0], 80)); - - // And a MakeService to handle each connection... - let make_service = make_service_fn(|_conn| async { Ok::<_, Infallible>(service_fn(handle)) }); - - // Then bind and serve... - let server = Server::bind(&addr).serve(make_service); - - // And run forever... - if let Err(e) = server.await { - eprintln!("server error: {}", e); - } - } - -Finally, in our ``Cargo.toml``, we need to add some dependencies, which will look like this: - -.. code:: toml - - [dependencies] - hyper = { version = "0.14.4", features = ["server", "http1", "http2", "tcp", "stream"] } - tokio = { version = "1.4.0", features = ["full"] } - - -**That's it!** We now have the code for our service. - -Let's build and run it! - -.. code:: bash - - # build the project - cargo build - # start the executable - target/debug/hello-world - -Visit ``_ to see your running web page! diff --git a/site/source/developer-docs/build-package-example/03_hardware-compile.rst b/site/source/developer-docs/build-package-example/03_hardware-compile.rst deleted file mode 100644 index 6ee834c..0000000 --- a/site/source/developer-docs/build-package-example/03_hardware-compile.rst +++ /dev/null @@ -1,39 +0,0 @@ -.. _packaging-compile-raspi: - -================== -3 - Hardware Build -================== - -embassyOS is run on the arm-v8 architecture, specifically the aarch64 state, for the RaspberryPi. - -Depending on the programming language or libraries used in a project, you might need to set up an environment to *cross compile* the executable for this runtime environment. - -We were able to easily build and run our project locally. However, Rust is one of those programming languages that needs to be cross compiled. This step can be skipped if it does not apply to your project. - -Since Start9 uses Rust throughout its service ecosystem, the team has built a helper to cross compile Rust projects for the Embassy. - -This Rust cross compiler for aarch64 can be downloaded and build from `GitHub `_: - -.. code:: bash - - git clone https://github.com/Start9Labs/rust-musl-cross.git - cd rust-musl-cross - chmod a+x ./build.sh - ./build.sh - -This actually builds a Docker container for us to use locally so we can emulate the environment we need to compile our project for aarch64! - - -Next, we enable cross-arch emulated builds in Docker - -.. code:: bash - - docker run --privileged --rm linuxkit/binfmt:v0.8 - -Finally, we run the following command to build the project, replacing `/absolute/path/to` with the output of `pwd` as necessary: - -.. code:: bash - - docker run --rm -it -v ~/.cargo/registry:/root/.cargo/registry -v "/absolute/path/to"/hello-world:/home/rust/src start9/rust-musl-cross:aarch64-musl cargo build --release - -Awesome! We can now see the compiled executable here: `./hello-world/target/aarch64-unknown-linux-musl/release/hello-world` \ No newline at end of file diff --git a/site/source/developer-docs/build-package-example/04_docker-build.rst b/site/source/developer-docs/build-package-example/04_docker-build.rst deleted file mode 100644 index c291ad4..0000000 --- a/site/source/developer-docs/build-package-example/04_docker-build.rst +++ /dev/null @@ -1,77 +0,0 @@ -.. _packaging-docker-build: - -================ -4 - Docker Build -================ - -Now that we have our code properly built/compiled, we can create a Dockerfile. This file defines how to build the Docker image for the service by declaring the environment, building stages, and copying any binaries or assets needed to run the service to the Docker image filesystem. - -In other words, the Dockerfile serves as a recipe for creating a Docker image, from which Docker containers are spun up. This is ultimately what runs an instance of your service on the Embassy. - -1. Create the necessary Docker files: - - .. code:: bash - - touch Dockerfile - touch docker_entrypoint.sh - -2. We'll start editing the ``Dockerfile`` by importing a base image, in this case Alpine, as recommended. - - .. code:: docker - - FROM arm64v8/alpine:3.12 - -3. Next, we issue some commands to setup the filesystem. Here we update repositories and install required system packages. - - .. code:: docker - - RUN apk update - RUN apk add tini curl - -4. Next, we add the cross-compiled binary of ``hello-world`` to ``/usr/local/bin/`` and add the ``docker_entrypoint.sh`` file from the project root. Then, we set permissions for ``docker_entrypoint.sh``. - - .. code:: docker - - ADD ./hello-world/target/aarch64-unknown-linux-musl/release/hello-world /usr/local/bin/hello-world - ADD ./docker_entrypoint.sh /usr/local/bin/docker_entrypoint.sh - RUN chmod a+x /usr/local/bin/docker_entrypoint.sh - -5. Next, we set a working directory, and set the location of the entrypoint. Exposing ports is not necessary for eOS, but its often useful to leave this line for quick reference and clarity. - - .. code:: docker - - WORKDIR /root - - EXPOSE 80 - - ENTRYPOINT ["/usr/local/bin/docker_entrypoint.sh"] - -6. **That's it!** Let's take a look at our final ``Dockerfile``: - -.. code:: docker - - FROM arm64v8/alpine:3.12 - - RUN apk update - RUN apk add tini - - ADD ./hello-world/target/aarch64-unknown-linux-musl/release/hello-world /usr/local/bin/hello-world - ADD ./docker_entrypoint.sh /usr/local/bin/docker_entrypoint.sh - RUN chmod a+x /usr/local/bin/docker_entrypoint.sh - - WORKDIR /root - - # not necessary for embassyOS, but often left for quick reference and clarity - EXPOSE 80 - - ENTRYPOINT ["/usr/local/bin/docker_entrypoint.sh"] - -7. Finally, add the following code to the ``docker_entrypoint.sh``: - -.. code:: bash - - #!/bin/sh - - exec tini hello-world - -This is a script that defines how the service starts, and often acts as an init system. It will need to complete any environment setup (such as folder substructure), set any environment variables, and execute the run command. It's also PID 1 in the Docker container, so should do all of the signal handling for container exits. diff --git a/site/source/developer-docs/build-package-example/05_create-manifest.rst b/site/source/developer-docs/build-package-example/05_create-manifest.rst deleted file mode 100644 index 8db6fc1..0000000 --- a/site/source/developer-docs/build-package-example/05_create-manifest.rst +++ /dev/null @@ -1,257 +0,0 @@ -.. _packaging-create-manifest: - -=================== -5 - Create Manifest -=================== - -The Manifest file specifies the details embassyOS needs to operate a service. It is the connection point between your service and embassyOS. - -In this file, values and actions exist for: - -- Displaying the service in the marketplace -- Specifying the project assets (eg. icon, instructions, license) -- Defining the docker mount points -- Specifying how to configure the service -- Relaying how to run health checks, backups, and other custom actions -- Outlining dependency relationships (if applicable) and configuration rules for dependencies -- Denoting copy to display in EmbassyUI elements, alerts, descriptions - -This file can be written in: - -- yaml -- toml -- json - -Let's create a yaml manifest file for our hello-world project: - -.. code:: bash - - touch manifest.yaml - -And populate it with the following example manifest (see the line comments for a description of each key and view the full :ref:`type specification here `): - -.. code:: yaml - - # The package identifier used by the OS - id: hello-world - # A human readable service title - title: "Hello World" - # Service version - accepts up to four digits, where the last confirms to revisions necessary for embassyOS - see documentation: https://github.com/Start9Labs/emver-rs - version: 0.3.0 - # Release notes for the update - can be a string, paragraph or URL - release-notes: "Upgrade to embassyOS v0.3.0" - # The type of license for the project. Include the LICENSE in the root of the project directory. A license is required for a Start9 package. - license: mit - # The Start9 wrapper repository URL for the package. This repo contains the manifest file (this), any scripts necessary for configuration, backups, actions, or health checks (more below). This key must exist. But could be embedded into the source repository. - wrapper-repo: "https://github.com/Start9Labs/hello-world-wrapper" - # The original project repository URL. There is no upstream repo in this example - upstream-repo: "https://github.com/Start9Labs/hello-world-wrapper" - # URL to the support site / channel for the project. This key can be omitted if none exists, or it can link to the original project repository issues. - support-site: "https://docs.start9.com/" - # URL to the marketing site for the project. This key can be omitted if none exists, or it can link to the original project repository. - marketing-site: "https://start9.com/" - # The series of commands to build the project into an s9pk for arm64/v8. In this case we are using a Makefile with the simple build command "make". - build: ["make"] - # Minimum required version of embassyOS - min-os-version: "0.3.0" - # Human readable descriptors for the service. These are used throughout the embassyOS user interface, primarily in the marketplace. - description: - # This is the first description visible to the user in the marketplace. - short: Example service - # This description will display with additional details in the service's individual marketplace page - long: | - Hello World is a simple example of a service wrapper that launches a web interface to say hello and nothing more. - # These assets are static files necessary for packaging the service for Start9 (into an s9pk). Each value is a path to the specified asset. If an asset is missing from this list, or otherwise denoted, it will be defaulted to the values denoted below. - assets: - # Default = LICENSE.md - license: LICENSE - # Default = icon.png - icon: icon.png - # Default = INSTRUCTIONS.md - instructions: instructions.md - # Default = image.tar - docker-images: image.tar - # The main action for initializing the service. Currently, the only type of action available is docker. - main: - # Docker is currently the only action implementation - type: docker - # Identifier for the main image volume, which will be used when other actions need to mount to this volume. - image: main - # The executable binary for starting the initialization action. For docker actions, this is typically a "docker_entrypoint.sh" file. See the Dockerfile and the docker_entrypoint.sh in this project for additional details. - entrypoint: "docker_entrypoint.sh" - # Any arguments that should be passed into the entrypoint executable - args: [] - # Specifies where to mount the data volume(s), if there are any. Mounts for pointer dependency volumes are also denoted here. These are necessary if data needs to be read from / written to these volumes. - mounts: - # Specifies where on the service's file system its persistence directory should be mounted prior to service startup - main: /root - # Health checks - health-checks: - main: - name: Web Interface - description: Ensures the network interface is accessible via HTTP. - type: docker - image: main - entrypoint: "sh" - args: ["-c", "curl --silent --show-error --fail http://loacalhost:80"] - # When `inject` is true, the health check will use the main image to run the health check. This is faster as there is no need to spin up an additional docker container - # When `inject` is false, the health check will use whatever image is specified. This is useful when using a system image with additional utilities to run a health check. If inject=false, then system must equal true - inject: true - # Optional if false - indicates if an image that is preloaded onto the system will be used - system: false - # Required - valid values are yaml, toml, json - io-format: json - # Specifies how to get and set configuration file values for the service. NOTE: This stanza can be left empty (null) if the service has no configuration options. - config: - # The config action to run to get the specified config file (default is config.yaml) - get: - # The type of implementation to run this action (currently, only Docker is available) - type: docker - # The Docker image to run the action command in. This could be the service's main image, or an image that is preloaded onto the system, like compat (which holds compatible helper functions for default functionality) - image: compat - # Indicates if an image that is preloaded onto the system will be used - system: true - # The initial run command to execute the config get action - entrypoint: compat - # Any arguments that need to be passed into the run command - args: - - config - - get - - /root - - "/mnt/assets/config_spec.yaml" - # The locations at which to mount the specified Docker images - mounts: - compat: /mnt/assets - main: /root - # Required - valid values are yaml, toml, json - io-format: yaml - # The config action to run to set the specified config file (default is config.yaml). Details for the keys below are the same as above. - set: - type: docker - image: compat - system: true - entrypoint: compat - args: - - config - - set - - hello-world - - /root - - "/mnt/assets/config_rules.yaml" - mounts: - compat: /mnt/assets - main: /root - io-format: yaml - # This is a key value map specifying dependent services that this service needs in order to function. The keys are the package id's on which you depend. NOTE: if developing a standalone service, you may leave this stanza as an empty object (the key dependencies is required) - dependencies: - # Key must be the package id of another service that exists in the marketplace - filebrowser: - # The version range that is acceptable for this dependency - version: "^2.14.1.1" - # Describes if the dependency is critical to the service functioning. If the dependency is critical, the service will stop if this dependency is stopped. - critical: false - # Specifies the requirement type of the dependency - requirement: - # "Opt-out" means the dependency will be required according to the default config. "Opt-in" means the dependency may be required if you change the config. And "required" just means it's always required. - type: "opt-out" - # An explanation of how to opt-in or opt-out. This value is optional for type=required - how: Optionally use the selected dependency - # Description of the dependency relationship - description: A dependency that demonstrates the way to configure a dependent service - # This is a list of rules that levies requirements on the configuration of the dependency and suggests ways to remedy any incompatibilities. Documentation of this feature is outside the scope of this example. - config: ~ - # This denotes any data, asset, or pointer volumes that should be connected when the "docker run" command is invoked - volumes: - # This is the image where files from the project asset directory will go - main: - type: data - # This is an example of an asset volume - compat: - type: assets - # This specifies how to configure the port mapping for exposing the service over TOR and LAN (if applicable). Many interfaces can be specified depending on the needs of the service. If it can be launched over a Local Area Network connection, specify a `lan-config`. Otherwise, at minimum, a `tor-config` must be specified. - interfaces: - # This key is the internal name that the OS will use to configure the interface - main: - # A human readable name for display in the UI - name: Network Interface - # A descriptive description of what the interface does - description: Specifies the interface to listen on for HTTP connections. - tor-config: - # Port mappings are from the external port to the internal container port - port-mapping: - 80: "80" - # Port mappings are from the external port to the internal container port - lan-config: - 80: - ssl: false - internal: 80 - # Denotes if the service has a user interface to display - ui: true - # Denotes the protocol specifications used by this interface - protocols: - - tcp - - http - # Alerts: omitting these will result in using the default alerts in embassyOS, except for start, which has no default. - alerts: - install-alert: This is an alert that will present before the user installs this service - uninstall-alert: This is an alert that will present before the user uninstalls this service - restore-alert: This is an alert that will present before the user restores this service from Embassy backup - start-alert: This is an alert that will present before the user starts this service - # Specifies how backups should be run for this service. The default embassyOS provided option is to use the duplicity backup library on a system image (compat) - backup: - create: - # Currently, only docker actions are supported. - type: docker - # The docker image to use. In this case, a pre-loaded system image called compat - image: compat - # Required if the action uses a system image. The default value is false. - system: true - # The executable to run the command to begin the backup create process - entrypoint: compat - # Arguments to pass into the entrypoint executable. In this example, the full command run will be: `compat duplicity hello-world /mnt/backup /root/data` - args: - - duplicity - - hello-world - - /mnt/backup - # For duplicity, the backup mount point needs to be something other than `/root`, so we default to `/root/data` - - /root/data - mounts: - # BACKUP is the default volume that is used for backups. This is whatever backup drive is mounted to the device, or a network filesystem. - # The value here donates where the mount point will be. The backup drive is mounted to this location. - BACKUP: "/mnt/backup" - main: "/root" - # The action to execute the backup restore functionality. Details for the keys below are the same as above. - restore: - type: docker - image: compat - system: true - entrypoint: compat - args: - - duplicity - - hello-world - - /root/data - - /mnt/backup - mounts: - BACKUP: "/mnt/backup" - main: "/root" - # Commands that can be issued from the UI. NOTE: if no actions are required, this section can be left as an empty object - actions: - hello-world-action: - name: Hello World Action - description: A description that describes what the action will accomplish. - warning: | - A warning message indicating and potential dangers associated with the action - # Indicates what state the service can be in while executing the action - allowed-statuses: - - running - # Defines how the action is run - implementation: - type: docker - image: main - entrypoint: sh - args: ["-c", "echo 'hello-world'"] - # Same as note on health-checks - inject: true - # Required - valid values are yaml, toml, json - io-format: json - -**That's it!** You now have the structure for your service's Manifest. \ No newline at end of file diff --git a/site/source/developer-docs/build-package-example/06_create-assets.rst b/site/source/developer-docs/build-package-example/06_create-assets.rst deleted file mode 100644 index abe11c4..0000000 --- a/site/source/developer-docs/build-package-example/06_create-assets.rst +++ /dev/null @@ -1,56 +0,0 @@ -.. _packaging-create-assets: - -================= -6 - Create Assets -================= - -.. contents:: - :depth: 2 - :local: - -Each ``s9pk`` package contains a set of assets. They include: - -- Instructions -- License -- Icon - -Instructions ------------- - -An instructions file is a convenient way to share any steps users should take to setup or interact with your service. This file gets displayed within an EmbassyUI component and should be written in `Markdown `_ language. - -Let's add instructions to our hello world project: - -.. code:: bash - - touch instructions.md - -And add the following code to the file: - -.. code:: bash - - # Instructions for Hello World - - Instructions go here. These appear to the user in the UI on the Service page under 'Instructions.' - -License -------- - -Start9 ensures that the proper license is displayed for all open source software running on an embassyOS platform. Let's make sure to include the full open source license so users can view the distribution permissions of your service, among other licensing details. - -The name and location of this file should be specified in the ``assets.license`` section of the Manifest. The default value if not specified is ``LICENSE``, located in the root of the project folder. - -.. code:: bash - - touch ./hello-world/LICENSE - -Icon ----- - -Icons are displayed throughout the EmbassyUI to reference to your service. - -Simply add the icon file to the root of the project directory. The icon file can be named anything, but this must be specified in the ``assets.icon`` section of the Manifest. The default filename the SDk looks for when packaging the service assets is ``icon.png``. - -.. code:: bash - - mv /local/path/to/icon ./hello-world/icon.png \ No newline at end of file diff --git a/site/source/developer-docs/build-package-example/07_create-s9pk.rst b/site/source/developer-docs/build-package-example/07_create-s9pk.rst deleted file mode 100644 index 9e3f366..0000000 --- a/site/source/developer-docs/build-package-example/07_create-s9pk.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. _packaging-create-s9pk: - -================== -7 - Format Package -================== - -We now have all of the necessary components to package the service into the format needed for the OS. This format is a custom filetype with an extension of ``.s9pk``, short for Start9 Package. - -To package all components into an ``.s9pk``, run the following command from the root of your project directory: - -.. code:: bash - - embassy-sdk pack - -Let's also make sure to verify the validity of the package: - -.. code:: bash - - embassy-sdk verify s9pk /path/to/hello-world.s9pk - -If anything goes wrong, an error message will indicate the missing component or other failure. - -**That's it!** diff --git a/site/source/developer-docs/build-package-example/08_create-makefile.rst b/site/source/developer-docs/build-package-example/08_create-makefile.rst deleted file mode 100644 index 3c39f7c..0000000 --- a/site/source/developer-docs/build-package-example/08_create-makefile.rst +++ /dev/null @@ -1,92 +0,0 @@ -.. _packaging-makefile: - -=================== -8 - Create Makefile -=================== - -For convenience and repeatability, let's combine all of these commands into a Makefile. Then, we can use `make `_ to rebuild our project quickly. - -.. code:: bash - - touch Makefile - -1. Add the build rule with the target executable as the key, including a list of dependencies needed to build the target file. In this case, the ``hello-world`` binary compiled for aarch is the target, and the dependencies are the hello-world source files needed to compile this binary: - - .. code:: bash - - HELLO_WORLD_SRC := $(shell find ./hello-world/src) hello-world/Cargo.toml hello-world/Cargo.lock - - hello-world/target/aarch64-unknown-linux-musl/release/hello-world: $(HELLO_WORLD_SRC) - docker run --rm -it -v ~/.cargo/registry:/root/.cargo/registry -v "$(shell pwd)"/hello-world:/home/rust/src start9/rust-musl-cross:aarch64-musl cargo build --release - -2. Add the step to build the Docker image. Here, the target is the Docker `image.tar` artifact, and the dependencies are the Dockerfile, docker_entrypoint.sh, and the aarch64 compiled hello-world executable: - - .. code:: bash - - image.tar: Dockerfile docker_entrypoint.sh hello-world/target/aarch64-unknown-linux-musl/release/hello-world - DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build --tag start9/hello-world/main:$(VERSION) --platform=linux/arm64 -o type=docker,dest=image.tar . - -3. Next, add the step for building the ``s9pk`` package, with the ``hello-world.s9pk`` as the target, and all the component files as the dependencies: - - .. code:: bash - - ASSETS := $(shell yq e '.assets.[].src' manifest.yaml) - - hello-world.s9pk: manifest.yaml assets/compat/config_spec.yaml assets/compat/config_rules.yaml image.tar instructions.md $(ASSET_PATHS) - embassy-sdk pack - -4. Then, add the step to verify the package: - - .. code:: bash - - S9PK_PATH=$(shell find . -name hello-world.s9pk -print) - - verify: hello-world.s9pk $(S9PK_PATH) - embassy-sdk verify s9pk $(S9PK_PATH) - -5. Add steps to clean up the Makefile build artifacts when you want to build from a fresh slate: - - .. code:: bash - - clean: - rm -f image.tar - rm -f hello-world.s9pk - -6. Finally, add the ``all`` make target. - - .. code:: bash - - all: verify - - This serves as the entrypoint to build multiple targets, which we have in this case. When the ``make`` command is invoked here, it looks for the "verify" target. Since the "verify" target depends on the "hello-world.s9pk" target, make then runs this target. It continues down this graph until the first target and its dependencies are satisfied, then works its way back up. The final output of this Makefile is the ``image.tar`` and ``hello-world.s9pk`` files. - -**That's it!** Our completed Makefile looks like this: - -.. code:: make - - ASSETS := $(shell yq e '.assets.[].src' manifest.yaml) - ASSET_PATHS := $(addprefix assets/,$(ASSETS)) - VERSION := $(shell yq e ".version" manifest.yaml) - HELLO_WORLD_SRC := $(shell find ./hello-world/src) hello-world/Cargo.toml hello-world/Cargo.lock - S9PK_PATH=$(shell find . -name hello-world.s9pk -print) - - # delete the target of a rule if it has changed and its recipe exits with a nonzero exit status - .DELETE_ON_ERROR: - - all: verify - - verify: hello-world.s9pk $(S9PK_PATH) - embassy-sdk verify s9pk $(S9PK_PATH) - - clean: - rm -f image.tar - rm -f hello-world.s9pk - - hello-world.s9pk: manifest.yaml assets/compat/config_spec.yaml assets/compat/config_rules.yaml image.tar instructions.md $(ASSET_PATHS) - embassy-sdk pack - - image.tar: Dockerfile docker_entrypoint.sh hello-world/target/aarch64-unknown-linux-musl/release/hello-world - DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build --tag start9/hello-world/main:$(VERSION) --platform=linux/arm64 -o type=docker,dest=image.tar . - - hello-world/target/aarch64-unknown-linux-musl/release/hello-world: $(HELLO_WORLD_SRC) - docker run --rm -it -v ~/.cargo/registry:/root/.cargo/registry -v "$(shell pwd)"/hello-world:/home/rust/src start9/rust-musl-cross:aarch64-musl cargo build --release diff --git a/site/source/developer-docs/build-package-example/09_create-wrapper.rst b/site/source/developer-docs/build-package-example/09_create-wrapper.rst deleted file mode 100644 index a7d17ef..0000000 --- a/site/source/developer-docs/build-package-example/09_create-wrapper.rst +++ /dev/null @@ -1,65 +0,0 @@ -.. _packaging-create-wrapper: - -================== -9 - Create Wrapper -================== - -In order for the Start9 team to review your package for submission to the Start9 Marketplace, we ask that you create a wrapper repository for the project and its components. This repo should contain everything you need to build the service. - -Let's do that for our hello-world service. - -For a quick start convenience, Start9 has made the finalized version of the `hello-world-wrapper `_ available as a *GitHub template*. Clicking "Use this template" in that repository will clone the entire contents to a specified location. Each file will still have to be manually edited to reflect the changes necessary for your service. - -If you want to proceed from scratch, follow these steps: - -1. In GitHub, create a new public repository with the name "hello-world-wrapper" under your user profile. Go ahead and select the options to include a README file and a .gitignore file. You can always add these files later too. - -2. Once the hosted repository is created, select the "Code" dropdown to copy the https or ssh URL for the repository. If you do not have git setup locally, follow the :ref:`setup steps ` first. - - .. code:: bash - - git clone https://github.com//hello-world-wrapper.git - cd hello-world-wrapper - - -3. Include the ``hello-world`` project in the wrapper repo. It can either be included directly, or it can be hosted separately. If it is hosted separately, it should be included as a `git submodule `_ within the wrapper repository: - - .. code:: bash - - git submodule add - -4. Edit the ``.gitignore`` file to include the ``.s9pk`` file and ``image.tar`` bundle. This will exclude these files from being published remotely, as they can be large or binary representations. - - .. code:: bash - - hello-world.s9pk - image.tar - -5. Move the ``Dockerfile``, ``docker_entrypoint.sh``, ``LICENSE``, ``icon``, and ``Manifest`` to the root of the wrapper repository. At the end, your project structure should look similar to this: - - .. code:: bash - - ├── Dockerfile - ├── LICENSE - ├── Makefile - ├── README.md - ├── assets - │ └── compat - │ ├── config_rules.yaml - │ └── config_spec.yaml - ├── docker_entrypoint.sh - ├── hello-world - │ ├── Cargo.lock - │ ├── Cargo.toml - │ ├── src - │ │ ├── index.html - │ │ └── main.rs - │ └── target - │ ├── aarch64-unknown-linux-musl - │ ├── debug - │ └── release - ├── hello-world.s9pk - ├── icon.png - ├── image.tar - ├── instructions.md - └── manifest.yaml diff --git a/site/source/developer-docs/build-package-example/10_install-package.rst b/site/source/developer-docs/build-package-example/10_install-package.rst deleted file mode 100644 index f743e1c..0000000 --- a/site/source/developer-docs/build-package-example/10_install-package.rst +++ /dev/null @@ -1,65 +0,0 @@ -.. _packaging-install: - -============ -10 - Install -============ - -Now that we have a process for iterating on producing a valid package for embassyOS, let's load it onto an Embassy! - -1. First, generate an ssh key for the Embassy: - - .. code:: bash - - ssh-keygen -t ed25519 - # Press Enter to leave filename as default - # Press Enter to leave password empty - # Press Enter to confirm password is empty - # Copy file contents to clipboard. This is your ssh pubkey. - pbcopy .ssh/id_ed25519.pub - -2. On an Embassy device, enter the ssh pubkey into your SSH settings: - - 1. Click on Embassy in the menu - 2. Click on SSH under SETTINGS - 3. Click on + Add new key - 4. Paste pubkey from clipboard - -3. Copy the ``hello-world.s9pk`` to the Embassy device: - - .. code:: bash - - # Confirm you can ssh into your Embassy - ssh start9@ - # Log out of Embassy SSH session - exit - - scp .s9pk ssh start9@:/working/directory/path - - eg. scp hello-world.s9pk ssh start9@embassy-12345678.local:~ - -4. Finally, install the package on an Embassy device: - - .. code:: bash - - ssh start9@ - # log in to the command line interface using the Embassy password - embassy-cli auth login - embassy-cli package install hello-world.s9pk - -**Congratulations!** You have successfully created and installed a package you created onto embassyOS. The package should now be viewable in the "Services" tab in EmbassyUI. - -From here, you can play with viewing the results of your Manifest file settings, such as config, actions, interfaces, health checks, etc. You can also view the logs of your service right in the UI! - -In order to verify your service is functioning as expected: - - - Ensure your service is in "Running" state - - Make sure there are no apparent errors or warnings in the logs - - Ensure each UI component renders as expected: - - Instructions - - Config - - Properties - - Actions - - Interfaces - - Marketplace listing - - Donation - - Launch or use your service in the intended way and make sure all aspects function diff --git a/site/source/developer-docs/build-package-example/index.rst b/site/source/developer-docs/build-package-example/index.rst deleted file mode 100644 index e55961c..0000000 --- a/site/source/developer-docs/build-package-example/index.rst +++ /dev/null @@ -1,122 +0,0 @@ -.. _build-package-example: - -=============== -Build a Package -=============== - -This guide will take you through the fundamentals of packaging a service for embassyOS by creating a real service. Let's get started! - -.. raw:: html - -
- -
- -.. topic-box:: - :title: Step 1 - :link: 01_setup - :class: large-4 - :anchor: View - - Context and environment setup - -.. topic-box:: - :title: Step 2 - :link: 02_create-service - :class: large-4 - :anchor: View - - Create a service - -.. topic-box:: - :title: Step 3 - :link: 03_hardware-compile - :class: large-4 - :anchor: View - - Compile for Embassy hardware - -.. topic-box:: - :title: Step 4 - :link: 04_docker-build - :class: large-4 - :anchor: View - - Build service with Docker - -.. topic-box:: - :title: Step 5 - :link: 05_create-manifest - :class: large-4 - :anchor: View - - Create Manifest file - -.. topic-box:: - :title: Step 6 - :link: 06_create-assets - :class: large-4 - :anchor: View - - Create package assets - -.. topic-box:: - :title: Step 7 - :link: 07_create-s9pk - :class: large-4 - :anchor: View - - Package service components together - -.. topic-box:: - :title: Step 8 - :link: 08_create-makefile - :class: large-4 - :anchor: View - - Create Makefile with build steps (optional) - -.. topic-box:: - :title: Step 9 - :link: 09_create-wrapper - :class: large-4 - :anchor: View - - Create wrapper repository to host code for review - -.. topic-box:: - :title: Step 10 - :link: 10_install-package - :class: large-4 - :anchor: View - - Install packaged service on embassyOS - -.. topic-box:: - :title: Resources - :link: resources - :class: large-4 - :anchor: View - - Get help, learn how to submit your package to a marketplace, and example references - -.. raw:: html - -
- -.. This is for the side navigation display -.. toctree:: - :maxdepth: 1 - :hidden: - - 01_setup - 02_create-service - 03_hardware-compile - 04_docker-build - 05_create-manifest - 06_create-assets - 07_create-s9pk - 08_create-makefile - 09_create-wrapper - 10_install-package - resources diff --git a/site/source/developer-docs/build-package-example/resources.rst b/site/source/developer-docs/build-package-example/resources.rst deleted file mode 100644 index d787f55..0000000 --- a/site/source/developer-docs/build-package-example/resources.rst +++ /dev/null @@ -1,35 +0,0 @@ -.. _packaging-resources: - -========= -Resources -========= - -.. contents:: - :depth: 2 - :local: - -Get help --------- - -If you get stuck or are having issues debugging why your service is not packaging or running as expected, reach out to our community `dev chat `_ with questions. - -Submission Process ------------------- - -When you have built and tested your project for embassyOS, please send Start9 a submission to dev@start9.com with a link to the wrapper repository. After being reviewed for security and compatibility, the service will be deployed to the Start9 Marketplace and available for all embassyOS users to download. - -If you are deploying to an alternative marketplace, please shout it out in our community channels! - -References ----------- - -Below are links to working examples of more advanced configurations for current Embassy services. They might serve as a starting point or reference during your development process: - - - Detailed ``docker_entrypoint.sh`` - `Filebrowser `_ - - Optional dependencies - `BTCPay Server `__ - - Config spec - `BTCPay Server `__ - - Config rules - `BTC RPC Proxy `__ - - Multiple dependencies - `BTCPay Server `__ - - Actions - `BTCPay Server `__ - - Health checks - `BTCPay Server `__ - - Alerts - `BTCPay Server `__ diff --git a/site/source/developer-docs/getting-started/environment-setup.rst b/site/source/developer-docs/getting-started/environment-setup.rst deleted file mode 100644 index 1003d26..0000000 --- a/site/source/developer-docs/getting-started/environment-setup.rst +++ /dev/null @@ -1,97 +0,0 @@ -.. _environment-setup: - -================= -Environment Setup -================= - -.. contents:: - :depth: 2 - :local: - -To get started packaging a service for embassyOS, some basic knowledge of software development is required. Don't worry if you are inexperienced, we will provide enough context to get you started, and you can always reach out with questions. - -If you are already an experienced developer, :ref:`jump ahead `. - -The only system requirements are `Docker `_ and `Cargo `_ (Rust package manager). - -Of course, there are additional recommendations that would streamline your development experience, but they are not required. - -Code Editor ------------ - -A code editor is recommended since you will, after all, be writing code! We are fans of `Visual Studio Code `_ . Visual Studio Code is a free, batteries-included text editor made by Microsoft. - -Terminal / CLI --------------- - -We recommend using your computer's built-in terminal as a command line interface (CLI) for your operating system. For Windows users, we recommend the built-in command line (cmd) *Command Prompt* or the Powershell CLI, running in Administrator mode. For macOS and Linux, the native *Terminal* is recommended, but virtually any terminal will work. - -If you are new to the command line, Ionic has published this awesome `guide `_ to get you started. - -.. _environment-setup-git: - -Git ---- - -Although not required, the version control system Git is highly recommended. - -Git is often accompanied by a Git Host, such as `GitHub `_, in which case additional setup is required. Follow the tutorial from the GitHub `here `_ to set up your environment. - -To verify the installation, open a new terminal window and run: - -.. code:: bash - - git --version - -Docker ------- - -`Docker `_ must be installed on your computer. It is needed to build an image for your package, which will be used to create the running instance of your package on embassyOS. In essence, it declares the necessary environment and building stages for your package to run. - -We also recommend installing and using `Docker buildx `_, as this adds desirable new features to the Docker build experience. It is included by default with Docker Desktop for Windows and macOS. - - -Cargo ------ - -Cargo is the package management solution for the Rust programming language. It will install Rust to your system, and provide the required environment to build the Embassy SDK for packaging your service into the required format needed by embassyOS. - -Installation instructions for Cargo can be found `here `__. - -To verify the installation, open a terminal window and run: - -.. code:: bash - - cargo --version - -SDK ---- - -embassyOS provides a :ref:`software development kit ` embedded in its environment. You do not need a running instance of embassyOS to use this component, it can be installed on any computer platform. - -To install the SDK: - -.. code:: bash - - git clone --recursive https://github.com/Start9Labs/embassy-os.git && cd embassy-os/backend && ./install-sdk.sh - -To verify the installation, open a terminal window and run: - -.. code:: bash - - embassy-sdk --version - -embassyOS ---------- - -While not strictly necessary, having a running instance of embassyOS is recommended to test installing, running, configuring, and using your package. Without this component, you will have to coordinate with Start9's internal development team to test. - -.. _environment-quick-start: - -Quick Start Environment Setup ------------------------------ -- `Docker `_ -- `Docker buildx `_ -- `Cargo `__ -- `embassyOS `_ -- `Embassy SDK `_ diff --git a/site/source/developer-docs/getting-started/index.rst b/site/source/developer-docs/getting-started/index.rst deleted file mode 100644 index 9563edc..0000000 --- a/site/source/developer-docs/getting-started/index.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. _packaging-getting-started: - -=============== -Getting Started -=============== - - Select an option below to get started with packing a service for embassyOS. - -.. raw:: html - -
- -
- -.. topic-box:: - :title: Environment Setup - :link: environment-setup - :icon: scylla-icon scylla-icon--integrations - :class: large-4 - :anchor: View - - Get your environment setup to optimize service packaging - -.. topic-box:: - :title: Build your first Package - :link: build-package-example/index - :icon: scylla-icon scylla-icon--open-source - :class: large-4 - :anchor: Begin - - Follow along to learn packaging fundamentals with an example - -.. topic-box:: - :title: SDK - :link: sdk - :icon: scylla-icon scylla-icon--apps - :class: large-4 - :anchor: View - - Discover details about Start9's Software Development Kit - -.. topic-box:: - :title: Checklist - :link: checklist - :icon: scylla-icon scylla-icon--roadmap - :class: large-4 - :anchor: Begin - - Quickly get started with concise steps - -.. raw:: html - -
- -.. This is for the side navigation display -.. toctree:: - :maxdepth: 1 - :hidden: - - environment-setup - sdk - checklist \ No newline at end of file diff --git a/site/source/developer-docs/getting-started/sdk.rst b/site/source/developer-docs/getting-started/sdk.rst deleted file mode 100644 index c9c6c6c..0000000 --- a/site/source/developer-docs/getting-started/sdk.rst +++ /dev/null @@ -1,97 +0,0 @@ -.. _sdk: - -=========== -Embassy SDK -=========== - -Embassy SDK, or Software Development Kit, is a CLI (Command Line Interface) tool that aids in building and packaging services you wish to deploy to the Embassy. - -It mainly helps you validate that the necessary components of your package exist, and package all of those components into a special file type that is understood by embassyOS. - -To install, checkout the SDK step in :ref:`setting up your environment `. - -Commands -======== - -To see a list of all available commands provided, run the following from an terminal window: - -.. code:: bash - - embassy-sdk --help - - -embassy-sdk init ----------------- - -Initialize the developer key for interacting with the SDK. - -By default, this creates the developer key at `$HOME/embassy`. You might need to change ownership of this folder depending on your system permissions. - -.. code:: bash - - chown /etc/embassy - -Alternatively, you can write a config file with your desired developer key location, it simply needs the following format: - - .. code:: yaml - - developer-key-path: /desired/path/to/key - -And load it by running: - - .. code:: bash - - embassy-sdk -c /path/to/config init - - -embassy-sdk pack ----------------- - -This command takes the necessary package components and assembles them into the `s9pk` file format needed to install a service on embassyOS. It expects the following files to exist: - - - Manifest - - Instructions - - License - - Icon - -If this command fails, the error response will indicate which component is missing. - -embassy-sdk verify -------------------- - -This command verifies aspects about the components assembled into the `s9pk`, such as: - - - Ensures that all mounts are real volumes in the manifest - - Ensures all cert volumes point to real interfaces in the manifest - - Ensures all actions refer to real images in the manifest - - Ensures all images are tagged correctly in the manifest - - Ensures the icon is less than 100KB - -It should be run _after_ `embassy-sdk pack` in order to verify the validity of each component. - -If this command fails, the error message will indicate the mismatched details. - -embassy-sdk git-info --------------------- - -This command outputs the git commit hash of the SDK version installed on your platform. - -embassy-sdk inspect -------------------- - -This command contains several utilities for reading components once packaged into the `s9pk`. In development, it can be helpful to determine if each component is successfully included in the `s9pk` package. - -It contains the following subcommands, and requires the path to the `.s9pk` file as the last argument: - - - docker-images - - hash - - icon - - instructions - - license - - manifest - -For example: - -.. code:: bash - - embassy-sdk inspect instructions /path/to/.s9pk diff --git a/site/source/developer-docs/index.rst b/site/source/developer-docs/index.rst index 2531d39..9261c41 100644 --- a/site/source/developer-docs/index.rst +++ b/site/source/developer-docs/index.rst @@ -4,15 +4,7 @@ Developer Docs ============== - Welcome to Service Packaging for embassyOS! - - If you are here, you are interested in becoming part of the mission to change the future of personal computing. - - The guides below provide the fundamentals that will take you through the process of packing a service for embassyOS. Services are any open source project (application) that can be run on a self-hosted platform, independent of third parties. - - By configuring and packaging a project according to these guides, it can be installed on embassyOS so that users can interact with the service without needing any technical expertise. - - Let's get started! + Welcome to the Service Packaging documentation for embassyOS. If you are here, you have heard the call to help empower users with sovereign computing! .. raw:: html @@ -21,56 +13,29 @@ Developer Docs
.. topic-box:: - :title: Getting Started - :link: getting-started - :icon: scylla-icon scylla-icon--nsql-guides + :title: Service Packaging + :link: packaging + :icon: scylla-icon scylla-icon--resource-center :class: large-4 - :anchor: View + :anchor: Build - Set up your environment and follow along with an example - -.. topic-box:: - :title: Build your first Package - :link: build-package-example - :icon: scylla-icon scylla-icon--open-source - :class: large-4 - :anchor: Begin - - Follow along to learn packaging fundamentals with an example - -.. topic-box:: - :title: SDK - :link: getting-started/sdk - :icon: scylla-icon scylla-icon--apps - :class: large-4 - :anchor: View - - Discover details about the Start9 Software Development Kit + A concise guide to Service Packaging .. topic-box:: :title: Full Specification :link: specification :icon: scylla-icon scylla-icon--glossary :class: large-4 - :anchor: View + :anchor: Read Detailed service packaging specification and advanced features -.. topic-box:: - :title: Packaging Checklist - :link: getting-started/checklist - :icon: scylla-icon scylla-icon--roadmap - :class: large-4 - :anchor: Begin - - A quick way to check your work - .. topic-box:: :title: Advanced Guides :link: advanced :icon: scylla-icon scylla-icon--integrations :class: large-4 - :anchor: View + :anchor: Tinker Guides for implementing advanced service configurations @@ -83,7 +48,6 @@ Developer Docs :maxdepth: 1 :hidden: - getting-started/index - build-package-example/index + packaging specification/index advanced/index \ No newline at end of file diff --git a/site/source/developer-docs/packaging.rst b/site/source/developer-docs/packaging.rst new file mode 100644 index 0000000..fb990c1 --- /dev/null +++ b/site/source/developer-docs/packaging.rst @@ -0,0 +1,402 @@ +.. _service-packaging: + +================= +Service Packaging +================= + +.. contents:: + :depth: 2 + :local: + +Welcome! Thank you for your interest in contributing to the growing ecosystem of open software. We call the software applications that run on `embassyOS `_ "services." This distinction is made to differentiate from "applications" (apps), which are generally run on a client, and used to access server-side software (services). To run services on embassyOS, a package of file components needs to be composed. This guide will dive into the basic structure of how to compose this package. + +Check out the :ref:`glossary ` to get acquainted with unfamiliar terms. The bottom of this guide also includes :ref:`support ` links, including a master checklist. + +Let's get started! + +Steps +----- + +#. :ref:`Choose software to package ` +#. :ref:`Set up the development environment ` +#. :ref:`Try out the hello-world demo project ` +#. :ref:`Package the service ` + + #. :ref:`Build a Dockerfile ` + #. :ref:`Create the file structure ` + #. :ref:`Format the package ` + +#. :ref:`Test the service on embassyOS ` +#. :ref:`Submit and/or distribute ` + +.. _choosing-software: + +Choosing Software +================= + +Almost any type of open source software can be run on embassyOS. No matter what programming language, framework, database or interface the service has, it can be adapted for embassyOS. This is made possible by the power of Docker containers (don't worry, we'll get to this). We do have a few recommendations for choosing a service that will perform optimally across platforms: + +#. It either has a web user interface (it can be interacted with in a web browser), or is server software that external applications or internal services can connect to. Please keep in mind that embassyOS users are not expected to have SSH and/or CLI access. + + - The interfaces supported are: HTTP, TCP, and REST APIs + +#. It can be compiled for ARM (``arm64v8``) +#. It can be served over TOR +#. It creates a container image that is optimized for size (under 1GB) to save device space and expedite installation time + +.. _development-environment: + +Development Environment +======================= + +A basic development and testing environment includes: + +#. An Embassy One or Pro with latest `embassyOS `_ + + - Use your own hardware to `DIY `_ + - Purchase a device from the `Start9 Store `_ + - x86/VM support coming soon + +#. A development machine + + - Linux is highly recommended, and this walkthrough will assume a Debian-based (Ubuntu) distribution + +Dependencies - Recommended +.......................... +These tools may or may not be necessary, depending on your environment and the package you are building. + +- Code Editor (IDE) - We recommend `Visual Studio Code `_ + +- Build essentials (Ubuntu) - Common build tools and encryption libraries. + + .. code-block:: + + sudo apt-get install -y build-essential openssl libssl-dev libc6-dev clang libclang-dev ca-certificates + +- Git - This is a version control system that is used widely in Open Source development. + + .. code-block:: + + sudo apt install git + + Use the following verify installation: + + .. code-block:: + + git --version + + .. note:: Anytime you use a ``git clone`` command in this guide, it will create a new directory with code in it, so make sure you are executing this command from a directory that you want to store code in, such as your ``home`` folder. + +- yq - A lightweight and portable command-line YAML, JSON and XML processor. + + .. code-block:: + + sudo snap install yq + +Dependencies - Required +....................... +- `Docker `_ - Docker is currently the only supported containerization method for embassyOS. This declares the necessary environment and building stages for your package to run. Install the desktop GUI or via the command line: + + .. code-block:: + + curl -fsSL https://get.docker.com -o- | bash + sudo usermod -aG docker "$USER" + exec sudo su -l $USER + + We need to enable cross-arch emulated builds in Docker (unless you are building on an ARM machine, such as an M1 Mac - in which case, skip this step). + + .. code-block:: + + docker run --privileged --rm linuxkit/binfmt:v0.8 + +- `Buildx `_ - This adds desirable new features to the Docker build experience. It is included by default with Docker Desktop GUI. If Docker was installed via command line, additionally run: + + .. code-block:: + + docker buildx install + docker buildx create --use + +- Rust & Cargo - Cargo is the package management solution for the Rust programming language. It is needed to build the Embassy SDK. The following will install both Rust and Cargo: + + .. code-block:: + + curl https://sh.rustup.rs -sSf | sh + source $HOME/.cargo/env + + Verify install: + + .. code-block:: + + cargo --version + +- Embassy SDK - embassyOS has an embedded Software Development Kit (SDK). You can install this component on any system, without needing to run embassyOS. + + .. code-block:: + + git clone -b latest --recursive https://github.com/Start9Labs/embassy-os.git && cd embassy-os/backend && ./install-sdk.sh + + Initialize sdk & verify install + + .. code-block:: + + embassy-sdk init + embassy-sdk --version + +- Deno (an optional component for more advanced SDK features) - A simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust. It is used to enable the scripting API portion of the SDK. + + .. code-block:: + + sudo snap install deno + +.. _hello-world-example: + +Demo with Hello World +===================== +Check your environment setup by building a demo project and installing it to embassyOS. + +#. Get Hello World + + .. code-block:: + + git clone https://github.com/Start9Labs/hello-world-wrapper.git + cd hello-world-wrapper + +#. Build to create ``hello-world.s9pk`` + + .. code-block:: + + make + +#. Sideload & Run + - In the embassyOS web UI menu, navigate to `Embassy -> Settings -> Sideload Service` + - Drag and drop or select the ``hello-world.s9pk`` from your filesystem to install + - Once the service has installed, navigate to `Services -> Hello World` and click "Start" + - Once the Health Check is successful, click "Launch UI" and verify you see the Hello World page + +.. _package-the-service: + +Package the service +=================== +The package file produced by this process has a ``s9pk`` extension. This file is what is installed to run a service on embassyOS. + +.. _build-a-dockerfile: + +Build a Dockerfile +.................. +A Dockerfile defines the recipe for building the environment to run a service. Currently, embassyOS only supports one Dockerfile per project (i.e. no Docker compose), so it should include any necessary database configurations. There are several methods to build a Dockerfile for your service. + +First, check to see if the upstream project has already built one. This is usually your best source for finding Docker images that are compatible with ARM. Next, you can: + + - Download an image from [Docker Hub](https://hub.docker.com/) + + - Make a new Dockerfile, and pull in an image the upstream project hosted on Docker Hub as the base + + - Make a new Dockerfile, and pull in a small distribution base (eg. alpine) and compile the build environment yourself using the upstream project source code + +After coding the build steps, build the Docker image using ``docker buildx``, replacing the placeholder variables: + + .. code-block:: + + docker buildx build --tag start9/$(PKG_ID)/main:$(PKG_VERSION) --platform=linux/arm64 -o type=docker,dest=image.tar . + +The resulting ``image.tar`` artifact is the Docker image that needs to be included in the ``s9pk`` package. + +.. _create-file-structure: + +Create File Structure +..................... + +Once we have a Docker image, we can create the service wrapper. A service wrapper is a repository of a new git committed project that "wraps" an existing project (i.e. the upstream project). It contains the set of metadata files needed to build a ``s9pk``, define information displayed in the user interface, and establish the data structure of your package. This repository can exist on any hosted git server - it does not need to be a part of the Start9 GitHub ecosystem. + +The following files should be included in the service wrapper repository: + +- ``manifest.yaml``, which defines: + + - The package id - a unique lowercase and hyphenated package identifier (eg. hello-world) + + - Essential initialization details, such as version + + - Where you are persisting your data on the filesystem (i.e. mounts and volumes) + + - Port mappings (i.e. interfaces) + + - Check out the `Hello World example `_ to see line-by-line details + +- ``instructions.md`` + + - Instructions for the user + + - Appears as a menu item in the service page UI + +- ``LICENSE`` + + - The Open Source License for your wrapper + +- ``icon.png`` + + - The image that will be associated with the service throughout the UI, including in a marketplace + +- ``MAKEFILE`` + + - Build instructions to create the s9pk + + - `Example `_ + +- ``Dockerfile`` + + - A recipe for service creation + + - Add here any prerequisite environment variables, files, or permissions + + - Examples: + - `Using an existing docker image `_ + - `Implementing a database `_ + - `Using a submodule `_ + +- ``docker_entrypoint.sh`` + + - Starts and governs the operation of a service container + + - Gracefully handles container errors and user preferences, i.e. username/password, SIGTERMs + + - Examples: + + - `Robosats `_ + + - `Photoview `_ + + - `RTL `_ + +.. _format-package: + +Format Package +.............. + +Building the final ``s9pk`` artifact depends on the existence of the files listed above, and the execution of the following steps (which should be added to the Makefile): + +- Package the ``s9pk``: + + .. code-block:: + + embassy-sdk pack + +- Verify the ``s9pk`` (replace PKG_ID with your package identifier): + + .. code-block:: + + embassy-sdk verify s9pk PKG_ID.s9pk + + The verification step will provide details about missing files, or fields in the service manifest file. + +That's it! You now have a package! + +.. _testing: + +Testing +======= + +#. Run the ``make`` command from the root folder of your wrapper repository to execute the build instructions defined in the ``MAKEFILE`` + +#. Install the package, via either: + + #. Drag and drop: + + - In the embassyOS web UI menu, navigate to `Embassy -> Settings -> Sideload Service` + + - Drag and drop or select the ``.s9pk`` from your filesystem to install + + #. Use the CLI: + + - Create a config file with the IP address of the device running embassyOS: + + .. code-block:: + + touch /etc/embassy/config.yaml + echo "host: " > /etc/embassy/config.yaml + + - Login with master password + + .. code-block:: + + embassy-cli auth login + embassy-cli package install .s9pk + + + .. figure:: /_static/images/dev/nc-install.png + :width: 60% + :alt: Installing a service + +#. Once the service has installed, navigate to `Services -> ` and click "Start" + +#. Check that the service operations function as expected by either launching the UI, or querying if a server application + +#. Check that each UI element on the service's page displays the proper information and is accurately formatted + +#. Ensure the service can be stopped, restarted, and upgraded (if applicable) + + .. figure:: /_static/images/dev/nc-service.png + :scale: 40% + :alt: An eOS service page + +.. _submission-and-distribution: + +Submission and Distribution +=========================== + +The ``s9pk`` file can be uploaded for distribution to any website, repository, or marketplace. You can also submit your package for publication consideration on a Start9 Marketplace by emailing us at submissions@start9labs.com or by contacting us in one of our [community channels](https://start9.com/latest/about/contact). Please include a link to the wrapper repository with a detailed README in the submission. + +Advanced configuration +====================== + +Scripting on embassyOS +...................... + +Start9 has developed a highly extensible scripting API for developers to create the best possible user experience. This is your toolkit for creating the most powerful service possible by enabling features such as: + +- Configuration +- Version migration +- Dependencies +- Health checks +- Properties + +Use is optional. To experiment, simply use the existing skeleton from the Hello World wrapper `example `_, changing only the package version in the `migration file `_. + +Check out the specification `here `_. + +.. _packaging-support: + +Support +======= +Have a question? Need a hand? Please jump into our `Community `_, or our `Matrix Community Dev Channel `_. You can also check out our full list of :ref:`Community Channels `. + +Need more details? Check out the :ref:`Service Packaging Specification ` + +You may like to use this handy :ref:`Checklist ` to be sure you have everything covered. + +.. _glossary: + +Glossary +======== + +`service` - open software applications that run on embassyOS + +`package` - the composed set of a Docker image, a service manifest, and service instructions, icon, and license, that are formatted into a file with the `s9pk` extension using `embassy-sdk` + +`wrapper` - the project repository that "wraps" the upstream project, and includes additionally necessary files for building and packaging a service for eOS + +`scripts` - a set of developer APIs that enable advanced configuration options for services + +`embassy-sdk` - the Software Development Toolkit used to package and verify services for embassyOS + +`open source software` - computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose + +`upstream project` - the original, source project code that is used as the base for a service + +`embassyOS` - a browser-based, graphical operating system for a personal server + +`eOS` - shorthand for embassyOS + +`s9pk` - the file extension for the packaged service artifact needed to install and run a service on embassyOS + + +:ref:`Back to Top ` \ No newline at end of file diff --git a/site/source/developer-docs/getting-started/checklist.rst b/site/source/developer-docs/specification/checklist.rst similarity index 97% rename from site/source/developer-docs/getting-started/checklist.rst rename to site/source/developer-docs/specification/checklist.rst index a25cb23..bb9506c 100644 --- a/site/source/developer-docs/getting-started/checklist.rst +++ b/site/source/developer-docs/specification/checklist.rst @@ -1,4 +1,4 @@ -.. _packaging-quick-start: +.. _packaging-checklist: ========= Checklist diff --git a/site/source/developer-docs/specification/index.rst b/site/source/developer-docs/specification/index.rst index 52759a3..f16651d 100644 --- a/site/source/developer-docs/specification/index.rst +++ b/site/source/developer-docs/specification/index.rst @@ -120,3 +120,4 @@ The following guides provide an in depth overview of the full capabilities avail js-procedure submission compat/index + checklist diff --git a/site/source/index.rst b/site/source/index.rst index 0422042..5be628e 100644 --- a/site/source/index.rst +++ b/site/source/index.rst @@ -62,7 +62,7 @@ :class: large-4 :anchor: View - Package a service for the Embassy Marketplace + Package a service for the Marketplace .. raw:: html