From f51fbb441e3af1dd152083c31ac79b55ffed97c4 Mon Sep 17 00:00:00 2001 From: Sparchatus Date: Tue, 31 May 2022 09:40:46 +0000 Subject: [PATCH] Added block driver client and server --- errors/errno.fugu | 7 + hake/menu.lst.armv8_imx8x | 1 + include/aos/ump_binding.h | 1 + include/drivers/block_driver.h | 39 ++ lib/block_driver/Hakefile | 20 + lib/block_driver/block_driver.c | 167 ++++++ lib/spawn/spawn.c | 4 + performance/performance_evaluation.py | 18 +- .../block_driver_read_device.jpg | Bin 0 -> 31578 bytes .../block_driver_read_memcpy.jpg | Bin 0 -> 30738 bytes .../block_driver_write_device.jpg | Bin 0 -> 29679 bytes .../block_driver_write_memcpy.jpg | Bin 0 -> 26686 bytes .../block_driver_write_read.jpg | Bin 0 -> 25511 bytes .../archive/block_driver_raw/full_output.log | Bin 0 -> 64184 bytes .../archive/block_driver_raw/metrics.jpg | Bin 0 -> 33492 bytes .../block_driver_read_device.jpg | Bin 0 -> 39420 bytes .../block_driver_read_memcpy.jpg | Bin 0 -> 33241 bytes .../block_driver_write_device.jpg | Bin 0 -> 25819 bytes .../block_driver_write_memcpy.jpg | Bin 0 -> 27005 bytes .../block_driver_write_read.jpg | Bin 0 -> 33540 bytes .../block_driver_single_chache/metrics.jpg | Bin 0 -> 32060 bytes platforms/Hakefile | 2 +- usr/drivers/block_driver_server/Hakefile | 30 ++ usr/drivers/block_driver_server/main.c | 494 ++++++++++++++++++ usr/init/main.c | 7 + 25 files changed, 784 insertions(+), 6 deletions(-) create mode 100644 include/drivers/block_driver.h create mode 100644 lib/block_driver/Hakefile create mode 100644 lib/block_driver/block_driver.c create mode 100644 performance/plots/archive/block_driver_raw/block_driver_read_device.jpg create mode 100644 performance/plots/archive/block_driver_raw/block_driver_read_memcpy.jpg create mode 100644 performance/plots/archive/block_driver_raw/block_driver_write_device.jpg create mode 100644 performance/plots/archive/block_driver_raw/block_driver_write_memcpy.jpg create mode 100644 performance/plots/archive/block_driver_raw/block_driver_write_read.jpg create mode 100644 performance/plots/archive/block_driver_raw/full_output.log create mode 100644 performance/plots/archive/block_driver_raw/metrics.jpg create mode 100644 performance/plots/archive/block_driver_single_chache/block_driver_read_device.jpg create mode 100644 performance/plots/archive/block_driver_single_chache/block_driver_read_memcpy.jpg create mode 100644 performance/plots/archive/block_driver_single_chache/block_driver_write_device.jpg create mode 100644 performance/plots/archive/block_driver_single_chache/block_driver_write_memcpy.jpg create mode 100644 performance/plots/archive/block_driver_single_chache/block_driver_write_read.jpg create mode 100644 performance/plots/archive/block_driver_single_chache/metrics.jpg create mode 100644 usr/drivers/block_driver_server/Hakefile create mode 100644 usr/drivers/block_driver_server/main.c diff --git a/errors/errno.fugu b/errors/errno.fugu index fcf10dc..00f7c6f 100755 --- a/errors/errno.fugu +++ b/errors/errno.fugu @@ -1154,6 +1154,7 @@ errors fat FAT_ERR_ { failure BLOCK_BOUNDS "The block number is out of bounds", failure CREATE_ROOT "Tried to create root directory", failure BAD_FILENAME "Filename is not allowed", + failure TOO_MANY_HANDLES "Currently the FAT32 library allows at most FAT32_MAX_OPEN_HANDLERS handlers per dir/file", }; // errors generated by VFS's fs cache library @@ -1433,3 +1434,9 @@ errors sdhc SDHCD_ERR_ { failure BULK_FRAME_SET "Bulk frame already set", failure BULK_FRAME_NOT_SET "Bulk frame not set", }; + +// errors for block driver server +errors block BLOCK_ERR_ { + failure OVERFLOW_BLOCK "Client tried to operate over block bounds", + failure WRITE_BOOTSECTOR "Client tried to overwrite the boot sector", +}; diff --git a/hake/menu.lst.armv8_imx8x b/hake/menu.lst.armv8_imx8x index 529feec..d06cead 100644 --- a/hake/menu.lst.armv8_imx8x +++ b/hake/menu.lst.armv8_imx8x @@ -12,3 +12,4 @@ module /armv8/sbin/mallocator module /armv8/sbin/stackoverflow module /armv8/sbin/echoserver module /armv8/sbin/shelly +module /armv8/sbin/block_driver_server diff --git a/include/aos/ump_binding.h b/include/aos/ump_binding.h index 6e4029a..283a7dc 100644 --- a/include/aos/ump_binding.h +++ b/include/aos/ump_binding.h @@ -8,6 +8,7 @@ enum ump_server_id { UMP_SERVER_ECHO, UMP_SERVER_NET, + UMP_SERVER_BLOCK_DRIVER, UMP_SERVER_COUNT // How many servers exist }; diff --git a/include/drivers/block_driver.h b/include/drivers/block_driver.h new file mode 100644 index 0000000..9151354 --- /dev/null +++ b/include/drivers/block_driver.h @@ -0,0 +1,39 @@ +#ifndef _INIT_BLOCK_DRIVER_H_ +#define _INIT_BLOCK_DRIVER_H_ + +#include + +enum block_driver_action { + BLOCK_DRIVER_ACTION_READ, + BLOCK_DRIVER_ACTION_WRITE, + BLOCK_DRIVER_ACTION_LOCK, + BLOCK_DRIVER_ACTION_UNLOCK, + BLOCK_DRIVER_ACTION_REGISTER_HANDLE, + BLOCK_DRIVER_ACTION_UNREGISTER_HANDLE, + BLOCK_DRIVER_ACTION_COUNT_HANDLES +}; + +struct block_driver_request { + enum block_driver_action action; + size_t block_number; + size_t offset; + size_t bytes; + uint64_t directory_entry_id; +}; + +struct block_driver_result { + errval_t err; +}; + +errval_t block_driver_init(void); + +errval_t block_driver_read_object(uint32_t sector_number, size_t offset, size_t size, void *dst); +errval_t block_driver_write_object(uint32_t sector_number, size_t offset, size_t size, const void *src); +errval_t block_driver_lock(void); +errval_t block_driver_unlock(void); + +errval_t block_driver_register_handle(uint64_t directory_entry_id); +errval_t block_driver_unregister_handle(uint64_t directory_entry_id); +errval_t block_driver_count_handles(uint64_t directory_entry_id, size_t *count); + +#endif /* _INIT_BLOCK_DRIVER_H_ */ \ No newline at end of file diff --git a/lib/block_driver/Hakefile b/lib/block_driver/Hakefile new file mode 100644 index 0000000..8e27a25 --- /dev/null +++ b/lib/block_driver/Hakefile @@ -0,0 +1,20 @@ +-------------------------------------------------------------------------- +-- Copyright (c) 2007-2012, ETH Zurich. +-- All rights reserved. +-- +-- This file is distributed under the terms in the attached LICENSE file. +-- If you do not find this file, copies can be found by writing to: +-- ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group. +-- +-- Hakefile for lib/vfs +-- +-------------------------------------------------------------------------- + +[ + build library { + target = "block_driver", + cFiles = [ + "block_driver.c" + ] + } +] diff --git a/lib/block_driver/block_driver.c b/lib/block_driver/block_driver.c new file mode 100644 index 0000000..6cf05f0 --- /dev/null +++ b/lib/block_driver/block_driver.c @@ -0,0 +1,167 @@ +#include +#include +#include + +#include + +struct block_driver_state { + struct ump_send_chan *send_chan; + struct ump_recv_chan *recv_chan; + + bool request_ongoing; + struct block_driver_request *current_request; + void *read_buf; + errval_t result; +}; + +static struct block_driver_state state = { + .recv_chan = NULL, + .send_chan = NULL, +}; + +// use a waitset to make the calls blocking +struct waitset ws; + +errval_t block_driver_init(void) { + errval_t err; + + waitset_init(&ws); + + // connect to the block driver + struct capref cap; + struct aos_rpc *rpc = aos_rpc_get_init_channel(); + // retry several times, waiting inbetween in case the server is still starting up + for (int attempts = 0; attempts < 50; attempts++) { + err = aos_rpc_ump_connect(rpc, UMP_SERVER_BLOCK_DRIVER, &cap); + if (err_no(err) != LIB_ERR_UMP_NOT_REGISTERED) break; + barrelfish_usleep(100000); + } + if (err_is_fail(err)) return err; + + // Create the two uni-directional channels + struct ump_send_chan *send_chan; + struct ump_recv_chan *recv_chan; + err = ump_chan_init(UMP_ROLE_CLIENT, &send_chan, &recv_chan, sizeof(struct block_driver_result), cap, &ws); + if (err_is_fail(err)) return err; + + state.recv_chan = recv_chan; + state.send_chan = send_chan; + state.request_ongoing = false; + state.current_request = NULL; + state.read_buf = NULL; + state.result = SYS_ERR_OK; + + return SYS_ERR_OK; +} + +static void handle_payload(void *arg, size_t payload_size, void *payload) { + state.request_ongoing = false; +} + +static void handle_response(void *arg, size_t header_size, void *header, size_t payload_size) { + struct block_driver_result *result = header; + + state.result = result->err; + + if (state.current_request->action == BLOCK_DRIVER_ACTION_READ && err_is_ok(result->err)) { + if (payload_size != state.current_request->bytes) { + USER_PANIC("We should always receive as much as requested or an error"); + } + // receive the payload in the buffer passed to the blocking function + ump_recv_payload(state.recv_chan, state.read_buf, handle_payload, NULL); + return; + } else if (state.current_request->action == BLOCK_DRIVER_ACTION_COUNT_HANDLES && err_is_ok(result->err)) { + if (payload_size != sizeof(size_t)) { + USER_PANIC("We should always receive a size_t result for this request or an error"); + } + // receive the payload in the buffer passed to the blocking function + ump_recv_payload(state.recv_chan, state.read_buf, handle_payload, NULL); + return; + } + + + ump_recv_payload(state.recv_chan, NULL, handle_payload, NULL); +} + +static void handle_send_completed(void *arg, struct ump_send_queue_entry *entry) { + free((void *)entry->header); + free(entry); +} + +static errval_t send_blocking_request(enum block_driver_action action, uint64_t directory_entry_id, uint32_t sector_number, size_t offset, size_t size, size_t payload_size, const void *payload) { + assert(state.recv_chan != NULL); + assert(state.send_chan != NULL); + assert(!state.request_ongoing); + + errval_t err; + + state.request_ongoing = true; + + // send the read request + struct block_driver_request *request = malloc(sizeof(struct block_driver_request)); + if (request == NULL) return LIB_ERR_MALLOC_FAIL; + struct ump_send_queue_entry *entry = malloc(sizeof(struct ump_send_queue_entry)); + if (entry == NULL) return LIB_ERR_MALLOC_FAIL; + + request->action = action; + request->block_number = sector_number; + request->bytes = size; + request->offset = offset; + request->directory_entry_id = directory_entry_id; + state.current_request = request; + assert(state.send_chan->send_queue_head == NULL); + ump_send( + state.send_chan, + entry, + sizeof(struct block_driver_request), + request, + payload_size, + payload, + handle_send_completed, + NULL + ); + + // register response handler + ump_recv_header(state.recv_chan, handle_response, NULL); + + // wait for the response + while (state.request_ongoing) { + err = event_dispatch(&ws); + if (err_is_fail(err)) { + DEBUG_ERR(err, "in event_dispatch"); + abort(); + } + } + + return state.result; +} + +errval_t block_driver_read_object(uint32_t sector_number, size_t offset, size_t size, void *dst) { + state.read_buf = dst; + return send_blocking_request(BLOCK_DRIVER_ACTION_READ, 0, sector_number, offset, size, 0, NULL); +} + +errval_t block_driver_write_object(uint32_t sector_number, size_t offset, size_t size, const void *src) { + return send_blocking_request(BLOCK_DRIVER_ACTION_WRITE, 0, sector_number, offset, size, size, src); +} + +errval_t block_driver_lock(void) { + return send_blocking_request(BLOCK_DRIVER_ACTION_LOCK, 0, 0, 0, 0, 0, NULL); +} + +errval_t block_driver_unlock(void) { + return send_blocking_request(BLOCK_DRIVER_ACTION_UNLOCK, 0, 0, 0, 0, 0, NULL); +} + +errval_t block_driver_register_handle(uint64_t directory_entry_id) { + return send_blocking_request(BLOCK_DRIVER_ACTION_REGISTER_HANDLE, directory_entry_id, 0, 0, 0, 0, NULL); +} + +errval_t block_driver_unregister_handle(uint64_t directory_entry_id) { + return send_blocking_request(BLOCK_DRIVER_ACTION_UNREGISTER_HANDLE, directory_entry_id, 0, 0, 0, 0, NULL); +} + +errval_t block_driver_count_handles(uint64_t directory_entry_id, size_t *count) { + state.read_buf = count; + return send_blocking_request(BLOCK_DRIVER_ACTION_COUNT_HANDLES, directory_entry_id, 0, 0, 0, 0, NULL); +} diff --git a/lib/spawn/spawn.c b/lib/spawn/spawn.c index 8727794..3fdce19 100644 --- a/lib/spawn/spawn.c +++ b/lib/spawn/spawn.c @@ -509,6 +509,10 @@ errval_t spawn_load_argv(int argc, char *argv[], struct spawninfo *si, arg0_base = IMX8X_ENET_BASE; arg0_size = IMX8X_ENET_SIZE; } + if (strcmp(argv[0], "block_driver_server") == 0) { + arg0_base = IMX8X_SDHC2_BASE; + arg0_size = IMX8X_SDHC_SIZE; + } si->cspace_l2_cnode_argcn = NULL_CNODE; if (arg0_base != 0) { diff --git a/performance/performance_evaluation.py b/performance/performance_evaluation.py index 767c8ca..cf9933b 100644 --- a/performance/performance_evaluation.py +++ b/performance/performance_evaluation.py @@ -67,12 +67,20 @@ def main(): dataset = {} - dataset["performance"] = build_dataseries(measurements, "aos_performance:start", "aos_performance:done") + # dataset["performance"] = build_dataseries(measurements, "aos_performance:start", "aos_performance:done") - dataset["client_to_server"] = build_dataseries(measurements, "aos_urpc_nop:start", "aos_urpc_server:start") - dataset["server_schedule_task"] = build_dataseries(measurements, "aos_urpc_server:start", "aos_urpc_server:triggered_closure") - dataset["server_completed_task"] = build_dataseries(measurements, "aos_urpc_server:triggered_closure", "aos_urpc_server:done") - dataset["server_to_client"] = build_dataseries(measurements, "aos_urpc_server:done", "aos_urpc_nop:done") + # URPC + # dataset["client_to_server"] = build_dataseries(measurements, "aos_urpc_nop:start", "aos_urpc_server:start") + # dataset["server_schedule_task"] = build_dataseries(measurements, "aos_urpc_server:start", "aos_urpc_server:triggered_closure") + # dataset["server_completed_task"] = build_dataseries(measurements, "aos_urpc_server:triggered_closure", "aos_urpc_server:done") + # dataset["server_to_client"] = build_dataseries(measurements, "aos_urpc_server:done", "aos_urpc_nop:done") + + # block driver + dataset["block_driver_read_device"] = build_dataseries(measurements, "block_driver_read_object:start", "block_driver_read_object:memcpy") + dataset["block_driver_read_memcpy"] = build_dataseries(measurements, "block_driver_read_object:memcpy", "block_driver_read_object:done") + dataset["block_driver_write_read"] = build_dataseries(measurements, "block_driver_write_object:start", "block_driver_write_object:read") + dataset["block_driver_write_memcpy"] = build_dataseries(measurements, "block_driver_write_object:read", "block_driver_write_object:memcpy") + dataset["block_driver_write_device"] = build_dataseries(measurements, "block_driver_write_object:memcpy", "block_driver_write_object:done") # calculate stats for each data series metrics = {} diff --git a/performance/plots/archive/block_driver_raw/block_driver_read_device.jpg b/performance/plots/archive/block_driver_raw/block_driver_read_device.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4dd43882150c4b0d4bad6de31a3dd848a57084d7 GIT binary patch literal 31578 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 C{dC_gAukQ3_4YRV8Q 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%0D?^=MD~tXXI_IVN)| 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 lt4yafskN+ literal 0 HcmV?d00001 diff --git a/performance/plots/archive/block_driver_raw/block_driver_write_memcpy.jpg b/performance/plots/archive/block_driver_raw/block_driver_write_memcpy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5600211b96c35b7f2680e5881257fe5e55c0c2f6 GIT binary patch literal 26686 zcmeFZ2|Uzo`#wBUDJ3ZiVJeCU$x@a~DkQg1A?s9<5R-jLrV_GF6v{T)_mQ%1lP$`Y zeK+rM`hPOOnW;zPn!okGM!9=ft!C^3_ZQyDd7yP$BOk0?@ZrjeXV<+n_@B{gK zVOyA(nYV0Z-nMP)R`Ao0!S`WXIkxRPBBio@zwT|8qxPJqpN7Wo5WJ9E$#t!DNl5yR z!?T^N2M%)c@E$uZEOJ6rMpo|3S$TzvmsHi%FKb-6enU^+;HIIG`CW^9miMi!9i5zA zT;1F~yr28{`n~WE2z&K9JR7I*E2UC zopg_uBjXObUW~CkyErR4l%Gb2-Mw$*n>yi+H!lbqYZxr_sud3!9y>c1Fs>{vitr(> zMT}&RDU`pl3N3h3_vZAcbwQj>+_L^F^AS`1m1>os{{C5I{th!rr|DZqUUrFVI}uVR z8{&vevr!gP>mlKmk0;1ztEb0%W9A3mjh&-(W~}tcY$Er$MOXJ7|B&)n0?t*GUqmZZD)~fEOkG{#n=j{xcwlxt`y71dLtnQxUrw2ML z86-b_sB&pCIg>1a?#WInS}B|-XdmNTndxGHc<{cUr1xX9|K0wWvBP|p%Q&%` zA+B#!`K8rb@x+;#`xb3ehFc%>JP^F~@~U);S^mXOmu#YP`jjq)cRAIEJ|IrfVFtEL zItT94VN>z;otuvb_6!R|8d4TgY5pVg+WIS=i|_k19VhJi@plgN$M9KlH?!S0@Hd&J z*yS$aYXwepjN9i(RTxVA)+n$qWcuZvhn#78{RC&&BXOVZey2H`@@OSem{xJ~;3qyy zyiv%|hMZEJ%7~K6S;PDQ7Y4j&mMACdiL*HnRl4f=n)aOqro%j)BeZ;tY$n=86%R`v^*<>TbfWI7aYIoZK5{Q2 zSZi3(-x;%S#-*FBoGO*{#qvzX08fz8=J!HjXxn*#XtZo?MXaN2a!%huqW{n#^eOeJ zvs*Lllq9Zh*Z!^Z>{>k{e_kf=#Sp*RXyYIm>8^JpV7d2N^`}{qE5c7(dqrMc5%eELX zRp>T(d#@utupvs-Ve|dvt+~v?++Wt3V79s@2W!N34y(D9hj<97W#It!1CLCd_j?)*6G5qu&-G>RZ}?&pU<7PKQEB1>K2By zF7bP&#GcHx`QTt=q<(vyy~{W8PtWU*29LvH_P!f~%Y9Sq`anV(d?UiSrDqC^^fC4c zO&_ZI$T%*`9c1U-fq7hq_bR5zFwGJTf=%3v>aMm@w>`2v)_AZlxG6t&t#$$Ivh$sw>>%67O?t=cFRq@MsDa>hr!qUE~g+f$@3ELE*^zW`l>S1LQUaM zh{eQ~oksc7beO--jLls2K+}n#PqfnqA?EY^;+(qYxBXj>>&PSA-rfN)XRd0JxmMR2 zmeqzHs?K6-?=6Fu$RjaY2L(qY{1_JjmXA^!Ze zM2I8X0P-_+gs8oA*m3}DdK%~Wm#_WhCI1J$O?#KjxiiR*np*mucG+z=-l&Z~Ex&pr zMnLV60J}$X?$Q}QnQ6(}ZwHNwNf1MG!2)k{1`SvHCsTjv= zwIjj%;Oqs@qAc+1#wYX(#KIrMggJhZpAwE)y@CG+`{A7Wl&WZP`>_RE5Z1EddH=x4 z$ZPdRr+4&$%j1iCt`|t#uccy@7ObGLKumkn`$9FqQt@i@p+i>`>Kb>La$vgu)6c~*+S)J&w#>|40tcKd?bb6xn*wSlr zK%d+5O)p+q-ZmN4I_nZD_2g@hn^JAH*tR=K!($clmFZ4{%$jYI&bu0RsrruTzSeRY zc|#6STzRMv_h!!UfAAa3ysM+M3VkttxAXdwqFoE*Aam^C`y-L|ip5)3V>)ZNoj=(fF-JNaCx) zc9Bo-DU9*ap}&MyKkwjn`uWRZsL^!97(RJf4R5+C56Ppsz=rHJ7mRK zDOFQfW6D1aDfsTzNxvoNvi0_hsg-PQnP@Rv{lyyr{DqPJe2!nrL)Lzq=WgD9M!>uL z?mtY>TO@TA6g%!2#R-)nmKV6|qg-{51^LCDvo7oGC2JhgiU=McfUdA zw&kmap!bKvg9>Wvg&wjPO?e705q{GW7}7$kY0rx+Ouc>GctzRLH8@tUK)%o5&{M%w z>*>D$_m8?^={W&wTIDqisq7(^PhU5P$_p|0UZ^L*2%W+`8#ZVQvCe-It~ z{9MidXrEhK|G)7z!6W52Pau|}=3>~%V?UsgIVmC66aL6C-A(c$zU*~_v*YcpZT065 z#lGD4@GM_kXa0ZB3)Gdqpin1QSWfUBy!FEL{r0O|DngqujdYQByT#bK?^8lD54>d_ zN*>S63$1fZHBl)xIP~K5(U8-M8(al+*lho_&Fdus^{S@<&dsOTR~Y*G0rCBkqZs=} zvJkpo%9ytz(mjpqk*%vvd-&dG5$Vh<8_IVdppS}diF|?{k0seal`aIz37Z6*>nFs@ zRjMoRcVN&J%+k>mohBv`iul)z@QJ8|_!1qKxN!gQ5GQo|Qs4 zC!(%NeAg6wU$@38rq`<$$}D`l@o}y8tV;9xG;V*CPflmg>~uoW$32NTq)bC!@p~&@ zyXtHCY?!!(aK>v1dnd~Wvre=`bQwID7r|Yx&UtJx`uMtfS%+}>CEpYA?k$Z>^{5Wa z*OC(9JqEYiu?pqS0z}eIiX;TUL^4WVx1f@Tw0QcKKP{ww^EqD3&wi=X*>qnsq`iOE zzHHe~H0zYKky@1fq}}K1X&uGaiU)K}3aLk)M#XQr^LXjy$*n>gq1D4;>H}L^}?7WAE^_ zMfvGFz1CG#x&6nDXKa9@fN&>HX3(a(RaNRT&aTlRZTi!&BOUhGK-)k>=5=W(Pr63k zdtFtoZ9aeHo?tUO3%|9e=RnyNzE9-oKyib8QC#Y#J)6f9uXU@MEdDtL-famG`R^Z5 zKf=wbqni%XCtN(wM~D6S)&CC>WM)5Biv2(utNv)YMNS`~eaaGaE;-Vqz@0^11QfyV zx7F8_JGW`lrZ+VonO-%qphd)~rx-+jETo=XoHvQ});*xyyHe1d+}9{!dnCpwl&fx3 z+Uzc2Mfgj$D>Srew`jX*H4eQ>wiw_5_jb z^s%vEy{(bpA|v7Th$#c{(g z-%Mv(4t8YPL3$nC;-e@cdLQY|MoNF`6D(!A2nz3Ly?(Qn?3H!G>Vzbs70`dfLyR7P zhq7wBw2(3s5r(Bc>_qRx5q4T#gkp7|*L2u^Il?aMIw)oWP8vyGYMWmw2t&*?!)Y*m z{L0)Eg_{m*Sd5&tzH#vVu{4iX6VxWdSYJ< z`pR@>#1dlR!J4sPU9ag1eaYYig`w16;TFO{u)~ zs5=?P{wY33b?a$gmcv2bX6WSugn5sM=snT}Z7b)`)wsjImhx{OoA(lEPi_7!qBWN? z&qK4x$e`6Iqu+kffS?2-H5e?d`0D$F01?=)j}$zmfWqtiGYP)2Aco;&VJ}`f?7e9r z6ks%+8N0+zeT8R3_ek{9VXERzH(=gM{&Ogn3WIlfZ-O;m8yW|9XQ~VANw08#{R$|Cb(x4+5vd}9imP77b({ymp4>P_< z`huawmELHl!$#kjo`J7SjhjPE1qG1{gLGIq8D0IR^3kQp4K#veuBg``y|nV^`>I6T z4&{X>Xrs0z8opOaF{LtyvmgkLYsGdIxi170s?I6HydL?5ba*TuM}&1Ji9XlKI0gH} z6?=1~F0u*Q{yMou0(FcOgU6tq>{+^7Qvpfw27*|F>Cg{(UF!6Ri&z+h9!tol!y+}iiBibVUf6Vp z0FkWV5aaW7nEG<0zpcV{H%sK>hL*X2S(^y>G+{qx!;aX}6b{HSc4^H+~|$$eGQ+YClkpDC9^a)a$MJqT|r8Cy3Wr^ApW7NLp`d>MWhx>6wu zMC_hlBbGU=`^Z5vh1U80L?aV#5>B+`Ny=%GT&?k9ZN+hcXcNptK)}W%=~Xgjq30{w zM0Yr609SYiJwdqs8Z>5ihr!Kv>fm%V1JIm;*I`IFwnt;V=q1SAQ zGP5>xSSBj|-5&H`>b`;EUlJwlPg(VAh9v}qjE){McDIu_b~)Z(^NU~s*Nxp_8q*?M zuKaxWtU=)#UYCNq2iPB0!tS*7HSE3R!6otT)CNzs@IPNgO!8BkmL+u%gY9E*(z;DL z&iE?1LeNHiv*0~u&Zw==44Wa9S@syM=FsQYa6BggL}qh2Q~$hV6CL)UJKZ4K+Qp7= z@cS5ic4}qe@|s8x6CGBk<)LNc@1fp=q-+MgZ!jb)qLJ9C{X zP7iTC=15g$Vm5LqGLsq_07(;((QwAw)QRVy6G`pW2Byq;-w+i*A2$L?v0S%c>l8gg zhe?#YmeAgmKTL;RnYA&T+kw{ukzOg4nlxSx2j6DESbfj0;Qj086L~pA>BYmJ?;A#X}E z0oS?wdt|eSBbt^KzM)-z1GgenO3fb%9?RkANAJ$uI*S-Si|X=T^}GiE4m7(>eSbz# z|1@}DQR^<{Lj^kAnOL}iHjasP$Cp!X&fZT57+0wJD+&5Hh|gbv#U!;RQ?p^wuP;mP z=tboo0!PZE=m#<7gT;M^LTF-{2~W-Gj8p z6}_H5b(RMQI=DsIEjhNhSzd>Pz1KPq--4zZgE8Z(*6ly46wDCT6?!-c3W?FgF{L1-k`+A2|wF z-c^QNRJzDW24}7Y&+}7N6X2=SYf!}SFT#&|y4ynVR zy}F^qk6K6Vu(BWHd4iy=t)h*F*s7w#hUV5z#oU+`DbE6xwaX__HQp+r`9xB*M4L>Q z`N>8HEwdsY3ESjnzkLs9l{>eiGF>FgB-*pZQI9iHv}Zh<%HwKf7qJcX4F}DVz>Wr=d)#MnrCM)s zGMVxN3+{*2&1bK8-zd9LS|*&yPH}z-UD47UnIw#4pD2GYiXaWA%FAEZ+Tc7Iub14@ z2FgD(=$}NGBm5>wSO;`zGAL&CZxhXEgkY-V;o(;fegh9U4XK2E`GU0m9d*#TC?%~G zQgqegjN?(rS}fbs3hhd?6eJyjHfBRoiuoTPX9WOrv|ZDT=Ju+xG-u)w_7cP4j2Efb z5Z~`J0N_JnBI-+2SLd<81h!)+BA$<5Voa~3qVScrG)5`pP-7kZ2_n{otHHz*zyCqY z2C)wLWz|%REC1udvw#ma9|6_OmHUHA|EzMUKe^#Qm34n@)foT&*W0yX)E>vt7EXND z66On=vuuMK61&&!Egd$qtUjKfjd;eWjOokO-9*bj3JVhmLl*G_&p4%J1((~_)etQT zRE72m?H7GtLF3eRfLa7vi0oxaRWf%g37JXl`H?maZX2=tIuZECtbmJl0!bQVJTdC&?+*#Rluq7l zpg4vh7+L8HLT33Q=7O}CFmy7wki1l`Ng#`J&*^J_@rwVwnr=tEFhKj}>#co!gC6ru zSo&zU6c>h`X_F$0aM>7`Qp72g{(8i6`wb=D{xWznmU4?_q84njLX_ShIaiE#DQB zGhMAi_7a?)+FW;(oM-|svj$CV4f`JWVx0p%>|RNf=saAz(?>GE3!eaD^Ou|WzfXYf zbWA6O(wvVY>kY1(6neWy*J#gWHX}~zzb74Ap*C7lFH`9-!Svr70tV+~j_@8QVV&@+ z?V9@3B!J=#nk$|vok^dc2{-Qf@)N zvDv7TLf6#v=rA8iHM^?*k>K(h@HVU-ah;ITSC}P&R?!zbQ=GscMi>8p0}!(EwrHB* zXD{BoS&o$0@`9WON;g<8)suP^(8%`RsBf`UvGi=~>4dT%E9-HvCd%gX?x3gyj5R(WNvNufWR zVOG_(e~)k$@psgrGt1ZMuzYKTNRz7gdPA8XoXNO1cVR+A-!lBMzp!1Czn$Lu(VPOYNBj7!q*F% zA)CH@v72~1hgu=Klu3sbI^bjOFzz`3=g4aI8Rw&r4FFB$9Ued!p*pV7_A+(|h*UrO z>wmqM{*`-z7OJ!#&1p7NqMBvZ_uICf^P&B;1S?K7$30ONZp8~Rmg(>IgeAtg&1X*( zy)CHSchKeYL)aH3{XI|ZGruUF>??Sc)sueLCR1-EDY$OwgRcdu=`v9^H~n$+rs(Q? z$hGczw7lQlK39QrAJ20-q4v*2ZL$NlTJYgbO{P%S{;HrCNgF+oQS|O_l7_ z5Kqy2?^=BYw2$+nSZ%cf*LLOEL=^k>;3^MvKbSXPWqU&8`BdxN_a9JYfxsnS*oEEf zD+l55jnNH#ikUH3q|K{2QUbaV)sgj|(KVPx2B-Zyf1k*KwEcNC(OzHms3DBk7?PD9 zkEB2plhkpBWR#xw7@=>jIf~7h{t=fU#n}ViBnlodDP9_AO^b%>+HIyLH9imE}|PjxcpqZSOn=&-SgYp z3tFP!7fv!lb=zle1+>FD1EVtm?_)Is$rQP44!VSkf1nU^#8RQchCjB8C^??zsWMiD zqr(Q`jx#u=0LPT>vLI#F4srN|*O4I7QEEuW9R`r3qs!DMD0~=N9}>|qD;BZT(lm

VC2iT9tPd)bPPq_;=MP;VLgchrj>$|{w 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