diff --git a/README.md b/README.md index fadba063..ca90f791 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Tutorial (in german language): https://www.heise.de/select/make/2019/1/1551099236518668 -**#36C3 attendees: i am on site (27th - 30th)! You might contact me via twitter @RecumbentTravel** + @@ -33,12 +33,15 @@ This can all be done with a single small and cheap ESP32 board for less than $20 *LoRa & SPI*: - Heltec: LoRa-32 v1 and v2 -- TTGO: T1*, T2*, T3*, T-Beam, T-Fox (* supports microSD-card) +- TTGO: T1*, T2*, T3*, T-Beam, T-Fox - Pycom: LoPy, LoPy4, FiPy - Radioshuttle.de: [ECO Power Board](https://www.radioshuttle.de/esp32-eco-power/esp32-eco-power-board/) -- WeMos: LoLin32 + [LoraNode32 shield](https://github.com/hallard/LoLin32-Lora), +- WeMos: LoLin32 + [LoraNode32 shield](https://github.com/hallard/LoLin32-Lora), LoLin32lite + [LoraNode32-Lite shield](https://github.com/hallard/LoLin32-Lite-Lora) - Adafruit ESP32 Feather + LoRa Wing + OLED Wing, #IoT Octopus32 (Octopus + ESP32 Feather) +- M5Stack: [Basic Core IoT*](https://m5stack.com/collections/m5-core/products/basic-core-iot-development-kit) + [Lora Module RA-01H](https://m5stack.com/collections/m5-module/products/lora-module-868mhz), [Fire IoT*](https://m5stack.com/collections/m5-core/products/fire-iot-development-kit) + +*) supports microSD-card *SPI only*: diff --git a/include/bmesensor.h b/include/bmesensor.h index eedb5e79..b73a712a 100644 --- a/include/bmesensor.h +++ b/include/bmesensor.h @@ -5,7 +5,7 @@ #include #ifdef HAS_BME680 -#include "../lib/Bosch-BSEC/src/bsec.h" +#include #elif defined HAS_BME280 #include #include diff --git a/include/display.h b/include/display.h index 4d280500..4091f0a9 100644 --- a/include/display.h +++ b/include/display.h @@ -9,7 +9,7 @@ extern uint8_t DisplayIsOn, displaybuf[]; void refreshTheDisplay(bool nextPage = false); void init_display(bool verbose = false); void shutdown_display(void); -void draw_page(time_t t, uint8_t page); +void draw_page(time_t t, bool nextpage); void dp_printf(uint16_t x, uint16_t y, uint8_t font, uint8_t inv, const char *format, ...); void dp_printqr(uint16_t offset_x, uint16_t offset_y, const char *Message); diff --git a/include/globals.h b/include/globals.h index 43902886..41002c32 100644 --- a/include/globals.h +++ b/include/globals.h @@ -15,7 +15,7 @@ #include #include #include "mallocator.h" -#include "../lib/Bosch-BSEC/src/inc/bsec_datatypes.h" +#include // sniffing types #define MAC_SNIFF_WIFI 0 diff --git a/include/spislave.h b/include/spislave.h index 0d85a09e..cf1db7a3 100644 --- a/include/spislave.h +++ b/include/spislave.h @@ -28,6 +28,8 @@ licenses. Refer to LICENSE.txt file in repository for more details. esp_err_t spi_init(); +extern TaskHandle_t spiTask; + void spi_enqueuedata(MessageBuffer_t *message); void spi_queuereset(); diff --git a/lib/Bosch-BSEC/LICENSE b/lib/Bosch-BSEC/LICENSE deleted file mode 100644 index ab7a8c8b..00000000 --- a/lib/Bosch-BSEC/LICENSE +++ /dev/null @@ -1,39 +0,0 @@ -Copyright (C) 2017 - 2018 Bosch Sensortec GmbH - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of the -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -CONTRIBUTORS "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER -OR CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, -OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE - -The information provided is believed to be accurate and reliable. -The copyright holder assumes no responsibility -for the consequences of use -of such information nor for any infringement of patents or -other rights of third parties which may result from its use. -No license is granted by implication or otherwise under any patent or -patent rights of the copyright holder. \ No newline at end of file diff --git a/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_iaq.config b/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_iaq.config deleted file mode 100644 index ba71808c..00000000 Binary files a/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_iaq.config and /dev/null differ diff --git a/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_iaq.csv b/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_iaq.csv deleted file mode 100644 index 25f389c8..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_iaq.csv +++ /dev/null @@ -1 +0,0 @@ -454,4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,168,19,73,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,48,117,0,0,0,0,133,135,0,0 diff --git a/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_serialized_configurations_iaq.c b/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_serialized_configurations_iaq.c deleted file mode 100644 index 2578ade4..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_serialized_configurations_iaq.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "bsec_serialized_configurations_iaq.h" - -const uint8_t bsec_config_iaq[454] = - {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,168,19,73,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,48,117,0,0,0,0,133,135,0,0}; - diff --git a/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_serialized_configurations_iaq.h b/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_serialized_configurations_iaq.h deleted file mode 100644 index 1986e2be..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_300s_28d/bsec_serialized_configurations_iaq.h +++ /dev/null @@ -1,4 +0,0 @@ -#include - -extern const uint8_t bsec_config_iaq[454]; - diff --git a/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_iaq.config b/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_iaq.config deleted file mode 100644 index 255edea3..00000000 Binary files a/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_iaq.config and /dev/null differ diff --git a/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_iaq.csv b/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_iaq.csv deleted file mode 100644 index ec45f853..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_iaq.csv +++ /dev/null @@ -1 +0,0 @@ -454,4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,48,117,0,0,0,0,166,224,0,0 diff --git a/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_serialized_configurations_iaq.c b/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_serialized_configurations_iaq.c deleted file mode 100644 index 7a1b214f..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_serialized_configurations_iaq.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "bsec_serialized_configurations_iaq.h" - -const uint8_t bsec_config_iaq[454] = - {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,48,117,0,0,0,0,166,224,0,0}; - diff --git a/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_serialized_configurations_iaq.h b/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_serialized_configurations_iaq.h deleted file mode 100644 index 1986e2be..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_300s_4d/bsec_serialized_configurations_iaq.h +++ /dev/null @@ -1,4 +0,0 @@ -#include - -extern const uint8_t bsec_config_iaq[454]; - diff --git a/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_iaq.config b/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_iaq.config deleted file mode 100644 index 0d0f06dc..00000000 Binary files a/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_iaq.config and /dev/null differ diff --git a/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_iaq.csv b/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_iaq.csv deleted file mode 100644 index 84c7e00f..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_iaq.csv +++ /dev/null @@ -1 +0,0 @@ -454,4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,168,19,73,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,23,142,0,0 diff --git a/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_serialized_configurations_iaq.c b/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_serialized_configurations_iaq.c deleted file mode 100644 index 922c4fce..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_serialized_configurations_iaq.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "bsec_serialized_configurations_iaq.h" - -const uint8_t bsec_config_iaq[454] = - {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,168,19,73,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,23,142,0,0}; - diff --git a/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_serialized_configurations_iaq.h b/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_serialized_configurations_iaq.h deleted file mode 100644 index 1986e2be..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_3s_28d/bsec_serialized_configurations_iaq.h +++ /dev/null @@ -1,4 +0,0 @@ -#include - -extern const uint8_t bsec_config_iaq[454]; - diff --git a/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_iaq.config b/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_iaq.config deleted file mode 100644 index 565ed67f..00000000 Binary files a/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_iaq.config and /dev/null differ diff --git a/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_iaq.csv b/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_iaq.csv deleted file mode 100644 index 9b52849a..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_iaq.csv +++ /dev/null @@ -1 +0,0 @@ -454,4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,52,233,0,0 diff --git a/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_serialized_configurations_iaq.c b/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_serialized_configurations_iaq.c deleted file mode 100644 index 62fc60ef..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_serialized_configurations_iaq.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "bsec_serialized_configurations_iaq.h" - -const uint8_t bsec_config_iaq[454] = - {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,7,240,150,61,0,0,0,0,0,0,0,0,28,124,225,61,52,128,215,63,0,0,160,64,0,0,0,0,0,0,0,0,205,204,12,62,103,213,39,62,230,63,76,192,0,0,0,0,0,0,0,0,145,237,60,191,251,58,64,63,177,80,131,64,0,0,0,0,0,0,0,0,93,254,227,62,54,60,133,191,0,0,64,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,52,233,0,0}; - diff --git a/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_serialized_configurations_iaq.h b/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_serialized_configurations_iaq.h deleted file mode 100644 index 1986e2be..00000000 --- a/lib/Bosch-BSEC/config/generic_18v_3s_4d/bsec_serialized_configurations_iaq.h +++ /dev/null @@ -1,4 +0,0 @@ -#include - -extern const uint8_t bsec_config_iaq[454]; - diff --git a/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_iaq.config b/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_iaq.config deleted file mode 100644 index 96fe3234..00000000 Binary files a/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_iaq.config and /dev/null differ diff --git a/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_iaq.csv b/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_iaq.csv deleted file mode 100644 index beb23ae1..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_iaq.csv +++ /dev/null @@ -1 +0,0 @@ -454,4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,168,19,73,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,229,208,34,62,0,0,0,0,0,0,0,0,218,27,156,62,225,11,67,64,0,0,160,64,0,0,0,0,0,0,0,0,94,75,72,189,93,254,159,64,66,62,160,191,0,0,0,0,0,0,0,0,33,31,180,190,138,176,97,64,65,241,99,190,0,0,0,0,0,0,0,0,167,121,71,61,165,189,41,192,184,30,189,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,48,117,0,0,0,0,59,62,0,0 diff --git a/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_serialized_configurations_iaq.c b/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_serialized_configurations_iaq.c deleted file mode 100644 index 17206d19..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_serialized_configurations_iaq.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "bsec_serialized_configurations_iaq.h" - -const uint8_t bsec_config_iaq[454] = - {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,168,19,73,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,229,208,34,62,0,0,0,0,0,0,0,0,218,27,156,62,225,11,67,64,0,0,160,64,0,0,0,0,0,0,0,0,94,75,72,189,93,254,159,64,66,62,160,191,0,0,0,0,0,0,0,0,33,31,180,190,138,176,97,64,65,241,99,190,0,0,0,0,0,0,0,0,167,121,71,61,165,189,41,192,184,30,189,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,48,117,0,0,0,0,59,62,0,0}; - diff --git a/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_serialized_configurations_iaq.h b/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_serialized_configurations_iaq.h deleted file mode 100644 index 1986e2be..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_300s_28d/bsec_serialized_configurations_iaq.h +++ /dev/null @@ -1,4 +0,0 @@ -#include - -extern const uint8_t bsec_config_iaq[454]; - diff --git a/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_iaq.config b/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_iaq.config deleted file mode 100644 index 7d181b0c..00000000 Binary files a/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_iaq.config and /dev/null differ diff --git a/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_iaq.csv b/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_iaq.csv deleted file mode 100644 index 2e17310e..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_iaq.csv +++ /dev/null @@ -1 +0,0 @@ -454,4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,229,208,34,62,0,0,0,0,0,0,0,0,218,27,156,62,225,11,67,64,0,0,160,64,0,0,0,0,0,0,0,0,94,75,72,189,93,254,159,64,66,62,160,191,0,0,0,0,0,0,0,0,33,31,180,190,138,176,97,64,65,241,99,190,0,0,0,0,0,0,0,0,167,121,71,61,165,189,41,192,184,30,189,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,48,117,0,0,0,0,24,89,0,0 diff --git a/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_serialized_configurations_iaq.c b/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_serialized_configurations_iaq.c deleted file mode 100644 index a146e676..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_serialized_configurations_iaq.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "bsec_serialized_configurations_iaq.h" - -const uint8_t bsec_config_iaq[454] = - {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,229,208,34,62,0,0,0,0,0,0,0,0,218,27,156,62,225,11,67,64,0,0,160,64,0,0,0,0,0,0,0,0,94,75,72,189,93,254,159,64,66,62,160,191,0,0,0,0,0,0,0,0,33,31,180,190,138,176,97,64,65,241,99,190,0,0,0,0,0,0,0,0,167,121,71,61,165,189,41,192,184,30,189,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,48,117,0,0,0,0,24,89,0,0}; - diff --git a/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_serialized_configurations_iaq.h b/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_serialized_configurations_iaq.h deleted file mode 100644 index 1986e2be..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_300s_4d/bsec_serialized_configurations_iaq.h +++ /dev/null @@ -1,4 +0,0 @@ -#include - -extern const uint8_t bsec_config_iaq[454]; - diff --git a/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_iaq.config b/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_iaq.config deleted file mode 100644 index 82a58c27..00000000 Binary files a/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_iaq.config and /dev/null differ diff --git a/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_iaq.csv b/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_iaq.csv deleted file mode 100644 index becd5d76..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_iaq.csv +++ /dev/null @@ -1 +0,0 @@ -454,4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,168,19,73,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,229,208,34,62,0,0,0,0,0,0,0,0,218,27,156,62,225,11,67,64,0,0,160,64,0,0,0,0,0,0,0,0,94,75,72,189,93,254,159,64,66,62,160,191,0,0,0,0,0,0,0,0,33,31,180,190,138,176,97,64,65,241,99,190,0,0,0,0,0,0,0,0,167,121,71,61,165,189,41,192,184,30,189,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,169,55,0,0 diff --git a/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_serialized_configurations_iaq.c b/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_serialized_configurations_iaq.c deleted file mode 100644 index 4a76a130..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_serialized_configurations_iaq.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "bsec_serialized_configurations_iaq.h" - -const uint8_t bsec_config_iaq[454] = - {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,168,19,73,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,229,208,34,62,0,0,0,0,0,0,0,0,218,27,156,62,225,11,67,64,0,0,160,64,0,0,0,0,0,0,0,0,94,75,72,189,93,254,159,64,66,62,160,191,0,0,0,0,0,0,0,0,33,31,180,190,138,176,97,64,65,241,99,190,0,0,0,0,0,0,0,0,167,121,71,61,165,189,41,192,184,30,189,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,169,55,0,0}; - diff --git a/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_serialized_configurations_iaq.h b/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_serialized_configurations_iaq.h deleted file mode 100644 index 1986e2be..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_3s_28d/bsec_serialized_configurations_iaq.h +++ /dev/null @@ -1,4 +0,0 @@ -#include - -extern const uint8_t bsec_config_iaq[454]; - diff --git a/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_iaq.config b/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_iaq.config deleted file mode 100644 index 4ebfbd45..00000000 Binary files a/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_iaq.config and /dev/null differ diff --git a/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_iaq.csv b/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_iaq.csv deleted file mode 100644 index 687e6fb3..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_iaq.csv +++ /dev/null @@ -1 +0,0 @@ -454,4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,229,208,34,62,0,0,0,0,0,0,0,0,218,27,156,62,225,11,67,64,0,0,160,64,0,0,0,0,0,0,0,0,94,75,72,189,93,254,159,64,66,62,160,191,0,0,0,0,0,0,0,0,33,31,180,190,138,176,97,64,65,241,99,190,0,0,0,0,0,0,0,0,167,121,71,61,165,189,41,192,184,30,189,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,138,80,0,0 diff --git a/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_serialized_configurations_iaq.c b/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_serialized_configurations_iaq.c deleted file mode 100644 index d53ae58a..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_serialized_configurations_iaq.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "bsec_serialized_configurations_iaq.h" - -const uint8_t bsec_config_iaq[454] = - {4,7,4,1,61,0,0,0,0,0,0,0,174,1,0,0,48,0,1,0,0,192,168,71,64,49,119,76,0,0,225,68,137,65,0,63,205,204,204,62,0,0,64,63,205,204,204,62,0,0,0,0,216,85,0,100,0,0,0,0,0,0,0,0,28,0,2,0,0,244,1,225,0,25,0,0,128,64,0,0,32,65,144,1,0,0,112,65,0,0,0,63,16,0,3,0,10,215,163,60,10,215,35,59,10,215,35,59,9,0,5,0,0,0,0,0,1,88,0,9,0,229,208,34,62,0,0,0,0,0,0,0,0,218,27,156,62,225,11,67,64,0,0,160,64,0,0,0,0,0,0,0,0,94,75,72,189,93,254,159,64,66,62,160,191,0,0,0,0,0,0,0,0,33,31,180,190,138,176,97,64,65,241,99,190,0,0,0,0,0,0,0,0,167,121,71,61,165,189,41,192,184,30,189,64,12,0,10,0,0,0,0,0,0,0,0,0,229,0,254,0,2,1,5,48,117,100,0,44,1,112,23,151,7,132,3,197,0,92,4,144,1,64,1,64,1,144,1,48,117,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,48,117,48,117,100,0,100,0,100,0,100,0,48,117,48,117,48,117,100,0,100,0,100,0,48,117,48,117,100,0,100,0,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,112,23,255,255,255,255,255,255,255,255,220,5,220,5,220,5,255,255,255,255,255,255,220,5,220,5,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,44,1,0,0,0,0,138,80,0,0}; - diff --git a/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_serialized_configurations_iaq.h b/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_serialized_configurations_iaq.h deleted file mode 100644 index 1986e2be..00000000 --- a/lib/Bosch-BSEC/config/generic_33v_3s_4d/bsec_serialized_configurations_iaq.h +++ /dev/null @@ -1,4 +0,0 @@ -#include - -extern const uint8_t bsec_config_iaq[454]; - diff --git a/lib/Bosch-BSEC/docs/BSEC_release_note_1.4.7.4.pdf b/lib/Bosch-BSEC/docs/BSEC_release_note_1.4.7.4.pdf deleted file mode 100644 index e7242e68..00000000 Binary files a/lib/Bosch-BSEC/docs/BSEC_release_note_1.4.7.4.pdf and /dev/null differ diff --git a/lib/Bosch-BSEC/docs/BST-BME680-Integration-Guide-AN008-47.pdf b/lib/Bosch-BSEC/docs/BST-BME680-Integration-Guide-AN008-47.pdf deleted file mode 100644 index 49804ef1..00000000 --- a/lib/Bosch-BSEC/docs/BST-BME680-Integration-Guide-AN008-47.pdf +++ /dev/null @@ -1,17895 +0,0 @@ -%PDF-1.7 -% -4 0 obj -<< /S /GoTo /D (chapter.1) >> -endobj -7 0 obj -(\376\377\000B\000S\000E\000C\000\040\000I\000n\000t\000e\000g\000r\000a\000t\000i\000o\000n\000\040\000G\000u\000i\000d\000e\000l\000i\000n\000e) -endobj -8 0 obj -<< /S /GoTo /D (section.1.1) >> -endobj -11 0 obj -(\376\377\000O\000v\000e\000r\000v\000i\000e\000w\000\040\000o\000f\000\040\000B\000M\000E\000\040\000F\000a\000m\000i\000l\000y\000\040\000S\000e\000n\000s\000o\000r\000s) -endobj -12 0 obj -<< /S /GoTo /D (section.1.2) >> -endobj -15 0 obj -(\376\377\000T\000h\000e\000\040\000E\000n\000v\000i\000r\000o\000n\000m\000e\000n\000t\000a\000l\000\040\000F\000u\000s\000i\000o\000n\000\040\000L\000i\000b\000r\000a\000r\000y\000\040\000B\000S\000E\000C) -endobj -16 0 obj -<< /S /GoTo /D (subsection.1.2.1) >> -endobj -19 0 obj -(\376\377\000B\000S\000E\000C\000\040\000L\000i\000b\000r\000a\000r\000y\000\040\000S\000o\000l\000u\000t\000i\000o\000n\000s) -endobj -20 0 obj -<< /S /GoTo /D (subsection.1.2.2) >> -endobj -23 0 obj -(\376\377\000B\000S\000E\000C\000\040\000C\000o\000n\000f\000i\000g\000u\000r\000a\000t\000i\000o\000n\000\040\000S\000e\000t\000t\000i\000n\000g\000s) -endobj -24 0 obj -<< /S /GoTo /D (subsection.1.2.3) >> -endobj -27 0 obj -(\376\377\000K\000e\000y\000\040\000F\000e\000a\000t\000u\000r\000e\000s) -endobj -28 0 obj -<< /S /GoTo /D (subsection.1.2.4) >> -endobj -31 0 obj -(\376\377\000S\000u\000p\000p\000o\000r\000t\000e\000d\000\040\000V\000i\000r\000t\000u\000a\000l\000\040\000S\000e\000n\000s\000o\000r\000\040\000O\000u\000t\000p\000u\000t\000\040\000S\000i\000g\000n\000a\000l\000s) -endobj -32 0 obj -<< /S /GoTo /D (section.1.3) >> -endobj -35 0 obj -(\376\377\000R\000e\000q\000u\000i\000r\000e\000m\000e\000n\000t\000s\000\040\000f\000o\000r\000\040\000I\000n\000t\000e\000g\000r\000a\000t\000i\000o\000n) -endobj -36 0 obj -<< /S /GoTo /D (subsection.1.3.1) >> -endobj -39 0 obj -(\376\377\000H\000a\000r\000d\000w\000a\000r\000e) -endobj -40 0 obj -<< /S /GoTo /D (subsection.1.3.2) >> -endobj -43 0 obj -(\376\377\000S\000o\000f\000t\000w\000a\000r\000e\000\040\000F\000r\000a\000m\000e\000w\000o\000r\000k) -endobj -44 0 obj -<< /S /GoTo /D (subsection.1.3.3) >> -endobj -47 0 obj -(\376\377\000P\000h\000y\000s\000i\000c\000a\000l\000\040\000I\000n\000p\000u\000t\000\040\000S\000e\000n\000s\000o\000r\000\040\000S\000i\000g\000n\000a\000l\000s) -endobj -48 0 obj -<< /S /GoTo /D (subsection.1.3.4) >> -endobj -51 0 obj -(\376\377\000B\000u\000i\000l\000d\000\040\000t\000h\000e\000\040\000S\000o\000l\000u\000t\000i\000o\000n) -endobj -52 0 obj -<< /S /GoTo /D (chapter.2) >> -endobj -55 0 obj -(\376\377\000B\000S\000E\000C\000\040\000S\000t\000e\000p\000-\000b\000y\000-\000s\000t\000e\000p\000\040\000E\000x\000a\000m\000p\000l\000e) -endobj -56 0 obj -<< /S /GoTo /D (section.2.1) >> -endobj -59 0 obj -(\376\377\000P\000r\000e\000r\000e\000q\000u\000i\000s\000i\000t\000e\000s) -endobj -60 0 obj -<< /S /GoTo /D (section.2.2) >> -endobj -63 0 obj -(\376\377\000S\000e\000t\000t\000i\000n\000g\000\040\000E\000v\000e\000r\000y\000t\000h\000i\000n\000g\000\040\000U\000p) -endobj -64 0 obj -<< /S /GoTo /D (section.2.3) >> -endobj -67 0 obj -(\376\377\000T\000h\000e\000\040\000E\000x\000a\000m\000p\000l\000e\000\040\000C\000o\000d\000e) -endobj -68 0 obj -<< /S /GoTo /D (section.2.4) >> -endobj -71 0 obj -(\376\377\000H\000e\000l\000l\000o\000\040\000`\000\250\000I\000n\000d\000o\000o\000r\000-\000A\000i\000r\000-\000Q\000u\000a\000l\000i\000t\000y\000`\000\250) -endobj -72 0 obj -<< /S /GoTo /D (section.2.5) >> -endobj -75 0 obj -(\376\377\000R\000e\000d\000u\000c\000i\000n\000g\000\040\000p\000o\000w\000e\000r\000\040\000c\000o\000n\000s\000u\000m\000p\000t\000i\000o\000n) -endobj -76 0 obj -<< /S /GoTo /D (section.2.6) >> -endobj -79 0 obj -(\376\377\000T\000r\000i\000g\000g\000e\000r\000\040\000U\000L\000P\000\040\000p\000l\000u\000s) -endobj -80 0 obj -<< /S /GoTo /D (section.2.7) >> -endobj -83 0 obj -(\376\377\000T\000e\000m\000p\000e\000r\000a\000t\000u\000r\000e\000\040\000o\000f\000f\000s\000e\000t\000s\000\040\000d\000u\000e\000\040\000t\000o\000\040\000h\000e\000a\000t\000\040\000s\000o\000u\000r\000c\000e\000s\000\040\000o\000n\000\040\000t\000h\000e\000\040\000b\000o\000a\000r\000d) -endobj -84 0 obj -<< /S /GoTo /D (section.2.8) >> -endobj -87 0 obj -(\376\377\000S\000i\000m\000u\000l\000a\000t\000e\000\040\000m\000u\000l\000t\000i\000p\000l\000e\000\040\000s\000e\000n\000s\000o\000r\000s\000\040\000u\000s\000i\000n\000g\000\040\000s\000i\000n\000g\000l\000e\000\040\000B\000S\000E\000C\000\040\000i\000n\000s\000t\000a\000n\000c\000e) -endobj -88 0 obj -<< /S /GoTo /D (section.2.9) >> -endobj -91 0 obj -(\376\377\000Q\000u\000i\000c\000k\000\040\000U\000l\000t\000r\000a\000-\000l\000o\000w\000\040\000P\000o\000w\000e\000r\000\040\000m\000o\000d\000e\000\040\000\050\000q\000-\000U\000L\000P\000\051) -endobj -92 0 obj -<< /S /GoTo /D (section.2.10) >> -endobj -95 0 obj -(\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n) -endobj -96 0 obj -<< /S /GoTo /D (chapter.3) >> -endobj -99 0 obj -(\376\377\000F\000A\000Q) -endobj -100 0 obj -<< /S /GoTo /D (section.3.1) >> -endobj -103 0 obj -(\376\377\000N\000o\000\040\000O\000u\000t\000p\000u\000t\000\040\000F\000r\000o\000m\000\040\000b\000s\000e\000c\000\137\000d\000o\000\137\000s\000t\000e\000p\000s\000\050\000\051) -endobj -104 0 obj -<< /S /GoTo /D (section.3.2) >> -endobj -107 0 obj -(\376\377\000I\000A\000Q\000\040\000o\000u\000t\000p\000u\000t\000\040\000d\000o\000e\000s\000\040\000n\000o\000t\000\040\000c\000h\000a\000n\000g\000e\000\040\000o\000r\000\040\000a\000c\000c\000u\000r\000a\000c\000y\000\040\000r\000e\000m\000a\000i\000n\000s\000\040\0000) -endobj -108 0 obj -<< /S /GoTo /D (section.3.3) >> -endobj -111 0 obj -(\376\377\000E\000r\000r\000o\000r\000\040\000C\000o\000d\000e\000s\000\040\000a\000n\000d\000\040\000C\000o\000r\000r\000e\000c\000t\000i\000v\000e\000\040\000M\000e\000a\000s\000u\000r\000e\000s) -endobj -112 0 obj -<< /S /GoTo /D (subsection.3.3.1) >> -endobj -115 0 obj -(\376\377\000E\000r\000r\000o\000r\000s\000\040\000R\000e\000t\000u\000r\000n\000e\000d\000\040\000b\000y\000\040\000b\000s\000e\000c\000\137\000d\000o\000\137\000s\000t\000e\000p\000s\000\050\000\051) -endobj -116 0 obj -<< /S /GoTo /D (subsection.3.3.2) >> -endobj -119 0 obj -(\376\377\000E\000r\000r\000o\000r\000s\000\040\000R\000e\000t\000u\000r\000n\000e\000d\000\040\000b\000y\000\040\000b\000s\000e\000c\000\137\000u\000p\000d\000a\000t\000e\000\137\000s\000u\000b\000s\000c\000r\000i\000p\000t\000i\000o\000n\000\050\000\051) -endobj -120 0 obj -<< /S /GoTo /D (subsection.3.3.3) >> -endobj -123 0 obj -(\376\377\000E\000r\000r\000o\000r\000s\000\040\000R\000e\000t\000u\000r\000n\000e\000d\000\040\000b\000y\000\040\000b\000s\000e\000c\000\137\000s\000e\000t\000\137\000c\000o\000n\000f\000i\000g\000u\000r\000a\000t\000i\000o\000n\000\050\000\051\000\040\000/\000\040\000b\000s\000e\000c\000\137\000s\000e\000t\000\137\000s\000t\000a\000t\000e\000\050\000\051) -endobj -124 0 obj -<< /S /GoTo /D (subsection.3.3.4) >> -endobj -127 0 obj -(\376\377\000E\000r\000r\000o\000r\000s\000\040\000R\000e\000t\000u\000r\000n\000e\000d\000\040\000b\000y\000\040\000b\000s\000e\000c\000\137\000s\000e\000n\000s\000o\000r\000\137\000c\000o\000n\000t\000r\000o\000l\000\050\000\051) -endobj -128 0 obj -<< /S /GoTo /D (chapter.4) >> -endobj -131 0 obj -(\376\377\000M\000o\000d\000u\000l\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) -endobj -132 0 obj -<< /S /GoTo /D (section.4.1) >> -endobj -135 0 obj -(\376\377\000B\000S\000E\000C\000\040\000C\000\040\000I\000n\000t\000e\000r\000f\000a\000c\000e) -endobj -136 0 obj -<< /S /GoTo /D (subsection.4.1.1) >> -endobj -139 0 obj -(\376\377\000I\000n\000t\000e\000r\000f\000a\000c\000e\000\040\000U\000s\000a\000g\000e) -endobj -140 0 obj -<< /S /GoTo /D (subsection.4.1.2) >> -endobj -143 0 obj -(\376\377\000I\000n\000t\000e\000r\000f\000a\000c\000e\000\040\000F\000u\000n\000c\000t\000i\000o\000n\000s) -endobj -144 0 obj -<< /S /GoTo /D (subsection.4.1.3) >> -endobj -147 0 obj -(\376\377\000E\000n\000u\000m\000e\000r\000a\000t\000i\000o\000n\000s) -endobj -148 0 obj -<< /S /GoTo /D (subsection.4.1.4) >> -endobj -151 0 obj -(\376\377\000D\000e\000f\000i\000n\000e\000s) -endobj -152 0 obj -<< /S /GoTo /D (chapter.5) >> -endobj -155 0 obj -(\376\377\000D\000a\000t\000a\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) -endobj -156 0 obj -<< /S /GoTo /D (section.5.1) >> -endobj -159 0 obj -(\376\377\000b\000s\000e\000c\000\137\000b\000m\000e\000\137\000s\000e\000t\000t\000i\000n\000g\000s\000\137\000t\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) -endobj -160 0 obj -<< /S /GoTo /D (subsection.5.1.1) >> -endobj -163 0 obj -(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) -endobj -164 0 obj -<< /S /GoTo /D (subsection.5.1.2) >> -endobj -167 0 obj -(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) -endobj -168 0 obj -<< /S /GoTo /D (section.5.2) >> -endobj -171 0 obj -(\376\377\000b\000s\000e\000c\000\137\000i\000n\000p\000u\000t\000\137\000t\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) -endobj -172 0 obj -<< /S /GoTo /D (subsection.5.2.1) >> -endobj -175 0 obj -(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) -endobj -176 0 obj -<< /S /GoTo /D (subsection.5.2.2) >> -endobj -179 0 obj -(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) -endobj -180 0 obj -<< /S /GoTo /D (section.5.3) >> -endobj -183 0 obj -(\376\377\000b\000s\000e\000c\000\137\000o\000u\000t\000p\000u\000t\000\137\000t\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) -endobj -184 0 obj -<< /S /GoTo /D (subsection.5.3.1) >> -endobj -187 0 obj -(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) -endobj -188 0 obj -<< /S /GoTo /D (subsection.5.3.2) >> -endobj -191 0 obj -(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) -endobj -192 0 obj -<< /S /GoTo /D (section.5.4) >> -endobj -195 0 obj -(\376\377\000b\000s\000e\000c\000\137\000s\000e\000n\000s\000o\000r\000\137\000c\000o\000n\000f\000i\000g\000u\000r\000a\000t\000i\000o\000n\000\137\000t\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) -endobj -196 0 obj -<< /S /GoTo /D (subsection.5.4.1) >> -endobj -199 0 obj -(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) -endobj -200 0 obj -<< /S /GoTo /D (subsection.5.4.2) >> -endobj -203 0 obj -(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) -endobj -204 0 obj -<< /S /GoTo /D (section.5.5) >> -endobj -207 0 obj -(\376\377\000b\000s\000e\000c\000\137\000v\000e\000r\000s\000i\000o\000n\000\137\000t\000\040\000S\000t\000r\000u\000c\000t\000\040\000R\000e\000f\000e\000r\000e\000n\000c\000e) -endobj -208 0 obj -<< /S /GoTo /D (subsection.5.5.1) >> -endobj -211 0 obj -(\376\377\000D\000e\000t\000a\000i\000l\000e\000d\000\040\000D\000e\000s\000c\000r\000i\000p\000t\000i\000o\000n) -endobj -212 0 obj -<< /S /GoTo /D (subsection.5.5.2) >> -endobj -215 0 obj -(\376\377\000F\000i\000e\000l\000d\000\040\000D\000o\000c\000u\000m\000e\000n\000t\000a\000t\000i\000o\000n) -endobj -216 0 obj -<< /S /GoTo /D [217 0 R /Fit] >> -endobj -224 0 obj -<< -/Length 1012 -/Filter /FlateDecode ->> -stream -xڭUK6Wh%ͧD'mhz䠕h[-9M;V.?88M0GEW0E(bJDE z2XjBc-ciFWڍ-Gџ'H_+0MľB'2eeջGm!1 #iI瑮!ELPQ{X;`\@"!;:" -b* u)F"-2D[8DUzjUv()81W?Dpu+4z=+ BH㪙-F_DB%ZJbz(&/ N,> -!<8r㬬ӵw%+,hz׍gl~V u8 prL/ӝE]JYO"#{U z~Ez^,c?ӥeυE-1tWbbbHWiK_kek[=l>iO۴Mt6/y.AQ6yjOCq3olfT|1Qjg"Mq@iܲRe|n@ Q`3$(/e*Kkum]#DN4g/=(p CqIFnh0 -rޡp\ĈٯQ'hϴ^μ7;/csi+uĈ1f$%,/-2E -r1qm;ΤeSڒ$<&(_0b dc/Axnoƴ&,lW~T8eX%U+߼Mݦ̛vNt[UeO[fy:T>IjwŸY[aK@@Gnq#\ɖvd.͙_p؝on!C3_M -endstream -endobj -217 0 obj -<< -/Type /Page -/Contents 224 0 R -/Resources 223 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 230 0 R -/Group 226 0 R ->> -endobj -220 0 obj -<< -/Type /XObject -/Subtype /Form -/FormType 1 -/PTEX.FileName (./Bosch-SupergraphicUp-Gray-Medium-top.pdf) -/PTEX.PageNumber 1 -/PTEX.InfoDict 231 0 R -/BBox [0 0 504.566101 1275.590576] -/Group 226 0 R -/Resources << -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->>/XObject << -/x5 232 0 R -/x6 233 0 R -/x7 234 0 R -/x8 235 0 R -/x9 236 0 R -/x10 237 0 R -/x11 238 0 R -/x12 239 0 R -/x13 240 0 R -/x14 241 0 R -/x15 242 0 R -/x16 243 0 R -/x17 244 0 R -/x18 245 0 R -/x19 246 0 R -/x20 247 0 R -/x21 248 0 R -/x22 249 0 R ->>>> -/Length 1151 -/Filter /FlateDecode ->> -stream -xWK7 EI$/Uf&K69~UK<L뵨b|EOb`Nc ,??ݧ#VR{_0!R-p#8#Z{j)pU:δY?'T٧ZC[w=MTr늉#[c1q:EKP-& -L=-y( ee.%D JkfF ihV{(KtT{]E9ޖ/=ܭRG̅;3_e52&Q֫M9KD*%)v'2lrʶBX Q3jH?|Rn2&A2!V x67.| p>ey;hD5tp4mȣ RCQ%BnˎDB¦̌!"@Vu!Y5e5 }@-|.,) :ɐ~0%J01p8.XV 6L%rlT#Ώ:W1u:hL:?+T nP%[(kR2^ $'tAْaئEϦ?(Z|RVdU3=qZ+(E;"e{Nus'otZPuz!lʝ'o ao6 rPuݱH T4B9Zw@AW$osޥ޺4_m",quL5 Xm݁xJiJgb 6e=mne.]«5el͓n7fzK'a -hA4*n ,ymfL5+_ nvoۼukRߨI.Q3,oJ%M0-xvb `@kM"ūN)S7adIfc;]₪=-ɮOnEp`nKR.ue?mĿڌ;8n?9pu2C[G, -endstream -endobj -231 0 obj -<< -/Creator (cairo 1.15.2 \(http://cairographics.org\)) -/Producer (cairo 1.15.2 \(http://cairographics.org\)) ->> -endobj -232 0 obj -<< -/Length 250 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 251 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ02Sp -B}s -endstream -endobj -233 0 obj -<< -/Length 252 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 253 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ0Tp -B}v -endstream -endobj -234 0 obj -<< -/Length 254 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 255 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ06Rp -B}lp -endstream -endobj -235 0 obj -<< -/Length 256 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 257 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ06Up -B}s -endstream -endobj -236 0 obj -<< -/Length 258 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 259 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ0Pp -B}v -endstream -endobj -237 0 obj -<< -/Length 260 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 261 0 R ->> -stream -x+ -T(2P044г47V050353S+*+qr*!LO4PH/VЯ01Tp -B x -endstream -endobj -238 0 obj -<< -/Length 262 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 263 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ01Qp -B}s -endstream -endobj -239 0 obj -<< -/Length 264 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 265 0 R ->> -stream -x+ -T(2P044г47V050353S+*+qr*!LO4PH/VЯq -BA~ -endstream -endobj -240 0 obj -<< -/Length 266 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 267 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ05Pp -B}np -endstream -endobj -241 0 obj -<< -/Length 268 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 269 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ05Vp -B}s -endstream -endobj -242 0 obj -<< -/Length 270 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 271 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ05Sp -B}v -endstream -endobj -243 0 obj -<< -/Length 272 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 273 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ0Tp -B}y -endstream -endobj -244 0 obj -<< -/Length 274 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 275 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ03Rp -B}s -endstream -endobj -245 0 obj -<< -/Length 276 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 277 0 R ->> -stream -x+ -T(2P044г47V050353S+*+qr*!LO4PH/VЯ03Up -BC~ -endstream -endobj -246 0 obj -<< -/Length 278 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 279 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ0Pp -B}y -endstream -endobj -247 0 obj -<< -/Length 280 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 281 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ07Tp -B}s -endstream -endobj -248 0 obj -<< -/Length 282 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 283 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ07Qp -B}v -endstream -endobj -249 0 obj -<< -/Length 284 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 285 0 R ->> -stream -x+ -T(2P044г43T050353S**+qr*!LO4PH/VЯ07Wp -B}y -endstream -endobj -250 0 obj -75 -endobj -251 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x26 286 0 R ->> ->> -endobj -252 0 obj -75 -endobj -253 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x29 287 0 R ->> ->> -endobj -254 0 obj -75 -endobj -255 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x32 288 0 R ->> ->> -endobj -256 0 obj -75 -endobj -257 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x35 289 0 R ->> ->> -endobj -258 0 obj -75 -endobj -259 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x38 290 0 R ->> ->> -endobj -260 0 obj -75 -endobj -261 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x41 291 0 R ->> ->> -endobj -262 0 obj -75 -endobj -263 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x44 292 0 R ->> ->> -endobj -264 0 obj -74 -endobj -265 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x47 293 0 R ->> ->> -endobj -266 0 obj -75 -endobj -267 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x50 294 0 R ->> ->> -endobj -268 0 obj -75 -endobj -269 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x53 295 0 R ->> ->> -endobj -270 0 obj -75 -endobj -271 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x56 296 0 R ->> ->> -endobj -272 0 obj -75 -endobj -273 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x59 297 0 R ->> ->> -endobj -274 0 obj -75 -endobj -275 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x62 298 0 R ->> ->> -endobj -276 0 obj -75 -endobj -277 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x65 299 0 R ->> ->> -endobj -278 0 obj -75 -endobj -279 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x68 300 0 R ->> ->> -endobj -280 0 obj -75 -endobj -281 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x71 301 0 R ->> ->> -endobj -282 0 obj -75 -endobj -283 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x74 302 0 R ->> ->> -endobj -284 0 obj -75 -endobj -285 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/XObject << -/x77 303 0 R ->> ->> -endobj -286 0 obj -<< -/Length 304 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 305 0 R ->> -stream -xM1 -@ D> gׄ5ǰmtXo>S*iH)Q:8MyZ0Ⓢ_"{wdj yv"֊n=Q7n4 -endstream -endobj -287 0 obj -<< -/Length 306 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 307 0 R ->> -stream -xU1 -@ D^ X[RgYܙ|)LTұ,I0tA' eM}dYw] } -endstream -endobj -288 0 obj -<< -/Length 308 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 309 0 R ->> -stream -xM11 {b?߆q *j׀tij9PICIhpz[ )m\r wny`eI0:okb蘻\W~:#> -endstream -endobj -289 0 obj -<< -/Length 310 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 311 0 R ->> -stream -xU1 -@ D^ XjRg6o>C&*0KjFEk L74x'yf<(hLui2u`[OMb` -endstream -endobj -290 0 obj -<< -/Length 312 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 313 0 R ->> -stream -xU1@ Dާ ę`| *ji@ -{B'r@ Wb"ygF<Ȃ\XVs}1 -endstream -endobj -291 0 obj -<< -/Length 314 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 92 505 193] -/Resources 315 0 R ->> -stream -xM1@{^/ w> -stream -xU1@ {b?gB)%Nths) t!x gfEUs¶捶y6ndρu/| -endstream -endobj -293 0 obj -<< -/Length 318 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 289] -/Resources 319 0 R ->> -stream -x}K D9O>FMIm/G>joKP.b'I =#0A## }ɧcMjPƶ;TTPǂءVRŹg7RDMiw܎- $ZFliTi]2'my14Vl; 4#ގg>d KJ7 avw_W-e -endstream -endobj -294 0 obj -<< -/Length 320 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 321 0 R ->> -stream -xM10 {b?6<! H\/]DujGI̤A2wǂ[>yI(ȓU+a%ʂv - -endstream -endobj -295 0 obj -<< -/Length 322 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 323 0 R ->> -stream -x]A -A d;l'"^?(^KQю)C(AHoOn8ٺ -SN0qH(]e%\2we`mH0 -endstream -endobj -296 0 obj -<< -/Length 324 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 325 0 R ->> -stream -xM1@ {b?pgPQ#HRK h!4S3½L+ݨ=3y4UUU"j9\6[&+qr3<' ].?9#. -endstream -endobj -297 0 obj -<< -/Length 326 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 327 0 R ->> -stream -xM1 -0{~@}gYH:718?Dvev=L:\˄(HW/xbQv}R!SyQQxmxm6{t -endstream -endobj -298 0 obj -<< -/Length 328 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 329 0 R ->> -stream -xMA -0 z~ʑ*9\Bi.-?T3RXIjginw|7@ZCFl߲<21&? -endstream -endobj -299 0 obj -<< -/Length 330 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 589 505 620] -/Resources 331 0 R ->> -stream -xMɻ@ќ*sa &h?8f;oO` Kݚ׆¸轨<#>Q]IcH[¿ ]R -endstream -endobj -300 0 obj -<< -/Length 332 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 333 0 R ->> -stream -xM1@ {b?p> *jPhf5+Aaj -gp1@[aƗZ33Zf{]! -Z5cYGi: -endstream -endobj -301 0 obj -<< -/Length 334 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 335 0 R ->> -stream -xMA -0 ~~Z=\JH.-?2 sT -h-)N=pǻTOјf*:43z:C*˃'y4Ụ~|I. -endstream -endobj -302 0 obj -<< -/Length 336 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 337 0 R ->> -stream -xM;1C9/1BlҒKYzL͈4zA5jHPy$1ࡍrZe(;B_ ωm+./"t -endstream -endobj -303 0 obj -<< -/Length 338 0 R -/Filter /FlateDecode -/Type /XObject -/Subtype /Form -/BBox [ 0 0 505 1191] -/Resources 339 0 R ->> -stream -x]1 -@ {b?`Y:gJ?ĸ -aev9d25p)[ j6Lpxb,defy%p,_<6/cQZQ -endstream -endobj -304 0 obj -92 -endobj -305 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh80 340 0 R ->> ->> -endobj -306 0 obj -99 -endobj -307 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh83 341 0 R ->> ->> -endobj -308 0 obj -105 -endobj -309 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh86 342 0 R ->> ->> -endobj -310 0 obj -98 -endobj -311 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh89 343 0 R ->> ->> -endobj -312 0 obj -98 -endobj -313 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh92 344 0 R ->> ->> -endobj -314 0 obj -115 -endobj -315 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> ->> -endobj -316 0 obj -99 -endobj -317 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh97 345 0 R ->> ->> -endobj -318 0 obj -194 -endobj -319 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> ->> -endobj -320 0 obj -99 -endobj -321 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh102 346 0 R ->> ->> -endobj -322 0 obj -104 -endobj -323 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh105 347 0 R ->> ->> -endobj -324 0 obj -104 -endobj -325 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh108 348 0 R ->> ->> -endobj -326 0 obj -99 -endobj -327 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh111 349 0 R ->> ->> -endobj -328 0 obj -99 -endobj -329 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh114 350 0 R ->> ->> -endobj -330 0 obj -84 -endobj -331 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> ->> -endobj -332 0 obj -105 -endobj -333 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh119 351 0 R ->> ->> -endobj -334 0 obj -106 -endobj -335 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh122 352 0 R ->> ->> -endobj -336 0 obj -105 -endobj -337 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh125 353 0 R ->> ->> -endobj -338 0 obj -103 -endobj -339 0 obj -<< -/ExtGState << -/a0 << -/CA 1 -/ca 1 ->> ->> -/Shading << -/sh128 354 0 R ->> ->> -endobj -340 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 355 0 R ->> -endobj -341 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 356 0 R ->> -endobj -342 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 357 0 R ->> -endobj -343 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 358 0 R ->> -endobj -344 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 359 0 R ->> -endobj -345 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 360 0 R ->> -endobj -346 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 361 0 R ->> -endobj -347 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 362 0 R ->> -endobj -348 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 363 0 R ->> -endobj -349 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 364 0 R ->> -endobj -350 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 365 0 R ->> -endobj -351 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 363 0 R ->> -endobj -352 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 366 0 R ->> -endobj -353 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 367 0 R ->> -endobj -354 0 obj -<< -/ShadingType 2 -/ColorSpace /DeviceRGB -/Coords [ 0 0 1 0] -/Domain [ 0 1] -/Extend [ true true] -/Function 368 0 R ->> -endobj -355 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 369 0 R 370 0 R 370 0 R] -/Bounds [ 0.998902 0.999891] -/Encode [ 0 1 0 1 0 1] ->> -endobj -356 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 371 0 R 372 0 R 365 0 R 373 0 R] -/Bounds [ 0.42145 0.471603 0.943808] -/Encode [ 0 1 0 1 0 1 0 1] ->> -endobj -357 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 374 0 R 375 0 R 376 0 R] -/Bounds [ 0.428836 0.829244] -/Encode [ 0 1 0 1 0 1] ->> -endobj -358 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 377 0 R 378 0 R] -/Bounds [ 0.219969] -/Encode [ 0 1 0 1] ->> -endobj -359 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 379 0 R 370 0 R] -/Bounds [ 0.445434] -/Encode [ 0 1 0 1] ->> -endobj -360 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 371 0 R 372 0 R 365 0 R 373 0 R] -/Bounds [ 0.42145 0.471603 0.943808] -/Encode [ 0 1 0 1 0 1 0 1] ->> -endobj -361 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 380 0 R 373 0 R] -/Bounds [ 0.557724] -/Encode [ 0 1 0 1] ->> -endobj -362 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 372 0 R 365 0 R] -/Bounds [ 0.16318] -/Encode [ 0 1 0 1] ->> -endobj -363 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.905882 0.909804 0.909804] -/C1 [ 0.862745 0.866667 0.870588] -/N 1 ->> -endobj -364 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 380 0 R 373 0 R] -/Bounds [ 0.900901] -/Encode [ 0 1 0 1] ->> -endobj -365 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.905882 0.909804 0.909804] -/C1 [ 0.819608 0.827451 0.831373] -/N 1 ->> -endobj -366 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 380 0 R 373 0 R] -/Bounds [ 0.900901] -/Encode [ 0 1 0 1] ->> -endobj -367 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 381 0 R 382 0 R] -/Bounds [ 0.900901] -/Encode [ 0 1 0 1] ->> -endobj -368 0 obj -<< -/FunctionType 3 -/Domain [ 0 1] -/Functions [ 369 0 R 370 0 R] -/Bounds [ 0.621891] -/Encode [ 0 1 0 1] ->> -endobj -369 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.776471 0.784314 0.792157] -/C1 [ 0.945098 0.945098 0.94902] -/N 1 ->> -endobj -370 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.945098 0.945098 0.94902] -/C1 [ 0.945098 0.945098 0.94902] -/N 1 ->> -endobj -371 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.945098 0.945098 0.94902] -/C1 [ 0.905882 0.909804 0.909804] -/N 1 ->> -endobj -372 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.905882 0.909804 0.909804] -/C1 [ 0.905882 0.909804 0.909804] -/N 1 ->> -endobj -373 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.819608 0.827451 0.831373] -/C1 [ 0.819608 0.827451 0.831373] -/N 1 ->> -endobj -374 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.921569 0.92549 0.92549] -/C1 [ 0.921569 0.92549 0.92549] -/N 1 ->> -endobj -375 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.921569 0.92549 0.92549] -/C1 [ 0.819608 0.827451 0.831373] -/N 1 ->> -endobj -376 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.819608 0.827451 0.831373] -/C1 [ 0.776471 0.784314 0.792157] -/N 1 ->> -endobj -377 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.862745 0.866667 0.870588] -/C1 [ 0.862745 0.866667 0.870588] -/N 1 ->> -endobj -378 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.862745 0.866667 0.870588] -/C1 [ 0.819608 0.827451 0.831373] -/N 1 ->> -endobj -379 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.733333 0.741176 0.752941] -/C1 [ 0.945098 0.945098 0.94902] -/N 1 ->> -endobj -380 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.945098 0.945098 0.94902] -/C1 [ 0.819608 0.827451 0.831373] -/N 1 ->> -endobj -381 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.945098 0.945098 0.94902] -/C1 [ 0.733333 0.741176 0.752941] -/N 1 ->> -endobj -382 0 obj -<< -/FunctionType 2 -/Domain [ 0 1] -/C0 [ 0.733333 0.741176 0.752941] -/C1 [ 0.733333 0.741176 0.752941] -/N 1 ->> -endobj -226 0 obj -<< -/Type /Group -/S /Transparency -/I true -/CS /DeviceRGB ->> -endobj -221 0 obj -<< -/Type /XObject -/Subtype /Form -/FormType 1 -/PTEX.FileName (C:/branch/ku_algorithm_environment/20_Documents/20_Documentation/texmfbosch/tex/generic/images/bosch/CD2016Graphics/Bosch_4C_S.pdf) -/PTEX.PageNumber 1 -/PTEX.InfoDict 383 0 R -/BBox [0 0 425.196 94.487] -/Resources << -/ColorSpace << -/Cs6 384 0 R ->>/ExtGState << -/GS1 385 0 R -/GS2 386 0 R -/GS3 387 0 R -/GS4 388 0 R ->>/ProcSet [ /PDF ] -/Shading << -/Sh1 389 0 R ->>>> -/Length 43794 -/Filter /FlateDecode ->> -stream -xڴˮʒ8ϯ1A@=4JI- y.PI9IFt{{l=-^?>ΧOjB^okx}V^?XC9~?/'T?Ͽ_?çJK~ܤė&]xI#OK҉>WLG՛Ui>Itr>dy%]?M:&GY %mm -EF?>R8W#wxI~22a|c_\~r 6ٷ7[{=DqrTEr6r?1 ch&5+u:n:ڣG{Wo>M^W{[<+2sV&;~VdF gẃ;h'TKHc^U -]ƻOՃ)ӫczݻ[YWˏwnt 6j4/ca)|b~yƿǒg梭?5.=8Z"aoL -tY^򣵌!m-y][eUVnh/rĵh`(7l,cTWr3hukcKx7kGSa zû}0F~jl͟?D֒A?Ji{OK ')z] :2yYKg3e-3*k qQN~kr&*Mx7Djx.k~L}lYwu2:"O76CFFk>hav$\>An,hyL<&?;âȓA2"2hAVhį~)-Ɨ"_ ㎮T>3`4j}o>i:ۨnp12o#1FS:5hq%/c/[;D[?bF?ʶlG@ɏX4ʹ00kW/R}o\zwDDݧx:&wmeL1cڏW0Z?E FN(ߖNʹ8X乂tiE3*Bw9'֒U8i|d*} ;%: ⍽4Y Lt h9ݷFYQ҅UȤȸߓli0tVړ pc?>j/k4E9cjwyU\ -=X|, -ADN*S6Yޣtoe+6n̉3%#.*3w hVf{P@DeAe+1~1JpG]N9dV [ڧY>O#~x9T[:G)IkoW! kc>}xRݴeǯx3OYqiwɭ껵;Y̲m$gWG==ű 6 ήpbW#( mHO^Wl q&/ | ]9#llRi=6* ]KcCuPt*ݦCm{9־MChSI[Kﳟڍ.9Cdy_Z^55Elڜ̶^N>ڛfnNmzƕqq70H8,/R[5礒-j9io{?PHy43ԬČ}1E"@u~*P_mP%lT+o;M az@u,OAN'+\3oȺw##2 XID}&7R<6цJޡM!XT(70Etm.0}){{2>8 9Extyo 0n?>c`z:XaNazX2@Kn$G.r|(1Gb@6jX;|g18^k{zkyRYFV:<t`V^7'f9nfKro0d>r7E@}k:ǷGm_|c|ޤg -O EGճŒ qo'DQ_-sFU9's=Y֌#rHw&%/Ο 924m:lM]%Oֹ>dagmMm!=j4 MqT/_B!D:^([+s||xw4Lh@8";yA}WUnO6s; x/ctƦ'fl:9&-tF[Ht&w?}ďSɾ즇FlMh1Ez5qì ;u^,QXnT3\9?@'bT^pGk ^yFv]Z A8/20>r{>GC]ǭ`Dz{{=%w@ADfCYM|4X18;Dbȉ:ڥ`p6hH&iɞz'N@GD`lqS 9]K9FJuKq6plzOh4֢/4Ծo>\VU1du~|'o -+f̔ڂ>QRTxUy4u_]|aT(ݚt4Iiz4glS_7,_Gf`n~ͱDGJ菴_8X# -50HC)qPɁ4[j4\48- 8G9o MǓl6pJ6Ahְ9y3~(69#!cqf)gV[cv|P9-;xͣ-1厶t|qM۷?212#q}PlMbdmm@_ʗ8WgA?6h֧ե??*%HG$4/+?G?-m~Sjfd?:]O[noƱGEjISфx.53ME]pe_L_C YtZH%(i48,.SLzVffaAN*te8:^Lg8XdiVhB$F,vo%6]g8gY8`_C /|3va1qgy鯣Ww - -C@QfJ8vy+Hз,ڮGP( **eM4p څ1ݞqԠ.BMu;Y@^rL߬L?ZLh=3o^z0K}pzR:dk@,(r: 䭂Dqemj9]޻<*,N-w 9vaȉSJJGC¼JФe:{tLkA9L-'{hJNKDOCR<:9j`:]:hM-w(3o(bmaUt2K"KgK(aü_ʮEUk F>{nǵ^hsE'H7Oel%otuYb3(cց<9ޚsgh;"k1bwխw:]9Btiv1! -cְzHasQ'8W6)u%"2-C7HzE!+*@ye~G6WDjv2DaSi8ET0YQ, Z>C4/& +P(}#3OIƘ}1恱ym];sY}qI66ʊ}=V5'䪜[5fAYzYV}#k2dH™1flN  |}\fFS _.F389aIc&n"FF;3 sxs]y3O>0-7qqcD'Y55ys?>H'Mֳ14EE͙CcE]K85t3=_L&IC{_uG/43B _YvrdsmtoǹQ]2-w{vNWsf'\폎n֨Q9'4paMow ZFȵx7j1"XV*4BؐcOS Q$ j* 狣; -n;f=ꇏwD| AYskJ$ -Hc۽TFDVUEV.9xf@#"rg9q=EtPIV[{f@$^P;" FQb2J<@z:S?D)0^ȼJA%HTD0dhq*Y,؀zvgFk5ن -j,nYۿg{ "gj`H=!Hmą81sVxIA-pâ_ WM0.3hB> iLmUdg&DMpaBv7坋L G&lCP0\21Y8KR/.엎d)(,o5_…=A>cE)o0vQ*CpautxqռaSh5:… fBE|%NjHd&@W-|j( \$uqFlUxMըRPy =LfC@,{xJ;3?9{d]DeZryO[V$9`cQ"*Iw#-$<ň(D]BgQS|%]SS,Jnm@r[ 9ڞ:/Q{3әImrX6*QtŤ֘8#u,ƑIaĐKf G4bkD7.0v_aϼٶ -GVS*,rbutNm),LW5: ʁ3Dx:i)_c&|5 ?+M# =Aj&A~:KǢlv2tۀ]lج0e®o22ۢ1 /\ͽYD.4{m:2(;G;oM$5_xuqkxlh^{L*{t1wӆq*(H>\h; -&}?@1#y&nZL>]XrI&I|=(ٚ<ؘr\_n^D!r -8LBB =پn4SZ]H!ӑ?oȏ,< GTlqS D-/HR DBXmw1MJ4/q?F~C.Kn h;Q"y -z97rBRn"(Vb7E= k{w t13| qDxY$l31i P"i_-؎sj6hoyl9(C]Aި,b}ĺQu~&xEtq9{q>.p[W)(a j؛Τ:fٸlT!3{ӑȄji37^S] €x ]HK"(6(SceHM@6CȶGBzΆ:NvLm -ה<i~nF*$E_?^-d?81)"CV;Q fAO2d2ZFWsl̮lAor y#6<5lc. GA\ ɏz%i(p.V1Av8$]HפFbOryL OCHRNЀ y,La!{/(A0PBJ>CWXLT@ܻ/g|@]"f iƆ;sUHM=V*5  Ѹ)!%-aʰh~ӀJ[] >i4erXA޿Ai\y*|nedĜ}Yv i%QqaܢCDT"xBCȖܔtLB0IMKE)ڔE24"c XS29wDZgճtV9gӔu J! 9=3K6?Pjoa΀L9dex/ѯ ~b~' -l6>1DRژ"$W'絛'-hTc} LOSQPAVFc3 dMGl N֗ʬ$C$;,Wcm 0@[|&=IKd5;nG8Lڠ]g^duO&I9ʷF0\1(*6Uyˁ.Z㇔uy+/_`~ՓaT=0wlҎ\F?,$jy[siǹFtf[)8!⪡<:*.>lt#l`ɂ,,|Z6ė5j%%dfznq$QKb 1,D^vtO=Rhd.uי_t1>MȢ&&9&4mܞfTx^2cr7oe˘4^tea`tΨ7l.t7U ؝ LٛXc`>3Xb↾)?b~J1ayI2jnu*.DHPJsd\(/7E/,pF꺞T - 5 -4k2vZ -\eLby"i -Zn~'XOXп~'>YW:yX1ևE -~[ZV'\]9^ɿ6)VdX5m@ "h4Op[HS)* w;Ms>f=!"WVV% pmQ ),`8QMP gDXQTrZSط/Tf%8Ƈ=j4 }* I%(< m'-UM[pBM.JG##tGOXx(*΄j7n|TāolcIcq"Esapΐ6?cjjlL0{KzN -b&  --Aڍ/ss"p,<*UlZ uYV!_n\e @PG%b<j0Y/(JZX(Lvcdᵄj)dcPӉzS>="*x- M[dX$~ҭ*;ڠyx(-.EbR$hTlA Vb6GIbt=[EZ -KV;t_ s.m %)'U}QeNu̟srXYOdn_'iICMV x0f͛d9Y&dm_L(Nx[& ,\H~юŏ?.)Q YL[.luZn(;pa7Pg=3 Afq:4;`;qq-ĸD0%>^*MĀmmE. 02`pK zIZ!|yZBTEs&…vv@Xղ+JY0J`$@I`{2@e6yd/ ЄĞ GסHJ,f|-s:%G~X(S-8p:Nz`ZX9\PLȕG/&uY8YB%5 Z#ID[ވ¦;

| G[ -wh Q$47qP{h48g9\+JR )Fkh#D+{zE738@{d1,a+4O.Y837zݫ%2!5[e|z;&xNvbͭ|\/);JH+XR@Y,w$)=VKrFjuSjI4r`twTQ @܇ZI[zBcFRk^^J`-}#m\1YB[M#i:.Jϩ] urpօ/:՝{IDU)XMh{I^1 VNܶ)8p_{mc:Xbe}!^FU'ǃCk.;sFq k*̽aغ{_eܽww~ukNv@\9azF?!?2U9<m4w))1<+ڜ9KL LH 8lJL"bN#M`([ 2 i8KHN=E>x$>v 8Z(%[OAlʯfM[Z*^lً?Y@"h]ԗڊwE92W,·J}'<u2Nl`x^Uk~3,P®96 t3r"@ګJêݑV/^("b-7 "0Xb0J`WX$8z|ҙeFb~eN5CropP IZ怾y0cYCe4ɿ{fE'Vkt;K1RIqP?([#/osfi5Zjd*BAS@ڕ1BW#,xW<N NoQܥ3:U>KDptG1'dD.+CT{2"cPSyۈ6J a.+t'(,A)/-ghbdQ-q*(T\N4H\\.(b[*5=6"2fK(s":(KndmFfNॣ# m7k84~!q:CJٜ/vs%]Ŭ25 ' -07־Wr0c]EuAcU|{BP9FY=Uٜ,dhs ϣxd1ch,$*.6G*"*/B(4ҬfwC}EF%NF\[sv}̎,ij(q6FW3(f8G?eb, U% OFh*,ȇ4`hek ?/Ue< DI9i;5IХҘc(3Bh>muS"_-Z63"=*;6!3[0L3shBh3'l=kk^I ,73( F4oha嵍<;'7l~[+phL[d P "Y~fΑ|)RC֯ Бbd2k!ٕ|SMCe=݁9=LCXx Ǖb\"MaMn+>@V2^"{r( +q)ʅ\ŒJV>ɺs Epžr"9# ~_b$4QaozvU%D>%AU|٫'m:awuD)py^ -~{H;LwVCx) a,=UCX}@$v=BJ,7IYs dUu$A^~'KIļ|)ֆ0gahXjr:&dCX%0[5zYSB$:)U}̲@}o|ߏA:*Jd'DF&A 6D픝TeAY֋ǙN. -d,ԪCM)%V 1+%kf c5\V$`"W>aY H>eV@e=il7ّw|[UbȀV|zZ:sd:%[w7 OB^,?s"+tYy1۾I4,5[HT5DvRGf)*'2yM,Ry)BmI di{0ec^R'>/K_A?FFZD\n42@uPE%n h)_/kvx+ӕir: dwYiF{<)})-kǥPRc:s Tfy0σ1`+aij| U-^[2Oȁe&c{i^_=A>3(ɈF8^;0Ր/G* +CY-q<"ߏ4" EFw6[[Nv;m n}ocIw)kn/ b.9Z*l{z<,_>byIL8Mȳ*.(o13yT.!KQ3'乼5LA/7}Nju FdУVz>2ҩhZc^C2:|k<莅EUxčVBJ 5us\}f {G$O0k ;̙ }oq;_?8jHtuҜiBݼF6t䨭%2XTǐݺ<8`}57<~",Wu0R_TQq%zcb$`xN$HnܭCizJCjt^0&O@0yU-6@,l:o*~ V,siiQ*Ƒ30/*q+ fB)G\NG,\E<ͧ^D/K湐1wEM Z{ܾu7FB0CCvh٨h#`Ra9{q/YOSp7,)_阚 _,RK` WP'ɽ16EOA\:T ֔( WTy˃a+|gi.t *'fN]IA6Tk~(F#(MuC)eP`jBZ47:󄄼c#Sd0U_Z@hv4[dR1m^e/kIOeoʜgC&L'3Mҽ6hqX5C&#ʼ8> o_OA2l/hu ,DU/?pev S -D#fI[ΤH¨%r7K8+o) K~3'-L$őv2@AI`,K yODCPxrz<nn~)~eV6Ѕefe.tkdG\,+8b>RV{h`Ui*^3Ιh/Ұ4XIٙR1;#@ϦUúpϱi3w<6-Xh%[-_'Y8nCJ# mV3dwVr-CV._5xe){rVC+ϫ nbc-^PxXr -2)6Pb)@ ۮw~aC,`g -(bDސ9tlӴdǞK@WtE8}(P][c3Eom$+&/`hrz%T6`kY*,j*HjCڞz⥦-8 37fO&f`V+j]pV.ՕCY3Im,Zj|fp*X2NN3gv`;e"d\K9?\+fBs/M|\65 ّ *BitYh~𦗏k1`}}v>$g=|" T?)ltz?8Fm;d8o_3:zP Y1Ni -xUM a=eKd]k7lӵtfĺy[LtIQd5kζhH.6HgbtX/lJWn29%^@J*5Ѻ EЕ=ݕOU cƒk( R_6mGg"?Ĵ -_F'^E}Rln.&$S~n|$q~aDxӽ}BU_ŐUY9%VϵjAjhkq!i)iE5D5-g_" /5NqDOlJAF -fúx.֢!,rl̓9}!T -7g; bD:XC);S"qNNwE%,[=0٠$U 8MMb_x(O5vR::KTOOL9]etS0D)`욭ZDjlcw˲^ByIZ>XHM:F$}M5Xff^!^ ;y.Q2Kg+b\JőcՍӕ].˺\ b>yoU(_z{@3]'_Hd}-,˓>u'[UZ0pqTw Y % E<&Kq'gRDGcS9pK_'GQ=g1٢^ zV^s9߱mJB,O,n 﨓m2S2w6 NomQ)G!s -nmH*;ER,u#R^eؑoπS)m Xac6TCT-H01)OϓW鶅P\ok^E,os :_.2peUKHS[8}K#>ߖr`Bok_q!7z7%f-a&,3LwdTX Ջ-Нb*%ͼۚٗăL=w!\,c-L HTjY[,DH. o.z]ȺVy S -OxA+"w"b/\05ڒd@T*Ma20*#hpa LXLѦD:a?,PԨ&wsWjfA~ijr8en铺ׁ4_RMš1aɖ -Ɗ"kyp@8K[ $u:%c -.Mp{N_vJs΢y(4:EM;m-Y8!xBQ4G &ϡz^ɛ&j/j͢jG(W$N4eϘaQ‚>DWI )mDsr CԦ8_<_K ,kqiǭ l,Xl=3mb3ߊR8n\5vUZK<2_p"%aY o_j,΂-7}ۏ{gĩ#rG?5b7m4oK_dBw]Ͷ0}!tEϢǞD"R#~ )pV$Z35Y"ҝ88![ŠTj"DTZ2NHɂGY)kO4bDpU`q2wV8l"`(&#L4""R,mFXz,_miEVt"GY E>QX-q" $"{$Lɒ!*ςOe| ^뷈(9ے7Jt78ƙjW~L, -Tlrn|QFdQ'BINUE -P1lq6(`q 7yFDF@A}_*d0ȋjVIrwg}F5i>tGbD@DoZLaD9Sg wAV_ͦ+{"># #`%9<ЕBJs[i'T盠͗gp,]0w+/S7, (K[ s焂7-͵8n9W-s;QͳbFv[@ߤHfNM=vc0Zbd7.jA5ߺR%(. ݑ\& X58 RUO~S3m Æ}ĘԗbHΘƨ,۫:`ZQeKy&Rq !=swj #PGe?wJRISI;A3'w4dz[_,ԷSK$r5A]S|qE`]͵4)y=G}[TݳD5zs`|XUC:U}Ϫ9d.NU×U3յؙU/JYG-^*.묀5@dUT"cngQeMDaKFdzzC B[\᫢ꤌOÿzQQ}feUu -f迨>eOZ8>MʪSƻJϪSҿ_Dg|VV]e٪E/gNأ{q)YU!,{VU}ImQu"ˢCe^u|\Rr: -ÊI[a*aUVÂuSiAu -Fأ]e݌ÊTREu -%"QBSQ]+SJJXBl(Z<~SIkBXW\(6M([ XW06E,S\i\W%| AXeAzU%@:9˨ޔUZXʩg ?ђ>)I:RTq(9nn1@X -zʢf5-Y}*hC[+l"2L=utޣ2ݬ43k=+Ύڪз,@?sDŪڊ~*ώ2VzgxS$W1lլNvyVQXZp3èLY*,ջ~f14N -lMQ+27h]W?z1FӍU1sQc>Mʎc|Sz -ae},(+zY(E%ڕ)j?P!fM)lGh8 fԔ_[qBB#ɸjX1:=ɷFbc )u.wk֎]U6j5kc[ަq}l[36a<}n4y7!gk&?'go#ڭ -tۘo-}!"M}2$}6 >n31{FkA=^xMPK,(d~GTͭ# *FkhWMz$9ZhkgLG= IS<(?PˑuMNA_"wo[ qMbcL( -@_pkY1HeiaJO\ -TBG-BU,΅e^~L$i9],9%/iV珷˯ϱ?כ|Qxzs6~(BAљgY#2㕏p'4ҽĵ/9y]C3룩냃MMM-bsnhCYCvFK޴曞Y2:ϒ1Ìٸ? -;NcÈQ 7 ڥ~ML.Bˆ\z9nL{s -F"ޔS6Ʊ@A&-& o݌~l ZEh+[YW0 F𶆡hm kc_<FX "Nf}7po8tm+89a¿~p6vs_?Ƌ_TݦSkoq|sb}Tr=f`<[&q/F=)GY Z#~l>ۯWm,E=~߬эǿ_/QEyAEᱺi"Y]vײ㛣u"ڮڴm@]G{h|/ O0ژ?oAU)mPצ>]g,6Z*Ube --NkrGw7mgE7ЧOT2 |-Ժ?x7{;yGQ+?G?AKĄqPCq)0+vE({[~6(tTEW=%fbSz -Gw{/W|as :G0bUr7.Uש{ G(mYmS?SWU4J{Ui61 -rnчS~uٔ@l/ -#2Zg2䗃Th*^v߬l.Gk,L'E -nRC>u; I(uVԋH -0YTd,^ So67.PSdH1hj Gazj,֢z0ҴmO8eqn\` 6ۄj`_N.ɫ(gΎ(w-j0֋jv ISƾNb m!"7o2eȓNQnɮZ딩?£ !Mv[uLXT " zS{G &jg$粬lN e"(LM"meJ/&Rb˜͢`op+ -bDʬQԃL 4N03@YO&"?H1Qn=SU^HͯoFuLHTI#X7aZ.~5$,LL J,N]<@:obq>w;r_̓T<3nمqjv]:B̎!Y"ku6u.~ fύg7;OЮJ. fO>塥vݸN~e8!+%8A)mP8bd6YM{vdGZQ:]p`u+W59^70<ڽ -P㗢!VI{eyr=‹ Y@ ~S]o5pE,@ITEѓ-f:Q/FreBO :7x^۩zAnA (6WSIS]rCKԉ!j7$7wjw,*>*T̛"o0EzrUW:2MUᦶD]:hwxLU)Ѯ7~e%؁zzV5+Hg!1x:IaMO -̤,m^iz5H6p-rFZҾYORY2=.*Ohyгv7Q HRݵı҆h+^bH]aM8 `k%6?saGuzEЊMK@~=w#*Tx߸0Vdv2^Ge#wK3 Ju坃o_= -ECG -Ze$ Dqy`T[rJ.V=;"^84ťv,-B3C7 n^5@ݍ S[*$D;Czp(V\$~EvV@s)˰|zx +Zع]a&Ts̋5_Qy:mͬ9ת*e ZN+vRl gu8d=gbx`ע-XpP8M!֫oZ|~9OQy(r\i5'UɕpD y,oժ?\9Y:RbB4FD+nXѕuVohOoAe|cgFMYǩ6J0KI0hՐCޯcyع7[OCJWNY$ov2;. S` :U(pe YLY%a( G=P`'WxI  Ym3ϔf]3 rU&Bd -DRԙ t4͢enS2[Wz^]\uqdBq˝AF5Ӻ,ؾ_ 3.  h$)Q~~ $s!iiLZM[MM<(H.,e?+086u=] OKP+P~= '^>Nu/nωF5^R _'-Cm#(TD+vzȕ2a(??Kђ+`>GǒBx7NJ2= M/m<4d먖qIT,@QgrJq哇F eh}rc5E:kQpr·b Ak{l*"Vhe"9E;\&CϪz0dV -OEMǞ[yYOLhEqVV`HWs.S[FS+L6]K/hJ!]]}>\y `E)d?@1)N30ATtH|-y1)[,O!cIt; gzǜ9`H`KxL=2ZczLYptMFk"F,thQ>%:?PZH ]xD? 1_ #@STUzZ?,]p}(q\08 C*f-!p 7B+}zEPC*cxL -Lc>W~ -nsRBd!,fG'"n|Ib5+9FwUb&ts1X2s1=~ݜ[bUUh(id"\I(Bp1XQZSIѻK<ر]`00|11MV. V.j1jZ\pkU †kq`QG - -AQ2 2uѤ!Goʜ0CX N0"7\zv'd-zmLYhJ`ȌK^R$xI3Э,3+2PTNdJX8f膌"EVFt+ uBgQj2ˈ<*H*o_X*tbTA͊tn@b$nT})1QD42̿hyz=Ji9姂r" f@߬r~/` kd &p,`TNL"y{AVϯ#`D+q~a*K/ -Em~gW &Eٟ+ܡ̎"x[LcؠkDVw|Z0%I?O3+ gcYۍ> , g* -,ۀHFC%]DW*V7Xg 1rSi),!M8rtEN:ɚ_o3iZHyBG&}"-XS"}"-|X~Bg|\NE`hK\'"sZZh d?I-D$#jNnˣ}m#^ uR*\T8RtcC-h GVw!Oە[kq:轴"y"s'S4{n/ނLK%vD}kDDo;hCdg|sT*IqR! !1nȖd|e俈l#{PyW~F# -r@ÈAN\=d"Y0}"**~Y4}4/YD_L VdpK=#!Ko&2\?|s܉#\_3! -kIW@ 7sO+~qN =hةmbg32p.Z0;`m߲cd;W%~|F\ 4@ZAI n9I'vfl` \nN#wxm[ժ |ȃD򕨀 iz%.A8E}Z!UGBy-h5'-@OIˮPP[c@sJBSU0RH e-Di&^,,tǔ+*X#ΑpC3}T3e9g%ȇn4 _fD/Hpdk׺*9_5l|]4.H̴ ^42tӌKig֭mB!N؎6sbA8{Lz{P< -ɝaU RX)ZN /]9W9!Ld,1ӂWPVURI $s'8+`=M?mN*8y4zB3Y }?Ǐv,@-y?Z 0`v7xɭ';.3g6,nh٦ÒՖxQy2,?kțD?UECߛ>x$ĩsڶ$I]G2d"ALeЄMu~k{F9A=wܽ& #N*jf~935Ƌ Kl3vEv"Lxjt)wM5g~<#WQW3Rt6h: G-–| e<0+v'`a> uꑑ72&%4m4%M2|LJ*ZW0jN@y}Zˆ*#(}(6ދHOv *^"^qJ˰"}J֎*pWوH4V'b]_|UJP U -J;\ГpIcvu8`CPv֍ EAJ/(}Xܡ#?*%l~pPl{Zx_a8CdMD&SC',=JUIN姅i*gCB×r~LNǿJ>X (W4t-jpidHq|%ML?Б*1,qrA#)B',4۸6iͫHhjije8#(P8ؕ;w]8GUfkg2rS,LV/NXU kq6%k O[o X6i3"R2ܸd%:u2H;Ol{\ :hD,m[W E Nr,R[׷ 8ʪA'ߙ.j@q?*v7ώhK!Ұbz(!3&X^| } P2$-KUXJ߽X*6ac\N;X/.o6TE[(0~N[,5'W&!-ЊV,dG NI/D'f -vw~(j$RI⇦i~ -m2fr>Bsy+qlbH/ b -ORsx?|{A/-NuDŽ Xn_ ڶ=xx^!{+un@P%l|{e݄ eQCmK)NPeV6Md~h檲]|_Y3kȈؼ] ξke kAp }k8ŁwOrJ_ -l`>ɷ䓶cA4PQ6O-Q4?+iYZt8*D(z)!'aC>,1j'+ҼMzV IHcdF%x@L؈VRШDO%>-?fv-V+ 1o2/CGoO/eNm@3vt nN${uu;.E}*(gd *3 ,_ߕ ZvbP/?{%wׅ/ 9DA:G$x6L& ۯwʲL8򭤓3[ ru-e_τό@ºԶXX7dzvNv!gH?-#lߝ (#?g662i­bGY[h{l(j|i(ߤvZ>^zJSt?<W9R5MRyq.ED-Eݻf}4UIf?饢zN%p+ET̔90j(%e˅0cClLZPte\ o\@w;B+U)KOʨB%2LƖX蝱h\:eYVBQC!Pu%z׽^p Ei +i^VhET(yAg,vV t{ʥTbMF? -ʙ&-l: +F]&be휤~hLF^ Rf@œnbH4 -xO+U:3M7I/c"ch; "` -EdFeyU^eAwzkXԃ4f -T- g#E2]%*ROk}`F HH2uhd4(}}-_[Y"ܪ K.tE`RLE5^`OE ˶&϶}2ߘ4n+O@8RݘZ6}B| " "ߜ\Jv$Ɉ勞9ʔ "5-0gGFAdjᅤ -rDu2::@"3fNp+ -v'*$;52@!ȓ\KG49 -~JWx} B9DRVqP佴L.H`h :G(d%1c66pI,lci"{my 1~SeludwPI ʥI΅ctT49$MӾh@]D͜GB찦lj 8ͫyC{lE x^{3S'7$,5&k)d["zFJV4l=+y#'DTGvb|K)\?:zwa]8?{UPSM6)}C |Nj(edd}ϬVst2ϱT:o -JJ| -*Ӷ"&uamʷ08 V$XG` k`O,hv>7o$)[iڗo{RM]'G_ L>1[~xl[+/tpSdcGJe=wݑ5  ?E@YzE <Ĵq&_HTA<#!҃_lgG;tT'&kW.Qvkӟ X]bQ1 'HHrU,Ϲ$I׈#8ձ -MX{f,üFey4CkTh~r8HK B?!-:ٛ0w -K ӓ.T kEReCkmÐE+ S^,CpHoc70v:HَKAZqT:9◈N+Y,T ~ ,J[d##av+YA, `OW)qO;AM#VrEi#KMy?zL{B؈%y ?g @)f=CnufbD{8GBx1/?/_Ȭuy%;.&#O|q0*H_ƋmWKfʿfV[|\_NrJGWBо7Ϩ)#|&=J/#;C~I}W_m=Ǹ6ȇ 8vr'v=G@8R?[6Ξ#mf![d.hOF}9IrS|^f==>qelNUk;ް>4#WJG-n-l܁k/7#>BdYq q|@9j+yt')J[?a` fLҳ bw)R" f?X(@U[U`*V5t'^?OU&.`*~(u v`dc#7)'oZ,(5Cd3kvN:QKj)>%bk -P94u>[V!z:ԱG}i:[R4~4)1Kr*^JL(nHy$E:R -.*{,=7E?-bHݨDjF.`˚@b~rDEu Q"f#ېfNd7oۚ`ouSsC/P :MB0Ʋ=bqD1~=ba<ߐĴxWJHk-/\JIㅥ2_x!VT -Q7;FHŊ!V 'g$-֤DW>lB& Ŝ)L-',l W~@k)`M%!1H= R2PT~HAj*Dxb_mO~0A3:#yȻM.]>sdx$9Z2 c\dc~(Ƚu4AYB{ >7W/+/b|.TYz٢ ;HB0#ӹZ}qHZ2WrCv\2m5T6$\⩃"Úܯ2E`G*|gtW9>yl3az0rߥ9|A^kq+Ak<j1^RP] ^cBu?o 5zZIAmG& -~O~d~dܿ{T~Q>ؿz^M:)զkBaPԊ-Yx__5"h矹 Gqy>y[(vC"ק!:5YUA8nP%.:EQ# XJ/%rTtxAZW#c (>幐˜cVbw7<=#2ҽ sk2ʿ<̾UGdWsg]9vkX|j?Jf@N$X^~{!?$^`50DHQteh?2_`/p(BQ"؆7/XrzAE-)QL@P]W=_m+#&-DQ߹c=X9[,_uյЇxy:R3$KJU5t -%L\Q?X L=LYj7%ұDbj$7F3Pz?<mF1$mDOe-Wyd{9`_m!-8*\yi 5V;FǶ:N0+q`)–aM0ГhX#҈v}y'Kivq$vldVezH%[ft:j$䅱-&]U>+%jEJ(zD eP;kDeZJ(> DB aECJ mM)2+#$N c)7ׁdEB(hud+6 -=酲Ul%S%Em -|#oa,uD(moz+ViW&OO]Vi dV)haxa]YvTt'c_OM(T-@OِhJCvmZuP̨4U%Ԁ\:9LCZw7g 罉]έ[΢+"cm7:ZOG3a&?b\=b5m|b"jG{%U@2 DES  J' KR^x^@1 o[;~Ȱl~II@VOh0 M\ea. E!O?,lBٶ o !Y/044 r~RJ{g@P/e ^{ݹr%dWk9?ԇ\UX;_CRPEg7IAyc.;_bIֵ͆r{'D:iѠf͕yBYE}WD@x UzM[z5׺~w(–{Tʚ\T-G LkXu_!lz8!dF3 $a9pG8sPh2Mn HPҥ4T?JK0{[%*V4Ԡw/2Ă_ZԀ"򡩼@hY7&B^\YX;sϕCR_Ʊ^zIM5t +ōYJթ/Aumc޲6Ītr=-WCQVgfKQ:kM:G-3wA}ecw.-B"zC#]kM -J{cѶ7Dk+ב'ekpEIDW{|(7d+[ A}Z UsWZW]Nw!ʛH3D ->}4wkJ%d|i|JAH=> =^C]:%dǎq}RM+Fe )G[B%TQ-ŧ~SSB ZIʷŧ[ M2xŧlJnR)_)| /#>;JvM5IMpC6X-[Ɔ](eJHg,;ƲaQ-3$N,[8Zj? F`@dW}Y)^jQ PD7[nA_Al |$y:)#VXNd e - ly('#x0߯j$ye(u&Ɔ., V}I<˯I%SՒ4-r3P\9) !< iKp6|))Hd'jƒF]><[hG5Kɷp t"JzbB&-m? /  6lɈ呗ؐ8y3IgO(H[bE{ɸ@<ۯpg8PqxJBp }5W85 (%>h/iN-Έe6 |AP@i6lqlg2CG;*'{ixyˑ>heP  K~`!gOc)R߾փl% b#{mBd ,R_Ek"pv-0EC,a㒧30[FD8OW̜ĢCXsivE, Zj'ڹvi81YY`!:B/gMn̡53t^%A -JhXsMIT޹n"QN-N }vHh0Ó^2HCqˡD! lHE4b)!'7!(.4upMZ:! ݜCdk6$NRԆh6"^BŦr]q$⯢J0-pY=?sçgQZ6& $Q \X>x] -<=4I%h)Mw{#EAh pA~DpN-=9u=ҜW.?@JCݙ3l+Gk)Q2ܖO=VYɧ\e -Iw6N A7jV77Ŗ4V-O[KĽ 9la8A 5!+@&%zf'j6CP-_Py'z:0(# -όXό -ްaحSu,RKbZ]ஒ\r)xz -AT0=3P'|E٪͙Q#%ǿcszm_ʖg>M@y}s̫)Mcs|tz]{u,Gl;6; -t.<Ǹ̊!vcR|UrD$k)ޣ#RxV鉖  p<׿&§ޏ6 />hs6|2^mQm)O=!Ame+|.,5 8j<0iBS߿ yӗ*Ѫ‰[?;Q_#fYL?i ׯ-}}}܋ -endstream -endobj -383 0 obj -<< -/Author (Werner Messinger) -/CreationDate (D:20100305103803+01'00') -/Creator (Adobe Illustrator\(R\) X) -/ModDate (D:20100305103850+01'00') -/Producer (Acrobat Distiller 9.3.0 \(Windows\)) -/Title (Bosch_4C_M.eps) ->> -endobj -384 0 obj -[/ICCBased 390 0 R] -endobj -385 0 obj -<< -/BG2 /Default -/HT /Default -/OP false -/OPM 1 -/SA false -/SM 0.02 -/Type /ExtGState -/UCR2 /Default -/op false ->> -endobj -386 0 obj -<< -/BG2 /Default -/HT /Default -/OP true -/OPM 1 -/SA false -/SM 0.02 -/Type /ExtGState -/UCR2 /Default -/op true ->> -endobj -387 0 obj -<< -/BG2 /Default -/HT /Default -/OP true -/OPM 1 -/SA true -/SM 0.02 -/Type /ExtGState -/UCR2 /Default -/op true ->> -endobj -388 0 obj -<< -/BG2 /Default -/HT /Default -/OP false -/OPM 1 -/SA true -/SM 0.02 -/Type /ExtGState -/UCR2 /Default -/op false ->> -endobj -389 0 obj -<< -/ColorSpace 384 0 R -/Coords [ 0 0 0 0 0 1] -/Extend [ true false] -/Function 391 0 R -/ShadingType 3 ->> -endobj -390 0 obj -<< -/Alternate /DeviceRGB -/Filter /FlateDecode -/Length 2597 -/N 3 ->> -stream -hޜwTTϽwz0z.0. Qf Ml@DEHb!(`HPb0dFJ|yyǽgs{.$O./ 'z8WGбx0Y驾A@$/7z HeOOҬT_lN:K"N3"$F/JPrb[䥟}Qd[Sl1x{#bG\NoX3I[ql2$ 8xtrp/8 pCfq.Knjm͠{r28?.)ɩL^6g,qm"[Z[Z~Q7%" -3R`̊j[~: w!$E}kyhyRm333: }=#vʉe -tqX)I)B>== <8Xȉ9yP:8p΍Lg kk Ѐ$t!0V87`ɀ2A. -@JPA#h'@8 .: ``a!2D!UH 2 dA>P ECqB**Z:]B=h~L2  5pN:|ó@ QC !H,G6 H9R ]H/r Aw( Q(OTJCm@*QGQ-(j MF+ 6h/*t:].G7Зw7 Xa<1:L1s3bXyeb~19 vGĩp+5qy^ oó|= ?'Htv`Ba3BDxHxE$Չ"XAP44077&9$An0;T2421t.54ld+s;# V]=iY9FgM֚k&=%Ō:nc1gcbcfX.}lGv{c)LŖN퉛w/p+/<j$.$%&㒣OdxTԂԑ4i3|o~C:&S@L u[Uo3C3OfIgwdO|;W-wsz 17jl8c͉̈́3+{%lKWr[ $ -llGmnacOkE&EEY׾2⫅;K,KhtiN=e²{^-_V^Oo§s]?TWީrjVQ=w}`嚢zԶiו8>k׍ - E  [ly邟~_Y53rW򯎼^{7so}x>|쇊z>yz -endstream -endobj -391 0 obj -<< -/BitsPerSample 8 -/Decode [ 0 1 0 1 0 1] -/Domain [ 0 1] -/Encode [ 0 255] -/Filter /FlateDecode -/FunctionType 0 -/Length 430 -/Range [ 0 1 0 1 0 1] -/Size [ 256] ->> -stream -h޴i3Baǿ5e -mBnN5-*QDRZM;JC8f /^=y9V_xk/On/ZϽ<6ht~xjך-Q/Tk7"[~HJ }3Ov‚22V84.<4sBYxل)0kM0X+5Ð[CzWamfkDjt&Ds9 sl_?-.,yBQ0$h:x %TĂDy(VkeQ!5E* -endstream -endobj -222 0 obj -<< -/Type /XObject -/Subtype /Form -/FormType 1 -/PTEX.FileName (C:/branch/ku_algorithm_environment/20_Documents/20_Documentation/texmfbosch/tex/generic/images/bosch/CD2016Graphics/Bosch-Supergraphic.pdf) -/PTEX.PageNumber 1 -/PTEX.InfoDict 392 0 R -/BBox [0 0 1190.553 504.566] -/Resources << -/ColorSpace << -/Cs6 393 0 R ->>/ExtGState << -/GS1 394 0 R ->>/ProcSet [ /PDF ] -/Properties << -/MC1 395 0 R ->>/Shading << -/Sh1 396 0 R -/Sh10 397 0 R -/Sh11 398 0 R -/Sh12 399 0 R -/Sh13 400 0 R -/Sh2 401 0 R -/Sh3 402 0 R -/Sh4 403 0 R -/Sh5 404 0 R -/Sh6 405 0 R -/Sh7 406 0 R -/Sh8 407 0 R -/Sh9 408 0 R ->>>> -/Length 1596 -/Filter /FlateDecode ->> -stream -hęK7 } -]4zdEpI.UMz íR?䧏\}y,˟1Hs6%m7arѦ__/~z]7mNb"e/b~{UV5vX䭯\o/ļ~3/Wkњ %3~Zufb[8ٖ66%g+qwVlriwzμ\bYDl:Zlo?|1CƼIcR&\Y:gm;Mt0 :E{(66^7|?7[ClН]LP&L92}.I}=fs}56 PHP3Ȥ&V|X??2$Yt*l fU!Ve?EHH`e>y(qGTq6 - }>RvRІRo7Vczƀ퐱Eo!X =dDlۛ8ivS|ʧ|w[UyͥnYz;]3òvñU -UL:e[+dmAAMa17h{`U0]+"-\\-@{  -P!(ݠp}htEYcl'dk@RyDEG* X^tZRD[w*Nl.&VQb]zi-٘-"˦E] d-O'Ӫ陕lVͱ(GOI}˘YJQKz hFȡIѧnrN8l={gS#8tn vy0<=:۳t}C)eIi׽[(|5*iZV 7 O^ ,GO2Ϫb+$Hmjl@qf%c1ӣqb H!ԕ˫Jb&x_ޡ -fPC?FJA5UA6LI@ Zݤ|5J3+֬MRN;*<?y/@tV ښ6 -$CWo4` _IO,4$0,Scrx_C. ( -@ -K: -@@=G) Ն|-?gr -Iwg-H"xdKۥ#G0':P ~q稪e8aUK8U TXLPyiЭ(SvĎ2OR#k%̔w-~3ZѠsZPg:n|Wmӥx{:[cA oMVr. o]@m]aعG뻸ɻG~9ϑ.hs_w`BaHߴǮšE>A\Oƽ .'ULt@jI-2ZЎE,Z$eAx&iiBx1=ѡ%mo{so -$Ak`i&n\; S9]P>@Ɓ#Jѣv9ᩃ[g]KG\7r7*(YM`+ -endstream -endobj -392 0 obj -<< -/Author (Freelancer) -/CreationDate (D:20160518202519+02'00') -/Creator (Adobe Illustrator CC 2015 \(Macintosh\)) -/ModDate (D:20160518202528+02'00') -/Producer (Acrobat Distiller 10.1.16 \(Windows\)) -/Title (Bosch-Supergraphic-CMYK) ->> -endobj -393 0 obj -[/ICCBased 409 0 R] -endobj -394 0 obj -<< -/BG2 /Default -/HT /Default -/OP false -/OPM 1 -/SA false -/SM 0.02 -/Type /ExtGState -/UCR2 /Default -/op false ->> -endobj -395 0 obj -<< ->> -endobj -396 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 410 0 R -/ShadingType 2 ->> -endobj -397 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 411 0 R -/ShadingType 2 ->> -endobj -398 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 412 0 R -/ShadingType 2 ->> -endobj -399 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 413 0 R -/ShadingType 2 ->> -endobj -400 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 414 0 R -/ShadingType 2 ->> -endobj -401 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 415 0 R -/ShadingType 2 ->> -endobj -402 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 416 0 R -/ShadingType 2 ->> -endobj -403 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 417 0 R -/ShadingType 2 ->> -endobj -404 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 418 0 R -/ShadingType 2 ->> -endobj -405 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 419 0 R -/ShadingType 2 ->> -endobj -406 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 420 0 R -/ShadingType 2 ->> -endobj -407 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 421 0 R -/ShadingType 2 ->> -endobj -408 0 obj -<< -/ColorSpace 393 0 R -/Coords [ 0 0 1 0] -/Extend [ true true] -/Function 422 0 R -/ShadingType 2 ->> -endobj -409 0 obj -<< -/Alternate /DeviceRGB -/Filter /FlateDecode -/Length 2597 -/N 3 ->> -stream -hޜwTTϽwz0z.0. Qf Ml@DEHb!(`HPb0dFJ|yyǽgs{.$O./ 'z8WGбx0Y驾A@$/7z HeOOҬT_lN:K"N3"$F/JPrb[䥟}Qd[Sl1x{#bG\NoX3I[ql2$ 8xtrp/8 pCfq.Knjm͠{r28?.)ɩL^6g,qm"[Z[Z~Q7%" -3R`̊j[~: w!$E}kyhyRm333: }=#vʉe -tqX)I)B>== <8Xȉ9yP:8p΍Lg kk Ѐ$t!0V87`ɀ2A. -@JPA#h'@8 .: ``a!2D!UH 2 dA>P ECqB**Z:]B=h~L2  5pN:|ó@ QC !H,G6 H9R ]H/r Aw( Q(OTJCm@*QGQ-(j MF+ 6h/*t:].G7Зw7 Xa<1:L1s3bXyeb~19 vGĩp+5qy^ oó|= ?'Htv`Ba3BDxHxE$Չ"XAP44077&9$An0;T2421t.54ld+s;# V]=iY9FgM֚k&=%Ō:nc1gcbcfX.}lGv{c)LŖN퉛w/p+/<j$.$%&㒣OdxTԂԑ4i3|o~C:&S@L u[Uo3C3OfIgwdO|;W-wsz 17jl8c͉̈́3+{%lKWr[ $ -llGmnacOkE&EEY׾2⫅;K,KhtiN=e²{^-_V^Oo§s]?TWީrjVQ=w}`嚢zԶiו8>k׍ - E  [ly邟~_Y53rW򯎼^{7so}x>|쇊z>yz -endstream -endobj -410 0 obj -<< -/BitsPerSample 8 -/Decode [ 0 1 0 1 0 1] -/Domain [ 0 1] -/Encode [ 0 255] -/Filter /FlateDecode -/FunctionType 0 -/Length 738 -/Range [ 0 1 0 1 0 1] -/Size [ 256] ->> -stream -hLORZ[[?Z| "!GQZiV*]vQD-)(S|dYbC}hh&4OFs%4GH'\z/dzbC* O$<*J):CRCldeFVg) +eEլPe,)a KpQ IgR|#$~?'²V^=U_i3{vAԀ~`72s'-L ([uxV`TbgԶɭmf.nkѵ\W GzPoF(T3,u6zJmVYkTVevjH)5uGYuйq~BnxZix&3NIM/(-1ψSX>͖;򱥍ù1M%yb{w͖*B|+[ o%0\ -$cGD 8B^gyN"F̅$mHb1RC2w5zF _D K]F+\C7^,E>}H#!Q+`Cda;£9r!8[[ -endstream -endobj -411 0 obj -<< -/BitsPerSample 8 -/Decode [ 0 1 0 1 0 1] -/Domain [ 0 1] -/Encode [ 0 255] -/Filter /FlateDecode -/FunctionType 0 -/Length 117 -/Range [ 0 1 0 1 0 1] -/Size [ 256] ->> -stream -hބ -@ѓJaKv+gƼ\c獃{x=qjCl`l梉ũ`q[_67n&=icˑ}~ -endstream -endobj -412 0 obj -<< -/BitsPerSample 8 -/Decode [ 0 1 0 1 0 1] -/Domain [ 0 1] -/Encode [ 0 255] -/Filter /FlateDecode -/FunctionType 0 -/Length 174 -/Range [ 0 1 0 1 0 1] -/Size [ 256] ->> -stream -hެI a9pH)%eIYD,of}G}ߩ?|そ/.aBISS4%3Ȃ.%< -Ye6ְ&RWhKqO_~`q^ -endstream -endobj -413 0 obj -<< -/BitsPerSample 8 -/Decode [ 0 1 0 1 0 1] -/Domain [ 0 1] -/Encode [ 0 255] -/Filter /FlateDecode -/FunctionType 0 -/Length 323 -/Range [ 0 1 0 1 0 1] -/Size [ 256] ->> -stream -hLVa1)![=G)JIDD$J*"d ]3e{^wa,`]۫c<*/C+ o - ?߁C50" 5ġqn!E$<Ғ"($()=,F*bFP1T@qHommAtIHh.!-S]bHCtϘ&Ę3}Sdh`fXVnFb/[qGiJg(*2Sa3OujsomA( -endstream -endobj -414 0 obj -<< -/BitsPerSample 8 -/Decode [ 0 1 0 1 0 1] -/Domain [ 0 1] -/Encode [ 0 255] -/Filter /FlateDecode -/FunctionType 0 -/Length 313 -/Range [ 0 1 0 1 0 1] -/Size [ 256] ->> -stream -hdVae fH)-VmB$Ify~> -stream -hċZp1)c -QJr)І6swCӣ[ L#hoC}mlfdc6BcIcGA]xc_f-td$^IR7 )K*TXJH\> -stream -h{OAa3[f5iEEtq;EB6 -/ZU^ߞ=,e<率g|-&KNJyb |#Ov< :i'}z> -stream -htW -1@U)*iNSޝ$V#ySx_r~vʼS`{.)_ WE͹p)s6‘p}%vf -1}ͦuv+?1m0 -endstream -endobj -418 0 obj -<< -/BitsPerSample 8 -/Decode [ 0 1 0 1 0 1] -/Domain [ 0 1] -/Encode [ 0 255] -/Filter /FlateDecode -/FunctionType 0 -/Length 203 -/Range [ 0 1 0 1 0 1] -/Size [ 256] ->> -stream -hތkK``"ZH(QK4?w?S{FF1t500ɦ4pͰO`Y[%4J`i3*k+[Gm8ܤ-j]=}:@ܦFhN7wsN?.OEn[q[tn}ˇQ`B -endstream -endobj -419 0 obj -<< -/BitsPerSample 8 -/Decode [ 0 1 0 1 0 1] -/Domain [ 0 1] -/Encode [ 0 255] -/Filter /FlateDecode -/FunctionType 0 -/Length 117 -/Range [ 0 1 0 1 0 1] -/Size [ 256] ->> -stream -h޴Y@ú+ *"Wl&|t'3qbFZ ݓ#^֢ +C\E31NUb3Qb/ZW;ٳI -endstream -endobj -420 0 obj -<< -/BitsPerSample 8 -/Decode [ 0 1 0 1 0 1] -/Domain [ 0 1] -/Encode [ 0 255] -/Filter /FlateDecode -/FunctionType 0 -/Length 140 -/Range [ 0 1 0 1 0 1] -/Size [ 256] ->> -stream -hތ1wXmq8i”ɶ&/O|¿MЇ ͞(b1=)2,qR`EP*JUSӎR4&9@[QG2'[ؠ`d%<`!+ -endstream -endobj -421 0 obj -<< -/BitsPerSample 8 -/Decode [ 0 1 0 1 0 1] -/Domain [ 0 1] -/Encode [ 0 255] -/Filter /FlateDecode -/FunctionType 0 -/Length 222 -/Range [ 0 1 0 1 0 1] -/Size [ 256] ->> -stream -hkoPL&Y[]K_cO紎>I> -stream -hތU@'Zo)]C8 %lyo0b<~TP^Kg(ɣZݠkXY2,ΙM`vy3хatnnm5ժ?Qx]f%ߎt -endstream -endobj -218 0 obj -<< -/Type /XObject -/Subtype /Image -/Width 1600 -/Height 1600 -/BitsPerComponent 8 -/ColorSpace /DeviceRGB -/SMask 423 0 R -/Length 425911 -/Filter /FlateDecode ->> -stream -xr[i&}:gs!;f2E{cw7)eVڪ,_ ʞ=S]U< E/`t>?$w_՛?_~ӳ|\T_^__?~sr~)KeZ+*b)-+r5Ev|z~7?^>y; q4_,G3B)W*˕p\(WË+\ǥJ\m\Jz|R?;?=x{xn k}[?}׺y~|rv}w/UJQ-rPW&_ -a&ķãpr裙B1[(G&*J^ķR5gW7gӟ_׏]K|W׹RT9|0W*f{G݃ݽ͝ݍֵͭ}(vv3sbrz|]zV=<|&N^^__;~lT?=/U JP:C`+ -af{`sgoc{guckem}qem~yynaq~a)]X6zr~qiaqyqyuie5zA&7J^FWƽ/.Z?_;~wrR;OrPNb|[;k[+kK˳ SsS33S5619699_䚜ٹŅ奕ݽã\>_,븑bEwgחW7yy}|O?TœUZ?ţj(:8=7?1==619:>12>>266<]C#5GWxfl$ƣ׌kblbb|brbrjrzvjfnvn~~aqqy%;8:roR;99;I&?Z{x~_ʕr8_dV!:3;;{kKk +s SsSӣ#cC###CCpg(38и?}tphxh8ZI5:>]ɩ05f旖WV7׷wv2wR,W˵z-J ]^?3V?͗R% VQ.!]ZZ[[XZ7gjrdllh4VC8J L'wvhe  k4bML#Xӳs3ss K+!Z\݋0U, VKݞOnn墹T??X+|1_dBl199=ZC ^t]\\ -X'YŠ)<=H~uX`~Z?\Kql+V8:miPl:437?9=3>95:>1<6[ѕR@HsY.P&&&'gͭ흭ãL( -ãa(h“Y҈U]^%?ݽ_:߹w?cK\1[(e 0m/$}ŕ[M}S#cccaCp8JffU2J')P_ɫٹpQ6/KRZWN1r3Q6 ч¹gѕDXF!W -ϟ?bUŰ$av cO\Y }3Ih3llƱsVɕWTt/MÕNOvWP>>>9?«L6_{'秧Wgj/3B*jŠ#iv|}s~\?;+\(_ʄiapͅi͝ݵ[MMOıUG@{*J+M7TH}́j|rr&^-onfb)W'ggW׷׷ww7wWGˆ .̒ʵPur]IIe??ӧY\=_82;{!ZZ]_Z[Vqh=^K~sΪsU0 Qo\=$j`j(GF'BN8d0[~q_OoN/˕\[JDFVRXY~׏'a(oVQpp=< }K+ql g+kUX9ƒ`[WtTr/m҃#ãc!_\ -W{\T7//nn??ыR>dvR,ג -K-}zR}ZkaЎ2݃íݽՍյ1cC##}(=0LBfU:Y lW5Ҫx* -iUtۗdV+h+d8y052`N'W7wwI~9La==DKL͗JVoFX'jT=>hHcGD8@br-k!W!?mon/o,-c'g&F'GBH8FHhrQ|aZ_^_]?<==W_󇻇뛻Ӌr8",jZ?ilX^^?t>rRR͗+\~e:\Z]_\cɑFl5V=j՞}j/%VywOX5덣woۮ:{Î -;J]1Zc0󫱉陙յͭ$*jӓpC(rVqXfLT(Wʵ8ja-ǰ?xquoU~/sRT=0pfvw7BlHlV#;JZG62_eV*mǯLVd1ﭿ>808<42:2>>>99=ܗWFV9`};OZ;)*|!zW-“8J˕ZY?|·/RP -MMR9#'Wr>8=;71==:19[ j`0&jVz;}/Vہջ֓Oܓ d+0dkDR鮪vVq+ye)I~"x(zJ]{K#zx|}swzvQ -a2z{Kj",Ukjʟ%JJ5./f*>Cp0[ \|T\l56Vaj0PS7}V}CCoPuMXcޞVZ9L{SFU:Ә[쬋Ot%gBV\>2<2:>9553 +Q{!Tk'gg}a|x]_o\`[Vz|zys/aP?|/U2B&_HN15:>CU|TK8 -A6L[ƱUǾ><3bpH8*jD/w)!w8I{_{70Olڛ}s3ZI0|囃/h|Z@E8<:6:΅-µEɆ"J~v~'Xq~맗a=<>=D/[GB"ԚEX=zXN/~?t>||z_ \3ʄ%1q|cGi@Jw ,J'M(TjWkM[P{I?0gnP؟Jds^6Z:$pj>(rފ IffW7wb'ՂSk~z^*WR6_ʗ*'UquR#e[;E:>?e L(Wd*nomllji9OMObj`7FqPC;«$Uo{'N̪uQoa{;:oVVwNC}y"aRੁ=E866>95=7pKZ\~+! -]/.CU(aYPU?/TKQ6]~6V6WVgfgCl51<:,L77ڣV1ɄU# -R=wqBuOOaON*9L0Ӎz/NKun,6J6WSYsۇZۅR͟=)J$g+.r3X|T"뛻`%~|}ǧ7a\U1W EXq=PV?f:sr/|ތVVfBl&&ƆV遁lRg{Wۨz: - -눭U5« ۪F!n8lOwZk]٭T_U=>d:pdX"\Z]X=XG\!N/.oo#XE\|PNOk'aR;{gN_s¯Z[ro?動a kV;ql230اFLJG´U8C0V<:40I̪=2mU*\᫞{ 8.k}uT0U{y=>+nS8y^ w6Ңw,zFFF'z`"J*,>==1*ºO_E<490:=/t=*ZR{~!W*僣a!w?]]\Z]_Z[bсḏYu57PţVq {oRoװB6SV}_GWOOc؟Dd9U;tM-Jt+' ɝ=H֪jJqaۓ -8[XXZ^[ڊ" 5Xq{(r{Ea -SRuqUJ(rY4z\=.Vj׷wO?sϟ?WOr3كL.vvv׷vV7Bl<8Fprxtlhd4c7nboYZsV`*j!׭’׽UqYVo2m:1p<аAuu19ghJwD[f}Vm={gxxgo?Y!&&ffVBܣMZFۻ׏$[OoONKZ6_r\=" [O"x -?غi -j&W88 d Vˡ}mnqyjn>V3Qͭ8$j^d=׺Vt_ -zǮZVT]iFRԗ~s`xYOx>}Nbkj+Jͯ^+z7ڻVk` khxdl<"{Wַ"lP*׎gW))ry7I#|˕d"r^(U/I_}O*zR)VBi0mmlmnm.,-.MΏOMcCp[Jvy2a4VU}=nLTs9[UgB{*bfUo*ol5쌳ڋ~T_{O0׵بm``eT_wZ_J3]t_ EXkaiy5`mMZ1$VrUP,gr\R -#X'IU"O"z&#JV?ɗ*b9݋3zǾ853V`~6rE",%['a8*bzyD o:㌢R5jՈ7wV7Wg'gf1cCq{Ȭ1UDUo0aJuVZ5KiWJw_N[%O6xV`#KjdYfUqN&Ju v'W1TGUsެ>⩾tݽ{cu tN8` )ѱ陹xksk{0~}2!ۏևǧ-b9"< #X'oV?M?_׿VZāQ6͗9:nűR(ZGBx28NEс*.K l*FNȬތW]>l%eq֖b{'jb5㬞fV=&nkO쬱jEX]_Ldu -#XVTT8,ɩ啵ͭdEo/_>~1Eu$_,g\\*q"H?v>R<:QLb[MLM>$ -VI{^Pk1yh`#'z+~T%]_ŁW_#V{FT;|y( -ԛts4+ o7U{j eI:VnJ'kxtE(r;< J%D7O~x\=JIY6맕jT=c)o|r -A&w<[ -J>7>9F;[uL27GvYul5տ8"k0nӪY[' ƿYfNfzZ Ͷӽ]'u,6«Wds0].JE?WSGK}9oMv_3YlJ5w _)ᑱɰDɆz|Fno"pǐ_5>>[RC+ -j9"<9@9",U//?TeG~6Z>pl# VI{O:U{Cɪ޽]ULfU0$+)F{o1jVVIG\1)r#Xwq/_?~O|taztyuS;>--RX.UKԯSC^CӋj~fa*.cObͭ͝嵍مp`co#8Z%c?O29aVI=i|;}O @$@JVB A4ݷͭ[I{AIwUu7ug A2$9d tq`"x -:"+l pU˼bhA*L/_KQpPP~‘h"IjFyE'Ău}[noﯯo/O&Eo01Eɺܧ tdvxS @ @ xdX8I{p{dT-S\<m -T5ٌqVpW&Z7W&vV BZ܌XEu*@mq ŧ -1lHYJyìuY"]pǍF>/OΎOdzy٪J%_. # tdB̸b7-X-r?;,¯h).š/6Io0,B5Q5Η?@ @ tvqon[^?$تGVu\l2QB1!cc@8 l>v3 -'`+YQÕ`n+7/93+fBw[ v[9M?2ۮ"bBLʒ-%-J&% -NtD*Ukxd>\.U*]/Jb1J!tby6PVÃge6\+b+dk7̲T80 -a,krRp<羳wpxtrrv~qq`?="㳭=s?)BR5[&l>mH@ @ muf+b+^'}z$*c3)`"EvSl% &+$>+nڠIPvl%.a9͚-XJybWY=2 8bW'J,m Ɏw6aJ =albhrB!U[.["\ -y@dKQWwPKa, K#F/tP0fIhux=XۻG'g,Ex#ZAWqk)AXKlZ,'d!ZѧCA @ kӫ]\Vx VNٮA#W,sD:cc[[1=JҊu[ V+4պYYr.¬u}w["rJ+k;PCI@fZ&-%,YutЭT,wN//"AUŲ^4|T §TI2W>itYjxP*orY$HP8JFQ؃5-7i)+r ۻ˫ӳ |9O{}&S[nя&@ @ ˫x0̚nت{mE# Eb`[ymŘ @)MrJ\Ѻ*5(еj[ u[1eZL'ebPKQc% -Ze`5] J)r 4c( BrLgZbsrS2*|!_.qH1T0FVB$4%],W/#& qǃz:38E }k]_\,"&)흽l-Xh2'%E-X39go~zA @ INtSZ []m6+FR+lL$EP^/cg؊Zx [b6d%*u[7U73=].mXWWJّKu[EbGG.#P$"V>9<9;_nmZ*ɕr9_*eD* V AbRޮXv,+Lbl褹ȡeoؔYB7Ju^ioݿ5мIQ!,P$O$әl"Zkh:[.vwwq;z׷wwwOOW׷覽rk8dw8MfĂŊ93 @ @F[VMܬ=^; -[ZaQn+O/|v[iܴ#[^iűՆPݚ(xD`E.\9ybh&{=lRJʯUD6$۝Fp1kIr$^dEtY6*FVk4c+X{*B-e% \ɫW5yvme_*hw<^p#T:*zx~-r?; -n/nЭ;{ٲ?wC"Z Glɂ@ @ ҟ'K_VOFSlզ؊KF%_*gm -A/#Vtz 2v[&+ /e]nr-0X[Lod^lżX.^?e 9"*װwK;E bP_ҍWFĸwK2G+[`P1@,EUjNP^|j9jP[4r|̯4AR ЧONN//i WOwh Kn{Q?)ق+"-cܩx @ 9ӧOկ_Nn8ZZhZ5[U2FP6rr&WHQ:F0[vE@FY@ $p)ٲv1V.r3+%Yf hJA+!Օ+,x&tBp,{yMt6[T˕JQ7Q%[U.vA]kŪv-,~YU&.nz-\Z,D*+tRk3H >:,X̂DMGt![o0)BXp4ZG'C uX @ ׯޠzVǭVFRo1sr:x`4VPRۊ*Z9gJL{ؠIvt')"=;1x%Ӣu" )X1+LLV.+Un[V,嶛!zz E.LVbhI8Pjqg*yyv3B٨jX -#-u^ Aa؍XU.+!&Eؠ+Tw-Xb~ V`%ݨ_?M}",Xϴ|w`:)`kkJ,Xl8.v/oA @ >Ww}N^lU/W+R\" H y~;”Ɖa6SVSW\iYKƯohB7x@;GR\bb\K6reYЊjb]f;dA(+KP"nۻG'g;˭-_ y}B[~ò -z!_*udj5Yf`c5Y$^%YaoGXYVX۫(sEZI*N6f]hX -jd73Y o[1cV_w^a@Fu -#܄h拥\dfr*F WL\*r5-+Mīh-<:hh_`} X+:E8ѹ -H; ?\]ݜZ)Ig0q֔)CXŢ[~@ @ ?ǓpvNPN |%uIi5VSy畭 rgVIUf}s{WVbT.[ lRZ(HTEeY -OLWrRϜW8Bw\slHx6?:9;m;VR -8GAUō[p VtʃdJfz>OCh< -Vg0Lͭ1Ex-XOOϤwd!ZXpNRxNfG |W@ @ ϩϟ?l;hwiUXت0j"v[ӹB"a}졐74j{0@PCr|>SWfQUknwa!$v3Z%nuhdOb Wf lZM9m,yV0g%vTZ tb%ݬ%ٝZh~.\P(2:eTe._贻0~# p$z}}Jr ->Q#Q7Z4_#:.I'Szs2_]\m6V7"~2L.O&CAdz+s& *bar͗E00Ҽ^?i{">n'C )r?<>==)[ڂz]ax:YԂ5E)k@ @ ??qkv{faVMR+Hc+_@#V - H^hɕ5)ԭb+'Tp6n8YHn7}7be -UEyÃ2s(ETeի֬@)sX"f8͗J ϕ0ŽD:zb~PWb;DQ>>>:lX&P*A"DO 绥x2>^*Wz QlK$}VbQl"]o[4U6ų 5UhGO>X2Ы+U{k )ãӳ :[)z||ENфFW4E8M{8Ex}s_ @ $nhuk6fV-ƬZ't#[(xc+:FPb+TS rlE.c@RFC4HM/Gv8qHjMq]2VtvڝRٽUn.E4>QEz(`EX/ ~-rl'^^^zQˆQTR Ipwp[8x[;''%]UZz#z~Ef3o_^\7ZB\b._Hgd6~IvUZծAU)ԩEh*$'M!,$¡pX"l||rvN-XwĂ]XOO/ꆤƳEo0ip!"k @ @Z=??_.viѬ66Z1Jz6_Les[p j>a'aleO) @5P} -:6lQA6IPr)fOV٩abkZaPB 9dۄAa1 sd1jWd.WA,K"T?|0uGguX?>Ɠz=j.J -‡EoA<N&BdT -e흞_|a rPJrxpƣt`Q "JlWӥj-jOz|~I03\WZƳI"wBk&NN,t2R#"Mf}@ @ lj Ge:[ 'S2=%&>2#%a"R`EbiV MVMVB>4P0V~+& t[RvĬ*beᬕ$śxda+sd WRr% KRCB_z:ʉL>M$n鴛ǭT.W2 Zc'UW0M,ӎEᒕC :nFfRRMfFfe2B2>@&׳S|"EL݋%v%)[+ - `YhiE2".r/tlw{d\nnEWȝ"||~z.ᘤYs:w?O?6 @ {Ox非p~WZ+VlUcvQ*p4F)|0]C,!2ZrVtbI,faL]l9Op͖tIJ~ny7AM2Yb\nENh>e'ss4p10e%=U⼡y_l.m#Mg B!dWZ#Ы\dMч1!Lf :&IM 'e='Rh<%E`PI& **Β-+=oc<9();HYZ1|CK‘h"拥Q7[ٟHp?\^]Il!FX/Ϸwd ]2p4 dS?1_; @ _F3;UMjcZQ䊥L>dcT( lz)m c+me!Rf% }VV2Sp"q]p@іx.9٬C{uJ-Ӕl †AKu)W̓)%TBە݊:d1ZVkonssRG.KQ7ܮd&CFH;(*(e__rϯ6" -B!ϘFNV1((d-p-4i -GUʛ:wji x4EDddEH|xtrvvyyEB W`Q-º:<կEx)2UzT=8Jy,Z(sZez؄W+5ë/Nw$EC{zۻr0}TKJ8W^NfR&x2+n`84u-XU{ t+#ke7֎e/(V owW4T(kMh"w|~ D,Xh|_G @ xׯΗMzvlU/W~>v2F$M1a!(N4xT6ĮujU[c6XU"U@1f咄"̺uII73(]Xs%KZ%6p\]xЩK3xw|{g?:qq҂,gS'Zi׿?o]z&+W*/7Q2fTfbj\!Y)bKћ$Exu}ܤ)V8d w^€BP[>Ȼ99{h 9AMS4hBV|Xy P b Jzx:on +rg绻ۓm"2ń ,2p>ij@ @ x+nnwѯvB6V+U]X2'[W1)"m!A*Zh6:sX٣\m8pG#sZ+4%vU+Xrva[LIQBH=8<>;?:=l.e -f3Lq:U^~4TljtJn.% H5¬ޯjZg øv[Z*Jvl)ٓ*7YVA-DZ߭Bjrl$2 p< GzXs -ŦqeвXwnwE?~D $:%)H\]ߌ&LCRE G4^]e[LY|K+\L>0^o$WoVx!~;$${XEH,X[ĂEx -z@ @ צ[ hlu~%تY!}:c/3B2&RX<jYQle]rq[arRNJubޯ[[ E -=Z4ȉ(IaJR&nAfRxlWtJ&Œe2#V:\'f*-LrL&W*B /?{P4N-xLuC oB+v`OsR4|Ģ,c6N{}sS@1YzKn\0 -sţ?=-Xa]ݠ}7EDLHp2[ N7@ ~IتuFSouЏn -#HU:1kȳ #&ʴZeV Vk+zoi* PӑʹҾ.$$c9J`S݅r,GJTA{ǻ[K2S~.;|[;2[, #_*j%O"*W%]V{p:+0ĐM& [JxDX7LnSL\^2Z-nn>AXU$GX$x:w,s*EO[TJ5W,b+ĥ% }ОLR'ÓM\k? s-\"bX5E\nvY-ND{ii` -m؊D? X`_ ltd*`gAlS%ّ׷zYoDn=TiϥJםL.rz^ob0ʕJ: 12ί/t9zOcɤ۬s)o-X4o-;R=<>XrzǓ5!X*mNzu-}VO/{dJT˸>i4E(3&C-U\MgGgW[;=Jҙ,Vј?<wbf>RPl*+Y]-\jP8'LWz Fl3/nnop+CXO/8ExsvݟSJYSt]N@ @ _~Yr6j]k)2j VG? e`\<p 1nT۽!԰@mViWHݺUnuZ_[_$n {I4euXq%YW ^7+ˠE\NfCm"&;ݫYɮ !cyc( A+B(r0]+ƻ{%@ND}@0jK^5ƳyqB5P.w|> _S+/fyQKRocq9Ye>)Rw;>h -$Eh_(mW $kL.hwn߯5[Z=Wd(V+6ۚu%E0Bv;bE'$O\+b, \YQAMPRĴ,RyY$Kw]l~oN:P-@Rh+N3 @7䊸 ut@EnJ$S}ģ z0p<4@=[u)b+YB,})t=}wzgJR+Z|~VobB[ ]ln~HFZK -@xsVr~kgzV'6cg53f +Mes ERtd\k -PXS5j,E -$E5X:z߮?ij7wvp;`p +wa=>>'m<\r0iZ(šGt@ @^z~MШ7*V&e uAd I{#Tx :6VfB!Eo0Z YBPN'#VȒ-UQg⫒v(Lap4r7Xn_5ZJR2h7ŏe$xvάޖ\ٺ5M@U+,fRI^zp`\MX8EΐQ*zhcx1>~j !*csI\ZW%s]MnAYA,EݱtaaD |\ I0Jsta|^#`!zwx}}{rz;zQ?DwG,x:-&Ϳ!@ e MFZ+ujuWR&O1ݏ1$U`r:iI2ǔB&~N[Vv|dL$%1$ "MVɩqr )i-[~%y0PKjAtdeS6*t -T*/K|+x)tjPf[ H5B97>tj^,%+ a@DZ,䊥rs0ךmZS͢*TtqyQmTЫ{l= n|~j)_*S"IT_EȘJ[O :ij R)ˣGE]G9Dc`8(Qt+֌BίIjgXAUh1STV~*b̊+CԈ P4tkV{fKb::>;?Ew|z~y|zF/.N^辝h0Y)`ao8^ln N>!@ ׯ;{W/p {0ZjXc3D"]kc+7ZXY}usڰl"1@ -X[̛bvjʁYP"NS2E[َ. @!E()49hbJ5K9XP~XtUz$SX"ch't6nŶ(Fӹ|0=0F E.* -Sz~럝_K8ȽZ8Ehv,0/%JvmvzlW,Kc4Cϳ?4j}|zzzv˨ŨЩ`PP%+E<ϯ{Rh.Fb1ռ>%;Rx2\ifAq;me llSk],X ,X<!.rF}r,"/q N^XpMF,d:O!E@ @Ӌ k^ln۝Zmb+jdd d&Kfx cn+smrV+ėfVru\QBE~X_L\9ޓ耸t[ȕd>"2TN -' -YD[.V.\1%+-VU;-HGgFj}kwp<T*[(c[:YQCl8]fm~-rFOJp {f]&rh<%8zJ%Z+es9J -e[l4Id%_Q?@ {{=7˯XSHÇv;H;zJp[d -&"f cL&N#zQJbY0/}`0Ee,\tl=XGǧW׬ZՍ"# `MKsx}OOoN@ 3HlbGFhت.Wje8!hT01Je0u=P(2 sXKa8Zn`5Ʋ̛6ޛNu'bJ-[D'Y̍Rb;K&Yl(eRbCmق-6H[uOhh\^\^_^ߌ\Mijb6KBS LRqZMVzP\y]׫f : -拳LP6*$EX O˪"=nI#E]/lvo>-n=U\xtaĒ痗~;G%z/.ONWda*S^LYoGGp-9l@[\l:LPn+B04Yq2ZBT+f!,0ΐL*Ld:[nmsv>]7wOO.!biEp[i6Jp^_ipB,"Weѝ;m7)v ?3H,Œ^5ZlQ `3N~D rx=9;Gw15ᒦd`<;>>E_h:@ @ ?īm?luwn$ -[Fsyױ?ʋeXn+t\n|VN X**bL@bZc,!ȬV?lTlv;l5Vfϕ[QAP{eH XᗳjklSrizs ]ٴ~X(K8W,l+jf2|׵A̅YdFDu:36LwwI Q(`gwo0..|Ű*X|P*I VRMfϯYV˺y_%Lk2)tapW'Ln|wI5C͇ jH G?f y:ѨVfedH+YYc QA} ķIJ~о'Y*v7[G4wQ#0 %xkbx2Ίk2],vNN//onU@XO/4Ext|gƽx8,|s<]h<_l"~ ZA @ Oۻ;˗znݫ5zqU^T e=W,x:'/b0dܭN9pLE Wm%.[mZZ۰[awUYn(bYܼ$W[7VqH.Erm%٢8l;SSy twr†Wb)sE8 [[ CG2VXV}xtڛ̠mD ieg-U99=Kr%R.J0heRxߔLHP* -zBŲœ)И7wZ9[(3%LҙV~P}:Oi:jXx *7,kU $*dJ۴4(˵BDyѐ !T^EWaqa`q{jB}8-61:<>=x|z~y~yFX-2pYrf"xs{}:}@ @ vׯ_fw0lvh!A4L`+\F"` _d Gk -[qTEsRaZtt[ M,gBwl "n+RuFVMm@X@{lW0Prʲxb"$pSZ2+ȭkN':ۻ{f3O N^o U,V -mJngg\t2?h4[d%1?qU7d׫%o >_qHЫHe%(r&IX7ͻP$FseWt=X"OA?˧sX"Lg±_S  i[xM#/]}bݺmП7dJz\5eHіBGj" EhCڨ4ʄVv78KYjb ;7YjJ,U&(lz\Y M0 +[(J EO,X؃uܟD 'Vuxu}KS8-8)'k1 Z)_w/@ Q}A~T{FSou*&dǓ1*U%Rc L6Jc@( =>?Vо&VlK2Ip[QT&5^ 9w1p q[]ͣfR,`n?8^,iw0)BRg nK@ @g$_.[vlWjIV8!XTI<1d`+l7I3`nnNջ+ģ_2_qU Klw* -x[*T]3=Jc#0X^?܃!Z'\NpOrk{wc D+oOΖd!M"b1-XˏO@ @H"&Ш֫V4p%;. -R|<X ф -, - yHګ.9l khXꭸj(z7_Ojwaq AAY+ʣ2\$ff*|TVvm1k}v~y$W*eev[)BU[ByѨIe%лƧ Z+~4ad xwpvqPkءݽ?ǿ?3矿|O$ם.UeU` gtRի=Q -B'th|ATK:e]V*|Vy% >yPwU)+ - ., z[%2vMtOЖ-PQ)>M-dsF!H1Wd.2CP8F`;:Η[;掤"?ǧk/[ݻ7'lI)Z|9@ @ ^VV뗫JQa!zcjVx`2'/6v>=o^C-ϕSuUM\MY1 \)+-FD/]AgƨqK78EK?xEF:9:@FɴqkX Dbv+`[Si_ h- -X˒K,a #JEVKLcf7o%uuO[c9>A?|C4](y!T )ݪɢAkU~E,X²AYa<0H1Wk2/vH%I?<=>=?A>~`ޟ_KlYk4p5vށk@ kͭN?ЉɊajCL⸏bSFL[Z9]l YY.:)N9 V{ZGW*Z~ݷ n :AMtfګJdYde[OC"ȹҸ.[ Wv"mJqJo' --Xo;e Tɀڒ^ceH0]A\\T0HRMᎩin)kKP-Oo_?6LPԍlH"X0nF#@(I&[, s74nYMYDbN8]:`9=`8FD:+/f Qp9x#q 7!D׏O/˫ãdA -J.B"Muʑ#G9rȑ#GM۷l gf\k+R zJ%Sh -È\|Ame+xxϾPWˈǾxoaKUrn%j$ث%\&H%j~2 --ZmbU!Rqf*ƎAF,*m8LKalmNET,]TT"I | ?/c0?8D*iw;eRRt>fl: ÎHrsX^2\5Kz ՝.pA#Yg9<*z&C!Ǫ -^W -sDtEArGMϋ] -Vlh톾H# -Ut&L?I,X ~g)PB砹) ï -i'[DW ܽ UzǓ3 r)Bhz1-X n<;?GxAX(E%x:]_e/b59rȑ#G9r+nw0MVTlU [ "LJBY 3\a!hN'C #\ =-d ,?Sʬ d26>Ḫ[UE{vLҹ̠tp 5LSX' CZ(G A;, Dw}fBQJNׯ_*dR\$a$0a 5ONI|M$ be]yxx)Xcw"f5 jbWlQJ]dZth<#OIҹlbNiW W,;{׷o>_|o_}_ON+СԤFi%:NEVd#^r,'h8݆\^/ H4 Jt}sgbϯu~|O|{go+,u*ĶY5lZHv(X!;V98$ȳ2D-D -'(&]!ACǛ"hnje36Ţw:8R7e+<\7(Es:T)sv/IPrؾbœۻx*CLh(L``,< EKхxVL#=Cmb7̻œܡp?MZ-R]VE"Ii"j~+J?觊jN*PAa`6O.o/ƓIo0,+/M,^[x2~x|o;=; -:BkXU3W~3X Sp4`Ǐw9rȑ#G9ruu4lAR-Vjx\>DPCpCHlBDtAn+jqTp>uSA -VV~֗I !8 wQbʂvNM,U`eV M[3 ~ Yt.4OPIWH *qS ߤ:,/onmolm'! N/!# dI=Nb*Xѡ?.T*|a2hSƊ7[r+BVj^e_q:Ď(ݚS*Gg&. tVxa#ד?*tkwokgj'St&[(˕rZeR)E/+FcL6R0 QT2]jEK םnG*E.3H .7|`  d:CV@pt -AOψ?HX(Ep~qS0E8o Xr9rȑ#G9r˜V'v@THʕ| xVrzxgllnerL>Ld8+}AչJAf $9.j#KXs\PLÉN'֛d6N!>/X|1[(l -bX*`JBǛCPxs%,+4x;Lf;;ҬHpen`8"x+hcOxy{S7''ۻ:")l,X;9rȑ#G9r o߿WIa V!D`jl,F;n2)1 0Mf+D+;Z@Ve BMܾxx/l߂."7q>JSfдT{ T33U2|žNXٮ}8ƉWLR- -؜إjf*Pd+E\X`Eb}cZ\9P,{ē)͌ -*d[&>R-w!?|9Kbpzׯ]\ncs+L9.'{>{v݊g[†v3VY+}̻aҙ\GZ=W(UJL.K"x0^L&_,=ȎUTT;={|Ec1d, R NW;ȑޅ VtBr7:Qɣ !\t6|zd,r{xxB7Sv>?^]p< F``JXӍ!LN`4qs|m_9rȑ#G9r_W^jViu{FRGMlU(WR:_HdmE?5Pf:g2Zhv[ 3@P_T%%d_&q%,a;x,P3涢 TfRyѸ,)BTy -]fW :/pqy@Z۱,n瓆 {E3QL@-B5EݟfT+KB!<^05"LIX qd&S(Wҹ\՚o8=2:'Cq@gT4 }3aJ'uuצtNR;A…-QgP -2|jvd©4|Q`"k"D:+ yЋU hW.08̗W,E((ZrB <`)Xj&_BBe.⒃*]ezhCGDZDXēl\"Q89UܑYH(`5 jYDkSV=l;],W,Wn0-T!בĄ^]M`$SeȂJ,BlnכmalWN/d)Bf"]VpNqy|9a,a`\4ol^@=O@Xo7g[;{8E  /a.^\^9rȑ#G9rםGQ0,vRoTj DeKP2D*!{5mH,y8sD+E WKaYM~1WpVkP# -Vv:Bo -إ.,ad"Zi\oN6^bB>_+͔XjE'Uc&+q'1((z#xVǝ Wx2FaWêJʥ`u:ǶBW };*CjDX2qsw -1KvodQ@\3Fls")2 FZ GnATZtr=l"DwLr#)p$%R\< HroTN/o1Yrwpyy}px  !j d:Mzrȑ#G9rȑ/0e07RVm4KU,[U1=[(x:'XN(4h?N8g)ѝQqm>0!HS\PT4a6lE3Uٷ4M3tkg7N#__T#/RJJ3l|Tih2?>ܮ4`@2CNK4EbOsR**sw rFW5E,CGβ,,)B(U Ƚ?])JxϏ?* -8$X(C;哰F0@Ѕe+䂠bML -bxv"[ajumy VS+,<$'DmWPԂ&+#jm"ec-K3 W|uiUmngҭP,1Gx;T9 -,eV2gMy -\Qŗe[\ Z\riSv*jՊj%:T6  ㇦>Fb7[u7hڳӋ˛RT -a`jIeǚ!h8QUΩEJnO4X9>c(+ -~-@(.UսRf#fx :PNT",G._<=NPªCT[^TJ^ć̓NS^9 - Y; 0 XVBVAcTExs_^ސ W_'zqy 7I?g)"G`_׷E9rȑ#G9rϧϟ?~7ZfPr^B -ea`!F51X# !bj WNsA ESujgr9^*W _6x^r8 NDV+ <(vZ\^Y0ƓLh2?<>9 whB w_}3"|z{8C)t?#cE8% d%,u -T}&hȑ#G9rȑ#Q$V_~ ǵfe!XJm)@;8'h VF؝`#sS9MAmX*&\2_V*E*,eJ²*DT y Bn$'xG -2:ܨ*³U]d.DH+ŘWfϠX)38+Ԭ={AAPM -]g@-a\X‘ ^p4$3Ђ+* -STX)hw/nJj& -}  KAbzҭ>ye]W9HYR+F -bA"6h`ɺ@އ2_JFCי&+$+$EETN6BB|(JH,LDbl+b2x;tv91iLR0_K$,C`46GN ,"=99AfZ6w۽8F+-DJ[@}nv6 =??>GaI[9nUe8^ãX2Q@[TTi$|aS-XObԷ4H-X/oR, -*VUSr5JAr0 tw'5b&+Nrr*ŸPrqP$'T܇ M? DKoln`p1Y]0EPRȑ#G9rȑ#G3[k;8<8<FV!U P5)X#B䱣Ap0NId -W -!mNPVX ]YZ YؾWpmd+U느y@Ra 9:BSLKa: -m& 5"UD,[!J .@\Qn!\q=fIBSyI*îLbvasK}csk}s3[(ȂU犥_~{ w*z4GL/ ,Z|VLEbc>ԩpT:Gifs -\AC.p$l*X^8nln]\^`h*O_> -w&urzXևio4FwH9rȑ#G9r  GNByR\M )䶊ē\>"[D즂A+"JjVveW P8V6D%3!H+R݆.aLu.!HU,lb,rŪ -+w.mvEU,QH -rQhc.,Mf *EybŤ'&ZbUe.d7ꖸ-4cY,Hwν:BΥ"yR9W,x< f8Mx@<9{|zE_~Op~trO:ا`lg-Daǟ/<^֯0_}k6P9' -C: sg*+d?ery$^UʕZTi;x2;\.pxt920lWN7:] >.,`cdP y8Og;GĂuw@ -Q"<M!ԯ8E@X$E8NW18m#G9rȑ#G0W7lUo89R -VhmCh2%/V. 55KSwV0 .;SS}DDȻXR1($pA2•c+sLV{Pz/LLS]'iRԞ6T71NSR/=Dp fWi*fy_x‘-.UBy[$r -P v^ʗJ2́n$"2Ӭ*RplT[!ML.OiVݪ/ x:x,%L.-RPdDiu:7w_~cs:;̫+k^?Uj5pM(?ȫRE)ƿrk; ^a@P*#Ukp)W+jZ2;RN,X`AxnW(EGP$'ih`4F Ó r$w"D_+dck{0ip4LFu r!{o4_ooowJ9rȑ#G9}ׯ_#,:k0S5NT-+Cl-+U*5AX#d+|ZQ/6`v4ժPBjPaE*Db_ު_>,-49Hj? wڪ͎B"h^τ?RlW\ id)fRW~-YA(ުY8N(jW̠RWJHBc gU oe:MLujZl23Պj|!gY#PtuzL. -5%Y?e"wө]@TWڜ_Kk4t#Nt{pT -KE OT"H!!GbRz|vvry G0n{eѲ+K?Wjԯ*bq0PXwƳ"@u^9nUStr`]Q^&SrYW5*HJajepv(I9YT`;Na7r9nq! -/ "!"+Wm4(ERR(?IX` W{Fo0 k4E)B$a S;7#G9rȑ#G0Ǖj}04jU,%l+hB5Ypb4XL)_(,vd0*h_y*;c=lѩhT0 -4}ZWT^hb+zU wy@S ڔݴZa:KT,aEUd{ n> -&:aa|ƥ)C͡ D3}vsΘyZ:UK$_+.jF-t9,dT(o<¶̄n w]_tپ(-rѿB-d@Xx2\._,|/l2%D"8r"eRT7M۽~8םyePOJr+h5ArwUS7!>^,­)J6|zjw|R#V j}"EQ( -ym>Ñh# ^oONϷvƓaGd<0SȂ_Vrȑ#G9ra_ݯ5[Nk ps%l>`P$ ݾuʰz`#XQQp5+HZ#T% -]ƪe\B A0%n 䱃u T90;`},ྼp6-KU^%k̲EŋϧAA9KAM[`, -RٹHq+MW*Ү ,&{A~IՊE.p?*F:hR4ǜj.ѽbOr^#ER8axK{ڔ &^.W8CxtVV3|rb*~x0K3 )B FbT6/%ψu|X7:A<#b݂pg[HЅ=]%ʕ!x+$t!)?xA -yV -{:3,x(Yj?IN2Yą(( )d= }@uFt6Af7Of[)X(E0X0EYtcsg8v>%"MfKUȑ#G9rȑozNNu۫6ZV\c*_|1RH"B^LteXB&+* ne$ iuT#D΢sn+Ҹ@SZ -ϳ_}΂LSTxJ Ik0cQA -c+[yJyfn*QhM|lPy#KS% -iàLTUB,;oWsBy -t tOfZ)8oҭ] ;\O,l:ޠn -"JD: ! n²_|t >Eb j/&| ?+Uj*k DbA"C1 aQ(S#pVVWsLgsrV_pLY|lK.+)B =Ѕ@(T:/PHC-`@Ilv?f7Ǩp1"Tȑ#G9rȑow_^?Z^Z5[zؑlx*[H s4趂bV]$XOl@DZE -AC`oZ-/#QWpA #{W e&rS 2êLT-BbM -ìtB?>*T:؇Z1J ڰ+E*+2vAV$%%^? Ns뼷? -E)QZ?j>ꢮ@LJuS#8/U︰ON:Bd.p2.tnlo˟69rȑ#G9r{phw*fZCU); %p~_j\-ʻbI-€QSLd+yw0o]`0cd:SP -r{x|Oܑ~%7"|x|)Ӎh -AX`@XM"Gp2̾x_O7N9rȑ#G9CyΕZR-VR)[ ZiVt"aO ߠdtރfZSls++($hJRP7e ؊Yɶ.,BZLqR@P h[`X|Oe1ە&0즴BwG*W*sIR;0+];*:uXq2OqWZ|`X|Ys)BI X"E9ai!*&%XJ4PYT}qςq}x<"m#֢ؠӚw(.JJ++T6?('(6迲PiE8-X6GH -YhZo !(aœЃUB)w+wS7w,"bJXu^7(EP : a4ڕqrȑ#G9rkpǓ)T*5+X#aB0D A? c2@O{afTp5}UXH.^$,̶ZMǾ1؉{:ZAӅeQ -nXZ6.3H#{&PݦqGM'>453?o+ -d)|eF5K7!>iT -*BՠCL.HZ䤲"YOg.u[CPV,ͷZUbc|V -g?"^*t=+LoD.^Kdzϟ"W`)a6[_r+l}f:<: -ÕZDAf+HIŃu*[DWԅeIH__RTPxK2}{(XWTŢ4.B8nr` !+J j ӍMHr?ۻ"|y!?կ -AX$E8]FEhdzx lnB'ȑ#G9rȑW7-N -Sl$RH4xA?\^?9=^ۃN&X\t$aiD2TLSx*5 @ ~[p,GCe+Ǫs}$G#= -] jDH>~\ղdP$xE\qb3en5f(\6B raœI4tvţy9{ ޠE,Bj,jA qyD -@ V,Hf9hj" tckk -y/_oPwS}"\]C"KU,Srȑ#G9rK](WҹBPJ狩\!ŒP,GI?+P`8h þ@9Jajd+DeaLةf,$dGRƩUR%8AL‚K5+f"倜l !ȶB ,RPH3< o25`x W&hHI"r׹//ЦLzVB S֍|O3}JyGߢ9G8TQ2)[ kߏ-pU鋷[YB~;RLyewW7(Wjukg7a;CR1?m<ľ)Tci|Gi2!xpggdW KH,XxPgf0A.dr"Z^__PdC2ٻp4⇺)h!A`M(v +?q0drR@.L_`A n!L~y{zxqyp4&7Shx޾#G9rȑ#G_|}{LJ"h<P$Iܧp|*W8 :#lLp R -E &/S -WW8QAbv&d)cvWŨV|BT0 bPca ݂f&X~ب#k>}\xjh=KPus1@I&ǯV U(1o'>⛲+/xy8NcDZU,V_Af! MN;C +ywx8"A`U\, F,\:1޹ aiy|>?C(&YZ5>#=?gj ׷OO/w0Ew0`2& px.Bp|oH9rȑ#G9rҧnHgSB2`T6Lb`4ƣT -sU*FUN:F[7jPLsD:MBa/t{9)㐂e+VHʪM`X~Y2XB!5p($0J!n+oeMoG Y{9PHB|nc9AE,$Ri 8f& h]$qAn4K P@_/(yt^6eV*!b ZT݉rEbZr0p{jCe4[9X2E8-[g0,; /T@+:YS0*ja9x||fU`q7[.0h,?Jj/Jao*כ+9CBՈẻZKRp b^DZxT $2o\9(K%D[P BH$OēT&_(U66ac;֯>S77wGǧۻɬ;vM'?tCp}/5#G9rȑ#G_漼^/UlrT&Hc`4'\\:P͝d -y'^hLHeñ?v{}HuHQWvp3zI5%%,! ~2E`iRe+eNłUԍ1 _9Õ]GkM&AU7CId1ξM&KZyЖu`7O麨S dpuNM|fdf'ŢJs>=9̸AuyL[SӥR{x+^ R9֚~aͮ@V4 l?쨚@R*g{"\n?oo+"]XFhz."scZ-l@SÁ"m .,jB^)77CT*\gr˫P8DE0(INt(鼂c9( WPBv4t ay<h<O&SB\mr)£cr W"-_0 v~z~yx98<]1a '$E}x|(G9rȑ#Giwx4X* -ٓh<bd:WZ"XwvNw6w'3HYivz//Sip/8kSucMn+Ķ-#"@ |v@{.[avF@P]pxyc[1,,12̎MKW) TūLwB.^՘ -HllWE&. -Y܊aYu ;1{G@*sq_Y*濫&a"ܽX0EW+4-O]S/8F,HV߿{x~zy۟߾}~{w?cxoOq}}qaj kL>?^V^XDC}TKkv?@BS:B$a/t}\".ɬOq^8ʑ#G9rȑ#/d|bx}x}{?[(A*Q rOej 4^]\sɋ󫣓݃pw-݂a(`tF\Z)f a-`+KoyPK Λ4'6 L؂5&"<8>? ;P9rȑ#G9HޠZoәp<Me P8Oe F7]?<[pZwxNoo~uwp=wJ γt qyTRVl6Z^1%,sYV7BȎ|vOPZhQ eaH3yV ETZ֮+LYBi -W⥪vn SE+XPhLvM`3[$)䮋 +16٨xՁ|QÌ -=x ZnbەE?U).1p.0H'}5w2d7Honl -T&UbR("X l pbz|v~vu}r~M&EMS; ~pp4OBZEAJL.oo:/p{N7TZ.かnlo{zx|w8VX&Yp?NJ PZA±AYv!ʇ%&pu"wԄ0":4aN- xG? bY!2G,ʆc}5QJZQKȡ)dibrqT_Tv!/[5_iB#!eTsN.Ӭ,+a/.TpP[ޓ򀊾@jsiA^Ie̽9 -L|R)[(3X"}~HEbT:/ %a)Lf GZ%棅.# -"'/Ë˫O?i}c}0 Fds}wt~ v^P(DBtpP, -L6Hd4 B^?5Zͭ-e˗v W2:|%5P,oMTW*dc$1_9ANYUnlk5T>X{:yGX-JnwIrr ]q,VP+7t[7qa!\XPߢ`0DD*˃WlC|oޣ "|)B_P!rsswrz7O{"x>zܿ.4ȑ#G9rȑ/?xe9 H '3Rݝ6N)L9>p8Ŋ &ٱXSTl_Y[#Uȅle#V+K!\? M[H,X:eY*ѸeJYW +]YD'KЏO.ta& ݘ__dz/-wP$X֛Lnl%J>>=` "W"6t{0E8gx1̆Io4Fg_O9rȑ#G9r{u۾ޗt?m+9l+K$"3)Q"ŨsP]k-:=>/{ Hɔ08k׿އX@8%Ú/~Se$Lng24v}CT*7l|GWnEpm.si 0bJ %3(ux՗dgeګXJ1E*  rEaD"Qn+٥pc҅6az02g)cJV WTbB=ίŤ2#IY!\<>K1Y)nf jT̥Z*F -e)UϩL -n,O- +ӗE ZemW&O MZT -pRxor%! 5ti~ʼnTN^,H4NG`$\S=1 S\rLJ?Z8cSt8>k|CӹT0Jub&JŸu)@0B0)3 x'Jْ{#]]=}$h3KA2T~ѿ#B;Xk 5z5Y4s^H2+p+xR E^P*.WV7l0Fww]_O? EZ(MT5QpW,kSCň#F1bĈg錱zB]ݡhX#Q_(y^_;LMM-,v>#hZ1!)㳔 -@r0 -H@0,X.X رME!W.PeM.B ]٤Kzd=WN7l0(ى^E+%s#uܣB#R~@KPk"B_F)DEmR;oNA MBr++JI+V6b3\IN$/ ߝI(hF -# !ش, 6J+"tl> EALen_ `,A i2P5h,`( t|zxd4;:DXB i A+^_ Hd\$WJML..-<8׷ÃC·ãթ|atbڮ.72/5~HR~E+N($,&i5!&_! 4HJ^j;d5Bqnqqem}sx`+J^^ H K"<=70I*" P|?d8iq#F1bĈ#Fɍ#Q_uu"]`D݊ݲEdjt|d|nvvF>Ɨ[+k +PbULFto`W'QȎЫ`;C\xH ij(NelJlti|BE0Z * -Ñu++L$3LTZ<8B &+tk|Da$ pD[ڍ5_q倒RەZX)O_>1w.Bh'_JĆ`!,;PY)$*([-|. bê3 A -HwsvF)K$yl {R| RP9ݖ솲+TMre.d~㕒J9X-c.I;<>Iz>̍.mDqQ"lRt!AfQIVo )p{~ dbjf^ٔ}p=rGFǏO~u4YL.iq B p63Lb<JVfxt472bH2 -1asjF9]˴ZLJ%F,S򐄠)[Ay - ҖЅ%0" "hW7` inx-gVV7wq!`ȅ9O>/gOtu "D;Q"#F1bĈ#F\^^Ot;h[UCsM-n}*o|,*-/-,/gAza|rfdl(8b1+d-'25s.$4#`iik7$C"UrEȦ%"qI@ZHD*jy`G+,|Y*V}*!agZMyJbR~AyE/KmȉH8\| $2+VbP!ZAr?%t^H[኷WHbPU[KaPqZkln ̥St"_\ZX\r9H_hblT$>>QJ yccәЂ@ Vf4X6rAQZwv{O܍u&;<9SȎOWܥaҲtvHF>?nW@b&43ƋOgɦN}XO_$*åp"x -B"—bfWc[E4. P5PW:T -^%,? A aEcXOoOZ2z wPe,PNq;".g_|;<<]X\R`!k` -y&~*F1bĈ#FHW0+_(mu77~754Ec}jxlbtbj|rf|bzlbzdl"72ɍ2CL`0 wFE` BFjG*݅d"X,,^@ -rc*;Nr+9(+2XDV棎2_Ț8N;]O1C٫,j"+Uap*0T'>GkD*r<#(WsB[d+J(Gֺ7}vHvZI6!\ϢA?;OP:7GG[Z1g`pXO 'MɩLn89]p2pQ"\1A4CP)BU:\hwE~&Z2:>N+dC2 -C -} vGcݱxWw+tEÑH |'Q5I_nnhNU1byLI -zpNWf]ج`YEt7_m_y| XOo JeGF'f5@-3!._|vzvBqr:?sHtbi2_)7ں#F1bĈ#cg -:"PBS x|ݻ/^<~X~٭_p1> `2փ@"; D㽑hqAo yn|F5d!*ڰ 5bam%c - -IT@l ?Ju$ HPWQ"~jSDԢAҥp)Bb)T+"|:MȲE^BrTSrY ~zȣO,M؟*ǰr[HR'Zl:}^XM~;y:0]'zC]B(HDdxK NS̎4U)s_QA -eCK 1Z6:XZuXP8J*BZX4{7>~@ EhRP'J~);+yӅBP-C{iv -[N~1&+F1bĈ#F1s~qaW=P w7V}t64>{'>|ɓ_yVL?FXOw/Dc!H/֚-?!C`+@W -V2v[YI]tȒhc;dHI4&(YnKHQ;k z) CYwq$vԢ~'YD%Q-AKρr1@f"I=p%p+?ʺhWkJbP m -8=XU:;ߏ@;{/,/cXD556ohx`\ż&m'*W܄pU'_(ofG -onqW -AI%`mE5]oW2L$?}jaQTE6)tX}RJ1B2?{3DmG_PchS@Y/mU  < -8=>#7M;J')`MNK z --XM N6w@p -JURA3Yr7SbĈ#F1bĈ4PB{%۷=woݽ{O< X4>NB -~r 6W(Bv -X%+S AVrdP`"~@RD9(TȸE -pŧ3 -:(J}V|~Ѕ*e2mE+k t\,V}` OP'6*^CT1 w -IЭؠU!r -Y2Y;~ ]qRo%I(ЂFwrduM{qtbp|jjwf/5[x'WVO./B!LvFZZMs"58璤xOIiv6A)xxHA _8G96@tiv~?⽽0?:dO_Ϧ -Uj}SDRY%CYE,U Պ R - -i\du(cnA*3-,UkHBU,wմxȻO`( -Ck0aNLW66v>*B"4)X؂/.2LRVavP5SqO[X7V1bĈ#F1bNfd@* EP'AX3+#Eˤ`A?R@QQ :B_vӂEBf^*7-t 2JB@3GS[@:1`Sb WTLhbXqR\yUd,R)Tńeac8[$ElQAV$ -Yd+ X -WwZɼB%;Q oldu᪜fe'_5bX NTYKU>yxzv``"1>1DׯO윚o~o?qɧݽc_rfw<~,,jzSsK&xp咠0dbG"L6 J|)d/`c> Bdwvv76d+:1+T -( -PJʘ/5 ZY0B%+ ^9W57C0KLE>,O$t0a_osj+(a.¯g'>.LAp51cčU1bĈ#F1UkOz B!RYNȆ9=;eXTzd|byuebz<+[OO'}}]]H $Fw,{g -MW|<<L&uȽl66Q70a(A=SZDM"+&?$&|_xl*͗JSMͦ~EWHk"nƺh Ҹ<Tr9A>XX -u z,+:Xe -\>Bye\LP0 -:?|p(6Ss K(ESNOY;֯ã Nf<!H(-w2,nbĈ#F1bĈ/XO/P in}sׯ<~|Ν7n]V{,WkݸqΝ{<|O|7޼8@}̞w+N"T2`t9*$EXwD`%(WE&+Vb"N[Y+hTPx J%G2)bsK,*ÃDR$' L*~%N -Gksڕ:\HmI@7}ɶ -B5GQ*o2+խ|uuyիãp0+cY^] $K[\X^^Le/P2J11&d:70׿|/˫]q ,pF2 ֶɩT:Oǧg&K9ʔpP5 N$gCMedlKfdT6LC +K$2N' 2+jylZq>+Y!H;{Yۑ0iEW(,$_to\>h  ,q^`2ѱə|qnaieu}kgo$;;;D֯Ă%H~qL815S0E 3b1bĈ#F1b9X| AP -)ץh7 O_[_3ښuu׮;oܺu޽4s|r ѿEW(:Tv8e W/i| Y*ƶ@s -ܞo1t{].*[!)ɔ4KRLYf}T*Zs઼T"Zǣ,!Ƴc )y1Bha baH0ۑ.,/_C@ -G:?S3"xol)Br')BDqX@ ,"]{{Givaj0!9!nbĈ#F1bĈ/p4Ϋr^y!5O4~߿vVk@7_ymb{ѓ'_2N|2O$,8w/`iPCDujd\HBU *"dhWl{`݂ -e^IN@ȹR#rIz2i2 XƂEV4g yq[a ;_a2)]f&ƕ l+Q8Jv ANblYeƥP8aUe7YI*N.,6*9]l #ʕR&Th|o߿]& Qt&144/{-xT67<>>7T*1F} phX: hC]޾DXa`tq~a4;04dv"MI|00400H^s& ÑN俢'?ӈeTS/B?(TR,x"Lz{ƟSDxfŰk)YLZ<|Ϡ-H|0ѐd (,D-h-,?;otavnqye u gd)Bri/)s"<:>[D)B‚]@/`a( KҊۊ#F1bĈ#??~ H!K3> -IJCK7o?~|k7o^Z][[Q[sخzq;A5O_x h'lljnE)B lYG?ʘn,Oa S idx I,pyE @6JJAPk{{3xoo&3NpTzt|+z.L0@ԩFÃXg! ,$3 iw<TeʜK!Tvn*d 5 }`t.W$ZSmHЇj UT9vB2CS GBHW7za,5;l ˫k;{G'_|;=E!ԯH(E8;8S(MLf+R;狳s q#F1bĈ#F?gqДnUkqI~ɓ[w^qJueEMuemMEmUu]mm=a]a =|/^zYZ;`[+e|D ۀ"B"D-$E@XnJqg*YQsʬx/F,.J_W Ch璆ĵEӚeekc!"LY*Sk&͛6UbEB#xJr"KJ)s)^{w:,WSӱ*aR7\?S5T&;5SH(iCL"J|1B"PPd:h$ƃ2{|h 8RIRّxW<)⿂yM7~s3/5_O FF { -t >1Mqx32^ *)\eh - -Y ԩ8l:vD!IkƩ[ؔE$,݉[`uҖjg+S!As~}^]y" Y`24v拳>{1bĈ#F1b9xtWPv׻Ʀg܇kfU]uHX@)[nݾ}޽?yo޽ohljjmkm wE'G~A,a+̾F wtHXŝqaNzv.XZǧ VX ie,+LVqOs0ذW J.&Vl"WlmܘveUq*jT9JQ]1Ӕ2T+J*dRinRU,MqP1J>RqmcGH xnd,IJS[Ʀg^{uTUبյׯݸq{>z鋗/߾{,XnU*+ -" -eG",t #vjikkwpHxQJ}C!ݶAni헡)BKA73H+2B rv. !șT*@-(#ҐO JeU~@ŚFcb e"Rg%W4'J-Up"iċZO4O_Sp{ix4ۯ{Ưb^ $\,@*"|dfD4C)Bw2}S.wg{m}cj&/()JJͭGNjKãcx8 E|; C#c+k vpݮJm,,f'Mq.%vq4V&5GYlW/IY-omWfO37~eP3XdӹDH(`2 j&+svi%i~Lvxk{'BJ#`Z\ŧ 1x RgP,o|ǃ㓓ã8<>Yܚexdx?y}~+Rq3î۰٢t&JXHx qm1 @x` Zy TLV:xD] my3ABS"Zcuȑ) `uEcPNLKK+ۻ{X:; w"'"4O𕵍ٹũ|q -vKs@šEL޸q1n=׿W1bĈ#F1g!O z*R||ƒ.Ekd_oxս~uW5WJeeemUeMMUm-`_Z޽Ǐ< &"pd$Dh{ˋ^У@ AVIR  ]&qX1A}VnRx WȻB@Ir\bSuXk&Fy''RYU'ͤ܊5g׎HOEA?Y-*].˲SgҜpU]>'[D*Cnp"L6$@{ -ݽL6۷ꂉ:zi --3 ?Je(ϽqH3观d -W*-u`8?848[0P۠1^ѱqgjB($+M )!팖e&ԉaIPYBaPECE8-h S2#pE)|I򑐠ɶ!A(td2{Pkf %`(J!+ރe"_,fVV׷oN/// w"4) EV(MN -4U("q1wa1bĈ#F1b `gЯrOdRVfW@:RU+5UUƪ[aur^z-Xmmn|C rk迒 -CX:Z;\uLQ-XJaM \S6q1Eh'By˶JbW:׹X}v)HT,O%C[OvS)jًU,V RG f 49LÂ{ #v1QA3biܗH̋kjvzBPiJ#gߋsCt>e:]U2Ui*í%,g>O}xx D#چ맒@]| #]$Ce%ChD82@6QKVX=M$S=`({w#-dW:Gn+ՔE*ZEST"2j$WHI#H""_ ֏p p[L !"Ƨ܈ň#F1bĈw? G Wv{eRV7*j+jTW_^ʊ*`2ګW^~Mdz}{ro۔A$D,EMI7Ѕi @}VTR@i8W>p ,J QO墮*B슝,;܌Şk>:+T:)tT*Ձ-?DiQ+R;y ƮKS^GA?յ -I+E2\vx$72BȷӳDBU ]ӭvг5|*|4ۅe㩓bF^WwwiĻE4%S( *Fh,708҈  -,,F}X,ACI6 -n@L'ȃם1biԲŊQAwVH"25yeҫ+3b^e`[9&S)OYǾ,t,x$jy+ -@O]Tnx|r:_[X\Zӧ/R?Pa]|?=;?q:^aLT4/O͠DP1bĈ#F1cݺ? "yeWRc[ۆ syNd;zf3Y%3HQxYQ_B),\ɔҔ/#>NRMm]_cu-(]Pғip#/_DT&CS#cƯ[B੨ ̨{]}>?G:CH3jÍJY/MaSf{e79ҫ(dVQBngX,6jL{N -͆A6L" "\aK0YBHbWf K5+R,X0? -SщBqv~v?!`] - SgGa8:_PawN.©<NEP1bĈ#F1ӳ3c;T|yܪޡ-Rcko>|nݪv - RY + aUVWUT `]~ܹ͛sރGO?{7%dR4Z[ϥ=D '䞂$,\ȂUUQT 1n+ָXWnd倷K|B#J@7CrY9YL2;RCJI)Cwd^Y|YJ+WJrƭkB9f'N;Vm&+;9ۑw5RhU{{Od'*MgrHׯ?tW:aE.%,*O $ \7}ԯtFRś=}۷]VEŕ⊱)Brs>}7o64646!`g`A; y! Qƹn! ࢂ2GtW-fb5(يrYWf ]\$YXXm@r?VrۭVE-;zʵɿadGT+Ǯ@cU%,|?}ے1dRu :reI(+kkX 3iJg2]hGeD$6EmW\B|PÕ潽T -;lnrjrumxT3E'ߋJR~D-FeЩu2.1b!_9,^,YaUwØ<|n:q -BŽ,b[|&K\ - -z~m e=@B]{}}09<:>5S(//ml.“O)ﴈ 4&")|Q܁4 %̯?0D?~c1bĈ#F1bĔHw Wȼү\PjMͯ޽Gnݽ{ͺkWj+JMŕʊꪊ*+Z`0A?{7{kS[{;`|HğӶIJ@]U,`ŵ 2v';xx$(*ޣc݉2T.?Xubt BhϠlCZ9lNiI6 -%gwO ZJJq KqP4!-9]2g iN̓lHЮb-Bȴn%'1\] -M㓓4TxtvX,&"UpuBR9fyPcsJ:CF*,f[(TNT5B҉ M*{O\Ib'gM -XX#L- ;Sc` _aN i -YHҡqsӂX1n+N2@feqSY_PXxOt񉩙;> "d@e/@2LN 3Bgip -hcSܔň#F1bĈcWDkWYJ[ݪWCsw|;ܸ}ʺZŠ*eU Wuu5uu׮^qڭܽ'O> H6457`)9iB* d R aM~ -kVdG Ê\1*Nb;H[LiRUIجňN(dP܆RLeaabՋ2qr+6+DrYq?M+VYVT?"s, -ǨQ@Me(4ЯL:4beG\ 1}HiUb(WC|N }d*A̧ƒ$GX/899 mi @;e3"# Ab"-Z'!Abœ+3 hn E`,w[t -$

C(;H ־ts-X0x@ߡ&iGI +Py|2U,s _0 G{zt&7269V6v>|<:@g0DSta.S"x578],M Bi8KS3ֶ##F1bĈ#xA)yd#ׯZ:܍m_kxՃO<0-XuW+kk*j QՕU^][ (X~XܽO?!Ƚ$Eh~tŋE+`uH&˝HX RÊnƹU}# iYLWJ$^2,QEQv뿲kVl=G˞ldr@AN*IVI$ EIn*U[9+=0X>.ItEg -hb(Et6 @8<} `]TAvJ875 ,a VJstv~.nbĈ#F1bĈ!8ʭzHrWHj,XЂuΝaa핚j$GeŕJcj@o޼u?|_z]CcCsss[{JʊlŽ@TR)B -U,I qOQ)tqj`qI@^5",*.S$iJ*o+os.9 VyVֿr+E*K*PIJvԜX JAyg?[QJ/$uu& @a!U:L&&l:77FaN8)~`25:>995  tvnj_4倫RX 4rD1CMsr*\yi!R,,.iվtBbV{T6*٪AsG>+gEXeż^,2%/r< }>Jj\hBWBi -o  EHW4ᑱ2L~?8<:t_\^]\@]k KӅd$,r)©Bir:?9SX\Yf1bĈ#F1bĐAMx?J+vjI2on}(X/^ (XoA V}]EMow aUWWB_v捛o'{_@M E -ABXą(XB ?@7sX")֎Sx !sDLZĻ][2GQ -gb{ .lr33gR#MZ|d']*Ms2dz{T.r9۩BbӔ\Reki 9220~r)?МJ"Qzʖ RLS9畮0$+T:HsLNL ˣ㓱x8 e,K.ⶌ >?7:> #cs0'10dclAX,]g e+$^)U9\hD4"O-NYНL2=5_i>baʇW>ޮly@ JU&iAb -%K;& Ñ@(vuǺSظ^(/,!"</.!W"|?H$|`rQ$IodoEcLvt|ru}sium:_O3p2aM׍_e$ NSup,ٶXt;b*CPXpwP ,d(ȝly74X$0jVy`G+5UW!P!ܯ]qƭ[Ȃ'_x;ނS. ,P& \2%X~ruH=N]gVB U ~WE2ABB%';NuɩPr)6ÕcO* -TT\ - 5Gvӯdd%[)Xzyte_F J)]*֯&HXdNDNTHՁ >j2\.P'%t'l$Խ^`  t:+ͯml_~3;02:Fc>Ain~jAlQogOE!r-ĊZVȕN3[AU6e 2FNW`҅pWJA^"2@T`^ wH2XxVgW>\ϋjsB?@`(wvuFc Eh/;26>//,om}8 /߾_.B\ _7gvp*_̣aiؘ.'f@p~iYܣň#F1bĈ~wO_[ -ZUhr+n[7~O};jUmmEM l!"1EXg,uL޹Ǐ={7o޾o@6ZX; -c# - @M(X_ϕ(X `ٹl[iF~RTGD5{a9QWjMNVNY鄂b,w\Bp4H$XCtvxdrzzaiywϯN?}:<>><:vv?x55)ds#T& %?_I1ZTaqUo:r;X6G*DǤTwQ()xklb*_]X\^[ׯgg)?~};=;z4gvJ@D q_X7k1bĈ#F1bʺ׭nꀴ+bmEE{&Pr7A Vc˷'X+jj* -LDaMuuYDX(X@wɓ'Ϟ?[]0E(vfPf"B30E(!;Я:.IJABV"*v:!9͸8bU c8'ԕ\O%9E u[nhVʺiYmahjtCwV1NQl;֋eiJ'~*+Z$٧`ehY^VY)vi,cI)\)Ru'GAb!P* L4:11:>>=33>19<2fLgo`0$IBPzy#nckM -ХtjŔr9g/5vkVUJWˈTᷓ c^, -UdkC̓X2U)V”`PHQ W#, rвPR -h\~0?$,= -@_b(A -Lmln}<<<//O>E@X(Eťՙd"@x7{&q:=)B1bĈ#F1bGO+ aNP+jVt%%A Vz鳻ݼ{RB -VMEMՕ+SUU _v `wCr͛ [ZZ ` u,hnn$FER;L.Yj’9AhʲғB| Z$)液?xi" .h,7H$8H..o~8U߾H؂S>fqnLK3E87S5.=176ssjqyEܸň#F1bĈ;`CV]Ά]v֯$rGEȂ)X=|tk7o^VebaA _@7o߾}޽޼y\ĩv͆"Xu[,X\*FUHVT+kY(X&SKra|QAuJrrU)w9 /3KEs`=˯O:KkW]y;i~D"Xd"|[k\Xиr"":?z7/Wͷ3f̘1cƌ3ljNR̊{$ - ȝEtzd|rH][ VWW[{b3FXmlᦶ͛Z[cq0H]-]=۶oܽgϞq"̑V 9&"ªT -%rYSMv(vuXwE,- *?;]BT)cD7<^ Xi8ؕ_X5ME+مG=TC]",R{'Jr! bCJvM]B'({p0"RQjkc5zd/أ'LF{ -]X>pEU9LjAZ&Q纺≠?Pz͞ +5vfJ[)j s W]mEV%|o SX{b<`+v=F(q YTipvŒA@-\kU`k( -~jbU^NqV}zvfv9PV.]z&n>~ok4wn>-{k.4V.,,/aEZkK+ E/,mƌ3f̘1c̿sN>;oWW,+|+EH#Xѱ;{i= /"ܼZ6o&D][HFF=ܧʖDG"ԋ%R"p=^GX,NbY\m}t3dIů)]{#rYazIsD~EVzTF›٪hb(* (0eGzԛ,[GξS,I-C'SKPb[T*B*rA]T(j(e:)UC (Z/*_TDT4z(SrG-F\8DG18q+Ǔ.¯"K 2 #]|rePLW{aқ<qRrWu 5Gt 1ΪצI -k%-“~Rco߻_z?}/_K Xᣧ7n^YDw.7k""-̷3f̘1cƌ3)N j+8v/['XNaQ Vv.x*gbbQڲu+`!^Aڲ)c-X[=8bݍEqk7 {&:!,V$pLud!E8#Xи- -,Ձ0XKJ[q-ꤊlVBb,V&AHѮfBTHdu: -M -TBxm#]nL -3;[E$?8ݲ,c-$lJ:Nz#pk  >r,A!VP)WKiJ4鐫X jIK[)/!(W\Cv:, Jbvn󚡺LPB-ˢ"JvQw]hOam _~_b̩EQW z4C -d!}k.xw۩",WIyWNx hgZקgyБ_;~s ˫kݸE[Ϟ\_'&>BDXB'EX_HG_rwqjyE.5+Ks׮\ n͘1cƌ3f̘WG"opmvߔl&W<( ` X254:>0870GV[ Q`nU_8_utu']==[{{{o"d2"wl*p9cB(]/U[DbHfd)IlG*VZeE1J*7UT阫QTBЊ`jԪr_Q(Xꁧ Jiɒ=YH(LQEl}(-*+-bQ(ž l64\ڝb螝.Dz: -*-ȅ*"4S\`EGl Ў'ʉ̬`+O UĔhJJnrATV r@~]mr ,i+XfVO=E~z~ eN{l !yЫO}s>rcO<}K˫ܸyO;`a gP`}˷Oy;w_|u2ؘ_j,6VE:Xظ0K܌3f̘1cƌx۫UR_=#XVXJ$ܽ[֖-xaDmZX;`Ggזn]DRX+yc9PAX_UW"B (eQQUm.E vd0lQ0TTŠ(v[o\գHy-R끶 Kd -$T`v,mL D*6Yы67PPi+'Bۮܨ%Eשx](U`\ˬ\Rol+BɊa+VS! >+ZYsqfՊ$Y,rB@2F/SRŸ# 򺟨j Az%YK7t cYX^U[A|=~էIpFGNŅcI>|3`E=~zKWpp-Ka]Xh/6?܌3f̘1cƌcT^ʕ-,`q{p`k,36spo`gO_`%MhkLSX֖XkkŁ+rM/%$d̾8tO/6.uO?wpD;o~ yS -8rt=;}_>]6,x͛wy0CU5WU hS8 Z8"FGa:+C(3♨]H V1X"rAUPb=-RW5hֶ;LT6sAp3Ze!W9ג=AWXȶAR ?kuV>O":rcxᩳXŻoݹf_y'v2w --7o=}\[k.KE8֍[˗3f̘1cƌ3ψJ &WeKr0U[ aq+U2b:WdFɡ!f8`EvZ- -D:l޶ w "={'''St&-L0t*rE\XH׃:EH]abRlZ?HM\aUPWƗm jbq!UEY5ı4 EQ%>PoMzFʱ:VP,D)*r@j̕s*+,xVl0~Ҫ|MNLHDa1.Hw4D"Z~(-"Z^zJ i_ը -X!r1\99C` >yz -,I*SHra -Aْ2Es[evί"v鯤3˃8EETUMg0%Gr9sk7n!E>| ,".a} zOݼ}wu -v^-4-qX_j\X/q>a1cƌ3f̘1c=Z/ڨW8yUKH{dY<`3ta:gGvܶ}`;[MVl%֖X[ Wqr$DչEzw""ёI"gSb *TqKd/t]89"Q(prVYif\'Q[UyY k9EAi) Ufg+~"GGWuVON7֡#v +._y<}"Z_O)ÇO߼{{E;EZ+ktṋk?ۙw3f̘1cƌ3왝;X[>XAʯ #,KB²"©T6?IƋ+ljۼ䯂XK5-ŽDG{Gg'`m݃C{F FX|!7U*" E - E2`YVIgw6\ZtV5VeU -YiJKs9I[9#)-e\h@N[QQHȯ-Oj)$J -m/qߔ*A/WZZQ9Q(! -I'DMkQ8IPZNtg0('p**6[uu? .gP")^t(rnA M1wa`!йs{\_y7W !,b+z k!SW9P)R#VUX>wv9"A2 ԅaﺭ** Vs0dFK)ݓ@$ZJPp̓Q+nBB;"|Vx - -Rd\N0hrr &?w$F QAB^wsE7"Uxǂ,W(J0H=AJ(qb,'$wR6zbyґ: a UUv+ R )^z+²*#WL~EAEXZ>]ݷwCG=vp"NZ@PܱO";"||K l!m.!e_ZXZ-O?u3f̘1cƌ3fs]>̓b9[~U![tat T /"&p+982c`o-[u` VGkM1"l–x%FXq,rO$::;kkOOoov 2{r2JSXD - -r@[eTF4.BRedV BI;ԭ+Rw[bZQ+uWHZ윦8^!3[:V.kh7wn߁9˯].7\u>}qnFX~'"/a}͛wϟwkחW/..a%[4u~~|_c͘1cƌ3f̘Gmg%!`I - #T2OO޳}.E" V%8Zcqʯp0ݽm+ q&rOe|!w -^YIH -_GSXxapTITIJYҽX}5ev -* -lmH@9l[Gȏ TH'K8lLqzT/B e -.B39UXKn:أ|S'UE6>"TѝAn( -Lc\ $q\J+()t٧Jv [yhrdǘ/~b>$Wv. @E[$yEWW)ݪCXtG!%WiZ-½fСGz]zɳg/.E # Oq'Oߺ}weE:|qs׮_j5f̘1cƌ3ff3樼? bz+YD8UJesdrm;m#;H Z:Bj%.w\!G::lm۷ܹsn""w,dT>U*_B*ڸ h /)Q+&YAeD*p+*ɠDqz%0T:Qt-prtVr#4icA`-J'''RBx6@1 - -nSX"ftZ~v*dQ]@'zCS@ -Ξgɕ"cguBɬԧחhS!DAKl"{wlIkhWkx۠_%<Ȟ/*6קi̯wEXOv.,.-_|w?xً^~[Tܿ1~~"?}\qFhl]lťm75_f̘1cƌ3f&_-ׇv");U?I0l$T-XB&r/ -SLn,][+on"6rSX㱶x,EXXѾq``=EL&ST"$"RSXV{c.rK +!MzYwO1жtS%O XkmZ%0zQ`ER&;$rÊ#,? "%BV"%V:hB*q<ʊT([խGPHC -Ɨlq'"N)ංAZFSxlq\5EPZ -} R6^gtiշ"⠉FD& -Yv!-J(ڢ,U)7 /%Q+kUnġ,!cʓV+WڮXΊiHayK|pd`KZEW4EQU񤖨r{ܧg#"CGg/\XX^Yzk>{kçO|"wƯ_?|h ; ༱*[Ehƌ3f̘1cƌc+ B̾^i V ɕ(6W$%"T>?ΌL&Gv݆`6af,¢EXk["֚hw`oowص{(`M&L:pk²Y8h/bq/wrszJ} -iu pAZQa[P*bƟMb(5(VS e,xIJy'P#HW`?zGګh{U(PiTQ-wc?U &lrw*rxA)P  -}UEXq(`X -"$,, -nO2҂տk־]=[q /"U[aVk* jV a4Y۷qij*Es;6[w %ί\m`I'`;JV=r?z6]l'BξHI2$)z*RDIg9`VP|?^PbjU(]d-Biv-Uv愯I/<%.arjĂ5=o܁d!>{K"|qG",Q!d./߂g߽k"\YDVVIp Ç[ތ3f̘1cƌTgz)."7e/y%[l!MjQ"BfS Pݽ[BB\ĂJm'_uTݽuk};}^E-L.+`V-d.)*˒",XSrbm`qzhEԭ.!:CAU7m}埭HבRRlgu=0ĩlyM@7{k(څz||@]WF,ՑW4Zl| =TuA ]@|] O()Q&($-REn -`K/ek$F9b 9a>+OXy*_QX0L94͒9U4dVO$KT ` -FK%'WjŤXGO0(_5\I6HVZ5fq Vuz>M[s:tc \~?}ugh"-hpi.2E@[K;nUEoƌ3f̘1c?`KSvIas a1sUaXɐV2#]#voݾsvjmnkیX-kkq"Ύn"ܶMDHN&SL&-]SE,r",ʣSeY!Db[]DV!(p/"eE;_QݒHJh(r|D -n%ٮTd+)vl$+~)RxR߳C<(eDdr -z*nSQ+Ʌ(T$~g徟ă)DzҽBqA*ŃO~.xr*q+lȠdn#4I\>HA/<&K|HXh)AVߣ,@mdL9|m,`zz+AeD’BAR0d,DX,ŞeJ)0W}8]k1#]UgjگN4-쾹s.#+5'-7nݽ#"\ݻo_Oaۧ^ܺ}k Kr_c-{7cƌ3f̘1cyS c\$0*y d*3UF,EZH8e),J` Vߎwt&I [7c~CX,r޶u[__ߎ;v54442223XDipV"W%B;s]8U;&0ԊVxJktKr+mez -x -AUD -0+mt'e9Cn4trU (!j?"p/ -LYP*jtȁJ+MoXiK JyQYϋ*65wyRi87. W} UTJbR$<"T'(c1G`Jܤ|vngJvnnD0{v%)qaTBjr.Ӷ ʃDJkc+H슞7iLZ֧gY#ǎ3qaa"s'Oxh~"wʯ[߾|-7Ezi"",pŅrp7cƌ3f̘1c1K+cvdi V0*8`{pUDlS E{FwڶDl!?7ǂ-80DG`unB[v"]ãd:ƻIXb-B"*{bcBH#Xa{(4hV3V- kl%ѓÙ#Ү}=vw]~榰ݵm>֞]z> -fQP2VvR6 FdVS"RڝEO0*6L:E,/|E&%Q^z!YR ww\;9JAj=NUHeSvHv-"F/|󈝀N(Bo0sĄgAeK Oa̕/ڂgxJV  k̂%UkXo! -aeR[$mŪc:xpzv{;x_rS~|cy5"|_yE_4EDXE2EXY#-"tO_o+Wo{3f̘1cƌ3fGσGk -U➙* qs Vf -,Ղ%-\!b hK$66Ze3?q+kk'Žv:;tuvoBvb oVn'DD%KEJ",Z$$."`)+-UG՘A9+++ %Yc, --bpDp+t܇=;3of}s<[ǎ8yE/߼{GB#XEEg_ܾso 󍋋 +؂#XIpe -[_m͘1cƌ3f̘;gϝϗ+E*K~%Xp0Wai-B*ʗT2HgF&Hkm[nmwonmŻ1Š%gpqǖ-=Ă׏EGFG'&Sd:dȝD",V!$ +eYJ -i.,ULU큲XAYGU;"jeaRd2+)Jv"7Z0jbPoRsU}OG`_A]/:MS8!X0|+oDǥq֮AAO#-Ȥs\HO]Eŝ% T(LQ/1YAZ -KRr(@Y'0_vy $s0+-O&`d -P]CUVUB!feP<d((c*µp%IlUex`)%v8Ɖ{Ue3aa>rX~痖W/_v'O_,L]]>}yW=~z杕KX>X^-ތ3f̘1cƌNOWA*[dW|%UFHEH -+_b ->aO8 b VSXyorC>' &q)dnx?eM&*)Up^tЁ(%\[M^)F)Wqs}kfVGJCPi - WJy6tO E> `q=/yTQ'hKsj j^R&g -9b|2P (i+Fo _DHW;TSW^O;tQ{1+Txզ/"؊q-.µ0"-B,r?#X_XX^tڍ[w=x.B""oȝ?~/?xBv.4HW. K -B3f̘1cƌ3f7?_3˯J3S%*D{ -T~U-Xȗ~GRp+HVV jmw\! ΎN"ٺo~,rO&E-2+hвOX\e -չd fAx%T&v m)]JYU6ƟB*%@%d_0(7tNR9 .-3萪ɖ@V+ÉX6 Bp*_]pwkb(W(Pk! 8q# -t|QDUIl"_n Kd2%CS\'n.,HWB=w5]dVv̵C=);"4|#HvUN-X4dE[~th. ->@nX5J##X,^+bU),̣ȯUaУvLh 㽊cW43bUk3{IkC=v'N:[KJūo߽c-BU"n>-«%b- a]WMЌ3f̘1cƌWSgfTl{U_QV++BI ,*aXAYDDٱdjhl|pΞDGGK<mmjۼu6bED"ޞ "v"r "m۶m#X# taT),,ªeW,e9 _!ε92UU]B].*h+@!ZrO;l %~ B& R "dQRa~ PIOamoc_9M[k4&N( &Ae4a *B,]+#&9h mE. /[fҺ~>ȓ&BJO䝴W0@En|զDURN`mPU$Z>) - \)J_8HtdV*␊ҝjMV*YhʋЪ9JаHCYʃJ)ߩJV>/ 5Ȫ{^%֦gfۻns9z"eOʕ H]Y__u%Т",o8+Orpd/"3Fm6"fj-x0$-[Ȟ1"$  R~EXMe.*GTPrEV*=ҬVrxŠFNHf%YR')'茖D-j壚^**Ufl0AϐiF,zq.)R̮J(8rHϕROQ#Xؚ%[,I."$,jھFz؂aV+.V [X")V{{{GGGWg;vP$EKsbaŚ*U(B-4%Z~̂U.,Bj`C +\_!abFuR!ȣ,R:,y5(OH^QR-UQ-BRNNl -m@7Vo.t7}f&U,儒ZA\OA^RŕPR)Ɵ篢"Ro+>*1%yQ]|'m-<ꞧ.blXnz5"*g*EB9FXEuy"+H -^.Lp+329982c`<Ղ#Xm~Պx_V#ݽgk__o=BJ3a]_vJ Bb3DH4 ctzPY -Ѣ,.{: V8 EB -2+ۉ(aj>WwS -r~j -70;]R-t.?X`_jɅ[lX}&AD }+_Cj=ut@F|ŲAfue\CXr1`hIr0dŠ.WM(-ϕJ+O."pu Lč3>6I"X,w*!Y -0Pe W%x#!`f6P(X4UEl *؊VA-4Q^ckJvW CPHCUT(ʲ`R 5?9O&\}ުTT՜PWiK]=@o(&U\V2qpDEP;*AjKvlW[\jtޟI'Nda* 'l/)i -?@J=łTTT^ݱ ݅AQ<}rAOUpR忲`apIi 9}VA@Ѫ[_cfY.\4vU d,BpߐldH*¼ ȇMq;Z 1*`ŕ@F ?(ФKE'tJgз4UbGDlr$:| -SZLY`àesJW N#T\Uc -*2533ot_zSgqHܸqO<{rw Eϯ߾]+=yW/.AXkKdŅƹ[wpZ7cƌ3f̘1c\v b?II0f *r.0*= RNUHf Y`i+"')`a.("w(ŲFwAJZd&;Lc mwtV+nn*ޚ .w;:Dtif}p "*Mb@X&JZ!,ZV-duYm?re\5HwEr&AN sVB.[ҠۨP[0r:jrd~ZtC8+ 8!B^&@)%mvNG~@_S s.Q,+5]vŇ}=oC*ZEG5@UKnr@FˁL"NuX 9qU)UN4̆|rM` -\z,%x|]"U2p%"mŸ_xGC<%ʆqr*3TR,%TU%[Ht4^ GyH^Kn'N7G~=~7"\|[xg/^z w~ʯ}?wW/]]lPBZ+k~ܷ\Ng2t& hq=e+_P=8̪@ UcfYaysKv(*!uH/YOf2ѱ!joMEmZ7Z6jD=8!{˖[v8`eaSXJ<%E+\', ;ug2j,l˶UL=AUT6a9 -҃R0sPi~-J&J2IE3H~gHwB e - Y,kZ[>XA -ǔ`)ePS?g|:1'Qǃz+G%l"IR)ɠ\~=)`)A!0Mߕ-EQ-t@gSSbIckr$M]v(9+5ADPV yè=%)ugk؈ -gҎ%=!Q+jʢ$,*lg-BftmA I`X?g7o>/8~3_\XZYt;w?|EH*r#w^.¥ K 8EDX K -3f̘1cƌ3f[ӧOǏ/^t/Z(l2riJJđ#«\.+YʯLO^eL.*GIa0@ҭ|!wW9bӢ`*VDu[SΡ~q+ -ͭ*іD/";8n;v=c܂ʤߘ!-B2ULU bràpaɲ+Bi끶ls"rB@IUxW`VpK+jm>Gqaȗ82 y+ %'H;H('2Qr;$|e)=uk{<줇DL%znxǟ Vq)0LU<.EUd2v.~7t@QӶ+{|# b)Π'Ayܗ%3`O\"e kVYAzJhD1P6XaP0+[7vkA̵33K17NLչê3W ^q;[)HǣYUUȶ¤EX.wfwO0b $5w`k8oϞ0X^rwRUrrФN -mdeq u|hb=[)G=Ua -K1ne$ -yZJ:t6u` 10[ŋF>׼P 'Xaoʫٳ^cfuI oz>[D'KaE -}j OKU (v R/zu0,4V8s4-pmik -Q7w?=v'O:Dž+][<{" ֗.?}"\\gW_I"m.[!f̘1cƌ3fl0G++33~_d&LӴ$VvI;ZgH^Ŵc,Jg'Ɂ˃䘤'd:_Y3WJ -E+E+_" `E/ ށ-[ĂFWT ,jۃ#َ-[p -k۶mepS"MbX*aْBvS;ZTIZHYYckl*")+D԰Vx`ij!׎\D(j3+e܈_ ;[~̀=ǥB*bIP PhGA;9pwT䨝>$vzzABq)q}h-$T6[!/$3Aɕ",[d\ 1Wύ[B:>H("50_B!)ʇATDXUQWuJث|@PO`ysI;bDZ&Y -+뎸Fu\nebA.x'4%dU#tacF,&B.ٻX~/ǎ]XX-B/^~`IfY_1=y+Wc|c+ "vKWϟ?I̘1cƌ3f̘[}q߁9Lv2Ngs),n TbNU -U&d&x%_2He&ҙT:8& -~%DI*P+,j"<b~ERESgՇBHʉ=wܺ}{֭Tbn$ -X{"KEHvuuuo";v544gtd|bJj=P P"!Y.F*J ȧJ :ǸཪHT&}Ox٫C*PYʫ -7 YpUBl1ijX"^0.WyC[ - UAmq! b"Y4EUN uʠ Ū>I*_YHEX䘡j,b]}{8x`"\^Yrƭ<Ļ_zM2X>} -E-¯?|z%w^_l\\I -k-8vfEΕ'f̘1cƌ3f̈y8W-Q/L% ʐ \Yz*SV$b+ʅڂB l2WIBVW¬W$",,"T)S$"wz|HsP"$ -/",2\c$YD70нG[ئŠnBh-B}׮C{ ]4`e E/q"H+2EZ|!W$U +E\([{dQjyP[;4QaB|VmA^BD=AW -@'jjΠ#Db+JK@^"%jv 4 ك'{GdM3ȂC^nR*śĕvM@%'9rM*usH4A)) ) ,xz:BEZlbU[Q % PW~zЇ}xʫcW"%SRXDدAJa;X"U*^5gѨSiXTh8ȝ&dFº_IO^U Nٷ"-B.o߃'dѓ7o/^WXNBcû_)f̘1cƌ3fSjZ rŚ*'T&J,L"BVp -BF -szXR^ed*3Ld -RYh0$\,Vd -Y - +"+ o",ȝhq+ؽgO][VWDB[X"њ%:$EvtuunٲXo"HNa: 7/VP$"wD UH 28U"jJWaiCv -kE܍~C6 -)U^k"fT> LĔRNN<φ2#XrŎƖQQ:~'q<OBJ~hjR=QQ(G$ -@!U@bJ"C5ee.wC"WĔK8KnVRUMAjaUE),fhQ+,~ϜWnJJ+*`gZx/2JU\MK~U aզgۻnࡃדv\XX\t[w/_y}TOv~~pڅEXK.,4W_,f̘1cƌ3fCz^* bb`6Su"v)??=ȩT%|@*Le'SI|?q0CfrHJ#V&O"[$wF!wEEXHXpWbGrǒ,ջcX?kԶo!a-zBO`+y=@XpA&#I”UMxJ]Ψ7D)7DPu._^URXK@G} %&Q UGeq0 %tU@0X>R9*oo<.UeC}ਉܔW*Pq x%V^b`"7&v6\/Hx{H8-Y4aE) -rYVw gfgwÇ*N>ypU"|B[o߾_]\.[_~k.,-"Rcay#\ N0ºxqq3f̘1cƌ3uV?ϋr:-V*LɞsL.Q01ƨU9X޳`|TTp&#d<&*MXD넔h􎁕Zl_a1QUNU.BKZ*ՄR%[,S}S=85ҿk[zwv"M؅k'q¯ڃ Eh"{zzmݾoǎ]v t&`)" -dX^&* (١dcw2TԧܩD [ӕz`埫DO z0peS\Qz#:Z."uu`nl乊*O$lћ%1F.DJD2j ~@ȯBKb]&2!'[P\:J% VOA!5LȣQ9KU -J\*X2UU)ߕCjX*TPێ~\{媋]'+SW -˺_ aINuE^zj%JKs`C##\N"pEHW,@GC~Uf,ȜLdcYnl U٪ k,TP_!XPaE6Si%>߻\TT t"}Dy|SF"Rp@JY2y+(\J4H e0v'"?@ -Npp T=}OS2ڤ!5*HJV󪎺g7n+ȃ/ɃW7%>vqUjCЃ:,+5AXTN -|ՠZU}` *ea\~eY>9a -1 R _B!",j"U#Ikf.£ǎ?y3XDMx!ny{R"7mDX?~~}ppieZ=8~|}cƌ3f̘1c_2t:?UJ@rܾU0.岢 fhC.B]l.ګtvl252HO?Hp,a(",Rb5apT5\-BZ$",j -, ~<=K "%$K}ݽ[RY{޻ڪں+˶Eԓs4at'vrɃH9&x?ߧ~ouut~ LX(`uwu76kir.Vhohe"`  DEgBN#XYTeOOD&D2JRsa:,v,j"uBX9nz'4DXbpZ-[T,`k<5D>"roiil!I~#Pptt,!`%әt D*r.NNMCl[apċ,5CW )=٥J02Y,uT$Js5 ur?^g@]_Az[%rkҰJ \; JJ` lWC!1JgV.QyE4$f<0]s}/2^;XbGZ7(u0 B;=-Cѩ3%ThPTЄW*Ųz`/NTo2BtXޔmtn"WdebS&3A@++,",r'8m6;H_U+^C&Gf=g)=d/ۥ0 uE.eԔjR:>6>,gE`X}MW$E-흝pv;0E@8 x<V*Ng3E8Yb),ίh+EJe[x[Vi?ȾJ5nѺ, BpXKQ#DU*J>L%g/I!LK*EG{sb̭YNVQdaPv,)Q{㹥(trxIbI^ejE.:] `'l*))²q|є2ԧ ȣ杉 y;O3rU˚0~0Zĉ&Pd*(QBh~u>jBu+K+zCH " -{ -'L 7/ a-B V.ʯlFbM[m޺}lٳ:rtiugEx Z ro~&,EZ}<棏:O9P -;/ "W~_2wx;pſ~L&S_Il.]<%fwc\%`W*-#-γ> <Ԍ@X_͕T rE"TVʳj ^X=RRX8UU"wį]T&Zj\53JYWaVZHd D5tE`jч(vڠ߂b 9 !OQ+SPagv_,d2䠞jq@QJt5 D&K)QҔjYEE.U7%ؔ]xc.V,cHBO8%> 8҄ݠ -J2+9D(]XgEc@W=>[mA4%’B*MM˦Q+Xg,BB"Xl -[a[~ѥc'NWݸy=h>~ɓ>&wT!T>||}y"r_]Z]_Y?vDV.d؉SK^;wx;O~'??o^Ke/q&všTV@w8G+VRtܼ+=O,H5ĔLДb4 13\Jp"U(Uv$dISRˑS1( G4]$^]LC%KfIEp;Upz* J?_G2ZEQYeS/<#h/M#jOl>Q+ݰ@+B2o&UWKrY$ɃIcʉF eSE  y:DhUD: UlЪXVU*<8oPaU6Svڳw߁~,,8 ._viO*\T"[-B*ZX^]&","\; -K7nv)?ux;w<ĉO_韎|(RXYĮJw )JBH朋lZZY?cd|"=4 EbH(V -akgG+T!@  AO' JgH2#[Lqvv"Rimjz pTe$W/1_i$U[r2TM[ʸ0hԘIG%]@t ʻt(?*>b_"s%UŐӁC̅^w2Rg*_QJ45,RXDZ.ez;QNPfWӕe=wrSkR l/W?!G S 3ݮ ,&*?* ӟªf psPVv-bqgD5ҐV»X)lC>+"da*vGRYTr|$~U+Hԅm]_$sEXBܨ@pۖm;ܵs}A{Gh\v;-B"$-B"[g]X?~K+Exll!T oݸk~=x;w<?ҷ^_mBu:+U۞e!IᳪYdw/bzϥ{୥3g߸ygt66X`ec8EX`ta!yE*5&tଌ`v!ar,%sS& -)Ng`3щD( ;ZasZZ[ X[I -"X܂5F‘X4HL$t:Φ\ !EE I(T!:,jY -jUWI*^}x"E蔎,`* Jji2+VOT“|ܻdV+Z A ۸NҧQ( ϕ.ɏ&VBN+Ȫ7Xruu<%qT!c{tSt2S -5[~c\I6%skCY[#NeRt5{r.PjL@|xNrLԄOF3SZV@H|Tnp~ $W`+)`'q,/ -AɈSlUдy:y"[N]]?\VV֏ -Dw9~wx;s|^y/ OTUSJO9H\Bҙlqzf K+Ϟz7D*'FqxaǢu( Gñ1ŠV΅Iݡ֗4HYOAV.&"w",f -,`g Z d!͍Rq -Vk{{ )jrE+uGw7a P8<FD2A"Xl.$j0=].L_%hbXű{v<#(SjWu?S (! 59ȟ[yOhJG* XVV:ͩ@Y:tXW8XGG*uQy*J|Wrsݨ#w!&R\R)+h!?tyH񨕁tV': dTꄾ畎V{5R!UGcI'f7IxHn}j+Н2L7I+ 6wϊ-HjBu(ab礋B0'ɯxP-J&f1ETeYq+6]1%H'W2erI|VӠ+WLx_٦L~ӯSh~%k~;hpe]V׏/9_&¥ο{yx;wxěznn*(@,#TbBF"Q:=;U -,8뤉L#}2(T0k)'jyTmIni8-*=E)+~f@),ȋ=:([%#UKOA`eXjO)+i,&h]xU)Q)F n5C:ЖEWR1$Z\S%B\vj2`7L⿢CvuD۶o۾s=?pС}걓ExuELOX bb),"|BZw=|gέ*i/,՗_~Ux;w/~\?_y_ԩ=A Ok'*| ٻ-_u?X6x2=Bc#P 8P$ ƢH",EOP;a EBUFd2td1X@>Daᬰ`!DұDr"X$hj5{cK3`؅K{'X;a "ŢJbrT*sٹ)HUV`&<YPheVGvIxOfuE< OL10Ɵz -TT Q  !$U!TS!z* 5n󺸩\op vɠTI6}rtWʨBax!zAn! ݤ?XYۂTNx7*+Jsw -2dWS&~GAmAVySPJdPJK2>P˔:):ү._W]ASv Mc1[(wҤג+fl9,ȳR|PZi4@KmbwAg - WLnӎa.[1M r߾D{;pCхc'a"o߾KZ>}`;?sEx>X^;&Z+r__\!a8yK6wx;yϷ^}ŗ_w ʧqFޞ <ꄯb.|`+hv;_rnڻjv[S3d&<jh808bXVXa%KHXl0d]qWs䒀 -iR%XKa1'`?`5@ *Z[}6zihoh#.)==Ԃ-‘!? -Fbx2HL*#Xũ`!ŲUY5.,zbZXl\@UseJ4Q+үsߧu0MX4Օ8I᫒ꪒ&+԰&V&2VRwjb]hO")Eg_J↎BVuz`<,G -+Ьqz#4j)Vsv*SV.TrMJN cd&G#r"KFgTPB=AB*v%Q6D*SfuS#"U6#KX|%ڂpar~%*MA4:%T/YΠn $"EYoh B-)ig,-(S _UD Yvuf{Ͼ>Z.^J[>ѣGO<"/ks"tskN,,]Z]\!"㋫k"\\^^]ޟ7wx;y^ϫKzo'4:TNY̲2`^\\-B{ _/Y ZL.ͱ^q?˝s5=WHfB@h`hdp?0HDc%8"pEEXbP ]` U!B¯=ME)%E(#W<5IW$5#XP/`uuȽDZZZi~ݽ=}}CE CDaFr45'kjo q0UI*t\6uB7G]2J A]Fs H@ kۂ|(P]dbiuR≮ rܡ)}@)PZŝI:ii<EC`hX'"|t݋<}Wbpڱ%ExdaDXǝsYx;w<KK/;=1*>P˂!ޣ e+ L6g?v¥wݼ}30=HgfːJe`ppHFBc`V49W[!VIݩȝf'ҹd&"X0D"wƯ}YƯ&3tF+{ڻ[;:LUSSϹWDCEH"XE8<"w`ED -ZtsB8])N1%V%w\\ ;bRY+Q)՘YXY| Pja᪠ W1 TIVD iM@eU-,X\ێW(LEn)J4yj"iӼWB}$UL.Y_y'P2i˦-۶l=8x;wdie"|vZ-/ !姟~NZ_q2iBY9|ti…Kο|wx;wϿo}PF9 E+"8#Ir)$ƥݦ+$9Je9R ,0Sr V"Xkjikklkm5CkjUkG vv-BpawuuvwCp`P0< -"h VL#ũ XI ӳV1GrLCRzݨ۪E]Jƴj< z|5-(H޻<;|UD&G -]> x^jtN`lUW&EjwTa!n&2L$Lme0-v4[%Ur䐟LdZul1I"!MRџ߃Vh dEVWl$QnHiEz2/h{L$VvJ7+lж(ɛA2I,(JuSu-۶o{?x;9~i"|[w{Ǐ=~D!GX宴^W׏Z"kmDW_'6wx;yΛ7:׿o/M>`)1rV0ה$;۶sGN;wdq:ˇƢb0'сa ^W;CX"V0"a<,NVI{ȅ ~5Y$),*pRXbiɩlL< CklƍM `YĂ\ vww @kpxxhxx$#x<611AE,"OBk05=537-U)xމ#IJlUKb Z"mŒT \ gb\v!N\ ,J*N$(OQ!8e*ߒ)-Tb2]v@.NpY zzܕ@vKչ\w8dZ빰\xJt5 -r54kQDOYCA'N72T1(%%0asc.Y4(A2+1zM OWO盀'p0,eD4Ltc 2˲ t]*%y*4S> `HؕUšUc( lEB( Dd -SJeRT m+̊JXZn޲y[wlݾc׮={?& +O-b㇏?a,EEXE'|Ǐn߹-S[\Z=","?lx;w|}/+ΐߟİ -\)vzΡ - sLD2+wٷr o߻zƝes`(erH|b$$@HDs G RX rr-BWq Dl;a1E"Xn),B -a9LL!BYly5bC}}"CĂBVa;:;"aGgWWwOOO_o@p ccc8DE[T^(,EX4%Ig3\] E - dy5**θȷ2`PFAHdYO2'aԶB MW5pUP>Wjq*>.Rؔ -xTsA(BaT5( l3Mm8e*5= - J]٨iSGڊJuӐBJ*p*ĩ,Lj]kHaPʲbv^DŠ -4ml3̊dIPY-y8tRP:b!5/; DjUP,ZlaB4)W6W[n޲}w޵go|]\^=qEx;w?x-B" 经?y7o;X.,-4zxayqeY^|;wx;iljr^x饗_y/!U³uVR.t0Je^'%}ϾK+kΟ?x#q20<O$Xl330?420 "kGFc4EX"rw.L+`EѹQDKG Oal-ӬE-Na FGށΞ֎jnnhjl!Vʯ@D .2DC-XC~H0H#XXd-rY` _4` G͖5}2.fqG>v]u#u7kbKR&:?аK\V+ M@T-?Ӎ::s^sa3XK|6AjI-TR^:pPX~w>zg1I<"FJ@~6rWe2J GY 'LRs4e1:z4?b0=A8g0%#EB,(8w^?- @X6K@B/QHVGONhKHeWfY@[nU<;(AH"7*Mjն "JU>5 u߼uӖm[wܱ o.-\~E" "XDX_~->||9CWWNsG8?kz;wx<^|W\(54]e,Wd:͒W_E=c.]uʚ -cxh,7hd`]}ݽŹ30,*r9",-BFd"dV\t - _az fȝ ,"+\3Y D8 GFHG"X -0Dcw`sio"Ξn:D8008<<}ll, -D/( -SLqhK)8"8,iLK+IA +Wt.i 춬3z s$DVfU\ őˣ^ ew a]Ux#g%+l0cFqnZ.µ0R[xJٰhv$3p.KNz7j񗥠-bF R!6ʌKU1 a!#Kwd@Y34me7PXKY ΚqPKxʐJv'h3%ʃ\ɄLdI]q#_q%'N5YOЮVEJJb~EFT ˲"زN(gVfbĚ[r\`ڴyo۱s{|WË^~i>|Od 7 "|GYgW Z\Y~ul Ë֎{x;wx9>#~7^xW3TJ1@X$! Wl0-BŢ+ʯ(Jf&S|I .,5#/<Ѭlq:E#Xtt D:[}4 vNatVH  Cccx<:#XL*C"X$g3s9`n`I&+ ũ.[$bRP]qV]dLwc(mʋJOIeҟhWP%V]G+ju`S:LBKLU6!om>U ۮxX5|vI,PKXYvO(c,aU8 $e&Tn93hbP}-W F eY@ihOqX<%eSH.߂ej͘ҠR[t}[,)2Yˏ)BQ%EXPQD"UKhW -#v5Y,K(2Z]A=DĸتRE -ش]I[pd-BReS+&kR'<~Se~bxpme;vCo{,.Q;i޾sރ-W4ŶEx8E ˫ąE"X/,AI/zx;wxy:o\~K//_dA^MN:PluB22ͦI -H- j<$y){~Cﭮttx;p$68oG۽=}==uGO/` FaA Fh| X$8Xk"LǑԝ7 -3,#"D(QVNA`!ɉT*2EbPi D_5ZZ}6J::: |"XL#Xa"C@ 34) -TazF`AD҉ r`II;Ve̲J'cWt׏2. -twPŏi8+%,%A©`MD.ڂ(eh>i(UYJzR 2MZ2'"Lnm8~wWRYm]I(DgTʆ%e6683}: -k)&sDڝLL3$R%#LR؎eB K7YS]Yg8pJtŦ%8.i|UPhYBNaH$"@b,Īi V%DU"pEXVS`IUsgU>%\UQˆ6 ugQ;O^R{ƴlۼm۶v޻glBʪl-Bjr3E"XO)k>z|kWo|pqV|pMW>8s;wx;iokCo_核Xj%T*`*;D"HFap|"7핵/^>}Wh`sk[gwoHO`W/nr"@p h,LEX d9‰uS~\XTF4bFaXEt~"G,d -S*r'w"!Bz39`AyX2|p H-X]6_󵴶\,X]]r.}}}$G#ccXI"W; gffJ҂Ŗq K+$-(yEHҲ._JWUG6P2[%l}2%T2s%\RPQW߮dh@dYwK-efR\!I:ZsQs4:)N_\/?vRQoØPɲ] -:O@I'$GoQ ΠQˠ=l 3g |$=Ꚍ]G(łXʔ?gf({W -ëZa+V0k W6ECx(дyDb!+LrUaMCXCƝ,dg8r>!+JvZ|s%lJފ? " - څj "XvصgNi0I.@hX)JS5AWLaP!,f -Ă5= , 0{~8`a"Xp4FFzI,XBkj57VkG+",1;`C`'c.!+_.@kE4R!Ԙ]$RGѱv -P"#Y 4Qt[ӹ& }%A02L*<"]w7u7hҌڶ*,zhYև)@KSRU %' IU[ ZrRl=C9%ۈҗn5Q+JIF"aH%x B&(&LeG%Y6d~rL\?,_S]yYߋ-K0GP  Lr -IXFK/"lWrg?!=Xim>ȗ-+>(BYq;q6%&ҷ0>}*2R!4Ƚ<,[B^eeX :l^dW@1p@,*Su*6] Xl ;v޳z +'N+nܸ}}h2d*r/ -Ǐ[_tu"\",ZXr\]?F}w#;wx;o}o\*+䨪Ʈ*$jWx$>>'fK+kg>:Jwtw:{[::ۻkW-m]]ݝE8?Guu_57kmwn4¥ a?# -B"X "a|x$|%4Q8NZtZD[)"wPxGd$MQ ,X.2DFiy;;8V7쀰H0'& Igs"r "t[!2FqCDr->#@% ǜWbq|;7 &e5C}WO7zgĢ0ɰ\>LnIKX3MTJ:, -q/k<6ܦ)mU_smYHd׺9 v)>Kd$B-F8 S)SU$+*FuB^3EB̚$tbK\n 792%_Ģ>+*bh*-HVtK(bb1;Y$ϝ߼"ٻ֡w;|tyyĩΞxLEуEg֗_ "Xw?~Go޺s'?X[KL~n^X>|i_yx;wx9mmO?? /8=CU%2LeǓI:5rɫH<>#X,3e3[\Y߻sgskk666vÆnx㍍ o46иƦF_` AƯc0G8 -\s +2)h"IXκ)"Rw""a2Kb:_aK^Ep RD:h, - V[G`Q5Z|m,A:;^uȈ?G Š&@N63 ` -,5;MD|aPӌڞ3dH{0tN(`n5%e?ͧ\ TQJ -B˪}z& t1(՘75ujQJBV%FBjXJ z|.n,znO`]+<5`ڲ0w+r\I!q@ ir鯎ي࿈arIV(d?Ibؖq@KTa= wahNH,WI_B[E\gؕ-m'%EBc*+@qUםhpe VٝlLY6Yv@57Hp{a-B" .->~(D-Bh~rGnaQ5H\Eqǂ_ ;*% "+fĂQBF<&-BiBHSXH"b:OfrK9o }$JXjnmmrh -S ,_-B*rQ "D4iNf\a*O3$ _Q6e*1$`sfȓT%lȾ=[, TMϨk Wя\=Y >Q*Ǫw@D £XK185l'HV3[x8)#:AUW^cy&v[\&j+J~g܂),+#zk}‘*Ejm"&SdTU v)Y' Q#@w}H2˖?RIju.~G[kסZ*¯lELD) ȦYP(WPA*Jgl4FQafE>KI^ĺ -SժfauӆSLrŰUe -LűBMemEsozEs.^v;<,"T#XtIGw޿tکgKED[KG/.?NXwx;qZ|>??oGS ^ Wh$@(4 2kw?cޑ@^׿kop.ݰ@ofڨa"XMa.4E[HȶYEƓa,U`.!aY u'39 -bPf(bYšfEާǧr8|ԞΞ֎6(KB`;?#T -!vv{wo/kxx$-±hd&|q")"+P^`!(T-SRU[,oXn[3e/I˪J]5bBP,xew"=S%K&Z⫵ZID,:+rXHIlAw9Țn"}d"RRWUr \ 4ńGlە2LhT T*_pLDЋwQI Ap>yFd"&b&+Nt5@>)BM2Z]6$%+'5=Hbed@*6)CS~(}?}м[wX6VWɬUeq\&_ۮ*03U5y-xR5d. \qJʼxq[iBr - VQ&¦[l-wG[ lw㇏-B"|Z"?a- /8-£+D侶BEk K/,9{֝;9wx;yʷ^w?'ҙl2EG!pŒW^IxH -!`p?HΕ-w;xhێ666vtuu645z5^o 7lx76657|Mm-m]==],74<0K+Š"1h9B$",EV45&29` -i"g0D IWB2#",_{{Sljnkmnmmvʯẋ{E(T9"Ҙ͒aZ_a -sqt]NҖpTU*_BNhf$(W z<ͬ2`ET<[嶩;W=SYX6uꪁ -M);}Pٚ*1ʄBVVm"HE@rPKq[hiRD^2dt^)w.SE)m5k0#2TU0[%Z /nP wY2ऱm$s{P=v]E^  &EŸ&+llOxS.mD.e? [4%e #~ 5c_%\eW(+DQ+"@(!cx|EF("+U_[UJ6mپeEg/lGWaZWݸu=EHZ"E<'|ƭίXXZ=FZ-ŕ.x-Bx;w5&tԼK3vpN)~ Նj$*hM=}ȊZY:N+iSiU'i[pT qީ")!>.U0%3\*LxKuIUt$?ER1śJo`QJXJ!+) Dٔ -PJF*7cc?UfRY^!U-`[JPEX$4k6 ZU{+"d[KEv̹,/@pʺgsx;wwR4N^`vVv^΅ FF^6o۱yNYo466tz/׿o~_{ݹlx͍}paO_W_?#+{h4@#X ah eF`F >Gw gH_g'as"r\q*S(&Y+: G#PpWX{CKcCsSc[`+ N"XP! FGCX,')؅Le\~Fg4U*;)s˺*~= qE WJ<̒uMJ>@hu7 VW Lz¬t%LU,'Fba-]ѡdL$SB6ʚ0{I:dZO:4CZ-RE|*g&[~:.aP -%X:~.Gg(`*}9#I&Y(݄~.EJ|Z\'4zJd %idU2%X߹BK%Fp5UAӮ,[4 l'>4%a ;\ټ'Hs\bA<(A-ڼu> +H(2WVo76oٺuێmw{]^];q]tꍛܽ`-B5_|gBZnC8lY\9D"X+Ex.;w_8wx;y>Ns_ŗ_wܜΫD 4yEU8CPxT¯#\~N+[lOo6l|acgOo[G7o__o __kąE\>_s[;auwtCgm A?D E]H-A]m1J܈:!!r","̐!DjXk675IORD&#ؠ?30H#XM"lnj5746|̀ڨȝ(`ST{aί:u~E" D -B05S&,:DHBVF "\ߓ-B2\VvUnTHFU5Q+C*]]+@l'*'S}*XhBeOW3Zxs-c⦅84n/bce=ӳ=3{33q{?H"A-؂ -(!AJSHxSH%IшFR5"Jdef%D|y>ߩi`JyXYjJ>FMKXc{^)W+5'(h'}1wvI)4?YNq -$VSOԺ }8VicF4)) xJ3;q̀d'whwb-vZنA@ Y]@Bb?Se+mWfRzumiAuOYlPE] 맢5V="<0]Tv=&S -Y.B$<=oʁ!iشd3C4D,b/%d GG&'L\_\ZY Fb۸R/_&"|E@X_~ճESE0'=Q`8EUkkƚ#GO~QS[A,^5v̼j4<5u89r 񪢲YYᬬoYoIM;_P`/>t'uɓ'RRNa:3slYĂUT\T -GqYYFk~ -Xj6b5B/!Y;Zꛕ Iގ @,wR>]XBGO^M힦f`jT +;;Ӗ򃔂_X,hS vLR -:jj'x<`jmnkkl Wy섂˫ӯ[,X^> U:Q0%TkbLV\q yWp>#3jPhL ^ -*;crSzT76#t1C&_@$p #v)U+U(X8_93d`^H4qaMF18fU 6S?ָcr>FCiU~x,9h'#q:OSuAqIQXd@ϊ9pXIȆ5==sjX~="|/x]| -w~^"k5Eǟ\ۿSXa{ #P$nnc5Xc5Xc͏ir/~[GdZ::(󪱩(R༪o` ^U,@r.`U8 Brut\ty+v>]X\vSǎNj} Su|:HXY6-(+,*# ~,wg]WeaxEYXu-:CHP!E,$a]@)‹]}"݄Տ)XZTUHqyyn+(ȲٔϮ,s EgD"`$ŕe?3t,āD˒ZE89(<4BN׷v߸u磻HS6EM~ݷ4EW߼x哧_|v[E -wF!B] ŠCk7wY)Bkkk~$/[5MyHbj`-8jܕ.p^~U ʕΊJ`5w]/)+OIK;s|~='/3'O:v$et8ƹC)4"L?kۋ^V, -G r aVRjQZ-HjH"w rVGܻ{;z"pWք~+rkE9mSpU+w[TRWX̌쬌,e (XU@WvBX+{i)`9EXB wOC#t @: -%BR)٤JX$Hxӯ4Ir:80P= ~Ȣ]21+xE j}\=3*WmAF/=-ǸrNbRxҀO"p- fN#u"opd-_rkk͑_7|myyM-P5iPW89XG*WlW*P^t9nBŋgϦ΁|\Qs'SSNd-XrOMMMK; ",.& -G@rW .,~U窫 ӠQ~YL-XZPFck[s[GKGgkWOkwO[O_{Ne@X>`w`{'XJ`! -V~vnn-;= h990'YTVPAX_XXhۋKK(ݩU*>NӬq^?yF,-'i>F -4e Tk:-G]XkPwTwB+sUTrY? \_ 'g !&_ii/ÑP8m]rEQ8$(Ude+×PGƩknaqyy5on\cERԂE$E -R߼|rpt EHC(~磏_rkkL~A#GOOqCW`wy@ -kjuA`!XUU-mݽ]}2srN(+ޱcGO" SOu"L-(+* w`]UE`Au&ݬUb!6 Vs[tao_HX8BHe+~`w4Y]SpKK󋊐~ar➟ūB$,*̷xUB**gܫnۡ<&H VwOw`]q+a ^! jT m.{JTiZuQJ=Dhbe.j>,,L@Z͟9 UFpOWՕf8=ds|:p|$//F kL'[7Ȅ8+B ]`L%k8Τĉ3yX! UD/;5t+&FfFrQb-4=m"Vi% .3D+sjߧӝ͍qCrGղT -dsL%JD+PTJfXd%M©?S3FFi$DEyppO? Gcp$F76߿ ,*^؈%Hp%#~%Lw`B$aa  MBOqW˧OA6Nn#H|=B`.p4];??nc5Xc5Xc͏f~_o-/ߣW p㪭T;x+G%Z# W䮼(5 ܂´s#HXǓ'N(Kӧu(Eh˵)*,̷^Va/+G8wg ҋDª!XȽЌ%,l- W4#?b.Ž掮Ξ޶a.B5Eū~_! (Xݘ\Y mȂm |+ - - Kytb;*"@V5`56 My]ݝ=}z(KC`Ѡ*.E0ja}F:4+Q ʬPKi=`[ 25s@_Bg[8Pܣ-`(Z,W+hw? -\bR.342:6$+3W -m`"|ŗȃYCB,aARSoll" @Z$Dbo;Xc5Xc5h[~9yyl:rUv1\ċUUE,XrXu -m-յuY9өgr -%Te\SjreL5P.0()1'.&(0D01d+z:'FH,b=(l}Mfd | ^g>+N9Lc53{v{y̧ GOW,p&Q;|gsH_!7xU"HY~d RyJ`jVf,V|skkgok+{&pàO?lvq1pڎ֕W :py;g2REYGwB.,YFBGFGIʚrōI.( ?n4Eð' -+U5Xc5Xc5hW'o|33'WU.-<+e;JYU8*Y>4[~A-7LD{RNHNNNMM9} - ^Z^\VQ\(uTY q)!Vp a b@-*Ƚ/j‹L#!`6" -V lDqUүpXv;p aqQqDM" M" VcKK3X: Fجȴ - RL_ᠪ>ziK*D#>NEP7Jq&"  DC;&}<+cOFliM_+8T:ӎWbkFEⒹ2KtD?c<{:FK5 -A2I pfaCiƋK>1y|}8ȊgzG&Yav<3,v2*('Z?0 Gc+J0,˫kK+X\* ?zdcg{ai) -kַvַP$ BpEegl}#cq嫁QS݂XAl¥ RTh؈1$a!M"T>?"|{ -ܿ]2](E|KH*o{ooncN(Ea4Gʏxz9Xc5Xc5'//OY[?{Ϳck 9誮& 躪 -E],w:[[ugN& -GOQ"JqQB ,^KJ @D>n"Iq9'\H_ƹd^wf3HeSID3ѣ/F/T2~Rpe}(U1trTU5v -J:h? ~Ab+r+?e"LyE4PV-p v-Q,jLɠBP$:8 -,GX׻/X8VHZ][_Xredl\;{?|/[DhT!<ŠڵA-ĉB$_Y!n34:6:+ G{nܼ}8X"|s"o6`A!_Bݽ! Ɩ=(h$SO_xkkq̯x뭷~sD!+W`6_ E`X Ve EuM - J*K>}{Q?vSN$'LIA)B+q>3+#ǖW,"# VCYJRgU -",Xn0bU:B -uGBҠԅՈ#t݄Rm m-]mk JqK݌[(I -YlY➅@XYlA_xU2rn"7A1ȽO`]+Hj'55Q:d~N fs +idhW1؅[9[.O4Q -QL[m^%c_hh vo<,!f nZe9{ %^ B 9d}|eRVҌgdZ&t)66NnVST:[/_E^2WDIu[iCz pd-ZXXTvGG'FFG1P >K?h߻h,DCZpnaqIr`\_<~r,X OWRAP-2b Aº֐r!eHX`0ܹ[w޽wy9J~ )W4 F_}M޻R{Z 1=,XE[wkkk~$cەѣIoouj+!$F,5HȴUpa -YZ^SW,XɧSgd8q䱤w{SU +%%4`?$YYy9yraAªDVu"QCqX_-˃]kYâ)¶;SDxIb{υVHv5{[ 55eNL*gl٨0\RDZ BXv0ŽDYJʱD D*ka3wvuu ,XBȘ{JQ0vpOyݏ+%YKM0\>TԹ*Ķ%Pߢk}x%;̨MtI4CE5h( Lo_bd'}f'SVdF絝ÁNzH2y所N>> -;^2M%xs1VdDH `k'S;9.TCӊ5JJjbsȪXL6PY ivAff"Ycq)C0ÑյJ!*( -S襌Ը%F=~,:Il5 @t}yppai񓧑X,8x( DD?`QAĶr@`[FFF'Ƨf^_\ZYu"}E H] 뛗_~ً?konlB.,Я KXʓolo)?7w_xkkq̿ox뭷IN=]][W WvUSU {=*jR6 -@XXRw]}C3ؐ++ӑ+t* -+GScǨ@:Eϟ)\i%. G25xJNە(1H+6ǿd=OIf|QGd'+C0MOKen*Jn$ؠNM j+SAOkJK02Dk  Wt&h*Tʇ$B6Y-GFF#ʩ.]1/H|s{/ E08@QZЏlW`B.,V|-,-?|h5 -EbJEbS~}ac~7>ɓ%`oCRWJhW@!"gx a -aB(YyF&&5;P8$7o=x9" -$,H~%tw>޽v.8 RkJ0؊m*?Ojc5Xc5XczJJKuMuoo_&͂[i~JXՔ+BXNgtU74˓3ys'N w$N" tJZZYTDu>3;ӖKAE*{yyqyEIү -@#v^*7x.VPY։ [P!0.Pc] -rdkGWs[S_US[樴 P-;7[ w²,!` @*R roA]]]}._`)zƵbU; 8 -ĪX$%p@/nyuuTSݤZXDiT UIJ/A.ùt26m}ț7I4 T+ckF2TID2)3KDW`db+d&:~L.'%zI@ZW g 2#>j} ^8jqKdQX֚ Ք$ndYWYONίoM}s{ʲ?(UbG";HdE'\mHPEKƬ7<|8}u6_W+s8'`B;QƥxÏ>Z\Y ‹++#cI4gZp%S2ZG ! 8g^:?ĔG;L!"Faa -u~ J᧟=@]{tkc3j8ƕ XXc5Xc5Xc?o~G~˓))5uU.F~;:4;HXUA+drZ\pKO?z*5SR0{@XIǎ%OB)S))ig0lzٌl[-7'R (XȂAXP%Խ][uWu *sݕX-u^b]X؂)޶FDTTU"BZDE-Xr%BAX*;*"D ,"u{.)͘*]F8I=N=ɛHh2cd!D/41Oyu$+9cO}4q;q<РC9m -4uKXqy -R^.~(0v6s[׷r0on- -F>v( GW}(0:ZVa7/D(J~=rޝ!dJbK2_ #/d?gafv`dlxt|tlbKX"\YYkk?="|grI+\D{MSp +EV0 ZQkkk~ru[?oۺUe B K[*jp8]5M-RSI;~ę+DrѤw8 ։''':}:*aeNϱ PB",+)w@\XXRnnLt V-( W\wR؂nh4!`!8 -EU‹m^ܢ.u:eyEv[>gg#;HXX E1HXv$ە5vaUQr4Ƚ^#,BH,X& L2&+E N$08ȼ۱h0'*VbR"YI d6T+W -Z2gL 6ϲnC\^>)ʄݝm`2Oa7}P2o;Lx?td3.&S;W2ybbKLqt۲fgutMd,%+Nn;ES4E rDV7|ey CH5УbԗWkPXyS4ާml#эK"#7 HyP'@qW}YzaiE9U0Gx|%,̭*OHkʯf X4JSjHv"D,DABr.񉉩ٹkw} ]>zs"1W~v~{_AkH>"ۿzA9$ʕ%ƯPi|$^?k!D'.JF`0쌊e(d#{&;3Hr`\8)h pRu]?G˫H$:ESJ~'{nɽssz|csrJ`xR*5 `p6%3v?һA4:lWWXFF>1=15sw[_<,X_!`%JH" V(f8Ap/9Xc5Xc5hϏ⭟USWn,aᅸ,XU+",P46753RΞ-(L>^ұ}= O_dRAђ^Z,Wԅdc( -AzMf5XIG\yz?Z΂E"RDٸ) &hGCSHC`0<26F;ePlcrgϞBp$nlvGK"֝<ɝk`8\t|zF861yCr;ˠ_Q -QP /9K$gɴjP ~/F_waa+@r_Y^ E;$E'"|H/1*a./q"D]H<[gSk C˅e5Xc5Xc{***7Jկ[[__Uv! Z1kIAJ:+) V]Ccy>3#95Tj*pO>vǎ{cSIIu"%%9--RgΜO?q>3;f˲w RRTA",u uB!X* <KrBVm#J HX=EV*a,ξ֡UWpJ** -Kr sr Y,e#[ -p0WjaqQX*Ƚ=jPUr]C ۃ,X9 Ȓth P4Ri6P0/#jEKЊڵD}럐nQWLd(1AP4*?:Ϥ{T’L(~|f0vc3կ #/ T1Ktr1^k${vHhQS&SK?LK>g|¬ Kؗ^D-Q#Z{ [&(j jmR,B|Hy+׮݈on#kdյvgOO.*6wãM *hxbjfs{w7opva eA -#tyuurzzdlLT*TY(*D7_]iVe?FӨLbZ=@fa?4ĸrCZX\^]> nA)‡?~W Z@¢)>ݽk8k"?[wkkk~o9[o_uMDž*"X  `aˡihonq奁+%ټYY'OH:v(֯PIb" s8Eo+(-*/F.򊢲CY+]ʢQ)!aX:(t "^ud)F"a!`u濢.Lq涎wPUV_Td*ZEy@*+Jq',Eh/) Y ή =/_jlW? t#Ui5S ,Z,YC zFVBd&245hD&s]G7tFI C()_=+"¡':9@̮+$P}؂''=3&P3"O1l& ʌN%IFUh2Z>J2h>㟧X"öBJF ~A%4~4/}J(DgfgC#y+(#Sauɽro޺FgAR"2RT6" dOO 015 DƳ"+jRo(ʲخ0 -(YRXd?ga_01% OOLMM_2;? c[ߺuO/! tz-~IX߼R/>>޽9sE۷|t^8S. -\gy58kX <:>ARvEWJDQhr)ݯګWJsg&F]ɈQ+DQpdDy\pzjչ嵵H4߆ E.¯)o^R+*aϞ|S7P0ĕu[7Q0#5ykkٛoo%\n]Nr" w_!{\+(L>z&-0,X Ex(܁u*"<|DrJ3 +#3=+;3Y l wbU:%L -J ]êq:k׽N -,X֦͞+d8K,Xronjkohimht+ pa-Æ rrss ?Ăv`ȽDZǃ@s/,W+oDa,ĒRfu2=Ib+ "@c`){JٽÉUj?S=cuq<="{b=!TbBvaE|}P0%WdqK + CL541Sb! "w@".K8:6k? ,p.sq.Y]ٻyͽ{ۻ;{vv`kk(5mlor>V;׮ܸ[;j0 G6w\;>3;\qٻGF$"krn߸[׮GH4,HDI*&ZuؖT8Joى }H (WCd,XpONLM\_\Z^[ S"| -)Bq}qշn" 5E=r>"TSZ$ll_xkkAϟٟ)O1w= MsEZ *"dUTQ ,X5`jo,w8ϦN=m{%AỌuԩɧNNIKKM;s3(XD* ܡY欂 aeU˅@_8!Uԑ YRWi.z`7.NdA)¾ */}+w6zpՔ8E%yE@ VVFVf $\j w"B;J+':Oa -VK">B(:UfP`+uR U̻E9A53_}kN̨St?98c`7gC+\MMht tx(K$'r.&;R6\Wf's1X $ .nV - -?hL7d6i$ݢ| ׯNYuWzh-FkE"~$2;'ʁ˃^$q3 x(]\Y]Z][^]]Y C%@/^Y][Y[õ\^N$ UXAH ZP 2YɔP)Q +$: aj,X - -l eI86*ꪒp<1}"zxtht(XSS3W6;Ln|p"|"+E-Ve./|O?{SQhT"z(_ GB{=kkk~7o97:!tc -kYN,XUʊ*Br~r>z =+DǓ RGɓ~u.#a{Ĥ| #:{$VyͺM E.B.%ߡ$K|%^"<'%ESC)Fdӻ=IПY fD:PVǥd]۠_Q} -dLVl|p ϕOiD7:؊׃p(YZ]277933533senaiy5Z({mc{ܼ >904suV9faiinqiqeuayynqqvn~zvV9rskg}sK9(TARE+W,.--./.]JAJ&<+YU4GF`B6k+0UH;ai bAB,| e!Y9-  u^#]>{@9X/h7.!qa}/zO>7ni)(# R`>ևw_xkkNYY?OyPi  )W.%,s8*5uOcsm}C\F:$geS0_,J:S)̹g䞙i',e)(.QBVEEI A *'8paa;Jb٪R٨)Ba55576aJv~$ ¾؂VRwVWV80+/7!Bk -T fŲ1ȽDw@.נa=`!{{{g7._tK^Z>t Zd_{Xc5Xc5/#??,XlFVX+e],w8+ƦF<iiRSϜW޽wSh,_W-XH[[/\fV:  -%",)+*]X,weKXY5M]X_a9 ,XMM͞ƶ6-EA$]]:z{[z,gMM` IXY`!WH,XȅE 1n/.++,\U555uuTDuA΂cYX%ۦzO hSKLYrN0$Glb,&n#N%#IGj|&!̲)˨Vɼt b"g|3ϕh>Ig#E$R#HLO}J^{D_KL/uO>LR?>Ax}^AFFG##ycAw A_4__^ `GڵDܓϮܘ_Zo\|Ή90}YDHR`h|rj%Rxpd5âD"鹿P)V$6!HG"?2+Lk'n+HXD -0\wqAr$N, èpbj@PED7vn޾}' / ܿX7PGg폶w"p4cp#DGw>V~ܼic5Xc5Xct~׿#'?^V^S穂.Zָ+iW5U.΋r'Ufeq=TjZZvn>PN%MJz~(X%%;q JQgϜK?q>+;#ǖi;²:BH:ȈUFAGVK%b9iKXT8wDǪE,z,a542)Br)KLt^hF6`"Š*Ȃ̜,ZD`.BlB.`WKynroE-mmr" KҫT֐JI΂%C}f*ȷ}_+O8>"9v?YkE- !hɇdT1>^c@tڎyN-fX|©["m,9A2ƇKIFw5ɬEeAfT kOX;D,[3I \] eikwo{ԴWE꿒h|sKH, -yʏQ!r8}j0ƔwH@ˢ߯9C3WgML͌ P4 -%ܜr!rr=_hPĵ -" j0PH 9A"H q ~&R~BYW!duX~52>161519$%r' [?{}rG9B₄o K9J9ާoܼFH<[G)B`){VCK/^~kk=?/~FPԅUvՠ a baWEN0bUyݞr,XSSSgf>{؉=N;z 5T=w6#$,E_``,2Rr.,vָʝc;UR"Vv6y[ZHY{)BE!D)Ž " VWSk;`Uה:1 ,XrɁ͖irȽ@|e/(Y¢baa ViiIyyYVa 46b (X=؂u[KUT3'ORInL>+IL)}u5a[e>>d' VzRNKs^B4½ѝ*HCدD[X5LdLDvҙ3&+g03{D.c<`\46KIe41r^~k|yI}4O'|O - _]ml|pk{`?0;__ܺ27/*YG_@|h8DR`Y("442;|ev.quaAXVQonl^ݿwmc{7WWeHJ"$ Ma YP xYT/I `v>AUR+"a%CE,XPA82cE89}ejʕG[;Ï |0]5b*_U}={|aQk}Ukkƚ_)_ȑӟ~WT\⮫sk+`XHAs]* QUF)Xʻ RϤJII=s&;/|&*"L -Pܱ$rG)T`9vܹLՂ 0+nGVY`9Rp"{%hYNbA)!@q)!$Q+|X ,ER -Vkg7M^0܁Ջ,X=ԂVEb[AAv^n͆l-s `a1ܕ5UVV ,ۡ|=-rolsRPD( AA'IG/D|^P\$U^?_̔7Q' Kd^Swe]Ndz$gn tL:Iԇ$68D&pғØ"oT4X4$撦&1~rK{; \ʠ_ >4zlk+u+:h@>D>jS?srArΩ1P>;{F8HkZ0*10?@VGƾ˥P4 eӉR `$yЅ$bml !Eו{S6Vւs ccl?rz&|bXђ(JmZ/Ў'P,vE(TlϠ`Ԫ!\'9A$RakᰄX{52:dщɱɩə1(߲+WfgVVC¹ܸy;CŗEXT+H*_U{чw^;Wkh0o+a r5Xc5?{Iry?C 9Ύ٬q~<wGP@ -JhL!HТtUՒ[>Rg[v 22C ^2ˬZZZ«ʫ/uu`W@q' ,# -bU]C#ڠVׯ_~V^^AqIf hDx1ϟօK~ܯ^@yۄ_\RTZ -aWUaV  1 j 7%TX- -đEXjXMm gD-KgwGo_go_O@PX"I5I\X1҈(XE] r NaiyY;xd;EXS)B,a547ܡ܈pbjr筶Ej[9z3#'Nq5zwOٟjMs߂I[ǷӸDmAO( ]ttvQn" Igx+q"ۋ3rW;JP׋|=Ν1Q3($Y=: Ѯ][9VP;X!EViJS1:1vVv^S:="A)JpX+C|p,Vvwcd /޵@2%Tjg7>"d~$g|+ v%f3#`&F..g4.XJrnCv8M$p4Hlk;x8֣:G,Rv -4= )D Wl%VTkx -݀`92颊D+lrlӥ$ -0 -+^-/kѲuݷFXkͭ`8D {ƛSa}|/P# M~|7>8<'w -R)@Cf3S<s_eYfeYf"`׿~M`UTX[T;`Yhd74a [**2.^|Fvai+W^q Xºx -")œ[y%D*-)V!`v "ڦfY"M - -!b5Aѩ>8BR4EHWENL bj V=`V.P EH"X*+E* UUKS M---?0 w_,PQAxXơbぶ3ySk2Ⱥ7@kfZjEΔRHFv6FmSpV$η,t H3{`T2Q#"4Mn"t3`Zbbw"F2/)ng+ׂu@QMR%2@DD1+Qdwv{9f~gmv胏>{A.B’ J!8LFIC#:=.>tl%8TVDCcRdt.0y@iAHt* !QH_.N5fHD"wɥ !fd%ЦhCbveͿVZl gF`# ?>y?䓧~_|E|U,W__|ɳw}G;{袄cr}z V,aEo2,2,Ph嗯\VcV;mGPvJ.z`5v-MhchDQxvL4r Knȸt8322KXu ,X97n`{^UWV=VTfa#a;చ!BYXD"v,paY$pGGǩkbftrvDE8%ѱO4ʚR܈+҈7")BB!&_UUY M d Vm}}CSS ^܈ppxpdtd$,܈PN-0`dŅeW,Aϼ2@NDotKU:9e5ֲzZbx+X}1$IʡF|Gu Kt3~D=߮K m OqR4YBQª'US7A36'sC.c(O==@I PNMp60A2Ud,{|`8Ot,Lqf_^Y/t,&ȒuKVt>y[o -';{Gx|u}*P!Jk݃CvɽpTdz|JiH)R%cFubFVX pUbdoMfcaYBfrA\a_]t{/v[=>׻/V+kk4M@]mn6m4hac+֣V։̵lKv{"'O}i//!X8!ߠ77g~G;G'wB81paA0Sh1mfcYfeYfe֋[կ^yॿi$\ ,,^5 ^AGB@ÒQ}#*"ƍ+׮efg\̼p⹌ߝ? /_+++3(X9ro/ jO)4",+/,VY5eWWb -w$$8:9BXl.,ڎ۱Z1 B#!aa.VKGW[ww[7` B,Xcc aMr -4Ԃ54C(X--%E -a!X -!`,Λb ԀR-BP5<2<:>:>,ڈpqnѺdS+Y,؊D*1WJVĜ]V6^bxڒ0*ZMzCwaJEP,p:_4D H`V#*%#FaC\!%sPGHX|JNݹHnK>=G' !`oiM3yv03KA>934pu; Өd,2K0.2Wdf?=Jb!+8)A$ -ީVpfnnfmvVXѮ0ǴcaD#hW;qLLc -S5kmI4#Jظ3 Y;i^ӂx{GوnJ -!:x?jF{#'yAϮU̸hUD`mQ z dzBzy_8<>7 AJ7E3 ENcT,Y*O.A7 Ec}4L7ߺI4Gr^/>/#/_}>Oއhctvp,`#T,spt?#2,2,^_W_K/_k,$E]XXT" $4B@pvtc -, [ge^vŋ3.ܹs.\E";gF7+6PUV^R+$, $l!#$ ,ً\ZqZD,sM [zں{;!E8074WCr'5bք#"tt6X*K+* -UWP(F!,/!V T,paT@-Vwu~5kzrfvZ@,ɗ0|( K-X 'who'R0SNSC cɃG>zw#Qs oJ+R"}=|4H,O/K6s72=;!]Hd% -KUD!(MNL"%E7,6X6%TvhAl%HJ`[ -JϠp=+~鳧>{g~O?O<Ï~8:x>H<O&vc,l2(G믿61,2,2+o9-K`BBM< KaC/B0vvt64 Kʲrr.^|t!,,E([]~*rnfܼ |!,)(-{y%U^SSQ[14"qՂWoV%#" N`  50J@S$3HĂ5<154>1X*k*KKI(XEy ҊRl)X0@") roh Z;:4"$np'ѮRb`,|>#RFx@qR2yDo&t`"R%xZÎ_ SM Vo@tjT{a`r(Ґ"h؍ZL0$2vK߉3&|IԽ\TZCyY+H*F)Rj43W\@"2x -KRHԧ&Y]ˆ[WJ&&<[JaN#h1F7$yvam#?}O$S;;G'w֛荷vCx8 -I`}ss+",:swmcj@‘DzĖ$؄J$RJE6v;kcWSbQT9o$֔%SE PVdhS2JRÃKn)ȃl%9mX#۠t{pcÕǷjV0V7kɾBXN84^ƓQ8oi,fGW -^"M` +^lnx+.Otމۿh{;{prރAG|0>A ƛo߻CXX -ET" 8zxz;=8|ͷпccYfeYfe W- zo~+7"$)]5YښZZ5DwBq]`Wd̹z삒[yW3Gfd ֥\%7sn޸{v^naa^qq^1c;`ՔWTTװ)BEXOhj-uM"l[aV+bQ{[GKG'!E8;0,Fą5Dc @'`tЈ0?܋JaEy"ŠjDk@V}}}cccssb `  OMNeQr-DBVͰc]#jPK%X&'H4guwQ6}`r2QQQ6-I{0;8DwE"Bfp6G9^4QAhGw򃇏{przowa3Ov$%m/d*KEã2,2,^` ˯okYYERm|EY*P0JXh`7efg+?4fNK3( $/\xҥKWP -,X9"u -KXUVR^A(@-Xa]} Pb{]S"$vEn½e &gN,XG`MRpw@kwwS[[]c[iEeQiiAq1QTX\\TRRRVZZ^VVQe;XSUU"mlkllljAHX]=@!ZJ,X8B8?#v]8HGDIOYm|#< QY:PF=6[9'};Dinq"/«76Ěl:3D5(:_DZ1ʦQo7c5{klI|,QиXax8XjSK -h^ ',tV(K{Dj}c˷È$eon#,gE uE9}z#v9H^O?Me_SDft:Hnٶ TaG$X FiЏ֝tV1OR"{YğJ_- T?TSfUIHXDQ`(?qˢt{{W}hjucCFC'AE;f[ՊVIwST:Y88:98>AhA"%Ͱ\^[W$ѱܖWV7轣̻{Gh'GGh985=53;37բujS(j.I:HHX@՘.t]x$9ZgLP:L$(vI&}tΡFw^2b7pY)*(dT#|^kDƌ>v悁9.L 9w7pBO7Dsaiiaqj+(\(9kP$ً5BǢĘ$ gޝo#|?v`A%zG6 &fǤkaԌ$9ղt*h]vXsß6変q^9l()  Jehm&:H)JR=W2̊MKʄIA I=- -BU -p=IB4!U0 Ec8$HV"~zW  -+WG'X:=89;'w݋Cgvoy +d[-ZlVjt}յF I4%#d8Gk67W\n/:@v8OF"%1gYfeYfeY/b7"я+eK{ #ה G# ZZI`u64/y[%%7s.+ΑKX"_Gz`ɽM,XK -A*SRcJ`Ub 8&b֬fPHP!7wZ:a FFǰE\X -kSkxop1UuuЈ4vaanAAnA~^Qb{eE)1 -pUU\a;֯jjA-l04" D痬J@~%,f2|a L*6Iˎ,.'oCI\FOXMgѪ^ H r*΋Kȡ~ݢR9$>up0¡ -\N$ J 9xALu[)cn u -4VLDKOd1Jւ"2P99Qh-,Y!['()6=(:]&8+ٹ%EbP$*H.4L*ȳ$KhW<|XһhJO Nvq8xz'Jo$$3JJ!_ ĥiEX+Wvm:Un31,2,2߾ꫯ~V\ C`5MQ,Mł[7o^DvAW.\d W._Euf͛7и]T Ң2*a_UR`#HTۈAX`:8EXLR칪&i*Z"*V 7Ƚ ܻz D8J(XSĂ50d]ٱ%ddezY{>Ȼ kquMC:gYƔ6)Qrt t~-ѠF_D-8n&MD)66p%Dz~|>n~Jn#i'X)/ϐ}HK8`}9T!hNTiT7t{%&'9Xu*F5tdPD~6)9%z$X^]*i'H=&_n |ʪ :VAG']oۍΌBQ+93v鹹%'O[߹ IAciѣV$nLVouBiX>CnW4.bҀeɋ$v2py|D}+ jcmVF0i#lH4l+p[ɝD -VXߡ@:šՑ,^)1b$wvd0!W~Z ֙陉I< mV;%qHL fG-$oe}3&bIGp,5gF2,2,zqP~˯|?8w!F%,|@[.-$H674576wt7ܺ}zVkn޾]T -/]r.#܉+2b -kYY97Ж7rso=@%eU0kkjAU"lH;&Ņ\GP K_ E?3078<0 w` kѯ&G&'q#¾f`a VA XnC#BB*ʊ2DwȏtT!)X]==r"CnO_eN ;x>gJRJxkm`gcMj[=-r S\=.fcNBvS9l'ؓtjVRD3A )I%q.IJb,RL7UD5FXa789KOI<9d͇|kLVl8Vj\iDxJv79Qxp,ɀ)UlD*P$L{'wV;{؝%8l {%LPUНK${{O?:t4s=6ےş&KI* P.sV>F؋%!TDuD.HdGTXh{#:Ary2:ô *6Gِ`>y"\,]2/J%*h70\Lu7iPӜ sgٴO sA ٩>7o޹wOr<^xNE!v8z LJAQ+Ar|?(wvv5-D/;=nM Ԁx]#77zf8UÕD8qLvg.d,UƂvLRÃSt$9A,jM6$mEdP4#0v[`͊ZZDazh|k;Z^]w{}Y=37?9=;>9 ZFk'&'&aLMϢ19=3 N hdu<~ G"Lp06,2,2,^~_+/ϝQ5v"YjGB &F}Sڦ4"+ȿu7uΝ9`˗ѸrjfW7oͽ ",-Š -hGXV]SF$,a=Xu!ܛp)C_AGBe&t"iS a KaajjD`ɍk~[,86:‚|Ƚʕ.s(W$?H$ں`5Y,-r% wb -mFIV*CFSvgАZ~F*P4L+AgR IW>A0tg$& Kx.!Ǽ)>CGwLJduT%nB:(k}1A1RM2S%;T {+Aɲ󨝼ȋc -ۡX뚪9؎xLīgƢӵ3@s{UܛO"e%ja[^ÏbɄ Ik;6 Ç%9[s'_9.B/ܻӻ4Ӷn7*wQTO$<%;3mWr$' vNd<̭(P8^7CG\^ÝA -@Hp+HVT#$I*[AAʶ:Z v]uȶc99xXD:8?DMvۑh [^uy}iqPO1<:62 -bM]Yc0Zc鹅%C#~%B8z}lz㭷?~2,2,zqW_J؂I4+Ka!Karei%͖F "-X]m`j+) 넂u p!`]tʕKW~u=;;;(X^[X_\L ʪRpab +WuhTvA"B@AjkV-Xʲ,dYaWkWwg_g@/"!)!4'&'d -"D -V?zyYmDXT - KKB,XXTWT^`jmmh V@ X0kbz}ɒuZTrA "'(ڙDݮbi;iVgJatNFL6ܓmIE1M(~=XT+ ܡM N|;564Nt-QѵT!K#! #H8 A&Hxy-lVɳ^"WN~^߲.n4;"؜ N - -M~8U}/3N:AH~JKAAtrŴ+K肼14t{)JLRԠ+d,;9-Kr2u.ƶcc`4WQMOUul?ǏW:"K%ntJe R=D횳N8kWqp)ݜ>Cu6LZg{][o{E -Gbonjgo=˯{{Ņ%AP7Oյ'O})_~'#6?3ʪ.02h (iN -%R~~SϻdAPrtٓo6ANs{vAÇt}З0'O#os>4''@i_dC4~ʳ,ksy'{C -jEEg" 4ʾ Vkk$F0 GmUX wj: lu1!xrztVwQl suJ!W2 - W̾^G`ih+ XZ +oVvve/YgprpU`yr rlx( ~504}Wv4WA4ԎYfeYfeY/x//oڻ@d iISBbu4 h474vvut5[Z*2s!y0Ph¥K.\ Vf\|KWA0RrnܢₒҢRB#^7 @X 8?X [F&UR,9Qʃ58L{+ )Ղ5>E,X a uFԂU[[VYY\ZZwhAWHA%4BXWB^!d$,`a{O_`A/ɩ l_X./['(W Ua%(.}A TN6( T~5I%j\jObwv|F IogΠ 2]n|D#;laMvsܷ+QN#pIj"z:Ss~ɿ G?⋵-Yr;O>+>ܷ`Vx0X893`KnFI_aV( Ǣ7YfeYfeY/t_/׿on+FjgAjiml7576wuwv7YZKodfg_~=%`Å;(2g\ NU'"#HΉw{f C o΢}afnjw<>~XG8&N܋9;7Xh?x+H[]>so3ַuXS\Gu&MɫSM:y9T{ Ǒ$΅uwXY vr"[*V;Ǿ`+*0v{ZD"+.$#~Cx0 -[Opm}s Y%cV 3৚$W [aZI)9V؃.d/,a mnde1<:615=fp+QīM4pو,2,2ˬ_/__? vt*,e))BF`56V=P;zЖafvֵ̬Ⲳyl -:j~jVv&f -V~Qn!`AꚊZ - 6"TX UM$ELYUlQ$: -r'YB C[z{0}|(X aa `` k ҈8v"/2u ,z1A ---l ]i,X؂euViN_9 -:) o783;?5=;61=:N(T[E7:݁-|zvb +~<88F?}YfeYfeY/\?_~۲ʪ^@ꔵ,j"PwR,XͭmMac /ʹL`+S-@k2 Dfe۠_A#’ -V˽d i/BjnhkxՈY8K+jUŹ7ua+Xd XǨ @d,X#hK6Bj VieeQYi~qB!,)B?PaXUY]]US:6555uvvtww  XfgfF~J BՅE@X(YHoF ٞQQ+.eg2MvC)9~H. cul9yA4S/-XlESr~_\;8\^]'\wEbX*XurV+Kq.?fKQDGe3 AEO9>Ft]^񯐐 =B -Ib1ZœD:IvvvqH+meيl3l -ٱrx+Op?ރ`"+< 7Ch8' WJ$ - .Y -jff[pNp*WhL_ ;ƒ a; ǥl/X6V2c,@16b[{:+ifxP%uWn+l4Hh,M(HDj'I<8Jm#xGZU+춺{3+Bhս#U WGG'{jN0eh0 -wy[vA}jYleZD$6\M6V|5Es ss E D[LՍ<ʺϿ -^/$,#T8F`~5B-X’UpM"# m"x,2,2ˬWB?~]iyEWOo5_hÃ,v-Xˢa56Z,- Mm]h4YZ*nܼy-3뷡^񵬬/,a]p_ :so  n~ (X5eU؂ER4EB‚axT,ZMv@"b,Xr V[{]s3[YeUQ)X EXQ!`) -,r-^Ra[kGGG`kPff-XTI+H bJva#¡rHvIOva5GSKgJ٭Ûⅈ3AOwixgdXIg MNKFy:2d|Gz \i$eC?/}SOfuJQ;Mҩ+psR^Fӕ\M^#dD94dwNOCѨr[95nlһ6Ap|:3lI"h啍-gXE:uNMrvLI; ?'_qBS.OFCHpuV -RE6D4'L>Zb;~dVw?Cd+y>>[B@Ѕso!DD ܜ|?{i ",/#XBHD[ܛ!|,^54C"&Z[_&J-F,RǤ"YSrǏL@k"X:,`jQFJKio0TVT B`)(rGEBz_EiX=`bc'Ȃ,'Y)Av\ZP{,"Ϛ'% NH 7teiq >ΛN;Sr>zS>Q^Wjj4.wBFّ>-"]j~U/jT4hO{5Rbjl^1$.yw>{g NP$L8UJC!ȭVzÏcd~Vl? uxL݃݃͝=v`k֗'*?EffmsӀ>!(y5U퐶՜}~`gs¡p4X^[^]_]XKn'%ג[#+b.rv [?@#cC#GF#P*+k^񽱽[/}K_җ|{o}*`jX rWܷ (rVԌ֞N"Xr<(*{ܛwn}Ư]#  [7oކAl \ aY+hB"XEXg7VCWT$d[erՆ+E Kc5$A`*P$;0ppӆƪҊ+ȂUUSBYE(\f2u!eAã4pf rB? -VlDXT1iKyߡ> tp)ɛI ҜJyu`v@WJ5I$0 n\["ӄ4Ӟ5)ćzT>Ӻ>|4K@LC)}%a;yeg+k Dt)-x" _Ɩ{S؏-:K5"dCMEܩ,N~ZF)>.glMu)`-OuqTA/Ѧ|Ӱ>5~}fgo0paӅurHLN{PX1S 4]pN¡gpq GՄ֨)^TXʞVĴ`XbO\__[XOAVTI[Q -씶zΓi+eJ*UP I+Cb p,c) -8pc+t[}fmjvvfpl *FX(ŗ* o.жrXJ(rئmsc#?80j|ljffna= F啥VxkG_җ/}K_?`덷޺ʊ;-V迒bȯbuv6veX[+kjr*-+*BX][QS[Q[[U[-XF`5""{ ܍-p˃F^$WX$$Jnvm#AT!$ ք8D0c"XuuRDH-’R -DH1y%9Ūc3Eab_׋ѱ j6k*+~,J`Q{ߪ:j=ӗN*JJJ8 Z -)#o6M}\HR6W+G ;-DRV7NMͩm|_}X6O%(U6_:5bܞlߒЍ^uTEkGLJ'Ovf?PvǢӉ!+vsnwBF+ٻOy7_%GEGXLI8e-Jq!4 Of%$n+1mfEn=mEiORJ=Cd­aV Į'{OpWOO;<Fbe$* ݃׍nW9Fl51MUAt[q +.f[bOSgDeBmҪ>هG;{kz4E3`8 - P` c <Xti%\ZYO^B}K_җ/}}oyՋo ye6[fKMJvbli7;h4aX-m2ji)*-{|`߹ƭ[o_k޾q:"a=xp7'A^^n"dX\RXj(2s{Mj+ BXȯZZ^!P,ҹ7j:!,Qvea,XCC#\>61<>5 kG&&FQN,G b  *lKbV+bY5r. 65kif_KwOO "}F=#,_ڂbKV` /n*M+wjS+Ҫj!E%ն'o֞GfSUiZl^-Qa$IeB -)[^ -/R+ȯF&g}@8/*"u^^/}K_җ~_7޸ m2e2j2;lwuOoi飯~^E%%`! - BX7nwsr@*QâG%e B`Ƚ^WdqG4W:wJaD6J,Wb BA}ãB 954"`MM  Ңbqa5Xq$ZjhojZf;DƧ!gq[`ɪ+! Q_y㺐f'])ͬ7uAIÔ<\LRwL3Nz{,넠JqQ tz 2H'1Y9RJ)Cf! Q`%_U -)k&ɏP+T . - -GN:%<2PN\\4+WU:)W -) ˧XޗFNׂWWגɝ}DX SZZ^v.V=Av߱[Eߊv~'t .e1PP)j/5b$i+RǖV]$iャCr[@IVV(cG %7?-JE\bώ@~D -\%7Poz+[U(h?w%JT4:ludK>Sa.dCTi[jBLeJwYRO.?*dϓZ#Aϕ60a72T}SxQJ+S>HKdSIJIrgPFnmOQ&AARhd_^__Mn -V7;;9y1 j V4!dr\AU W -1ɓ#  -W;yI'/"@(*B8OؗlVm|bz$¿BrEd+ _Vp0z+hYƗKؖUr0nnAǮ^ 2W}jdg}&{P8 -,;vTp(:gflP4KD_)Z[?u/}K_җ9Xӟ^z5#3^M} -BVfe,X|"!+t#NTU[aNn`W<ͽy7BH SX샷;Xr`Ajja!)4ݧ y#lmkDGR,BXȽ -B+zaakp|NA,WRk`^T]_o4T` \ - W5uk0Bm5(2]sA<-XUADX~K -YT! KŠR'yO{M.ET#RieSZ;_}ʾrYٗ7sFf&K6gz3/~}׍OxȊZQ -(5Ƞy|S8F A!d, rrΞ=Qɳ'::=y{(f_Þ`bemVx0ÈtSIWs3)"WS6d+ NloͱϚ_\ lbOh(kեԤ& p)aÝ}Ch!$(SW'b'U|A3;853;2>5Hёq/:ᨖтW˫ -: -,}K_җ/}ͷ޺| ߸!nP`qoaYN),bu,6ئ765{p? ޻뿺)q֝=ˇGUK**p! ,VWk b -DXu$‚"a b ըW", %4inch6uC?3874<0(g'_ YLVSPY[k(1`,X :A#kExUc,BnA2[{a$ "]AnT!+ڒ K -e!PK(SM؁",U.(M/Ig U?ɟ뀧2\eefevFF!,Y/]ps_{ܫ_z31/U)MI i+KBMIR~~ _W2_<^}R=Y.UQr{GVC!7q5Q(eSB*䖹(%©dNSi2rVu0eKRP=fQ5SR1.ߕ¸VgyIy!V( /-/- B$V B%;VT?:>}^r{ vvG{'lc -~526:>51m.! #q`Y^6*.%0W/}K_җg?|Jfv7F,qC -o^[.wsW"4Kށ --MU5=VNaiYYe僼o_q7ׯnBxa+[ K UJCeeyu ە`؈1 -A(_`"as *,žޮ>""8Peק"XUUņ2H"Xx)U#Xڽ]jV${_6=-Xv',) L' -?I/JW *1D*U[|^RP3s׾v323ٺ'++;S/ed ZpRK.^:w믟{kIE?E+S̄-RdR2HBD WQh>1W )FIcRؚ(bQ4(L:xPiDx]Jҭl 0:ՕNV/it`%wH6enR'9Բzh~EnMJ[ERV++\]_]Gl cw6(mERzPCLSDlyՇʆ V~Ï/>\}$Elg"l!;&[Z[B`c[=¢S -\ -\MLƧf yeySHjQotS[!\et`!)- x] \!:c@O1uHo'nAjgu ʃr qy 0ۇi36_H|%EK J/O}K_җ/}|{_Wٛk7oV+BX",(ej5 Bs}csW܂>Yݸ׹֭;wEx "  ¢GE*/G~UE.Wqam#Dj_Ջ -&a[Zq."DQr;;LhD {}}D'5<Qbwp7`GJˋpa7TVT@ Mr -P "XlF -aK`Kw/ "  "crB_+@Sl{fi]k>?OROL'>jimw.a*+ W`FaFFįؓzW^}/|(?4DD(A}J)HY*i#HGi:3d ԓ|'"?L K4K×gQ|:)ݝ&Ɩ~w'o_q__EQѯZ>GOQDN1,؏/E j]Jˀ` -VP`݃=( >9z0I>bw_Vz >z!b+is4K+VA;<<恫mV7W˫ɥxb /F~'>z+ \M۸̊+0V| bمy¢nV_z#K B -ފۀvŞ `+]a -<pLl#;އfbe/" -坷;flF&FGGdž&ƦY,,~ux0rd )e kG_җ/}K_}P}㛍--](?vF,),3TaX:0#X9yw<'?-X7~}گ_{k@`; "XA^X"XUՆjقŶj!F7-j1"ȒXY,paG3;>"X178202*Aގ.,'VF{ۻ,0(U2`ʊ rCEe -A_ЖT!d`o"vb}htltbbbzffS ,.$BFBn\M)<5Ń^d%h"X*plbkh]H%ٗ-#,beq,dd}/~k{ճ_~啗_~j4)ꌐȱ(mDJ4<P,Y. /_ꠗۛ>E%RART")% vՊ^(BVM/ԝ\=W{λzS?y;lvjt)p ӄo3VL[gf}Z&81=bvv+f[q+ݹr8=<魨kBOpy)\0;'f%#,vgG .}76w^-D"K@D/A_MLM =<:1215>meޝ.[p  ŖBp|9"nXދOI/}K_җ~~?V+/\o6[{V+;Ȭx sV'*;  <7TV=,.s hސ^unN}DDJJ -K!U #X|!"4AnD{W`i1bWvb|!+`6YAn4,XS%dQ "vvv664T*+Kn(-.++,DH Z\Q_Pºb5vtV_yk6ެ "Xn` A -s _biG}jMJ JǾ7l "bg^\%Wu_y5 _}ՙ_f /<*d&@җ6URmO|z4qU0JF4nI">& ()y~OXĩ@{ҹhs_PRo))3+>-Q9jGZ 5Ft)Yy* +Ck3f -\[H-E{}nX<ODX[ :<><>Al%>V4VVZrE+U{OqSVOy'H(zH sWXty¢svaqv.'g[MjVS$l53 }j['q8=N3 >/*[b/VZ\O"ޣyh:VGrPV{<"w(bOI{swckwFbU("!r]!x5696939=vh ƠE6Xbkie}K_җ/}}>V4;|/}mm]="Ni:!R.bmj7Ca2-0!Xrܿ++)a_v ,7oփwssa ‡ŏЂUl(/!"M."ZN `6cK/ԽMDX\ -)`-®^` BDX"$~E'Gy{`C`׳c.+//1 UZUWU š_aª]X ",*6` ,X"V` yDZpAZx0j%VHJa -w.욁TOmhOqMTR jN$ VɅ-+ W""~%",e0CD^T*~u_+3g^:s//~}KǮljJä̎d£N2F# ^IQԖGI /aW%d"|FrJ#Ҡ6-Is~R^C5n_aS<@<ʓ*Чyr_HS$҈뵑01LLSԎz,;^_U -nXMi+`Y¢}ѹp/`+[EBJ*zYַ7a&+h}`V''Ĭ1{\Kn&7v7v6`#b/^:p$"r{]EvcPjt|z|6c;.vF_`#~K"J:a|˿ї/}K_яn_ξx?޾sw7E8ȲtG`t3Nl!Պ"6,XfsCSsqiYn~r*+ypx)DaD#Xd*E"Cyqy"X55dUCc^.!EJB -VA.,)eaC E#c rg,P><1M-Ak_?\&`56V֖C -Xeee(rD{ z#«B47 V[l6[ݽ} 5>6 ߙٹ9vT*DaK@nLUwJJzWw:OZr1_ i+W &寰HHȕȯ6+rF&WuWg_Bμ2μŁH)A,ȼEdT/ -!:Y)qBQRSd>Jh$txӗbWss#Zs > r)-O!q-R~ړRb1U&ͣu>EQcdSX~_oŒ"n[U<]IpKۻnbOK%w [J[)ՋG/>?HzO >bw!p\z[RO0B7 -u{[ʎn+\I=ABr5zYZt}^[[bn- -&dyO+3;;/}m_NcDmrȽ>baᣜ;=*))+Ͽu7s]!۷o{99h* VQ⒢2C*eB(Z_AEjk[W1f"EmP¦v",)gVp?Z0%*a O ¡`Y elVEuuYEJ)r~E+v[h.wa"!W MM4d" 151Y`-,t*{(+WPXJ4!u$Ip FU3R#(F~!=WY2b2+DXRJY!DuRF_E~uVW^z KgΝ?oĖ\^_:*r-%ID>5k+:[kMAT)UIE{ԁ1Hgi_KOb#RJC҉H3+Mx,5&5R$)J%V ~{Gqx)Q6qSM•A( (w[K|-L.ݭݽ# }L[$Hb+!!+V!~ODr >ق/(p=gzz!Ş` [-Ėñ!m8;gi+S ?1=vVy"Wv^t8#OzR4W‭֩*(b+\(l{ RUpT[P f绹 U4Gv1v`^<}g鐂~tbzd|Wc||5;8p-r* -(n0bA+]:r UJJܿw-_Ahu]`"\`aI!+*+˪kdUUW_SU8ro",HuBYA u f¢ZakhBdfYXYSc`_^^XVFPf+kl@OaQaFc}ܛ[Z!eZ{{AN т5,dBw0%{_ [ã5@ͼ9X LǯE_M+W u)W<}%b+\,X"y;I ,Wοzgqg_9""X/=o|cxt.EHJL)G4"IJ[ *fk< -HTNxbrO|3cToO'e@'FSp k̰||Rz 쑚>͓ɬtzP81jyu2Br -`xIɳOb+Aj>v"T~ǿí=A -*bOyvml^Mngg`$G$E+sՂmvzi>Chjk~[:)c"X"8CkbY#1=(r0[Z:LfDHb,rBXK=Al3B{M}]5>Ef2]ᑑi`AV$Z +JuBvW}LÞB%ZE'DUN`lhַ$W4[ʃ\UDXW%|+ W22.^ ߎ -8ł֫R#X_|Kvo~RB>rMJJ}GC4wRԧ+u-K`KI05tR0(_OÚ4됁4Ny>M%SkS?x)/,42pXdkZԄ ӁD^9=lDyI0± -/ Bڊcr[$]t[?Vzn+hjVK!+V؈ThyzL o|GH)f -ӸhHO}ҾHI:>i4ӄ$ xN8s,Q:Btkj_TQ>~pԄ!, ʓŒچ$ãV' S -ճK؊7S\aWK#U f'rV'ˎv}ckeWj$'^p8̡jvV0IPjNAj65 f= sQ'.`P$y+qne_gz-[mBzmko{V{\rw[bsr%Hɾ`J| -Wp"`+hG> r{[cna3|O´F$&0|8݂K`_ya`;"bW_;җ/}K_ܬW /7Y{)dV==`YDܭݘb]L`[;k>+ȿs^AQ*'/nܐ^ -"Xr>*(,A%8B`UpWȯpK,Ha5HB`!Ѣ tX'A,E]7o@P`Ok|jEXCS1t[jRPVTB(F-X#X uΝb l/V[g'F{50Li-X`qeE_I[(+|=)F *>mE$JNo;̬,2*ʃTrUBXW%;񫋗2^r~}X.f;s_%|D/ʙ3/#u3/_"XN2)y$!}0)fK |fIyb)|RHZ eO+36"i.%RR/EgP\@=J#"Z -ѽ**QĜ!|~!U,lXZ^YZYiL;{b:J| <{ݧ8FPV%A1gţVtږTWc -\;(f?%+;;m nnorlXE;A[Po嵻 <ƍfDncV ,krW3Y .bOW._Ao"J˱q&ې16#BJnVfGcW8<Jc_S.P8F}D<~vhe_p-8g4YSp3P`526 ATc6h;]vAy?a/.2",b7bJ.Ʀ}K_җ/}}n7-v #3oG, vYbu,++@X0DⲲG$r_VQ7nݺvƯ]ºu{}O9 -,Xʪ -`U֢ r[ꚰ6(~Ʈ0ՊV_AmVWν"X"-AWE(EE?,Vթ"X?~Hy՜G@/<§5+%n.Z0 crj5&?1*ُmuV zFl%5 FiVؕBr&WRٻ(fvxd  ./FˑR(zPs۝EQoei+hRV| <vCz+7X}` Vv/+z./ి$HԓheG1+@R;^Wxdfvt[0APo$TX]@c L[-qVa7^tz7D`+uS\5%AJ[MNpi4$y_-8݋n/ȯ p tXR -+]gҗ/}K_+Wf_~+K/EUND;#:jxݝ]֖zG9yyw/,,{߾qMHaΝwR*y=*-E{yqyEAUY[ 7TA^m VmZܛZ \/+b!"w(6bJȝ,X- - --®ni!)5 Ak_?\v5[Zj55e*6J  -(+VqR!܂#DmNlX`bX܁_d~+xRV`"4.MQz&L׶skBz}찿^FV (3WJi$(!|E6 bS)a*-#<%#4 +#'QimBHyX@C̴/_Uzچ)(%|;c[P]d8iH-UAµR[i>8H tI0>EzoB᠈‭mnM [s[AO0$ l=frc mFhGQ$EDK$W[;Ȭ8B*/ J8Ny)C1_ *v.Vs\Ni+LH52 CWX!Ny$x_ A_I(7[H#XKKo}CG/}K_җ>OU,p}k_5{,)%8BQ9+_YV(Bvbaѣ9>2TUܺsM@X-n},Xo߻w-X*(}K***@NBHXm4biVi ؂V-#|"!N',X1APH!yE "X"A&,X1U^TVRd()Q "BW_ -,.Bh4655evw   2`ZtnIwi`Draa("",hӌzQ4No5a{~wW˃D+J[IAgyJWL -_ee_ɾ|ȅ_#lJq>Ml܂jVx(xB#]n~fnۑcb с[WbspbW2^-9.BfV -R, -bV'b0Onnї/}K_o|)3?~Q+^Ko *(W]"Bei7L@T:]ƦⲲ`ݻWR^^TZz޽n޸A,BX4^n=Da‡ŏJ - %8 -\55uuʺL^`ŝBRBWĬZ0ֆ_:;:vv^=>K!,}p|Er4P`ghjm' ``PQQ^UUUSM`7_qԢu1,XBd-X4gK$"B0VZZI,MSD,{5`<|G9R"#'R#~O)DPTHs${񧤰4AՓp%& -PW6SWZ~ :qf%)2>#R>?ٖ'ق\=<xx*@o% LQAGp`¢kvÆ+vFa BZ -1 -bAsHD[m -[^9\ N݅ -Wȯ2)("/ +/}K_җ\?_RFVG8ȢVP -nB{ggWwQYS[X\?7'PYͻ݄Ao߸q]BZb+'??>, V,X5`)uuF(@ B`YͭuŪkjibWT'$;DL$roG~թ` gB -kr"XQv -}VSgCKK F %K e9Ū)F*6i -! ,0#1--mmfj  "fogt94ЯB`SXh#1` qwBzTݷAH~?|JFF&_.) -/-R I~Wa_uW`Bx+zH̙W^}/"K e$If;)XPPn"/IIMXS*R1ZPy0, g RڤH05U Mg)N_O{JM|2K[; O[EwaZr VdnJ[qbLj.#ȣV\ɮh*KU7])WT$7ZN=gN}V;[ƉB ,魠.+;aYBl5=6{b -Vbj6`yt/:=A -`*'H=A -\mln2 k w[z u sOd{}c{m}D^ ( +@DOJv ,1m;\(vmn6ziL[M̐ -VcCkDf7+Qx5AW bO>h[p +Eт+}WϽ~M>Z.R%*,))D+*۠uϟA*.gSUǮMqqTׇ}OuU q%RrS3c^EQ%PB0v!{|` ե* &Iɾ#v$xpw@cp[$Ĵ1!f%cS6zU>&7;7\(f ;C n*q[Iod&uy&Tm( N@jvfP0Lp~ -,{^! C\orlieyeVkַ9nJ$#JA[p瀛wvEۛLji/1H[Em呔쐶A+4`[%A#*w9560,)Tsx5i"[;«E5LW>+[pI[cq,U0gW}Wї/}K_o={ͷ7UV^?4lKhBcfrY;;[;LŲѣ܂99W »w݀a!DP~DX|aAA*4+J+EXSSQ][UWSX rm_4nN؊f*V ۚ;:[L4v -^BXcbkJBXh0Z+F-+/-X53aa_ՉF@X--fj#X6mn~޾t-.@o2W(y+n<\+Xҙ̀lե(Ew(>αҪ2"uRX R)H E~u$PES -22FyJm&HrP,)P#zDT>~&?^Iy)eIIP=ΔC ,*Ӡ6Y2?&8oʓ1 z3“|E$OB%ٶƱ!`+:9lVdXV3j,2+g-zJu+>R]V;"lu|Bbv\on&!p%;Zp'837?3;J[MLITO}zfr -4ggv{=AGxrU$&q4%p*!1;0Cms41ju(O;;v {[{It[Aj}&$?3<mF3ی$$.,v;999N_ZKTI`'^;щBT(Q}4"i)iW{cq&Y]` n E\s# t bIs8=Y 2:E5h ChjFp[C9a e{b1>E+ROMΠhѢ`+ -_9v)DE),# w?T G^򒗼%/yK^~+_#G~10sMĊqx@$wXLxP+1%-9\n2zd2dbt#?DMxJxܛFqz`(? Gaw[AڊBMŒ-t[IU$XVj"dT\uL\Iz=y7oܺ}-vxkn^^X\^,Ioy+aBl7`OPz+ Wq'&qa3Z=`p me5[ :fN[KOHȽ gB"X]=0VYpJnAl`SB3T!Agd>M"` "D~UVV8*uj`Td "${#l"6K4Pl'$(p%%=՝[wonƞMv쀗6VV' |f`es}I, Nkf3݌譌fjجY}VUp. "*œ$WaK8+Mw2mM|? yr[ i+$vZ,m+ Vw[=xx / VSϞy29zG}Ż(fzon2Ao,=A[2[ub/xOpFCUA MLHA=A0\حn1mj9V / -шFV KKkZ]TD~uF8C]WW ŵJdqyJb+?`n+13["ft&[M RCX  \a. 8)\MA -bW:\QgWW<(F8Ųa:ȋXHXįHtq{>}}%/yK^򒗼>G+;_"X{Ccc""!n<ˍX<unjjq]==-9y80?"XgΟ<{gc=օ VAAnaa~ѕ+1{9EjHaq;| -!8BW0PGH+BAV}KZ( a  A^aN_kp6u56UTהVTJ)X*тBl -*յuuRR"X jniik V_GػqD&j)(l RŮ0EA",`}66(y%i>%jo +ڍj+w -_ٵXF%W -ᡘ ->, -*ݤp _K+BtƑ[vç"5J`MTU2t^ô#9K"[ qW3`%`qA)IAlDl%A$K0mufjVwÕ1;op'«8 WDr'K n߃ n#V˫챀 -OaRcwfYg0iuҡJ\M%Z٧f43`ngW:Q{bX'g_U0 pF4WP#rn5Z@2\qZWDlN -JD*IɎ؊r'mNmlEi+P#ۃ#i ߢ] W8RP j[|ؕ0gТ5Xu&q3ȯ-F6tBa(] XH=K+[[ٿ,#/yK^򒗼%OzK_:pЁ~nW,V?(Շ qȝa8vvκEYyn^^6"+% /9wy -DXį؅g(u9RN܂"DXPV%" RtX$oW7&Aq  -X:Z:ZI>`aLaq0 = -UUVȽ=ȯJ*** U*+eohB|F, bRL,nbo e4-VD蘅L!a+R`BIunw}IXF W?翰w/%\ˀ+BvL{׫^A -Pݯy ZyĽ}0|p0(ZWz^|o7)UxPCOo'OHƒܹ?v/o]$#v<…TLZ~L"{h+*@%A VkWM* j6D$mOpDY+>XP4\!z0OmھC޸~M .!UVn[AOЀ#ygV$f%A[ -zŀ=A[AOp^@o5oa(VhVy',V%jiy], ´|Pt. JYVu4LPV / I՘r5af=o!~5ANB& EP^X]2р*^zݻ_ ݘڅi+//d+k&YhV! j}^8ƭYS? /={7WPUJl?Ldw{Vj{VSkJLѣL}Ie HV $kWSjk[y.&%A2-2NcOp&ƹ`l`V#Ū0fRVӸQo5jl JȯT!43V [%ıBYbV¯@C`1Gi[:򒗼%/yK^4㯿~ȑ7?#lՋ#,* -^bȽv ",`u4;/7;'rvvQIIBqҥ3:~v -X`q?{sA~bv圜l])(.]+ʪ˪˫+uUJ֊v]u=ʯBEB,u3 -ɂ-B`p}b"XӔXZg_?`54-Xy(AR`UVVB~D ,paQFa!RVEٷ-Xc3 ZXnw8#9>p0AF -yT#<"3v^g43ݻ_9]zP/L/^~Ycw _{-c2ExdCܷ5Ѧg7bo/K/~տI/^ODO hGgpA=noes뛷^~ե%QoϯgpYfZaFy(`'%1[5: F3 :` V|tiaq%$p*HqfW8Zcu -\Ljjq$6`+輜‡4YFMoDIo:,Q %AάxOP '8LhtyUPg 7{\JW0m"Wz܀&~A,<ʚ&,ŠHlh>.=##/yK^򒗼%OwN=vl +jv RwWaںautv -#XyrKs -Ξ?y[?;u\)ΝxF{abQ^YE,N`AFA(R,[.}bSOVzX$%;b), rC4|v -JLho fG+@h.8q!mO2\ -Cׯ{]rl)cIp%] -VH 8+}gّJVfL[MVތi+=<^|cdeB;)g%«!Wc o Vv[Mrl51 Nj9zZ ʂ̕ɪm#m;&H©*Ư3+R`9G%/yK^򒗼>}㇎ٳo=}Bw`X%u>Kɍ== E[;**sr/ee\))pr3N~ɷalAYh"{QA1JJ+@^ZiK+*5!8Z>IX$"lt+ ^QM`,B`uCkh`x-XBpz[&Ђ">DڪjhVYٕR_{-XT!T^ +uABvZCzuCSSskkk{{z(5ٻ-a,Xry}^*_-WA~ȍ'M(P‹/~c^䴊p_`zμK/:.2C%[{fؗq`Ϟ}zu/,wfWkW'||<Ĵ=ؾ{ۛ[ABO`e_Z_X GB *XG[HV-XAɎ{|rz3WlCI`+2 &l4 z+Xٳ @xVP$yEZȬL%1g/;V6Hɾ -jai>` "酒z fh[ۊ NΠ} -V^E+; V1( jY -ε4 M3 +nhi+~dR,ac-BPł^zxE"wr;T -Wv&} ?r%/yK^򒗼)Xo3N:|x߁'bpdw`Pb -Wb -(V?`u8NDم !T\Eyy. "546>8 --B>P*(~(,a"XUU(r'a+v "{-ZGX ^(98442>>65=ѱl[ % X! XkWBa;nG._Q]}g/~/ +W_|%WT*;v{*w~w㆛Pl*ǎMku.//J~֛xGJ )%!jM\'u*qQHq'ba2(KfhCg|l%(#K K+˫d߸~VWo^[[Pɾ J;܇`\ ->/ ƢViX#?|.Dl`5VK+k'HV9[tFVoh3T[i\MbW@N5tF+j:`ewz3y68B4ʭ ˫(f_1;TWt -7Ē`V>#d_ -=F|΅m;axlb+ެՙ[itS`Ł / #FU6Ƨ(mz+ -\i[-m=}]*`e^ɹP|'BVf&;st&sgiaVFrVa+܂ʪrW jP! F,XSX0Xpfc!j%)VD(;C!",X4-X)#XMmm+V D",/B{ʃh}dt-X N41`ut Bu=;R`AR`UVTFWHBk~.w`544677uvv ѱi zd[/+_;%/V 4,OgX=9\^fcg$ -vcI]f`'l7##c߾}[ fuaq:|#G9]nwg?? < iJɠ&JZ%# 8/)&gDFWHV)qyWJ`xTO.OdWJzxN=;%wx\ir8- pa*fo#4IpV$q(ٯ#wom.$1#d`L;+f'rwcbo{"{7@o"sО 1dwn6ɢI>9I'ѱ3: &\&'fr=nsU0 L[}FROIT,jAꚔbQ rVk$A"U8 -GٞC` =AmZ03Y$a#rftbzxl{B -Uٯe.yA^kb y -0VҶ O^Yya$(t cWFe%ű,K+>*f~E -wzN"ԑ%/yK^ׯ|?q,X?fR^au+@X`noa{ggO_[gw]}C47??;7WJ zϞ=V)+gR -X<+%`*+/AUVYCXa]DXV]zd_]'1\ImWҞpI -FK\PYXVmtB%cF,]Gh -!(Q%+Tυ|vx iXnݑΑ%/yK^קl8thGQaKP#X+T{:zzȂ8('/RVl9`}+ߋw}.<DvBQTZVR^^ -DA*Ha;jT)M!lդlD{soɯM.v#"X#ȯFƆ5+ V`{O/{6ꛛ1TԖUTTQ\ZZZQVQUYU ,Xz^Ѐ^~U[bpW˝Ս(ro dX`9<Wl -a'(|Aj;"vu?.?Ɨ~zR֬ pP2 r%#o"qItH,% MRsH;J ħ›?LTut*?ΐI0؋0`jiq Ɣ[D%;޿{Jޑ`+C~GpzCBJ }nݹ}g[W'xz K+deʇ$6fhQo5Cz+&8>53 )1jEAV0O{2D'hy^~ss -s1;`+\RjuArE@"˱!ȣY]l ًO[AIVXq VȬnw$xJL[#i?|Y"+VO%>~ĎW[7(pu*VI -G0e3`?\GtY&+&3t'8e1JS3Bi W:v}ވ-8Oʋ缈8'o H[ - -%W\3z VA`VKKKk K+ŕa+ -i+_s!;idg[C#l5LiIpd`VC섭\ -f riĞ^5AJ̱ gVVaO*WҙmZܱ96"D~GzB ٯ VO |O9OyK^򒗼%/y}:[>tJ] + t IE ;{z;{H .ʚڂ+9raaAYNb`A [+/;/?,X%`*PȽRXlW֪*`Պ -1BXP$J˃R"6`tvv`[AkPWppO`{O9DڲJ!URPUVTVWlAC1Wu)-+ʯjkkj(侬֎Xkhtllrzf#Xs -[BaWMo.ޏi%Jr> $q,}}CSw׿7CuG:vǎ8 -ձ'o+_7~ӿF50?b E<8"M혀JɅQBw/kJJw&%KR&`)s̷NAPW _t!;"X\~UTVVRQAZJWRS -Vb-:&B+":w@X $r,DX} bPE 5194!6`cA#RRZR\((U)B",T|t<%X;GF[ޙXnu.C;2+?+4_W rU"zJDzҍKn0Ѩ+(?wz_W~kƛ?}_?w9-m&$(wg}QV)ˌIۗ.%\ߗJ׊U}һudzF o.^`8IpVdGluV`+$HN* i [%欀Yю#WRϓ(pHW@on]vzKk(Z -bOd$V6Lf]OOa -2HqJi/=AA3ꍖ>k''H=A2PAOpq9+Vkҩ`X] -VA[=g_඲Ϻm;*9K3ScBl5*"‘}pl2&q 4bOPi+'hDle3\a*CJTʐ "b +]/i2B^p -HlG kW>}krP^򒗼%/yK^EY+Xk L/H80VnC VYPXq-X/^<}@3`e=+ "<K40??0Dا -XUU*Xgԍ<%N$T77K"A=`,jO*"A)C VR]_,EYY"Xť!O;  NYSXZD.aihnVDklbjJ-Xfjwg]+dt -,hz*gz63<H$wy|ZwpUžqu:Kww7.7*#sw?lfJh>aOz;M0Y|k;SQYDž%A\`$J5PcJPownVIKOD%;b+g?z.aVx?{ W=}bvVf=͎V`e__X^,@.}uZl4\Ϣ34z&i+-f'[AIpfjF35i+Qoe0Y -'`+yH@jٹJL[n}bW@VV6x -VRl%[j 쐶 1KSROj 'WC7\oZv!'8>9G'gF[}=Zݔ:q@T -))ibjgZ -[}"%1W4!6+c_kB΁+) 2+La Q%A"?%/yK^򒗼~Cv[w#Ȭ@Vb Fw@X:zz;{;{т[Jr s.f]{yrvsg3a ΀˝չ_|-X -`a~’RJ^GXW64so; aaGK V V{O_g`YXhPW?DWQUTWVT\REyYYUVub[`RXյ5Tʚ:®v`u B$X &EBG ,|"XDG$}qrojxQ8JOz|)qña1I֧a*E'9ӄ:١s Y`;p'ڣaXk76?x%/yK^򒗼~ן~DKKK/>{̷2O< ΁9_~[PWXvVieeyu BERȽJUzȽ!>ŃXuj,:ZmȽZPKhBpWǸ=?m=A1;ꭨ'z;nC@ - ݋,,E|s!o׳9Lf aOpZ39 jl'9NCOРF mfjς =A'Q~<Ñ\EbOp3T*T -\l:hBIp+q% .b+Vi+h`{ -{щIp[  n+Qj [0>$IoMbڊiiSjx%Y%T5@S"JSu0u|3솜q]Bs*H(Q`mN_Yn,+P ~g/=b #/yK^򒗼%O:| "U .$V듌#[ XZZ0WP});]q+i_b˝\;>ԋaO;WoVnoJV$$[1ϞŰՇRlN#?$1|ɻyّ jsZWAol'@Tsy|.ᄞ`¨;մvafzF;=c?Z/0peulNǬyAq b4DnvP 8Rz¸ի"Z˗c A؈" hZ c-趚c_Z.mlu93;-0+& %jh zElc͌M0A5I W#5?(L iUjl%6)d.x -+CSpC1"b-BpaFe#B -s~aXhĊDWV؏%/yK^򒗼%_g?;֛oۿБ#oOLN+DaA; тI܂ /)*.eq IDg(uBsEW KJVeY%PP wDXF,Xj"W"m66MjE1zHa57wjnq=a>Ђ5=0ޮn-XWJKA$r T)j"~"Xua*B MgoGƹhADF;Vįh`0 ZZSr 89KKURv w^\)Ku1r去øH;qyL&˛ -}rR«b7 ÑhdqiaieV趺~Vdq֭w[=zHɎ>v^irlE8l\ - W8UzyO ޹6olf~u" GaT?͡!+;~JĔfդ$=Ab?`eכFl5#RݿR UAbv3W- -je\#5V4*Y`?b{Aې;v'`+P[[alJp[AIp|j!F5(b=xri![1 fm5o >Jd>JV.f$!A"JyF1V a9 +E,V|"L!9R?ψ@xVd - -apDXelnڑ%/yK^קfQ5${w)X=0*Ud˽UR^_XtSO:әgyD.p V^nA! b*//% VM UY;+ bARXzrJ+_n[Zpa[S{[{{{A->`q"FGuؕ[;[T UJ`'NEX֩ UVs~.A-X5r,uSSSk+ܻwaE ,XFf90I`0 S`Ꮈ|isScGIxMLJBzKQR2* WN|ɌNtw)蕘1s'=pw'$1wWT1mJu[]7I~ VwnJ=|$H؊|O?*] (DTw0]w%'CI);u|;3(:ʕsVDOJC -o2sz<`emjiuML[jV6N}{l>(yݷ$+١L#!@*BUW~G ->} fg_|1dtkm[dauztie> -$# @VBlz+Da\i+NQo=A j Z0\FVvϺ"[a .B5YJȬHlE>vvH[m?0 m%qb5қ:{gNS*A,U_A+'?BE ,a QU"*8DXT$`+dBR`ayP, UZ@V[D a "wwp=']-m`UV`",~UQUUYS,uх>Tj1+aaK$;DZZZ;:zahl$XFa;)gfgs -FvʛhKܩU2{I:w: w -ו*>kCʟ2b;IJ0bG -fwYmNVFki+|cBIp KI1{#'8LbĒJBr1m%+G)s%aAR@^JUT@ SU><( n%«x&$ʜb+i.Q`y'UEtG8b_Aw?u%/yK^򒗼+~NgcǾSR~E+E8KzaV[G,X/,_,Dw`Au,c0+'rNNNAAnaa~QqaIiQY2`a55JUU -毠 mm==CãcSm^k0n;]dq BB$`E{PBAo E̕f -El=cuꍛjdq)]"\^?:vɂr[iG+jύK$fGVZt f>uJ Hu /PU0#*$VWx -V\!ڂkBI0nV - ! -ctym7W[lۊ2N: %A{lpxThK끄`eǪ \P)b>%!jSJ,=#]'L;(Đ^9+|B"+c( tI2cU2uW&Ae;-X>WX!bp>^~H BG^򒗼%/yK^;=zK_+,HW4P}ZR]̺\RV^X\|ҥ̳g -әg` -[palb -X+X!TW",!U[TUHU ܎+^)<y%ԼK"EX]l"w@XcBkxbJp VWWc[, +,u ZaճljT8P:,lͮ,` krFFf:b,Jګ?BaEݽ"SZ_*rtKlJߕ*z$#z -OIIpe4K鮓 -g?Or)<.X[ -qMc:V[ݹuw=὇VO[D.bT -G JRĞ[/ - z7V7V֢K+^ԽsA? +4m(*7j` &Ai+ړP2bLV NBOc+υ űz%W+|t*jxeJ[\h쁰I' D%ea+P%1R?}NgG -r+;! -UAt[!ziM/!aOQ[IJ6FVf)ⴊ3+[I-UB*dS0ر%i<8 ƦZp!!,e_q2/ -GE*A^10d̿뿲om),yK^򒗼%/yʯ/eƷ5:1504Ķ 3_ FwYBmM͊KYs - e9wo:ӧ_A/tbVlί UTP(*-R^^A5J,BW*jE $="A[-luwlhd`dtplM!5:ڻ{1Vm}o-L;3vq9VJrmK]燛r%j}$Apwb%n AD%Q.uKj3{\v<{{P=Tu::x>~?OUuyWeeȯjj!b6C - X$lnTըDj"`Z7884:::a:IvT gȎ1-VS+? \::Q[QoB*9J'^ 砢? _jpPsʭEett*n( JhF1zŲ<%13e|K]=ڼ#dKl i+.bR m+~L \] \=s[!˱=k[Wv`$YWV"eQo_E+g -tnCbWozvYK!usU2E5TZJaVT1Fg -Dl+$K$#Che_.L PoEn+'M9&mBu \ql5<2ƓC#YU&pcv ފV, pE+r[&/;-gUUzC%E$lſTLVi*Jk$6=r(O!S5" BZ/(X R`-c*ŝ $YE?LG_җ/}K_?Cvݏ>zرOXD0ae%[YSaI1 - .\Xf0֩Sį>V`A /^,(+(+{X*JFEXe!;xUoXE¦&>ji -r -7$ookjmmR,Xm0Pw "X" &\܂5/[jL +JcU-Zjenn -\&odCE"w]hw4P`!PfV SraA*_-"Dқo/ip. `g ;ExT"93ZYNP 34ʀE_eQEYfP+`"p4{WRMi+߽LiH~`%A𱋴sH[J!(hU7RJ[=i;Acgw.`+ bheGA4/,SNVv'DvƭrZ*=AVn )C*0Vp0^p'[&V 0ɵj*.WE%pClJm^ƋmU؍CUJb%B{RV$ip[isմ8[ajX%Wbv$WX‘qBleu@J2\\y\mLCM1P8:j;v I94*rj;NW9P}0ٞ lsaAs}ZQ`!";TCEk -wA'-d%i?g/}K_җD~?ddDXʄt^*' #`wo_Wo_/~b)7 - - -/0"X~LwNṋ/]/TPO+*J \ B64Vכ9Hfl+"ya,+ma[wo{/ "528264 ۈ-B`m75WʌFDXQ^\^^f4TTW@7+fl6I Ʈh6A^A`A˅)\`޿Ȏw@XįRXHtm0[ -Ov0%+''}HR,qkHL.SR]&kW.T$^ JkE2/59 j{LVpr1&t Ek.oI!m/+oD%;vރ;?|%A1F?}*!m%CVJ]Q@ F - -1RGw b+h_ݼgeu=dP!ҬsY$ZIi fCV@ mf|S3Ss3s[/$1{l9ifƥ8bL Dr%+s' -j m%p|1HJPV$Yt[M;'va9$HVv$Qaq:" W쒰AI]q::a'ap}D@U.vjؕS33V#AZőV,ɫ̀#JݤZuL!"M!HJ`q~5 -,BH -%T`w{K+\Q q&w<|ͣ/}K_җwz_`Z^aZ;<42,Rc)F,zE-BY}l t`()/? OOEX4S44"dF VA^aKˊ+ FcPUe;iMC#ܩEX| -!%p̖FB(RX&;MVDXFŞ:[Eba`GO/FUUYiPQYYY]]SW[ojW-_5Ƚmu&B",savttvwѱq#"XK A`S~"(֊J#bG@[bN,ZrSѬI4آ4NJJ*5z2"cKJI +~]VX^xN$vTI|!7E4__W+ t+$Z%Wҫl`?/\+ͯP luKiGpSt[I[!tR' z6 U+< W/yUK'ؽ+=A\ݺmm_E&譒 -,%[AOˇ b{0 Q+* ZV;,'&.k~&%̬ bjq)L*MDc+$f&"mjs-տ͔2UpW[ -† 쬮#Z -$Ȟ -" !|pU`zF \Aڊ@jƇ h}PìFԒ ĮF\qu΄}(l!W.Y ꭀ\))I*`Viw(x% Kd63cWr(ˡ[v3r_:,8beWB_iWSb -! \ }B* r",Y"XZj}??\G_җ/}K_?v2yjhxX`ɣ P;0N-ʂbD¢r`A듓'?>qⓓ֩ӧO>#X^P_T\XRZ\^^b0+ŽV`U7p VYpa#rx S,K(Zfx&"Xv%">hkU0V>(fچǭVWkW5`(e()//5TƪRFs3 +aA ,xEE†FB^J,X##cVt),;^XAhqO$)QVM6:)I,+LO"vJCJ/#;(T45]qΚbj+"IriB\= G1(Imt_A]BVF!R8N#Qh.oRj 컚̓c8Ig?%$lLoz-+[}:3sW$11psvr -ܻ =km\ &B0X@7=뛚qHdwMڰ'5+H[=A[M{0m5=;G=Aq $Q)peur A" \ 7[L|?CʣW̤SfP*#F!Q2HdW[$%{5S1E]ïB8+VD @̊"\`v?ͣ/}K_җwqGw>[/^ڝFĆ6܅5"v-X;EϾ,Xy }TVv-X -99r?sٳgΝ;{¹s/ȽDja։A8N-]QA,raQԢ+Y~%|oXKqSU%U+M.B/wx"XpI3da@@ROaA)q\K!J7n/}K_җ/տzoc6p3"űT^( -agOo;m4 UUEEEd*rh -'a ֩gϒ]DXRPRZT^Ql0p;k5Z-"V3;%;T(rЩ4DY e]B` v>"X]AaYi!VhV[gwsk[YGiWZ"wcuUummmC`@%PAX4 BUZZ;;z{Ogdn``< "sQ!TvOh*'mu-gJIl5:M("ywӵQL%SI*QQXRnP -NxKyaiH*kKya - -L'WF0ajjcc;X&& Jnܾ{Jvt[=D%{JعKVY}JVoz%b/UxPWD^}|.<\`w#:ܧ흽+;[Wd+{CV>[MzlE'+Ǹ>qW[NX٧ٍV sBB앏G@̾``r`uN +39BT2Nm#Dd -& .>4;7?#V0M9)W "RH[CȠ"c[а c$8>lJ gO$rTShLi -V2ᕬORi0g?Lsf?…;nI X4hr{}5Dh" N&Wf%y%a+"l.w6;E"X"Q`[q -b֐bl4[(UYI -h*+jj L!wnB# EX`.:W",D84:,XȬv.`z#J[=IV3YɜKVW_Ra͋7_+)bOՍ{ۻHoZ\Y['U(gR(j7I4Ybv+.r=AwV3s3Y`ο`p1W 'VĖZ21+2&]V*Bl=U0J -JRGOs5uDLi تP3(V) RjhxT[QO HA8ٽ`OІz+5p!l%FTvVf`_6Z%Eެ٪s+yDg(!,5CfW~5)Z%bm~?@EHS<|E-Bҹ+᫕5c]_K_җ/}]}/uO 0gYT')GX]E7Ǿ355* - -. O={T'(r?!UX!={#X*).,))B~U&R *0X"4!5WMD҈ik[EZBy E܇'c#hR#X5$r/(+7*FcuUUMuM]LlnjnxjiikE~e6555"bqB؈CsKkkEЂ,,X9vl_X\D≨Rdb|FxhRRD1ϟ}g"p%սn߻yx[nj7Mo_IFbZ }V`e!lE9$i L[bxXyj+\MMQVU J|q \%U -VJUAT|t `QBCpmW_/s0mV.ᆴU`+( N|1rU)&ÕleǞ00p5n>iuLڨ'b+8U쪞]! $U{ʩ';lc&f2 5A,J_eIXP!\ -!*qa"K>), -_!Z]c 7/}K_җE"{+,xgttX`a -z)AhaWoWo_wDLE%%EE*.//*-;s99`uĩOO:3hw =DXl0a`(-XR [HbMNRId۩HHB!r,BX WE`tt6,CPaA~EKjiŽ [ UE0D؏pҍgfpX -.A, -"Xp@hۓki -w8Imp4. U,(r\f͍hBG -pJ6TW^8,c"(NDꚻGerPL yW݈g`+dIyH8O$W)H[m^ik;{趂՝muqlDSH[~-_f|#\)؊ W/^)}>}:spƭ=EouV[}9/T@ =8Lpc+dIR9awR9J BjΏz#?%b#R"*(DMǞ0+"mE%;Pt~i.8i+$8 -/J[96;M$AV[PejڪF -z+ Vv Z]\+N xu鴴7*䜗 FXiϊۏyYBȣerЭL!$OAX~MKW~_+ *80^ (6++a>ŮcR%} ‚UPʠEXf,4k*kEXY+*"lƮ[J݂s _ -:Hej܇тC -[8"XCh674k#/3ˌRHaW"kGwK +EuBW치LBy-X0V XXZ$ȂB_ё8y[PK"LTX'E kP$yGKpQߍ2sS[ 3. aߴɱow+z"1ܬ61' ܹ%|7o^ $xxI|_RV߲٘+m -^:J p[a[UZ j -]XyFm胞 `I4\m`.Nɴ6<.P:_6Ü-)Z?Lyvge_e1LY}CJnEI_M+?Zfq! ,)%O!D~iXPKjOa%dDKƮ :/_-¿ۿї/}K_;7v>w{؇}TTVƎ ^q)rG"~auw Y;jK -.啔 9Ob'sr`֙3gΝ;{ .+,nq1 BaU( B.r'{s+RXłήVW}}=D -a2btt5[,2TUa!ZˍȯB`AȯmVZ,f7,B`5LdwtuAfs#xD83`R(D,U`))B#X~Z K"'Ҫ07hpVXN?G*abp:gERWیjWT9G[frӭ\X 7 [m_%%;w[]>Α1mxZQViJeVnC+V+cߝ5m]/bCI04`O005N͹!#JN7l &i b+VTFl=q7\%qS+N,ʣaV""oHi@pL}7Ž'К۵+>yf@w FzBe~5L!\KEί{Ǯ$?38ШF؊ӛ>!\CN]/o/}K_җww}/D3:nEjT1 #׹>Z܇z-*ͻ_TTZ^q)/̹s'B N:ui:s4X.ºbDXb,3+* Օ5_qU,ؚ f3R,˲4bK(He;F -BwcWW,Haqux|bpt,X}=mm 58h(5  XUUSWWP-BvaЂ MlC VCɄ M4҄p=)D蟧"LD5U"j¯oB0F$QR*fKiʙR8*4hH$EUQGx:[bEʒע{k@4a˯yAE`+WjU( $k4IV -wxGq[c+Ջ/|~2W\aSOWzV0OM j۠lE={{FLa6T9pHA魴=i[ZX /"KR8` @[ɒ+άSZhb #*ٓTH\X/qd~4ҐS-)J;癚){&mv[9’a;0OmwM{ p53z+pB8O0Dmhb -Lފ$WJ- r{rM`+Zŗj*`mvG`%;=;bVI|N7/ N -Vc[$ARȕRjJ$ BʉI[\Jʍ#QH7fbWq4P0)w֖)Xq6eJ|9Q(Y9^I0ʫ\J@v|\lv_ӦB,MPU`E?cor|,a+XD{ Sr7-O k/ؿ7/}K_җwtG;D^)"rsGx -kDXP$ED -.\NˌƼ‚3sN??qO8q -SXNYgΜ?EłϮ^RRTVscLX!%fBޔpoBxRA, ۩on1 ,\h&‚V,XC@FE8:l)Z AvEsk "X 55*/5TTTUU5uzSS#T[؂ SX-0]Ejɂe2)ήΞ~`C;x|yB0^)m?mM(Rp؞;J -eBj..ў[hLԣiit\2*"Oj* Ci **Sxz/Q-kWĸ4,bqMiQܸ[Eۘ’ bR -KnߕJ=V?:I_|B^cmSbwV?y}v'x=7]y#V+ʾ_ fXVVm`e:6 :&\oM ۜ/6^ [;ǑmZbl$S*"Up[-cJ!WbZX KZNx!jJ:U%0#؊gL[ cj|X[{ *ف\M&V\ij pJR5{咠䶚J*'2=_ -ȕ[:Ui}[?g&䜕]l%5 2+)篔VZPi-E5@~ -{#hZ!,ȯV` ۇ F* k멍k׮K_җ/}]_?okF'(O/tX4 kDH1" VPkGgM}}QII~aA~aK`ܜ3gT+A"ͅ)y - - -_aXY^UUQYe5hq"wcUv <["PBb5a'"!8oZE -k$6ãC]vPK;&#V0RU-?}"R= X$C!h]*EiaO1e_z0~L|NM-(Ώ\ 6.omjJm/M$x% -󧘶Ջ/^z -z}7[WJO WJO ɃGGnݾ~pxͫ׮_ۺu%LAOb'3st :&!Fe A,yʅs{=iq C a` U\R\e] [@%i[!@fAfűU$,Ű!8_[՜73h՘udduV& -Ds * -YVtĞb+?*gθ z](l5<<6U M,vkq+8`+8&mN G -ڑ8`6 OXq~ by咠¬d}}2Hn9(%:! /%ae˘9ׂ[W2ʂڮ"akJXTu7Ma[i"!(_i+Ks -a0O[4d| -*eJ';q EBqe{|/}K_җN>/RUmʯ((%(E KչȽo"Xu&S1 ",/,<[\VξGlJOx Z9Z_U&a-[J@ϸc'xxnϞ}6[[=pVvh w#h &[!rdW,gsyV A=E -zPZr%$W`v3IlX,tP1U& #KŐ~iο83g7W&= -%A$H%A bjVsRj _6\Ah%bEO[[` w[ldR=Of05+ -ըbv, N''Ԓ 2)#Q+++jV5dR:YY@Tϕ¯Dl,7?AW(߅W4!rOgVeuUi5 fHa)Y+KX! %q>7pAve"XIbΠhDDO7]gzP_җ/}K_X][j|bd\+dY\5RѱAE8L-‘!"$U`*.-/,,(*<{PBaaS9'rTEr/Ƚ,0XBT`A - 4aSpX &j!j:a,X"?;D"1E( 5.,2VIEEj1ģ[YX, [/^i׮kVnݾux$H< *ٟ}sV_B%߼zͣVi+VɛLZ|%z /\'x[a VIqVrmheϓ?`V. -VVl5avqzVffE0\AO0J0a`W"rخ謦sfA+ъCJcP8 ǖ± [037΀K$:$ȱWÇ!y=o>W>G -rl! pj=A =N4"7YcO -$i+ai+4RPXٕ47& ld'P97߼v`- 9}mŕI -RV!m%|_fb+5jɁ/3W^+jWBo{7nsgomCjy%K#p`zaB pql"w/Ny}39 <|0񍁆Jҗ/}K_z֟韲;?0_)B kL5DP)fZP!ӾfKkEeU~QQaqqnޥKʼBDW^xҥ",,,().,)-(AUU}CM ,&`+5|ʬ*D"Eڮ;"dnpEp@Cc#c}0p"X,3K ` U r7!m#[ۨBH-FjB`ՙL hw7Ƚ,hpܓ4p.X . x"SLZKWkKM/zD)&:YEcQ$!)u'[0*cDz0h"ۍK_xٽ>xx[wٿyw[Wv7V7WS*<_$wj`ew[YU`E%AY!mz+@o^gJQ>#yO0Ca ˢ*T W+B.2Wps1auTby-,Vd` (كr[A V}x^w]VN+;|\}htp& r\KC En+A#iE1V1!fbI;.7+eи@XilY2QV{d P=^Kzm]bZ~E# wi赧7 -v ֑´ǡQcU$j~"b;E囅-E(!,, ""Xb|0ag_O6 &:m2WWoDUEsUG_җ/}K_;~{lj),9%*įFH6jr;z]['XJJ - -K斔=?"!!O99)WP_ HTˡB"J"D , FBXMȯ̰57+f^P -K4X]DavuSU"rđa0Pcᮾֶ`*0e4VBl FZY4,C ::z{05,AFrBXZWZ~˦{RpP,aVrJ&H*RIǫJQxG+]VlXM0mR_FJv^$N{%iGdc+L[|VRKHJ+UD~%4TzϞcO3.fG>xtރCVz8魀gY/&dwZ!,* )p+3N'\`XRxU8 o!vdÕ80ȯVoN -JL ٽ )a -[  -U/^WR -B ->'G'*J'wLM* a r% N:ʩ5gmfd$ݺBVoW7J/f`48mƷ!,"T3iiBFFrJ"KWP$jF 9MPafX$TEd -,ߌXbG_X$ V\W a{Cr1E[Koa}K_җ/}ZN~?_;aw j(P¡::EB??<97 KK/]ϯ0VٓNɡIa9s"XΝpŋمKJ -e(5VP]-šZa DxH 3GX0bBK(@ߚڛ:EV0т5"T;x"X}35h((/(/3 U55ujn2j[ as&ªm,vf(wtu}xllfa -(A_#E_0!V8B$EO̘S<_4I\>o B7{t߼}ygw*w[c}V$xH~bG>&U&1/_cJr1iDOK lR y'ފ=l_&l+ -{BV'ʅVvtYN` W=u م0OP|3S)V"m5ZlUP8#Gbvl  <my*a_/΀j~z,$H [Q6jbxd|p}k}تW -0[qlE+COr. RCP\R103mD|@ٚv eueVַ-W,^,>ؕ,*+ͮmf7+ʯ#ON.).ǟ>d.,Wš" -!_ -,CD(`;_?O݀+dԙ%{n'DUl՗Y^iF -~ -zm !pEVoݾ{vo]suV络L_ʾ8 +73eG`e9]vDŽVr& :1s)=A>-,VD1;;'VyU0)gRZY6W@ix[/"lŒ.i+X [WVUAU̎XG0p\POleuBOHV(E*P92PTfe=^z4VGJ׭.ίt"Xpu5c -z+;nIa+7 ,]ZOJgBܙ&e֔bY(۴~[sh.Eb嵽믿O61ŕJr*IDX$̻&'x+SX[y/}K_җ.vooudWxA,밬sWc8Bl Q4X* - K /\T^YO>4,Xg6`B+#XEeeb!FUU]Cu}CU}}Md"{Wb X*j7plE"wW&*wA܂ ,W"U#X#m"X#=dhjik2#XK*`!XjM"4Zf"abA{Kh5@P^ pGwwO? B5ɂ8ґ,X8m]UopE DY -GlclK.Ax"2WD$F9et-/i4ev8i;׶w^%ux@o;Iw$Gb >+g_/_+Dނ\/%+Vop_x?Q ~v{heuܿzM[]fOƲ{4 V`d~)4X x'HVv Vl1+Ъq+'WV&l f;] =AoƇz?{GA)S0R0pŷr"fW"ۉ+Rx~V¬aS^ߴNj -Ǧb+V4LՀ¬T`%a+4\ !}G&@oű'W\.PXS\U̡NAL䨕vIQeui5 ae\f']vRVU'{:ܮ#Vݧu{剄N%Z%lu "wHa -,}}l7/_fX"!Z Br%&@*_Z[] Jm^z"ԗ/}K_;? +\Q B8<!@+  uu՛L UTVFs(uǔ"<{G5̕\| z/>{Jz?zܺ}߼wUVb Zy|Sn/d<Z]/`N[֤nMNgf[[}1U$$8%*ȱUB\iiUŅ*a*;QpV%JXNOzt sꀨq ~j s%;Y!aڊ=A[z+ r*VvNC"' Rf8#ی4 p∉$:Q*K%v~u4(6xH_jS)ň~Kry. -YY^nye(+ y),ydqWN,ܧPNgį٧_?}ӟ}1G{b9ߑ$sOabI%bJ6>xǏ/}K_җޡN?''GCJ bK),R`q ;bP78?`nm3TU]* VgsN>y "-BDXΞe۹\`Pl0VUmLp -zF_5*S-Xf2+jB2b5a*&Ki - @ ܇FQ- ,lX5"w~ EU,c *ʌ"Dį:[-Ehij17 h ȝ;;{(e]/`-@ V|[TZjgT\!\߼,"X @9ROTĴL|IMUŖlJމ{7ѐ+ - -&AɎ -Vu&L[wQCimD^T7Ȭ!0(mIG? :UpzW= VC[!:{]?`Og{뗯6hIde{g[ -PN\ـPa:6aW$WHnsHAW ` )pűUz bHxOX{yo5%jŝYV(aSj1s~pvͰ~, ^* Rj ryxlhΘ*4O3W -ٯ9D0b ;q`+ÝLy9d2rȜ-I)\Օ"Tڂr-S)6Nfޞzۤ -fRg3PHQ$B_>9_M),D9;ۋ7xe}r2g?O0qC[u -+ֱJ#;6x[|N7k}K_җ/}~ޱc裳/]n\!˲(R1i(pF0C""!VQQQiIn^^aIiY|n.XN||'"7wacbRwWfVWuFB#̎4?ҪdzC=ὥ$2Tu{ν`VKW=qq ,O~ B$) *Vv& `G+\R[J -`,% 䊝hcjbt{3㓳\AY3n~>7ǟ}9QJ[ q/p[ -$0KN'%L؝(a+Irh+'Ttz5 *Vv?)5 - -JE-R1v`l;{*X%_JW @VT.Oߘ\RH8¨ӊSq;a% jRPS'+5vn3(Kݩ`ȃXRXj -\̂c3K+0saeWo(uá1Gl>+5j@ՠknY`Mu%k :`YZmv#Xq' F&gaQȕ`+E8=7/1+;MK=+͒JA^\PS-囩mA -Yin~Cc$ܙs$A( ^u+0\E8ƻ]zٙ `1\OM| -KUN :ŮxT 3!cWU)mA_m7~ +Wq)m%GB룱w3Y_%CEHҴbw$Wt,,A-i!.h,_X8qm]7o2<{SQsp@:k#<ݗV֮].H_җ/}K_?{ cLJ՞}ٹ%\^]Ј%b"[%#`Qz,Xp2lhl6rEsGݿϾ}}Ϟڗ<СCǎE9Yyم*.-~UN,W‚ Z4WFS ]X!gVxPSϧ7 4(Dįx DN760yEbnojk4P80 t^e3BdaCBh2V bbכ-Vks3`=@(F;zh8Y)G!,v,WJkqyUFUYDJ0% N3Z<) 8(=W J,;+X;qzaquvnŋWe0ak^ W r_჊+ZY=N- }K_җ/}֡wΝW*<\;|.`)ak^`ed9v,(#+{C{߽7"TDX{u {zvNfn^vAX!E - -`a -5 L!AA:2rx#¯̂_!ZZ[m`갵1,`;Zd0 *.AŅŅE%eģjx"m7QUk4V,J`adj VSkk(.?,e;ߙ_ `/j}eu}y¢bhx*EtJ!Tbz&j%*)aAR){@ -ĭN<:<7/l]Bl) ֝{w=r%y~we#e 4o: -w%d/ł"{_[]җ/}K_׏eٳ?c/~`$F-B8CKe hln+(-?|XVnn~QGKGii`/ , Ç=QDSTW\\"r`TTBW86GXBKɃJaPcί*KKkc`9N`]-Xn`9-!eUyy*--‘uu`Hj*Vs;`) "wZB!D GGЂ5fkDW"Vր_4S͌oZ~2JВD5j6fnz$7N8ui:}V!mu V[n)i+ߔV z[!m+_H[%0Wۑ+J >{ލ[ՙ8}S+k`e}<ۍOު/v*RPbOa'ȶ?V@(Pms~vf{05}jɕJf痖Ol<}RQÒ[p !piW!mu mTS' >x%AH[=}A¬Z l*b3[=}{z JOʵ^ۺ|6awS7/bwt|*@ڊ0I#+/+Ah`7+V0O "1$s =O%Ri&c8I#V]bgpcw ' F< /5H[0A+J+FD[R>Q za? +#SVJ,BiOmIORrŠ^ + *6,Kc6w$X=(fFZR~8+?aP;Rv%" Ǻ#XZ&vF_'C5cw`htrmѱ7ow}oãgg >+؇^AXW?11җ/}K_׏h?,v"!+JaIEB_yh"pE{ns-UYY9yyGҏedgB {k""}?t`JAP!.()VIIaiYQYE Vy5*k ª%xUA,@X20Jt 1e),iE` ƶ`a,į|$u9Ĺfmn55XkL58ZE0Pk7Ճ -D`^g U5U@5:njjnm Ch,X#c <@kyU+k7f[~%)+oMyC[9񬂭 muի'xC5}"bOs[LZ)՛ -*QoO=A[]+.BOݩ [$ [Müo .Y +|[Bڞ`g7`ށ^GƇF'FFG!p5Tq$y]a -"a+p[aIz$`~#8 ؊ݣ. W}Qt[#@ -la|)ԓInqۚ;8jC~Y,.0A'=> (V=UvB -_z`N yV%xE AĬ ]/,Va$cwo!GOJV+aLZ  -?F~T6bWUW8_vA.B1dX8]^"{=\Yπ_}W_}=37?E'b\XB~E"X<|DA(,2֎oG }K_җ/}֟c׮g62Уx)N$tDSXv@w̜\vy$XnAAfNCh!ˎWH:x[fd -s -BXT",DXQYR -BHv2ԑ SX^\B ea wb26XL&WV63e"X\q ¦vsS#XA**-.;"3L&jo~eYX!; -XAx AkrEpFw?ʧ"Z `Q%Pn;a5"RMUab0L[V7/ln]Dl)업ڍ[7nݾyޭ;mu$A[=!aW^V**!p >lկv:w8m2B-ta8¢YIp emn6Yegc`!س磴={x^WSѣ\䞙* ($"X܂UWbxjȋBRZdT!*f@XN`I؜n`uؗ,:SyUuiEE ","V~QQQiIYE&-X&3`Ѡ""! B!"XX8ۇ,񊹝Q$XJkzna\hH{Zq/%iv΅$x쩳Μ%A$uy+ٯ+Jk7o]l%V[=lc$dVD49+e~$+ "z<Vhe߼tթO:sɕK"+; -HK[ȕ:R !b+'Gbh+þ[gw_w@O ;5Cl+ G -NMLLLL Hߑ̊j5136>=6652QQ#Jv"U2+bQvv b b ' :=P Dlb+r[UsZfz+N'Bl7p |!i`'q\R'!,>IP))75Zx -xۮG%-4)T G{,1bb/:sɿ7VUq7ؗ܅ᑉ /}T!/k5{BLaAZU!5Gvc-R""W7+k{!}K_җ/}(/%?O -~q,ܠs'EN( ޞ `R $+J -+JWb{ay%ɦ9ٖ_kZb_3H`~x6N|LOqsTfV<^* R3WjO WOi瀭?y.yݼ=׶.]y܅Sg8Z=~nIo537153:1542604? *Nxފ쾀[\SȕB@#p}!Gcxwz{\ \8{0@C$:]*Iir_͊%[䲒XqQ;Ăa4!%&_)q@$yd.v&]`u<ڠأ/_{pG); Fb]=)6208Be^vߢ/buósXMq,`ZCr=y>PBXpr'O7w/}K_җ#XgcǮ>؝7]N.=da4X[TB֐WP +hFzF`X8p4h8rD`g B`痔ŽRX raMYu +,*),cU-D8ct3\ZgmD;DhmmˮZnXr{m.7l3DZLKTQSSZQQ("X9%E%eȽF -BxE)zM US"jEȮ4b`4,`͒K(T !I-lj&1Y0`ji <}J- ^i˛]I[Jvm -$%[ITo$WPF - AoE<0OV7@oyŭ^9{렷*ZU,|(6pSn(‘Xsl7#}`h Bj|j\1\MR[WMr$W0VdeocV`BaV~8Ogw*넒 a+G DڔU+.1.ܹN&|0<;0H*ٍz&:ZʋJVl* #d2O}~VCdžFGF'( -Sqr%8ɬ&`rV`'i@[ v#Nd -c~P=*x -J툡J VʦXd7 SO²s **B@[I]3[vzqSV#c+͎TZDҕRuTXOJf\j)Zj-X~i@_knJ^+]#Xڡ..E%p~!za/,mKA -ث6{<a/[7_5<:>= c983ł"UyPL'_A['Bҗ/}K__fvرkCѨ/ l`#AWnlrSTW$R6TddeMO΁Q`aH-´Oѣӳ2spa^~NAQNQQ^1J+"rW^HZ0VMJEPuXȯ uRDښ!N#X,WL,kcm]}E5FJJEX[KJ!U]k0M4V# ,`Y7LC -KQ`U 5F_hmjnQ"X`v(`Mc --Xr~¢EB%_*{ƧNV7!+;a3j%V.Ui୻ܗVOV%Aꊰ3zVP 7υ.RlQ{m$l 'W4ßJi&ī8W -UJ%+ëZ "X\ܢDX\V^\QʯasA>Ra!q,i`}mrD,6EPނ"G|j774`P^U]RV^,` J#2BWX'X:~lP` B%emnn\,X(;" `W˜\-Q -kG8Z865;ЪYmjV'8;3Ⱦ`+:sYV0A>Ip V׮Hmu;Bɞ$(_=چkqx4ODlɳG'( ޹w]nezm:{~6PoXg>JΞ8d:B*z+H(G>5=A1; ʁށ޾~ƪ 'W" J^aJNLc@ fIl%A^#1( S(’ EZR1{ݬXV :he<>( z4O0*Y:z=EDY@M -ręRdJ`d EVr4+!K+-')ucRa*zd|xMTUk IR,Wp?(X)IkUWHjC| A':z>vzIW(WOȁO^W"sűK= -V7HoV뛗'xs'~bi;mD+(WVg@.>5EEBbN_dC+77#;HzzNAafN΁CHP4`:|#<-œB_\ZXZVTV^\F,PWa";@WDnA,Mu "XVSc#VKK[c[{s E^ņf0DKXVUU\V-\q%`V=Epmb4Fh@~#XZ "l665vteAaDᑱ鉙Y8YD_^^='Wק15% bLZ8~gO=܅3xŭ˨d'lu -nqzp?|Di+VǮV0Cejl%Ǯ>«7/F;Zٵz+ *z[w^WzWq9 n:~ry8s #`^v XWwC_Vn&VvWPD=;{Zyp'w=h"['fƨ085+Vx=ıĮ'GAli>Rcڪ $ռ?C0IL80mģm%av-=AH[Y<8y<%A_EVLIKW r+/;m\G#@0ԥPZ% ))yQ@DG%d<2^ oReF0"D.IvO)J)/g%^&r``|WYJP ߉4@RR+_wz@B\e|^#͖҄6[SKm6؋6{A]>4^L.\/F~g_ܽ{l|rffgܾ43 -\X x@+ \-ΡX/}ayqi]={v.H_җ/}K_kϞ=ts;v?,8F+`XBS<(rٝnz[Z ̬-(<4`} ,{:vc_" ²r_K`½WHB~)%DBTSXJZبDE[PB0cWBCD+jjJˋJJ`! "@Xe55Dh)zWz_aU.BX& V Le3 JQ̯BƉ|G`9ܳ/-l:q̩JJ) r*o\Uխ7oQJatN֣v)ٶ-rIaJ==0-!XS -+ Gqw l „J`gaRyÿS*RHBPa*&er% i+ULktKZ?o MV6⬘c@=./{sZn44g e/ o`8_͗_}_J Þ!X""D*,La-.(]w7_|vH_җ/}K_?g;oͭ‚xPbyPs),kUoeg>v,'<|8m/Xakb!D8p!K,DSTTGAX*,&ŧ s7 -!aA1) -%^IJDhmmoD !)zB‚ -#Xuh*+*)-,),'~UVZZQ^),Xf+M EXoi08C`W#2ftt߿4(⾰*Bw𷟠 - `Ap -Vg셋.l߼tҕ(nr`w lDz}۴B$TF$rEUA1RKVz -'ȱ{7o߹v7.aOv_N;Yvr|}q,x {l{|*i+ -(ⱟbK0O0yp^t4\+;G M䊪r+V/xE>vVT$ouqfEw[EANn+/ b’ y$"운U «vjJOG -z}VwCU@ \Q D{惘ŴT$)Iƾz=BUU"2RU oJmUgptVB(KM^ jX퉓@V(S%d$W;Z>%f}"MXR3 SJت+ aʃX"4yڮ`fkGckv\60Ɨ3].-|櫯~ٗϞX8919IyD+\"w_qD🀅jї/}K_׏nرk]0'`+,lG -+xiw_ –j1'??+''7?H1I Vھ}тSX=X!!DӏeegggfS0,Ee Ҫ*VJAbYձ몌y7P ,ڤ`6ABj;i!Z+kU\VEEE%0TufUJ -lFSXc4T šjjkkF`5Q˅X-X#c#3BVWBB -7ؕ'O<}䙳P</l]޼[q%{z%AVyI3[=V i+$ի70eRO ާn] ` ΣJ`(֩3=L#/}K_җ󕞞./|Ν?}vNcAE.(E ]4I;haYyVnNnA^fvcr > A`<o^`:Q|DST_aayyWdn'UeX&T)P$4PKTMFe!EEfWZt>"wnsݠ#XFB W+_&`5Vl35FcUm-!jukQł5BD8/Dp_R:<i+[ 7/]lueʵKXĞkdmR?x%Ǐ?y' -l AZ~dDf:RVϞ?ʾuK]<#YٗWV؉警g&'GGz u"N3+L$:4OmVh -Fr1{:pӏdiWPr+*(ǮD] -@52b߼wPeV -H z+G1+JB -USKR0sTF -bUPDr`e+bv+$d"):œ6b+60+y Fbd;V0_7 _%Qɉ,oA8b _.)BJj,&%L!Z`jvI--+J1?6L0\ ogϠf^[[-MfKhn {Vk{nÑ`(2<2v/ -o>g\ -ۡ98óX `nGBE8k.Qsd-.,@rFH_җ/}K_??vsvor‚% JjYBhq> .ws[{WX4==#;'ȱc{G;{ -{AM8WSPST\PRJ¢2hVU -ayJ *HH -,l -K,BT[" ,WV`savfojk6D4dE%X!,68²XV\Ȇ+!fGza`+RBNE -W$H -Vo501, /a?@4H[ -Ӆ==Ǯ$HI\q1;Y٠c=A2y8r@o{>MOP!:\i:UDkPZʧP_R@+7B*v![&E +\\K9cWJaPN$fFm[Ao8hBg5 U`8E0Րɒn&T{IqJ]Q9(W~MHOv6TECDK ׊ =mN7,4747X͖hXagb/=}@=y]g_|ŗ~{di$W]=;W3sH8 -!gY_-!%{GEx퐾/}K_җ~//۹g;v_5;ob N#dB!"taKdNF"3;;'??'/h¢̜ݿ#R4.r߻:tȑ#Ђ -bmP`UP *58EJ"VHeB WD_!jgjAM-6"w}4v[CSZSB*ҲʚZUX0e B`APq RXX!4Lf -љ`=|DT _Wk'A~ /ln]t˔zJVO8z `+%b7oe` -U<}߼V6/]y&xSn.s7+;魆zٹ$fPo>^^qB_Ї - W(G'uƻ{z{z{?<с1hO#R8 1 `RO4I& Jv#SlvdVDUK;5ٶ46i (l+m$fwb+I ~`>\o*+cRD"T] j<~LpކYi)[Ĭ8JhJ7SOA^y2K;0-,՝zK[ߌJb%(RJA -$R0pӣ%Xr.K"WQMy0Ln#ƃ~ ׇc>rǼjUcdn u zzoik'=Cc]D\r'~쒽۩in";g(p̊ENHjnQa--,bR -k} x/}K_җ~.w>8(;",sHaqr Xͭ5lvy,3=#;;HX}1Xw}N!L/Z *z[wݸ}JOs6O+[M/L̎ONO slw Y`VUQ]hxAo}P !7;; C*1;z#C0RpS#)԰sx -XYҗ ڝam{[uت[(٣Oūg[=#VpMV짽r譶@oI^]?D=)r+`WO_K}de A 覆,f`0=p0ek1OPCWjWcãBruVс"5̊RI[ joF"BI mg?|A$n+dwVlQV"pĮDrtة/ z+ -WJ -/&M*K~I W)`/9STKHJFVT8a% -%?e| dK&\! KPbJbé,g=܆\iTTX XѿdTLGe)'vN"ңE%-|,lʤÒXD_C0|㏸A[m֦V[-F{72k}sk[{{aa/Urwvnn]y擷> -FAH^,B)p5C, J0AjB|eeu֝miatח/}K_җ~o?]~;v󏎤gC0^ j - TH8B?=rc Ni!E1 +',XYYE22{GMH/ {^1J*ŝAQ!*M!4qN! TBD("XYr;E:T kSnDXgfnl2ԛ 2ua!EE%ťeh5L8OE͍4D8l6L:cum Ȫ5!`mlnimNv#ή` Bv3 'Ny[W^~[7Vݺ{{޿}{X|cmP|T*ߛ7V$+[I=A[ݗV@ou+Houœgm<ze(˰3񩙱)&8ا V=ή;eg!* mE&v<iqp\ Hl512 -WQIꅴPw@'b+vDU3C|1`e=7/+"XȯJ UV6 ,`)ʃ2*FwAxXJyPU`i"!+W:`a -K`[mP!6p9[[L`UTWVT( -d-FNwaAP ),йWU J ,Xmvѱ?Xz`eW'O=sK._r[nݹ{|t!) A^͛w -lF)i+V/[x Uon#~7/]yͭ~k ˫&g&F[ alE -Vn2.7ZVl"`O]@p5 p EO$W]q5 -nƱ85[Vq$؋ AVAyiOi+ V"Xt)$Y"@S+ Ja&M>N?j2WlzOlJPc)"jџ F;UjCYQYr%s$ACɔ%("RSf,E8h E;阃,|xa] {uر?nmjm4ȯclB}`*h3g?}ҧ_>~u&Z܅}6%YHHE%oBN#gwAҗ/}K_Q_ Ÿ{;wO~r!^+`PBnbJ -%94ϚQ Q[g-(@ VAzf̌+"XX!L -^`80Lhfd"Uˋˑ_UVW#B{eX!#8Z_UQ - WJP _aP`Z-vkk[sc"EEX܂,r#X2` VKJˑD 1e ںjWª/3([QNp8]XZ\Y]xu셋/]a'Gnܺy{?|1װZlVvP󴕦ȁqr굦'z+vڞ`OQouw7Houe&x‰gֹ}UOL  >[uGAvL%AԸav@%;4Mdonor -V#\J)Az+|lW^EO@i[7@Oj*%jJZ"ڼV$ϊPūBs:}B]xTz+Rx*.w xNB(uD%f(a5K,'W ޗ*%c+a%fDFنM%_~J[!`% J/|hT(kGFbbuQ$z+p ]фHL(?_žDfmjoh4R*ՑtD*+7}mNAQ9*A%Ueh{5Zjk+4Ա4!y"wjԙ # ,y``F-vny>)v'YL `V~QQNaa^QaQ **kj :vf`57-B+E@^kAB.y557CX8OLͲյϞ=׮_y֝ +hI(xI+YƎQ[M`P rl >z­젷z+V׮ -z":v|~ief~V8L4L/a{$[!qPڊVN~z+ߚiCzĈ\y`U/ -W#-ș#ZpQ>Fg؞ oXU4QՅn+ݞ N\0+b`RT * -m6B$lBˇz+$f%5" gɷOV P&R!zr.[£`K]i[UؓkyS.TڑJ*^q@qVT= jP(ݓX&wNxӢĘS_C]V4A)2`XҗRDL"CUghUOamD~ՠ+Sh3k Nln]y)>}[ӳ8pA<,T`00H9`/PyWV) kg.{'+퐾/}K_җ~ׇ/~Ν?}oĻ_!#,ba -0*8 ΔWP_\u$Xna}}"BBxC>tcǎeffdf+Wb!aՔԀRف:(QL!AQ!-BDX  Vk[c[Ea},djohl6!UVUU\ -t~l<72 - ЂÜRUȴUzHԓZ2=A0OP[O41a -.f08#>w tBJSh(!q Z7hp4AlչSgM窎 '~С' -!ǡExqDX>[Eϟ:w{O`!+o(܅  1p,I=&r[Z`U(P,ί1c+:=AggOo `9HhG VK[[k|58,Wn ;=<ݝz!a`əuWRw~^z(y_|ŗ/5;_~vZU -Ǥɕ|wL|^yŗ'> zO^v•/KBa {3s 3S=.<4 +N6C;UBS4FcX'`8i W3sӳYH+^͈fjrlž-[AC0?>`2Õq$Pia">d@~MrWG -mV1(M!dɓO&uܹ공U0Thqok?VWWkGW[wOk'Z{zzaSV?x" тw!rZ/0Fb Uf?4h>ш"w`utuBj94r]ND}=kA{'dt=P,.pscS Kgg¥7nݹsϿ٫~^}gD_7rAQ/kUТ/[z^ǞV>gn=y'ܸy*X' zBqym}~iyf`踑GړlQ%j%7t)'3I)=A$F|$ - WsȠ7*H^-9祉ZF{ᶚ$D%{KHgme -vmKn+l$Av]̊[IAV -\gal# -zi -tp[ 'R,R):`eJ`u@J0؎"o%sQ؉r2V4>"!YQ!ɸMøY04N0TNK$̕Q<(u/u`9:T,`FK^;OgҬC0c&&!ʫUGlBm0ǝ$5rcvO#陸*6_R' N 5o4_b2Cs0|~tg}~;w~zaWP`:!MrDX"]ͭhm݌cQ -ul]We/{^Xqv~C?ovt|*&~:aڐBAůq ӂF?w8jkkO=Sxı#G>q/:t=z`q?q̩JEXC"Z67 -a[`V[wۺzbI4 -L^.D"wRˏZa8"h,ĭA+@kP`A"~Q }Br", Ƚw`vtvuv`opЅ*gׯщ=WO}_zxwÏ>S^7DKڂb]?&G'by!' BOO^¥+7wdeG | by+A}HVϽpWXٯݼu͋WުV\X^+,X&cL.fGNO'4QѸž`V1f !yiL6ᆫ|[ fA!BC;Į -Vf1VBlEn+hN Μ|ێ[ABl a "r%Jh_JVxŽ͎v<0,UD Q&M`` -KXDJ{a+c/d+["Y{iE!%OĮ`()MUJҭeE'%wHԹ#ԲĴRoeXߍ{ehN6,gZ@FKW+׽,{rE͗-IRczK+#ctKF+DX)CR,TWqD2yB+0arz]ln+F:`8+Fi#wkW޼rKWW -kt^6_AjZ[d*BIlolmnr`vm>E᫭])}SxS_De/{^:+v|G|L~4",La %#XiJ#J`_"8BqꆆO=vp_>C:t"<\QQq>'Ex%P -,`!NW"aOa"btG~ 𪿳O*emW Bf|" V [JYP4>rc|{:^lGsskG[;Z\N_}tvWOOO_ߠ}R?ed&_mm_`EOށX+R{Gly.{'_ O=ܓO=>/+W.^gKk0ȭS3s3`eRl0m* \E'@I1-x*U:pE "Rr+NHuř .R=mBVSV9ȳ.<]0I}zc#|!pT n+?ubWÔ+/+cOWal#F=(Ga[,f=#m=I$Ĭ4JԳShJɭ©Πŋ*^-ʚR5f4 nd`-20bTV2%i KVxtķZJaPߒRqV2{9 -iUW- 0nYʌҼdf1_Th=y +c_a"kX±a~[A^v(:7W@c^7v._|v% -RxV@x%RX@ȂEX$Mc -7d: Wp'wwh. #|s^e/{^_?w|{?#㓔;ft(C ᪜M;Л`iP8{\qT噚*1С_:+_=q!`9vN>qZg0U_[hmjnh>O,Gk+`CE]aQ+W\˽BW.w` ;E_k8 0-Ba),tuvt66,X MM-mmm]]A琋WYu" #[}@(ʮ酥EWw}_}yɯ~W*’73WـV6I., W,B-f"Xxu._Ѹr{ۻjkAxl噪g=~#O z"E"gϜVmU]}mY "lkYa,.`A"Xݽ\"^P`Ƀ(,3EE zRj(rV$ т:Gc=Mr!ZG v{|>B ,k,VOOw__CvE[Z.n\rWo"H䯈_7Ͽϡ-H'Vozg瞿3YHA$W)2zU6e='U^G'`U'8+\ʬ4b+hjtLrcF.O4dV`+a`8 6'V~7V!= r0t ՞ p偫ViQvPUxRUсb+5dSK1\( $DJ4!Zڅ*bQµ%KwK[KFXC ߔe%KYU+3eI`E*2(gG(#YvQ,xJ eK#X\}VJ%,o7>*H JjW+x^#Ha[v:i+lAz~lފ;k>1F :Ԓ00~V_A 8f@8 - \ >EcvnqCw.olB -Uq(aAUŮ_6p4VqsKR6a+܁+qsX;{[;w>{v^e/{^_gdz_#JEnLaq;aqC -W\Okv.{Mg58յ5*+kjj8qF#bqX~luMk뛚aŽMW""aݽJ˯xUACC\R BajOРa -FcpBklnmmhju8jDz{54x~?F| >tٝ?/C^fߎ&nܾ/ko{Kk,//3(rֻa7|7^|UϾAo]z嫻.!aY+녥鹅鹱V 37&Sq<8rM K29zbq"b< `+l 0[Z!ry|Ozv$Hi`dX {h/u P1 -+M5~̗{8 QX,r$`>lSN*oQuhr-ܒ +Y,WG1U(ZRfJpBθ}Ka V0kTHLNC-eb)wz]X~RRoQID[%s t0,%geA/+b+O |Y_y\ȍfslA+\\U,2j=ai -Ŷ<OɅbqs{{gckgy  -ba7sUV юe",,|s PՖ9|uX¢ (d{g}DoGe/{^? ;>c}{|t{rc)*+Ez"`HH +._d)8;qy]Uu *+CGɂu@`9V8y$DCΜٚڪzDhoj!y,X-m]ݭ]m]B#į;a.^aP9{@z(5,,o,XWB0VrVDEYM-8|Chx> P @Xn?8z}fٵ7ny_z5 `a//>;~{ierխW߸pE述8Xٳy* UBNğ(O[P'lE+Vp확z\n4' Wc&TAtc -]ȬBjj7'Ql5:1b|~m]>'3 -O$cS* 5l8q)_ @\^2+n8ʩ8Rd`8- dFp 1 \IvZ,dz*yŃ]c7ZZKN"Ɉ8JF*byvez\ -#H,tҭĬY,t+r*iJf -ˉu!Շ9+3+k2x -S\HKڅ<>'Yijm2~/$Qf!,gBҙߢ|1jI[Fp{:+Wu^!%j)#͏Q W|`:LN?y;bZ*6랦S&3^.؋zPY-0vW՚8aek ** -;bYr+pFC8 W{$B8kcs$r_?e/{^]zGˏ9BX)f9jwta%StizTQ(M Άƪړgj;yHE8rX""+N8q3gB fU78hjimjiAZ:Z:::_ _q> -  ;0AYfPGpa aa8:^'d*Cx0 #cOhnkr4656649 -D P(G#`FC0,@xPTӌzawҵ>,~=R`}g~gb+bw{z]"W//$Vz)ne| 6[m,-.-N}#cdeOf 2mWV - 6D͞HA (J"W*H+ -B -RjWSMOc -Xhba )Ql5қ%8L[KXcI0:6u[B^V\sV^Yn~ " -za>OU8]KH8*)m32uY4 )!+5T+`[`Q[\I~e,Ջ,-$ג+%dċ+oLJ͂!%%"[ґ,5vU¬߅XuREPRAvڂJxۻ({TxuAj[ Xi*mAIM]tc39RS.KjHHB#;6nP1-E+g 0uU435+^*m9W Q[ -Vש9X †DnMN@{csMi!ŏ{ĵw;{ڵEe/{^z~|/!,lrͦPR3b(!waA qDT{[gWUM D38R"Xį`:~رc'O8 " VMCcMSs}Ss#V#XK{zyG/,alwypraEqzN_"E# , aa c"XnCvr8_A"Xn7 "X"״X"؍áфNr08ƮwSK[^Ͻ˯[}чǟ~g|'8aO> @>w^s/goݹ{֓Woܼt;{7wv ۫ & g؇Fl5jG^z+VzH,Lz+s7;b+dV4RU -U.$Gry^cUpd+ά04Q>R1>Fp=g~fY$WJO+!kA%A$AU}0pV+/#lV=S - _ KZ -U$Lgp`*cY%vU -Lͻyʖ,A& EJJh9RV1"J'TDˆTyPUfjĒCJdB"’4CoTS,% %ixRie\{,JL{JѼg873*Rm -ˊ~ҭA*UVWϜU+3mWF `*O"$t;Hr8pV@s;Ye1{i-p#i~Ѝ_Jj0سOdU2ГޡF&ff<yL\^-oyU+YA/H{sr yjw[?Rwa-<|%څWZo^e/{kQyG h@[1mP+KC Ɉ)ȝ]R `ELт5\USg+kVWW?~ Y!u;OE~Yx>@:Ɉa!F|"5 a=  -F EJ"XM--ujms4:Ϸwuup(i)os\LHSD<^Jr@(l~tjfnyڍw~ao >x}\# -r37{W__aP+kչ%[MώMLX:.@ocxq-*& rZ(O[Q+ L*gdb׀jN+nIq* jbjtVʍꈭ``$\ -C* 8AS.}bvP#i+ Wadh uwrIL 9P[1Vч-hʯJ(V0`JrSX&PV2+coqY+4 HCٝ?3>3Z"JٗriR ja_Sќ>UW83[jiV9]dO= WWpRXiP3|cZegqyme042:^'əٹNQ+ Uῢ&(z*la  a*X6-[&@pamn u v^e/{^_c=yկ2|mR_фB &A H4m8otTVUcm}J`@Q`:r#:z8ENa=lM͹Zaj:_ԌwWMmm2ASHH",_xN'Yj,W4WB  ,ί m"!D"0  "Xm]mmr46698GDz"IgG#ccccc|6mm-~t<_`8eщev w$+/ګo۴_{W_W_W{g{ɧ -^OήͦfUƠj`+AhWa"ٓF2bl. sZX\:j?!fAv)N#䱒ZR3$M>[]1a(Yiȗ߬J*2xCQ*wND22@ƴRj)%%Q$! E8+%+ˏHdN,E,$=Y)N@9MMKfH(jɂ -ydb<{H,ѱuRY(n/,=i4fk: _prE,AEon`j6F,<"wvYb a+q#XpT`+xᥗ?e/{^5\?'?٣0;W7̍sʚ"ܳV{ ‚ U*ٛ좾\mmummcSSeacCpZįAX!V}CuCc,X-[ZۛE|{'ܻZ$B;",;{YupaADX.7!," aq"s !vmljior:_ &W}=!8d6a3T*Aa   12:9;ˮ6w/\z:ܟzg_~W^|՗^y\TAvz{;{_Z_l59=26ZMN4$A`"l{q\߮dBO)v*%A#7͏d\aO٧q4zx4V&@[MՊd[=?hm[$>vBZBada`0+˶ -%;yOcۊTi!:#8OV4>/Uy0/E ON!ʲDEYYR7JH4eNeA&_z` *Q_ٲ -@uFՑ%dy.1 얈]U!UL^Wx([fRڂ>K௃I2$;L7J&H&&Ŏ'h{@/LL20QFTݙ>4"2C5YUǴh{ґV(C7+8d#âƆf7a; a'smJ هkHTcUeaqeskwo{͜_Ze_1^ - \]+.WחWd^BU@A~NjHFbq "XM -vaq<.]9;}kglnocZ{E_Ge/{^ڮG}8th*2E#`"aL 0T`$7lln>WU䨮9UYYC'=-",@XUUj0XpQ,ֶV"ljAB-BAH~9܅W@dq;+nw8>"$?EM'(ruwuoks?_XP VK[KWOπDT&ONM/-,-]KH y܃.X`$3uvwk7|֝wz3>՝nܾsKWArw]㰋U~2K- cpz -U4UKhDRS -]١*odQ1V\AIPJnUӳS"jE9i2rf>g& 3q [a_O#Ac؃(c$W^ U;C i+4\ٷ'zy -9YPoP"b+S(D*Mm f8H-Ё6(C-EM䒒y#`*\RԇuRĮ|<8U"{/gJKp=YVZ5kWgX"{SEcq|L,*-XEK2.U154}.Zm)K=]xKe7թe\j i*hUԸ75I^I/}W)LdV+]N4+vAn%4VȂ;I`d ũL*453?>9 zHDg "%;!+W'%ÕdOtU. 쐕+V\Ǟ>F>vPⰫ]L˰'##J0DCMV+z2pŎv2_JD+{D) J+{B#m=A3.\)ʂdjJG g#RfJaV/aY}{q-+R_%i.UU2ccJ2jҰYYP",G m]d/{^ezG~ǒÌ`V%d[3wC - .f5 -ᄢ>٪ƆSg7@ر<毞8|#c'ЂuS܂UUW_q8jMM͍,&BX\نEGPEAEh`)Bb"g8 NC1qӂVk,Xb|]rpq#kLNM/-,Rf85=I= {|o`oph]yvM5;ՕB /_ރ}sk]+ŕx\#6{7f{` ;=Ξ>`9FW}?%19=4R(loonneXHį{z{{{ \l%3F6?:69==7?.֗ …յIVi䰋O[$h4b F"*"g,ˮ4=E؊ll>A*?JmABɕ*(ԄXd3!m1r4,L`+$$>ia |v{ADz܂zX/'&9#NgogOOgw7<^ T##ӓ3sg`OLόN0AvU;f:&įaίA:~4GX`|ٚZZ:a -!D:!aQ -]=),$W>ɥXI53H,guT V"͈Qñ0.w>yUEb#\ZY*wvvvv66T.kq9?t y}P87-_rJUB:T>)Df;b P$xpsAN*(OSs,% -7f&͍ -51y ,KD9ۤړ]5j2$AZ \Pnb+/jOppcv1mEVv´U I̮b'(Js&y`z{DT~z: C28FX=K[ -aG+J2y\*,UHytlJSlWڊēV-:Hu@K?j*n}S::QDRhw)CJUUD5٥$R9:E -4nDsśHT2R'FJqLDsi2{L2bsP7(P Q U9 4X7@dP -QDUEpTcG8h ++wc0p! m@ʳZۿtڭ7r崑g//X"M..aj{w_--cPD<vZ(7֋[6U Oq"F!V[dq8n}H+G7n-.6o?p}e|GOg}f9d/{^e#d-]X",:"`]C4%ƦGssm}ݩgja᱓'Ex?<Y~u!aS'Ϝ9}le9kq+҂E-BUW7ۈa'_q;_ s2-Be!0"wAP$ ҅?B8e8rgSj [[:{\P$d䌩Faww{Vqumyfv*?Kh p|k+ Ξ}~p녣X\5LX'0p0o8}a_ vvP8 - WHW0LPOkɌ2H. Wy̕*'!aE+J`+Y̍feR@F%dyRfGj ^e/{weut=ȣ=P؆XK/Bgeo6ǻ1'ь#/ Oy1G8I[/m؃i+PLT'C$'z[ -`#ɕff2U"U֨?7UgTJ$(/2imUBJyRuljfYql%&RRZa3ufâ`HV*n)G *]qU=L@,7)GW%~fӒ%ƨEbR&&lĔjs%Ô3]pԩxhNWhK}Bs"[4fEDa"fEL`G5d\\%:F]UDwqn 'W`VIfS@5[*A -uErb=C!8%=O6/\zڭ+n]xe15=LX<ӳ kٻUv入Vk+kkT\v* 4ؔo*1U#,^)eB`mmgjf`8y߃[gg_Ae/{^XWŎ?я~o|[O9JgŢ c! aV%kqjGSSM}ӧ**N?|ء#G~)Ddq?RQAc'O8}$"<[]]Y]]U[,E|`jn8),WmWbwf'ȯ AE?FW%b-E&PBC~cB.wp}[?Echhr>-O-,έֶ7wKjumevnfd$]--p47#jkp:AРr $t y|nÞU0GX"HR -\l:NbzQI -*idVt^EyJ[JGl Ap*G:Ao+t[=~ndVNkCIi+gVsC -2WL[y!'i8*'"f7 7\+IBS2rT\JhYA2LFI0S*,W""H*Qfʂg%C\`(Za~vxQ1YȲ 2G'KZ3*]L㞫\`DH)ꭃ|\ 0DQ8p^+JyΗ"{}F1''#)>j;IL˦dYRr-`Sw=h ˀTE̥@=3Klۣ{ mmfGjme-iz]]>w`o`!6m r5"L.dZ -'8= jRi#jue n D%zQwOf'&b&m3@!Ce[Ԋ!J20cㄭbAXEU- w6[rY LQJKA1-Tӊ7:cl%\y)M$).$RY 6*.rO%0#5ĬS+0ss҂z (() W0s&?ݟʖBTj%ĒiԟXb?dKw"Vjcgm̓|PJ2+N!^{v)b|$Wȯ .a#po>_k6vudg nkovwtv'5?8p0}l&W}4Wq2}ZV|ybVSs\j59S,NO[IJ}CiMr6c\m* A'(JZ`j VX ~%F) -M -V1NR!$ӳdb7ȪQ!U^X1ȩԑVJ[lA+5\s^a`S1MBAR"S䶂}I7[D>Ѝ>N0`4L shU)ʞå*N>ujo}|KFi^P9K͙Nxw|̔fN o#PL% -!OR?k(H@i]$Κ LO2=b\RG0Z)l"XNzF"' d%K92xRgʃ{O~򛧟'*i"WwAgO?͝GK+T6ϮZ7ok(ڄvɯj+p j!_,0pBj BpD!WY}1=~TÏK.^$lE6. qsϳg/]z^|gN` !**խ;w^~ƍ7^%Ԉ zPwIшL; -zې aÑ^p9m&WKk]ccEU՝ܹ]VVF;!*`5`鴹 ˉֶvH)X^t!D#a."DA=< {`XE+`a#B.B%y#8J@~ bZ2O"@HWouݐHt]CCX$,_؄.g{{s}cm[gXO_o{mhw8m66W3jnmm&Gaur# Z8260P| fGW*A[!Ҭ9k'g -Yqlj+Fc+4 B{B#W[b ;F#١*Y V'812 x+3JW2 *VWeEUJ`$vFxl+CUb@C4u"*yk)O*:^1-yQ4sWh6ZqkyEy%^JVZlqfsѶH&B /1d)0sa<-tDČIu22aeOz`45>-U%F-}҈s3fFi?VIJ"._$:+dYi>C$ J0*C?qm!Ɠ8hL8| -V -E'LM-ol><8z_o|h`eu857)S;|kO??>;˫&guJSOə{VWV1jkl[뛂_m~"+nsZ%m-vq,hD(r! -JfEW?8zV -w{…/| gϝClTX]H<{̙l.=/^z7T?VYeUVYeUV˪yM;W__ꄭSB%sݹ 'V^#xdjX`y\-UuY][[^Yyݏ1ŝ UY[)Xȯ@vAE FL1 X=:R- AX>jG(۩aс1` X(GƣЈ0'` -KOAhpB F({NWk+\--o{oo 8ԵBqbaqauun6?b*C#]~6;6[=;3MM&Pa9fnybu }*BH4m- Lv!WbތV[ iC= [!yP[A;D. 0 & ](SCVoE=9J\lvLeF0"UD fGdw⹤TV1pR(='j  Jo&Yj%}j9K Q1-##fV4EdʼnPJbH*qQhA?LHekKz&.aW2#M$yJĄ)nKSTU aeyPՀ݋x.sJs tVeVėKQ椯S/NKOyr5hϗ1uj)|)`INeq+YHP^>y\L'sh[Q(ؑM4X ZcҞlP8|&_[\]Cgxcdzv>Pb.Gs Kk$gzo>VV'g|z:Ǿ&ӳ3s @|5l+~p] juQ'Z8Hu ,3ᓧFbںڗ̗yŋ!xQ2+HΜ/]^~ƍ7__[?{**^HuF(Laj EB,bDnjMFCDry DuNp ƦzR\f#.JF==}^R -E>"Bn$5B`A;" V,d,  4RCc~;6txܾHRŕe6]7?5=eZ̃r6mp&ٙih@ek*,A -`,MP1. -8&|x>bTnO QI~*0t\ZWûT榛¾di%p[JJ8%gbD&yiD+(ɴрKL}O Nѡœ - ɡG5'\J>P:ŭbRHHd̊id\L -_D?qR; -1 8]&WV>:8:|O}pdsb&7MK7R~zvΣ'O?3 wI8bw572Tv &yoRlOnߦEW,T<-G*_m<;dGB6s_ٝ}ݯ_x_\G  lug\x: ^|o}WϬ9VYeUVYeUVK?`7|ʵkW]eTL7r#!o*8wJ $da0<^ox5 fNEyY9Hn.;ԅ%XU__Q)Xm`!DZ!XψpG` AW,YGG a aq `i@HHR$S(۪w`nmo0x/vgs3Z<7[O{d(iz]--Mv[CSc]CC]C=+Ч*f8N0  -r-[$W: W]WSlhTN!y'sb1H7:f[{Dށ -FaZF8RV-()$b*fV[78d, ʗj8"/!WiIyYzҝT虄QDVb("+3R(z*R0f\"Jj4A4^arRuҖGz Jzu ͉UL]SLQsKA[*,Û0TܐkiZ -UW;ƍ{l)|ȋ 嘉ō:AbT\LV l2ͧs?F(J`W2+%z70I:+R^E^œɅ+0l'ťG'HV/&VlT8=p1_mlKeEc_aZdٕ. K˫זWo6I%e~pn;_Ϗo|[/_g9s\₫Uge3Ͽ•WoꫯW|MM;**ʪ͛ox@(<9=[D:XSEї -ys@uA; +9Y9=[S]SSs`\V1",{",6_UUUUVp49vlDzeV[Wv!wW}؋"Hʫ~L2ˮE -!B(2GX(JTTKhldق`Vl51(*3 F`1 -V`C p.R4WH>A'a*wHH_S@OyJ *}J\B`SJ ;j%%F\EdTeI1!Õ"$AʵJFi)LbZt -+ %"TU:#W4%XP~\Wj6̔VLȦ%M/ JI%qsF`#+ OQR!?̘τI-)]s5K'cH>TM ȕCf) -VҬd6q 2+VYhOU\֢ZLf#APKƳ -%3v?㧟=;\ƮKh`ѓOc^c/E<`@vE%DRlbSS3ӳ sįVV?@~7amml -!E,rv[ۆypCB#~p[7^q * W0_8wճϞyƵk_}+W~ToUcUVYeUVYez6"|_7nG?fBȅXf - Wl*(Ă {=^oimۜ&nen!kHPUSjlįlfGKa UXF>jGHKX=0dAW)!{FL(E -b :M#h! G|}}m.zDW9[\ݽ=ã#hEST2cРlnnj^q~؈]n!lq{ZB -"|?aɯʀ* -ۉ_ax{ f ǎ \A O]- -9 t1_]FW&ЈBxdƸO0VVp5t!xgʠ&A:\M{ ! JUP[Pqfyd&g!XL0*e8"a`2/hr,i} 4UJ]ɭWI tqUY%O2qLL3܅ m"ӮieNE'Y٩_R]>]}*T1ؗ8 ݐ))dRӕJxPEs&)})RIL1r_ўLR2*<$"UDV!!o`N#Yc&1kQViQ Wb$\uG^2{6vwzSv-/[zhѓOWس$cדP]±x4ŵdBӓ NL*9ʃuV$fEڪMYa{BׅOV2ٳ$z7xwWeZ_**ʪ ~B_{啛>0<2=;AX()*LMQ(Q\g"a.]=BO_lw:ڼ^6khp55UTWFlB{EEEeeUm]U]5" t9ZZnOV[g"ݽ=}5Ovv-KPctvzna:[hp'7aWUmD%ө 4@ͮxEm_Xtmem _moI &_ml<`c : !,` -#v)w^L3 0lu9\a2/p+oW&z7UVYeUVYeUgӷ+Wx?\: Q&1X2Eޑ! UXa&'R4s64@U]WW^YY,WwE)X5uuį1pS#¶V_y!aRyp@L5ܣdAjD8,?x -X(Gx;oDI!kXb<uF aoht~6?04y;:ZZ[GCScM}]u] ښjW쎅7"QLv/D`utvR{O/ECh,AOd:fl87qDr BZDAjl4c;eT['0P$NN <*8Gn $ +P[CeUO0섭"qq5\aG7|Y#bI{D -!J+_):t -+NDMIMI(Mdd;|}s4 ->iB4YLTV~.vGWL-($܄(h0.ilo6'SSгqbKEkiC3t,8q6:g/ͶՑވ@]+/HTI}o-P'S).~*$JS)ՓQOR+$WhD`8BɅf[A ^8 E +ۏ!'O}tG+k$fTqjvyu}kѣc㝇?ӁA -N ĮK0dK(TUԧe735;?=0Hspc{ *<ks )dW`܂[;ã'/7n޼xҥ+q^HvEpuW>ŋ_z7zͷf_w'n**_gr민[3s EBX\5e$c""D V$X톯mo۫kkԈ;~į*@!I6[7"t{!Bkb -UX.$ A1,Ra!F`h,&%Fpp<}#]onolko5ٜ֖N LClv\r}}Um U`$ v!lljٛBg"<į-  tpӹtv"+'ӤRTVl+Ңm&} D( -UVH1$W[AV`;Bq0 O0% aiL1ڨxT&Uh*(EIP' b'AoE]!(SRHvvT2$?AHe2L@uhB#  UQfMcR/J$:zL;̤R)AžEFƗsFM(&0P"}4QJh |-`ѼNq+$LvIr?$me,>TNtz9I$M[i%$RDJD,ML 'ZĩTg4L'Įyh1 j&` [H W -fVٳL~v~qm}{wO>lĖLMϳMpDnxoù{KHwΌ - -$4DerD._(Nff }naqqieiyLzQ;k ƶ+6ot,m n??`{p5~җ~b{K8.˖Rpow^h/**5|?N*,BX8?CBr<=[(RGT6_𘿽$Xյ56tUC -Vr r/+++/)l9Vdk;NFExbvP%_BH!>S̍GP HX8b#B$_A{|4~oWWp56֢lqsm:|]39Q]UYSU,h5a; l=nO[[ "ܻ{I54<4Xc@-@W*䡍`:;grlIٽj2ٝ`46!0 $j5T\djn$FX l5*U`c+' b(B`L'H Mi$\ȯ$+Ss2ȶ*]!۠IpBC5@I9J&G)J~h*T -A3pd5nL 8b*݄K,UIRTx$O9<08jz Sd` -­82rR1Tu|D))L**B,]H$/~e%`I NR">MI MY:ER4$G2[L@)Ie943Ez)E;qxQQJ?QC%]$$.ǒ@Jĝ+)=ɧ(^/pF&$K 9Tdm ؊U`!I"` Q|I"B|+x+.ƒ $%som?:8zg|vtd, k*N~wxwppwV0ɮcmvec[Rv}cW$d b1>[泹"9878o+ZۀumJ评j!m~겶f}|. _8{.x+ [={̙3Ο|^O~b8**ʪG߾_z+`aiyrȕ3F_©44""!|R -"Les|2]]Mv{nokr:l暺 -`nWب",hDj:A񢅰 $X<ˇ-{zِBn$UpjP4"&9Vz i !~7(a EWԂ=; q{ښںFr8Z6746ձ_Q]U^YL^UEMUUmmM}=!,Sۼ\m6vy_z_p5.old#(Z2R$)@j {AVlj,rf%]jaV+̃'V"*-5NJWnVO yټcNeALPSQR+=#?8FL?h&1YwbȄ1H*">B[D.g(]99 dHIE&zlšwɗVf'ߝ"ވM ATޠ_-bOp'l2j䒤/4+Ϧ\7:^=S%ۄF3YI0"(!BK(TsHt<VDbqŔaĒ4f ' CQ' bq=-[O?Ӈ{l'gd:EZP\\^yDjhgw}sgf~!wإ i=?GQl`|<%`+4DpxM7WA|>!j -js4WӾ>?23\vaX[VqZ?H**k^}^u[4+b8,4v"y -&Eф?hnv8RoS#BuΝrn!VSUUUWWMqOM ؈c{,ʰB;By0  IGr.Јp(k4&~&BD`!DGA4:#j ̀ hچz.eSei`1,M M$"FQRGJ)Mʀ0 -Qw"#"")=KaTj"O(GhȊL,kDu2Аۤ8Z$izƫؐGE ȓT]Xb/ RbMMUFET%xJ{ *"\҄*6 kE#NhHHYV\SճxP++]ES4 <؏4lw8痤VGaGOGkӳ z:G<_zp"?;\^XZa{y;;{|}}u5~ʉ\ e`)MOCo\POPAU|VV:>8 AnhQ0V\mEx(, L0I)7lف>aKSr*VAC e[謒̞$vc7[Je7h.2q(oȨ@IRp2QS DUIw3I%.R; :' F~)i~wIsUߥj c&2O)J`M_S!RN%Q@kQ&V`SZ)}*IROɨPIqyY"5H<~T,]Up/Jr'fZ@T]ꬰ] a`@!HDPۀI0 -Z y&~1LVw>~O7.,E0&ճS3k~>{3x;<7co`x`ht`xRRKhr<踦vP&웋}/_-,.΃[khY#!XmlgChEe՛o;:_p" .ꂌd?؊ .< _***y6rW_}^gw"w(^™ƹ !a5#d:(kpjNgs3`A?J`) EG",*." r9Z[n# rbV¢,WЈ$X0\ K)X0U¯"]iD+.BT`,> tRBCWeE9[ћTܽS' pVsRQAk Ž, <.I V+_Vo"#(Cy ㈌7CYŠՠHlM? $"l+h)hx$FQ4ek`AhʀT|.VVNt$+ -fRVx0H*43?g~SR#1 nsDer%K?}fEIbJW¿fY*A&sBaezR_3zSrZ q~ʓ]D0Ni"f@X\JaSƁЪpSR|+B@r,N0Ok]9L"d(pGB) U[2 B:+KōtJ_ցQVd`+1#N Ѹx7!ɧw SdP"(N-pwc6`0:|6;h`lapҮgp,= ^g0Wq-YNz:hgff^[+֠tcs{csgH4fs8;߽ppե%ϣI9Nc[_zOOkOVYeUVYeUVY+߾vkg?'~#" )Eًp2/@/B_ҹlZh(\:8RTqMPD Wp)K(ľhh!.!%RL)8(r`f)6#c¢\i$*Q, X)HeB?`(Ɩ3 w>~ӇVV&fzl0:ldwheu05Îw`.\nvj+AI1=!Jt4N ٸHz:ǾRl6_N'S肟]8`y*u@XwKh֟ǿk WKruܳN\˗_}~\;nݲ~oXeUVYeUVYe?bӷ~^{ʕw{^XZQR8)ί$š,wPa`1U%X!:]5 &zB V`)WtFjlF7ikmkwyy;|^OHyك^ Fa u!%}#8Qp, 05lQ`GwOk\d+down)w|Tv>){LAXl%X 촐l a U{G;8+!ȝ\>6z F0/ fX)V -⚫Q#}{IVDlEErͳڊ+l'cg7 "25A 7 Ig H+>ڊ3+ЃaSؔ^9.9l '4KRSZ'"f^d&rJߣ$>*QaXɵSD[a15Qdv\d,1(.ۈ yvR[b*v"<6 > SUJOGC`+\A <]!Ҽ&;rG)0ȕøaaVQ -`C@r wjሆd)]g>;`o}'gVl==~OvmN.yOfr 6:8zd|m]ݽ}lk*ʮ{@s?42 {#pBl@ EblPU,vP^eH&^=; ';kfj -2g-,-,-/._Z^յG`f"VY<-\)X5uYik퐂lu‚F޶6o'"8ww~ q*?ac` *!OwB`Tv fql*PxWDPmeTN6H0Jt ,9(LHy9WXJSYѠxₐt3:)*A[oP'%F%)bfG1BDN:JV6Hly(RԤVJVH*(LeN1%)z*,{AIfE󰟤 kQ/A*!RDUDh9'Kƒ("B# 9Ԃ) Vi\P pEA -"1l,L yQdP(0Ih C3(xBK S +[{7w2ىh ^4]`}u{av9jvuz{Ap؊k-8?4At|dnѺ D{Jj)hs`#BpV:E,O;GXޮ *,b smOIg%V\pdG FDDi\V-e[Q:R2ɮd ;Wd*U)}#c[$HOBc \w^aPENHNc@HSdN¯3]I pr咅ʜOIR؈*9dجQ2\كarjSAJRE= -bR:%O\g%b$2-!EZ r'Ia}.l:; ji(Mm(IͅAީ; @ ;L sW`lHL - b ;YE*("< }|an~im}1l[Tvh%SM|t< S?vv{;} -Er+uץA38zcNDl"ʫTU6j+L*y6-/./~?w_<̳b$'xx0gΜ9{/͛_}m**ʪʍ׮_܂W%YX*L)# fcVX?&$X e\aE+6`{Ta#Bˡtٚ_Q;`u]!VOBW^ U?h*̃<X{G8B~@ Va -#"XPW/H\n{ UsGee[}>ْ[os֝;e`p VCcSc :Av !!,2B;B0BPa[E!x5hXO5**C@{) -"(>=q N J݅.6-ylI9Ja<4lAbI@0urLA FIymTFOgS|v2r{5ɾWַONV~wzҥ/? W`v):wVg=s-矿KW^}7cѨl**ʪ{_go|ܼիo64"\Z1#JrG#t~r -%XE *?.;1Ӓ}C ,\hnn+kj !E`ݽ˫*k*a7`[AvwG+jDBo7L;{EA\!~)XIJ wa! 1.(w,wȿ;`6fSQeoݾ ?C@XlF|K*aVCcSns8Alqe -EYX}>sCER1?a+6 +NOx0;XQm RTEVfUA<[L$vjD͛> ʬ$@$ -8iL'5T4tMt՝gbdw!?(%X -rK&JIw% -d[I%TQGܝ'BCJ~*RtP&柗@'RBJFXqT jZ4QBOT, E\" Qrbr{ OI,̀2G0Ɋ#QH"ЪҪ@0 -MCA&E Wlʖ<>d09o553p4Kuq&[ ࣽصwe~LxO -ؔz CH;8ѳ nx/U.>Ȯ;t f¯)\uO'?[oK/*ȵ*V:wٳgIpu^rkW]}/֯**\7n޼+//~|az"4ap,Jt'#!faӹTR&Cή&p\چCF9ދ.j*kEXWWX!t{\n!,r" VQAPlwWh!΃<,K) -+,_=lDl!{68g VtՃݻC;Bx[}x 8ºSf")Xu5u u L64E asgwBTro+7ơ! 0Hp%_@3AyLsLe -JUP+7#,lE@]70y)_:gJ0t,:BeDS;Nɏ"%tx)y)5%+'T<^*=2b"dK",+HBS!*|e0!] -iʆF,UH%W -* -A3BMoЉTX4Sq~+kFhIfϓJt=e,H\OHy]Gȳa($̊+8AAyf l'? 8;::zzt㍭s oEJfJ{O=^Y]LHO@Ww_$AnABXV[7 *EvSؓ)AyW=¾Ő\gqW^ٳ/\ Irg=sW |_翗_***7M6?7n\vk/.O BSݧg , B!6",K#lz]-Ђh,"We"Ž"PkTUW_SEhoi9]N76"z8aG=ax{R2TXF/B!B;,W" RA-QX#gOC$boq:[[Zt7X}H[le$Xh,+G oH)XM$ j b%XE(l; dm` *Dׁ섭d4:%J ` pCS< NQWgESҌ^9RQ k0oV'JTiA岡=35d$\4GK< w -VRRUfw!6KbPNdp'bJvNϚ#Г!ـBUO(Ѫ`SB$38X`T,)Jf(NaSRF -Wpp0%Q윖8 -=0c0CZ!&e[SDx[@%!d4: O1=Yxp|Ow--'&$[}w;{G`<~m3Qwui{x+He`v gr W~rr #0]!ͣ>T$_q `+29ȼ -EP^MbAvl+sKϿUfE9:YJ:/\v~L-Go**Puy`s a@Ja8*l-LfDPrxrB{go/+.Rh-wIvB?`W@rPb{4"jikc|={;55|*nmT^}f _| -J&~U_mdwٍ,!^;ʞAT^  gp -R0{$ ¾j$@&AT[q+RTU4# <uPg*:jUF`+dVY|~jxioϞ/|/|JD*~n2S2H,(>$?~ 1iPPN%LߧB<2q(:.tVRs%dWqYXY兣 -*GceBUl}b !@X_$Xa3 -O0gSs+׷wvCGkS - GDajiumӃ#V -.A'!v"~=̹ErOg: RcSlAAv+ bU\AsJHS|2½{|{ϿZ]$Յ &ϝ9/Bo< /~egB**ʪ؈pol\vmxtl"+Ta!6%>19*Ln+T\O x<Јhv75:[[l6+5ewpWVVb#*hD)XvhDhw5x_۽/I|AЈTDNk%XNqX2UX2k`T0,GnlBHqOGgboV]_O*9!SܕF :vB4wgXE9B;40HB6Bjg6j\ 1+A`Yw|F+<Ȩ\Sj H!Ê\aYqU<f`DhxoY^l.˫w'3;ratvb~qyc!6|rp >LoP{c"jwEâ`QIzQ = -!̞A6e/i=Ŵ\: -֎ƶچ&LaUgi #p<<"xEY(VVУں@} U[Gg[ خ,\V/J[Il+[;Z C+V -牭ph6X*V!ʠ؊SUVm@@lEQx*ud>U[ys2>>9BɔRG)ҡgQ0o椟*}9uU{Odm>KE?IM:>z?+@r2y -̕XI}A*3%]/\dz$*] bזC,+n Y|A ? >al - boQfx 8kztr :Xo -Kh>Av{c}sleZ] -{ڼ}li *$UO_Rq ObAc'vsep3h`"qrP^JC#ãcC# ~s_zi,a+v˙ڽozJ/Y=zѣG=z~W[=/5U4abknbv";YG@J;@-)9#h:--X"X%*@^YSS765K," -aSvcy+"wo+_ xP, -_u}x8$ 8'r'W>rx0nѤ'tP}JZZkjHXZQY\VEŐC;slg?Fl1q3g1F;ϕ VVZںچ& _ -<(UW$t -бCbv8A/og|z1R=ɕаnW5p+9jh꧞"`%2Wޮ@@ҶT6'U_QoI8귷%dJz],+C(lʷDVeadnPr܋TyST盩䱞Ǧ|=AfZY~tWIIkUlX'zI%BS%lW(UU2EV9+^ TU)~e%2sE",K,$WP$Dl &vDԊRkUҀ1,#jRZZx֭wP]uskӳC6ڱFƖW!ܻvehd7knTK>p+Z !vPG +1Que:ulwA՞ɹ\& Cap`x40Lof/X; Vܵk7w}O_=zѣG݁Vafjz~Z <5C)Y/5 EB^!dE"ɩ bME `յK+*j*kjϝ/"R`͹Ⲳs<šڦƦz6!.wvtp~)Y_W4 -{#T!LWR+bgG*Ş%G`4L;'> K++Q}ga_"xC+:[\"W4?jimo퀎Ogw/X*GUeC,oCZbvRzY -}@nT -8!,ZD]\ yVeU.YI%6yyEY/۶_T^OPD$*k{n_(d숃} 'ЬsD TΟE_lʅ7Poo_H+i)bR~Bc.{|94+Ë$'MX\M+Ǥ"[ȢwǏ }4Z&(ZK&`wb l ﺊHlDa:XINBP%z=kbڊ=긹ᑉKWol޹};+76lI~wx;ؼv\MCJK*Ð͏QyIgpZZuóT>kx[P8B@\ĸJCu@0YL'6ȁ"Wp˞/?C"% bʅt/g\Q1*‹10x+r[afc+KV7ַnݾw΃ͭW\Z061ft6?493wҕ[t#v./]>~tvvt{!HBrd`eG1{( -/Db   J)r, ǃ lDUpz&;@j`xdxt>fCC}^p/ WbMv8D}k_/zѣG=zknXR,$WaM"yҹOLLL{",XcSCÑxGN -w:įbDAXU@u}}@򫖶v<-" !p[ίdE7L^P<",%e/ -rb3R-w#jlk 4744V*jj+*J+*ϕW[^Q̊]«jUY X}cm5(A`ڡ h<O0AI[]ڦ^Y=՘B(s5(Ul55}i+l ۹"R; E(̞sO9Ye7HU!t;21*HO"R>z8Uj[3+Igl_@*'TT>EE?IJ$ҪO.RXjp##F'&/,@lq@}: t%gϝ+.++)+E5Ձz57!-"T-X ra rӇFw"n_!Š.!D0|*om$Ue -SNLoA-1~OlO5TSP TTC2*b倭jQ`_uM}c -mMb}]ds( EvE+]ɭhJVc2yկ\@jHTe=Ǭ(mŝZn b+<*JS2WY\)m_YՈe+HJAm+b+WS~rg&xtѓnݽ%Ә}PT&pxPVĞ`Ȁ['\%[ гMrPv iWIuw~_z_?PM=Av[8xѣ_/dq=zѣG=zu7;ZP·,?rGȗ)]™YOC -k|j"XBɔilnn訨mh(8[RB~ .",//V]mCS -X`q, Wp"¾>ɯD -AR_R",WI#j$f*8fab  l 6wϼ9̾.a7\Ea}=aTǐ\VJ4]|=ٮ38#:j5:!V>rEjU Si%7#TFFLRRUDT/m}@^a*6uo!, µbOŻUVYi& O[x{M4DYI%0aɎޣaM%pEh/Yʰ'@`3(𫔓-VVQ -/ oN>6Lf$#Ss+ר'x[w`pdl2dvy}='=קfٷ86AVI'˱UDn ]DHΗ Fb0&[]a[07aSLa抰ñ|4GkDOolqɏ~{]/Ү{j W{Po>v;wyׯs*9W-R\DX^]M>BGZBӎvί[mPs{O-B`5H!1+%|%"XEŠ郒cW7٧A 6㭈lCX$1vr&\\O[FƮFxjdLث[M҅5™=Qiʰ3W -ڂYi`Ɨr~RNrӟZ t=7UT0UѐxlnSH=?pۖ)*g{Pns3w)W2jzoʞHa(nrT @W~@y\N-'W"U# -}͘Iy*"Bbi).JbXS +f->2xB  {ʥ -@) - S/%LVPt r Iq GO>*KְٻWollݾu֭{7ϯMLdt6;0415}O>~zӛ[3 u;{$&;O[qZٹ -2Qp[#qVSOP-7,!1Bie6mV&3ʪ>=v^ܹscjǎWۿCǏթSJA=zѣG=z w]v~(8qKWf)7s#4).w"u`d{jMM-ml*{Eӧ?:+BXBX^2j`uuMu--U֮."A{_gP` XܻxV_ ?@v,ok+v w|Vw?s!{ZHܰz\` A8[[ eN%hL[6[%[E1mx@ە ƮpabWp 񑱉??jቓ@vĞ _#Hdz'Þqï~'O.W+RP=zѣG=l8QPXXxdkGʪ"ZX, 7bOSku"E89:1=0<K--5ujji.)-ԗ)*"XįB(U);%e}|@]M}C-,"jC «nv# ->!,JaEa ax;JœtVd\XFBTU\d7g|#ؓ9A ~UOh^agb ꪳWj!xKH\ &vWQZÛ*|23Jʛ{|)9}@ǿoD};Ty,5OU5YydʣX)DU^ϫ*tQT$JS5R kwΤgY']Cd0)߬H9LI!B!x|SXR,| U*.>-@dM5mAT${,;t@ē$e8">}"Wg٣%e*( -amS3;j$ V{gKg' AljU{E}UC B P;hǯ- E),ݹbA,_zqd>^s'CMf܈$ϊ4a m퐼+^J\]\Aj(aA+k:)\JЧl\RVuUeE09/R{j+[AX*ʻ&dAOZ‚''TWVzJ->Y$/Ue8.%ʘJ⅀T:mzPTQE.W|?Ur! WcJ^Ѯ\ao)TIB*x]CQ\Ē̕%M$Kv\^$:_WrHiE +r[œv,J !,(ZBliҹɩٕWݼq{ͭ;׮\Z0:>vSN&70<3v֝;=|;nݹ7>x/0pg/b -ROVpBD_8.TR5ēsl -VȬ|[!Kf;q +dW5:?4\UwXٻw^>v^i+ -\yUX&x(coEG=zѣGv8q7zcEWaY\JH83/"X r(Ekk;;ZʪJ>.. -3EgPlII.",*+;WQQ^YU@NFښۛ:Wyϗ{k>{UmytţN9+~ȷyIY`!sVDxX։ePr%&+f!cUJeIle`a?Ax&11Vxv&] -:QUU6) `I. ;d]$6ᛂK`R.4aLntljan޼ug[.ONes);f&fW/.칁^\Q -Bx_zQdVcX!U(a&(pe -V&`40+! ?g?ۿ8t[ɒ$Wbo8xhAA9_bWd=zѣG=zl?}[G7.^:<Ҝ n~E.9E'L#X MҊ%%g_>klz[Kأee%*E5uu5 fBXMmMj!,aU'hQX;-BoUڗP]R%)!Dr2yO3yʕuo kE+Pm*UAۓˠyd70cq \RaɵM4I․D -Oq߃S=,+ W%$§4JAWe:dexB*G 4 -q?tH'eJ]vͭ;[oZtufvpNfxd|q>aĒ]PĨ5CINo/ CaV8HNUATĴ%$L$HQ+^&5.^Dɕ vv*h6ͲOջ}i﫠Z>n\ܵ W O<曥*+_~9֣G=zѣG)[oڶraGq!x^,`Q gٙX0ihni9W^V]WW+.-=?:sBn?"aQɹ -!#X- `aj _t!D0vc -|<(W_IE(Z+Q&Q .yt~^HdqUU;%WWYx+z =r5 U?ᩔ'#O -}uDW̯)UKeTw,%<_]-Y,Ω,%Ueyu?_=lT)*Ws]ymE`%D%JT OH #M -U@Cd -PT#R3W1ev$ e+v,+兲U᷏X -rY 3.8{!B7;]yE@W HeU,J-D&ZE+(]ܻI4 &`C_:?<95v͍M nlݹru}qiudl {޿O>yvᓭ;WM6p=82mKrVhh`"+;:i -i7ql&7004R^i+ b]Hv`~'N|v֩SuJ=zѣG=?G - ]["XK3 dZ.YRX 䴓  *+j+Ν;3>}@RӔ*.>[r"X5@}M,"o~X:Z;d=-B[z;q_iF?YH/FBEaqxt<"b.Zj:+.,Z1ク شXGʥe|<Pj|Evvk8?$\rjŏÃ^9IoTsM)M] _e&kM@?GLyu5v{!z]ܾC#P[G0H>vzzmxT-dWR0AvmEعUg7!mbv:$1Znl?8ï2(j%WvC[ܵkk=λ]ԣG=zѣGw?˯rɣonm}kP~<,kVfɅ5 "]3Ccd\YYU PU(.-$WΐȽs$*.++* T564577ȝ"Xjl -vtF?vP~!bWdBT!f<%L;bQ$uBOFu*Ԣ7i}&_QqOM^Д -N58,Dj pT^9?\{Uj3JfJQRK䠼T^1[zL{@SD=Iu -CP$٪J*kWWWZ(WwI*տ4Y=FΖEBMU)V\Ö?e`7o^$MDAS!W0\&y O,.uAy-CxG:RtR$ rq{ (A`e%,P=+ y GYM,(df._ V;7/][[>~v$US Zey*F)Jd,o`V (,`U@bV -Q%[ٲ65ÇDvB<6u*.D\ [QP6H簢AڸV~)t''@) Wb5!V B*G`o Hߴ -\!xŁ+\u)OO$Zi>k׮ollܺssk +#6a뛷; - R`gEVvU pp +&f>vvˣV[Aώ}TlгOٴxhhjяzA'gf߽g.άvBpk/|eQ)=zѣG=z#G]ten W,b#X . hNCpjbzfxtlѤ]&+UxW^ٓBxm*%f\L,}+u\ST?WWҲ>Z)%6 J%NJW2T^CP#I򍁮?D,5XYR\c%Ӏ^J",^㰈+u&]=eY2[#ki+\!b(cgdASJ&& 5M@XV4n@D&P,ȯ̔k "M'O/.=;7\:>1 [r<}GO?ͭ/]鋴utvJv - -끄[hdۊ2WQ\)HmA -_n =2W$Q+:wFοaGX9zIKe,#%Vr(jqM('TdCfuo9 - xŨw@X~feq6 Bx08rKU$'(h-VՊK3ZvŊ*6xO0Kbvf'I+iN:7<21t7nnfu[MwIgG'_Xغs>}쳇mݾ{u4Z;:@f>PT -0a(؝le*mAO씶6Sp,;FnnƓ]|xW/PV*( Q+?ЁO:s#DYjR -AU[{"_uvt E.p-X!_(%V6իԥ_RWD$Ď9A|~C~GQKrRꪾMl<}yesS -C^r"/2'VF&Dt*JH[,c((>: >S]DzVIܤ@Ut !`u5r%QV-1a%t>+BR)e T]G*Ibæčpܠz Od xfn#a_A2_q:Ⱦ -7)aaD*3N%&ohQOЅxvr2#3y{cεՋWffF7fF_yGO?}o?νW-,;\Ww_K{ V`•!Iy -JSj[\j@PY"ToN*LP)?%VV<%B~ex z:O9VxY!]BGUSJy'iIG~I&倨Rˀ)["=i8"~Vt˾5 pE+ _*dGq[Y*5~@H[ -yB -bK` ñ]EG0m3861zƭo\[:;4422-74:3x{o?t֝ŕաщv=!p(XE`q# --V_ )-=ACKz+vMn+vJg2CTV׿}^ٱVYeOp箝;@ʾ$XG_hѣG=zѣz`'?[^]Ě]kifuXKš33?%-XƧfٯQ=pm}}]CCGWgM}#XE**5!, b ~U\,J V-тhnaS[[sG(:= {? ,"!P$v0i/$܉7 -B 7"1Qs1 j䈢#Հg G}>v\GDWz['}Sm?U=!lJu[OlkrQ`@t^Jaya* 704M]WTHKZTI99bEd"WRZȯbAQB\Uge reEE -Ҫ(V>3bvV? d_2{Ȱm52>3zҵ7o޺q3e3+7o'=>-vutbʴ=H{g7 "BU/Œ`,QV" ^` ꔴU - 0+W(5X)k\H/8/+Eo{Ϯ=P};vdݿo~v:LFw9*G=zѣG~o-8VxD"y5"EPFd -s'g&&gF'&VݶvWTWVЂעBxZVJJ@UVv,XU55ՁjXDv.Bnqǃ-ž>La*BU/z",U8K,X&~(pG)o_IB>~+ ~]\I`KIeZ=SIr3V^*%Tٗs%:@m -4y//ί|]Us_4Qu%z@'+nǬD)vV%ix+N(OJz+5’`"y*RHM(^ -SXEACƮ犛Q~eQU0z$0vKTx0nq=nFbF8b2i}azX46Af?֮\]'1>丹tdlrqeV=~O߲ əT:':!pE;zv[ -*nV)V^C0nM J%WC=qۯyw^x񅝻v-${$k+`o۷o,(,ï~U:?{WI=zѣG=z7|Ç .akayE",2CZ\>3-BrONLό}rjjf6;0j::"†ʚⲲ=;+lqIQE*ʰEXVS"Xm-j  nς#X}`(0WQRZ۱J܉+CKĀ{ -,¦ (pZ'G*LEdm=-f`4[TJ-Rû@,ARB7!d$jP -cW&.zu%ὒщ ._~s}cͭKW/.Mُ+׶`+ \=xtlPvZ}&AJPU -,[edsk|K+(ص{ώ;'ڽKv|e^;p '_'O_ѣG=z/NL-9paq5;?9=+#Xz]`]}}yUUM;w+>};3g!,WdE5fR`5CCX -!y,XBs^= Ld={(U{ -[iΕ**89Y=SF\DZy\**3kUѺW3jJ[ʕ2U%QtKX'n]ӻUʀ$h3hz*xKE??M슏=I%6@u-I:R,;!Cf2+[ZٕOTU”@ W @KxJ`8nB<ڮ -`=W"mEb+JX@x3nH pV(_Qn"AU:+L+?82=v^rL&73KW6nݽɓO>{`'>]߼=2>7P/ w* -w[ -W8E\QIUAUFPx=b_oci"WG'؛+Gځ X>v-b+zu߾>QV O?=zѣG=zN̟g'8t=ؽraMDeߒ}+",&H8i+EZ[[;a!$u,XOc4aڽ*E@-X܁_5776){7_AwRT~EmXlJH T! 'ů"G Ao{+2%9iJ~x2);tJ?N2"Q WW\UR4UtHYb-(PҊa9PO_7LVvY``|`HbJD M\$c/+_FEX4 4ؓ*+:v:olw#8g^V{=f%K$9p:|'S˟=zѣG=z~[o/,E? E|^,  [th!'78~ 4454tuue㢢Ξ "XJ+*UڦzXD.,AsVogU! -PDyCX-%U6xEBB(WGYPBƎa;Ln!aPZ2v/Xȵq'2Jm࢔"wUkm6ue"rG)/d+pS&OQ -d=~7Sj[v;r-K|dZ[N|*~ %TtA+[ Y"UE}@V\l+me -z( [&ōBdA CI[@C`+s=a * TAY~3B5 2,' m؊{#_Xv[׷._[_ٿ1}3 -,_qZ)mg<[|=? upo(baPE⽑h_-`]?>=ZCPG|  3!?-=fen?Ğ`,aW\_ߺuꍥ cSc?vtvbjv>zɓO?#+nܺ;2>w{{ý}@0}D_XTcPd c*ǃ+z I2}t9+LFVpḎ1pҙ3g/BZ%V>7;.=xPSNطߗ?O~ӣG=zѣG?go} 9`d|r"E _-r~E:,u#!/\p( ԃ3 4ԗVT44VTU~\\|gϞVEJK"ʲJ- 5X${[WP!"`7寺H䮈ؑvvm),ygL eI~G V?N^)IڻRYl<#9r=92v'z),ū|<` -U*@GqeNu1WD_) - V+Kѭ`X(LVMR1ӷ7VYYv%oeʊ --y+*L=yuaXU9bbI *Eh-j 1WpHA]z+Ih{`LRZ**\{fOڴAn>Al{KX߼qs굛/\L˱Rѱյ>٧>7}råդiuyC01^1j!Yq!iHrEd"z(&)fW Jm8]鬓βt#={+*RvW^Zw{OT A=zѣG=z+Bv/"_ KHjf@'A>:Iuvm:r !Ⲳs"ڪThjhmkn %Uw[ZDY1~uO=q] [;uRJ/rSy^wtrEoW_Dg}reʷ0&EucV -_5V&;"Kle9+J'D+{J[剭6 - \y+j('A(BnPA&~齇/_?4 /M RZ$rE'mA \ Ya*4c9\̎k 2W3q -X"+(xwܕGٻ'U{_}ѣ=zѣG=z_=~ȱc \ -]Z҅,/8EP>=393/"X u ]=u ˹lq`YU1%,U"#~T ,nq]"۞^Haalϓ_IpUB _2BZRN6/CV -\  EM]])9+?K[e*:q*(PyH,S1\I~J=D&0YP$+Ty9B`ŕVV:.$V<_)1+pGJMXYR%$*YHwzi+U$ʛ}f{LXbW +r!J`73EHl † wn 9Oya'ЗiqVD(B#8S$le{+i8pkW_qڥk KSn߰'|~٧<b?؟Kv.fzCR0 Ud[R@b`1pe(2v -\k[Y$%AL0McU=>Zqi7[/ҋ/[T[qx+' Pܱ݃=·~[ѣG=zѣ?qKS(]@f -)<2#֢E8.ɩ vJkh,(EoD>..X VmCcmSSa=+_" "6r)JhFY~c[d$:Cto93 90Oys=ʚ:gպ]]{m]ݴBh>Pi#XNqA+ގA,hY"XgoYB`,d6"^EmA^$d\ _ "PHxdjez%l+kPSr*˰bpeBX_c8*I(+O%': B#_Ei.˃ḹhYEx5pFv8*GȧV#&jcFuaȶ`x˳.*YEebȝR8kjfrf"X765AfIA`UT#X_!ŝyB ,Ab,;!"v??x-Xx&a,(4(?CD'Gr[Q -+ΈU4mde(R/?i~0g++J$VmSYU'%^liUE٪#U*xVzXKgK' aO%VwȎ" -}-Caӿ -%AFhe@_<\WTx,И`CVؘ;B^ 9+ }ܧ!v(h ba´4h02CsK'x/q=3842X230<=sқowk7o_yʵ`8cs8=~ +0sE A~jEc - V,mxqM9+Aey*N8ld[qzpH ;z^xO9ckwϞ1ABލn b=#Gn*JIIIIIIIIIII)K4D ɿB th5=8=K,y%SvG]CCwoᨪihhhm5.EXV4Ax(X%e"{ C-ro )X6[{ #XB1nl0 t\,fC -!ϱ -n3SX:L'@0,2WfgЌ`Q$*T3m Y@k0'H+Jy*ӶvL/+ƺ,Cm8ŤU 6_PS#ұn -!#Y;f*q('X*mb@Pz1Jj P [xzV(UdXnBVg%*hL·@TToѴVj`י aṵ̄b0+8ƛHJwAIs{1y僌,Eq&C3 _:weƧV6^~u߼u֝~p//G`vΕF Y &­FxbK6" Ft0Ǝ2Q_V^wlNn#>{}V o]99Ƶ} ܪYyxC.0Ε#  a[]7^NN/ml\<K+X<OfG.]7o߸u[l30EhRЍ{>I>$ߗ2[z0J! AY^ȶ"* 'JԄ񀺆Ɵ/o>|~׮]2 -ܪ=OPx999oyJٕy>z}ck,%ad]bcZspfZ#w_^kw:kjZ UZQQRVv4A8DXRQQQ]SYS[UˆZL+H#XHqsaogEBL.HAs2I9IRiB+=[-TJ^ [*٪z ZTGb2(]Hu1jV3*(qd YEZĚbUL7Ȱ@t dT+K7l+, Ҫ 3|A3^CC`eZXx^X,EtɰAeH%R#Z¶V.Oqp8B:s57Axjpxljf~ϝiܥյ际86Fw.\zw\qݸu+W6G'7. (af٧aQgEl+YaCP|W Ex -³xVɴq'R>'O$ - -*&~f㪲CSŠFPRO&ڂ>iLu *bBVۊ,2խ'*BSY3a@2h,y%mæsy1U` Ic*`] -\eU:YBtqя~f*ӞY[^Fu؉jDt7AV`$`,?0<15u~s66/=Dx+׮݀Սw?qŗF'фO :\^w -{Rdx/\B!J R -V4&(0Ȱ3btf`Wz|;gzz=xN,Ez{;wбǟsVoSO>_p9o޸E[w|= $Oz58=>C"uy\5uuMuue/blII ʌ**^_PJ n`{W % 4ثǐBn)%0XJP Wt-exyVҶHXYb+^ ޙj+MdG+*%Tczuqij2VULXU"I%ṳ̄,* hqX -TdU1*l^ ΕV_=(EbO6BrX0DC{VVtJ[ nzYCXk7=0;(eBaBe#t#sŮy[0@@ "=L#A . ==?8&CXpnqzo\1;o޹z楗^0;b%A'L<zdK̶b0v@reŮs%M*TƸMҩx"bqɗC8xs w>9r@TRRRRRRRRRRRs'?ɉyte.!`-"g"gE838<6#-M "Xe_A'Y -#X -Mj!n" fQЉBE),],U@jO^ _!Գ&cqK.%T -’M-?W)Eo{SVVKxv* FE=0%GEݪ(rU\cªJH6P\1~$ (Nq,MeWY0DHv@ b%Pl2OR[jJpEV΂X*\>MOE+ A;]`U8zO++`x+t]?M0A7C1x>=Tfplbzaqucz;7/O%P8O'g_|m_yk7ns+Z0js)16>XZ "*T0Q$ bUUd gK- =qǎD*iT<  ut|xcxVs%V99v29w'N;~xR-((PgQRRRRRRRRRRRWDO9ٳ.  YX‚: -WKR *3sӳTkh.W]cCeMMcKKummiEy1zV/=b1JKUZYU^U]VU] چh4ŝWDbw䯸e>?D*@ uY1>AA>nB%|zJ BNHF8t=%V!ڠ9 hoW*nxVbFV4^UQaRQO0N@?Qم1Exy5m+ n=s]:115 ЖՍWx]ym( ^q]O_{]4b4 ԂĶ" <+ZԂaAP4d l@ǒ -yQ[!x1U:d2[_P] -"rss|0?|BOWQRRRRRRRRRRR֟G'ٯ,or W -űWпfB8=01=;;0_9}[`*3EGt,BV1QMZ教+1DhܓnRk%y=P4H}`,k.0Y+ZfndFɣA3ۂ¡!HAYcdw"Si9CRȊӮDIPWؘ [r:̐p¶꟎xvaJi: 9i._ڂX Do9.@\RC(jќ.\ ɫG`7~6'GO -ʃz8MOMÞ]\]ߚ]DH<_\k~pVW>koNL͹_dwͫ-wJ8Wt=A  V[8?J " ɌXĶ`:$pg}c׿]rس8%&w?a:W2^w$yZZ,:yRCIIIIIIIIIII~_=~ԓ9h^mrp"!  -#\\]X;LNO-$3NDz{nW}cCUm]CKkummyee!ᰨHXRQQVYU^] `ut`[B`9p']L~%e]C @O+s#: -r]"\UJfJ[!+) -ĶPW.1 {'OeW,v+ƶ!+tI+~gtpBQˌ`to|1J! -!V!Ȫt't,rWӋ+$+r:g[ᖥ_ x'N -d -ꄱR+mD+и}@XQ -\pzN{AE=L bOpaqeccgŭ۳K#D& ~}{oݹrg;=s|PDƭ ]:vC4#Nj 4 -?-!ZQ -Vp q/ \N@Z&$ Fb'${"I86,5!+䁛T+ 3JxVZP= 0+i= -Yu{ -Vܛ# cWV9yV.9?ڢbUX^Xttc=s"^LQO 2Qڊã6V;KkcSF6_띫o޼}7n߽r[﾿}bHp<~"ӭȶ -QCl +C6#"&iO0 HΕ)V'Rp4 ?/ySc?.㭲+՞{*(,ϐ9O<RRRRRRRRRRRRR?fgP녳 -,H\("XXEH f&gf447U6UחVTP,W+ª,67 )XE"ܑ wZrfXd^A+&1n1bJ$e3J?pJ+`ʌc.HA nAZX*$ᆕ@R*(b+V`\}*P*xޥc{.VӌMdѮ|H3z gHvfY l+0(WGNmAcUAƹr A"Y:eX. cWte; )\Q -9Ns W>V^|pO0=p |pz@G㩁wcsōKS'嵗^}@8n~.9.~ -Ԃbl+ՑgH*ja+ qŀ?$"U4V#I0*;p` ?]}w{q W{!Wf{]$vvxV̹R* CV|.0lVt`ĂagYJr]+h!$(E L$%A#嬄I&lOtՊyYbY,HOQ -T^ODOXnY`+HXV> T+YteW7V'׌P$YX\]ڹuuY?dpzvŗy[wn߽G7n}+_y}ƒvgO?3S -JJJJJJJJJJJJ7SO=u4PNzų;.llA aAKK,,rg,`/L/nO}SSGwijmmjk/A:8wVVVUU޾n\!$~;UA`QsNK0@-nXW a$fH((>d0۹tfVI١"lvΪb2`, rUB JY*Nb=@2dzL"Zފ;TR4eXŠr; -@QxG .sůJD yfΊ~0(Ӑ@WҋPc_! -!HV~1 ΕgwzɰN0W mE`(HMbOpsյ͙šdxəoݺ{ʵ/fШsƅ#N% =@+NXV@"*d^^ıOe۪pxnizkG_y?+¶ʅE'rswxݞ=χOVSPRRRRRRRRRRR/|EE|xdc#X8w*c knX"\[3^Fc== MMW][[TTUS22EHD(uDqokl'{W[WWg_ {|eZV"+An9-+ٿ)JCk\8%|VRVm\, ~Ɖ+JnXUlaiXUb+lQy"g*\ n=@= ks+ƒF&_W^{oܼso;Ĕ9nÞ1|i+Ӏ V1ŒT*Ü i+ȳO'CU"1Nf`ppxxUK[ï#G> p+:n=gG=- ()))))))))))[~3_SNmg}se}kE9ԝpX ˫++徼<,waMO/]^oSsKgwwpSKsUmmCssM]]`-[jZ5X̆;zzL/_1{*`fm3],AL^ay&RB`Ukg -ɵA3sŗY*{W7T#[O4o%cV ZXC%b=P8ٿYcWr%dJŠH@ -)|v)s%VP8Ů-HG|(4'ٌ9ʼ& -,ZsbU_+ WEi%m+A'Vb9]r[[' -OSc@ׯP$Y\^[:OTətP4'SC#ck/]~޸}νyֹ S3sDڜ.ߋe!H+?31vŻP8g@n[%.pI` -$Ůl+<04k g?=y#r1Jevs޽{;_P`m~򼠒ҿ y邢Ç6] ky),^$D+#\"!t0iln;VEuuYEEqi gϾX+-ŠR`UV!Ž(Xjnool -aW6;W6kaG{صfux`$daV*WiY=b8u%WI -\,IMK[1L^lgE `VO[̴nxVVoJ. CC\MM*mbvt-u%j> O% -(V$T{{p¿b}@ڠ; Q}@V@Pi+8ͮC2nQ+^tzSц!VHJudG)  Cx*=8:>=7u~c{:53?0'[{?ƭ ^6Lo-upQ =A/ mIQƶ -G!#z<lQIRD:J`d*.J_3tĴ7W}>#90(VV(}8zyF<'|%%%%%%%%%%%w{E:rXyeՍmbaazYZ-E]BrRf"X ].`5,|Sp(X匂UW]&jDl^'0 @0 tN?):IT(ək7oݽwGw?RHE.$"zV? Dqk2؍o._H[y!xpQ6wDk/n0(XX,j1,`ybz&ww767;\ΞުƊjw<ťe%e3ڛ;Z:;[:Bh BqJH,EEZbаmjmig:`5UT,AQΆ1 whvvzN_?`aiVߙMq-+,˃t J$bRrOPdr;&,/`aݪ7>F>b 1Ǐ XUܛb6YE]T> #>&l~̈́UHDC GiV5 ` 4_!+°C[)i-@b[y^㷃V.rnwP7p@Zٜ؍{\2ވQ ј`X?P$ O/,k KkөEãƯW^{ʇo7o߽+C#z(ӂdaQC*z|_Ȱ%A :[ VxхɭJ؀` -OOV̶Jgpxlbʸų*:yrnF#Ut :tiuBQٕSO9zo;3U6}WZ.ܗ15 w`O./NNφcN`]Ξʚ:1DH'Z ;ѫ,T8Jt-ɼb+ tE?B?$ Yyޔ*U~Tv YnZXހɪr= +el>ێfmx+HbwA-I2#c3sK+;k|:31~$Tfupw޻rwsuoko(1+ҊYP rK*Ν+ H+WgGa*, rz+h*l=0I_I*YyyV΂U`U1*1`+o@V `v0@uN򣄑x _IY,aoy -bT~FV\8<ĶB -XXH=A`g =A7BXrphtjfnqyum}{}sgemsfvqph,Kjp,:wͷƭ[w߽lonlŒ#';Y " - @*ȹ - -xـ h"bH`,*$0v6#fl4O`bx#?+,,۷Mx+k*rrwG:TPh!\Z_TRRRRRRRRRRRR' -?h^np# X&}\,򯖐CK+˸E4əY"tzmچ斆 -`P\lZX",aY%T+BX_SV6wvvtuwz 岹v vA|D0t>(!S23d^%6Q2YsxVEUqי.VHb[+3Xo#kE1W Pѯ B¿2~ -%6xWv07 - 4\=̉m[ d*l("bQ.l se+'-q7Tf= +0."qT,zѶA-'ߞunmknaetl2p4>4:o_v{w$xG7n߽kC#rm/8ǯu #CV0Ķoŗk] P٣x*q Skk{Wnnmkhi.,.-}YEX\\+Hbw`57хկ,iiV,˃(` Jʊ`IfK^2. h1*b( yJX7PVQ7RJi1BkG _п")+^dف$:a%\H3G'0 f[g+s׹IEuYL45 +U2@&XgC+Ī V eˢA}l+COtlrvXY]Z\ZMgh(V.h[ݿy[os׼H[!B%ZX~T+[ў`$ -Y*fmMt WH" U)jLcԪN 3044:kwg^[1 -/+[Aj.z-,*zb¿뿦g?[IIIIIIIIIIIMgϞ5nO?䉂~kdAבN)UH<   ߿==M-vnoioh)()+{W`^UqJ++K`GꛚڱBi86ɒ *,K2=(C+J A"#j@DZEz @ -Y1U\YIlX"bj?; - ȕxыuV`XV>"Ǐ]ypCHV|a -`@m3W4rQkYo@C dEy@nB!mVNOE+\yE8HnҰG߃h{ K+k[kۋ+k3C#xRFb yʍ[wW>}b46ޑh|TK@㞀[HXaA;wܰB0;ƒ\xhc$ȢV1[3EbWLSTfWzSO?K°DvU0w!=Сcǎ3=Axv%%%%%%%%%%%%foskkU]]Sk[u}}yeeIY9ϖ -aI& -Vu]=V[[[j ¾CW -aE &D`q9WfJIAl -AU *IV0"Xq8k=.Z4DJ<=NupV*fL zD > p/ R76­yL'ϊ]b=@U· I p - +$Uv=JU!gÐUP~|,|dTv!C+O'(:{~'81e͙щx2 -Ǣow֝?'4&xڍW^{ktbxk=Ƈ Ue[jŐVҋX JBZ(P٣ j"gEÂ4N=Tz O;7s}󟗣VYUnP. -Vw>wq!xq䬤SN?QPg[,w)Ō, -bAj )Xp)q;53gtv`U]SSVYYRZbq1KJKJKEXV`U7567Ž}pw\?pȿzXlJ#vg' uΠ/,,&#&_=e!YAm Z8W@XmQ+ 2 XAi=Dc[0dD -Jb x+$ +Vhdi^ WVQDN;5pȘb+_h Txο -p,+Vmw`cvs~zVQc=A{ã3sK+k+ks +㓳fK_ywtO}^\z8c7>BmA2ZX@ 4z_jhlP,3jE`8WJAU0Qt`"oCTrs؛Ya*>r䴵JJJJJJJJJJJJJFEE_-[`aل[ bm}i],ag+`.,/{|ƖNRSⲲ!yU&K URQ R 掎޾ngbW_= %e巛B&tɌʂg۹EIoy%#ٵhEE`'^%YJDTY&\Ε`X!%(je5$H9+_LSa,➠`UE/b4ahLg +xס!O+ A,vxѡB -sV6W<+;ୈN#1^%Ҹ'8:15?8BX"?93w|x{}zOڍ[o΅Dzxv bnصCxuTbQ g%AY!*=A_Ƴ0|%V \dlT:lP(s/-kUÂuة*VA0^AٿYXJIHv١ˆZP2Xl<҈s>Ǯ8Jws;To0Μ+fR᭹' { -N~N -TrShCхɝ+ VgKAthRR^smkp,"V#T&KD 7޼vֽӏ>ǻ?~ _]X&R}0ʨ ` -=+30 + R -A`0¨HbOme\`ΊV !)X\]CӟS W{dU֞ ҾgރyyEE/}i)WIIIIIIIIIIIIIeeeS\X^]YۖZZ -#Xfpemai"X`a//L-D޾&p9+k뛚[!%*T,.-3G`A)u uƿjkkVM䯰BhR?#mkYf;$W(XQk Ev\=*a^E*ٿL{8W~-n/hI +9v +b0vMY 5EPXCRӉs`$%Ch^`fa,< #:#\YVd+ -؊ֈj>[͆ ZUY!{ ƮQ -*VFYA -VT dvY-\Ëda9r"u -Vh4'0Fǧf斖׍թ(Ə7~w?O0p?щh"mۧ%`]wVTD0{ꁡhBVc\clI41ge#${"Cટ@pdlblb3gv>\G -iLVh[mm}رx _& -skP$\XTgvayed| a/o(jhmmh.)(.)YaaUTP(-Mp{.8J7@#2BvS -!/ 9¬*4+ @V\qÊ^Թ[ -u/]rHX I>N+7YYVhX<cvMhXW>N|S?Slz7`':/&V6瀄c[9Yr^!_SC Fեťթh< G֫y;>"8o*|ZÅ~?¾p(g! iEKƋA#XC[0sV)È%ȫ$0W2¶JeG'ftiYw~'//Gمa*fΕ89={3'G'U%%%%%%%%%%%%qUTTַ - -N:=;s̫.!bm,/0;pp"XLp\^OUmMMCCcK[UmmiyEiyY2$W@q -a]}]SSS{{K'G;62G',,$/$J+a`ʼndm &EO\A+.Ƿ$V1XE*ȯ󯂬VC8WYA -'y -WdR1$YWfU##ܹ2.|XDyS㣁,y%A1hLмb |ʎFzCV;i7*rUcn=nf#Sh<584653?:38<:Hfh85~/W>uO>;?~̀) ߞV`a!] F Vӳ2Vtx+Yű$U! -WcO[Q+㖢V \Aj`pxlbz|rg~kǏߵ :{R=wKT]vطy?vOU *))))))))))))+3gx~]~5_q RK.pjiyv#X+҃Mm>-UVYRXQUUC/ - KK++K*+ª7e86*bIi+_-twE-[6!TcuӞ/&3( -h^Iɫ)vřWXEÂYPPaAB] h;Z>+3j%%|!hYE[IhXingH+k$b+Jq$Wb7Ml+VDkL[:pؕΗm./D(mew`+l:zz}^e[!` -~ `xlrfv~yiymie}n~ilb: cA ^z+7o߽ѧ'חV׌G,xPE - -E̹JCUQb:FB8[ F)BǒJqU&H'Tf AQ H2>9W={=kMn<ʞkWNNn* |aC ._rpv-B -_ApnZr>;9 kݥT:.׭i6^!lj:u SXP!dB>=F#"ȿBT!\+Nw_maEdW5#*)Wi,(kt ->j|Ѣf%A`btDe•V57V `9!9jU3U{J`vo`Mmv7ञ >1V2hd݃vv"\U~X dgN +:\DTwDV |?82~lI esMla^zvS. ]]H-`cV0\uqUHtWK `;]*jhW1}0 6dXUV~ "UUys;WX-b0"W}R -/<^k`VS"{'  VaDҊzv-H@``  -۸[iRdwA kzy&y =;151>C#B9H}pxŕ7}Oo|PoO?|Ro?9cDHbЂ`5mp@VibȧJ3 ɼP3 ɹ*`I͕xPbW u??Zf ѹL'm+v[wEBV¹w5֞~oe`ͮ*.s kFJa!}͜97u"X_OcvJ[f{3ZX'O>@jmnkkhW(:{n4nu:. :k"Xrsê%ȹHsJ"F Ay`$BgՎg|+xKQ ƿ>@BU`@I.Lbe•<7,JR\d%Q٫!vUeP -HV^".:|tEhin Vrpĺ(i[v`X9LjSXri.{G] ñT&W?3qnbrRo_zh,Y*/[_ܾ ]v_3@-|_QFH+#h[GrO0N+"\A -4Rl+L[oUUz9dgѹ*k/lczVUm -z@6m޵no@V #>Ğ}K/C.!š]XZXsܿA; š^A,Ts7b;ܡEޡPtuwjQo$M!|{%u WW*=Tw+u>JCk&(O%ūx*\ _"T(Z}x`l8U%8C^] H`+ VUaRyI`XUi%RD:OgآIgyaVgz Xʗzt\Otݺ K ʙs~=8(]HHHHHHHHHHHHWP953A'M FIѤi}fkS(Uek{Gsk+`W-[ZZ[;:]]]*Jӛ,FlwXnۃɼrWw ÒW<YhQJJX;9WU܇FʆγU~_j j+^S dLk8ɪֹ -H+y Y4OP2B -jrzxVnV[5";&؁-뀱rmNpزZ='oV~+s*L?846~VCb%FbD2?0;o_[wu>W_?39&,6xTs 0T|0<$UqɞKQ$F8:¨Uͪd{X)*\1KXmΟ?74B5kdjmCȶ";l۾X\Я9r?֮w?/]]XtAv䡄h^#XX$š={"X@tK[V[_ T:`Z+DYv_uuu)UJ pwX.mx^,w3-E'>G'RIS%{2gǫ+ɶ"f4|˒m+#+^b>(WUk̫U+we/KBA -_WǮnɰ]f YXDbz Nڜn;l.Z.]V V6w0lNYY촛pEΕ Yy!$\!=vy H<.*Ccgύ+l$[^yO>yέo߽?ߜ]XKJHbs +N# -Q<4F0-84R0&3'*JU@UP΂m[g)OٗG KV@^֖-[?swAVBBBBBBBBBBBBB!7x K.DK)řE`BEsg&&5@j(X -E(Xm4W_5毜ܿ!WP!€'9f2WIDbTvUWJüO[GOg5klmǿWP6oޱs/܄clwd:rEŚq$GH-Br 'ϝ>{n:_*;=Fp:}Jh;:ji9 w)ԄNZ f,EBdx{ ŝ򉄫Wr̫j -'8T+`A*UJ4pANk\lH5jf&U(T5[hU=F -JH| Aɹ>7jCUX̄)~^'8W>:W0@{91j%Urg%-l"ٍ&-nasE=Aj=~)y|֡Cx:/WL972zo(+h<GƖ.oܼuޝ{_޾%;/OĒ #pxu 5Vjmڴu=ַotxA!!!!!!!!!!!!!H76{V.-]X /BuYX`aa -kj|X$j -.Kdl -ak멦fNjnnnmmiogQtq -2B^!BūS9WpXrvaJT+B(W6+9pd(jETv(VB*ˀ5Kb[`U -0V0Q٫?$٫%A)jU^n^9~JSJn]6^t@b[AVL6~ <;zY`[eEn HT @O\Od"D2fW^{ݼuν/{Ï/_vfr*_uaY9I!+Z"*Ey*95S(:=^Zms8`mm'NSy4_tj+Bʎ ɹ;}*J_d*$NSN,wٶJ!P3g0Vo%zO0H`H(VRC0^5Lؕ7Jh &>@l+[\!+7WH+b; 16'C&22W0UƗӍx |V8ЃU,ƞٱ3cR%ʄx2]՗^yOn|q\_eb/K:rVP4e`UaJr Ye жJgeժrYesEJ[勽b1؏'O~ݞ=qnwϿ/[753_,ǒ`$yGʞ -xIiOFiv%Q'3QcObWo1\T-,).hS(GJe;YDy -+5vhGC4L篤^9m% -.Bx%v`'جDJCܳrTv/сn/lmN7opsewce -=+^4yv؂1n/{^'aPWBx2x޾T:CX:[?|鍷Ͽs/pރO>>D:^tm1 /b[z ūJs*L{4I0ɳ3&̞gs l^[f/kdP4򍧟޾cck֬0MDJ[I+[]vƍ[nݼem_B644?YBBBBBBBBBBBBBڷ޽'/]$Ex5EYaMBX2e4qa+Rutv78uts3~Sk[[R:Wvv>0dȥ  -uBvpjYXGyE8wthMKd%㫶!ȱWkC9W`U@j -2[ȳ`xWTB -Vh2 -HvZIrgE@XdϖL0@sUS9ϪPx(D- MfsGxgwۺmA!pƯ! o~Zvu7nڲu]أ?x])l+!!!!!!!!!!!!!Ըo[O[XZ +K,w/HEE8;陉i̍'zY VEk{;Wͧ[ZZZ]]]===`0-r]vh T؉se KvFy( +2||hCnSTIq)UC -2W钀YƮf[U!9?tI3e %QЭs% X9+AmN" -a%AY īFzVFhͲmI-P {~ qzo*2roY[t6t0~ܥ/G~~}{Qh d`z Wh<+2b@T&̀a0+ʞV), B*W`w\E -*+boxohD~Ӯݻnۆ&ժ:'fՎ;nGĺ={ğ#!!!!!!!!!!!!!3ϰkػC.]Y\^Y U"XX׶1,9`s4F]^J:Tj^V?.vtvv)*V7!e +W!/aɿo!edH"=+p|X,„v[18Ճ#4@P2d[IgXU#X> :SZ w~^ esy`+ǮX ;t;v :db%ț2`=ЀΕ`f;\ m-=7i1k9NϏ=Bptdd|dșJP&[ 3!S#;]s(m;5W  )d|H#z`2K 'F WQUP[4Lv!X`XU8W1_04660U%A9m%;WZ~Vvܵmzk( Ow`;~bz~ʥepla-},,bk -YdaMRkvvD"6Z! -ڝvGQkͭM-mmloPtuu+JFg0-fgee|&I=<嬱\< 6Tm -*q xQ+cW*Um σ*3W>($Ɓ]`չTv>IZc $HSht#!9~0C -, [lY!gţVue6\! W^?"8\Ē\7=3}R%Lq`\[xͷ>Vu>;uɉ&0P4DbOx -v^TM -;dVY!HWkvQ -K"|)UYKXskK B_3 -UBT$㯆Ъ"4I+`v묙*hAh J%Aڡ!++dulvBJKΕ Wh,\Y.'4C#T:WôxH/C@0Ϟz?A*bO>|j^xLiAI0a&9+2)¶`4Nrt 46!jO(v͗p`B*{o^,K_ؚ֯5$mAbsj=U׭[euul_4oO%Zջ-/9 "ʀ0&%&x%ŴPM -wC5`-ۊ篤قŒ_Bۊ7}ɝ$;_ITvt.>XPmNI A -l+ RJg0LAF?z0O }CL*.*}Ã#c#gFKL>Kэ/nߺs7oݹ篿Y?){ fEP$!9 - ` w2LLI@K;q`aXTYJ[ʎ=r%_#+HݏknXn/ \XA\} {_Wl7oj?껿ƽ CccW.QP^yh8 sZZr̹Y`!Vkw:"T =*]hiooS(߮bvnυA${ł8毼6ªcyG[6764,,@iaEļa+9|El+v'犻XRa 8 -1no*_^sEQ+\6VF$<*&Vܹe AmExv#(܈mAym7E0[w=j߾}oyIvEGZj]]R`Grw -)tNSnyy冂!XV60"XrUmp$*E -!8^-5"iI._[o۳__ڕZ}~O>\ظm?-_rqʅV.]e;#AX K`a-N/"ȝ&&S< "냑TRuvwyխTZ`2mt]n-`Ν+p\(`O0Of(vnU<'*cG2WڞjH{ &v + NmA'/$*;$V^ZvhA8Z$Aȿd3bI->:fr*Hu )a\rzn"T&_*  {3B$ -pX<]Oοz{}ko.,PG - -VK}WX*Hl' dDVR[PѰ*b -WV0C7804R,W.ϩ7c=V||5j4L]+۶mWf޽6}~= ;w˯JU5u^Mqdd]_.y/8¹鹉3S\l!+;{Wj4]JRVk`X6B~y~'F.2̖i;ȶ/נs4sj7Zmlv(` -yYU < $ q./mvNESllioStjAժ0|3fawNry|9]fbhvySHXn5fdf O+ %GG? -,pրۇH+ -VHbcCЉH%$;-h´41meqm%AJ3U%\Lzlv CP72jFH[!l{+J{ǎOlܴ5k m%{VUֱ;o޲u˖;v|!(  {7~AhJ;Ca J^{7`}tjMF6&-,Ghum;AKB0HcmE8KCx(`{8@at GZɶLfc4Ůp¢Wl./9تH ,[R A!X$ϊboΔ+Gx駷عyr+* y@Zƍ[m]W=|j[+BBBBBBBBBBBBBBZ/~Ѹoߞƒkr+uX.a¢ź,,.LͲ+V&g}NWg4鑱B1jZZz4Ѩ1FdBfwح6b1V^߭Vw[V*{==tQvtÙ"\ߥRhtJLrGŲ=V,bb -@v|>-`&NH+>-| `P -2W +JkbKg0n #`؅ .Yt;]eO$|\۪20\,e2H,h;5o][w}ս?է7nN:S# -T8`H<M4 ƞE*;4iE+%U>c -Vc'U^ʵ >Z޾Rhd̄Jɖ-[7nT c'պu k˖-;wbkxBرC|߅~[OӰw|{o -WWWP -VE,,uȇbg_`׏ -fR}g'TtkKJEJg0FbadbW4nG٦jdsg.gESVkUzhқzl& ('9QV+Vܼ;MrȰ0 ++݄Q+l& b 8IIH2H^{fjw<7vJfCh"/+re +)0Sؙ+/ǟ{ʀ?Ȟ9&8[x*AZŁjS*CZ*'0{Vh^2@bU&!0{6/i er^^PY7882^̏';wZ2TZZqӦ;w74رcwݞZ{CC Jge߷?լKr"Xb-_"d ʥKH :?85,vمd&kX|D"VvnnR`Y,b KTllPw47ws3P):١ٮ|-EOOJM),`a9'цY,0Uewb - +VUC0R7YU1fIY@vQ'HUrV@ʳ%e -J|rV`[h ,=r -eH^*W"{eV9\aVW_C*zցoڴy] w_g!!!!!!!!!!!!!S_w߾uuO=t ~e kE._%cPVš_r=jznx YR4077?J']]*Ne05jVVCJTtu+ͭmM-[N55<}'O7d&\ͧ[5hnimjmohS@KQk{:ޠ2d:a\JSBS -M*\xI7tF ҙh^meRjd[a"q{a?n/nƒlWl!OQ2+/ܻsq>F:YyT07UB&\eɹJJ0v -R%B70_R -l+b[3**+[g%O,`geo'O:>{YPOp}}c'O?y8NX!%YX@tW5Z= FHFL:xS#Pk ֛T:Rѩ eP7*AM- -VpƠk(e0[LV?.o@C=LbooeRo._%PD*38<~wmٺs};MSiEpT\Sd W ^*Kq \`{V)Э*3ʑ[UV%BsE ށ!`$~Ge7Tm+RMIp=V$v޴yΝ;8tHՉoЯ}97 ={3nEAXX',$_^_A - KO/,˗+^o 04g7nz/_*U {pR*OG)=ž _ Z,/ * WY"\YYex -F -gUe[%A!/W*SadoNg0_IjXmƍm>C¹Xr'w~Õ+W/]{i굕 Jxׇ.K >tav@XW^z`w;7;WC8(>sfK+*^ANttvk4JKRtutt48u`^?}/±c;v؉؉O8ƽS'N>y4[rKѣTt+3wn0ЛRu5qZN /egRΝݪ\JuRӭԨMChYpmb;./IlX,+l T.CH4Q(NNϾ?_~sp~[w42>%[Ţt89x:UV [=٪8V2sèU.S Y9:0FPȰ*b7 Eh8OLO~Y񍫇 * soٺuw]#G]THHHHHHHHHHHHHV~쪫{p{X敄úre&^Zma-,a:pq|WX|uf~ىKWV._^4[ͧNp斶.2=mSͭO>zO_8? /u/c/;~'N;yĩS')z&wvFVWOGwReu\::ۻ좢-vk:I:]=F+4Ojw]/ayDeG8H<r[R%-`(IJKǷރ}W<95> \aI2W4Fx8=0>vq 3TCV$s$;ϊy\_C= + -COo`xht_|XttleL+c#Sqر^| R*MgTS'!yOgO_x_^xǞv!XǢ VSөf5h -;:[;զ"k pw˫ -qDzG):;]nFѩ\n:.!NepAO 'X(2R, -p, -]\y??{ٿz㋗^y}rz\ENo c70b`SIV#b1#Km mBg"2Vc/N A*#ãc6񃿄o#>KG -Vkɷ:-[g"}[b#G-_ o -C-B)uHqKrXi"⥫/_[<_P$<4:^?8+ -!Ⱥea{XSl*BW!pz;v - Blu 'N8)NKO5g=BՃӧϘ=gEK/_QS]f1kG-[r?ƛyξY~+-X jIpa`V -p&E>apijI<=XmkWųk:*Ǟ:u!Zi-ۣ?/_.uꔛ53*7$tMVü=z93xeb+PE>eE_y՞ƃG9':㰒YM,}a{þֆ}aaCS<驧{ቧ9Gؾ{˧Ϙ1g6o۾uqu萫]v_u5pÆsĝ#GrG1b0Ρ!Æ:[z!7 zː78aCB#!Æ >s0Nw 7ƌO;aLxg>4}fX#8)IS8)<дPo`ᒥWV[Yvɲ͘H۰9w{ξΙS>ys.Z6VqFpx`joK3X Y}ztWu==L07T[E7 -v=G¢0+>A_~=4s}_ӧlђeNe`/a*8*ERtV}Sކx_z9IN~u [0}y ׮]fuuM&Lt]w]s]q?__.[n:~]w6݂wFτ/9*ݣFG3z1;r}ǎGUTX?iʄ)j҃S'O6ex`<SN}hʃML}hYs_d銪aBTuݲYN֮^[ߴԣ+zw='Wa/kodULpQ!8Qtͬ ;ʫ0=Wqc`CpE&RY! j Wq{`VWW$D5ukjW۰y뺍ONyEEQ^]u CCXR0k`n'عstߣg^={UpUn oV٧Oy(*⪫4TաiKgrOWq VtmrOCjVsg{W{ᥧ}>rĎ{X9c֬3`%/YȼS2rԨz5W◿_+2TdpӐ!C :wAUcFwԘ7v?zS=M4v'8y)&?0aJ8:3efS'Ny0zы8I'LN>3V-_Q.V+.^gΞ9+kvsg_x7z;[Ιonُ̟p>@0lq`ߤˮ,_dtr,\"Ug϶J0*_ųjxUje]'X^amO?YEeeaaa$Tf5[%'.޽{aQQqqqe?*sF|k-(-+ٳgUumت-a+:Բ@R"[RUX{o{^z^z_~{n8wӧOyiӧ͘5O2i{6_qՕ~e?/~+2p7<[ ; Guc Ac ?1&8i܄&N?i'7n½cǏoG/%wIC3K/_V&:y g̜9 /ݸyہO?z0*dVoyw=S=oܤjҹqՂqUI0yDZU2}'$Ω/[oW-[^lKak<}e^Oe_YjEMa[ԅԮ^Y֡. ~`nVYUΝsEKJJK - F.W߾}++zW7;xh::n'<+[4g,8}~k/Ͽx齍ͫ׭`S'L4iq}#F}aok+./_ϗ]?yW^y5\suFp7 rmnN<1;G1GEg{BuϘQcƎwcǏ҄SL6}̙Νh0)=K̝py3B)֢UEǟ|xw>3{o /.Y>sμG/J.w:iUI04qHUdaYU%ղ**+'Vf큵Rx*{h[n7mxUkydޔw{ƌ1no뮻ګ暐Y]uWv«ʫLNk'K oHo!ex q֝w9w;NF;f'0i)L63f͙9{#6sϘ3gGg˫jv{ԣ/ڛoλT3j̘=w֜]8 -OFęX$hKM!Š0j򕋗K9W&$M5ÐYUTTBc`Fpe*Z\^a˯SιA{&znUO0''sNN%% 0Ƚ_~啕={vࡰ@|mZM0N9==ίM8]>+7zp~ /rꛚ׬߰pӦ7~ݣF ㎡Ær뭃os͵^su\}tW_{uG5oip[|[ 2tmÆ~λq#Cl5jc'쓦*0=7G%YìVJ+*^>j?pHRXP,00J6onMRֆtռ}מc'_~_o;g~7:;/ړ4Y]tYv슾Ǟx~3:}6̜3w9a`*Y`8Ȋ0jq7pE2*=0 J汇 -ld{Um2jx`j5dbUk7DKWL9ƛnpmyFy*]p=QPPZV6pP`+?[uk[*}${(֧ƹ'%XR%Xut:"PUߴow}㮽 '}W_{g;ó|]y7zW_{珝:ڶeێK-=oԇO4s{{j]w=#FsQ#G9Q3{wcM?ab􉓧$gϙ7eU5u6lڵ!=S/o{gߏ~|_|ԣoߵg=w!zCl -e˳JRI3eI큩IU55Uՙ*5u+kWUk<*֬ZSzmkmX~ӒU3f?WԩgWR+ʫ:fv͉XyyEz7ORG㋗|)8%%=$WYXY㰎a"xet#a[1ίkަFxx????7zŗ_}O=ǚZv޻nkjjZxyg~dƜGf̞nfϙ9gُ̙;ŋX^Uv՚7oݵuN?3ϿkoΙ>?N&z_>yYv칳.X/ Co`j'O3gi8IxU\-]2 J &ؓSU"bI&gU*Jo UfI0%DQяR'OWqf-k`m<֭{~AAIi%_CYY#?Ze啕y=WTn?~уGу饄I/aPaes?oڿ1Z߸i_CӾ0k޶G|^㽳!A:G|G'׿7׿_'|љ?x3^~_z{򩓧k?vā[[<+i?vGO?O?/Ι3=G~G:9~q}Cb_|؉SOz݆zd޼K. Tjo`rS8Z"Ǟ>+SeWU邫*\%VU5Ԫ63*Lpmf`]3mڲq˶ s}⪋뒛 -\ vK[^~~tb+7:pРҲo?RT aRX6J rߟ^G:qVS%KW!jnٵaS|DXo/˯o$ٸ/4}/MUsKV7(zOIgV򛤲ÏGw_z؉ݶcu;oKrdz0Wɢ8Z,PtH̪*]d:ky̪&$mUάRWԭ UZv-o:}Ƭn>}Ϟw^xHݲFPߣGw -?5_W/kN*DXGIGX2Cvt-Ùq@2+TaBPJB/aSkcSKc\yocӮ w]vp}qPOD$YTmU8T'O_O?~d-ܳnKVT/Xli2*TIiEͲK\jIj$,_"x {2}ʚ&IUgI+kR5W}UծN Fnͺu7oپ+zۆ{&z*Jv͉[ԪGaQQy9{kWVWT~dޱBrpgLM򫤩-b?t(Nx8{ SK GXqXa5aSk}S(R;o߽gW}c}Ӿ-m8Oʫog?SY$9o~Gy7|N~, ~߷=l[asU5/ZzEu]<5nd8SIr㤫*&V/<'W*5ުvUdI0dVUo6ί`6o۱i뎱OO _޽;u9'';J%WIV99ѓܪGAAqIZVQQTTo|#~KKK++կ~Lxt::WYK wL:Uv(i$ܗHظ/ZVcKCsk}+bilиcwܳc~ަM;4۸9 -mؾ[z%vnڲ#[ajV]Y:NPq+_mKJµ:dĵXIr<O$5WM -UVD߮fUF0[$Uu6o۾kG]y5^tQYEE;ǑTO0p-*'ӥKxUr.m-)) S^YYZ^ާ_~c֑F¬GB -pzVj"Vsz{sz{cR%44nhSc5]}WnߵyM[jێi mز}m6nYa֬_vêW[_?]fU7֮]*)յJ$ -7u64j6ÞUɗY%߫.|d$a0v=U~¢ɮ*U0p%\%EY={*,,,)-߯_M[%w]VTK}^eWq V&5+==5={Vȯ;Z+uSPUߴ1]M{v58Jس}瞭;vo޾3i۸um;6lٶaӶuߴm-oZ!:׬߰z݆geY!G -U]|ieD*WYUWdjemz]`X]2[\%^uu—jͺԭYHl~)))+(,- `OҪ욫*T\f.]zջW}ͼb+࿉~L4䣏*:x=&q V{H*Yq#a|ͬ& 㰒D} ͭI!־0b5a=vھs;7o߱qlm7l^iM[mش6amuB~6\kd - kMr.ouumj ڪ.Xō!g \Y%Y۸ie+V^~U ́yyZu=7Z)9'[E={ݻwqIg޲Y)aL< wIIiy.G=ʜsʱSCR)F¶CqxX`k[Zd%X ͭ M-\߸/]{I"8ڻuǮlw&[wߴuݦ-6mnoؼ6_Z!:ׇ몸fUjTaԭ 'g%uY!U6TV 1YUa*Voڲz݆sɗ/ܹs={${[u^)%r{#KJK?c4󙷬-wݲ~ 4ޱN?ġG?aeeRd{2+jKbY,k_\IGa"Lo'owCc& -ծwݶcؽ%KƶoOa߸eIar֮ A֚uQ8*3+DO%YVmЪ55dVq\Pf{WqM8ׅozG/(/?NқSp1*i rrr,)+5yw PXXo++_).-7#ǎ| -P ȁY3vXI#a?5+jiKz {Zݍ8k{l۱;u6oj: -[vWa0Jo'&]~I`U&XMOOr*I֮Y&T .Vxu˫~ADҤ\u]WsD| 3oJQQL>}?h{Fz?_eY饄;LV&Ƨ%% ZM5 Ziܷ)b7Oڵ7:vN 7o۹uG(ڸ5nؼmpӖp )V<k}8ko\QmXncf{Ƞ֭%τªp<_.xackV/5o};tbg?eC&/?W>ì*XRZڳwַ[:rD*Jz YS ;: -JbJbHMjM/(LMjM5&sݓ M-^=ͻ6o;J u߲cAXa)-ۣN_CG-qUkׯݰiu<+==I%U뒪Z׬/ئ˖,zi?_+uܹ[UOUYF*(,w]/-+}/0 L*-xp'g`udEXՄIVa8|$t( 'uTae"NX-ZP`ܛ4b5K ٲ=JOts%MaPauh6%)֚d4ku'3଍I~}hݦk7nZloe_Rٳ'\eW!c.a~_^XZ^^XTScQ՞03=+:+FcnMX-q [$ Cܚd#a0% U⥄q%XC-P#5=X2Xɦ¤04EYa{ߘ<6jmL7n޺iUk1;F|)'Suܭ۹չ]rīna0{ϞY}r?}ߏ\pAxa7TXDx<+:vN!Vr`\d;a2ݽ-'%XuOF +n$lK5-! -X{4čqb^=w BPo'L"+jhd@V]1bťYY 7mشeێ]ew5~|&p5)ʞ~n`NNNnnn=z..8h`W]QQ _mWVov=N:.:|LK=pւC \9ԖTaH uo5+NP$jlji B MqX= ;wׇ +^M.ꈰj°pq-歙,+u6fn° lݾs˫7W\/]r^LN.r6 vS zݧomqq?0_WB ViYtOx9d˱~/JYaV{\aXPxp[\v¶-rdAak[cKf{kcSKCP]U( -Xq֞;lۑZP -v훷Lj6,kM[u tBeMk7l2fIig3u53=^e:;[$]="_W3~]׿yEEAQя~t^9zHHgc=]unup+>8$JfaE[X!j;c%VCsK8M-M8I'wݾsώ0+vORtʱMp,ܶcמ.>.]>{yaO`[u=bM[vΉ^=/GAAtz=A_c߾b+gDo}[}--/ջS8ؑT~u>IBP*jO"XI-[k;/Qk { [ՄI;x;ᮽٹaǮ,(L -XtZe{ܲn㖻\~u9K`\㭺tɉ>ߣg^}t˭_c޽-;yEeaϞ?яs#GOW'ʫXPh*~$;: uORx.I^t0uՄ{3XM{vsSsRW43vm۹;9?hPqIIn׮!?=*n\  -z٫׀i`\EeeYyys?y؉^o?v2n$L53+5MI#aj{{deb -RޓXvְ0bqXq~k46nh]w&֞S)֎d4={Oh=j݆.*-+QP9&?[:w(T[UT|V P^Yٳwяvm8zT\*8:~<==k@֑x;a|JEXqXYC*& UX9b++ڷ)l'o 5)}-s/]rI]xO0-ؑ\u'\uߣg^%%z׿c`e>Z'?In**ӥ#=~ȱ\"p2XYVŽOo'$WVשӼ ۏH~, "캬SJZP0Nx$b?x8 -턭; -?im~5Q?ϞX];3SKJ.?;~ /,(-/򥗶}++su>s։ӏLe&YG㢬#:: -vԀ+|񃇏oӟF?y:%9UL`rrtW?TVz7+~]/d .hOag̼=E>IcO~ɵ7NUW_{џ>5n>ܜ0*p^~^;7_V۷N?+;:y'ZUj4։#G3݅'O=ē<6s#\{W¢v2nZ)ح# -W93{>O71,c{_e]]/Ҳ>}~{S%Uɜt|SՉSTuO>ǞXbow/~yB`v2>.]r;Dy=z.-?o~e%%#G~gS9Ud7v\\DGuǞx^ޱkϝw͠AN`nSClb0T[ - .;W\]WV8әXv:m䣏= G>cぃ+7 v, SٓVqUn~={.,*]R2ŽAyۯ_a yX::vD+; -:u~go|W4knIlJsrt^PXXԳg޽7OˣߔUTWċO?h\tfz'}P{F/E^{ݺ}j`vUnҹs^PPسW򢞽 \=}S PZVַ[s/K_eBluԣ=O?;k#?OwV^l29](.)).)W^Q9;3?A?**KK/▶C'O?.z'N?ؓOpM7vTUG`nO0蜓g^%~aϞ}:z ߻[AJmÆ? I~uc0yʠ}S]-]}:Ԅ8nz ._ww%%_Ɩ'WT'ߵk?̟VqU>隫A^gߦO__˿袋';uBrV -&㭒aaQQyE!eS,%WTUT2dէZk(Jg0 ]x~ .{w-;rsstJҫ}?|iW뢋/.L*knܜx${v힗WRR2 2د=\^Ź魂DQ=/wqI}3ׯ W/.)+5޽{⒒/˙Ov7Gˮ,??GAA_޽~?!'(//)-ӯkO3p@/:t?yEG !a8c -endstream -endobj -423 0 obj -<< -/Type /XObject -/Subtype /Image -/Width 1600 -/Height 1600 -/BitsPerComponent 8 -/ColorSpace /DeviceGray -/Length 10253 -/Filter /FlateDecode ->> -stream -x݇.4QPIu32"88ֱ1"Y9RFID3qߟ>z]볮ZXus]J#'77~o/K24/yWʯh+N̬=vzM۟%՘rM-!@uwzxf^ݾ?4gJiƅdغ׀wZ; Zv?O3e6GkZmz4.S.S/jRC=?1Sn˟5HGLŌ:kqLTܬ_ICFTyn׿9ym4SV2dQ^TyYx4X{MT[Yz{u`[l|F\tkToul=O{L xT335G ț^934I {nfe39;Snmh,c3|67R$D+z^&61$u9K2ȰĶ,-ʄKm}ݔLD_3:tL\56Hieb,XGf{9+ - fxL" cbhuff$sݎ?>;$ :5asKWr@ x/.$ylyfj&lw#$mscfmōZxgolwi2ax+ P-~vع6C -Pv%EjNqI&T܂}f-*irř5 P96t# Po2w 6@e)hO.ͤC7@aeR㝍9@ozUCRx|;X呷 [I9v8f>@9u?o'3i P9;_g 3ivYPV>yi&fP&{=zƲ R߶:/+tC&@K[7cq;s`MӲ%֌y߼XMc%.3;VnZ¼mݤ /i OiCWxCu-k6o6C- z ~[ҿuG -4`5Lhi_jAiR]4] R^X݋ 嶿Az5eKjVBH,CV@*ͅ)w? HE/U{6SQ,v~tmGe[pA6k}sc:Y8Uf.RqTEd |DQj*kUQTlxF [>mFuwA6(7UiIWIRgT'ex|K0tĪӡn[QSFwAHڛ7~KMcC9k{Q,H1SqcGHmμobE6IH.||T"b /,"E,!z+yn-$"> '`l.}0H8oזLoڊp&w"%ZW<фJфU]4!d" e"{D+eE(YP' -( a[_B!)B`Ǫ)YB!PMLRDUt(B 25ETPkoa=HD!kk):.OD!za}B\Wh)/`pB\}uquQ+o"wE:]G%" -aNQU+B+$E`c -)DU E ȭ2 -Qli!QQ3!U-KH!V((!r{("{oc){CE=R -Al B -AulD)Pvl! _PD;XUo EhuR7SSk -&tSK5VOL!o*(bUL!d"Sid.SBb+' -̕SWl1?O6BH+(bNL!uB:F?bmb -!mmb -1QPe;1OĶ1>PP6BD9'b[pBH! B~"}Bj0DAZMb -1؀ܛ^ᅘYAڼbWA]9b -!5\A;bA$)Z=b -1PC+bjiBh3RE*NRٓl"ԱsTmc!<l.B -QhBd(DEE`4Rx{{ -^QĵBX}kO^+QRuvZ뾦" -q\jXk *RDd# yBX]]I  - RDu{RD_Chϩ)J>!mQuOm"r"ZM"XOӲB'&ncݫ|Bh /Q!Y[A}\@!n"$"khBTKz (D,=EP+ mjPliz-Xj>q-D5ET`Ad9wk):MB!d":K("J(ĵWZz "{\K]$s"QO%Z#NE\c6QZ/VׅJϕQ ⚶BX))G#^"Ejlq{Q6RD!6*~#]*חQ"Q2 -QܢlUB -a,Qh;!VQV2BP([_H!:("BPQQDZK)4GTI*wR5(X Eh -BʽDAڂ}b"W:)OAeBcEh+vS&El'v*(b,VDp)u~"O[)t -ElBn@&'ON!'bO&_'{@N!; Q[ݔ -,"Q9 -/4[_~"jH=!"ޢ*XnΒ -F;Su$=K;ݒ%9K;n -4 -䟡LQxLPNy7Qxcѕdl&NO/nrn"9*ar"֗U&dDGNẉl.麉(OV!M&:YpVM$do(E((Fo&` -\L75V$Bu!EyIQ ?B@RVsbGhj p6"SmO@R[wP[q*M?סTH4m>Z*lj̻k}'Bf%ء@e$k/oo9 )X< ->T=&V8@aoG_ITnl3ff8PeXhQј4*y>r66P.W7k-rgil2#76jq' Yc{+?_fOݮ T;JTo򍾴ۺ@ZP&ܲl[L&ГZ4g]&4IiupPcQT]zԠzKTq┬u.Pr/VR\uL\5S%'Ȣ/b!䟧pڈMY s"zMW >9#3A Dݘt0Qx -:g^=4"8FIz[@PgF 8blQ:hѼ{6-ML -Qؑ|۟.0-$Pg1u|$Ev ٲ r`r-@lY/(Z -Q5gE˚@"m6Rא_=$wLׄE_x\CH >տK;{@]Wϫ׌wevFwuGfLtFW3&j zxddV5׀Rovb_s&~d|z}ed:ʌx~ds|ޝ5;UWaG4ߺ@v;YWWWveJTR\& -9hyu&)ʰ|:N@+n3i}Iii"B(ym" y"P߹FR'nj)5KA}Yۛ;@m5(ۺ/_{ HjE(Yw'XJur-6 /XJS7lj)E5M,?%Ú[=cf -OYjXNiPl@^FBI۶4CVVY_6;V0k.s?>o}s`[h}9żX-?ps-@i/_P:GX8aګaPz}[kc.E{☻o ~"Ջ̟u!o@=wg>2]rGra52w}5.@EţzN{ikς\CP)rN3clm*MiX< -}T_ca40!3>aUYTd,]<}4y"W9{c Pʺ.x}X*,nUjߒY<| @d]CDLkcT4/Z7$xcęm/;@blb}9HkPzXœ.hn;j{0 q ~hW ǔ.k$V˪{;@5zq1\u,wշzgKW ;4>|׻zd]fVewI[|2M\i,}[c7i*d۪p-zdţp@u]_*Y=^8Qe ȄJ_<&kgvޒo+m(Zֱ\Qx՝7ƍ]MJX=Mz ]TpX`U -._l޻Li5shX:DVU`6c4{2p9(M&}[[ǵj_wqڡ} -endstream -endobj -219 0 obj -<> -endobj -225 0 obj -<< -/D [217 0 R /XYZ -13.423 915.745 null] ->> -endobj -227 0 obj -<< -/D [217 0 R /XYZ 29.788 737.428 null] ->> -endobj -223 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F44 228 0 R /F45 229 0 R >> -/XObject << /Im2 220 0 R /Im3 221 0 R /Im4 222 0 R /Im1 218 0 R >> -/ProcSet [ /PDF /Text /ImageC ] ->> -endobj -426 0 obj -<< -/Length 26 -/Filter /FlateDecode ->> -stream -x -0TH/2PHW0PpIp; -endstream -endobj -425 0 obj -<< -/Type /Page -/Contents 426 0 R -/Resources 424 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 230 0 R ->> -endobj -427 0 obj -<< -/D [425 0 R /XYZ -13.423 915.745 null] ->> -endobj -424 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/ProcSet [ /PDF ] ->> -endobj -471 0 obj -<< -/Length 2380 -/Filter /FlateDecode ->> -stream -x\s8_AӸtoNMlCŒ<斁{]u4L9vHhOn}ެCCޫ=0\?q3D{Jz{j֋q\Ko=]Lx0t# kvu1^c+ā5qCʈ?^m^@tݝd[탃7s@vbooƶf]a:2Bx",ѭZc\BT)ĩi*춶t> "cJ,B]1tJL;8"a>z&/*IONeQguo{x i'Swf@rۆcK#¡k n5:y pG?6)j9SIyɦm]mWy|),,!(*j X@g'S@S4|[gfNx"`*ʻ\B` @+2ym,/#8NY~> $A„xYe*n b:GUb9-:Mbf*Q+q -4,aAxH+3Q5yE~ !^@!K+0kƬSYY1DQI+2%D<xE__ nbѩA8dncMmg"( J#q<,jVv36_8샮0#-~l$3=fQsy:ŏӯ 0![P9~~{xt3bLĽ u*vXdiZ~qJ+Mz< թcLP$EiI1sƍI6*IOs>N)嘪%I1uϔi]Yʤڴ"N8Fץyɉ#p!oXDAK-ggf1?S՜Wڨ68dJꑲK^h?ms27UmP.|4F;2R{* B3T$3fLqNa6A(tL̜YZ.a,52`:a TlE6u%Kc) *gōQ<^03jȬMt(XlX.m@d/:L-SM d`Pl\SEK:;K5R;(Ou|g_H%AԈ_YJNyIr[ ~Hߌ -_ڭlr}lFPOAg1"x8QJw b~]5Z\WW묾,(LwݪzTNpZVۣ0F~g_Pk.aO"vܮmg,P3 t7s;&;xA*c {ͷf-a';w48Hh~GEP2(|sw8i ];l2[W]MU_!׎Ӷm#5p  P.mNMs~\]~M8Yzciyf<> -endobj -428 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 632.024 189.599 644.56] -/A << /S /GoTo /D (chapter.1) >> ->> -endobj -429 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 618.633 234.697 631.136] -/A << /S /GoTo /D (section.1.1) >> ->> -endobj -430 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 605.084 268.668 617.314] -/A << /S /GoTo /D (section.1.2) >> ->> -endobj -431 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 591.534 221.126 603.765] -/A << /S /GoTo /D (subsection.1.2.1) >> ->> -endobj -432 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 577.985 247.21 590.489] -/A << /S /GoTo /D (subsection.1.2.2) >> ->> -endobj -433 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 564.436 172.024 576.356] -/A << /S /GoTo /D (subsection.1.2.3) >> ->> -endobj -434 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 550.887 303.413 563.117] -/A << /S /GoTo /D (subsection.1.2.4) >> ->> -endobj -435 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 537.338 210.479 549.841] -/A << /S /GoTo /D (section.1.3) >> ->> -endobj -436 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 525.774 154.428 536.019] -/A << /S /GoTo /D (subsection.1.3.1) >> ->> -endobj -437 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 512.225 207.773 522.743] -/A << /S /GoTo /D (subsection.1.3.2) >> ->> -endobj -438 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 496.69 251.453 508.921] -/A << /S /GoTo /D (subsection.1.3.3) >> ->> -endobj -439 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 485.126 192.042 495.371] -/A << /S /GoTo /D (subsection.1.3.4) >> ->> -endobj -440 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 458.71 194.453 471.06] -/A << /S /GoTo /D (chapter.2) >> ->> -endobj -441 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 445.133 135.893 457.053] -/A << /S /GoTo /D (section.2.1) >> ->> -endobj -442 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 431.584 177.741 443.815] -/A << /S /GoTo /D (section.2.2) >> ->> -endobj -443 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 418.035 165.61 430.266] -/A << /S /GoTo /D (section.2.3) >> ->> -endobj -444 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 404.486 193.341 416.716] -/A << /S /GoTo /D (section.2.4) >> ->> -endobj -445 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 390.937 215.933 403.167] -/A << /S /GoTo /D (section.2.5) >> ->> -endobj -446 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 377.387 153.675 389.618] -/A << /S /GoTo /D (section.2.6) >> ->> -endobj -447 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 363.838 332.856 376.342] -/A << /S /GoTo /D (section.2.7) >> ->> -endobj -448 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 350.289 333.544 362.52] -/A << /S /GoTo /D (section.2.8) >> ->> -endobj -449 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 336.74 251.661 349.243] -/A << /S /GoTo /D (section.2.9) >> ->> -endobj -450 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 325.176 126.195 335.421] -/A << /S /GoTo /D (section.2.10) >> ->> -endobj -451 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 300.047 70.177 310.685] -/A << /S /GoTo /D (chapter.3) >> ->> -endobj -452 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 285.183 234.119 297.686] -/A << /S /GoTo /D (section.3.1) >> ->> -endobj -453 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 271.634 318.424 283.865] -/A << /S /GoTo /D (section.3.2) >> ->> -endobj -454 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 260.07 255.926 270.315] -/A << /S /GoTo /D (section.3.3) >> ->> -endobj -455 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 244.535 282.97 257.039] -/A << /S /GoTo /D (subsection.3.3.1) >> ->> -endobj -456 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 230.986 336.326 243.49] -/A << /S /GoTo /D (subsection.3.3.2) >> ->> -endobj -457 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 217.437 411.511 229.94] -/A << /S /GoTo /D (subsection.3.3.3) >> ->> -endobj -458 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 203.888 310.242 216.391] -/A << /S /GoTo /D (subsection.3.3.4) >> ->> -endobj -459 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 181.399 167.759 191.808] -/A << /S /GoTo /D (chapter.4) >> ->> -endobj -460 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 167.866 158.333 178.384] -/A << /S /GoTo /D (section.4.1) >> ->> -endobj -461 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 152.331 184.155 164.835] -/A << /S /GoTo /D (subsection.4.1.1) >> ->> -endobj -462 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 140.767 199.919 151.285] -/A << /S /GoTo /D (subsection.4.1.2) >> ->> -endobj -463 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 127.218 174.446 137.153] -/A << /S /GoTo /D (subsection.4.1.3) >> ->> -endobj -464 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 113.669 144.13 124.187] -/A << /S /GoTo /D (subsection.4.1.4) >> ->> -endobj -465 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 89.194 204.741 99.603] -/A << /S /GoTo /D (chapter.5) >> ->> -endobj -466 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 73.676 260.202 86.18] -/A << /S /GoTo /D (section.5.1) >> ->> -endobj -467 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 60.127 204.752 72.358] -/A << /S /GoTo /D (subsection.5.1.1) >> ->> -endobj -472 0 obj -<< -/D [470 0 R /XYZ -13.423 915.745 null] ->> -endobj -473 0 obj -<< -/D [470 0 R /XYZ 29.788 737.428 null] ->> -endobj -469 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -488 0 obj -<< -/Length 1287 -/Filter /FlateDecode ->> -stream -xYKo6W(%çHi.E71CUؒW]`|dˎi` _ 's6i9h(@1(BE*bCFrBCO@ Q^4IvZ iVHP1p%w5:)4a"F0JƸ!xBr^_DPڼNVq8"S}ލ>pb$6V.J9DIc^m nj.QA*|T{|YFl矏g!( VjF[AGte2bMt2/* >.GgTukcaO ~D6o‹ M"8Sd -BHjTLf;N\|UnZ4B*ڡC㩿 n,͡p`rl s8*X#|OyZ -~tGX2!;BZKFHps@ -@wJ)}钻4[98UJ{p +Nx^T℅uq:wreR}'*t(,X0a=a|UJ{ܰ`}HN{NvHW=qcèd.ɳ?q -~<"&OAѿ;;[̻F[?nj8Fpㄚ:1I׭' ]]$X%aEM6$&Fuk m ެPW -77[gJ :8hjqkɔ|t:ʦްOД&˼IMCs}'i`#rtnYxUlL&iPQ3g\a-cml72mu̅{yWFvk=yNF-XtE=l?xvssܕ-|n*AxZ -endstream -endobj -487 0 obj -<< -/Type /Page -/Contents 488 0 R -/Resources 486 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 230 0 R -/Annots [ 468 0 R 474 0 R 475 0 R 476 0 R 477 0 R 478 0 R 479 0 R 480 0 R 481 0 R 482 0 R 483 0 R 484 0 R 485 0 R ] ->> -endobj -468 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 728.179 207.184 738.424] -/A << /S /GoTo /D (subsection.5.1.2) >> ->> -endobj -474 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 712.644 218.977 725.148] -/A << /S /GoTo /D (section.5.2) >> ->> -endobj -475 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 699.095 204.752 711.326] -/A << /S /GoTo /D (subsection.5.2.1) >> ->> -endobj -476 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 687.531 207.184 697.776] -/A << /S /GoTo /D (subsection.5.2.2) >> ->> -endobj -477 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 671.997 225.653 684.5] -/A << /S /GoTo /D (section.5.3) >> ->> -endobj -478 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 658.447 204.752 670.678] -/A << /S /GoTo /D (subsection.5.3.1) >> ->> -endobj -479 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 646.884 207.184 657.129] -/A << /S /GoTo /D (subsection.5.3.2) >> ->> -endobj -480 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 631.349 296.584 643.852] -/A << /S /GoTo /D (section.5.4) >> ->> -endobj -481 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 617.8 204.752 630.03] -/A << /S /GoTo /D (subsection.5.4.1) >> ->> -endobj -482 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 606.236 207.184 616.481] -/A << /S /GoTo /D (subsection.5.4.2) >> ->> -endobj -483 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.156 590.701 230.486 603.205] -/A << /S /GoTo /D (section.5.5) >> ->> -endobj -484 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 577.152 204.752 589.383] -/A << /S /GoTo /D (subsection.5.5.1) >> ->> -endobj -485 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.247 565.588 207.184 575.834] -/A << /S /GoTo /D (subsection.5.5.2) >> ->> -endobj -489 0 obj -<< -/D [487 0 R /XYZ -13.423 915.745 null] ->> -endobj -486 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -492 0 obj -<< -/Length 2556 -/Filter /FlateDecode ->> -stream -xYKܶ[` ,ab[6ACbg"ޔ|h/hNU*U+ 4ss   ^'@dd2$EЩ" 6I"| 6*$3FEtӳ( RɈ`05`KI# $Ϡ .2tE"7{1Lg,& -^iOqIK0xRdD2Kj|8X2d#*"u^5~Jy_8),1_^ݼd4 nT ߷e1|x ?ݠnz}PFx*34?F&(vic QP:3!amrAb\zL$lćߢ߷:tP oǪTVS Yp - "$%4d,%(A<)b]ŴǰD1D<#Y Uw_可q&oq~u$Ib -0 v`Rc {{TW2EtX{Z*q|_;NةnjN -)qxG֨oT;X=(c D*ЬF_Z")4m4FwQ,ӺEE`f* -͖կGpY"8ןTӔ6өJ(آ+5xt)&(wsJOƼ|;8 UAp!nӵS3Jt>+p-cV{WI* wqUL-tdoxH[R@y,\oM?gاeXMGyKu|,94q_`kę5 lQ+P_6wƮz>9XXL:^zQvW:51{""[]裮{',v 2 Ȁ-TO0x_lbS@@ ^ڠe;@WQ{D3( -x L -oRXEp6w]f_6͟[oF5`u~{> -endobj -493 0 obj -<< -/D [491 0 R /XYZ -13.423 915.745 null] ->> -endobj -5 0 obj -<< -/D [491 0 R /XYZ 29.788 737.428 null] ->> -endobj -494 0 obj -<< -/D [491 0 R /XYZ 29.788 645.141 null] ->> -endobj -495 0 obj -<< -/D [491 0 R /XYZ 29.788 645.141 null] ->> -endobj -9 0 obj -<< -/D [491 0 R /XYZ 29.788 645.141 null] ->> -endobj -496 0 obj -<< -/D [491 0 R /XYZ 29.788 483.33 null] ->> -endobj -497 0 obj -<< -/D [491 0 R /XYZ 29.788 353.522 null] ->> -endobj -498 0 obj -<< -/D [491 0 R /XYZ 29.788 250.812 null] ->> -endobj -499 0 obj -<< -/D [491 0 R /XYZ 29.788 148.102 null] ->> -endobj -500 0 obj -<< -/D [491 0 R /XYZ 568.097 63.19 null] ->> -endobj -490 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -507 0 obj -<< -/Length 3217 -/Filter /FlateDecode ->> -stream -xko6{~>*DR-}4]ݢe&oCe;8Eysfȳ_~$nx/^/z2,"OBzO~|PD0i2fܚZ*Y,bӁ LXF3".O4\Ti++T}z ` @C&D0ZTĿZi}u[6uUîT.F/Cˤ4y$U?J7;M5<"ւB(ZF -ܪJ,6#&KGW] -v^R_W3M}ҡJ7Z5M6 -tۖ r뺱 ,з?GP ȔmJ@(A%ŗF-f  Ŵo n :v< Ft7!Sqd)359aYQ_5g]٭]OrY RߖI@dapw,ԈƮ#.NXpXHg{ұ;oͦV}|&dfz8]}ke -ɳ| -5BÞ~[Uz  _MQK]!`M(2qF$?hTƶSWGy!0VvN2<0Bmid9GhtFd(UfWm}"o #腜m2e$c+#vR0H1i֘7 -5k V츱=ba7P2eefꧦ$T/V~YQM2wQkXfͽ^bCE^0i^ڊmc;Y\u}V&iub:[tF(lalյ-YMb$=8YӳE JM -}Xnjm<`-Pg(߂\W {gun rFX' g\gn-lbf"#wvDaLƄ\OS@=Og&\: xpۆ@\omY65SpLb{b?W[0(34킩fo:cZ]X鼳5n lY\rdNgZrI>4YYd*HXDI٠^(z _ -հoG s~ j,X;Xjw0Vum_NJ\Q7UK9 c$.)JA&Nci1cUn[] a}zI޵62np4fTo)RCBPz -6h쳥*1mXkz3}XHqG /(i {e8ޞL9(f}>k>>Ü>*dB!/s) QJ3{D -z[QZ' #Y)GS>T6 -l<> &rXmXm;Н/ 0L 5E*[z6z+V*wsYk;mWIz]~ҍIe'-4$ )-A>F'3.0ifu{Y -Z35o`Ͷ_ OsD jG2nݽ&(w؉-yi\?"ď#Q<0}ҡ-cj ^ily6-ņm亯+'w%bfx{wgrHT;:p?_BL# ]ʧ_cnaqk(#g}y,餱ARƒfHRF;6*(|>C{X"1 -:cyR2թZ:2^>iIYy;Jvmz73MjsH;ʖƶ$0[̝7K2oɘqS "ǹ__.LN0?_QLk_Fkٹc"4M;}Wrz*s5؛> r3y7X9J4?KrZ$X7ÌGwyv.:zAbWh"CaInc3`Yb`\^/\< - Q\*1d;"GVI!b^] TsH 3 WO˔K*q!*aa"{:zv `qBW#Ӽ뜘Ep:h 2{H=GlN`69nX`?> -endobj -501 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [47.105 229.798 169.497 242.301] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -502 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [210.217 229.798 294.11 242.301] -/A << /S /GoTo /D (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f) >> ->> -endobj -503 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [126.417 136.761 247.853 149.264] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -504 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [241.213 62.194 343.853 74.425] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -508 0 obj -<< -/D [506 0 R /XYZ -13.423 915.745 null] ->> -endobj -13 0 obj -<< -/D [506 0 R /XYZ 29.788 737.428 null] ->> -endobj -509 0 obj -<< -/D [506 0 R /XYZ 29.788 708.67 null] ->> -endobj -512 0 obj -<< -/D [506 0 R /XYZ 29.788 461.522 null] ->> -endobj -17 0 obj -<< -/D [506 0 R /XYZ 29.788 442.979 null] ->> -endobj -513 0 obj -<< -/D [506 0 R /XYZ 29.788 342.236 null] ->> -endobj -515 0 obj -<< -/D [506 0 R /XYZ 532.587 219.312 null] ->> -endobj -21 0 obj -<< -/D [506 0 R /XYZ 29.788 197.739 null] ->> -endobj -505 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F97 510 0 R /F89 511 0 R /F32 514 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -528 0 obj -<< -/Length 2887 -/Filter /FlateDecode ->> -stream -x[r8}WI -a\3JbOCҕ$XℋŎ!,qUW!w^\@Ey7g!p%@!!N)p -ܜ}ܨ|RPbE.Zk]Q3K *PҮk+39~@ T U( qpyS%N 1@ݹmh -.ޥy=./A[:\S'DЫ.%L8Âi_׷;||]7(x`d"?>x $ u_ϝϓy9[&W2+󢒳߯={uqp Bi;sx!Թk:Ĺ%"̧8 Z8}z"vi]y.MgyՃ2:nTSI"aST$۞^e:4LЁ%K&Q])LWFo"i%ԒΠӚwG%:w`]Tx(+e-ty'o<vǩЕ,|$wqcVl&6m?#Oz\Ҡ ܮm?MҀ1]ӑ -L*LEn](kƣp`x -h <(I4MOc 8CAf?y1:]Fd'+4 ButW C%+)@)B" -.`qG 5R荒 oT8ipoG \$1I-^>ɚ1G0Jy;`M-ܩ價~[53 Vfdt uW^"#UIV06{}/yfRwSYI>!/Ěe@͌҉ϴe -* H\r3Z\X%%>*A{6"&`) *Y0n $a$GQC$rda5-®27 spId!3Hf_V_aCjcXacC=c~ vvժ1Zb泞^yGDSe =ycXa5kӻ{cmobD`NO{"ʶ! 7^ }C%7՛r~xH(J|yg~^_e17pDPzZ} ] X]pG$zڷ`kջEoz=coD0rZE=6N=.{cXa5k{|c0;Z&@'z3qr=Ρ{xo #,Vz-zNch@;Z&@uIȣ>Ñr=F[ưkw/jawM܁'mdl@ 怚ݲ˛NKP}nvLgq?0j;"[m1bv jnG|Mb97M_d%72+iXA A|Vh;(bxwy%G -'tF9[Є0kvWC!gq)mӯfNcDq)fJxm<)+'jgOB!U[fY<qҼ\-1'0_q6]};Qb_ˏv>8 oerdpӺ%*gf 9%oeT{^ qa8[&;jʰrss.c,e}j{c!Gf[g[N:-0:o/$ 'moԺ3Zl]֬:c\d] -Gs@VW>mmrݟ;I~ SM$EDscwULm͇+s^7ńD l}ӭrWEY5f*NUڙ!0kIm%gJ՘S ^um!Rb+XRxkB/[?ia>Ǫ-rσ<ŭ:22C]eTEqYOj=aN벻Z浩Jh/YTө,v -\:vpO1b&FT}übP8x+ @WS#];@C)5{!ۿ.1tIb$<&C MَfN=g͋RS@Rqkzv*ۙsnVϷUt򇏇5qf? UBp+-bj,uUF?~Fc胇8ٽ:꫰uӭkl1%l"YcY7~]ARLReEX{BC‘y.S(עq(icqVEl^lPʗ9LUUONd3&6jAe]y1#o:,zke@d%vެ7 &`|s$c}Nx; -endstream -endobj -527 0 obj -<< -/Type /Page -/Contents 528 0 R -/Resources 526 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 535 0 R -/Annots [ 523 0 R 525 0 R ] ->> -endobj -523 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [297.649 568.316 416.641 580.852] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -525 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.995 393.76 259.035 406.263] -/A << /S /GoTo /D (group__bsec__interface_ga51bcd13812ea62b35749284385a72f98) >> ->> -endobj -529 0 obj -<< -/D [527 0 R /XYZ -13.423 915.745 null] ->> -endobj -530 0 obj -<< -/D [527 0 R /XYZ 29.788 596.638 null] ->> -endobj -533 0 obj -<< -/D [527 0 R /XYZ 562.881 396.823 null] ->> -endobj -25 0 obj -<< -/D [527 0 R /XYZ 29.788 375.876 null] ->> -endobj -534 0 obj -<< -/D [527 0 R /XYZ 29.788 253.285 null] ->> -endobj -526 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F44 228 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -572 0 obj -<< -/Length 3284 -/Filter /FlateDecode ->> -stream -x[ms8_W-2r$WIǻul0#Y`xkc 1K@H"j1Gsl-ZZ, ?űhDQz -f|Td(A>ڣ4/laȋ[ B6QL8Q. H 7zʬ'q\jq+ GkzO Oek(F~jrbEza;n薝;VOjͲm Goggw\cPJHq0";!<]n7||~ệ)!PUfݜ񤌒T|:КĥlS%REޜ+~Tċez2ٞfT7+&݀e=Ro@׀̎W+ gzeCN\3]3O@GIUiͷ*QCh;ⴴe+KŊ{qf{K(Ru)trAp>;@Dr:Ž z@tIuړg.} )Q!MZkgN}72lඵ97 U@UV] \:S.E%m (Ђcq8I?<+@Qΰ~dJ=a 鄊U =hYz6=+ -! qtrۊnl:_uqğLN*hpӤpA"|z^yt& &'92jj nP>@\]ϯǿ^_\^^]4"^v{]!y'ɝYex)Xq'`<~^OVw.x w#q$O)@/{ ױpk@H-\:?p~rq<ر!jur'୑kE,5r ; 5r A#wj6ܱ<}r(·DC #Շ7?т!DxSh58uhB :5Z Ahr -^Bp̉)ZGODo/t=۫!ݺT@5Xt - -0@ SC(Fi )P )Ho RQ`6 :V>8k}L'aj}TGL5RM t5BM1:5F[ BX]_RB ^SG%Xv?*i^|<~wr<~}\~b>֚p3pZ>;8IlēlX[5i'omG =TO]yo0 SWLCԎ`cBڳDYF u-@ _!յ4 79'sך=w䟂%^W2 OJ C=kObHv$M ~HɹA-$9r~gj=a@CǣiNUATm0)k6hȶ%;^.o ;:O ^NQtr(H'^t}8D'_C@r((zQZFtqC0OFCD\&m]R.㲝͜qI7SSl[2թW*e4uCZ!ɣz`:[ )x&;-aJ .y Ww2{#ߪ|ayQF13TFl^|fȳkb 6Ԏd[ĉ*k(ٮ}dp(N潭ObMɒk{]cYY(ާ "8Nnʝfjh't|'bfWm/D'r\ [5txmo=}v@fO`jK&uIŸ5L&!=prÒ>g(Cr5$/~-Kʔ7@N;e}Z9t#lSI|臓/_x(n>V¦C09jtR>Ȫު,8rFluX^<+Ӳb";$-{(eZ 7&g| ,ͣ"*v Pت5ot&-}hZ<WtTw~' ;<7"V"*;_LWp 섪BU|V0%D./d&b%|.ΖS|:&LKR|'۵$aaŏv@0X;vᇎm[}'ߘjO/ޤ:V( ­ l"> -endobj -555 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 431.876 215.371 443.796] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea5f42ad42c6bb71627b5ce91d4c410985) >> ->> -endobj -556 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 415.696 237.789 427.616] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea792b0fbeffceea19513cc0bd31ce7ef7) >> ->> -endobj -557 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 399.516 208.084 411.436] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfeab9d6e7e5bb1c5f99d339a649d588b3cc) >> ->> -endobj -558 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 383.336 178.4 395.256] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea64d14f069c838de2d2c1f3f436ef6108) >> ->> -endobj -559 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 367.156 142.64 379.076] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea2368e219ebbce4e1ede7209486283a6e) >> ->> -endobj -560 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 350.976 258.693 362.896] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea4e05ab48912e70486351f5199910fcb9) >> ->> -endobj -577 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 337.427 177.179 349.346] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea4e05ab48912e70486351f5199910fcb9) >> ->> -endobj -561 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 321.246 258.693 333.166] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea1c0eee38a61b05c5239c871f9cdc85a4) >> ->> -endobj -578 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 307.697 147.473 319.617] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea1c0eee38a61b05c5239c871f9cdc85a4) >> ->> -endobj -562 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 291.517 253.575 303.437] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea9fe6dbe27991e3f9f1a444c40b30af3d) >> ->> -endobj -563 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [35.168 275.337 213.549 287.257] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea1aac5358fbe12702647de81cacd6d062) >> ->> -endobj -564 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [186.891 201.605 307.126 215.366] -/A << /S /GoTo /D (structbsec__output__t_ac4e7ef20f713075472bc953efb13957f) >> ->> -endobj -565 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [112.486 62.194 222.391 74.698] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -573 0 obj -<< -/D [571 0 R /XYZ -13.423 915.745 null] ->> -endobj -574 0 obj -<< -/D [571 0 R /XYZ 29.788 651.283 null] ->> -endobj -575 0 obj -<< -/D [571 0 R /XYZ 29.788 550.741 null] ->> -endobj -29 0 obj -<< -/D [571 0 R /XYZ 29.788 535.188 null] ->> -endobj -576 0 obj -<< -/D [571 0 R /XYZ 29.788 464.237 null] ->> -endobj -579 0 obj -<< -/D [571 0 R /XYZ 420.936 204.669 null] ->> -endobj -33 0 obj -<< -/D [571 0 R /XYZ 29.788 178.402 null] ->> -endobj -580 0 obj -<< -/D [571 0 R /XYZ 29.788 139.204 null] ->> -endobj -37 0 obj -<< -/D [571 0 R /XYZ 29.788 139.204 null] ->> -endobj -581 0 obj -<< -/D [571 0 R /XYZ 269.297 65.258 null] ->> -endobj -570 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F44 228 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -595 0 obj -<< -/Length 2033 -/Filter /FlateDecode ->> -stream -xڥXYs6~ׯ`!H"o&M,\ p!؆Nn]˶B;H#i,;#@YI(>?i˫("8it@d$菐'\$$R` ]OI:obɄEV/OpmG(BB; eV~_o¹u#|CeK}{厶*?CmR/6#njqSBgo[gUd:nfhǨ*NSzRey޴sA:E4=DEMU.9"TTлlU=whI̸ Tmt^eS4N8υ359wvmw:}!B]o^OW˟Ŀ4VlՉb+qaWG}b25{4Ktf -7b~rsxYpWynd,c-ZGxY+O[OuDˌrUm}%QN[BX( 9y&)q8LSn. {lHbtDі<`WsbTu4>蜺;5N-O{W>`gξFDŽcJ]u_Tک;UW: Cb@ - zbpguaQ7eDz7L.+| -pKid -WSNYגѐfgm u$֑2~CHIhƄ U̷YQz-G{tuӗz26`!vENfkY4 7\΂ Ḥ ;0-šÓz9fCS򼼜 -FSp6^3?zi1)!Av_G4$,;l}t(JЃL_>FI8 r; V`,4H65z(~M G;mӐۻD1 u\;:QhűckThr4D-f:hZ3%U%*|](Ex-B6*fwnЅ(U׌Mn5MUAMpVC>R_Dmy;,x0bVRzPmm=il-S/}z=#u1hjjLY琯"B oNw5^p < 0mq -endstream -endobj -594 0 obj -<< -/Type /Page -/Contents 595 0 R -/Resources 593 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 535 0 R -/Annots [ 566 0 R 597 0 R 567 0 R 568 0 R 569 0 R ] ->> -endobj -592 0 obj -<< -/Type /XObject -/Subtype /Image -/Width 924 -/Height 679 -/BitsPerComponent 8 -/ColorSpace /DeviceRGB -/SMask 600 0 R -/Length 26176 -/Filter /FlateDecode ->> -stream -xϯ$gy,zHH`b^`^@Bb^|YZ-$ `n1- !߯[ֵm\rQȦ cuoU}Cֱ""##ofƍ|uTʊ_O8yh@Կ~J0L*V荷>z?}㹿g.Dor鋗~K3^=ybn]̀y;xS'on4;w뇷y'1/$g*`ISoG~_c~e[ r~~}_xMG~\`c 흻zEH7>Z6d䀡O =Gy1JVB<<-iiO+O O+O xZ!xZ -{v;_ݻv+>ǟy|=kOO Os|l}6R[w_~#I}WWOފ|nby6ViXON5dځ'>J8iO,O if\%\Ӗ -is=mgzKeSCa+iiWɛtv8Ezg$g;Pd\ jڽx{z1ƊMGebCXI3=б ]m$3@is DKczI@z=ci#oYh<<-O OOdt3Leiy( )s׹ijRd>?g:D#aiT|Q-kŠZRgyڴ( ( e:=,SKzesO[.#v?_-Io 6zsbӦ5w^xxP^qGkA$kOiP~cg#V+WY.~JF>Ҝ͎2,gJ̟B,O'!? -bFf%JL_=O Fi)shJcAB2kh=mt&ӕ [rӖH+Y8+ZΖ5[Qxڼyn>C15@ ~e.4|WoLzX{;ͲQX0wxUZ\.mC:0y!-g{y(O OΥ]ڴ&+ȑr5\!]-c3՜^Ԭ_+ZS_(rHcO 66u'ljeTXX-`FJA2q{{p=q2>Ӟa>ܖ^?R{PڶTޘv`VDBK߃mYm?lƒ?md[f`!vWoں߳&-J2'I1=W(qsVH߇T+dnB9iQd[k(~tѕw/i-٦oicz+)6OaG`El]2_Y G])a? sI%Yl䒱E[¡e?+?S4J![hC|T ^͋d/9;YJvqXarƣkh x9zĤ&gc"izPoGK/>'WZa}isUCߑ8Myڹi v;sфKh@NSoƹi[\VTs$鯪6QcfMewmzӊEvNTvVO(1Ń!ShbʕMG'i"cJJ|Oy-lIf ::vG9o2g5Rf:@O+D?685"&iXc&ihOЎI9!zhȃjq ak`Z쌮 @97Ѕ|iO${(lf0 R+wۧm+7yZ!z&lq< *}xZR; XiOBmWn -0FA2yƭsi8Ol\ӺЖK^u,G<ۼciW[Ю<=[iO&vongl- iqО^0O{޽tȣ iWN4 7 Ѭ - ZC#Ji?1#;髞KőL:v.]ҶPYE{yĴ#p;/O{=;!bk]uIfOГ/Ә>1Bb_/(<{! .:6#C~cOo{#2FemMLM_T4ڣgk/(BqnȃF.RĨKܽ7^C\<t#=Vdh\opڨOoO{ytYJM_K_U?)l% Bd7&XYW39ue†][;f;El =/-stodpSh!*&011fas_`m%ϥkCă|:0aέpKt 9^c0aZs8_ںvXZh0E gh5A1>عknj9iokZ Cs0\Z@C΅Ӧ -,hkWu>v`k%ƠZ`JNQԅ LA4ӕ)Y20fG=g8ȣHߺOǟy[uق, A$ɛwW? \1wͭߧo) Yb@|,c(ʙ}nͿ~x*$.de!26ݻO>J1WOLQeA3|Wg\b~xA LsCO' ,YƦfQr@943Ox,YƦ)g|Ǿ.:1]dYzb-1nz,YƆ(gӊI -.9e!26!_B~bY,c7-&荷'ȲC2dX4dYɋIŴcxx, A1'\GoܼmHȲd<}=ȲdO3ԈM2Y,c'\Ybxb,fYreLJ!,/%׬ Gw]Ybxb,/_p ecİ BeO!'@ BO, O!'ȲdS e!2 BeO!'2Yd BOe!2 BeO!'@ BOe!20Rϴ3/ݸ W^K$hiYF$zxѫ'o=̫n:nI ~>QO,c3fKMt񡴟 O+YFgiC{ne/Sċ/MӶ!x.'|b5dY [w|o<-xZ#],VzqڭϴJ8+I W -DX^O}Kż9\B*K,5\G]Y'v27{ţ>Id>Ey#HFt:y!S# B3Q۴{(P.֖-eIZUz,^+o_oX7Vca)Wi;wE?5 ,O PJVWg=ubg&o˧Fg$\e2#FQvxZevO'iV8,)X ?ɮ}?+kfcCsM%L)/D/Z*Uq֪<1VlR+aiO21?rug]>5dlU-s+yЧr5XguM(/\M[L ~bgRJCz8-mJ^9DMv̞6NŢYE\3;Т̟i3-b< 1.UOL^%mRLiʤu2=m-%޸Nݍ.SX||<-xZVJd{;+'C g]U6T&*o,O>eyCՊoTqĬ 繦:N9g]4;e>qNg<-xZV@Ϟ6<^i*M{FkXV -4Zj^XƸ|- 2qT7= t2l'@O -2?ZiGO[ӖE=mc\ٱ6wYӆ$j.AŭݧlVi"IS5*gL|;,z"pYΏ+*w{mp+2\O+Ns7w^m)'[O[<*'-ieƈ.jzzw G3hA}4}ӊFWfAzrzиک<'6Agۘ^,i=-XgΪ -h4ou#XZB}<]\O;˟&[Fh%n̞>ڬ)2ˣ3UJdJXʜΙ@:NaY~diDodO^_ìl?x=XfDe޽?'}[uO[|s'" +y\M !{J PYPuXU)l,>h}h<-;xe~2oޚKM/9{mU`pbl{~#g؇n*y Qh\egWxYg%ӻ{;w[pG t5d\W>ifyE<duCRLf2^Wـujq>tq}/%7 ݃mOK<ưs,cDyږO%/v.QB3CGO[ZxKFXm??<-O #N 1Y0=mֳWî4N>P2Hv߇E=m@Yѥvci??޽-}s0 -ڧoпUe2i}´D߃/}!_>-_ڰ(x c}Ws]_-+isEMdZJwq{h߃YiEiA9yJ$_-i+|F1dO؟[iZ:7>u}1:]U7ȼL-z^s.ڟ1%9YiO PXjEYJ.х܇./Rc}"r"YPY~z#nsUE≍)k<%#.,#l_bUͺ'j)$?x05$dBl(NEò80c ([flNj/?% ѐeL,! rG1#[RU c!Ynаg6>)gQ V+f!O[yB}i 惊Yn -=i{_oPJoCn\mxZBt,&! 'riZ&4?(IU6No,˙ -J Ǫ=H*66 !1: 6MeNZ__%Q_+XUPV*YYN~@j -}8m}F3 ܽA]i˶0O^U=mcaCe^:-۪2 -8(̔9ؽمfl<9ˮ2-Ne}l=U58ut{ RjC+MgśyXe=}*cCѐ'gjtOk+l Ӷm4>_!xZ\ideBA%nzgP9O!i4bT;Y—xb3e>aݻv+9c.jl}磊#N]Zˤ*]2O ⹁vyZM +xJ/(<O-+1xy˖*QZٓؽ鮔"G.q4OyZX,ϝа2!`o|Wg;w7mQ0soM2`ey*5j}.}j:ϴ@,Bsc؍I}*L5[Ԑs8q^|@qyP vԞv%viu KXËY͆l*ִ e\| i'r 3OIsi{)fP CiL>8!cUl%>V:Q鴢,?2CeZ<PC#iӮj]fԍw!(fYʛB]c8ws\O;w.yZ`sR Belx.9`qgJ7wzCʃ.N8]11;Ν0.xZ!2&)KN;X:l;`.tbc\x'TZIʦwǰp<y2ge=Hx<d" M;X:N/4Zi(~WSmJxenPRWiYx*&O+YTsiWܩXMڢcf-> -,b˞ݧnsi3TO+YƄsiK TVL1\==<- -AA<*]r|ED˾֖-kgǰ]b.|m<d&v0Wopr1+?vքg=2B]y;gesX=- -A1a\ɴMs߃}3. UxcxVCi.*c9`ܞW,c⹒i+Gי;`4\Y s[9~֟/<-x~ϻ#vi1Y7s͊LJ!Xx?ﻲoixb,f~,cГ/s?L7vXL+e*o}fMs@|D8˼m;R}1?]sNĈl| - -8/y@+ΌM o8@?Z5=-UĀ^ڤ'9z}x4 NW_s Fήv^ںo`ckbH1-` 'X (I \OkP >q'O }𺉇)\ez[iw=VIxZz=ߤDD`ׯDX{vS{L=VKC iyZ [Mc{i5iF -'O O iyZz+exZO O xZh9 ՟iyZO<-<-iyZOۣ9#GN8=<-0VOsx <-O{;iv~ xxGOk=7F 0\vyZ`{A.&`V=0Z.$vxZ`I{9 `>!i&Ջ=j15x+>,if1byZ`pVx9@[[p` ,%y 0i+zN8`\F@i/& Qg#'0ĻakMxJ0<O ݐMcTiex{#LiTޱqN#/kl@ `UO $}tx  WLl]k|rig;/M$b4eXϵ| `s<-0.9<-``x^ Lq|4D;/`غrq%krl$6ҜX3 `0w>4@ X<|EkDxH#/`JR> ikmw@`ݞ> .p:뷵=C ݏB;=m]+( >=y>yi}½|@?U53'r]:9Iw]hB597㣁~~^k?#p\7@()Fu(+C/Vm<=Z p>l\1Q$@g^p·~K׷\q=u1`܀z01@z 8ODJji{]΃t?]q5{8+}WOu9FŴ6>]js1-O ~]tosNi!tuASe b*1{gZy`~jr臾;9_x;*Γ7G"w/p΁{ݿ^}__?&2YY\ YN] YZd3Ks~~'_/|?}F֥^7~o**?L%Y*ϳl_⏯o+W 07?ӝA @VΓ7|'_ ?gol޽{Wfӓbe12Y,a4?nۮJ1/<}{A XL_;w}W\bKw3E ,Yf*ɛw>=u|⻿:z-ie!26VE9dSZdY T5lKL)zEC0^Y.YSeCư[?ng^Y,c▓7N+&96*'Ȳ2֗ O~Bl@ ؄lGń~\r BeL;` |kD ,YӤbl{,Yƴ77oc7Y,cw[?\ BeL8!Г/?$ BeLX<]Ybo?O<1Y2 7W؜.| _ d8x~W؄ ,L+6GJkJO, AA< Y,x -A<,2@< BeO!'@ BO, AA< dYex -AI:X %s"iI~|ZyVTqz?u޵[} i#%zKRlIrxڤ獫M/O,&iOtP )yڹw -H>vx{Yx8XO$Yv?x%J?<0 e동<-O $_ˏ?jؘKeV}fYs""dGOJ̏+$v83?k,-k?Ϝ@iq43jwWr/#iiIY]B^/zTVy1֓w/mG]/<*xZ`yp}ed,e{gcUYpո -IJ^UcFw.\O]i뵩wƏ/j*q& ge'xڡE\Id"&U"7v݋, -OK1RO[1QOx1W򻲶$IOPg^g<؊LkN2ıJжx^ZuL/-F6Ңi>gyO$;z$񖴪zFr=xEK]Nf5FedyzBK?UM!x%n+J7&i++ݘS]tCeFO[|uOʬrO;wh2edaV߃Yo~SuV M%G=mXyZzJjͲ4y";s{Ϩpwzc r,6]\~=l?*cˣFO/C.ʭm: f6ӖR+_J׋Ky,i+dc=8sk:A-SϿ+FDҕҒig]lpӖ_Jf&BOPy?OK.iyiXE}wV5BOβ]!?O/Fau{R J#E@'Yr.ժ{vM">y<-xY*t6c@{,6zJ*VRӘq es5O[Ais؎Uz]&_~{}Xk#9kUai L|6j\+`}6Es镲N,Vw y<1Pu͍x,=[[oRhP},]n -yIZ;#w5nCӖ,x -AEhx8Ir& if*풞6SOiaKV6ڬ<-N#zPڞo<-'OӖ_ l<-<-YOWwYLVRztd~|Zw9x]&^qz&U\;IS{'︕<ȋ4Z}|d3>UzإY.z<-pYIWw)qIfH֟Wwg]c.v}hH6_z+L,_},P)̒Xҽ*Z/-4+YJ~EiԢg8yY)tizڊ֥:)3R\}i=ok:f);o1=m}pg{[C=ueqEjүb&-Y_˧Tg %_]i]"VNrab2{>yI'biJn6-SI3G iJ^f֓xcH6>G"^L\泈5T*V5;}yO"]w{^l'J$#0- 02i-LGꑪMS>Y\}^O;Ϊok:T26?K6Y.xxڹCr2xF騗'OOzd.yI撼h{ ve?_<-0"OQiP/lч!xڅy6{SP" ӛi1Or8\V5>=mEjYvg8*gL<-0^O7J vGWׇXVEok:.Gt/+icVovg4.A {Zެeac ƾ|mlXqH!od]8v|qrר-GZ>:1bQC2d Y&{Zя[QFxZ, AAQ^HY G\Yb̕x, A1TGuqM`-ȲdOחp<䋲 BeL^<sKLL5~'ȲdrBL  Ȳd&$XzGe!$oe5'>{͵&&=Y,cs3\nb2_$,߽{, Qם>_oY,c荷觘ro[ BelӮH m\V Y,cǟyYWp}@9A @2v[KܶlbzCȲ,E1[?$_vy_?d31dY Khb7˟'{#t办}_x&}70}ӷ+o~Me,20,U e`_TrJ eef‡`D MBw(Mdk>[ g ֕+>1[ sXya`S 0ZC l>Ack`>^?;ihhƅ@0"9'IwF=8y`xϸ0hbvڕp~ i-C >6D[+ %1F0ݽڍhFQ j: K0x[ۉGvSKTsf#g l {Әnbex|3O|ÿ [\?/ϼz䭊n\f ap[;DII19[[fN޼_^7~rδa{: mۼr|M_՝=Pa&iݒ̜6 d =[/|%1WMZ4u~g:}ʕQx_}a⑟.!Zv/_Jl(0{5w{Y#1.=mq0_ZXITZ[ ƦDC+&y`E9Ÿ㲹`!gEW!1"k}`ʭ NhdE^bo<7@O{a b[z8Dym6#y{P#^o[P,}bӎ=@Rï7`h=ClgBxZM-wtlCO'x1wuv -KC8tviLJ9GO;zUM7vƹxڏiOvxawlb=|+SmkN֞>3 -bc=wYU@ X> >v<@OI[YhpV{:O=_3n>o?__=y+mͷ樂g.ޝ7%#x֝_:Wwi|tfY+4 7BNi'o`?jZ-fi@VV;D2q:xKr󴫘Zz a)y@Vi޺xd+堽yY-^;LO;6 cT$l76rӺG8dkKiN1Vix_V}qi}8̹Hnn߃㿒] زpeBVczXCe6N+;<ӆ TmFK=-O݃#R XOObLt{6O|r @=K\'6Zn.2qtevE;7xsz%>̫dAiejYf\=y~e@0Αv͞6Y=(*f|i#!-imOtRm Q{u$V~BO>SN##V)0Ȟ6j €hSi.:d%&$%Y {ZӮ_Mf2mӦH2ƒ3>TƈEn. C%v}6~$5lyˮ2Wi6eCi{UGL;+<-S%F\=yӎ[ƈ0T'+GL5>i91x/+<`ٓ7|1xy<-RB7*<`s<;w?mHL)> 'o1: $?=Vu>1Bb_/6O ~cOo{ -ik>S$FmhXKj!Qܹ{ g// AA\[?鑟t b+|']weh@&x៾o<;G~1}9c0Z0&~sמzs?C0TW??U?f -]minp]Zeqq&6]V+ -endstream -endobj -600 0 obj -<< -/Type /XObject -/Subtype /Image -/Width 924 -/Height 679 -/BitsPerComponent 8 -/ColorSpace /DeviceGray -/Length 7343 -/Filter /FlateDecode ->> -stream -x-P\I߆#"@ b@D "D -@D @ D@ UĤ -1Uw7~da10}wWߧOFdlu>ˣ v-[WYٞ12~՞IC;,sfv;6"bG E +YRl0Xzʹ-q8ƚ?s"ڛ,9nGxG%{;)[-,IΘG3%oR.oRkƲd1f5lڹf;l~0l~,l^~:lf죟dMdS6! ȦlB6eMdS6! ȦlB6eMلl& ȦlB6eMلl& ȦlB6eMلl& =Kk;;@6Iٟh-Y2p8!ŸZ2iiJ6qN B:l\RYw霗͢}q'zqې͂E=8b)l5# fΖv?GOYlЄ~;,u]l512,;-o/xg:[ojbWc[WybSs+v\y.eNieī2vȾȦi>6%u8 naSīu5$NYuאM]'^߆%~tg7țl>Fc/^hi2|ZA<ͮl4Ko}ә$eW|!'i 5=/__?Kl4nƇ_?r6_ χw|5;VѼ̀l6SŷxXKIjkᆲs^ݐ͠l6 ]Id7^Q<ҹlf/OBg2,v7ˁlgRO !OΟ fWZE'l/};tnȾͮ/ I%fs_2͛0 n A488L7g -FNlBu|bN7+Xk/]jwO{y?pW‰Gا}OK7rɥ>re>rɥ>rɥO6ɥ>rɥO6ɕM%>ȕMd\#\d\#\#W6#\#\d\#\d\٤\r飏\٤O6ɥ>rɥO6ɥ>rɥ>re>rɥ>rɥO6ɥ>rɥO6ɕM%>ȕMd\#\d\#\d\٤\r飏\٤O6ɥ>rɥO6ɥ>rɥ>re>rɥ>rɥO6ɥ>rɥO6ɕM%>ȕMd\#\d\#\#W6#\#\d\#\d\٤\r飏\٤O6ɥ>rɥO6ɥ>rɥ>re>rɥ>rɥO6ɥ>rɥO6ɕM%>ȕMd\#\d\#\d\٤\r飏^'l]lf̜%lټHXMwRl%,,~} ۫{6w{Մm=FDZu&qsfݳI&VLMr$Q{%7r&7@4ɍ$}k$Q3rh$7n;6ܸY4ܸHɺHrf)7J#)ȍ|XΜA{u;rh#9ȍ3$!7rwj~oHrn\7Ƽ:lLrS]H /Ҕf)"a1)}V`B -:NxѐtN:eB)}&C#Ȭ&b91}P@6 7QcUrRauB!;"N). A`cACmuB+!iByN"bOgMiW* (*lOĕ]VU̪ɨ,-u -`:s@LUEМ:![B*S;P)!A'wSA UCT*eDm5 -BmRh*3hY^䋩 ṮO8+TyM^T`tL/r׬2!AA牎rĤ2Lʄ\xQ^ B!!׃n* |1MԪ^ E%oc42&^^ dFmZa_Cԕ+ =*;!+rr`45W&$deC!({ԕ3W,8Ϋ;׎EXiBPF y 9!Nt€:/d #V'oVM2dtzBMkԅEW 'ljq_Q7B}:_SV ڒ'dض 9tmA 6ڶ M{T.F<^<#B69܀ݖ=TF)LtG,ϹWy,B-RRٴ -Eش}QeVwa6?+Sl+PЫLϲfL`.cʄX}6[|u6d=bB6KwcTPy6G )Ml ;9MȦlB6eS6! ȦlB6aO6!}MȦlB6eS6! ȦlnNIE>Niڊ'gݛqPceB0!O*SP)Lܔ z^TJTBHQBV6 |1H]>RG(SeLy?L a4*#hxZTHsZR FC rM6Na\ r݂4B ST6̦ U 7)LUuBUM5t,ɨjiWP8Wvr> gϴ7^q鬠pVB -T4\V`& 8M񎱶{|2irɍ$|m/:y+d1Y'xx.13RGr 7UNiEܘ^J$7kzNrtRe Ɍ5;NӳHdr#0KDNU$7U1IIljerN4"7ffTI`:ܨIV_FM8ܘe$7jW p5"gs7a58[j8a=a}?2afbl',7__F_}!>%>ȕM%>%>$>%>$W6#\#W6Mr飏\rMr飏\r飏\٤\r飏\rMr飏\rMre>rɥ>re>$>%>$>%>ȕM%>%>$>%>$W6#\#W6Mr飏\rMr飏\rMre>rɥ>re>$>%>$>%>ȕM%>%>$>%>$W6#\#W6Mr飏\rMr飏\r飏\٤\r飏\rMr飏\rMre>rɥ>re>$>%>$>%>ȕM%>%>$>%>$W6#\#W6Mr飏\rMr飏\rMre>r}5nש{6d3fw]l^%,6~}G ;{6O=~} ;{6S{ Zl3 뛭{6ɍdMrfp5s[6ɵ#WgܸieI@41I;k$Q3N^g2l 7f擓-66j$Cz%w/A3lӃ5h; Luܘ4ܸi.Ͷ}l$ -30u~g@uO4\ė_Q>c%]%H8c}Z4 ^ -g|w;f0z/DaRbb#WG5L86,6v3Fj;j*Zl4so#R7W堪Pt<ߖnGU-Fr!<ͽmL>vQJu6]nNTk8vΌF+yWʲfgV/ٮ4c 4xɽMWJ'սS|UW FohjD`f^=rreOىTEc)@㎜AQ&tN'4 N[?h%Kϲ#s]5`]WKҊcTnljpRs8fvLc[`&Kۑr -g50Q I޳^tt`7ʹ.γBcNWh -gpNKi^[Dp>,;Yw (kAV}D~&(Ӝ3Wf.ܕh\8s-dɒ/5gES8v|f3νbﳢ)ٻ9~gES8hˡ0l}V4N]޾ϊp>N߸N7Y3ٷo)w:k!fW<ʗ' `;ٜ͒*ZKk&i$e\/z٩SalɈly_>dhS64}vfx6&Ytmj~?6e3g6Ktٚƚ::eNG]]N/ﶊ?;4-/Z͏%|k^^he3 %~|D#Mo%|!e^g-k&Fx5']Yu+5eѨl>RYۥ3Y'Yu641\{ۏl6K= -1WM/\(yހfu5l#r?I̵K '%=AoJ~0*1zPgG5GҧWvvGNljWVJ7ᤳnoXSL^n)gsOx=}ϲ oYtcBFxvWJϢ?Yl Y%cʜyE_5z(/Zz+gJHJtuuʉ+oiB׉0.42:bt:M:YL^=G6+T)7vϢ"9w=)mrxxG4$x%͖F/ͳnG -^wC$h{E3f6gG߳b4g6hGyGLwRfguDbR2 iu[#z5՘3 ƚl 3L s[%wdoF=yn𳱛͖`_: -endstream -endobj -566 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [526.874 692.208 567.119 704.712] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -597 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 678.659 136.095 691.163] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -567 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 651.561 136.862 664.064] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -568 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [438.144 651.561 546.214 664.064] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -569 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [85.756 638.012 197.82 650.515] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -596 0 obj -<< -/D [594 0 R /XYZ -13.423 915.745 null] ->> -endobj -41 0 obj -<< -/D [594 0 R /XYZ 29.788 737.428 null] ->> -endobj -598 0 obj -<< -/D [594 0 R /XYZ 297.956 214.77 null] ->> -endobj -599 0 obj -<< -/D [594 0 R /XYZ 524.558 63.19 null] ->> -endobj -593 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R /Im5 592 0 R >> -/ProcSet [ /PDF /Text /ImageC /ImageI ] ->> -endobj -604 0 obj -<< -/Length 1942 -/Filter /FlateDecode ->> -stream -xX6@_z[sm[ 61p%U=v@!)Yڻݤ6!M pF0kWّܭa0~Dф1KN#Hv[B)NC,n3g1lb*FBʕ\J6⤈(!bF(a4Q9eT/+*Pdj 0 ?y[ו}ٌkf]0*'ыV/̊YNhݛ-.޿ ^ !LYu{0WIn$)tebŽN7VC+# -wHFȜXP@PpjGԭS=ۮva3M;xmfkTvvKYb`9q_mcuɾr}_d"zo`1wqjǣ8Kw;+ۧڍt 3/ctyWg9R2>FqxNҦ7}QV 0#^U<<^8溄;`hP@bӤrbEvc`JwiQap Qxe\^.duW¯秽c*D5a]xs[e0@kPþ0Ri=Ĥ sgݴ.%^40F/<Pp -Hã*`n HJ! 0w)*w 1<D aQ^΢/j,[ %I *FPb4P@u8~8~f[fMq)e\@ ȐAZ-Ms7zw C3X*0s9 &< T\> -m([^)pCK:>FWú{1YdffC" >WrY !CKx^D8ÓLW<^y.CDgYNS}U^X4sG)E|0ڸoHU$CdlyW4Km(}Pǫw~>p uJ4mei%`C6Ƈ7 *Ro##=W&7?CPؘ#xI81glF^ħGBy'K bNJ]zE%Y]a#WY+ß솅0N4#+/ d%B,䟋ߣi`Gczi9J7gu^O}q 'BCOdg49Gb4~ =/uC51c*2^3`.[ )> &b*ŤCYڵ}7s6vin ɊƖn0$~> -endobj -605 0 obj -<< -/D [603 0 R /XYZ -13.423 915.745 null] ->> -endobj -45 0 obj -<< -/D [603 0 R /XYZ 29.788 737.428 null] ->> -endobj -606 0 obj -<< -/D [603 0 R /XYZ 305.067 642.616 null] ->> -endobj -49 0 obj -<< -/D [603 0 R /XYZ 29.788 622.006 null] ->> -endobj -607 0 obj -<< -/D [603 0 R /XYZ 29.788 551.055 null] ->> -endobj -602 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -615 0 obj -<< -/Length 3103 -/Filter /FlateDecode ->> -stream -xZ[oܶ~$#R7oi.6vч8JZ[g8I]ND:C~3 /ĝmw;[w\j|'J#rP$V9?"=rX$XQ/ZI$Yr'߯`" -3{ a*+w qCVEgI --mEK6]Yo٥ އ<"0c t05pYfJѳD5SJ5}ϡΣa3c4uv[ZOi @su3.#f[:Y{uϲ.`ýّH7/gk`,`yp#ad~GԪVʮ*.tD%*lE`WX XEURuÊd@'.y &oZ=Sg2o7Ue >/Oם9>hj,XBwCMi3 V[^<nm :cme/ɪ"OC%xL›\uji /uVuPEBє8SBElSi8vZRL& m`O?.vơ$@VAڇKUsث:U?mSOdU )sEvŘBmݛ3!:oSl_P֍4 D3N} 뺷,O9XQ$Lmg S ߜhHln|h-@ dC IXH;wtkbKfgZfޞ,ԲN -;ɶ[<JX~AB|"ܾzM?_lTO0 6ΒOCZ)6l;A@ 8w_tM)pH\՚0 -ʹd娇љr)jn:B*#2f2 #ܴkȺ2^4#(g,LɻY?7sSoHQoJ(;Y,2VmKHA[ z-hX҃,"t dߏmQX9ݒ؇0D¦L3bQLBZ=Edb/͐s1ֹ#ٽʇ^FP -]hk|2D*}3zU98نQd4'm&C(Hfv^5y)2~렱h\7 HȪ"}xJ mR`93qŸR?_2bhzѩ'MӲz{@v]OBr|+'#4Dvjȷՠ}WrfI  vJi7=}&u`kHi>PQFpb1T5>ep|dabX`A  <l_X>R[=Zol"9|~wFKoR{{R2 dg;,ju[A"nFOw%Th.Sq`M1dowO]P-1 tpŕh[.17M;҃n -DBO 0uZc]vj9H ʊbݤ9lhţ90!tt67!u_cӚZz!{u)Z436v ,DٛÝZ"mw CK?hsP2K 'M\ lyd;YgoǚTmrla-MիXR/5D_2>$:osAs mN>C4[6;=-|j:?=2.?:yr@M+ ^<'ߞ -/,A"?BǮ>h[? -ݰ_|,j\g膺Kk㌯|[P/D8p/< P쳭gz/ӻ?} -Y9ST'<}zo@Q0pDB>bM_g;ު[ ftwml?ћ_7/i|ǭmp̗zrwlWǕRbQ^1Pa/L62Ђ3^ 0'DIO.#A?AomݗC]s䅮~Æm╾~G(Ce^סj8j0д()I`-7lL֡s6K\ߖ٦gP q6i_qs>~m[i($u<_ mc -endstream -endobj -614 0 obj -<< -/Type /Page -/Contents 615 0 R -/Resources 613 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 535 0 R -/Annots [ 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R ] ->> -endobj -608 0 obj -<< -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 1] -/Rect [160.043 485.257 200.094 497.76] -/Subtype/Link/A<> ->> -endobj -609 0 obj -<< -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 1] -/Rect [510.593 471.708 533.919 484.211] -/Subtype/Link/A<> ->> -endobj -610 0 obj -<< -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 1] -/Rect [76.072 444.609 109.253 457.113] -/Subtype/Link/A<> ->> -endobj -611 0 obj -<< -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 1] -/Rect [111.704 389.978 207.551 402.481] -/Subtype/Link/A<> ->> -endobj -612 0 obj -<< -/Type /Annot -/Border[0 0 0]/H/I/C[0 1 1] -/Rect [79.903 357.522 235.74 370.026] -/Subtype/Link/A<> ->> -endobj -616 0 obj -<< -/D [614 0 R /XYZ -13.423 915.745 null] ->> -endobj -53 0 obj -<< -/D [614 0 R /XYZ 29.788 737.428 null] ->> -endobj -617 0 obj -<< -/D [614 0 R /XYZ 29.788 648.325 null] ->> -endobj -618 0 obj -<< -/D [614 0 R /XYZ 245.013 606.185 null] ->> -endobj -57 0 obj -<< -/D [614 0 R /XYZ 29.788 582.541 null] ->> -endobj -620 0 obj -<< -/D [614 0 R /XYZ 29.788 411.866 null] ->> -endobj -621 0 obj -<< -/D [614 0 R /XYZ 29.788 377.425 null] ->> -endobj -622 0 obj -<< -/D [614 0 R /XYZ 467.558 284.213 null] ->> -endobj -61 0 obj -<< -/D [614 0 R /XYZ 29.788 260.57 null] ->> -endobj -613 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R /F89 511 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -626 0 obj -<< -/Length 3653 -/Filter /FlateDecode ->> -stream -xڭks6?&n^M'i؝$ZE$U>﷋]P$-YN$X`߻x\| Us;+wޜGWN*":s~z4f4N3FӁduiܯ%D#{*΢ZMg:)yBN O'E] b/8hTOtN'} ܃tπ\-R{cl/-0VH\8UD' ZyWu=`q 2Iޜ]KT97wNxQ;QBY:fVb}Q<ʦlqgnGq2qO:w|j 8C<XLS@'9! &_ ޖm6JefZ{:S,]0?";tPx -94_$C@q/ -QKodۼjob0fC 8W,#MXņRUeV2-)Zi*Hb*}H|CzM@FQ*T0`W#cisrfzū/I8}dM+CЛ~dYZF2kY&k?2j:)wW=,Dz ~X[: 1gB8ݕ;`l8KyLߢZwCXbAx1.986RWȇb~Օe^L Գ'`AҖu]Te%sk.-+!B%w]اg1hmݹcYL &J#G#/|C+m=>9Z@?bOv_B|1*]zr:kS6R'ºJmsD%l-/(6_l˼M P# -ز9iÔAIc(!zvMK(V;~F&Jc˘16s --SY͠jL7cXe -L .{7]s6t?MAC=mf z Or_H;![D DE5zSJjm)%>k>f$c.AplxgV..h3T<aw)U˱5f'gm 9"c DgFcd t $:^;Ϭ oG`m.XdiZ@g3ABm"+%m}Nktßgzl[o2tF:t#^T>~H d*ֺi Yy.fy8f^kjoaq.r\lYDž=T':f&i"4 lmz[5SlSKŌ du:aOm4>2 "Vj|r1=C9 D8]]S՘ER1!f=)S*5yXc -=G:G5wiPkU"/m66:܋jJEW  -*۸!>"<{+P2@3L~岭 :KE}Ug)ϵB'Wx#U0/&C r>J4 wعHiHcpTOwSy -+uz:!V.B_ςo:] RMxz! +QT@~UA;00 -.mc\|lF!.l>#m]uδ6z:kRҦ8b~2a6NII3Ie |ɧ7ka--"8+Nhg694qgyW|Tc8 |H*Y0. -c"+a|DyD<3Za`+l#Yo!Oj=/(>>AcG"Bȫx"1Lg! -`*4 pG8Y4YjpĨ`6c+psn%9G" Cȁ|+es1LbM3.Q_ c ,-x}s^y8ŀEgfحy"vDUdT}Aj x)8.{#ޥLEzU#g/"NIi8=S} e/@USlmc|QCM ²1g8iwZ!Ff~{˞T&NVE_vH=`jk\=DʼWXqs -endstream -endobj -625 0 obj -<< -/Type /Page -/Contents 626 0 R -/Resources 624 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 535 0 R -/Annots [ 623 0 R ] ->> -endobj -623 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [129.215 442.815 210.71 451.526] -/A << /S /GoTo /D (group__bsec__interface_ga157748484a31501acfeee3df656adf54) >> ->> -endobj -627 0 obj -<< -/D [625 0 R /XYZ -13.423 915.745 null] ->> -endobj -628 0 obj -<< -/D [625 0 R /XYZ 124.457 641.626 null] ->> -endobj -65 0 obj -<< -/D [625 0 R /XYZ 29.788 611.515 null] ->> -endobj -629 0 obj -<< -/D [625 0 R /XYZ 247.26 63.19 null] ->> -endobj -624 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F120 619 0 R /F44 228 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -634 0 obj -<< -/Length 2884 -/Filter /FlateDecode ->> -stream -xZYs6~ׯ`y_FH x[Gd˶T'5B9䄇'Fl-8}|胘˻oPփZobz\ˏ}'f̊wB[L*d|~<]uib.ÿ9"fz;aᾘR:4: 0b8EmG4i -(_4^qy%zb6r "1܊_DqxRqqВˈ\#YY)Y%M}dy\osbݽc'"+wq^omF[Yewߟ] aWt!?V -[.([{5uӁʭۡ Ǚ\/>@':6͜ ׯHUdeAo,J/ө'p&@1'Y 8",;{wĹ Y|'$^iYVUV$Ϛ#IhЫ gHC LF ˀn fZ[S,IPOSҳf_9[mȡaf͆f^UizYS&,ǻⳬwԎ\23SM/+1`vf+䤅u݁WD/OQ؎'8tmwߖh6Y}AM-֛xfX7h5M(-ow2gc6qU2+ք&-==\-'vFÞDI5Gq^%{U&b8 f>C_l]NqDT}[G^ʞbdY0RbM{.?<Ʉ7`WfM5: F`$MiZ6Yᯎ1?1/ -b}W3 -t')VLOZe[QVII?=ĝ^F$6؛۠=7W9[Z%֟ƫ:v7e}@Qtr(2.3Z([ڸqY -3KzVr[uO(3Ut`잒ʃxL+Ňs-4I^ē#dǓ*'ley.E|L(l]ɤ1l$r9lbOBJk{v8Eg>vC)u - 8tHwSpuG 0c/sD@`*55[BIc"s-7Q O:o"[  UYɇ񿤘3Vmcn? y]z F@m0f]JIg*`L8,Gм݂G5{6roʽtTiRBVzL[pC]^@+h -Ƌ .%>Տo^^vŅvY{^w8~s)w -2xӺn6ك}2R\Z/iEƜVĭۺ;= 8!xp6O.+4x ?3B^ɔ.mNv|q]Ue\NHV< y153U8)/tn zR>>~ -x`4 LLszk12}h&M=]a$0Nj=k t`mTP%TQZ@ ,pX;7Fw猱W }EVGpȦɊ -25":7D2+SӱѳR:K|͊uަR3L -5_~G= :IUt)QO~dpþa`9uyA1 TeA OkUc=5tmZǀE[VO*ϱSwfD0tERX}^gU%cnVmEMB:gaBC؁'4PmM94 Al&)9v8KF;|t+ȷ5 ,(`.ZXj̻ -b6k"2o=VwFuGCUͦ<1j)j6vK`>Gko>|i9Il/3"rt1P'$ᡭ ?*"?y*)k8:b 2)xt^̭Cq8ܷq0D^ni., g8 bjY37|kSտ亡<49 e'@n(.- =ݮds; ; 6UV?]7[*˕Bq8"V!!< ~v_hAsګ߇A] -}g:iLхA.m7ywweΎ,pB{ ? !Cz3o es0I7֙='*nustx~L~F[%[k1;n}Zvp%[aa4A&=GOQh~N_OMHN5ek=`fX^ʏ~y*oh ɞ -,쫲MSB*U_0"iV:/DˬIvU]w]B* @U;Xx0-c#osfŤF -hyfYoEMɪщ*)y2P?[b-|i -endstream -endobj -633 0 obj -<< -/Type /Page -/Contents 634 0 R -/Resources 632 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 636 0 R -/Annots [ 631 0 R ] ->> -endobj -631 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [129.215 505.197 210.71 513.909] -/A << /S /GoTo /D (group__bsec__interface_ga157748484a31501acfeee3df656adf54) >> ->> -endobj -635 0 obj -<< -/D [633 0 R /XYZ -13.423 915.745 null] ->> -endobj -69 0 obj -<< -/D [633 0 R /XYZ 29.788 737.428 null] ->> -endobj -632 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -640 0 obj -<< -/Length 2645 -/Filter /FlateDecode ->> -stream -xڵn8_!̓<ɢn`Mx,&y Z5a*d&EuG秿3c8p00A cFvF#O :{b.ÿQ~Œ`?Ǵ|/Q쀹 `΍$F"FeEz}`{+G'g>>,W0Gl5;$zsAJ#tsxu?nhOf=fIߜdQd_nbGqlD <3.7un-73QuӉoG0? 4F_# Dp3 -l̃,֋LN0oxgE}\$#0O܄dw[U"4-{o4[营F26E#{vAc)K196GhvH]^46&CX@ݔ ;2ׂ%.qh _4 "ox^BhC!9(w_jM`j+v6)_ܡzIlB9Ў@cYЅA{}__M"! -BjȄS2̚D^n QJb;LȻ7g!_U^7ð3MbAwFE{r 7z 7ě:ϖ4"E]ӭ{FE33H EhFɱ ./rKyK{&`8d` "fJ/i 9@?̋"o21(hqBDZt2]0OLW"3!;2|[ܩ$Ns]/v͓ן^@rBdBi+R[%UOYU`Z!nD5=Y ]4(x٪o^PZ+Ed4uFA۾e5`+僞S⫢4^MaxӴoxzͭjk}NFwml/ItoW<wk*tKA&]`al{a2 WE~@ZLw(SERas/ImXi IRO?1U=-#zDxoяҥʲPTi -?J6߿Bb?J"8nW?NVw?zڞSTB0enh\fk;űwT~ -=JM2PU*Q tO s.,<׳hB&x1^ktT6Gad8[ț1E^}|nd49˭Z؋EӬ&WK0[)RLl4S]MWC P: u>R81iP M~>0ZN;܄l|"SP(oխ4=ƀU6c5 s KwYdU$!A߰qͷV鶿DemZ`?q;y8ƷuS&R4"Aj~~E&ȒE;NlѡBٖgڏsCBnR`Dze2pXLM籝}/.6K -7!N$Kl7W`2c>hIp9Rcc/vq`fbk -50hϧ7Ț8 ON07vb$ii|T<T2j(?I(z9oÃ'0nۄ1)|e:y`p y\^~ mka(hכU}ȏfVkл~Pgy[^)uqvC09@č~jx @Mͭ( o] ;n|nGP 9q.)I8 y \_ -W'K> -endstream -endobj -639 0 obj -<< -/Type /Page -/Contents 640 0 R -/Resources 638 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 636 0 R -/Annots [ 637 0 R ] ->> -endobj -637 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [53.898 228.11 143.761 236.821] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -641 0 obj -<< -/D [639 0 R /XYZ -13.423 915.745 null] ->> -endobj -638 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -646 0 obj -<< -/Length 3484 -/Filter /FlateDecode ->> -stream -xڭis6 a xt;4NNҤ:(H"UQH3NxM\̮Sg՜Wgáf|G$$:qH{ x`$ s: DL:Dpӱ.q 2$gg/A))'IEl鰄DqD>>l}(vodTu+g?]@( dA)  )!3*b$:AVαWׯx"$,L\yx]rUm^zU/bt)}0D~l HO6@n-kĄnVΫ^蹦nAz~fӕ^VZ ~M\s}WrQg]kͪ0[ 1Oʯf[H1J%KFFplcFPWÊQյ܉H -1@7@(",7< Br0D/۔R`>M'ʃEڦ8|SeiEaclc8\Zj,c `@KRA.dę웎W>L._wͦcbz,$* TLjwGrm>%qmUWTsxwfBVzf+kh9-J56LYmbjfkR8앶iƮY "3.)1б=#-=; r+˅~ZiR^ݼGu?(vȺ]]AZ]*a96ʌQ{Ї>,% E,cH/MF!ߞz"NqAO|_BH* CI  İ&1,fuZskJģȲŝ8ȢОs^fE0~?ӅB4EMY.L},/W&Ft #! zSh)XnBr!sl|Fqa&lam^2c%'0q >W RPD ';CQf/b 8jEbBNگ@bO$"O -ϯ}jugx]c^WIS+l-f]ɍst8~[yk:め4ofr SȲ5gC6%&Iu~_ʝljNM 7zm `hU̳YW;b.@#*^?]u@pT'4.#k;}RO=2 47/\񈸍UУ<**P -bG|WPP-G1\QvՔbኊch2>WG -PEQ$~Y`( q7]ɦD‚5df 8yk^Em+:6[p=Q,v8bX;'}γ(tGqowz'0=3rlU{iM;k鲖SBBT$b+5Kf=g9܄AE>8m-= +00}v_ Hh0Sa=' {Qڵca39%6KǨAD](\ښQNvinԭQ 6D160ڳ}V֐ԒhKd*b;ִ>FuVtMmY^}Z(cHc=\gյPt%Ba7퇀TŰ_Tʃ"kc:mk4[h#4AO݊VVW ygT'G6KKVSd؁ܫUb=X39Q~[.>" Ur-NC= Q9M+gɴpM{7cۺil_Wvm\@Í=R;XU{CZ&񈮄0; -7V6":OOucZҦ(V,2Ӟ9~!JRhx%#(laD$N\C d%CyہIm8RPA|liY-rH/bD,=]&-qO/>|h?!on/gWF1T|.4y꼕ߵLgSH,ą/1bHJVD7BHiqֲfOѠ' =zzn;&̺1Rd*tK;ZDdte>D&$ƈӶIیlgk|@V] K^=^J87>7Gd4qxo@#W`cYПCs8Ȁ'?BM@ux o+83k{A4VMDŽS?}_7\;O{eUgl{w|Qe&+n356b\ {Wa{ )]j9O(rdUD:! wwq8]{牧goE/PWP8d>M@f9g[`7X??|}~Y-7fUǠPwĨqqM=&,Q<6a Y#G陁7tPo0$2ŎG8{q3p_m?P \.36^ ]4}Jkz7۪I qmQ孽SD~*v"Ϸh| ֤v6,NN˾/^ -_foejamgLʼnsckZ8+ 6Oh 06g# -endstream -endobj -645 0 obj -<< -/Type /Page -/Contents 646 0 R -/Resources 644 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 636 0 R -/Annots [ 643 0 R ] ->> -endobj -643 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [112.478 186.253 198.157 194.964] -/A << /S /GoTo /D (group__bsec__interface_gacf6a5816306dfc1e3c0b26a6d459fc71) >> ->> -endobj -647 0 obj -<< -/D [645 0 R /XYZ -13.423 915.745 null] ->> -endobj -649 0 obj -<< -/D [645 0 R /XYZ 29.788 683.386 null] ->> -endobj -650 0 obj -<< -/D [645 0 R /XYZ 29.788 651.837 null] ->> -endobj -651 0 obj -<< -/D [645 0 R /XYZ 29.788 606.952 null] ->> -endobj -652 0 obj -<< -/D [645 0 R /XYZ 74.046 397.525 null] ->> -endobj -73 0 obj -<< -/D [645 0 R /XYZ 29.788 377.594 null] ->> -endobj -653 0 obj -<< -/D [645 0 R /XYZ 29.788 51.866 null] ->> -endobj -644 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F29 648 0 R /F120 619 0 R /F33 531 0 R /F30 532 0 R /F44 228 0 R /F32 514 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -671 0 obj -<< -/Length 3125 -/Filter /FlateDecode ->> -stream -xڭis6;#gLvi8Mme;IFCS E*<}ФٙEû.bzCMyb2^A z, ]Rj#7'ݙ<(`e.#W͛=!_ R#  u 8 =(q)@&@g;LȌINmM5%Ў19:ɘ"lr)G˲ BTu,e65'huDkoGHMhO'A)MB`!Cbe=x{j2?]̋ǧ?\,zPǕ!4} lXTfԝ8Fj\i 6nsmUJJVI4ٝY^Vq6ռT`vSW/D -ON0AU%;NcُyLK@`c ! 8`C$MJ<ÆP[{B|<mͣ -d/Z$TAi9ƮX!c<0"WaEK[>@j,FQjB蹠(3X؈^̢]^uх.6RЧ1ZQo4*p -Q_,ڳŖ7=$4t:a[HBuK( J~)D//k?vCr~oQ%y#Ԩ{Y7n+jw+HmQշ܆q b \.K6[p'oQ>aphQ}Γte<[BxBRNM@Ǡ(RSq$hݔ<^eYߔqH" g+H1UQ7y×HQ2MMEPOq] g 4N(FtSnTLli<m/0IB !7 H)ñ%u1YVcSO5/+Z~NR|G? gipTbq\+ҹ0RKJ^UI)}.tsyy囟s_Hgyc6; -w&'4)=!hr~eɣ?Z({ti+!ݟ<`GϰyP'ZixgSdoPjNZT[mrdMr [KTk`GbZȑVX/ǽ#vb)85&N}[$s9]_yu:_\,Ao../^/^><(m,Ƙ>;6g"G2VmNry6*=O4 qRQdF2"{N_ W&T#>K;pTɪ>$jZZiQ=(C֌'~V7@ۺ +J npQWkw&@ Vz żT%F=n:EUEZ7{QYy(̅a:d"hL{ca+)U~jm.̓)?;O\ͺa[Po#˶BaN%;KhhdR[UYAXAm(ls6w!ղAg6 ћmꨈ ;V(sS:KNM:Ȫ/kbYedmm{ķA\y'=>nHBwuS[g gwD3U$c$Z.#ջ;,<,SM9C٧1CQ" `M%g'K,VkŅ+E)x'8dX7+,1BG`P8t1[+>,p N:RQ -} Ҡ^W&E-UZvl|5 Knn"@12_at}7xe&*Ef^*qQ]HplRK##Zu#\@X H|w'UT%Y44-Giߦp6oP|=bL,3& - (h¹ @2ͳ7I5cfoLk&p~+H:%m Jԍ+d)xg/ S>͓JUp0֫:n_%, |M[h)լA-&s{I>MZ{+z͊$[(m]˞j9ިeG:SO[b  -endstream -endobj -670 0 obj -<< -/Type /Page -/Contents 671 0 R -/Resources 669 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 636 0 R -/Annots [ 655 0 R 656 0 R 657 0 R 658 0 R 659 0 R 660 0 R 661 0 R 662 0 R 663 0 R 664 0 R 665 0 R 666 0 R 667 0 R 668 0 R ] ->> -endobj -655 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.529 544.141 160.498 552.932] -/A << /S /GoTo /D (structbsec__sensor__configuration__t) >> ->> -endobj -656 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.529 525.212 160.498 534.003] -/A << /S /GoTo /D (structbsec__sensor__configuration__t) >> ->> -endobj -657 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [53.898 516.074 156.314 524.538] -/A << /S /GoTo /D (group__bsec__interface_ga847070d3ecfa970cb2f716a2d11fe219) >> ->> -endobj -658 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [200.349 506.283 302.764 514.859] -/A << /S /GoTo /D (group__bsec__interface_ga847070d3ecfa970cb2f716a2d11fe219) >> ->> -endobj -659 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [45.529 496.898 135.392 505.609] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -660 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [175.243 496.898 206.525 505.609] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a06af666972edcebef3302d015f1d56c5) >> ->> -endobj -661 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [166.874 468.505 206.525 477.216] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a92665e4f2f3cd5237814488774c0f546) >> ->> -endobj -662 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [217.086 468.505 281.843 477.216] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea2368e219ebbce4e1ede7209486283a6e) >> ->> -endobj -663 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [166.874 459.04 214.894 467.751] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a150ba3a737fb75f56052c60d55246ae4) >> ->> -endobj -664 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [53.898 449.823 231.631 457.825] -/A << /S /GoTo /D (group__bsec__interface_ga6c18af8c9be0813f7d8e3547e58428db) >> ->> -endobj -665 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [83.188 421.182 185.604 429.893] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -666 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [235.738 309.149 358.003 321.653] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -667 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.253 295.6 220.518 308.103] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -668 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [427.86 295.6 466.962 308.103] -/A << /S /GoTo /D (index_intguideBSECConfiguration) >> ->> -endobj -672 0 obj -<< -/D [670 0 R /XYZ -13.423 915.745 null] ->> -endobj -77 0 obj -<< -/D [670 0 R /XYZ 29.788 737.428 null] ->> -endobj -669 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -683 0 obj -<< -/Length 3271 -/Filter /FlateDecode ->> -stream -xڭZYs6~ׯ`i)77TJN)ָ`T3 M"-;U -7v3v3ޜ0Ë<+] -\Ϩ= %H<3fl)ץ47 ^h7bܩ:BnyF@ЊB\4|qmQB;4=hJ'du/+XbWcI-Sq݁Z\FdynjuZmJ(]O]t= &EcGg!(cEnaGVF)SI;Q6U݊gel0# F$-q7rl@aN4͜-;%^P:\qUxe -}m<}rp8U*@܆ z@<:E"Uk|4=[5?G-$\=+۹k~G=b)P5Q))ߞK2kePLI:sN,!a׷u?g6bryS8lvJeV/,&;mE:D^>ܪ!/T nn>.)m=vYYF6 -!]~ǥ+h{}uss㛿jqO,>C R&Zp\h&,*DZg:I=2721kz]}^Cu+=C{K(in!k=nE5?(gU{A@G7`<) -޼~u8Yl{û?Y+﵈Szmr!2Bi6nدNrd0|$տ́T K9TBz8dH8ܷ}V]j}0|^ -/sBC \"5a]yWu$ur~3/FlWSQ402) 2UuxP0x 1iq#1(4(b3vBn#qMBdLS≎fhN#f5)k, -K D{fH(^sյE*/Ǚ<PƑ* d,@7upÕPU`S9)j5m %Ȉ}#ڣ"&lb1ʄH/`2[c͖ׄz>$X5S|6c(柔(oiȆC74c],G--[7\73mgv^4/(܅y!,ߙN,_nf-+= Tg&f;Kn5E V]΋crGcyஆELOvf)EҎ1edSuuSf䦊t `DaD[:ۡkp]Lw7fĜ`NS>DA4C%BVR*2:FզMJ,G GMyjAV i2un:nZnA(:ldҾg\nR8 ԈTFөHs9F-r87J@u I2TFyHn-.BX#Җ-vP`_  ?+S!d:Mn/W/+mO<ᔽ9;5#;\:C9\)qt0ɂk;)'ٯQiY]FFy7^,͢IimFĞ/~V3!x횼J@z:% =ySZ΂cx0:18(ONpN0&jZ5L'v9yEV Y޽p~^g$qh8͚C?Jc^vqm{G;62Tj{;Spr#.PQOA,2ud5(V4Y*[GX%b#TK25dFl%sW"R795kD5Fa+j3-p:41ZQ3vDmYsױeGTC - نn>aڂ=*9q]u$U j;كx@_(wE|E/@~sk` gB̅ T{r_0=QV+E=7t4zn]xzk `ijY1]6LXA}u/LXYVA-6;QSn`dTj3S&W'D1~Ȼ_Ki=a;$cZ!وZ^EcxثJ:/L` l{`2T_V E$0k(C5*SS~65~d,T&l[~oDU:n0{Y5p 5:pޱ\Y{س1X+?L >.]=jnGG6|)@Xnl_8[`3P ? -[PA5̜fs䚬#4OS=ƴwRGj`7b9'J?l'׬τW+y:q&!M$zghI620Ɛʤx1O3H^r' ~My0=pž:x&ۄBX{!tgk\>*x8P[!VuK.@jزA6݀'nڟɫ!.=޷ {Y~#-JYmJXX-l-+XClW1(B|h -endstream -endobj -682 0 obj -<< -/Type /Page -/Contents 683 0 R -/Resources 681 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 636 0 R -/Annots [ 679 0 R ] ->> -endobj -679 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [129.215 597.21 214.894 605.921] -/A << /S /GoTo /D (group__bsec__interface_gacf6a5816306dfc1e3c0b26a6d459fc71) >> ->> -endobj -684 0 obj -<< -/D [682 0 R /XYZ -13.423 915.745 null] ->> -endobj -685 0 obj -<< -/D [682 0 R /XYZ 29.788 351.113 null] ->> -endobj -81 0 obj -<< -/D [682 0 R /XYZ 29.788 342.087 null] ->> -endobj -681 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F120 619 0 R /F44 228 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -688 0 obj -<< -/Length 2471 -/Filter /FlateDecode ->> -stream -xڭ]s6ݿB6w{$nNslg:7IgG+q׼J H8w3 "ζ;9/N`p~iRΝ$,BgKBd3] -|y؋; a‚;n&a0tײ q?rℳ d0'&(QyTνL?0AXD_؇ոO-r%H-2 'eaZw+y>z5xHÒ&o8>i^,>K8v7HY$Ny_λӺoN]'+Yuu׿_A=o+ÐTbXItTi>SG -k #kYj:C@p4wͳ ~H/[ρt= B[ w t%y<޹\v& lהZzAE{~o"zS06kIy0nRبR>^6ra͂-*rL`dVE @5aVҠ)~md1Z֍MC̒IFuCQq<M}Og2I:9dԷbd+ΪH-slj, ޏFd7#{ASle^5V6趠V<(tZyhF-oH梗M0&[*%JlGRGWX0 /!֍nB|p< sGf7yD q]4?f, ĸ™+b|eT - -&Z˦]MS@vgB{؝&?} ^̒0OLh`PBЄ۬3@9 rx-1G34Ш گi I|Sp./![ vO(gr?8k^U5~YU'&Z+0}٣=rguzxA@NO:i -wh`LwD$cz5`;BgL;,ih/S@ʧϣ#aYMӴ)Lh@̱3bdf[YfX1}[4 3Tbx[?2!o1Z,Xvʓ"9t5 TW$BuV&"B=]A=7ȽHU_" -0)z"ɪnGp#LJIf zL QU<?oyˆ%WE:~Ă|~⹾4_M4 ~ tT -//{J߭eé Av} "==WoDŽН bY@/P "TjoxA|7ÃC37LT(ss5LbGБS׋ 'O|;,I;',s]1MB.`* <=v#}K'c#"Ή;ug*$d1B>=_?eyV+Y %eJ6;a%*8jp|?lB TΘ5(~ĵj{76YH%6k qUwĺP]SwYPUV{< y}>aYm ݏ֘ %|mlNLNtG64pLh=򨻮./z 3l}3 -E1V& -endstream -endobj -687 0 obj -<< -/Type /Page -/Contents 688 0 R -/Resources 686 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 636 0 R -/Annots [ 680 0 R ] ->> -endobj -680 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [112.478 710.784 198.157 719.495] -/A << /S /GoTo /D (group__bsec__interface_gacf6a5816306dfc1e3c0b26a6d459fc71) >> ->> -endobj -689 0 obj -<< -/D [687 0 R /XYZ -13.423 915.745 null] ->> -endobj -690 0 obj -<< -/D [687 0 R /XYZ 29.788 690.281 null] ->> -endobj -85 0 obj -<< -/D [687 0 R /XYZ 29.788 682.267 null] ->> -endobj -691 0 obj -<< -/D [687 0 R /XYZ 29.788 482.42 null] ->> -endobj -89 0 obj -<< -/D [687 0 R /XYZ 29.788 474.406 null] ->> -endobj -692 0 obj -<< -/D [687 0 R /XYZ 337.74 394.308 null] ->> -endobj -93 0 obj -<< -/D [687 0 R /XYZ 29.788 372.272 null] ->> -endobj -686 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F120 619 0 R /F44 228 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -705 0 obj -<< -/Length 2432 -/Filter /FlateDecode ->> -stream -xYYoH~49l2IyHE%.$RaC<"ű@5>}xGes;KwOáz|'HPĂHN-_M>*$@2e#aLW=(Hm& )cثi+Mhآ՛ޓbYZsWVUwV*mӺDۺhճM9ٴfktMW+LLMn.2]Z -eZVMU3j)p`ì h`bi  ,f\ Yi`٤Ei߅vWbݓ+K*bG - :)bSK r;-Rc^n@#cFhWʑ0jkz)͊tɆz<H/kwfݕa0"C2-b-uT-MR |5ʺL?1i(F [fC^|d+3,dҮUf)DLWW.D`82S-fvd-M\:Zdcݪy]b1W&mDeTƨC& vim]dAUk}؈m OamW( -4jۺZRRl7E6R~ipD$|}*b#*ƺ ߬k" (! yMwΉ'kiF*[%_pK͔.Kd0њ/ /S[# !D7.M*r=T4ʫYO 8GՖ3Etr=uC-MDV7u DE ci2axj&O(➜=[@]O8jk%>4ssf#pPȊ8x2 ZVroNMý3Lsݾk4Dݽ޵f9@ cL00F3m?v* [K?@ tVuk]cn*=s4ܐXHЁp!B林B!S9b:oF/n ,{ d2dz?bQ\gvr*CD!fRO(-(1~ WR(Nf8Yr~usqݿg]os-KYj8-|[p|F!3h2#yaaEe`>ub>aK:0rzhƿV9OA o2D -S>ZѴ;4<8XתTQnZFW}e+&8 s?ai>}p.U@ܛ ->TT.3[i: {n! &kk/" TZuf[0KSm~yEaWo.yO{VHB[aBM0̎YDD,Dڇ^ /L86!Aj!8o=hP?t9'G9GALv.KMA/Jbe`ifΉ7&*nMz1[9nlGBHp7˨vqNKwx7\Mfi -7hhiW:Yw$]['BfO=$Jx.+٨A:kMMei~& $Z-v]mjnUm]]3/b&.`Mژ줽ا#[S{st7ꚺ{IQ2`Sv+r7ӺxKO d -endstream -endobj -704 0 obj -<< -/Type /Page -/Contents 705 0 R -/Resources 703 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 714 0 R -/Annots [ 693 0 R 694 0 R 695 0 R 696 0 R 697 0 R 698 0 R 699 0 R 700 0 R 701 0 R ] ->> -endobj -693 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [230.326 573.642 366.315 586.145] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -694 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [376.453 554.554 459.085 567.057] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -695 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [172.115 535.465 254.748 547.969] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -696 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [279.238 397.618 386.985 410.121] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -697 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [119.453 313.254 231.408 325.758] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -698 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [254.018 313.254 338.183 325.758] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -699 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [214.922 208.045 319.373 220.548] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -700 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 92.765 326.998 104.995] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a17bf2f98e8c59e29a8eda42c692e5b3d) >> ->> -endobj -701 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [300.146 73.676 381.73 86.18] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -706 0 obj -<< -/D [704 0 R /XYZ -13.423 915.745 null] ->> -endobj -97 0 obj -<< -/D [704 0 R /XYZ 29.788 737.428 null] ->> -endobj -707 0 obj -<< -/D [704 0 R /XYZ 29.788 650.461 null] ->> -endobj -708 0 obj -<< -/D [704 0 R /XYZ 29.788 650.461 null] ->> -endobj -101 0 obj -<< -/D [704 0 R /XYZ 29.788 650.461 null] ->> -endobj -709 0 obj -<< -/D [704 0 R /XYZ 29.788 536.461 null] ->> -endobj -105 0 obj -<< -/D [704 0 R /XYZ 29.788 514.443 null] ->> -endobj -710 0 obj -<< -/D [704 0 R /XYZ 29.788 300.701 null] ->> -endobj -109 0 obj -<< -/D [704 0 R /XYZ 29.788 278.683 null] ->> -endobj -711 0 obj -<< -/D [704 0 R /XYZ 321.409 211.108 null] ->> -endobj -113 0 obj -<< -/D [704 0 R /XYZ 29.788 188.449 null] ->> -endobj -712 0 obj -<< -/D [704 0 R /XYZ 29.788 159.622 null] ->> -endobj -713 0 obj -<< -/D [704 0 R /XYZ 29.788 159.622 null] ->> -endobj -703 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F89 511 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -732 0 obj -<< -/Length 2170 -/Filter /FlateDecode ->> -stream -xYs6niI;qZt77] -Œ2T S8TZ8h>LJN0'iޝa*`:d naWcZ^W5! X -j -QV"Բ6w*ӵ%,!瘆5=8@I9EGB({@Fb~s@&qZdy?L>O;P! MA 0*CfZO8ZIW -I 'jv ]nӁJ_[2^Qd8Elz,}я*DLF ALY3?*5GKЯa*&x&vHuv8>ھ$Teaۛ(/36-l*wuglVxO$?SL G[rQieR&JѼn7٦ZEG;(j^X>Xxr)ÀXfLZwYC#pabhL9{WӅXwɒeU0#C2Y`hqemtV{Ûoc ʪHhi@XI^%jkV3סA6?B`H<˛lQ \$a>>VU|> `'T娃!ajaǒv6}6^!-ҰMV"^4kG,]>'hUdln(T&Q ^c,lL֥ʹT}B)(m - -QF04^$8Ƈ7?t\ʐ6%QBmn1Kgt|1t2/ p2"+zI/*~mtsq^I/i.C\y}٢9#|Vk5vS7am$vl``Eh8YLzu\N{TPg\\Mgxzu9=gFR`əA:E^vhϺnELQ;˚:jيtO YF8+u(.=01 -gj˒uOY>5s{`qR>]bxTk>mvNiҾ&'e򎳞DIq8"˯䧫󳓳od!%r<1ЂͻxMo/[]h0 g꼅ϻЋNp,Sw\ఆQ}J;o-O.ޜ>M_[>g 76l-!81Ö˧?0MT,>ϳE78 -gqYo=!?N2Euo(sF~o6rNxͫu0 -]{u>:W4!D#PSs]Cj}:b;4zSB_9G۳프io,Is;HQ% `N =1~X h o;2s t49S?`mbx~v&xQo@uzZ3mojcbtk)CD[Sfn{FYYCf\i7-7Šmݛ/E620bSԝ9x-`U/'{7ŜM1'; btZپ -endstream -endobj -731 0 obj -<< -/Type /Page -/Contents 732 0 R -/Resources 730 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 714 0 R -/Annots [ 702 0 R 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R 734 0 R 722 0 R 723 0 R 724 0 R 725 0 R 726 0 R 727 0 R 728 0 R ] ->> -endobj -702 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [196.997 725.921 279.307 738.424] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -717 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.811 651.573 135.199 660.285] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -718 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [288.613 609.527 369.633 622.03] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -719 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [167.861 595.978 303.849 608.481] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -720 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [287.251 576.977 368.271 589.481] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -721 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [488.579 576.977 567.119 589.481] -/A << /S /GoTo /D (group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) >> ->> -endobj -734 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [41.152 563.428 90.435 574.873] -/A << /S /GoTo /D (group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) >> ->> -endobj -722 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [328.073 544.428 409.98 556.931] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -723 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 458.123 322.766 470.354] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a81fd5b4436be253e0ef3ebdf51b3d193) >> ->> -endobj -724 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [316.431 439.123 399.063 451.626] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -725 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [133.207 402.633 227.254 411.345] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a3eb936f08a8f6f01d4c683a6ba0c9d3a) >> ->> -endobj -726 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.811 364.775 135.199 373.487] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -727 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [324.603 322.729 408.848 335.232] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -728 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 60.127 345.784 72.358] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a5946f4a20c9ba0cd83fed96ce3103c06) >> ->> -endobj -733 0 obj -<< -/D [731 0 R /XYZ -13.423 915.745 null] ->> -endobj -735 0 obj -<< -/D [731 0 R /XYZ 29.788 545.424 null] ->> -endobj -736 0 obj -<< -/D [731 0 R /XYZ 29.788 525.046 null] ->> -endobj -737 0 obj -<< -/D [731 0 R /XYZ 29.788 149.495 null] ->> -endobj -738 0 obj -<< -/D [731 0 R /XYZ 29.788 129.117 null] ->> -endobj -730 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F120 619 0 R /F33 531 0 R /F30 532 0 R /F44 228 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -759 0 obj -<< -/Length 1954 -/Filter /FlateDecode ->> -stream -xZYo9~BL#ţ$C6b}dU}+E " >-$##JQ(DBo~h9HRN 2:o֢HO2"hLce#NS XRj=c!BT| e2tT3 iZvjvLMeWa`y .I,]0a)(xUGVԈkW=U<[䗓!Fdqv~FI9D"! -"{ދ5z9y#d2/*zztC4i|M:F6fhмsFecy$']@Y@G ӧMVMWIن:Y+T{z,HWa(l7<`W>!GϰdAvt)̬zKVq,$ו"JA.m%.}\jmU$" ~D,qD/ͬR|YVj_j}X4 B2wSy|?eq__n\$ŶLdrөIڬ7w/tvx1aዏH6Yk0)rw\8-HCf.`{{olaY*Y**[Jz҈Q:75x᫥tS #.-mm?өOq{zWu /70T*?݆14,nh}?Ekm_DńÙx=,t.2b]g?kru9y@ī`d߭|U*k ^> -endobj -729 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [287.915 725.921 370.547 738.424] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -743 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [133.207 689.863 227.254 698.574] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a3eb936f08a8f6f01d4c683a6ba0c9d3a) >> ->> -endobj -744 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [133.207 661.47 227.254 670.181] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a3eb936f08a8f6f01d4c683a6ba0c9d3a) >> ->> -endobj -745 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.811 623.611 135.199 632.323] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -746 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [243.057 581.997 325.689 594.5] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -747 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 496.745 389.42 508.976] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ab87b5a5abeadc975488850bece3dbf84) >> ->> -endobj -748 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [198.788 464.374 281.42 476.877] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -749 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.811 418.852 135.199 427.563] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -750 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [526.35 377.237 567.119 389.74] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -763 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [41.152 363.688 119.868 375.918] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -751 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 278.436 351.238 290.667] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a0a7f6e18d053c4af5f26f3852ef6ae14) >> ->> -endobj -752 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [253.355 246.065 335.987 258.568] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -753 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.442 200.542 126.831 209.254] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -754 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [526.35 158.928 567.119 171.431] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -766 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [41.152 145.378 119.868 157.609] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -755 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 60.127 402.74 72.358] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a6d707845ea3200a1a45726c2700333e5) >> ->> -endobj -760 0 obj -<< -/D [758 0 R /XYZ -13.423 915.745 null] ->> -endobj -761 0 obj -<< -/D [758 0 R /XYZ 29.788 582.993 null] ->> -endobj -762 0 obj -<< -/D [758 0 R /XYZ 29.788 563.047 null] ->> -endobj -764 0 obj -<< -/D [758 0 R /XYZ 29.788 364.684 null] ->> -endobj -765 0 obj -<< -/D [758 0 R /XYZ 29.788 344.738 null] ->> -endobj -767 0 obj -<< -/D [758 0 R /XYZ 29.788 146.375 null] ->> -endobj -768 0 obj -<< -/D [758 0 R /XYZ 29.788 126.429 null] ->> -endobj -757 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F120 619 0 R /F44 228 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -789 0 obj -<< -/Length 1983 -/Filter /FlateDecode ->> -stream -xZ[o~اB^eĮ"i][9yHD*m qIݝ꒢eyDt~Df!H !QG~D| Rbla_cfn/47 -x3R3)ƒ=qrbI`)*>L~2W# iZv 0NsPu7cY^cWgu! X -Sܣ DoDrkkV9[;&l8(845PG,āR(yY^ƫ5N2/$tt6C4|7ZOS3M:pF}0gT*XVKo| TtdskEV%"<uHAg2" -.#p+ ő3,e~Si뎎bBDs\^f.$/In6[;߻Ub_l[W6*dr !t<&7L"U-I/nSFHT4mn:tYURMňȃ>_Tbulh0.Ҟϸ MREtxX 5\홫[~ڹj<PVEWuA=(}v^u۾u`@PJ殒9/0%8M=ѓ gUe=7L; "gMVNeZ AԪl~jꗟOOf'W'Ur<+2/fR$Qgh/ $Khm]$?>\{SswwJrU84cT 1Å]Z9.4[:jSGJ,x;JOWMu>˧{ P(҆IsN;wvq^g;lI?Ao -QhDs/ffQš TVUȷUw_"o^<11 x2SKˤ ffl]:M~zʅת 0!`_ft*>IJ*- >| 8i öj_:9Ww&rNpxeU6!m Xئ*a4c".mN?1+pm4iqǤDn7QI -ȅX]&OhY9B*5tw\>ac,r}ř./.^^̮'""}e/ `]US%U܂Cw}Th_3?w@ -Na -_!}h勋Pl Y|{_+8v퇉ۃF*zzCh\gF`CW1Ѝ5|(Wv_T'4>PeRjdžN69.~3M geߥIyJJԙ/ -'CTF|DG{}t<BwHR֌(V\4{ё7ZF^K7d.B?^ůiv) 72}R({Aj0`h=.#1Զ_p5V </^0;T M9 s.{aGcbr^۹"]tɼ,D*̛eT, (Ê^6/avInHEvJME#8QMJ҃tmPQ9TH%̢t6}Qkn &u$LAx,Dv -endstream -endobj -788 0 obj -<< -/Type /Page -/Contents 789 0 R -/Resources 787 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 714 0 R -/Annots [ 756 0 R 773 0 R 774 0 R 775 0 R 776 0 R 777 0 R 778 0 R 779 0 R 780 0 R 781 0 R 782 0 R 783 0 R 784 0 R 785 0 R ] ->> -endobj -756 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [247.454 725.921 330.409 738.424] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -773 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [281.871 675.347 364.504 687.85] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -774 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 564.331 316.068 576.562] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a465d9fc420b12cfe3d24e937c5e5f110) >> ->> -endobj -775 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.21 501.049 373.705 509.76] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea64d14f069c838de2d2c1f3f436ef6108) >> ->> -endobj -776 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.811 491.584 181.227 500.295] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -777 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [399.12 441.257 532.563 453.76] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -778 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [101.174 416.144 126.817 426.389] -/A << /S /GoTo /D (index_intguideLibraryOutputs) >> ->> -endobj -779 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 330.741 323.366 342.972] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858aa5de81322b446f028934aa30c4826610) >> ->> -endobj -780 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.21 267.459 373.705 276.17] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea64d14f069c838de2d2c1f3f436ef6108) >> ->> -endobj -781 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [74.626 257.994 177.042 266.706] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -782 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [399.12 207.667 532.563 220.17] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -783 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [101.174 182.554 126.817 192.799] -/A << /S /GoTo /D (index_intguideLibraryOutputs) >> ->> -endobj -784 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 97.151 305.78 109.382] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a178d85d77cf448057897e9b0e0932e33) >> ->> -endobj -785 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [273.373 78.639 409.362 91.143] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -790 0 obj -<< -/D [788 0 R /XYZ -13.423 915.745 null] ->> -endobj -791 0 obj -<< -/D [788 0 R /XYZ 29.788 676.343 null] ->> -endobj -117 0 obj -<< -/D [788 0 R /XYZ 29.788 657.151 null] ->> -endobj -792 0 obj -<< -/D [788 0 R /XYZ 29.788 629.181 null] ->> -endobj -793 0 obj -<< -/D [788 0 R /XYZ 29.788 629.181 null] ->> -endobj -794 0 obj -<< -/D [788 0 R /XYZ 29.788 417.14 null] ->> -endobj -795 0 obj -<< -/D [788 0 R /XYZ 29.788 397.948 null] ->> -endobj -796 0 obj -<< -/D [788 0 R /XYZ 29.788 183.55 null] ->> -endobj -797 0 obj -<< -/D [788 0 R /XYZ 29.788 164.358 null] ->> -endobj -787 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F44 228 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -817 0 obj -<< -/Length 2068 -/Filter /FlateDecode ->> -stream -xZYo۸~ϯT IQ^DmeZx2Mˤxp^F%:tMCR([qO<ųhć֓ئ MJ7W˫d}r lVr6~JV7", ^tRgI^^,^HS/4gL`J&={j>`*1"NVg? -VGz&@!z#*qz4ˢiVQHgvxTB:z -}w.U00\hBEdxov[jN[ZEVN2aG('?b2L,bJX:-eEGPc5vqgLFWNF׃a<[3(,er0OǴu%Q. hcz teѥ򋵡 KovEjhގ$-L..m"zWپ)ϟ]p}/ |sFۿVOL;d ޷ :k!fZ>Ԙ 0SQk`& 7H쏙koTLLI -aV+0;{d+MJgIUܤY1TY- 6 -*^\wOPbj4LfWQVsZV̎Z˸u"6d-xP~'[n9r -yb]XEhz7Y z_񚈺i+X]Zm# -sn5ʓGh.E_=an m-*|{Qt\/boEɬT T -p^Nru`\ʡ9-2`͚ -endstream -endobj -816 0 obj -<< -/Type /Page -/Contents 817 0 R -/Resources 815 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 714 0 R -/Annots [ 786 0 R 801 0 R 802 0 R 803 0 R 804 0 R 805 0 R 806 0 R 807 0 R 808 0 R 809 0 R 810 0 R 811 0 R 812 0 R 813 0 R 814 0 R ] ->> -endobj -786 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.21 720.248 373.705 728.96] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea64d14f069c838de2d2c1f3f436ef6108) >> ->> -endobj -801 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.21 691.855 373.705 700.566] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea64d14f069c838de2d2c1f3f436ef6108) >> ->> -endobj -802 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.811 682.39 181.227 691.101] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -803 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [394.944 632.155 531.737 644.659] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -804 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 535.416 330.642 547.646] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a2175fa185bbcaafb28b5c73ca8ff2394) >> ->> -endobj -805 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.21 472.264 373.705 480.976] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea64d14f069c838de2d2c1f3f436ef6108) >> ->> -endobj -806 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.811 462.8 181.227 471.511] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -807 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [399.12 412.565 532.563 425.068] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -808 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [101.174 387.452 126.817 397.697] -/A << /S /GoTo /D (index_intguideLibraryOutputs) >> ->> -endobj -809 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 302.276 372.249 314.507] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a1ba36727b09433f1ae925646864d8a61) >> ->> -endobj -810 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [424.965 283.802 560.954 296.305] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -811 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.811 239.125 181.227 247.836] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -812 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [226 188.89 359.711 201.393] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -813 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 92.15 360.129 104.381] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858aa1a59666f0af5463087f528473d4ff8c) >> ->> -endobj -814 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [257.093 73.676 390.669 86.18] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -818 0 obj -<< -/D [816 0 R /XYZ -13.423 915.745 null] ->> -endobj -819 0 obj -<< -/D [816 0 R /XYZ 29.788 619.603 null] ->> -endobj -820 0 obj -<< -/D [816 0 R /XYZ 29.788 600.503 null] ->> -endobj -821 0 obj -<< -/D [816 0 R /XYZ 29.788 388.448 null] ->> -endobj -822 0 obj -<< -/D [816 0 R /XYZ 29.788 369.349 null] ->> -endobj -823 0 obj -<< -/D [816 0 R /XYZ 29.788 176.337 null] ->> -endobj -824 0 obj -<< -/D [816 0 R /XYZ 29.788 157.238 null] ->> -endobj -815 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F120 619 0 R /F89 511 0 R /F44 228 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -840 0 obj -<< -/Length 2008 -/Filter /FlateDecode ->> -stream -xYYoH~觅 >ydx&q2)Xj1na_F^G혛(@XD%I1+m `}KʴPu,Qsw(G;~>peF)8:_qtR}.X^KR쇢˚",E(QV"Ԋbdw`at AɐsL#_1=8r @OE8CDv)z?yQTcA8RyUJ?N=8P!a6  JWD ݙ+th0gTЖLk`z[Ѯ˳m1 y^yYۂ&K?JF@ F>!G U,UcEVχ<*GQ_wF0 lƕnMqvpk}?Mlm5FaӖT-뙈54b5;I$YM:-[zᴅ JQᘢ^|yz<=|sqr}y<=s(b=VZYXy[SeH@wL&IZWMV@=?}gHHzN;oo]5uzw?>a5/zfe-BY: pQ}/o 0<.Ս*ފ3 -~K@MYN!bgUsӹ" aFs*aE4aLl;\2{C;3$!8[Lb4yD5zK<;2i=vRgn{M^Ć%ztПZ",J_lPB:4|S?`UMnO'ӝv9gvόfLbJ徂UmiքkXX Zhiz< 4 pgADŽfyYKajyb[FV]6@홢%-DO --a_2J, l/&J_ g?٦sLFhr'ߢpң: GcJ Ad/C̴i&z^n656C 8 ю(wc'+4v#q -Z 14Oeorm\MݫX7ك6n3EӁ~+q-D杋7dbryi+oJ*&˥-+BߊcgYUV253οXiV*^D{,ڐ+*պ,&`O3t @D]f7MO\K$ZJlsL^۫[sKzu|K>u> -endobj -828 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [249.122 706.118 274.766 718.622] -/A << /S /GoTo /D (index_intguideLibraryOutputs) >> ->> -endobj -829 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 613.457 335.486 625.687] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ab78d6a66fc7a4205a6caf69ce4f161e4) >> ->> -endobj -830 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 447.021 359.704 459.252] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ab810ba8e0fc4425c37aa460e57dc8129) >> ->> -endobj -831 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 294.135 349.995 306.365] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ac5899ebab7738c4c99b19ad9d934f8d1) >> ->> -endobj -832 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [225.305 253.985 363.974 266.488] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -833 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.811 163.483 181.227 172.195] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -834 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [394.944 109.368 531.737 121.871] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -835 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [129.09 95.818 237.184 108.322] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -836 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [41.152 62.194 177.141 74.698] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -841 0 obj -<< -/D [839 0 R /XYZ -13.423 915.745 null] ->> -endobj -842 0 obj -<< -/D [839 0 R /XYZ 29.788 707.115 null] ->> -endobj -843 0 obj -<< -/D [839 0 R /XYZ 29.788 684.125 null] ->> -endobj -844 0 obj -<< -/D [839 0 R /XYZ 29.788 540.679 null] ->> -endobj -845 0 obj -<< -/D [839 0 R /XYZ 29.788 517.69 null] ->> -endobj -846 0 obj -<< -/D [839 0 R /XYZ 29.788 387.793 null] ->> -endobj -847 0 obj -<< -/D [839 0 R /XYZ 29.788 364.803 null] ->> -endobj -848 0 obj -<< -/D [839 0 R /XYZ 29.788 63.19 null] ->> -endobj -838 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F44 228 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -867 0 obj -<< -/Length 2249 -/Filter /FlateDecode ->> -stream -xZ[o۸~ϯӁ THyH7&- flؒKz7IV$N`x g{ ms1Y%M~;Xp`q(ן߂Q4CbqD>l9HݑʼlypS,<1K?q|P*qk9x3ʀAD'7tsKBD"b4|e*(*3q^s:Ԟ{g  Bbɭd-@"D1:ttxv~d<m%oӄeNWBY̳R[i\oNu)PE&dyrVyF_؞F~05> -O /QUuզtdM;KԢ\V"CU(NK1ԛyRIYO,lS(w""ѵj -o3VZQxKQxo+pMiڬI"{;ץmUKQ(dE<"ZCIa ,{63 /*,kN,3*f%& #r#gҹE -40MnN>LOFvX5M2+;,0^KK+a§J3- la)! ]A>HC 9&GFQo6OXjd=<` ʐ(6(zVߟ^YU.ze0sjvzf״Z6 En=8QAiLmnΩKTu0FhŴ0B<4yUǭVr -AW:0hd6B[|ZtwFfxKMT*MTJt"C6>7kQ)B>lZH ɇQO deķ˳gsEbLv,S /7.cP<*fS|_SIeNf)_}/J v<^th@nQgz -ڛ x*?|gT @Qofv'$~[ZΉ~$hSBJi{~wg5?_e{>TUbӁț7`> i[urz2D96XJ/ƞ`46V) bl?Bwߜ7hKC6GgVe>O%<4 wNV`O !_~5|ΖI?E䵙΄xj֪ }="!e%^C{'O:y'W=>"<BsiEwֽ$6Kշ[7@έ[)Psv{V 5?Qcc^dN >, G =sgwi1g)~@H;a'cI9sި[uVvZ3ko_J|+H܁CsuLm`Ž> -endobj -837 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 676.117 363.358 688.348] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a7f2cea23dbdaeddb2d91d861c608f239) >> ->> -endobj -852 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [258.22 655.737 394.209 668.241] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -853 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [311.624 635.358 448.014 647.861] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -854 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.21 572.512 373.705 581.223] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea64d14f069c838de2d2c1f3f436ef6108) >> ->> -endobj -855 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.811 553.583 181.227 562.294] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -856 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [231.528 498.728 368.856 511.232] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -857 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [526.787 464.799 567.119 477.303] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -870 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [41.152 451.25 148.035 463.754] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -858 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 356.787 291.817 369.017] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a87428d7a4a5d52e48af8db92ab71c83e) >> ->> -endobj -859 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [393.626 295.648 532.295 308.151] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -860 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 157.261 349.406 169.492] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ac2600415df086d1a9b36105ac29396de) >> ->> -endobj -861 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [373.81 136.882 493.215 149.385] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -862 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [506.839 136.882 567.119 149.385] -/A << /S /GoTo /D (group__bsec__interface_ga70e68dbe60e2ba462537540d60192a2e) >> ->> -endobj -876 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [41.152 123.333 74.061 135.836] -/A << /S /GoTo /D (group__bsec__interface_ga70e68dbe60e2ba462537540d60192a2e) >> ->> -endobj -863 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [82.988 62.194 177.741 74.698] -/A << /S /GoTo /D (group__bsec__interface_gae8fc6d614d6a40f0088262dccbb960dc) >> ->> -endobj -868 0 obj -<< -/D [866 0 R /XYZ -13.423 915.745 null] ->> -endobj -869 0 obj -<< -/D [866 0 R /XYZ 29.788 737.428 null] ->> -endobj -871 0 obj -<< -/D [866 0 R /XYZ 29.788 452.247 null] ->> -endobj -872 0 obj -<< -/D [866 0 R /XYZ 29.788 428.517 null] ->> -endobj -873 0 obj -<< -/D [866 0 R /XYZ 29.788 283.095 null] ->> -endobj -121 0 obj -<< -/D [866 0 R /XYZ 29.788 259.365 null] ->> -endobj -874 0 obj -<< -/D [866 0 R /XYZ 29.788 228.62 null] ->> -endobj -875 0 obj -<< -/D [866 0 R /XYZ 29.788 228.62 null] ->> -endobj -877 0 obj -<< -/D [866 0 R /XYZ 29.788 63.19 null] ->> -endobj -865 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F89 511 0 R /F120 619 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -901 0 obj -<< -/Length 1953 -/Filter /FlateDecode ->> -stream -xZYs6~#]qțq6;9)%w%RcAxdn)FwţE~@tq/$}}J'vDY{D|RTblaGC϶/J zfR %zw1r=%eJRІ6aSAq`J(A;~8pdwրrY -Vi3vevIOt"!KV۔D$׶lmY:|ᠤ9O&GJʱ/\MyxOB:IfgFIfE4?eh1 -Y!|ACEVG+t۵sFe Z]Mm6P`ҁSmeRD,(4eFA'h& $hq8}RcmIt4=~w~y1=O.o'_fal#ԛ4*6fQIUgyRH9V_ե W_q]DI+k,ިK\x:> -@3B[XI]2CǿR- -ufA:F=8oE})Ohz^L+KmI3e1b@rlC3[?iI}1:6xԢUseVϊo4{v}=+8ek,F$m|ѻ㿟h%O+odQǤf-f2X\̓="%==:ʯS*/>qV YFzY6h͙˾:܅9xǡ+-e!q x&SixP=wpO/(W6qfƋ1v}Ӯ]rA.VSӛhts^ _N=sDC8:OKCEN”?ijt^tEPgQա2 -Ji'W##vЮnwxa5X[#RTGLbop7ܐXt!D[KhRo6FoP"8ֆEw`ُ£z@~A( 0~L؃V{lwyMִo#[!_RFj;n+ۚ(}īnT|զ'NA+=^+MƐ#f{4cmMc ulUꊟk - -*kݠaBuZ,^,ܔM --nXYXWkEqI`U1VfTe&KrTyV2 6]fCKi/> -endobj -864 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 680.317 351.217 692.548] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ae5d8b5de70152c09b4153bcb41997ee7) >> ->> -endobj -884 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [361.93 661.627 483.843 674.131] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -885 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [505.397 610.698 567.119 623.201] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -904 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [41.152 597.149 112.864 609.652] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -886 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 512.681 323.933 524.911] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a89e2eec8486c2880912af108bbed3593) >> ->> -endobj -887 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.927 493.991 416.752 506.494] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -888 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [505.397 386.992 567.119 399.495] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -907 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [41.152 373.442 112.864 385.946] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -889 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 288.974 279.708 301.205] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a76ee5462e14060fcc889bd889b6f7b3c) >> ->> -endobj -890 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 148.436 394.853 160.667] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ab5356ac211454109eac007fcc458a6dd) >> ->> -endobj -891 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [198.079 129.746 319.515 142.249] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -892 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [333.286 129.746 415.918 142.249] -/A << /S /GoTo /D (group__bsec__interface_ga70e68dbe60e2ba462537540d60192a2e) >> ->> -endobj -893 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [198.079 111.056 320.126 123.559] -/A << /S /GoTo /D (group__bsec__interface_ga8798390d842b820e79e9cbf8ba4d516e) >> ->> -endobj -894 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [333.897 111.056 417.14 123.559] -/A << /S /GoTo /D (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f) >> ->> -endobj -895 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [230.002 73.676 349.766 86.18] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -896 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [371.8 73.676 453.303 86.18] -/A << /S /GoTo /D (group__bsec__interface_ga70e68dbe60e2ba462537540d60192a2e) >> ->> -endobj -902 0 obj -<< -/D [900 0 R /XYZ -13.423 915.745 null] ->> -endobj -903 0 obj -<< -/D [900 0 R /XYZ 29.788 737.428 null] ->> -endobj -905 0 obj -<< -/D [900 0 R /XYZ 29.788 598.145 null] ->> -endobj -906 0 obj -<< -/D [900 0 R /XYZ 29.788 578.521 null] ->> -endobj -908 0 obj -<< -/D [900 0 R /XYZ 29.788 374.439 null] ->> -endobj -909 0 obj -<< -/D [900 0 R /XYZ 29.788 354.815 null] ->> -endobj -910 0 obj -<< -/D [900 0 R /XYZ 29.788 233.901 null] ->> -endobj -911 0 obj -<< -/D [900 0 R /XYZ 29.788 214.277 null] ->> -endobj -899 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F89 511 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -929 0 obj -<< -/Length 2198 -/Filter /FlateDecode ->> -stream -xZYs8~TIUK8x͇ՔMv&RQ,sF$Q5?~OKe;5ymn|}hz2e -a6166¸Dl紫1"L01LM#=88eDh$N(p[Uɴ@6&15NRX>-.J.#c-,>OJ,dajMMu)Y$-8,ңaGӃ)S35wy.O4&q O4+x8}x3["|Щ'2aRCc1@qӖQmR `l vqqOa|E&ᬌ\ -/,_$ *AG !&8E+u49쮴]fLcaA*ФwLf4s6/o-ByAV\˅-%[ 2>Iyْ0Mn̖ډ[˶w$4AxTy[ib͵@hK9^O.>$ğ3iM- j KQgJ-v0T ۹`Y,>AOtAA %Hڋ&rE/IϷ~A3"蛶//RvD - -PRAQEMTEY!/Z<4,Ē -QRx[Ǟq5Y$ -˥"FqeJqvTtSHPSϐg>[|.oݫ {$êTDn[0¾i9 -I %=]88AfG@m A?YHȣLUjh^GljXݿmwhV%Ǎ~tmdy]ceZgV`Fak?u7hcuGZjכ#^ܛI40У~=x1lY/ߩx"2ʢ &HeEEET^㎷*AiR* UT[y;f ¶ʭ -+o,6a`Ixu 2 -endstream -endobj -928 0 obj -<< -/Type /Page -/Contents 929 0 R -/Resources 927 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 878 0 R -/Annots [ 897 0 R 898 0 R 917 0 R 918 0 R 919 0 R 920 0 R 933 0 R 921 0 R 922 0 R 923 0 R 924 0 R 925 0 R 926 0 R ] ->> -endobj -897 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [213.584 725.921 338.032 738.424] -/A << /S /GoTo /D (group__bsec__interface_ga8798390d842b820e79e9cbf8ba4d516e) >> ->> -endobj -898 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [362.1 725.921 446.968 738.424] -/A << /S /GoTo /D (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f) >> ->> -endobj -917 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 628.782 350.028 641.012] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a3975b1dfa3c35829ce97814e04c143ce) >> ->> -endobj -918 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [329.238 610.24 450.674 622.744] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -919 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [457.795 610.24 540.428 622.744] -/A << /S /GoTo /D (group__bsec__interface_ga70e68dbe60e2ba462537540d60192a2e) >> ->> -endobj -920 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [505.397 559.608 567.119 572.112] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -933 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [41.152 546.059 112.864 558.562] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -921 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 462.469 360.915 474.7] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ac2eca8b900ce91ee50004c549a409024) >> ->> -endobj -922 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [382.47 443.928 504.396 456.431] -/A << /S /GoTo /D (group__bsec__interface_ga8798390d842b820e79e9cbf8ba4d516e) >> ->> -endobj -923 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [380.503 393.296 501.709 405.799] -/A << /S /GoTo /D (group__bsec__interface_ga8798390d842b820e79e9cbf8ba4d516e) >> ->> -endobj -924 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 268.515 353.671 280.745] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ada34397de8a8e88ad72e8546748866cd) >> ->> -endobj -925 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [186.657 199.341 296.562 211.844] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -926 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 97.21 371.813 109.441] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858aa238cfe9b905deda6f1823ca32378f91) >> ->> -endobj -930 0 obj -<< -/D [928 0 R /XYZ -13.423 915.745 null] ->> -endobj -931 0 obj -<< -/D [928 0 R /XYZ 29.788 713.368 null] ->> -endobj -932 0 obj -<< -/D [928 0 R /XYZ 29.788 694.105 null] ->> -endobj -934 0 obj -<< -/D [928 0 R /XYZ 29.788 547.055 null] ->> -endobj -935 0 obj -<< -/D [928 0 R /XYZ 29.788 527.792 null] ->> -endobj -936 0 obj -<< -/D [928 0 R /XYZ 29.788 380.743 null] ->> -endobj -125 0 obj -<< -/D [928 0 R /XYZ 29.788 361.48 null] ->> -endobj -937 0 obj -<< -/D [928 0 R /XYZ 29.788 333.466 null] ->> -endobj -938 0 obj -<< -/D [928 0 R /XYZ 29.788 333.466 null] ->> -endobj -939 0 obj -<< -/D [928 0 R /XYZ 29.788 181.796 null] ->> -endobj -940 0 obj -<< -/D [928 0 R /XYZ 29.788 162.533 null] ->> -endobj -927 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F44 228 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -948 0 obj -<< -/Length 1286 -/Filter /FlateDecode ->> -stream -xX]o6}L ?%oMf.-M_OG]Nw|6HhS{EUeEpiȫWӲy@aMnxMM -  5 4tp!OW;2 yQ,n^ĥ2|g b [A,6ZItiy/䫺f3S{yK-Iq>nR|/=5C#nϻMuDv+l&^ifYHU -ׅCWEs:f6o.⾱]&ڑlk@[4B+S_[Ǒ[0K&?/%G -endstream -endobj -947 0 obj -<< -/Type /Page -/Contents 948 0 R -/Resources 946 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 878 0 R -/Annots [ 945 0 R ] ->> -endobj -945 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [142.53 644.085 363.348 656.315] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ae8e920ecde96d7d79b8962da38233880) >> ->> -endobj -949 0 obj -<< -/D [947 0 R /XYZ -13.423 915.745 null] ->> -endobj -950 0 obj -<< -/D [947 0 R /XYZ 29.788 728.902 null] ->> -endobj -951 0 obj -<< -/D [947 0 R /XYZ 29.788 710.36 null] ->> -endobj -946 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F44 228 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -976 0 obj -<< -/Length 2821 -/Filter /FlateDecode ->> -stream -x[Yo~ c[,7rCRD,$Rb7E=Q$MI @Rg?g'W7?`U]D*#p -O+Ae^h a8A+ݻp%S8Xl i1*"1F aHŚ82`/ D# -hsk@w W64xU=>BHĬÖW@!b%r#<a w^1^wK:/m2@dL)J/o.ހQb2 B2oˢZ]DƳ4Nz fX4% D T<=h:(!ɵQ -E$CBrlmc]ϴ1eu)p -t[=&\3re @hO2/x6aBB`d,Qv]?NDF4)w^y*U -LFBE6l usϫt%>G<?U: -[ꞦQC q&rveR(Pj~k).h[=[ k{*v3mˀ ʟˆ"*3)*>U] Uuk{STc9ik &0+vb@ΰrnCǠJn_{Ӵ:]:c.5͓MmnܭZ:;g\[%}}h)),u㠆ELLcHY*K%X֘L(, AJ9VXB dB#R2dBJ.L+BL> ~ -9nV!^s.#CI <!GV`UnҤV]SGE (N{ˢz*5 BaahS>8iլ}ew[ R=T9Ǫd+?YTBM!-ors~5N%QKKk w*ݏU -PT UL" olb֦b1Eg!mYo`埲٢)KW,lG04HKKLb lJG#Fn؋EF#_2~ -_t 6~ +&TO4Մ!^S Q;@N (?',>C6t"q[BLdojfF|HQnǒ2-EjJ>'3LYwZfw*f[=x~CWM=郟(c>J;ٌ2*"zX{$Ғlt>5]zj_أ_QOEC!x'ZOfgU0b+O\Gc@l7gO|b'š u<;f6i1GW>Td\Afb} HzۜT2{ԉ_颶?.WFE&g:h-?&4yZ|JA7BA;VCsd5|(C- 9THki{s?0dG)g{k$Q{dw -}ɟ (~Ca%aFTv9;o -B=\Y}υc$|ɍƠLr"agcpxY<׆=FJAzg*vyRmߤBbiJtqS5'w}z~M ?yН:{ w3B2 -7wO6{hۆ1X2[~wQeUVI45,2E5Kޮ'wRYYM&l<a܋6ڵʗ4"z_*nYo{|h:]mZ֮A:N0!qb -endstream -endobj -975 0 obj -<< -/Type /Page -/Contents 976 0 R -/Resources 974 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 878 0 R -/Annots [ 959 0 R 960 0 R 961 0 R 964 0 R 969 0 R 970 0 R 973 0 R ] ->> -endobj -959 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [340.729 466.292 393.034 478.795] -/A << /S /GoTo /D (group__bsec__interface_ga51bcd13812ea62b35749284385a72f98) >> ->> -endobj -960 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [340.729 450.111 462.165 462.615] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -961 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [340.729 433.931 423.361 446.435] -/A << /S /GoTo /D (group__bsec__interface_ga70e68dbe60e2ba462537540d60192a2e) >> ->> -endobj -964 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [338.302 358.411 474.29 370.915] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -969 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.856 282.891 425.761 295.394] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -970 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.856 234.351 398.489 246.854] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -973 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [345.267 145.281 428.51 157.785] -/A << /S /GoTo /D (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f) >> ->> -endobj -977 0 obj -<< -/D [975 0 R /XYZ -13.423 915.745 null] ->> -endobj -129 0 obj -<< -/D [975 0 R /XYZ 29.788 737.428 null] ->> -endobj -978 0 obj -<< -/D [975 0 R /XYZ 29.788 653.104 null] ->> -endobj -133 0 obj -<< -/D [975 0 R /XYZ 29.788 653.104 null] ->> -endobj -137 0 obj -<< -/D [975 0 R /XYZ 29.788 617.41 null] ->> -endobj -979 0 obj -<< -/D [975 0 R /XYZ 29.788 548.854 null] ->> -endobj -980 0 obj -<< -/D [975 0 R /XYZ 29.788 497.059 null] ->> -endobj -981 0 obj -<< -/D [975 0 R /XYZ 29.788 389.179 null] ->> -endobj -982 0 obj -<< -/D [975 0 R /XYZ 29.788 313.659 null] ->> -endobj -983 0 obj -<< -/D [975 0 R /XYZ 29.788 176.049 null] ->> -endobj -984 0 obj -<< -/D [975 0 R /XYZ 29.788 112.679 null] ->> -endobj -974 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F89 511 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -993 0 obj -<< -/Length 3445 -/Filter /FlateDecode ->> -stream -xn6_60ERGf2G A2c>$@Ͷ:ڎb%JV#!ţXwy}g\gQpD3@K\A0U:hL=%f⇳1BiiO3Q7v2}B XT#T'ep9N8">heSte]Qc1ӃHz!,Ы$T I8#~tib0]lq(Hڮ -._\iLV<3h:xٜ/cSVX^oy -8VF` x7i.ں+s0-l;@l$:!Fx"Y|.J( Ԙ1*,_,l"!C8صYuZ-rQoRsWS/ʪ}s]vwKrO֚2O7fRݒWEkveexj[7{g5psUZUHY[ -4vjmيe+V.*=%8]-BVx_ -\[OugʚPV9~FqYfPŮ\5$"XU[]K_(Mqk_KPjϣ (P!@gx *>gGYIZV;6x՚M=E:@(2# -67EഓDͬjb}iLwl/hץsۄx k V9FvS5A(zR*%P"I;WYwMQFATA:<̮޾n2|XMevhFꋷ̓Źd#t, ?1JG `2ϝTH M VQWLW;+5#АG@X+F9 -vX^fl:<~'\[MuRhwxb? O,Q\hg=l8*^"Y 9E JreyyG(!A/)u6VC͆=mky m7PXy좪ݎM`sVBVc{}mS﭂Psm[QwN8jN96luKeG -sc XYU ^4 wW0*M=\yU\3Y>еv{6TtNz:m@`iuDycn u-Nnp49ǖ<טLt8!flݮM?7ع}*|3}1sYiD8? s ĈvOQ얳^'#g˒{Q搽1s|)Tw>5{{%08c'9Շ#VQ3e߂cHP$ٜ0K/ʬIRK!oTx?W)5Tɧ2̲*%<â|̓ a3*y!Mqk nRW:M 5B&W" -6ʸ)V" Xn43Lu&kk "hU ->mh4;ܶnrtp쯒%̳YKDk# ثFd׋sa,c4"5oT9' Cz}sLcx|$ޫ}з|SeKK8c,9A?q)RAD:B`G -.5tٟ (DMm ߿\aĴ:gV5p -E;/f2ɸup.',sit9:>["sP7/ #i\WRb4cxpޯh -!jzbd}Y -3Jn_ -|:z\ {\ jq:PLxcVƖUAh), [)CWtb^Fӝi -endstream -endobj -992 0 obj -<< -/Type /Page -/Contents 993 0 R -/Resources 991 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 878 0 R -/Annots [ 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R ] ->> -endobj -985 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 542.488 129.639 552.039] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -986 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [118.436 528.938 176.917 538.489] -/A << /S /GoTo /D (structbsec__input__t) >> ->> -endobj -987 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [90.192 501.84 153.38 511.391] -/A << /S /GoTo /D (structbsec__output__t) >> ->> -endobj -988 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [414.427 451.231 497.059 463.734] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -989 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [180.363 274.015 262.996 286.518] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -990 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.247 237.525 150.492 250.028] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -994 0 obj -<< -/D [992 0 R /XYZ -13.423 915.745 null] ->> -endobj -141 0 obj -<< -/D [992 0 R /XYZ 29.788 615.164 null] ->> -endobj -715 0 obj -<< -/D [992 0 R /XYZ 29.788 589.922 null] ->> -endobj -995 0 obj -<< -/D [992 0 R /XYZ 29.788 589.922 null] ->> -endobj -998 0 obj -<< -/D [992 0 R /XYZ 29.788 158.82 null] ->> -endobj -991 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F44 228 0 R /F120 619 0 R /F159 996 0 R /F163 997 0 R /F97 510 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1022 0 obj -<< -/Length 2319 -/Filter /FlateDecode ->> -stream -xZo8B6bėMtSb/LۺZG7|H9.PԢoO'Z^, űxQ3<ƭ\X Mw'Aq-s+ [rX(@>]ϚԵ<#d*G|4\2"yjNu(p[Mtp.Z/볖Z\CqޣZmۘATmЕ=vHKȇ>fzp%(`gM hOMVDCxRE":|p:m)Wԗk?[Xw4䀁Zk벭shG8bjiꚜ 逹{J\C0NK2RᬊB)o<|\M83LKq"Sv@0ȋk`y.뛘~cbN]D)6w#<jB3,1q&)xGwAciǾ!F đHo-qsJg uSqϔUSv_鵎Ur#rYbn>+]yő~.'S+^rQVy -<]H=C,,1<aD1sD<2rc/gڦw+aWQE(E6ʕB:RJw+=Uəl -M]a;M:zMv´o0:s~[QeUaEMH@ߋmRRUyۚUl`_|(: IN"Ai$&Z"[A+l_d;IgnxެY e0%n?z~8h2y'75Hr|9ec?+W"^zXtĽf2xg:z{Zqe[=hzz~q:9~>#R%l_u#ߙ}<O{$"wbOcjT:NoO&'a&d֬Oz*[*4;U- \SZKQ9j`ou=ѬIK`Y\Ra<7"MYe,b[} TP^Xbd<XE v$`e;P \~IL瓞7PPVȝyu:~hTtEkWeД5j %{QXmEq*C_Tm86y,n峔Pպ4ȳ=Jʺxgff(WM'{V)Ea.S\:ઓ7*Lnb; -?lJzkǟ&;Rx{gOntˆ 9^=EYee)@V&!.ɞ;6E\#nA\ )̘ ^Q:I.magwRȡG61]!n-R~F0] -H쫎4+cy"y9͢*QTm`CGSwUn:@DT&5֙2y5Vdu2ޑaU&+µė:K<̧\v^E'$\7 j Sk1d;!qKsUy[[:w|:n/t^Ia hOk*a?`/W<) -endstream -endobj -1021 0 obj -<< -/Type /Page -/Contents 1022 0 R -/Resources 1020 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1025 0 R -/Annots [ 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R 1017 0 R 1018 0 R 1019 0 R ] ->> -endobj -1001 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 588.189 80.996 596.9] -/A << /S /GoTo /D (structbsec__input__t) >> ->> -endobj -1002 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 569.26 85.181 577.971] -/A << /S /GoTo /D (structbsec__output__t) >> ->> -endobj -1003 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 540.867 118.655 549.578] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1004 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.451 493.544 106.102 502.255] -/A << /S /GoTo /D (structbsec__input__t_a916867811b65988853b69f729b91c262) >> ->> -endobj -1005 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [116.662 493.544 210.71 502.255] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650ad30626f0de1be98802cb5e50c8b67207) >> ->> -endobj -1006 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.451 484 93.549 492.791] -/A << /S /GoTo /D (structbsec__input__t_a000803d39a2be521f2b5e7017c31303b) >> ->> -endobj -1007 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.451 474.615 110.286 483.326] -/A << /S /GoTo /D (structbsec__input__t_a90d515d57b274dfde74a281de469a3ad) >> ->> -endobj -1008 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.451 465.15 106.102 473.862] -/A << /S /GoTo /D (structbsec__input__t_a916867811b65988853b69f729b91c262) >> ->> -endobj -1009 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [116.662 465.15 210.71 473.862] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a3eb936f08a8f6f01d4c683a6ba0c9d3a) >> ->> -endobj -1010 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.451 455.606 93.549 464.397] -/A << /S /GoTo /D (structbsec__input__t_a000803d39a2be521f2b5e7017c31303b) >> ->> -endobj -1011 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.451 446.221 110.286 454.933] -/A << /S /GoTo /D (structbsec__input__t_a90d515d57b274dfde74a281de469a3ad) >> ->> -endobj -1012 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.451 436.757 106.102 445.468] -/A << /S /GoTo /D (structbsec__input__t_a916867811b65988853b69f729b91c262) >> ->> -endobj -1013 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [116.662 436.757 198.157 445.468] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a381b968290256e77d50c4f7e92bfb27c) >> ->> -endobj -1014 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.451 427.213 93.549 436.004] -/A << /S /GoTo /D (structbsec__input__t_a000803d39a2be521f2b5e7017c31303b) >> ->> -endobj -1015 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.451 417.828 110.286 426.539] -/A << /S /GoTo /D (structbsec__input__t_a90d515d57b274dfde74a281de469a3ad) >> ->> -endobj -1016 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [66.451 379.97 122.839 388.681] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1017 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [83.188 351.911 114.471 360.288] -/A << /S /GoTo /D (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a06af666972edcebef3302d015f1d56c5) >> ->> -endobj -1018 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [99.925 295.036 164.682 303.285] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea2368e219ebbce4e1ede7209486283a6e) >> ->> -endobj -1019 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 114.804 129.639 124.445] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1023 0 obj -<< -/D [1021 0 R /XYZ -13.423 915.745 null] ->> -endobj -916 0 obj -<< -/D [1021 0 R /XYZ 29.788 180.037 null] ->> -endobj -1024 0 obj -<< -/D [1021 0 R /XYZ 29.788 161.467 null] ->> -endobj -1020 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F120 619 0 R /F97 510 0 R /F44 228 0 R /F163 997 0 R /F159 996 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1045 0 obj -<< -/Length 2771 -/Filter /FlateDecode ->> -stream -xZoF2`!n\MkEKH8)wfwiYNH-wg3ۙ;f3j,j>g(8$`%'t<~ݩ| RbN\'lb6='2`V ܑCISZaµ<qm}^\WHRkR3"i(󪄶 -7[a4jLez9쨥E)H?j+Quֵ}Uӵm׃.=H Yw]ZfWYmqZdyGn<(äG>Qk ([am] pVԧc:0%c%_ux*$Ku*YJC4qjq]l!EYZÝYA@[Wtzhc&?d./L~W pLG0e?R*0D0Pyn?%e1(G0] AK!b\J}ke_b=DڼDUilE̗,|U%c]a MpͶ%/gf=L-$,UFU ң<݀jrˀpQ|X0%ِs[8.ڮh$զMХqeKnh,60cWy(pq^`H{V~e6loAbc=$`B;e\Q||.5kqObqWE.ڷ 4R;VsD[ٌE<^saPUEA,EZ!aV}VȦo瞜MN=i_vCkFDB7C#"M9z+\FrrV#ҟZ쨅 ]uhzaj&hGG5hT`$'X_&xk ($  jL`p˒;\A=D2-m6q>Bw8,ځ>y/3w˻ί~j=M9c7LCB[)cog^|UϷw+19͇Y&qKg JȠ?*!@ܱ8 &;H( -)@y.cAA2!j6O}sHi8;F07P@A"YIMM} -7i*rH+YT@H8؝# B0y<;Qg\Sf<>q:yV8T j"pǡk0 㪍r[}ƚك4K04(Y*}+yX*-vr48(I{FmuGbjks~ MجDLڍ̝n5_ak(Ӽ2_=(<|J|Ȧ9eg[qy - ~;gEzƞmty1biv -zõepiT$L쿡A9p@S/hJq)r|RAn*ߌܾ9R֨<0mg;wlu~3\M|TUbo42O+0`H}ͬ# 5,Chsѫx\ -cW} -}S@Z{!`ꋁD3k3 -rR@(D ڭň/|٩d^#|N+^WkU[}kTzW5*|'W :ΪMOlUƖMynWoThmeKn-n 3%PaE.ޕJXwTO9{][@n>LNj9ԻBBG)*խ.3Liˤϊp&KJ> -endobj -1031 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [291.91 678.264 411.796 690.767] -/A << /S /GoTo /D (group__bsec__interface_ga8798390d842b820e79e9cbf8ba4d516e) >> ->> -endobj -1032 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [403.485 664.715 524.921 677.218] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -1033 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [118.541 625.701 240.588 658.026] -/A << /S /GoTo /D (group__bsec__interface_ga8798390d842b820e79e9cbf8ba4d516e) >> ->> -endobj -1034 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [375.68 598.603 567.119 610.833] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1035 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [145.953 319.384 260.921 328.175] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1036 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [183.611 309.919 298.58 318.495] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1037 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [112.478 300.782 227.447 309.246] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1038 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [133.4 291.317 248.368 299.781] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1039 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 253.132 122.839 261.923] -/A << /S /GoTo /D (group__bsec__interface_ga8798390d842b820e79e9cbf8ba4d516e) >> ->> -endobj -1040 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 161.172 129.639 170.812] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1046 0 obj -<< -/D [1044 0 R /XYZ -13.423 915.745 null] ->> -endobj -1047 0 obj -<< -/D [1044 0 R /XYZ 29.788 571.106 null] ->> -endobj -517 0 obj -<< -/D [1044 0 R /XYZ 29.788 230.97 null] ->> -endobj -1048 0 obj -<< -/D [1044 0 R /XYZ 29.788 209.939 null] ->> -endobj -1043 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F120 619 0 R /F163 997 0 R /F159 996 0 R /F97 510 0 R /F44 228 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1062 0 obj -<< -/Length 2807 -/Filter /FlateDecode ->> -stream -xڽZoF2``?7i@Mw%Q!); 7)[Q G̛w1݇YgY8ys?/;"($ 8E>N&{/ -L{awe9g=q0/C -ޥ4,q#<*Ab8Up6(/gaFS/.߮:VǙ}Z1R.AXF]S'DT5.%L 9hausDV$,800Hwg?( C!}ޡ!Ccﻹqrܥ~0< -! B#Bi9|TQt,*tc^%s:OcO#hVMpn]IZjIw,D>HXF2)L߼ -}E4dV6KcfanU6$h;=( L} 1VXrO˟s|XĐ slaS뺦C[d̡麐TH2 >*ydHdO5h2댟[^ȵiϾg LtEB)=Z@PM*AǁQi1/+Zz|xRbL{D'i?L+KOz[0j+L~%L'~/i&o0zu6Dk\z9B0!x*eD{<˻jlo'E oJfY}L4kLr;p0}w߮oIOAtC̨CZQTSDúCm z!{,ZKpd+{ٰ(x/y0`bL@ۤ 0%#疄΃⦢aq"2$ntO>n JT~ŋbI%@Y̏RXÊs0'(JgW6ƝuE3F&l#leeV#_VC[9U+OOi$46k -"_ 0.qQ vTLnF뭊Zlw\u$6iH6*05[ɶ;>Dڸj)iaFu]{wݷ|~ި_ŊYaey螢\Z.k <lfĀlj1q޳HX#6U;UwyЅ`L!ni SCx_ >Aʅ'`eԾ-'P>ZBh筳r ,8""d1~PՄcĹWx@`б=٘<-' J.SFðHP6lv&EJ>aLF<9 [4zpRB`iϡ\4Sr~$׍#Os%OOZ8MXБ%iT N8P-o ½Kp)=cjC it8CW Pj$_%xUBrQRېu+ˑ%t΅nY^qKT0YWLQp% մWzCzF~^hC1 ]4,</g Q蜍 sF9ApD)x> -endobj -1041 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [526.903 725.921 567.119 738.424] -/A << /S /GoTo /D (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f) >> ->> -endobj -1064 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 712.371 82.93 724.875] -/A << /S /GoTo /D (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f) >> ->> -endobj -1042 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [458.194 712.371 540.827 724.875] -/A << /S /GoTo /D (group__bsec__interface_ga70e68dbe60e2ba462537540d60192a2e) >> ->> -endobj -1050 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [381.448 659.809 551.391 672.312] -/A << /S /GoTo /D (group__bsec__interface_gab2122fa3909f67a2c786ecd2d8993977) >> ->> -endobj -1051 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [133.4 388.862 235.816 397.327] -/A << /S /GoTo /D (group__bsec__interface_gab2122fa3909f67a2c786ecd2d8993977) >> ->> -endobj -1052 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [171.058 379.398 273.474 387.647] -/A << /S /GoTo /D (group__bsec__interface_gab2122fa3909f67a2c786ecd2d8993977) >> ->> -endobj -1053 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [158.506 369.933 260.921 378.183] -/A << /S /GoTo /D (group__bsec__interface_gab2122fa3909f67a2c786ecd2d8993977) >> ->> -endobj -1054 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [137.584 360.469 240 368.933] -/A << /S /GoTo /D (group__bsec__interface_gab2122fa3909f67a2c786ecd2d8993977) >> ->> -endobj -1055 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [158.506 351.004 260.921 359.469] -/A << /S /GoTo /D (group__bsec__interface_gab2122fa3909f67a2c786ecd2d8993977) >> ->> -endobj -1056 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 322.284 89.365 331.075] -/A << /S /GoTo /D (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f) >> ->> -endobj -1057 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 237.097 129.639 246.738] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1058 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [90.192 223.638 158.088 233.189] -/A << /S /GoTo /D (structbsec__version__t) >> ->> -endobj -1059 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [78.035 60.127 153.391 72.358] -/A << /S /GoTo /D (structbsec__version__t) >> ->> -endobj -1063 0 obj -<< -/D [1061 0 R /XYZ -13.423 915.745 null] ->> -endobj -1065 0 obj -<< -/D [1061 0 R /XYZ 29.788 632.312 null] ->> -endobj -883 0 obj -<< -/D [1061 0 R /XYZ 29.788 302.187 null] ->> -endobj -1066 0 obj -<< -/D [1061 0 R /XYZ 29.788 283.645 null] ->> -endobj -1067 0 obj -<< -/D [1061 0 R /XYZ 29.788 193.864 null] ->> -endobj -1060 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F33 531 0 R /F30 532 0 R /F120 619 0 R /F97 510 0 R /F44 228 0 R /F159 996 0 R /F163 997 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1086 0 obj -<< -/Length 2323 -/Filter /FlateDecode ->> -stream -xYo6Bp TS<.z8[Z-wbWa'E$Jޭn(r8fH],.`Ӟ&7g`x=q32$#.+6igYnq-i)bLD8s:t$)FT IQ*᠑$ -2 ј7kj/kqL1JRe$gi&j<cZ1FױyDWo'+B"%jkpJLQƄdHi 2ߋUp<"" ?ȪN-?{ki6M`1wtAlSpp @NpMpl!0OxćWV4yW֕xӗ+:՟VkULDx +l' b -~qqqW~+ tN0 x&Yll6V׷i݄cpǡ -5[(ʎAf֊r$bx\Wֲ1oZ!{6kKN*=nOYV'ds~.?~ yLj 0Ehp²piˆ rű*;bD!$Dd0rͧFv}s Tiќ F ;,3Lorunm@S"le-۰ CܠZϓqHoסby2F3zmLU湗ͺnvY~2"njs 4:(wv =q lwtI -m}wwnA@9G1KA`J6UhWVH5M_E]x%Zɪ3nOX坛wFOF/EQјlz0E1}j35;3mcfi[noB x[Ws%yZH# -N|LK@OнQ/<[m-=oF3d2.)nPn&3V3ck`mt6"湒jk*GEaen(-.xU gR#+ %4|6{BCme`D%_o&2Q7̀m8MprsTۢ&bsm6yjluo,ۺ4xخFzCpuT6XtM9ykT 6wrkܞcjvJñ~[xz֮(U1giGM3(f-S6?Z -endstream -endobj -1085 0 obj -<< -/Type /Page -/Contents 1086 0 R -/Resources 1084 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1025 0 R -/Annots [ 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R ] ->> -endobj -1070 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 720.495 89.365 728.96] -/A << /S /GoTo /D (structbsec__version__t) >> ->> -endobj -1071 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 710.704 97.733 719.495] -/A << /S /GoTo /D (group__bsec__interface_gae8fc6d614d6a40f0088262dccbb960dc) >> ->> -endobj -1072 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [208.717 701.239 231.631 710.031] -/A << /S /GoTo /D (structbsec__version__t_af823001b85e62b90279f9e6f3c478c23) >> ->> -endobj -1073 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [271.482 701.239 294.396 710.031] -/A << /S /GoTo /D (structbsec__version__t_a9d47d254d17740222791fa0f53c7ac52) >> ->> -endobj -1074 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [53.898 691.775 106.102 700.566] -/A << /S /GoTo /D (structbsec__version__t_a3d9b11a72027026f492a438342a2efbd) >> ->> -endobj -1075 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [145.953 691.775 198.157 700.566] -/A << /S /GoTo /D (structbsec__version__t_a5daac4534748c6f0be9f009273613b02) >> ->> -endobj -1076 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 616.142 129.639 625.693] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1077 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [288.17 565.533 339.469 578.037] -/A << /S /GoTo /D (group__bsec__interface_ga51bcd13812ea62b35749284385a72f98) >> ->> -endobj -1078 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 433.03 68.443 441.495] -/A << /S /GoTo /D (group__bsec__interface_ga51bcd13812ea62b35749284385a72f98) >> ->> -endobj -1079 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 357.071 129.639 366.622] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1080 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 137.485 101.918 146.197] -/A << /S /GoTo /D (group__bsec__interface_gae89eedb131288b72c267c02ec9dea8e5) >> ->> -endobj -1081 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [104.11 137.485 168.867 146.197] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea2368e219ebbce4e1ede7209486283a6e) >> ->> -endobj -1082 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 60.697 129.639 70.248] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1087 0 obj -<< -/D [1085 0 R /XYZ -13.423 915.745 null] ->> -endobj -536 0 obj -<< -/D [1085 0 R /XYZ 29.788 680.816 null] ->> -endobj -1088 0 obj -<< -/D [1085 0 R /XYZ 29.788 662.273 null] ->> -endobj -1089 0 obj -<< -/D [1085 0 R /XYZ 29.788 422.071 null] ->> -endobj -1090 0 obj -<< -/D [1085 0 R /XYZ 29.788 403.529 null] ->> -endobj -1091 0 obj -<< -/D [1085 0 R /XYZ 29.788 281.954 null] ->> -endobj -518 0 obj -<< -/D [1085 0 R /XYZ 29.788 126.25 null] ->> -endobj -1092 0 obj -<< -/D [1085 0 R /XYZ 29.788 107.312 null] ->> -endobj -1084 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F120 619 0 R /F44 228 0 R /F163 997 0 R /F97 510 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1110 0 obj -<< -/Length 3240 -/Filter /FlateDecode ->> -stream -xks6?3&L7KҦoIFCQ+E|q?vH#9BbX @u}9ksޞw SD D3& Dy:+$"'~.N7. ٍ,jdzdz׷=f(J(FgYBeΝ"8;s` P NPshTt4FBwmT Oo(8 A"7ċ㊘Ğ)Jˢn],+~o*̌A==ɶr^7vwaQ   -kw=M 6!4E-˦Ɋu 3}#R)cSaj>~@Y(`B*--!{\ ײ2E]zׯ ^)nMpC+J ~Anaۍ%<[TI)fFF+ ܍]g5-ByFnmw`13"b,KVŶM"Gp:ͥf\Žn;l Ɍ5QYZ|x5X<:=^4+8PWj%IGI6'.ffۋcc]b@ jCkRPim6[=Б,ʶOFV,Lo8[c8`$‘Xj6:r9tVH<4JUZýiŮ5*{Ur \KYe_Pcva/0=.Y7z.}ɒ㍙-AUZ:$=m`8d>y3sޜx"fߝ"8NnuZe;ܧj4SV^g=g8]/HF[2jDm$VmzLI,`ahqRs&7d qf\H|n -# R v/ExE6b>EpFb #}6ڞj_C3i؁OvBfκ6tPg=Ia,DbLYrn˥!g F5 $A&hmzI VVI& -wNKz׊ (:vjl ;9> ]|PAN*]e bs!5]Rv2xҕǵJj%dErW?fE5\lӍRcfzs)wM}E!6tedO j -ag&Z1aEe!-F`AihUwO]{l`}dw]KYI3MPe#z}4uHגOqq=LYcwUBLy[>e<وY_Sݸfu٬11pf aM,աqoPHt -ϳAm3(&SKÞ"$Uju0vUN\yfEuuAyXUsxш'j #//JWYgeg(.pqDB%gUM;<%I *we|ѮV$5x4բp,3eA/U2/_Ul yڸ|[{ҩ ,պ'-*iF=X;WRALV fVMBdEdI&WKXt˥>Ӷn-wHſj|0E~j`j}6Yüo ]+C姲\6P DyLQJ:/m.,O:hUq~fTcuL\t6FW ~t[+Q)-%VZgr>ر\ņvܭ.}Yhb K n6 C.W=Zcul_go;WwCbe YV]0:m#X'8:(GĞFDIOJ^ mQ؆ IaDS >^ ى4t0f$O0ؓ4c;k\LdCAFt<T 0Y< * 2,`H>Eam&FG{m20Du=E4730 -}q -3AJ^DqNgom峗l8]ЁzץX'R)ˬ#Մx&2k0]gr5~ ESe7'7Q:6w>Ұ3lsQKwM`0YgoEzW;Y5&!qNrpb L$ -endstream -endobj -1109 0 obj -<< -/Type /Page -/Contents 1110 0 R -/Resources 1108 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1025 0 R -/Annots [ 1083 0 R 1097 0 R 1098 0 R 1099 0 R 1112 0 R 1100 0 R 1101 0 R 1102 0 R 1103 0 R 1104 0 R 1105 0 R 1106 0 R 1107 0 R ] ->> -endobj -1083 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [90.192 715.476 181.624 725.117] -/A << /S /GoTo /D (structbsec__bme__settings__t) >> ->> -endobj -1097 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [50.126 678.506 159.06 691.009] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -1098 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [70.944 637.858 183.008 650.362] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -1099 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [487.392 624.309 567.119 636.812] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1112 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 610.76 96.25 623.263] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1100 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [62.97 574.27 172.875 586.773] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -1101 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [250.911 574.27 355.984 586.773] -/A << /S /GoTo /D (structbsec__bme__settings__t) >> ->> -endobj -1102 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [161.817 542.476 271.722 554.979] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -1103 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [41.152 510.682 123.784 523.185] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1104 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [290.969 492.437 445.154 504.94] -/A << /S /GoTo /D (structbsec__bme__settings__t_a300b00f9580b9af76d441cd4db8d7083) >> ->> -endobj -1105 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 303.655 129.639 313.296] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1106 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [101.545 198.939 222.98 211.442] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -1107 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [375.68 146.376 567.119 158.606] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1111 0 obj -<< -/D [1109 0 R /XYZ -13.423 915.745 null] ->> -endobj -1113 0 obj -<< -/D [1109 0 R /XYZ 29.788 481.478 null] ->> -endobj -516 0 obj -<< -/D [1109 0 R /XYZ 29.788 368.274 null] ->> -endobj -1114 0 obj -<< -/D [1109 0 R /XYZ 29.788 349.732 null] ->> -endobj -1115 0 obj -<< -/D [1109 0 R /XYZ 29.788 118.879 null] ->> -endobj -1108 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F120 619 0 R /F163 997 0 R /F159 996 0 R /F33 531 0 R /F30 532 0 R /F89 511 0 R /F97 510 0 R /F44 228 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1129 0 obj -<< -/Length 2721 -/Filter /FlateDecode ->> -stream -xZms6_ y\|n:Mڞ] wto)lK]o !`xxX,y~{}żyyBG1x~q@bƼHrdڛ%|ZHjN :܌< "2fd@x v=kuR(D詈qT}h#0_۩ T6* KnOc״z^#a$[Ӳ梔{1 dgg3V̪ 릸cneH=9; KۙcS]۩q6/'>WFge^Tzrd UM#3G{4K [x79YP<j 8VsoWXXo7sxUz^$UgrNо|E|\:|` -OB"#$JUR$K]@ظ^ʾE5&ZRG:(tttUNYqiۤQh rudʼn_T{Uuq=ſwO ] (;]si)F²Ab~K=*URUݻ"F.CF,P8vFvxvW$!ּy Afv0e7eMalTG+ww07yHErpb7{1xmU8zh8~uGgJ>×:O.x4-ד.zqV^<I.z&bb l/EbEy@av~~<]|M+$0! 10 ,$Hr]yLdЬӬƕUj赀5GzJےf6!BΌ?立.X>>5! $x(`/{3@8d1f3]jaZ~ .ȓ-%*]$fѵ*2"I-c[Voh\E]B[ooĻROxvD:0gv[ x@6:y@'|yYUN6@~ȧ'J\ "!&6D~@ 6|.\'^ $k, -^4dyN.Vi;]WM4FaD2ToҸ>\A6ئ* ,qi?ejfYS -6eОm~7$,~S%;..9)}]) ̿=;!Ry';y;91R@)B ڭE`<^?[B8N^zx-ִ ~{qc|%E6$_]Oh)>nꓔ)IxGpM?YSf5_ڕ.*w!Of|.L~5!~?R -endstream -endobj -1128 0 obj -<< -/Type /Page -/Contents 1129 0 R -/Resources 1127 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1025 0 R -/Annots [ 1118 0 R 1119 0 R 1120 0 R 1121 0 R 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1126 0 R ] ->> -endobj -1118 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [145.953 571.579 260.921 580.37] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1119 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [183.611 562.115 298.58 570.691] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1120 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [112.478 552.977 227.447 561.441] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1121 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [133.4 543.512 248.368 551.977] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1122 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 495.863 122.839 504.654] -/A << /S /GoTo /D (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) >> ->> -endobj -1123 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 410.766 129.639 420.317] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1124 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [449.242 305.96 532.972 318.464] -/A << /S /GoTo /D (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f) >> ->> -endobj -1125 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [450.874 292.411 533.265 304.914] -/A << /S /GoTo /D (group__bsec__interface_ga70e68dbe60e2ba462537540d60192a2e) >> ->> -endobj -1126 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [375.68 226.299 567.119 238.53] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1130 0 obj -<< -/D [1128 0 R /XYZ -13.423 915.745 null] ->> -endobj -882 0 obj -<< -/D [1128 0 R /XYZ 29.788 475.767 null] ->> -endobj -1131 0 obj -<< -/D [1128 0 R /XYZ 29.788 457.224 null] ->> -endobj -1132 0 obj -<< -/D [1128 0 R /XYZ 29.788 198.802 null] ->> -endobj -1127 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F120 619 0 R /F97 510 0 R /F44 228 0 R /F159 996 0 R /F163 997 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1150 0 obj -<< -/Length 3172 -/Filter /FlateDecode ->> -stream -xr6_Gy& }7nNҦv۴%.EN?~p([t q=8 ݶ'wޛx HYdy2A^ɏO `b$q6ufܝ!8h@ZwFu9HJ!%zPJ&,JSoxRzi򞯼]ޝMyCx+B0O% ")ls@US#!wHjR/_@ݩhvsZn1641 4DbDrԏy<=lK<"1p3<;/zw>oTcy? $}QurVZ-`}ݰ-JIM4zP\|_w?\,|9Fׯ6>MFp pV-!{!^f pQuM^©J#QoUC(>oQ*|r'kތmu_}=t9f"bb`mMte4DVܱyk&il#cДABl*@g_ -0L(D xBz]iMH#A"t Ds`.YaWY4yhLsP{9Fј(<q7HuvX!R .n{ FH8w4$ B8= COYI(IXgH[Th>/ վ|q=#vOB$N`[->}9#w@=|.CFہ{;ψl혉# Ob"|0ڇif hOR:. J<"EF3䫣t;$lJP┺ݶ`yЂpJ!3 7hK푧AYJiwiUDfrmjU^+6 Fݼs'6QSQK>_}P;SGmE3=j) .!$G.rPJzO ʧg|"$M3dw'3\T@Նj+=ZzOۻǶX)HNJ L5"8T&rU&DIF(I!Q+0(PI REh-MlFA:v?SKb]K4ۣY Tl&l+D'@9Vi,WF[=zxWjNhf,ŵv1,Dn^DȽ=.4g8L>q$coo*].痋o/]~mÜ$b67t4zm[~/R{mtĢEOv6M^ߘ^TWH]@'–6N gf[7]^QwWKM`6{KyY-* =vGjI<v{MQ):ˆFh~N=d :f=vf% - YZ)w1Zo mRfIA^ѭ#;N>8kr)Q@yC@ukM?u\ -dx=ݚBwL9[b$-n6ԣ Үh{sW!!j*ʻkZ9xO '/!`ZlTz$ksOr7}/GSYxoÜ &r)'BFnj/ Dmo©ۦ`jUP) -t1! #3]^ 8igBI+BH?9OIfqB{}ݩg\ Sy2X7D-FY)KXsCHj -BMmA6ꦮW=r Np -uܑ'=ֹo 5do -n[婓FC1mYN L}nXqB}ID.V wy;>^vTf2j&DH .Ws!@jJt N9@'^{E"4?6E6ayse NN34`u0ɜpؕҪ^m58tkLQ>+@\tb<01!.qj2v]9<҇ݤ]8C6gk}yȘl`Էؠ-X)~p7B dTk a+ -+Lܹ^-al tb`0m4Y8AƂ4aʦ6P<էJֺ- v7/NO 8qm<Ã"]20 IkӐnģH@11&d8>c(`e c }2biR 3JrPkz2fλ!wɺC;ޥzD= ^͂bթr6e"Cy!a(}ShsʱJ3zEZc[EL ڽI8^ļP N1Lƺ2ce~>z!ReOwr`wSz;Po)$:Nɬ?;rl߷NOiBKǵmxƂ j94/r$+p! X*Wa;m5۴aiCsW/Na']L'ݣiB4F7oqB6 1!k;s PCY[ۉۼK|ͫG nx[y -۲.:q~hʢ T"X -endstream -endobj -1149 0 obj -<< -/Type /Page -/Contents 1150 0 R -/Resources 1148 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1153 0 R -/Annots [ 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R 1144 0 R 1145 0 R 1146 0 R 1147 0 R ] ->> -endobj -1133 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [133.4 655.664 248.368 664.128] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1134 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [158.506 646.199 273.474 654.448] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1135 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [137.584 636.735 252.553 645.199] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1136 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [158.506 627.27 273.474 635.735] -/A << /S /GoTo /D (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) >> ->> -endobj -1137 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 579.948 89.365 588.412] -/A << /S /GoTo /D (group__bsec__interface_ga70e68dbe60e2ba462537540d60192a2e) >> ->> -endobj -1138 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 507.669 129.639 517.22] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1139 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [118.436 494.03 247.527 503.671] -/A << /S /GoTo /D (structbsec__sensor__configuration__t) >> ->> -endobj -1140 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [90.192 466.932 219.283 476.573] -/A << /S /GoTo /D (structbsec__sensor__configuration__t) >> ->> -endobj -1141 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [51.163 416.413 186.75 428.916] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1142 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [120.472 402.863 228.566 415.367] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1143 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [153.536 371.069 273.103 383.573] -/A << /S /GoTo /D (group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) >> ->> -endobj -1144 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [109.688 357.52 220.888 370.023] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -1145 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [181.35 325.726 320.019 338.229] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1146 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [105.688 185.213 238.997 197.717] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1147 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [458.318 153.419 564.29 165.923] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1151 0 obj -<< -/D [1149 0 R /XYZ -13.423 915.745 null] ->> -endobj -601 0 obj -<< -/D [1149 0 R /XYZ 29.788 572.08 null] ->> -endobj -1152 0 obj -<< -/D [1149 0 R /XYZ 29.788 554.127 null] ->> -endobj -1148 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F120 619 0 R /F44 228 0 R /F159 996 0 R /F163 997 0 R /F89 511 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1179 0 obj -<< -/Length 2744 -/Filter /FlateDecode ->> -stream -xZmo8_O"%j{xY4mػK C[%E$qlwqqDQp^gH^n5kn9֛3x0<@ccS|ʬTXg_$f7FǂvrXؒqDlMW-aMi׳$G]a׳|D pp<ϥD͊D!q]+*Tʵ`u7%]088 -Y7]j|8Xp`.'] . -[m̺J&> E%i.G F5a0e ->@\ҿX3Rdsְ.r fں>a DOM y%pZpbyĺM̈́P<}œExcU80=O(w-<ՌKnf,h-jtBh!pUtY -S.\f.S/"$PS̰SO cݫΓLLdzdb}r?ܐ@C<1".m XdiOR9+ֳ0㬘d4ZK1w0Y*q<#(?AE GU+5qE*.┈FUR ta4/4dGOR"JncH`O4$)A5 BMu\u4v1<gP}$+ݨnqht5<D/fѴ OI>plUp h:P`4Oܥ_/g~cx?ssߥ%UᢀM/F(P7|;fa詧dV N]jBpl6=n9^PPFbE;P1 }Wo`ŋ̆~'UxAAI^p]SFb$,wJ1d%R<-D\nuM"ekAefi'tct+-dž P3Pww_Kͬj̼ykZ [u:rp{^gjI\|c*E]ٶ<aj- T6E޲~U{V ^T]v -K6EF_?Bt! t!;!n]?b]?)xֆˍ A퀘uؕ<ܻ,-Iޘ),K5(T73 cq4CO8d' 9~qtq4o4 -`H*Co!|ϩ AꒌՇ8ɣ4iq@%?>0-F W7;v*n!wm=s!#4XC:?W:[-Z#Ta> -endobj -1154 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [356.816 706.099 439.449 738.424] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1155 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [144.264 684.865 280.253 697.368] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1156 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 319.63 196.93 352.266] -/A << /S /GoTo /D (structbsec__sensor__configuration__t) >> ->> -endobj -1157 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 306.081 173.879 318.312] -/A << /S /GoTo /D (group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) >> ->> -endobj -1158 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 292.532 163.57 304.763] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1159 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 221.68 143.761 230.471] -/A << /S /GoTo /D (structbsec__sensor__configuration__t) >> ->> -endobj -1160 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [150.137 193.366 189.788 202.078] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a92665e4f2f3cd5237814488774c0f546) >> ->> -endobj -1161 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [200.349 193.366 265.106 202.078] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea2368e219ebbce4e1ede7209486283a6e) >> ->> -endobj -1162 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [150.137 183.902 198.157 192.613] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a150ba3a737fb75f56052c60d55246ae4) >> ->> -endobj -1163 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [208.717 183.902 294.396 192.613] -/A << /S /GoTo /D (group__bsec__interface_gacf6a5816306dfc1e3c0b26a6d459fc71) >> ->> -endobj -1164 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [150.137 174.437 189.788 183.149] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a92665e4f2f3cd5237814488774c0f546) >> ->> -endobj -1165 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [200.349 174.437 315.317 183.149] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea792b0fbeffceea19513cc0bd31ce7ef7) >> ->> -endobj -1166 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [150.137 164.973 198.157 173.684] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a150ba3a737fb75f56052c60d55246ae4) >> ->> -endobj -1167 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [208.717 164.973 294.396 173.684] -/A << /S /GoTo /D (group__bsec__interface_gacf6a5816306dfc1e3c0b26a6d459fc71) >> ->> -endobj -1168 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [150.137 155.508 189.788 164.22] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a92665e4f2f3cd5237814488774c0f546) >> ->> -endobj -1169 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [200.349 155.508 302.764 164.22] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea5f42ad42c6bb71627b5ce91d4c410985) >> ->> -endobj -1170 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [150.137 146.044 198.157 154.755] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a150ba3a737fb75f56052c60d55246ae4) >> ->> -endobj -1171 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [208.717 146.044 315.317 154.755] -/A << /S /GoTo /D (group__bsec__interface_ga216b6f4807227a2c6a183aaa9a8b8d7c) >> ->> -endobj -1172 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 117.571 143.761 126.362] -/A << /S /GoTo /D (structbsec__sensor__configuration__t) >> ->> -endobj -1173 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [53.898 108.433 156.314 116.897] -/A << /S /GoTo /D (group__bsec__interface_ga847070d3ecfa970cb2f716a2d11fe219) >> ->> -endobj -1174 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [187.796 98.642 290.212 107.217] -/A << /S /GoTo /D (group__bsec__interface_ga847070d3ecfa970cb2f716a2d11fe219) >> ->> -endobj -1175 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 70.328 131.208 79.039] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1180 0 obj -<< -/D [1178 0 R /XYZ -13.423 915.745 null] ->> -endobj -1181 0 obj -<< -/D [1178 0 R /XYZ 29.788 592.073 null] ->> -endobj -1177 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F89 511 0 R /F120 619 0 R /F97 510 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1233 0 obj -<< -/Length 2738 -/Filter /FlateDecode ->> -stream -x[[o6~ϯcT >x&N6qRۙi1- Vb-l#sY!u|FbэxE_zΰba .,Ǐp[B $ -=ZK@ABÔ_9BUߺL"~M -"tYQH)g."̱\I TjmxF%RR '8ﭕb.\s㲷dUԲSA˜Z - .{T\pP%Lb88Âź{tt_)tkcAH"]^) C5zBͬoh:+χ* -7sYwTPpaJc*5?5?[ZMӥn20ka : FЖT59V/־G]: ꒊXj㽄7[$!H Adq,a(#؅ 9﮶K/,)O%f(DbțS8 Co WM Pl;߁4I{obTTXlAū:VRHD0 =ar]M1v|> f^^Ze EJTN NLɌȂ911O 4v L2Ǘr `C(`_L uN1@I_&MeN(z. |3 -IlK =Z!GÚpbǘ`c\njfr0:^qO"N:%qzvOXkO' 8'ɴDoHe<,GoME7AW~ -q|,R%ʞWhy@ R'?l'Ҙ5U#!B[ cL ê:`z$uN'8Ű_00m7SH&\ߒ4.\~>YlS<$k`J)D@!̾WKlW`%Yx v,naXP1$2ELJΨ{̟B̟ڮЍ gQc1'dK IhU:\K^e?Aw8wv$B,Ib-e~MX4yO;'d|nPH7WQg~DSĩ(ȉ; ofJOV5Cs課w+f'"v=)ZdIHÐXUZHA\fYmW3bIIy\o,؝ek&+#`_kP$W]';cKz'n(m1QNP0 yH+[Qrs0D4(R(^gVAuyhm%;|jTmWV0t ud\8u;v#R{X #~:aA- -,Q_;^9 tR_T4|ۮ9x1|^op՞]F7.8 X "^Mu$!]O!SxkΨ d+maL(~lqg}A0$qfz;_;{{IJ`QhuaM7Rys h/m14ϥyYvm 'Fb@F|+gZ`~V[g.&ݿ ftlK"/y9KMcp^^\<.aR`4vS/+F -ۥJ/<]JGa#]k}v-VHIwۺ;7֖9xhB퓏^(dHlsI0Uz0Ov]i8ecǦܪ,=c" -Q'oyϙὀүRpj``+mIF:+Ov-?Wߓu²mPMRƃ6LU ^!5' -endstream -endobj -1232 0 obj -<< -/Type /Page -/Contents 1233 0 R -/Resources 1231 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1153 0 R -/Annots [ 1176 0 R 1215 0 R 1216 0 R 1217 0 R 1218 0 R 1219 0 R 1220 0 R 1221 0 R 1222 0 R 1223 0 R 1224 0 R 1225 0 R 1226 0 R 1227 0 R ] ->> -endobj -1176 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [52.329 672.212 153.175 681.763] -/A << /S /GoTo /D (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) >> ->> -endobj -1215 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [477.758 592.64 560.39 605.143] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1216 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [303.136 537.399 385.769 549.903] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1217 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.267 507.271 397.899 519.775] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1218 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [303.136 477.143 385.769 489.647] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1219 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [327.987 447.288 410.619 459.792] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1220 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [460.772 417.161 543.405 429.664] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1221 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [389.242 387.033 525.23 399.536] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1222 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [389.242 356.905 525.23 369.408] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1223 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [343.162 301.664 479.15 314.167] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1224 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [389.242 271.536 525.23 284.04] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1225 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [303.136 201.034 439.125 213.537] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1226 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [303.136 173.935 476.696 185.855] -/A << /S /GoTo /D (group__bsec__interface_ga847070d3ecfa970cb2f716a2d11fe219) >> ->> -endobj -1227 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [389.242 143.807 525.23 156.311] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1234 0 obj -<< -/D [1232 0 R /XYZ -13.423 915.745 null] ->> -endobj -145 0 obj -<< -/D [1232 0 R /XYZ 29.788 737.428 null] ->> -endobj -642 0 obj -<< -/D [1232 0 R /XYZ 29.788 719.646 null] ->> -endobj -1235 0 obj -<< -/D [1232 0 R /XYZ 29.788 719.646 null] ->> -endobj -1236 0 obj -<< -/D [1232 0 R /XYZ 29.788 644.424 null] ->> -endobj -675 0 obj -<< -/D [1232 0 R /XYZ 237.212 612.282 null] ->> -endobj -716 0 obj -<< -/D [1232 0 R /XYZ 106.27 595.703 null] ->> -endobj -740 0 obj -<< -/D [1232 0 R /XYZ 110.503 554.012 null] ->> -endobj -742 0 obj -<< -/D [1232 0 R /XYZ 87.485 523.884 null] ->> -endobj -769 0 obj -<< -/D [1232 0 R /XYZ 43.848 493.756 null] ->> -endobj -771 0 obj -<< -/D [1232 0 R /XYZ 82.03 463.901 null] ->> -endobj -772 0 obj -<< -/D [1232 0 R /XYZ 36.164 420.224 null] ->> -endobj -798 0 obj -<< -/D [1232 0 R /XYZ 117.201 403.645 null] ->> -endobj -799 0 obj -<< -/D [1232 0 R /XYZ 109.903 373.518 null] ->> -endobj -800 0 obj -<< -/D [1232 0 R /XYZ 127.488 318.277 null] ->> -endobj -825 0 obj -<< -/D [1232 0 R /XYZ 102.627 288.149 null] ->> -endobj -826 0 obj -<< -/D [1232 0 R /XYZ 61.019 231.195 null] ->> -endobj -827 0 obj -<< -/D [1232 0 R /XYZ 73.139 160.42 null] ->> -endobj -849 0 obj -<< -/D [1232 0 R /XYZ 97.783 118.728 null] ->> -endobj -1231 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R /F29 648 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1240 0 obj -<< -/Length 3173 -/Filter /FlateDecode ->> -stream -x[YsF~ׯ\e0ح*d&]łHBB4iʏ\MfJ6LOO7}q1ceiZє3`x~7ML$W|[y>V .ɔqtnV[]d}Šl&@r[aΪڞ9FTWD 4$sPuʈYqV_(P Ř~*a K1 VV".M#83LqpT{UL@JNAI42Vvh&N~:zA)¦.]\(1E&B?+D0a&^|yal7^2l4/ 3#\&Ԑh ->h TU:@2+Qu  Z+mMc\GD fa2k -M^\Gʎt,Z0dQ>S@LKp#fPELap9ߏD<`aIẂƫsr<)s1OG"doT+ɮ4\U.<^5#*?_ї7u9A%$u%4ffrf(9 G9J,M485қ7#ձ:WeV7@_|җF HND?3:\`x0~0A0<wp4}!8b:ad$~ј -ҸMK<+j4C6 Jpo)E#4B5RS#4BeȾґ|U=~ur fqO13⎨0t"wj0@ TdbXV}gtESGsSW P +' \,H8yvfP :"@$M4DݎgcO~^C.9^zŹ.!HQ;DW8أxUcK8[1 -!)CR/:uJVD 6ir]yv5/Z%ϪT4Mt 9aH|?_;yM:CQmzI\}iS - U 7LSpȵ6 |03T'g+/L$߉ZqD }0q|=v/Ԏ_$uO15B :#[t >39ޖGUG]G _ߗD@i=&5宗ބ8: Jl2Wx~X~TZmbD~9}_1И@XCihx2{ǣ(B2pci~^샻E/1xF/rY=7Ub`D ›zޑyE^:סHng{Z> gF[ Hj j b>8vi|wsIU]dIįv67v뱠fʖíkT١ 7RGm?_y`o{[k߆x.n{Z`:^5 JS֗Ff}N%"pL6n9o8 % ՒL)ڗVdOT-m5^73o&7[x$t/VK#6o&Ϻ- -0WZjz;O9LC]9ζqD8X h~wl`$Jhx?mGR#VK+IU ޫԝIA/O~_e|._cYr8ԽgB[F}+gyN̙ۑnhjډ8QM3l?0XWRJSP[P%@#X?*yeMS8 -2UMWQu$/0| -_,l+frLi,=ID  Ie0@3ٳP)-.3U4V dZ_\m_&"ecadiI~Ӛ_*'ռ'+= - u4u*wfDseoN䃁/ɟk)^=`X1+cX^*~cX?cAbS9fw~ ZIxه,rOH`&n`m<'O_V2yʑi SThc%*W 㒵y -Z.aد>$"W%* d p0=Đ,AˣGr3pĩOSG -endstream -endobj -1239 0 obj -<< -/Type /Page -/Contents 1240 0 R -/Resources 1238 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1153 0 R -/Annots [ 1228 0 R 1229 0 R 1230 0 R ] ->> -endobj -1228 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [303.136 658.546 439.125 671.049] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1229 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [303.136 585.013 439.125 597.517] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1230 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [358.914 185.09 468.819 197.593] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -1241 0 obj -<< -/D [1239 0 R /XYZ -13.423 915.745 null] ->> -endobj -850 0 obj -<< -/D [1239 0 R /XYZ 73.565 705.286 null] ->> -endobj -851 0 obj -<< -/D [1239 0 R /XYZ 83.274 675.158 null] ->> -endobj -880 0 obj -<< -/D [1239 0 R /XYZ 141.452 618.205 null] ->> -endobj -879 0 obj -<< -/D [1239 0 R /XYZ 69.91 601.626 null] ->> -endobj -1242 0 obj -<< -/D [1239 0 R /XYZ 37.461 571.498 null] ->> -endobj -1243 0 obj -<< -/D [1239 0 R /XYZ 168.103 541.371 null] ->> -endobj -881 0 obj -<< -/D [1239 0 R /XYZ 83.863 524.792 null] ->> -endobj -912 0 obj -<< -/D [1239 0 R /XYZ 82.052 483.1 null] ->> -endobj -913 0 obj -<< -/D [1239 0 R /XYZ 109.336 425.874 null] ->> -endobj -914 0 obj -<< -/D [1239 0 R /XYZ 153.561 395.746 null] ->> -endobj -915 0 obj -<< -/D [1239 0 R /XYZ 38.416 365.618 null] ->> -endobj -941 0 obj -<< -/D [1239 0 R /XYZ 83.241 335.491 null] ->> -endobj -942 0 obj -<< -/D [1239 0 R /XYZ 72.354 278.264 null] ->> -endobj -1244 0 obj -<< -/D [1239 0 R /XYZ 57.179 248.137 null] ->> -endobj -1245 0 obj -<< -/D [1239 0 R /XYZ 125.666 218.281 null] ->> -endobj -943 0 obj -<< -/D [1239 0 R /XYZ 79.598 201.703 null] ->> -endobj -952 0 obj -<< -/D [1239 0 R /XYZ 69.921 160.284 null] ->> -endobj -944 0 obj -<< -/D [1239 0 R /XYZ 61.456 130.156 null] ->> -endobj -739 0 obj -<< -/D [1239 0 R /XYZ 29.788 63.19 null] ->> -endobj -1238 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F29 648 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1268 0 obj -<< -/Length 2150 -/Filter /FlateDecode ->> -stream -xYYo8~m K$;;x Cn-'oQ:/ MG],~U$OfW͋#͑Ώ(@D p@b +th PBO{":ixnxE ->lqc*q pP<Ʃ'JN?0sPӴ;՚Fbir\ .VBJ.1 -ftTw麙adz!%cqvt8%a8ྏfؗYY'"Z;ԗJ,/Ut|3lQpQ{/o\CRAh3J̧\sjvu]oӁS }2:\adi8X -=ן GwaCd!!ǣV4 f;&BEcD}[;P<¢YrCNʎ;qXr&D׎i7hBc 8eTt]+܆ ԉi5 -  r'yK -~/T|0OLdeXZAӨP{[o=3S 幓pL -#A, U+UX>ҿ敱>jEWQYl`C檬Tm̔B:Õ*]\\ō*$7zVtanꮈd5>Shz"s$09UVz' - MG Bk}z =Vae`sN+}w3a?vܺY [Ì s` a`c(uI -Bu8DۋgWgq4a"IqrՅ?uKFuٯ_L2c`b@%P )W$d; :@) <:߿\^o#G]9>W$NxnokVnOq >])ɃuE_2~jҸN^+j1uzU1$V*ԻƠԨuudv9r5ʋ6 B/d:}OC=VIa0["Qx^'P<$yYJ |5 NW!kih. .>$>ۃڪḣ6cvloyQ\}n)C֊s1!lfI7PtޔP$R]o|IgpR0?eT{ST!@ F9ZYlo־=3Cx͸ĮG '¨݉fΞtHwFY(+dRob/`9 ;6aUY̝ʇpY>ͰC-38mW*-GbZоk褚U*pU ()06KIUy~V xMx=F"cWD ?SH/oWM$i'yX* }[n:{sIvVӹbMk=#ǿ}ڑPEk͹ؤq-,!h{AWEf怡>Cx7 ~X naDh-.'wI$aFsKՖkWݠ8]ҹ),NFԬ<b3)YeYY/xE juǎO ٱ6s׹·+ƭ(i]ߊ=!* -tG ? J#]|,i [Б3u,=olZ5cZ>.:C4SĎzB/jˉ4_vt6d!l7F,mmZeRXq6E~! `yZO>9_}6ڷu;˥i!̔[zâlyuHӟahHIΊpYO _\/6jg&9Qq )]ՙl p Oh.C 71\Iԍ甸4I.H ysCcH+1k-s2: 2 -endstream -endobj -1267 0 obj -<< -/Type /Page -/Contents 1268 0 R -/Resources 1266 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1153 0 R -/Annots [ 1237 0 R 1246 0 R 1247 0 R 1248 0 R 1249 0 R 1250 0 R 1261 0 R 1262 0 R ] ->> -endobj -1237 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [52.329 699.813 157.883 709.364] -/A << /S /GoTo /D (group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) >> ->> -endobj -1246 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [118.296 662.753 237.803 675.256] -/A << /S /GoTo /D (structbsec__input__t_a916867811b65988853b69f729b91c262) >> ->> -endobj -1247 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [331.827 662.753 530.494 675.256] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a92665e4f2f3cd5237814488774c0f546) >> ->> -endobj -1248 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.551 649.204 428.54 661.707] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1249 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 609.879 196.93 642.515] -/A << /S /GoTo /D (structbsec__sensor__configuration__t) >> ->> -endobj -1250 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 596.33 119.322 608.561] -/A << /S /GoTo /D (structbsec__input__t) >> ->> -endobj -1261 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.492 393.102 423.586 425.738] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1262 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.492 216.83 423.586 249.466] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1269 0 obj -<< -/D [1267 0 R /XYZ -13.423 915.745 null] ->> -endobj -1270 0 obj -<< -/D [1267 0 R /XYZ 29.788 737.428 null] ->> -endobj -1271 0 obj -<< -/D [1267 0 R /XYZ 29.788 582.382 null] ->> -endobj -1272 0 obj -<< -/D [1267 0 R /XYZ 139.844 550.241 null] ->> -endobj -1030 0 obj -<< -/D [1267 0 R /XYZ 147.131 533.662 null] ->> -endobj -741 0 obj -<< -/D [1267 0 R /XYZ 117.426 370.939 null] ->> -endobj -1027 0 obj -<< -/D [1267 0 R /XYZ 121.048 194.667 null] ->> -endobj -1266 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1311 0 obj -<< -/Length 2413 -/Filter /FlateDecode ->> -stream -xY[o:~ϯУT I'qsrM}H@G[YrtINwxVZ7]`Er8ofgbl,l`X>c*b# )ry0udl"&X@h=`QΆƞsSŽEދu39Ц?YU~[y0[t!Kt 7߰?- Jֳ\ˁJyWP}Xxk |[]2"ꑁىbNz_-\b2n4 - n!H >}D4EuQ8CP@,a@at>x~1]\MO9z~S0yCW\zs>i`]sR;4œqD#^|sk^vq`-2Kc waIG@qk -ݶz\ڜIz38ztln[ }#o ipP^z UeEbp99 9@(_qX,\FCb ~Yxk*Ѧȯc} - wJ3.@Q}0#P@Fu)~L&io*4Z r; {J).|S7l%/3+pZ)5eUQU -2JDB,Md?4l"\U-Zďu\B5 /2 P2כ%*2*X]h 3 P`PBa\ |Mnakݘr7!IP1YywQ>4A$=v[fwp AVqp-ä!pE9&S%` &i{v4qSs bȺJL3$4k?֋!Vq {p}4)}˓ҴUܶewZO3? -_Jo.jFlZhZEaa`05 qN(GNQU[UN2ԾQSjI7y -_F=$[ilt|7tI6Ƭ `9unn5^Ce#kl Vbwi(@JR;X& ݮ#\J>#~qDoI]/L }_y-w`D RIz_ DAS)2 5aӽ(attضߦȣ,HQnrC!0.AQ ^ZÀ5G"Є_QjqPn/@<[}낫[[Q<ͣZZPQI~!h> -endobj -1263 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [288.809 675.124 447.794 687.044] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a3eb936f08a8f6f01d4c683a6ba0c9d3a) >> ->> -endobj -1264 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [288.809 661.575 560.743 673.495] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea4e05ab48912e70486351f5199910fcb9) >> ->> -endobj -1314 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [288.809 648.026 378.685 659.946] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea4e05ab48912e70486351f5199910fcb9) >> ->> -endobj -1265 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.492 592.867 423.586 625.503] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1273 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [52.329 443.666 153.175 452.276] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1274 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [116.593 405.665 242.91 418.168] -/A << /S /GoTo /D (structbsec__output__t_ab188da3e58d458f4b94a64379404da46) >> ->> -endobj -1275 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [332.395 405.665 531.061 418.168] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a92665e4f2f3cd5237814488774c0f546) >> ->> -endobj -1276 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [292.551 392.116 428.54 404.619] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1277 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 352.791 196.93 385.427] -/A << /S /GoTo /D (structbsec__sensor__configuration__t) >> ->> -endobj -1278 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 339.242 125.999 351.473] -/A << /S /GoTo /D (structbsec__output__t) >> ->> -endobj -1312 0 obj -<< -/D [1310 0 R /XYZ -13.423 915.745 null] ->> -endobj -1313 0 obj -<< -/D [1310 0 R /XYZ 124.091 705.286 null] ->> -endobj -1315 0 obj -<< -/D [1310 0 R /XYZ 36.164 570.705 null] ->> -endobj -770 0 obj -<< -/D [1310 0 R /XYZ 29.788 508.809 null] ->> -endobj -1316 0 obj -<< -/D [1310 0 R /XYZ 29.788 490.267 null] ->> -endobj -1317 0 obj -<< -/D [1310 0 R /XYZ 29.788 325.294 null] ->> -endobj -586 0 obj -<< -/D [1310 0 R /XYZ 183.266 293.153 null] ->> -endobj -1309 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F33 531 0 R /F30 532 0 R /F44 228 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1321 0 obj -<< -/Length 2273 -/Filter /FlateDecode ->> -stream -xZ[oH~ϯe$Teޜěh:I;dF("Y^͏STnҮ䄂:u.߹Ź7#";_ 6+Kpl.44>}j >*HH2i"K5wkCNm #X1%9lDeAPIT2hBuHaYSIw#6z~9C 3&iךѝŃW q12KAkb)uaL  Qv0Q䠅S=ct"%_xgP\nۆ٠.ǰ]eoon<.,X38K< =yM0NI sTj|-p+.b2 -'jauͮd B&{BO. 8GI\oyXt*zk)/ך?P'3L#vx$mqib!*fSX0 1&?IÕ40g)ITip8cpw}{oM/OmRF.M8aY8 U8Wpy旭oy6‚U)&\8>4;D]m("c2Z2~yK'x ^Jy -e|f~7ܵe9 9f|( 5- Pl8m_&cog Ufs~&Az9 6 g 0d"?0$:Xp(kc`6ٛ|loXdɏ2 -зpVO-b-?z$ 3uwh=!jr° ͣ4 7u d6rE?8Q|uA*&4abBK%U$( $ywf@dR Fs,zVDխn(H,3O6iE|4Z }QPXQP݄A+@m-4`5ȋ(K"W- XPҐn7MpNJ78K,;w>ɸ؛P9\ \5eEw!\6 %8H"hD8H%WS~4+rX%,\Axաy]Gs`\ z4_)bI'mTLA.4gtpALؘtt *=>Oߑh\2xOGs-SrN+H -̥P20 h#&Eu##\ -\»? %l\ّt\ɩ I*r?.!RL]K"r/w^JoλwSzX`^OټueH˰Т[vmْϪ t 4[d+{7y| h M4y*kf>Mxl$A谷Ci.md#[`D`L/1K8W! /N97[ÇC,U8޹$ЏK(s(Xq}]܅p sj 0I҅<8ʖ:}IɆlC\> -endobj -1322 0 obj -<< -/D [1320 0 R /XYZ -13.423 915.745 null] ->> -endobj -1323 0 obj -<< -/D [1320 0 R /XYZ 138.408 705.559 null] ->> -endobj -1324 0 obj -<< -/D [1320 0 R /XYZ 104.459 688.98 null] ->> -endobj -1325 0 obj -<< -/D [1320 0 R /XYZ 52.936 672.402 null] ->> -endobj -583 0 obj -<< -/D [1320 0 R /XYZ 88.117 655.823 null] ->> -endobj -582 0 obj -<< -/D [1320 0 R /XYZ 110.536 548.651 null] ->> -endobj -584 0 obj -<< -/D [1320 0 R /XYZ 117.823 518.523 null] ->> -endobj -585 0 obj -<< -/D [1320 0 R /XYZ 147.506 422.914 null] ->> -endobj -589 0 obj -<< -/D [1320 0 R /XYZ 72.332 352.651 null] ->> -endobj -590 0 obj -<< -/D [1320 0 R /XYZ 112.357 295.938 null] ->> -endobj -1319 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1329 0 obj -<< -/Length 2047 -/Filter /FlateDecode ->> -stream -xYKo6W(ͧzpI=$B^ѻ*PcׇI<> %E∠5">;$CCJQ D;n>,52ɰ'fn/2ח!EH̤s:61%eЅ90A`(C~?œpy5NzbѻD=,jRm{eEC!"'w)+jAHnttO-mي瘆^fqt@I9-b!"F_7yʊ|WůGEO*dp?A1LtAR492Z3 Xѡ)0H"+zI*Ust9 Kpapz~heVXn ƍw}OMà5\B#q(c<b xh]ޙDbxǗ׋|qjl|%|-Os@|:,,A,QHq ńD:Hw 6:[\_ -ײ p(oTT*DT -N/1)epBgp[I5QkrۓAV.YSʝw**#6_79o>̼MRG;&ܨ,yXXS&WBxoM[|HvУB-Nhz21B:fB˓l+wy\QkkXI{IƮ,L+P6n664kGAwjJ(aRTww>Oh0r"f1/:hPB]Byg FJ+ -b7tơ$]' I1MOWog/ @mlAwBwv -R#>iWqVVy58}8\{.1*-a8mb,78(]Ui煨h@O#9}CBq._!)üv`-kXRFk<[^6TYn+q a2^%PYk%8q.n͔~hfN -l( {ڄcqȜq`%_iD[r -ؤ'qKnl{i×9.> 24l<1~uJsFRkylj#yv!?aλtQV(sӮ6Q}-<<$ -g3e]iUTgXB3Pt{An}$$pz1!l5BQw;%=HP``t%LJ zZ^0ǖ%QeK-W[2;q -R o,%>'nM ̘ \̄(aKMaM>sLhlC&T8g]bݷQD'qELyПQa']^Di t_wi!}O*P(-(wM[ P:6JݿG&'u_ǹ;R2i0HD-H Hi1Ae%:x!O [ -endstream -endobj -1328 0 obj -<< -/Type /Page -/Contents 1329 0 R -/Resources 1327 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1326 0 R -/Annots [ 1299 0 R 1300 0 R 1301 0 R 1302 0 R 1331 0 R 1303 0 R ] ->> -endobj -1299 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [333.093 564.094 485.412 576.597] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650aaf8083737123a5c4d012783ee10a522d) >> ->> -endobj -1300 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.496 462.581 443.488 473.312] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a3eb936f08a8f6f01d4c683a6ba0c9d3a) >> ->> -endobj -1301 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.496 436.17 437.761 445.58] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650aaf8083737123a5c4d012783ee10a522d) >> ->> -endobj -1302 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [393.234 413.654 560.743 424.494] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea4e05ab48912e70486351f5199910fcb9) >> ->> -endobj -1331 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.496 400.105 432.034 409.516] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea4e05ab48912e70486351f5199910fcb9) >> ->> -endobj -1303 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [315.496 385.869 443.488 396.599] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a3eb936f08a8f6f01d4c683a6ba0c9d3a) >> ->> -endobj -1330 0 obj -<< -/D [1328 0 R /XYZ -13.423 915.745 null] ->> -endobj -587 0 obj -<< -/D [1328 0 R /XYZ 36.261 705.286 null] ->> -endobj -1327 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F33 531 0 R /F30 532 0 R /F89 511 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1337 0 obj -<< -/Length 2076 -/Filter /FlateDecode ->> -stream -xYo8aX1|qߜMIZn- fْG(ʒl'88H+Z$3'u2~h@]D $J/DBwG,56ɰ+{,6'},fIѥi a]K4Q͠sǁr4Pv9@Mn K'+`u?ϋO,%)v}˨,xJaܡ D!#"u3#xN͖!_,80si㣓w`@x!`swdcy~o,Is5;:h0nC,-ЩJ&Act-Ѩ)JrI0 ,O075%.f1.\-0ؼ(*z=}~\T -%vbs{^`J[Ibcu犮y*ŜK%O=E F]5JyY G$fA|rs;p;ף?\};Αtx:,$AUDzvct @CO^]_?m{ X׊LpikZ,T"3`= iȻ.{FS>ܠvlgqboL{3SlƕM!l aeV!\0 -/P?F^NÆC\(p$k4.3P7tʽslg56HDC;4`j(s}Y*u .26WwQ PI&,gueDB_%b5Uiی?hf)jj뱲.lS=gl[2;MΘd4Z'-#ׂuހc?MN9.B4k {*VMa}~#W٦װ`$0dZ*(FZx*4$- -sq8<h -SJAkTK-k[k!FZ11jr*{q6JA7\]̈́m ^__wi帊B?'],fX\0aHϣld2r{ۣ_j&bV{j@Z$4=af $Bi+<*{id{")ꔠ8Lzxۺڊy4p 6li)X* *a -endstream -endobj -1336 0 obj -<< -/Type /Page -/Contents 1337 0 R -/Resources 1335 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1326 0 R -/Annots [ 1304 0 R 1305 0 R 1306 0 R 1339 0 R 1307 0 R 1308 0 R 1340 0 R 1332 0 R 1333 0 R 1334 0 R ] ->> -endobj -1304 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [374.689 661.575 503.968 674.078] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a381b968290256e77d50c4f7e92bfb27c) >> ->> -endobj -1305 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [364.98 648.026 523.965 659.946] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a3eb936f08a8f6f01d4c683a6ba0c9d3a) >> ->> -endobj -1306 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [364.98 634.477 560.743 646.396] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea4e05ab48912e70486351f5199910fcb9) >> ->> -endobj -1339 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [303.136 620.927 469.998 632.847] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea4e05ab48912e70486351f5199910fcb9) >> ->> -endobj -1307 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [405.136 577.643 557.456 609.969] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650aaf8083737123a5c4d012783ee10a522d) >> ->> -endobj -1308 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [329.82 536.996 560.743 548.915] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea1c0eee38a61b05c5239c871f9cdc85a4) >> ->> -endobj -1340 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [329.82 523.446 434.849 535.366] -/A << /S /GoTo /D (group__bsec__interface_gga832388c889417ed197609d9965625bfea1c0eee38a61b05c5239c871f9cdc85a4) >> ->> -endobj -1332 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [361.671 325.771 497.66 338.274] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1333 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [291.318 237.223 413.365 249.726] -/A << /S /GoTo /D (group__bsec__interface_ga8798390d842b820e79e9cbf8ba4d516e) >> ->> -endobj -1334 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [291.318 148.675 374.562 161.178] -/A << /S /GoTo /D (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f) >> ->> -endobj -1338 0 obj -<< -/D [1336 0 R /XYZ -13.423 915.745 null] ->> -endobj -588 0 obj -<< -/D [1336 0 R /XYZ 36.261 705.286 null] ->> -endobj -1341 0 obj -<< -/D [1336 0 R /XYZ 88.706 488.007 null] ->> -endobj -1342 0 obj -<< -/D [1336 0 R /XYZ 97.794 471.429 null] ->> -endobj -149 0 obj -<< -/D [1336 0 R /XYZ 29.788 424.97 null] ->> -endobj -674 0 obj -<< -/D [1336 0 R /XYZ 29.788 395.975 null] ->> -endobj -1343 0 obj -<< -/D [1336 0 R /XYZ 29.788 395.975 null] ->> -endobj -1049 0 obj -<< -/D [1336 0 R /XYZ 499.696 328.834 null] ->> -endobj -1344 0 obj -<< -/D [1336 0 R /XYZ 29.788 305.467 null] ->> -endobj -1068 0 obj -<< -/D [1336 0 R /XYZ 415.402 240.286 null] ->> -endobj -1345 0 obj -<< -/D [1336 0 R /XYZ 29.788 216.919 null] ->> -endobj -1346 0 obj -<< -/D [1336 0 R /XYZ 376.598 151.738 null] ->> -endobj -1347 0 obj -<< -/D [1336 0 R /XYZ 29.788 128.371 null] ->> -endobj -1348 0 obj -<< -/D [1336 0 R /XYZ 238.806 63.19 null] ->> -endobj -1335 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F33 531 0 R /F30 532 0 R /F44 228 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1359 0 obj -<< -/Length 1535 -/Filter /FlateDecode ->> -stream -xXn8}W^%jїqM0%ג-Џߡ(Y pBR$r8x:h #@O KS`m4f1`i`$î5(2O*,|UG̤"++8=L_8:KAVcZNU5! X -{w(+jF$=CS{ S5O@Jʱ/<M|iO,\9SÉNt`4m(C,)l E0*CЕ2pD3*@ ,@N@G;JLF/I ~8Ƒ.z, @'!A2`q)F4)X9@Bh<{{3NZ {+ $x6 #wq^ O _-a,![Jry̶"I'󲳴k.M p+M[ [XgW/ܜ~]6?@j/bC:E\mdlt5>\n#U -O o_&Ƀ$YS[lr1ὀzZ,J(R:#Ol~_njpq)4M.&ӷ㖎0ʡƭ\PIҬ7ily`]y&Y$r̃Y*a`S5Hf ~5ѥӃe G Dsx^t8]Yj6{&fU`cϥM8ctJC7DtU\Jwsm]QH&dI2dװ'7ӐlW͟Mm7!$k$eh|2} MTs},OM)G'b[Wk ߒp0vQ/==iwe@GWl *!8^3i2ëaNo/jcR{1 -Gf=\n%ȑ8SMrH٭1]^jSz/AQN&L(~B Fasxn_m Ó~ɄzAS`ABGqN`YL2"x6h>k2@"ķڊ`'m8]=iz! e3.N XV7<-k[dxKQ^ۚ7 -endstream -endobj -1358 0 obj -<< -/Type /Page -/Contents 1359 0 R -/Resources 1357 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1326 0 R -/Annots [ 1349 0 R 1350 0 R 1351 0 R 1352 0 R 1353 0 R 1354 0 R 1355 0 R 1356 0 R ] ->> -endobj -1349 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [184.347 523.174 289.901 532.349] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650ad30626f0de1be98802cb5e50c8b67207) >> ->> -endobj -1350 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 462.152 160.548 494.788] -/A << /S /GoTo /D (structbsec__bme__settings__t) >> ->> -endobj -1351 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [207.884 390.998 299.316 400.172] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a381b968290256e77d50c4f7e92bfb27c) >> ->> -endobj -1352 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 329.975 160.548 362.611] -/A << /S /GoTo /D (structbsec__bme__settings__t) >> ->> -endobj -1353 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [207.884 258.821 299.316 267.995] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a9202c1504b464b16f432da6a4dd582a2) >> ->> -endobj -1354 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 197.798 160.548 230.435] -/A << /S /GoTo /D (structbsec__bme__settings__t) >> ->> -endobj -1355 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [222.006 126.644 327.56 135.819] -/A << /S /GoTo /D (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a3eb936f08a8f6f01d4c683a6ba0c9d3a) >> ->> -endobj -1356 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 65.622 160.548 98.258] -/A << /S /GoTo /D (structbsec__bme__settings__t) >> ->> -endobj -1360 0 obj -<< -/D [1358 0 R /XYZ -13.423 915.745 null] ->> -endobj -1361 0 obj -<< -/D [1358 0 R /XYZ 29.788 737.428 null] ->> -endobj -1362 0 obj -<< -/D [1358 0 R /XYZ 235.359 681.917 null] ->> -endobj -1363 0 obj -<< -/D [1358 0 R /XYZ 29.788 658.795 null] ->> -endobj -1364 0 obj -<< -/D [1358 0 R /XYZ 334.184 593.965 null] ->> -endobj -1365 0 obj -<< -/D [1358 0 R /XYZ 29.788 570.842 null] ->> -endobj -1367 0 obj -<< -/D [1358 0 R /XYZ 29.788 459.721 null] ->> -endobj -1368 0 obj -<< -/D [1358 0 R /XYZ 29.788 438.666 null] ->> -endobj -1369 0 obj -<< -/D [1358 0 R /XYZ 29.788 327.544 null] ->> -endobj -1370 0 obj -<< -/D [1358 0 R /XYZ 29.788 306.489 null] ->> -endobj -1371 0 obj -<< -/D [1358 0 R /XYZ 29.788 195.367 null] ->> -endobj -1372 0 obj -<< -/D [1358 0 R /XYZ 29.788 174.312 null] ->> -endobj -1182 0 obj -<< -/D [1358 0 R /XYZ 29.788 63.19 null] ->> -endobj -1357 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R /F158 1366 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1375 0 obj -<< -/Length 1310 -/Filter /FlateDecode ->> -stream -xڵW]s6}Wh/0S }r¦ i!8w#dBl Dtutѱe]S{mA=x@o0B%)EJ0 >x(XjeaWUz^e'>Em̤"jk8=Lp4W0  'cG1cQ{L4?AVtjjv~,*]< b>`cHpE&v༌֡ zz<<X(b_{]bӁZ1.d9-&|tv9x9HAp( @4_$\br}W]Zͪ6:ʃ8\ۧܨ!C w԰\^!P:o" -9\OafӴ1O0srCM\d;uvD-f6N?ttWM[I})ɮ,,A\VyiffSTl7n /mT` say+mh:y[@v49Y0K\U&sc}{ώ?PoG_Yt,QinX˻B~j!H6ST> -endobj -1376 0 obj -<< -/D [1374 0 R /XYZ -13.423 915.745 null] ->> -endobj -1377 0 obj -<< -/D [1374 0 R /XYZ 29.788 737.428 null] ->> -endobj -630 0 obj -<< -/D [1374 0 R /XYZ 192.29 684.487 null] ->> -endobj -1378 0 obj -<< -/D [1374 0 R /XYZ 29.788 663.877 null] ->> -endobj -654 0 obj -<< -/D [1374 0 R /XYZ 228.66 602.651 null] ->> -endobj -1379 0 obj -<< -/D [1374 0 R /XYZ 29.788 582.041 null] ->> -endobj -678 0 obj -<< -/D [1374 0 R /XYZ 254.722 520.815 null] ->> -endobj -1380 0 obj -<< -/D [1374 0 R /XYZ 29.788 500.205 null] ->> -endobj -1381 0 obj -<< -/D [1374 0 R /XYZ 319.609 438.979 null] ->> -endobj -1382 0 obj -<< -/D [1374 0 R /XYZ 29.788 418.369 null] ->> -endobj -1373 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1385 0 obj -<< -/Length 26 -/Filter /FlateDecode ->> -stream -x -0TH/2PHW0PpIp; -endstream -endobj -1384 0 obj -<< -/Type /Page -/Contents 1385 0 R -/Resources 1383 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1326 0 R ->> -endobj -1386 0 obj -<< -/D [1384 0 R /XYZ -13.423 915.745 null] ->> -endobj -1383 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/ProcSet [ /PDF ] ->> -endobj -1407 0 obj -<< -/Length 2057 -/Filter /FlateDecode ->> -stream -x]o8=2P1"E=46{mCZ:XWI -쏿eN.v; )rg87_edٜydI@¾!^/hZ\ILEkށmdt!뮜/T},#ӝB% (v;g<:6C2սS'WKcv4uPoaW(󽩑~4zy?П-[ΗKF@cﮪӾ3EaޮQ9+M~\8X={-Y{j@^\q|Ih=$ -Sx76+Й+}j?Q$/Sծ􊮱t9Vx=1c{E"! -[TEsQ݉~x/%6 -aHgnn|@:<`*?LO+{zTi*;߽[_ZWZfrwHu. #Yͫw s9BȦ3->SB߱CIP>h%PK]V$8&cEl-LGUwKG^QtGNA{3/o&^x 'aפqH} Dʦ3fQi+XPiO(X002|GIixeDKo{gZ{o'Ϻofa%37"3)k..v)%%y³# B 6ZX{XTJ_Eؽ쵁:1,v9mtag՛!`sO/admKCZ/vT}!nqTxUMWITؗ:UP-@W,T~憐/opao"=wϋB!4th+ܝw۔ TW+l -ճ7{&G 2~ݙ $ȶ'Ekg!a1Ԛ]@#`(BrXE_F~̝̺dw=0ҟNOwɯP5Z6I pԋӂgՁ@*o,/h0DG78{$L620cJ2rmۀ#J>HHX|6PSJ&VcP6Mm’O@_7U?Lԑ? ,o6U5B f]M -6 P((vP/٣Zv̓x;ڿ%[|kO=z֡% ¶_'gp\>JaswP >"ݎ -endstream -endobj -1406 0 obj -<< -/Type /Page -/Contents 1407 0 R -/Resources 1405 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1411 0 R -/Annots [ 1387 0 R 1388 0 R 1389 0 R 1390 0 R 1391 0 R 1392 0 R 1393 0 R 1394 0 R 1395 0 R 1396 0 R 1397 0 R 1398 0 R 1399 0 R 1400 0 R 1401 0 R 1402 0 R 1403 0 R 1410 0 R 1404 0 R ] ->> -endobj -1387 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 555.914 121.973 568.145] -/A << /S /GoTo /D (structbsec__bme__settings__t_a300b00f9580b9af76d441cd4db8d7083) >> ->> -endobj -1388 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [82.999 519.353 150.479 531.584] -/A << /S /GoTo /D (structbsec__bme__settings__t_aa197109b334a2a443d9349812865bff1) >> ->> -endobj -1389 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [270.179 500.539 345.816 512.036] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1390 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [82.999 482.792 180.795 495.022] -/A << /S /GoTo /D (structbsec__bme__settings__t_a500cfa825fa7c6ead38eba7bf7b4b955) >> ->> -endobj -1391 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [82.999 446.23 166.253 458.461] -/A << /S /GoTo /D (structbsec__bme__settings__t_afc3ab51b88f259e5cb76c10ee0732e5b) >> ->> -endobj -1392 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 409.669 118.341 421.589] -/A << /S /GoTo /D (structbsec__bme__settings__t_a4407b04a0d403a9fb35fd322999113a9) >> ->> -endobj -1393 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 373.108 192.293 385.339] -/A << /S /GoTo /D (structbsec__bme__settings__t_aecd99f57df2bc07663a7de83f877228e) >> ->> -endobj -1394 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 336.547 208.668 348.777] -/A << /S /GoTo /D (structbsec__bme__settings__t_aed0450820cd910e06e26fba04256bc24) >> ->> -endobj -1395 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 299.985 190.471 312.216] -/A << /S /GoTo /D (structbsec__bme__settings__t_a7984769929826a36f59e7b9dfd6e7447) >> ->> -endobj -1396 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 263.424 182.595 275.344] -/A << /S /GoTo /D (structbsec__bme__settings__t_aa4a1eeae4e7fe44a8093a3862996fbac) >> ->> -endobj -1397 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [134.294 169.017 244.198 181.52] -/A << /S /GoTo /D (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) >> ->> -endobj -1398 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [308.144 134.896 527.207 147.399] -/A << /S /GoTo /D (structbsec__bme__settings__t_aa4a1eeae4e7fe44a8093a3862996fbac) >> ->> -endobj -1399 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [84.31 107.797 320.65 120.028] -/A << /S /GoTo /D (structbsec__bme__settings__t_aed0450820cd910e06e26fba04256bc24) >> ->> -endobj -1400 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [324.718 107.797 543.208 120.028] -/A << /S /GoTo /D (structbsec__bme__settings__t_a7984769929826a36f59e7b9dfd6e7447) >> ->> -endobj -1401 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 94.248 253.297 106.479] -/A << /S /GoTo /D (structbsec__bme__settings__t_aecd99f57df2bc07663a7de83f877228e) >> ->> -endobj -1402 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [79.408 73.676 231 86.18] -/A << /S /GoTo /D (structbsec__bme__settings__t_a4407b04a0d403a9fb35fd322999113a9) >> ->> -endobj -1403 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [498.934 73.676 567.119 86.18] -/A << /S /GoTo /D (structbsec__bme__settings__t_a500cfa825fa7c6ead38eba7bf7b4b955) >> ->> -endobj -1410 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 60.127 179.344 72.358] -/A << /S /GoTo /D (structbsec__bme__settings__t_a500cfa825fa7c6ead38eba7bf7b4b955) >> ->> -endobj -1404 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [201.613 60.127 394.012 72.358] -/A << /S /GoTo /D (structbsec__bme__settings__t_afc3ab51b88f259e5cb76c10ee0732e5b) >> ->> -endobj -1408 0 obj -<< -/D [1406 0 R /XYZ -13.423 915.745 null] ->> -endobj -153 0 obj -<< -/D [1406 0 R /XYZ 29.788 737.428 null] ->> -endobj -1116 0 obj -<< -/D [1406 0 R /XYZ 29.788 649.232 null] ->> -endobj -157 0 obj -<< -/D [1406 0 R /XYZ 29.788 649.232 null] ->> -endobj -1409 0 obj -<< -/D [1406 0 R /XYZ 29.788 603.186 null] ->> -endobj -161 0 obj -<< -/D [1406 0 R /XYZ 29.788 221.409 null] ->> -endobj -1405 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F89 511 0 R /F97 510 0 R /F33 531 0 R /F30 532 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1423 0 obj -<< -/Length 1484 -/Filter /FlateDecode ->> -stream -xڵXn8}WFi[Ӧi L0d5$WK\ƮL $!EsyH^f@жh\t;D-.!!(\R' =N\)3!Aq6qSH3!? X@r*8U2eU  wC pi崼^L\ YV%8}W~ko2ɀ1LBO_f7 Jp} zt?.xwP?/e^e-ϫՀ B+Bi?(ȅRfj8-0D0T40?AV[t"YӸo ᡩnO`+Ҧ'?'W,>0:iʧA5_¿3gQejIZ__eYEaos8YXvω7qzG%܁};łB?O3+Ɩ)hSU^E^Lx7OC$L*sQ*'8=>X+Ct$K3z *d!}*.MGqwյƢ.L;DU%Ѓ;斝 "몖+\%ǯLH3UU`TҺ=Rdʌ^y?f\2:!dm$Pc?U yA̼`(l6~VQMm6VBW2 N 2Q= Ci;<+ t|nxIeHR%X_q;9loY~U PbVUWƵPVeTu1L]yQ4? bBM+ǧb\y3 :/rQqU:XQtTtsK Q*&dXP2H}dk>:aT k![KB@KIeo F|y^ 3tr%Eur<"e?JaXŭX ͜I31vVjx;?6S1NQs[Kͭ{k!QFH;z^T%ჰWch5uonGcԻİ@pc9J_sDFSa -|~mޚm G2*RmeݩT)|r{/َmT&UQ@'iu(h ¹vy٦R•4q%eD y31i(L|ʯfRU-Eٚ'r -<ڜI&5Lc/ܑ ?M -endstream -endobj -1422 0 obj -<< -/Type /Page -/Contents 1423 0 R -/Resources 1421 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1411 0 R -/Annots [ 1420 0 R ] ->> -endobj -1420 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [264.057 195.541 346.689 208.044] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1424 0 obj -<< -/D [1422 0 R /XYZ -13.423 915.745 null] ->> -endobj -165 0 obj -<< -/D [1422 0 R /XYZ 29.788 737.428 null] ->> -endobj -1413 0 obj -<< -/D [1422 0 R /XYZ 29.788 718.941 null] ->> -endobj -1425 0 obj -<< -/D [1422 0 R /XYZ 29.788 718.941 null] ->> -endobj -1414 0 obj -<< -/D [1422 0 R /XYZ 29.788 648.631 null] ->> -endobj -1426 0 obj -<< -/D [1422 0 R /XYZ 29.788 626.563 null] ->> -endobj -1418 0 obj -<< -/D [1422 0 R /XYZ 29.788 558.212 null] ->> -endobj -1427 0 obj -<< -/D [1422 0 R /XYZ 29.788 536.144 null] ->> -endobj -1117 0 obj -<< -/D [1422 0 R /XYZ 29.788 467.793 null] ->> -endobj -1428 0 obj -<< -/D [1422 0 R /XYZ 29.788 445.725 null] ->> -endobj -1416 0 obj -<< -/D [1422 0 R /XYZ 29.788 377.375 null] ->> -endobj -1429 0 obj -<< -/D [1422 0 R /XYZ 29.788 355.307 null] ->> -endobj -1412 0 obj -<< -/D [1422 0 R /XYZ 29.788 286.956 null] ->> -endobj -1430 0 obj -<< -/D [1422 0 R /XYZ 29.788 264.888 null] ->> -endobj -1415 0 obj -<< -/D [1422 0 R /XYZ 29.788 151.542 null] ->> -endobj -1431 0 obj -<< -/D [1422 0 R /XYZ 29.788 129.474 null] ->> -endobj -1417 0 obj -<< -/D [1422 0 R /XYZ 29.788 61.123 null] ->> -endobj -1421 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R /F32 514 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1443 0 obj -<< -/Length 2050 -/Filter /FlateDecode ->> -stream -xYYo8~c2WEߦ7]eLIKF .M֏瑰=9=.u2K`Lsn>6YfÁ|t 7==$]a`}icg,l>m`.~1baG۵wyElzyw#QG(bé2)C8KFP#V:}O_61xNh+}xBtZyBFaXm: Qd:jUύzq Jq2{q1R:|W aꏪiM:^NǬ"MmT(;ꀚCCt; -{ޣCڱ:G]"<^+_Z4 tAKt&`0G`9l2 66y8`h:B!Ao ^rQ_ R>1 CdL3_~Pp/8svu,8 6]z_- hqmd p7IlJԭԿvަ$@A΄y](orkM}e7dzXiza`h*p 3JbjTg'eo bqNh,TNg;r tlfihIgys0PT7T+3Y˅nh!F{/qyP6'J#꾯VzH67=/N3=}tiQ~y'0@Y-I. -endstream -endobj -1442 0 obj -<< -/Type /Page -/Contents 1443 0 R -/Resources 1441 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1411 0 R -/Annots [ 1432 0 R 1433 0 R 1434 0 R 1435 0 R 1436 0 R 1437 0 R 1438 0 R 1439 0 R 1440 0 R ] ->> -endobj -1432 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 489.708 135.304 501.628] -/A << /S /GoTo /D (structbsec__input__t_a90d515d57b274dfde74a281de469a3ad) >> ->> -endobj -1433 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [64.803 456.681 95.29 469.185] -/A << /S /GoTo /D (structbsec__input__t_a000803d39a2be521f2b5e7017c31303b) >> ->> -endobj -1434 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 423.655 168.653 435.885] -/A << /S /GoTo /D (structbsec__input__t_ab535651a26b2e2c44c83e441385e3def) >> ->> -endobj -1435 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 390.628 126.217 402.859] -/A << /S /GoTo /D (structbsec__input__t_a916867811b65988853b69f729b91c262) >> ->> -endobj -1436 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [241.606 260.773 324.238 273.276] -/A << /S /GoTo /D (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) >> ->> -endobj -1437 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [329.183 241.968 448.691 254.471] -/A << /S /GoTo /D (structbsec__input__t_a916867811b65988853b69f729b91c262) >> ->> -endobj -1438 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [28.792 228.419 145.995 240.649] -/A << /S /GoTo /D (structbsec__input__t_a916867811b65988853b69f729b91c262) >> ->> -endobj -1439 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [373.813 228.419 492.216 240.649] -/A << /S /GoTo /D (group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) >> ->> -endobj -1440 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 188.297 173.879 220.933] -/A << /S /GoTo /D (group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) >> ->> -endobj -1444 0 obj -<< -/D [1442 0 R /XYZ -13.423 915.745 null] ->> -endobj -1445 0 obj -<< -/D [1442 0 R /XYZ 29.788 737.428 null] ->> -endobj -1419 0 obj -<< -/D [1442 0 R /XYZ 29.788 680.603 null] ->> -endobj -1446 0 obj -<< -/D [1442 0 R /XYZ 29.788 660.7 null] ->> -endobj -999 0 obj -<< -/D [1442 0 R /XYZ 29.788 595.455 null] ->> -endobj -169 0 obj -<< -/D [1442 0 R /XYZ 29.788 574.126 null] ->> -endobj -1447 0 obj -<< -/D [1442 0 R /XYZ 29.788 534.354 null] ->> -endobj -173 0 obj -<< -/D [1442 0 R /XYZ 29.788 354.675 null] ->> -endobj -177 0 obj -<< -/D [1442 0 R /XYZ 29.788 169.39 null] ->> -endobj -1026 0 obj -<< -/D [1442 0 R /XYZ 29.788 143.316 null] ->> -endobj -1448 0 obj -<< -/D [1442 0 R /XYZ 29.788 143.316 null] ->> -endobj -1441 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R /F89 511 0 R /F97 510 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1463 0 obj -<< -/Length 1721 -/Filter /FlateDecode ->> -stream -xYYo8~T4OykM&!-Eblڒ#;e`%B-;ɭ}1]%M>>Yq28O)r0DbF -cE.NWG> #BuY5*=x?{(C4li `="`T F PI 'jMӁNx]Ѩe4yY؁6ϔQxz]ݜ99XD -iPʊTImk{n ,ZW}6j򊑼?BǖL9^/d=b6? A 4@ ` ʬYIkŶmj\XN6۵^۬@[ex2ySVJ[6vV3<ȻF0cH_?||!N'͋&S'l7xBHR_޴M[u+UvwuhJRJ' -I -'nO0X,M6 x4=X3KGQ$E {EC{ntxYԟ(&&ۃ0ɥ1x3li<xnl;Uy 6_+¯VAV.np4yV*wɺU5>+uoӤUr+%3'T}_7jW^O}rAA* - -V40w:?]j;h+§qH96 8&P$0"٠l'w7UQ*Rġs6o{uVOr:秐&IO, <"d4]c.r=Qp{ X`vp0D_K}0GMژDw><$ZG/r3x3?R;CFőmz/D}:b?FO'p#&zG'I%=<чSI ) wEba$Y"> -endobj -1450 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 705.788 173.879 738.424] -/A << /S /GoTo /D (group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) >> ->> -endobj -1451 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 565.094 173.879 597.73] -/A << /S /GoTo /D (group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) >> ->> -endobj -1452 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 223.584 135.304 235.504] -/A << /S /GoTo /D (structbsec__output__t_a74a917725569b67eb14e78a34fa9c55d) >> ->> -endobj -1453 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [64.803 187.415 95.29 199.918] -/A << /S /GoTo /D (structbsec__output__t_a1a046572bcb85189df10c9ac8f362999) >> ->> -endobj -1454 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [281.258 168.798 394.563 180.295] -/A << /S /GoTo /D (structbsec__output__t_ab188da3e58d458f4b94a64379404da46) >> ->> -endobj -1455 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 151.246 168.653 163.477] -/A << /S /GoTo /D (structbsec__output__t_a91006cd8f20e88a5ff2b6ebfbecdeb95) >> ->> -endobj -1456 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 115.077 126.217 127.308] -/A << /S /GoTo /D (structbsec__output__t_ab188da3e58d458f4b94a64379404da46) >> ->> -endobj -1457 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 78.909 122.573 90.828] -/A << /S /GoTo /D (structbsec__output__t_ac4e7ef20f713075472bc953efb13957f) >> ->> -endobj -1464 0 obj -<< -/D [1462 0 R /XYZ -13.423 915.745 null] ->> -endobj -1028 0 obj -<< -/D [1462 0 R /XYZ 29.788 702.891 null] ->> -endobj -1465 0 obj -<< -/D [1462 0 R /XYZ 29.788 679.17 null] ->> -endobj -1449 0 obj -<< -/D [1462 0 R /XYZ 29.788 562.197 null] ->> -endobj -1466 0 obj -<< -/D [1462 0 R /XYZ 29.788 538.476 null] ->> -endobj -1029 0 obj -<< -/D [1462 0 R /XYZ 29.788 467.755 null] ->> -endobj -1467 0 obj -<< -/D [1462 0 R /XYZ 29.788 444.035 null] ->> -endobj -1000 0 obj -<< -/D [1462 0 R /XYZ 345.082 341.456 null] ->> -endobj -181 0 obj -<< -/D [1462 0 R /XYZ 29.788 314.241 null] ->> -endobj -1468 0 obj -<< -/D [1462 0 R /XYZ 29.788 270.565 null] ->> -endobj -1461 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R /F89 511 0 R /F97 510 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1475 0 obj -<< -/Length 3305 -/Filter /FlateDecode ->> -stream -x[YsF~ׯ#Ue0~mq*a)ڊS.HòT83k[[y{w?<?{B -$ "NQȅW$/ -L3AQ d+sϋx3("% -ާ4t8 aF BQ%u4B2RK0N߼7H 0jvU+ o&Q}\!| (xK-c.' j/O(X Cް`F뀮1]2Zq2b _]\P$CޣQ}*/K6ٖyQ%?k)C# 6*0zF5ymDDЖT49V+oc: 7U**ͷ].X<=ɸGBP% $@fmUԋ.Cey]ʼfyVk[".]|쑔\|Y9]v Rk yYJnp4[4}˒U 5 UY{ ?hQ+-ꗴ8l0Wjx;̐DQX|,B2$GN͈QIrHV+>pI]⇮:g/u/@(nNU>@atPn-vJMgC.siI6.3#35mlڦ[Sd}oF -529Lcv".6I6 lj( ҿϳ,(_jcz»'\HD)8@.AD@/EOS`DB/6HgSaΗߏ&9CE &N~EO`S(K!fZPPI SCd`H>] -DBѢq&u")YLGŀ$%ʇ"GǛ_fSVQeOi -4qH4E/0.[ms[u\(8Ft% bVpcQP~|_{LS0*`q`/6vXuai - -4nCDw}8ޠ͞ h - :*uE?ZW%gc5 D֞oݨKꕪt9+Wo#O ̆!h%]QMfK&_; iI~qk$vM9u]%I79 Zm]%u2Cx2,OhHE I 6A]N{zZ„^a*̣MnEna?YsH9VQ`!,52H ,Ea$(⴫ɘ܊⟨Frzo@BJHC(0节5O : -2W wn~”%Eb1 -&čԲ~ǵVE@a -޹bn'Pߣomqhm0* -8<aN"CB4 IaCЈ")`@h5mwn5'z7gIYmq,dZD ddY1!$LIrbFR8uz:<6L -6d[2@ $gBFK`gAf$Sg2ti[!C̳{AFJ4!fN"Qa4BQw -"[tTK1atW*}Vim^*Ua]&)zX'[SV+WI J!\ͣ(Z|D>u::ɞX![vMM*Q``(xU[Mzo6  %_wyT=z%jeeuȓZ: ;L⤫-TmnU;ʓx L̹4'0_+AUq$c{µN)9,ZN)P&j '|:8 K(P -F ']M܏@yJ+ЈIi/)_? 38q'4O2y[4Kf2hf34x+!pPKV#<xhGqα]Nu\jF&f/̬+fEbϭ쭴Z~3\&=hв-U/-6R$B&F åufPSRn9^6a3.f)~HX9ZZ 7 "lN3`F yAݯgz0)G9ҁ Sti<۫OwϷ` Y1$;G8QÉIXn|҆3,g(0q^gܜIu:>R}H?!WK5.tHR6 g+tF]Se=O:jQO=}^*3W3NzfBncܩH&ߺL{4GB:vM)|\B9+߿J{D#;BmѩUG_&_ (&dPL /] | и`)9Q -#e7E3jd_ޅ߫{Ts׬?W_+հV7(nHFĶT<68p 1I!lD6tvҷgbiڭ|#H}J;} [w'̿3 -# -gz -WҾ[/\H7[l*.:|P?7Cz"Ǚ@9Ssɮȗ)Xt^d^Kl:r@:!"K\lI4[nW5epk7 .)*V`NirwE'X -endstream -endobj -1474 0 obj -<< -/Type /Page -/Contents 1475 0 R -/Resources 1473 0 R -/MediaBox [0 0 595.911 842.745] -/Parent 1411 0 R -/Annots [ 1458 0 R 1459 0 R 1460 0 R 1472 0 R ] ->> -endobj -1458 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [238.801 666.651 361.949 679.154] -/A << /S /GoTo /D (structbsec__output__t_ab188da3e58d458f4b94a64379404da46) >> ->> -endobj -1459 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [443.971 666.651 567.119 679.154] -/A << /S /GoTo /D (structbsec__output__t_ab188da3e58d458f4b94a64379404da46) >> ->> -endobj -1460 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [132.21 653.102 240.304 665.605] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1472 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 613.777 163.57 646.414] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1476 0 obj -<< -/D [1474 0 R /XYZ -13.423 915.745 null] ->> -endobj -185 0 obj -<< -/D [1474 0 R /XYZ 29.788 737.428 null] ->> -endobj -189 0 obj -<< -/D [1474 0 R /XYZ 29.788 596.231 null] ->> -endobj -591 0 obj -<< -/D [1474 0 R /XYZ 29.788 570.989 null] ->> -endobj -1477 0 obj -<< -/D [1474 0 R /XYZ 29.788 570.989 null] ->> -endobj -1478 0 obj -<< -/D [1474 0 R /XYZ 29.788 475.536 null] ->> -endobj -1479 0 obj -<< -/D [1474 0 R /XYZ 29.788 326.877 null] ->> -endobj -1480 0 obj -<< -/D [1474 0 R /XYZ 29.788 177.703 null] ->> -endobj -1318 0 obj -<< -/D [1474 0 R /XYZ 29.788 63.19 null] ->> -endobj -1473 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R /F89 511 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1489 0 obj -<< -/Length 1772 -/Filter /FlateDecode ->> -stream -xڵXYo8~h:nv CZؒ#;L.zP! ƒ0A l~@st мI 'jm\ҁJ>Ԧ4u&(\<=5dQP@@d#gX'3.<ɴ4^@eAЌvRs4eJ^uueՀ5U'm-ʪ_6Ң},/ '9Xs,y+3NJ0XQ`Hި\:9JN;; Gwy|-'1a̗:V[PgiegҾTbbtPA4~ Ya@Pn9!*D$_&O Sϡ%8FK<"UpGmjbaH+i< H(t}Ik -D\9Fцtp` L)hHY/ɳ|Ww#v=df f>a+2 ŚÙQa!m[̫^WSIɜ!92b*U</Գ0OIҷI}> -endobj -1481 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 638.955 163.57 671.591] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1482 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [276.188 546.503 400.067 559.007] -/A << /S /GoTo /D (structbsec__output__t_ab188da3e58d458f4b94a64379404da46) >> ->> -endobj -1483 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [55.476 505.466 163.57 538.102] -/A << /S /GoTo /D (group__bsec__interface_ga832388c889417ed197609d9965625bfe) >> ->> -endobj -1484 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [64.803 215.194 126.817 227.697] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a150ba3a737fb75f56052c60d55246ae4) >> ->> -endobj -1485 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [76.934 180.881 126.217 193.111] -/A << /S /GoTo /D (structbsec__sensor__configuration__t_a92665e4f2f3cd5237814488774c0f546) >> ->> -endobj -1486 0 obj -<< -/Type /Annot -/Subtype /Link -/Border[0 0 0]/H/I/C[1 0 0] -/Rect [193.933 73.676 327.241 86.18] -/A << /S /GoTo /D (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) >> ->> -endobj -1490 0 obj -<< -/D [1488 0 R /XYZ -13.423 915.745 null] ->> -endobj -1491 0 obj -<< -/D [1488 0 R /XYZ 29.788 737.428 null] ->> -endobj -1470 0 obj -<< -/D [1488 0 R /XYZ 29.788 636.452 null] ->> -endobj -1492 0 obj -<< -/D [1488 0 R /XYZ 29.788 614.986 null] ->> -endobj -1471 0 obj -<< -/D [1488 0 R /XYZ 29.788 502.963 null] ->> -endobj -1493 0 obj -<< -/D [1488 0 R /XYZ 29.788 481.497 null] ->> -endobj -1469 0 obj -<< -/D [1488 0 R /XYZ 29.788 414.01 null] ->> -endobj -1494 0 obj -<< -/D [1488 0 R /XYZ 29.788 392.544 null] ->> -endobj -673 0 obj -<< -/D [1488 0 R /XYZ 29.788 325.058 null] ->> -endobj -193 0 obj -<< -/D [1488 0 R /XYZ 29.788 302.166 null] ->> -endobj -1495 0 obj -<< -/D [1488 0 R /XYZ 29.788 260.796 null] ->> -endobj -197 0 obj -<< -/D [1488 0 R /XYZ 29.788 142.722 null] ->> -endobj -1487 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R /F89 511 0 R /F97 510 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1517 0 obj -<< -/Length 2069 -/Filter /FlateDecode ->> -stream -xnܶ_ pD7[s;)66Ї$0d-V+m$mΐZk&Espfx|7FVQHV$$gGA_`$$*Q4ahi, >1` -ь)N#LW{{14 #fBJN1k[tRĔĚQ8"E&N  {~9" qiπ8~R0 -Z*AzAJ!s*x{x/lZʒ׿8:>d&25 &q}$o:yX/MQUcW/~>z{1`Ie-< T#CɟIBւnhdM·O`L/(Hzu:hwSH;#$4eT)vģxc©-'OK|O$n,mL?ܛ/Jˈ -A h)3{Y$q\^V}{AS}d~ϗ];|4ZHut{n+'KlX՜_ן컶tq eIlaz qa.ummj(J[!l005 y[{qitI%uS *._Z [٢L{6_;\ofٺ~wmi!/%cd෮!NO(QcKL8Dm,j\:IZ2 Mœ |Oa~ju'+|sS<? al`2WAHd_F: eV:p vy_3%AMSGۘYal^ -&AOXݖ}5ygCa,k;мL -3t h1 6`p?-oRu@OAodY;ߩE{{#1`?S 3w5C=Go|󿔾t< bYSq(((MeBs .:nդ_ԅU/1WŮȋ:K63SØQȢӱAx2R$e߄:)f RƖ#⣩lI,|V蠊P*kF{ H6C&& s!BJeřQY4:NccQ+  >Ŋ+xv5ƒ@9hYV;?&LJ+K> -endobj -1527 0 obj -<< -/D [1525 0 R /XYZ -13.423 915.745 null] ->> -endobj -213 0 obj -<< -/D [1525 0 R /XYZ 29.788 737.428 null] ->> -endobj -1093 0 obj -<< -/D [1525 0 R /XYZ 29.788 719.646 null] ->> -endobj -1528 0 obj -<< -/D [1525 0 R /XYZ 29.788 719.646 null] ->> -endobj -1095 0 obj -<< -/D [1525 0 R /XYZ 29.788 654.393 null] ->> -endobj -1529 0 obj -<< -/D [1525 0 R /XYZ 29.788 635.851 null] ->> -endobj -1094 0 obj -<< -/D [1525 0 R /XYZ 29.788 572.558 null] ->> -endobj -1530 0 obj -<< -/D [1525 0 R /XYZ 29.788 554.015 null] ->> -endobj -1096 0 obj -<< -/D [1525 0 R /XYZ 29.788 492.707 null] ->> -endobj -1531 0 obj -<< -/D [1525 0 R /XYZ 29.788 474.164 null] ->> -endobj -1524 0 obj -<< - /ColorSpace 3 0 R /Pattern 2 0 R /ExtGState 1 0 R /ExtGState<>/TRP.5<>>> -/Font << /F45 229 0 R /F44 228 0 R /F120 619 0 R >> -/XObject << /Im3 221 0 R /Im4 222 0 R >> -/ProcSet [ /PDF /Text ] ->> -endobj -1 0 obj -<<>> -endobj -2 0 obj -<<>> -endobj -3 0 obj -<< /pgfprgb [/Pattern /DeviceRGB] >> -endobj -1532 0 obj -[799.4] -endobj -1533 0 obj -[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] -endobj -1534 0 obj -[513.9] -endobj -1535 0 obj -[777.8 500 777.8] -endobj -1536 0 obj -[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] -endobj -1537 0 obj -[295.1] -endobj -1538 0 obj -[1062.5] -endobj -1539 0 obj -[500] -endobj -1540 0 obj -[633] -endobj -1542 0 obj -[500 500 167 333 556 222 333 333 0 333 584 0 611 500 333 278 222 655 789 811 549 713 549 549 494 713 823 670 333 191 278 278 355 556 556 889 667 222 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556 1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556 222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500] -endobj -1543 0 obj -[500 500 167 333 556 222 333 333 0 333 584 0 611 500 333 278 222 655 789 811 549 713 549 549 494 713 823 690 333 191 278 278 355 556 556 889 667 222 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556 1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556 222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 334 260] -endobj -1544 0 obj -[611 611 167 333 611 278 333 333 0 333 584 0 611 500 333 278 278 744 1042 1083 549 713 549 549 494 713 823 766 333 238 278 333 474 556 556 889 722 278 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 333 333 584 584 584 611 975 722 722 722 722 667 611 778 722 278 556 722 611 833 722 778 667 778 722 667 611 722 667 944 667 667 611 333 278 333 584 556 278 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611 611 611 389 556 333 611 556 778 556 556] -endobj -1545 0 obj -<< -/Length1 1416 -/Length2 6052 -/Length3 0 -/Length 7019 -/Filter /FlateDecode ->> -stream -xڍwT6҄RE:QCH* $$ IU*H* H)*J/_PϽ_VJޙyfϳΛwv05$Iuu5 $, 89XW~) #RPF XOuW XK@@!Ho -Tx큺@-$p*#Qhߏ@n(,))~W:P C!.sïP8 2NX,JJPS@x=X'! C{# n? 8Np AÀx+ -C`)04:HS!~u~l,W?_(醂 GWza! C< pWuPMOg>  Ga1Ōe۬WFX ?8ﻷuA =>[pP& $ą%D0w $x7 -+pgA!Q@0? @<`@,?`0`pnoh -0{$_G,htO)ߟTRBz}B $"?]Op@/]ߨ{C? -O]L/R42;R{+!npW??ښ#]D[ORؤwY8)}EW&Ң^YC"i!ɮxEtOnAKіzeZ T }3]QZVsbUXTD.W<3c3NVaӾ8;J\SQhB͌oF-ZhzU2mq߷kJ YWkqq4R -Ȟl-28A9VRW[)a=A^ދ@=aGI`&t0@H߽.m:(PnT-7E੡pD/]O+SeIaݤe}J'?~iW'F(.6FU1R"H& s殰#3N5vVssJ,=.obH\zя N*ܲn{Y6!l:;^򵖯U`A%HvMYZ!N1vy:<mA-@I߫ ĽiNF !OHѠG7& @7t}g ajS%'$yg*=ƺݱKh"P (.mВ̜ F.Q~1G!TN^Dz;|Ш9`2Vp0;X^fQͺJ,gPջ7MfoHۋ<7.tAw;3!͇~<wx`l޳[c'iyMlq 5'Bgt+o-_p|n^N>vj8cgآ -ִ&h^ce`>x/8/ :e4x;6xدfu$2Tp<LV9Yߺe1JIvsȂx`^i3e7 -h jg'zH֞*E`׺6 p{# -mud+pai@&EV [[eU`W盟^7Q&C,lQR }2G|PSMJ"1nl}@@sP!+(/s.{ɚCC{rO:&|;u]~ %nTR_[#{&fcZI?2`X@hE)!gœ'{1=^4h92oeùakz;4veP,1̜;+f:<&.,=XipՄ=XeVAS@Υfx3(H~!M5f<2>;¥ܒGكr -ѽ+oFK$׹gzAЃAgz9q:qOzMR+3a,}3.IOOL"LV$2D}׊Xaʌk -+JfJRoV $Ѽ1K(j 0(MHA}!PWHCCx.%*o׻zo^F҈,x7sLi31@B,q3iU44yg-e uix8[~<+Jt^^Mff4#[ΦV'@mWj ИNOPnHԅ ÁS3qzџᷙ?yjbCsW>r{Srר{W|۬3[eCb-c{w;fZ|`dNCA&G}sJ> nkZ TDwR^|a>R|btD+DF38=hIR0e;іIͷ/k/FyO$U R&:)+5Q l,qG؂UMI|; dSQQo3m_\Rwߩzg%SrܤT˪Euk{aS3drEyg{صʲj!\a#1,εk]j$An3& Oq5#B藷ʋ -QݢT^:*o"v3$D}rZRNy4ȫȚ<y9X=GVIĶj񌟨޵@ܫXt9 (Gs -BȸRJ{\9Cb +m a779^$w{R)?K˦ݓlnQ -s6~h-}}u@] &8Xơ@|(&AhoKjt3-l1NWcj >Z@]*Շdaav[Qww:BOi753{ӈѯ,_?zsHXlF@/rx*t|DžiPb;2jJr*8UeYvKqс8GЯsHT+Nh Eȫp[g.Q-MN\k׃B ̶K -Q7Ӑ -:T+C,J\[_L&ҡ#L+!ȗvfD+~Jj{E]p ,s=pPjBEsP*UC6uwpf\c'~nfY?tp[_\Ni'Q&"HLE뷨9'Ku[K6>ka -񽭥e[/=ڢϨ brgYVEJ0RVB!]jt4gw vo7{dBgN]NW|IGCyo{JsRGZl4K>Fl2| J4r3Y|춄Okw0Ĭߟm~]JlAj$VDbRt)?Ww|ܔvYHIVcML>'4 rvXQn{3j9Ax0 ^iJ`cŋ2 gKVY3!wog9 }DQ美-{5N@겹eա*T^h`']mk,cag䕩 M&. Dq7oB}[百^͍lxzܩ"PIdJƺgforדm3^9ZtHQ?<ơ{52qK$I_a+|SzR*tseWʑibcz[=Hhh%ʏ*dgq#)tYeBVmz0l$P Q8uL5ԶwegUV33jv"іB&P­<)u"%C(R%Hv#xQ+,GWU ]]|;҆ш! -z?kMn`ZIFJzgЫBi(s;K;e5#zmI21ښKX#"r*M֬; #w4k^Y -m -,r's֞=Sw.yqj]cAti{ŖbFKo~ɲk)+n|NT'mY?*z!b Ƣc_- -] KbfR:;I&*2<)[Vߒ_~O(4#!ØcMSw; C^DPշvS !I<*퐄K?QrVn%R.C8LbqTFhWh5G[%(n@ta'iv)`u$F@clEUoW_?=$% !lOA -bG((wy4m dv K5.ES1)]P+ކ2l^Y?Շ*5}Aw+y?L'Ku2R]:C -VQqՌT~?/6dmɿ\DnwXGy];p -RE*j!9;a2O+ͣD.`1aE/%T8x֘:ο0Y)T|L~@Rt|dۆl#/` aqFz\_K_g~uPԑ9n^|:6lU־Ș6{GǪ1mtNQ?!E -g^ؗQ>L<{N_Ed&svXHI'jgҟѐ:G'2E0}1t;h#o ~峊ƻ5_+w: <* -k?_.P60FPfkq+:v8&R;#X R*+ ]'Qו e\ouF<.lrN[D/6 XKaQ_]Ȓpq@@uUk#$Մ`XcKptzy錔 AIBζt36 |E[ϝ>v圱5GD-?\Tu -Z$"qr,8jLŅK;J2prݷ\s~ a~Ѳ$:cNLJ juxL> ͋y->jŁync>yRXPHid{G %źQxz qKʽwǟ;V>|Fz`Ga\xmI6.rv kz7ٌ(I(^ -endstream -endobj -1546 0 obj -<< -/Type /FontDescriptor -/FontName /SYFPBV+CMMI10 -/Flags 4 -/FontBBox [-32 -250 1048 750] -/Ascent 694 -/CapHeight 683 -/Descent -194 -/ItalicAngle -14 -/StemV 72 -/XHeight 431 -/CharSet (/greater/less) -/FontFile 1545 0 R ->> -endobj -1547 0 obj -<< -/Length1 1398 -/Length2 5932 -/Length3 0 -/Length 6896 -/Filter /FlateDecode ->> -stream -xڍtTS.HSiJkiҋtEZ!ޤM" M@"4",;uZ;{fwٜlw 0U 'KJ,*sr"q(_791Ġ@}0A(" -@ĥ `@ .((#ùJ {yy \BwY^ sX'50sAL0tDb 08/;;PH8gxp@] uEw@ .7W!$w2 Ǹ>H`D!]U-!7N~a(,!Q0[ ^`pg' Wه -%<8swWP;ojBh g1,Y/G qpw7eV:ፀÜZjWoe-"uY/&<ʙլP}QrjQt;0\G@Mĩ )~S -LYܻ R9tpR{=u\FxNk{my%} ^w%Oq:Y2^5T o{稻X:b5b 8|ɐ.l 2r%n띊keذz1_JdPw^V7[BF-g&5ve){ k'F).i)Hr$U$ob޾kg$YP Bpt=)u T*3h--Tbu/ 23 .TzpMM($&2*RהcmI_xp[z.#0hCKXP֫Ȇ|xJgi1u P|mXTvé|. ޜpCl;byƻdM!-A*62muuUAsG=:rgrd%y`j+|8xxJQ)ExbJ/*q?@ع#fk;9jb}"^MЩ &-@ào>MP7Jmto`!OȿCeq~CSelBYf'gf~N3#j.cpK]a Vg5'*sVnFGB[, q.o>JׂUQ]rH`}8zb}ByK CCD t˻206\\M6y̥>1(;/o'PcdlC?$Nw-%NC{3R CSLC?[jt]X¤$vionK˩lK//mŦ'~'ɏp>nl=p3vK:L3+pyH0|l KPS352<Lj)EOI3F毊n_a[gмW;W,y*ug;l`>~K8SszTeٛ/+a ,[4s;.9$f re$S\b+r2A;p40ƘZ4 486$>>|Uw-w.[0*Smpn&5$R&[\O D l^NA!{@.oi-I7SG)LgE-{; n_{7:ޟ>ͫ;%Hmx8TxҩS LsB얘[l~Fej9SM5k' }h;EvKTRzGm5ϫa#W;$z4#z' s - _@I1uZӽhbsZh?]910*C>e$ jWÃB7;~Nֈw3tL^m |}=gٹ{wPd3 CZ2{NWGB -4\,A_KmKi@nQZy=D)!v'a%1ߟ.prZjݽ]AUI9{.𲳊P)=9ݗkT#; =F\V.:jBժg#()ceI`~+t3Ur%{;*ь_vcOEnp6jg$!ށ&eW$D[\-[S߽v"٨8 4|G@4(VRɃ3@'uo#/ۉR jlrz+#$mG]y!vR>űxލ#ZSBRȜ/Sv|)|RPufIt& ayI|6Qae e/ߺT^Xq 4k`Z+ҾbW~Kt?LȇP~}NNt8#'ƭ[=qy7lU!49GqE)ԇYǐ!&1́".A'XH b(sÇ9v,C=dRFJnq\럔N&š7ve-O0So?B4#5EJEc KjJgyNB[š^&&ZQ[!Ω:!.ϯlܶy.Gg\ug@Ŀsk]-7©-Q)-{}'Ȋϩ7Ηc [8֋Ơ1;١B ;|dzśLeuˬoKאc {9',/eHxT`PSofrKɋf[Hrj 96ƲfF&L$-W!7lorET,o\E<|i]KВB$L}֔L 4'삘ps=]Wk%7"+a>#dg?e:m(gBvYByKVƔ'd[]ߘk+4kC0_c.%4 Gbb[ce\H5L_Tpvg:`yF,ύ1!.W6<_ٯsBD^S5Rnn#iԜqQB\U4(f~NLJT0駆f)we;9a_^gbQi^+'Sgj&+rbO+ X83]9V=f+]3’6)4뀵<|+b#MsiΘGG) $G4|iV|iFUx+.e_j)_ڹɔ=!N[ʢns t> ߦOqlR$^㢿׸Gi&|6)t2Jh0ۓI(rBNJqj݃ԤPOO-uؤ:UPGEf\+5O\c7ZoVrŗtCKQHЈƍVsuHl #$3 eA*Ji7$2 d G{ PDt{!E>1oh5h䤛3!;rB@kxi_>d!{wȝz/×cт%]KbOu6N5/1۾@ZcXȸu jF>EhBǃ<c=7짼1(Y{]Za}ʥ6И.O4O3m[f)|JNG4='eQ=՝T~Cun};`Q?'L)[mדJ }vWA9`Ϣ&0?WRVTp7=Psr=9zrQR!h}o=SJ0LsȰ4( 7 'cŒF9ma]%Pm:lj`*ψ|15Fp-ַWܲ6¦,YTόy6 -pNvIwCI~@npsWWnE _a:JgMCrU1=_ھ?^X-"b -=eȱ^:~X Z[(T91sz~g)}Fr%n(XI RUޭK@XΟuF3.\KyLb? b Uh!q`awCj}X&*q?7CNں"eva]<=˳U1Y"~=_6Aq9FNODŰ5a {G٣.oG#ZzgYa=UO&˓2L s"DyD11ྡྷGdŻ/iKg͞r(LrhwXU ^ޭwI`j|?NXQӸsDyM뙕sT&.] -L)kRͶU!;+ti^&E=gЗGZzAlrS_NY-0z{> -endobj -1549 0 obj -<< -/Length1 1388 -/Length2 5940 -/Length3 0 -/Length 6890 -/Filter /FlateDecode ->> -stream -xڍtTT.C -"0tHwH0303 ]ҩtt#H Ht8޵]{{g3Yí p(PR@ ;&a7 P8L9( FBa0#_/"/*@9E P Hv'jk” >s ` BA0 G> 0bz}2si*q6yyG@# E?肠'V fDisOj/8 dp l! ( c^X,/wCʮ͜uA+ --8v}Z-5鿭j( r0[ yxBP2b E`0. sDe 1c!1lC^/?Pֿ' ,! O10Pkohxap&`GZ FK`WS7 0e%7|W5TqYK>1}FQXH(Rͯ̾M[$sq^=M{V1SG^nj,S X9O$!ztl'g_5A],ܬ^QI(nho.~֪StZ٫$T S8}w;^(3* -Ϳ!z綝JerKvۺx+J}m;h'OS%EjN@PlX"pCG9AX˼`yA f4𼂖m{s.R8#GGOo`IȢ]A7G߳+gZ\\Ƥ3u&43ct徒ZLV99IBsǂu3(~յ#\K;vQ]aa0Ò'8={NEóVva`+"^Sv:~AW?L\>u]ڽ<\(4wjH!aiaie 0d5[Fȇ>1ch^4ЧX:v,[6YS}[1^{&]AEWYWXl5vޫڨr"n5axQ٢%>ACenb0Toc;ǔ4Oe9ߐ䍕Tih6}֩y,|f}r5Ԯe9g1su[t0}cr]TnoO '5bcbI\(-_zՆr"]mjǐ/Œ[ƺ+鑜y5?;nl N -KD0-Aq -y͠)ٲئKGE7sy켲Nlpi>~\*$y_z3󛸘O&Xc?\=`J;;$.Y2Tğl3XMW%mؗASq -cFMnڸķ\x гxp'3]Vr<9w,9@H">9]hb]w<A/wN( eܾjݵ>;z9wWx -TL+QZ>ПbOiw̢<kTD*8H6ޚg,ڮUUS z.!1yذhQoVXfR`-V1-\.q@k=!^\Xv"=U}ڏ;-? He D%Qlk{ˑ{\7xr'͈G?v? -Nwj|,jlCwCLĊJCjb-#Wʰ l,d)9U_5 1+RwR&Ǽ%ș$Gw [p'@l$5?Fӹ#C6RN[ 7cW: Q -1d&qpu5~OKr?l\%T\ՋRCQ tE[6Etu܂yDɝGЧy^K~g\Cp~=Q ~mk .v`pX>{Q佶?!ڴ'e$di)O]4"Ϩ{6i5'xcTdcJcW6eZXCMޞ۽]8s=2-ϭ {]^CRI_s!V6#azsi;uTk k@Lޙs.4G*mvS,؈LlSQIeOoTjhb,^ fI]h7%w/ݰ[o8O!d GBrC8c6 h4_%4eƧo^oa/f_Lʫ&1ȏOڪdfL\y):coqL;^RM۲&{XdGC8DU9 )2_!8LIaCz!4nz:cx'oŝ¿r<:i+.`$`?)Զ؜|+T<_ -00x`̦7.-rzSmč>YtStw"V?H-Ȓ`w_&?YS̨ ;ڇ-8SP)39 IH&M5l^y_Ӊ[(I:g8@pd:zH0;(r%܈M -なiˣ -4 -Eyp;Oߤl13j |8}I~hgڮRUz]R\$ʈ6Qj*9GPK@L}Bs&/.TlN39)/Sz/nMy $@^]IX6:5፵WލmX;!!S}B/<Ͼù`m)xSUR%D.z2/YFmlOpDyLn~-|Fcɷ&PW}/%M+c&љWt/nkЙJe>}l D4M/jֶ~씡bblsep /,uzJkGd4hWT~@aOK㳞I+'RZ ᇄ+֡sjHhQ ߀rƐ -XϽᜲš) L -2KǛ9g]}٠pK\˩1jaٝ=`7$Ipxw o(i3R~$U՜*myIdvǐEyӻH@ʦ+o8nɠwa |yi//vIGn3aB!ޒ"GÆZWޅٯ%296Sxyհr*b4saQ*LIu*x(A [I7vc3:wUN@i@Za`"ぱ&O<0𚎂>WW+ri?䰂N vS"siՇߌ>Nd?<ˍ*j(>r}@\|i86`>reX50$rr5SJeq+u6%ώrWZ %]10U8* Xٟ#iTq# 8'Y\D {Kko< !s7 ӈ*>)PF\SQ8V "p煮xzX{m&ˤ3=@9z#"d}H5 BqxZ\"<͙O^T-*)&HBF>,,4$mx_rQFRW3N4_N.rZ>Ip/wC:OVHS#O= 4k+ӻp H+wdv;~)UW<|K$)܄)h*cwWߧ)Fڵd]u)Zg*oD@n`-)=Pz}%A@I*Nn:\ {'ܼ]Tޚ6uofOvAג!o$i,晵J33[Qg1{zޑWi[Hy=68?g\ށm O27BOfp+ -! u@n&ǃ.wRq/Iޚ;_,lV>yMb^O[$^'lw Mh#{z7&9lֲ,vWޫ%4U9Pa /s˭nE0UJ maRyC~Mh UULcg$zނ+בd1&gُ=nGE*M5yI7EzbAi۷)K-ZqVsP1eQیyNr2`šEgֺUo}q~lm-ph슄wZU ?L&VhmIhlZ+1 -NjhΠ+ -Isd&3iV*#cǍ%lp?dЇk.^7w%knngԈ>Ɂ/Ո TOU=hO'_cOI79ҩRу0lDEG&l0S;-+a@ԶZ&rCwAD}I$Z. P~z-?hffd1jtN}}ʪ\3YQ@jM 7!{/TyV:zgϺt>Y> -endobj -1551 0 obj -<< -/Length1 1386 -/Length2 6039 -/Length3 0 -/Length 6990 -/Filter /FlateDecode ->> -stream -xڍxTSۺ5Ҥ#H7 & wAjHB$t^7J](]zQA^x}kk͹d30T`($F$[ PT!4c$f04 T,PD@4HBRQU -C!ahN% III(<0 8ܰ!`0H#K {{{ B('y^7 0a^0(=hB$g8/1 C!H(0Ðul$W?ѿ#p #H/ Fa^`8n PW2 cBh8׌¿`Y UA4ɯT0v}+{GBt6Ex´T`&ۜ`PJ\\ =| ¿ -~;31`pG 0@tsEps#Ik9ƞ`0( -7 iݷ43(@PJ@ 1@?X-# - W}e?#^?s顰̅xMtk;_YWwGo?_v#| `UjPs_ՅAn€jPB:a-+Vp /e77 3@0( |XA\w4]0YW AAMDL`|~ ,Da!쌁GɯؙhW98rLV{[0 B2?Ȅ8UbP欁gՈ" -zX]tQeg: MqDmLПg'Dl* XG.d44Zxzl.˞#wN+-n"7Z^w D8N$Ytfom%7k2SiCu&'NwiW`O4(4zgGl)ð {x1)QMmX㸅ȣc7RՙݵwۍF=UsRպ\RfAd'dPYcBA{hۊQK,Uw ^4mu gxš? D?|p{jn+Aݥң"ę7Ej:"v"7[Q$[>S 7;<Qdnef&NJ[DVҡ5r=gUw8(BJ3{9Πsuwo!!|_mTEQkWM%i݈{1:O;̴LVAOE;747LE?!һ$}MaR4͕zWd'~ 3C?~ՖSv[&-Nn䃼@jie5{左[F׽Ts UIȧFr):]JZY4%P!M?WșhϏ$ءaSzGQ4cQ˚]WV?X[t8 4"Se =y<#0lZp\7.E{:pU"U^hzzIǶHaITX>oxYPb'yq)F~Oi7&lT?ˮge(l~90qV9]\|>\*Zdxv]W}[?+gM)e Pjo}q}G.Aj`{ƴ5=G3WC*IDzZ3+W- u˳m7fHqw0LgJ+hR7RI[<]6C3WILggdgltyͱJR%5j0[0r'm>8i(s>{meǏlp|in|;ԙvgn]I0S? !0j)n-R}E:/!#G㨛U9:o۴?5f>b?^\sNMܥb=!ڌ8wnc\6΂'2,Uϼr`}Ʀk^%]q[9NJ [x;N&"- 5z.6B<{5B޾K~'\}BЄeG4lz}]g$-!JXo*T2.?`gl`)V -!d~oѣnW?wݑH ]@ O7}oz]y)1X -R|[727r4UE]zaEi-U'U7yYhc-b0kx'8tx.Dѳkx%{@! f -njuɁby蕋Iv|Ho J8 3$%ͽl˾&wIbpa[rfR cG(]S6!bs~P^Ξ}<ѐ&A$㰓[v²s&>'+Su oR!Oωm") gK[A!ţըC~moC| [P輱:Rǯ.n"cd67wK6Ù_'Sp|,F|a.2))9 \++ĺ| ,"bBnUhME3ƢQ/~;XT悔 MqwQ,;[П!%7QM9J0XHtvdK.8JpS\dYiہQļ J)N|[!=͚QbY%F~=Q?cґF՛^gl᦭*Ҫd_-Ei;·'Mc]L]ecgz z 6R kSHXܕj^TQ J̐e4>c V/cbje`rbqؙaΌ O`kn_EkV2BDKW i7Y͎rK%ȑ/ɷkhԵW{|Czn,)v_-vwı{ e -yѼ5OR d;, -]kA\8]vn>&אY8Ca"r7q֚啢s;<5 Ll@.Or%Ռǣ==+䂓6sS/n2~ -}URڈV0fo0pj22fm˨@.g^pdt,Pb쎆DY0g+*mռ?sngS~)nFXN`fLe鳨N}t2m `^uyu'cS]0 `%O)Ĕ J(RK0)a䫌  "MO-5Y@+횃-aF $O8fh1*N>niȩ.38Ep:Z=g\P_kn+:Xh߄oqʑxXv:#-"]SY 4{r#}1E(BuY0ՊcyOB4/rky8H»rCo 27n'EPf^X|;8Ԃ&Q`YKFY4@F3nfyXܤE)b /c=u1r5|!*x]m:1LJukgsC:!a\ ݅xVfO^z3z:G/NT+t kNQg7ʯ62OWNm7w|PlU((?=$F_d2R^_EU\UE"||wp_*IA؅ӊ)AĨq\ݱD?jTI?"+!r S ;/B،1ПKfv#{POlduk"'r OP5KֺAyY9XbiD*NQz)hrM3Sv{COEW=U#sSc/$.gK!Aj -Cb%\cV 1B&m.T 2@"fUR_B>kqQy'E w؋,%t=/齗AA]ޣߑRFɓfab<Șp[Ci$q6qnyQ 7(%CYFXfr9bR3ȓPW@яPHVrJU͋7p,lk_*Oh}'yIk|N-LKR}şua -sjR8Ė8w_noUmNf S`{*js,W|ƩI)i"flvX=5S]j}1w,oPN5b* -]*"KzKM%)։u.MCI.LDb#P3pAk˪kSE]u.z_|>M`qX>u"9=zڳaz -s}%p^5`,hoN~Jxd~;B jwgTFCVclSd,iRоTsIXa-s*:EG-t>ğJX"[ss=d_SK hǧ'y~{j2K` -ÍexlTI&yʞZԁ~᪸ nUmV}BWQ9MD`Ͼqn /ο`i$TעKr3ݬk-=mxA] -Hb`#b\ ^y)Dgw06|bNmP`f&2E%{ E{S0d3)Fy!Pש݆mO/O&h@*-.>͍$lmKPYg5PCk-Ǧ *\Z&_&FLX?o-X=8~8 .+"=`Yδߜ7W@Ce+37q㼮Tw;?Fz0| /|;ܘ:o) Ds =K-a鴨\gWE > -endobj -1553 0 obj -<< -/Length1 1376 -/Length2 5989 -/Length3 0 -/Length 6936 -/Filter /FlateDecode ->> -stream -xڍUX}FJ F7HK0@6ƈ ) J(KIw#!(HHJgιs]= MT`h;4 -'$ -XEDA""bnnS$ 6cH4J0poS8}4 - JɉJˉDDdDc$ Qp,[ A"p2zA҂*.p  -A!8 " 4ACp?R)8prž  Hc<0ρw!.ߓ@S$m`@ w Mpoo EAN'g"$W0 -EBPHht p^8A  8cx ~uQ1B ]qXsDi𷬁]\(?u$_:О(?{$ -fs -VpPRDVJJBw½?ӛz9E]!H{8x8;;yaH(hG Qpg1H/ X=QϿlQWXBEOSUE{}EB@QQI,i !?mGewu|ghN_.8^>a?u&&)`0oNb} {b2PB!@@{4sb@a|n#= ui8 LOa*TX<~h%|w9SsMz_ˈ ?ͣA/T8mܞ& ͌N^zdtb,\U|l l%t8bOe=TiZ#d뵴M͆ c qL Ύ4<ݶrZ&:.&G:XU)L]"x m`ٺw8S[a'Vf7M;^\q -m؈ʅ&nՐ~U4IH7K؛>RR$e_UhܨE) q˽)vUOJYAd|nQGR2V2XDz[~ -twϫuy >3n nD%G|m`)_id*YݱY4%sׁBquYkÜ&6k[n Cg(&n=P &j6;ѪBSɧJ}ƒNϗlJ5G1 M+}fm?:Y[U-X^ˬtC-*"1z+K̫iI('}0N>FL檥Zod.Ά8ar oIel,^ݜ-PU`sQ[4HyePW*x.Gf 8a -׮_obr܏}?& ȥ)~^j9LTl]@1v 6Sv藄t -0W>put+D -x3بN:)wȍ˪i-G6SXT]LQ–Dȹ0ސDRC})4֖.-{gk%aܹI3v? -k^56gÁzLW9wj) |E+5w\OTՁ4SG3#%?t+X$ 6J4Zp^Ѯ"l@ٸR7;Eh[t_J#}gH.0׭\GGR7io;n|haA Wrknk~|cr0t3~Qd1QPo()b,Z}]vԟy92:njy-R{J$@ڼo|#U5,dX_]LjtٻV.'|=2C}(O¹KPa`v*T]esx8f|V^e'N(А]< פ8L>Z=P,;8yq85Ri) WTLYΎ:YpWU$2 -آ98gRRo=[ G9\3RgX" -wa\I󣭡|W-I<5;͒;pF4'A3jM+G,k|̵py*]߬fPas,.5h%Q^*&j]βyc|;M/^J( -A$7CtNg`E|y'{`DuQֺmYnpϤp%HV*h9q軜OŸɵs?]|UO֙z#B\&B߫lBXRE= o92i3=U d|PINYڣKn9[&$tmO7J'GxO2N&f@7<wAuc1>z|=b#i}T4Dw´{o&5|c2&"p5KfAJ{b\Ȟ'I -̓>Qm7%2g"3-m]rm|J467oh+coFt?#` kRjs|IeV'd+S3Y)> dj'!fQ&&)b旓b{Ay-zageU,9›4QnE:5=}zN,؂!@߫~ =0&ݝ&>OѪr_Mj~@ N8/z#$B~FU鑔!>gY sFE ]M6Ti7~Z\s0'>[-=LrDu*Dc &D҇`'_fg/LO -n/lDz'9ϳc'%*|m$Оϟa|+8i][H*A+w<:@X9{ăcH|jCfᖋ{}Ʌx -b>g}oô2 DU]3X5hrICm["Fj5(HOE>h¡Z/## -7)mx}R -]^ߴ(U~Vƙ6מ0P85)F,*50])lgߐo]۲F稯7Ǐ_b4Q`: Fc%ԩGu dNʸ7:V>t4 fW{¦bRc˦-uDvPO䮩RCX-5tW3 -&Ȍ(=Gqxtn .~Ѻ\_fs9i@]aVCuUJo yp/3 ?iZ3[!kCjSNC'C2*u$T2 -Zw=geҋ-I}!-}FNɹ{ws<:Mf -`3X`*^ޟgG1U!C@iׄw_{?dEr@#=~H[:}3׎>fJЇp|brM߱ʒ=ϡ-K܊ꤐDqNz04E61D!)'=B[ei:t@e v[S?$,? -IX*]O[8t$|\p]㓝Jγ)OzpMNE30hct2%w~>|TYhhtV4X]*7R^2k8rde$j{0 э-vYdb9IL5B6ԬWnZ]J 4&"us -s.q]*IX@9}5޿7:1 9IȈ2"nAm`q/f@IE)6]ۦ'!~EoDj܌@u%Dc7tydNTR#Ymv<ӗq!F=*]IU}tIl7|U^GxWʱAuَ@"d91-kdK2ʩΎRASd;Qb4튋u<@!WLSZ]Hv;À[r%a0yx㖎b0!VQ<]$N-8eNPr`Lg,Okz2^j%/ Hm"UJxs#u`daKQ,qq{O{̹/PO67']ܟPDp$EIua/ jj8/'˯zb>wLpL;"bH]Q1Q.b09@dVM+IN?rދVa>I#F- :?c1GOZF%ϊ -V%ݳ*C[w8eA2oMɲrGs?`s'xѴLn){A@ouMX U\ln#~K7Iݸez]v՗J.yp3gG^zx(LY׉=qw :)=KDNJ ,ҀK* #ۧKݙ~|=!7I}ωXΞaiv-F%>lr -CMo-μa깽/r~TWd2W!^:]%JlU A2@liS(vߊ $$+xO2hgW7mvwu$oP-m{dd1A[Tvk -I 2*k@VV~w)nbh1?/k:KcM, ȼy#{Q~H?+i=EcO[ ,*k\G8ڦka؋k9nGP -$em@E|^ \0AMF#8I[k&%9COID2Kt72={_N1` -&l6jLuF"f+ n9zjywJya0ݛzL.b1It Xvcڃnռ%rJY2ݕoRo}uIM74 8F-QfOY4q~iY7rڠW &l}'eZ\%P5X3A$"y[7r> -endobj -1555 0 obj -<< -/Length1 1378 -/Length2 6048 -/Length3 0 -/Length 6992 -/Filter /FlateDecode ->> -stream -xڍtTT R5(*1t7RҒ03t"HK!H(-ݝ[Y뜳yk  #(|< GߝjJ@0~a!8FP ~ - msH4F]`!x?6(a@'QWz#/4S?㇀a vq7vsBGoYZ~= B"}Z&FƺwLo2/, - %$$~LmXM= -([6c+EY  1eRsC ~y7  -/CMaD\۫ㅠt_HT$Ǫ=aP}82ƿ#a(,݂ˇ`Ϻ΄ā` $,&  -dÇ3Qc -Xg)8rQZV5 |BAd8Rb1pyj5,Ƽ;T ws뮧[`6kF"KxQ6T`&k -Q!0(mWF imJkU6&JQʵZ$UAdG0rWϊ˺Q-v?ue}b=Ltf3c_[ Fqo p\ BujVD~+< sAC }""O4B24$N:%cfz›!a_(:]Y_x,U/i [RuD'*Ք4mÃo1TQ,;gb^#E;SӾkdKyv#'Us afּZ[ENMx?8y32gnQ ηVsf+>)T!~;u3 cree' -ZMݯ*2M Ӕr,#VshoW Scބɠb5)"WlH4^ow2xFmrr&%@YM+­/^ߣ~Rbuj;s/-HF{a ǹZ)vJqt)7w rpr!eNm); -`B{C+qQRuTG,oh9[;n#줥=v|V30[ 'Abm8`:yLR=*6:6X3ʁWJZb~Rө a'XGʦjD%lPPm?)Dh -}z4H1ײ\N_zBoxReG Z.rMHY "<< Y범׿OI螭jZ_rOk׺RvhϗH,ڛSԨE ɉ7DN1E37?~*E:b5;. č;J64`B,)A#JIz^gDy|C=:|7(ċ7Go1<_BN6D|#_(nRgt$+x:yH--p{Uえj[Bb\81뽱jm*t 5 X{3:woV*Kd)^,q'su8dSFj<\gu ( #9_])BЂhZ|u%x,j=>62mg~WǀB9d(\]U |w% noG$usn^,M/u ^g`gb"A~t$q 'Ե|]gOr p}˥&-}f`u2, oRk|Lbb|`9fhD܃c>L}ϡ;[UZ=FARw>ͩ0- ~{HǙbR|v#º2EF5c䍇~ WGYtiZ&_Wȩ#]$ jT%KWg,PcjA| vGaTKt5KNi~zea|1:g;2ۗ7l{s;Qj zרIH,,IUȼ]ͬkA Hr)0CU/i˜ͦ gӠ=ȴGL-COɊOnd>P 夓D^tYLȘOCr졞0ƦkylVw90N`P)BlڲvӭDkVsV@2q-qwTǪqfϔ#jOdoGbhd.'8v/?N"0 - -ʠvwQt!|F䍄7KT9 -&mO)u*"j*R3ƨ\SNɞ(A3fI,<\"SD*˗fQPs8-L !ku` Q=i#pI+R# -p6nl -(%{EU\R2qP,em7`s3r 6dy^yF$PKsQ^P];RHKMoZ/ ϼ>}W\5b)ʐ!F!H 5n"SBC#qpK,Yfg 'O.p虃[YJx}A&sh1>bV -91vW4x?iE]u[; NPWCFZ]d H&-!WꏯEK#敞(ů0>MZoGɷrn6P.Yp{|k<5My01wlw|* -U [>:~)IUU\'`}xғW`-A!QT:IJ#˝s;KG!-xDPY3@f]kfWFۢoow![뎡d=H/UeSZ)BqS57Pz-AJ&mFԗH4!=} L)#utrg2u;r;#7ʂXUy.З @;tk7w,wӔPNΪCk.@H88I+os+/ |~'ǨJqt{%JFKvZBWZLBForX-%r<䅌7Y)O -\ -z8WA, o_:.VE^T }hs t}6006b1Şa m*~zҚ#rA@'9zQ[u15LxtwS%uW zX[ġ;)ofMm>ebrUJ&ABME~ Bk)Aq[ ?&0N: v|f[^Xء5:E S7=?0O1MvOo@f4DimsU)WبL.91t =Io @{?#^|IPJ0>XI\lQ -C *?^OS!T*_ĸim!n6 P\f{Fuv /PQ:TWl>*8nZyRti&vWɼ t7Xz$l X('6fWZy0\z r™j9s(VO3bYndّ_l`u j\n5_L1.Cw?nQ>! -endstream -endobj -1556 0 obj -<< -/Type /FontDescriptor -/FontName /GJVTUN+CMSY9 -/Flags 4 -/FontBBox [-29 -958 1146 777] -/Ascent 750 -/CapHeight 683 -/Descent -194 -/ItalicAngle -14 -/StemV 43 -/XHeight 431 -/CharSet (/asteriskmath) -/FontFile 1555 0 R ->> -endobj -1557 0 obj -<< -/Length1 1894 -/Length2 113985 -/Length3 0 -/Length 113889 -/Filter /FlateDecode ->> -stream -xts|3Ķ;m۶m{db;ۜ8ضmsfVժz~$J4v&v4 A;'#s9SS #%['A;kc#=3@PDVل h3r0289f"ٺ~F)3>͜84C!HDlllLl M,l*\Kɜ>FZf -gvcS(:Y;Ou5 V^_6vV303wHH@OK+N&ΟX;mW56q5s4 , lnadeky^Z35o M:5EQ5i E/Wy [ge6(9;YY;vra2Ύ1|:N珗;@)n6X -0pt4$S;]tvΟ!{go#_W+ N/ -Cl:?C:=N1#N1$gv?]}fCegvgv?]}fWCٕ3N}֢>kQCZg-!Z4g3CqF!33~0~-7Oa>Z#e;|?ś?ś{؛f))2|3g Ov _˟b,nfohbkmb! cu_}beß+/r1q/7I2|6鏪dtwS˧n'k'lYޟb?G?S?>ps }tk99aldO&_fS1mbnb4ogd#͹={pLXQyp;1D2\\Ӑ?"K*yH(Y|>gE" U"%͙d[t}Ā8}"5Kq8!Ca|lE~ ^8{dK惍E< P;4Ke{y+ȭsɂvPY[9U:𱲈Ҍ0 -U>Q~\v=׌}~]4X@x:>IkAF%EJdrJ %$;@tf5,׺xwMgE'{δh,ݢqizy: `J^-S8ʏ@JM݇Wyrt64ibd^fr!"7NwWF&65Bo> 3,6!SD7wsYԊV>7<$.QN$-A~et߸r.T<l^{4:8]ײ-[8Dޒ"yb --DRAڒ1b᠉Tغ3/"_Ax9A -YlcՆ~6!:_yʕ\}PM:x(2F^ 3$]SV.]I 't\a]}[c B2-.3p#UN -e^Յ9t;-i'T k6L͊%*- D' -t,Z1~V%n:$p\לiFf[죒9$LGm&|ds^;~}<rf06 ձ^] +Ih( rZE7ŋ:dƑx;w120yUB]]]U=mc#Ly#UiH)fmn1 c(Agi>ojCsf-˵v0wUO]ߞ?"\")Lqnf'('#+xc5-@}N3¡bo.m[é|4YH$ޅ_eysjF)aMLlm2zwMfH|*g$8$=[ZoB KvRYu#eZJ1>r6})w3p3!B<91Pq46\|*dwLF޷;N ^,qo}ajUo hD MkhFڈPs=2 L8tz"heܘ^ٵGO+ ~gj-&ypSꎎq vnjcr%T\V7 -~bm~T?6qVż!sN9ǂo =Sʝ$O: Is צэ8|G Hlྷ^H3 G M4(t&2w!#07ߴ0EjTvʊR"Z˨iN}F@FQ>$2;/>~=K .Td2O%;NP 7,Z(D!ahƍMֻbH̱XwZL^!/ښ:郄Lyi2|o6+оhtO87ދiUȂ,O4>I[Թ\3VG@\w Z8]}X|k$QEijF!v.W뱄r: -&bxPWL -~dqQv)-H }0]qZ&(ޭ=WG zT&z*Hy"ƘWXjnXr8*=1 -Fs4h(Om|PqKdA~w*|!iudK.tD,?7fCmBJy{RCEx10NA!Xlj'Q$jI@rh=fxHKĭh_3w`chµ6KMRrJ"UAԐ[i!Y(- -)m;cDƳizKoh߈toszOW".ms+hM@n˟=e5ɨO{2WTfM#){~.0ۋ`: --) ir ^~''T}˽p>_>SN*M|̙a^#y1o<´z5-KmyS5ώN4O -<1gCr7wq'l;Ǿ4MW'9TO,qj:k8siRlA;qX <\̧D ŷBނbU M8C`1Qi.< T\ky̗߂R))t0Gw>*4gYx<*]>YL/߸#sKUf\r@ɹh,83_Bfw{\=­S:]w_.g1fT- '^erthNo^cͫ1?gՆ 0PV*2Cw"Ӫ•$.o#:(I4&֜um|p? y,FZWPr;]DA'w|&8f>( =56Xzמ5>cZwz5B[QA'HQ*t)Uˑ*T^P6%'E|1jwkC.L- Y2iv*W+{}@E]o75KЫ@B[(M 1P(qp;q2jLyMyh7uޣ@꣄o]SZ!OP3|bE׫**],MtIr>U,IB3۰tERjZ[I9вV,)?U`wo'WNvq64O/$: ?g_%e-9FMOb}UK%[I'me3=VeC+'<l n?PNSJfY\42[X5bMEp$_vcK~xfgr#DIKBEZS]*MQdefBp#UcEqaUJ,CBk5v= x 7vǖ,vTam﯐K7 N_9. +Ŕ^._aAPėވY ܐ93}1Zp/4zAv rR-옻g[-Rrp!4IzyHYLԮ0i+׼ڥz^e>s]S+'c &Ǣ!HWl%fM-(j~ۺJ(|*ȒwQN#oI:RYWQ_af,.d2RB<K_CdwK[7A~#,ktr_bXIO5f%)90p]3|wm)_Tj=%ۮAX_ -bDG 2X*Q_4~.DE5xUI t_LLv2zJZ\TrF@V-d.єl3>_<ۆD;͢j[s#A_jye< -twFK; r@f6Y)bÉ_@,e[3dBĤXx3p{kFOMo( M2c+6 -"c0]/Z2 STMůW7k٧`ibMd`/⸹+Rޑ{O8n)[JAomme5Q/iؿ[ڽ.yVW"O( -^2-kim.qI XvQ c+q;h~VBׯ@[p"11\/s5 mqA#lʋ%ɖYU(Cκ}i`y*s^E6cՋ~\I#wI7UbH M:"נ#lrⓚ,¦G4IA y(صRV|U/Zh0^mn7F~y;]7Z}eк1>sQ+,6PfcKp! H.y=g6;we}x<'x>\N -A˒Y}0~h<"|4 a{X=YX\@F/9iZ-ޥtk&PUb(lS|7㮶h)l=bvk8*V -C8@kh$%hV5m٢P8b$<[BSej)r}l/;,qL x Ъ*_qQkF[!?t117^5rT'PT|i=_XcT[Aeol݆1IN*8(q!H*Xe/KDŽ {\.S[zRG:*aֶk'%/1+h'9Bxwn~E3hdyٚ":3VD}Z$Rw.V1 ߹S ΜUE~N5@FvQTiM OU >Ofc'!?`V]d8f+`FH Ĺ#4ma\1*CHOkTztJ@dg83ɻSʿJM#ꕔ'GZkiMedE<V|\=Ja+sdӹ/2ţö/;0.N# 0bM1kucQpKG+2,j a ,]=r4s*J&QJnst$A8GNNȖL@8ݣucse,A+ VZM!N1V CB|wR?7~'y3h>`lQo Ȅu\+cUM ZO;ɫ/J&hn.1rit3[NH}!'0L wk-_ddLWKX^lo:9HTDs`52& r#]׋cI7ߘ7jA7l -=と,%c@MjBPqQ$ҹ^RBj$s6*\'=\ljS Dk^|J9NT'xP>"Y 6F}zI`sͬ/*3v}:I%.?} pڏ.t_D+r?,~/ w:E@**#؅U͜bg\7"%<7*:6Y#g釰3z\=d͠L?!p,wSFݒx@Ua5Ƅ #_"6R3.N+d -,1b A?/y1KdmCِ -Ն{m7A%aq#vs:ڐ,0,Ǝw 2t* N*ؐYt=b`\."#16RuъhZ >%*b}ZJFY9)JuuwEehq va\zme:{kPH -or -|tue6MຖT+} SOUCưDz+ڪjlëi3jMO㐳 ,.4HQ=ChPz0n/:}f(T/F:ÐCތ4M郄Z^w5Cf`bb#9F9.#]$_ytŷL'FcShv]+Ͱ^07<5uѐyk6iWZt0#RMpI}~Slb T Z3IL%yO9Ŵb!rTV an{njѨYq# @bE1,GWYv$DWi=Ԟ;R"ZoP v[n 8(ߐFKrPykdFF:M; -p[^c6qыjUCޒ"U O`ޫqit~cpT8a2{ X 9!3.1ApJY:[dV]l}۹w9GY__8|~v҅"Nu۱n;:q QؔO H]KQ\7u;}#dN#cpZ -p!+NF5FЂ`_v֥21u |ǔ]PAo2\<uyd"mMC] Y,m@D,A{hQ/{[а? ;};h+%$NE\sRōUq@gRՊ>,Xo7eBB1(2qdsKMc˳u5?Fdkgrl<ˬ%!#(FlCmoo*H}6Y+!=)]pcvzBDŽIbI̡#"ǘ**ٔB-" bOd^eq[Mr6s4E&5^m̀&Q~ r\XbORC2G04sdxTu0owO׍N# rd H>rEbfSz3G"8ͭL]2!L9*à}[ReqP*,J% OdnSRypB]I;=l~%6̓KGr$4af>D ~  -A#ןl xP+sf=kyGld3qʚbIn Wd\/Hй 12yc7S5glJJ> G*?%0p{d0RLjt3,s-SmY"H5>6cG?px U! >::_p+ BSWBr 30sLiw"㩍H<̄iGE1 W(6I}A˖&{"<&DtddNaW2`e-4)ںFUDxNn=K_RrfhJy,6|ׇSM"PD%)AY7U}sE-4́ 9|XI ‡sJs'@_6R(vsṳ9GJ a&pwC? -;ڍ!JHfl+2N(6=h0E|fz u6FR@ +(݊h[Y'a6!N) םR|R]U4qbT~9U|L8I DY}1a@yJu>YMKl $T -^ -@XDcJiOs̾B:q.U F铹yI|$:7ѻ(1U{uM%kQn( #m3dމy֏ 4|e}!$B acfOd`YHd+-W>~"ߴGsҨ@Ƙf+Q<1[uu>5g՛b]{tWwg1eQ6;=>J?{1ڄXkӗ$ -,ۊ6uW@ϓ?P*o_.T92m)X G:;rKeك=i:nN~dzu5X)$k:`K6.]->l.᥽ύxE[_d멗d4$<+W$üE*pJO}&)Yu"t:nm@QłnvD=g&YIRԚxG| -qsB9tsDMs1=QE| -2#j[`ֈHA%(:rV>`&b#;acZJN8_ǵUSW:>S{P,yZחI)YWbx&$ȳ U ̟-3EX ]2CpQw0R@ -A-}}ʫ!Cx c`` 9S݊X!h(D"Isyc#qyBn̕3v$׮unTZ/E7Dʜ:?$2~tsG`5oeN״ -Y}HnU:ah8 _¯ԐhWX1 P^fKVӦ#Ə%wze}bs pT&\1A[vN9#"*jˆ5tHJ1[ɰh[ !%V&v9Z`ل(Cx|ۗEG/3\Ep_Wj2g.mMC V0cwa^4,_\&yD tԊ_j8p[={|~=B,m%;ޤPiA - r6?!Ӆx\e?jFBѮVѕd 8J۩zgHGP%R8G. UL􈨼5](~Z~pSL3:ADBR7CE=|!}R "FBfAaInXUimgSύAHTUvntpI@hIs[-!:8tEH*_ KE0=Q](~0knXsM` L؛ƛ8s TT!oNSƥ6oxrnHjH tV*$XCb{? -{ED`2s ޤ&a&څ[~cwCb*Km0 -%^ Hdj}8L9וbnGʊƹ$oƇ?2$7ajq 5l潏\$]5(7V>ϲ"u@yE5v9һt.NQ[=8pPK_+[94H*&)PZLMWjm#D=]oZ'AF`It㨠fW2~^P鯌pggzRo 1 'o!jO-`D+U9k}uQ+qt<,Κ+)ފ &YlCI}NzjS:hS#Fs Pݞ),߹2rvKdk$`½r*"4c;*T`ZDSC[4čƨ dҨNQ`0;4Wc `47F^̰㭰(s{.LF\!mI3"b*B2]9Σ\C=. 3fJ|/r9فisvCRcP>φQ`vTh[?([{[dRT?=nJ/qM(ŀ[\ӌt)VAܺ/MBq[ւ݉3hdip"K5AtJ!TVcaIAnϟ4u}̕XZ0x8Z":#AN6o^k9n'..ĕyfT~ \ "/>I7'&_=+Jr|!*ItE}߽Fc(<>?Gh#OX[Qߟ/fWz#6 _ZP(is\)ju #+U.~4\3X/j0ݍ[<&ݏ!D>WaVǏg MHɔkQ.&f{{™[ʏ%B ] \)i -1P!KuH+$CaoI V%% .kʣɾlsMmPx>cM_:h#su/CqUVʣƨ;F;1&m@A(MN[ lm[r0lrhSr@㔳\RBpd4I5lpNAAwY`@Ao>K3|\&IeRI GAD /ƁPkn@dg -n[k3'qMCoR8Kq`ja"Y,@A>uk>CF^ 1my$'G\@l\<#Ì0KL[=<F-fP VqfvɃiV#B# @6IL9^uNk[c\e-x׭Ok5*"Fq&e}ԆܡJPl*ḰvPjLzMsras̄`:SB+=Au'-l9ޅ;m9,GS&D:{R>R%̂8b`Ţ!3K)ɠ3Rxr- 4pRzXɼLu:,5kTZ5vR7(bb麏G^yٖ~- aɗg.\;G(2sQ1#X;ux#1sOv3&LΙ-2!T0+= o|.>{Ө*ueS)"ϒP݃׺  hy,zDdzӧpDbJIԟբctOtgNc$3Sȏ>*}()߼Or=+x0{|:+JӎG[CϞhYvtZi}+~:mQnl۶m۶m۶m۶m۶muCW_gVPJk4e H=8sck\<̵"3wQ~D5/u)tRl*Ο͈GeCk(l/yXoB{N0YcNEb1;ӹ 9UKrBdn/2[Vjǜc7tJ>7ǾROiq rL5f9wF)3n@hF[(v >UTCC:` -+b5"*Umi[ ŭҒh6MW@ XtHoGF?;j l}$IkM. - hE_ %xඖ 3"aܥ^:o*PU`cCK%n4#5*Y$RbV[Xljz0%](;: -i ץ'5p'WȦx!?Su}1B6xu^=PU;m%|%\r䘝lE3֎xt8}㭊{#|]=R|PA_tea2ai]l"unY,y=tHx}9Xexo)ܤ9t7,>Zkݵ _[Ϝ[b!8}whJ}~|^\% uBl-tx{ M]aSHŅFdr#-n^ꠄT3~ӳ]|ǚ\ ]ZB&LU oSWTtPH$I,:6,޳WR2hC!D JƎVa*"+0! kwp\I5$[H$v{%s4~}2ysk6x^ ϒmr"8<Ƕˣ}qOJtJ5qJq*L5\E5U <Ƽk6l< - Mjś0 ׍$%MΕSawRԫ]vw*f+|zׇ<ى̨_ Ί2eG)/ j:(7R9n.MB($+jb`{^zAJ0~hS4='"G0W tcb/ؐ?л2gs1ϑmKv"8h~ v]8}%sG#=ʏnn>}ɳ!/KMyF$L%%&$(FxQHduןf4.FΛylܰ:h]&s_ʑ-UԨ[Vycݐ.dpe"ak+Y';_YY9tU\:* -X\,H>2jRb,`!/=P -rKUԞbc^ٗ tЅ03:O l594˽ԙ[i%{6#yAmCcitPATNX$GGof0{ ?Fjk7f2\(8~PuxZ}q>l9s6q&vDM"ZrA)'kj"WywVp7ce⃉V 8Q5+/݋`x/)L~bSe8 -ߒv `v7;~ Hf)n{wa 続5Ӈ("nJOhVtѧN:lkw^5~3o"i'@ȭARM) S(K+:9G&KX1sU*yzyG$b.!8A(H4樋~$[X<&<45 E։WX."|4] UDtk6ѠKgȫSKUHFhq?fp%)XcNPc `s{ԲkXy OdJ U~3)Ba.qVqԀ+=zopP/aRjnE HVwM&hTr#vTM|'漜~=S!LuS(\XfB{r#;Z;q3mT/u,UJ&.-Z L"QRLF/Ȭe*N%r[ɭ^. VihS".8YZ2n'ҰYr#%NzjQJCn@fYP0H5? xӯq};~/Ȍ_{ϓaHC%]/j\2<^5~o%YesinZa`ż> g%ls|=N36Tvػű| t si+0^%m5ħ| ?>_J5፶A)N Imv(*||ssAҤ:pB" Wo*de `Ģ&QQ筙-:TGѱC9eĻ7Nn>ʕ7񺱇[Sϒ>2;&I+ptul'xcI&O.J&#zd]F+U[kpR :si4&:HKz_ŞvOv, nLqѹN{](P j; -|9:1cET|,_։*]G -q^Z驧 k!q,13*aD혶Xgcp_uidºgC,cIx;P#AM -$F*(m35˶c[\5[,pAyǾԌ '[REzKZYfB!%ƛ(!HV-0OaEpO0xVv:ܮιS4 &H=4;Z]&8㙘_eP)Mռ^/b谻vEtسJ3ʰ`rN=e?P}iι Z4/,TPM!(,3w H[=Ab3QQ'/z?@&luWjK0(/+G$J9m7Nc@AP d}g?SUq֪~7_ǚS)KOBef0]9tuÁQ2\7"۾zx,^PzcU aH6| tS:Jk'e}Osg1I+T}^˲-4M/y,Fm4T}6`^yC @ًu 먪)˿VW"~dcJoNdG&*CK΂ LWJ9swIPuj|L:`ɾ"j`لX~TC\HXĸpfyM -Sʹi)m¡.B²"5XqRRCҌ>e҅ 9o?(א͠IzX7է.atx|oo'jP_- Q U0jXu@?*`!lnBʍ;lU N5X#4,' Y.c/f&9}Rf<2Y"C( dBh%Mfe~=%\{}jB9zo')Zn루$@v !&ԅX_9)(_~-WÂ]\a KFN}3S*;@7ƠBVH̀,!fwٱE\Lni/lA;}p4HΐJ:wC7dt(~ -egM஡S H - `/L; 6%=jgnl]@ -[l\ @U{ԿXcֺ|>>EB#=?DZ+seH0I+HMN#L% _Qy - -o% F|Y4NUXay)9k`͍~h5d·"5ΜUE[Oҩ.9+Ksd{g$^:L`dѮ<OFe< ,NLbt4Ys.]-T͢A?4Xu 7*ݪKg \tZHn(xUa\t)zpElu_bFS@X2##"X Gg!\8.#<6O ϨJ/ 5njb=w"'7_cGnAzh6|+I.4Vuk/fሆݏTӊce/LMbP9H8eyS=5$Xpj+MW?܄SH#L.zyY]![6xA†!V8Ctz -U!9E/[~[QA]zG,]k\ Je|j bk,ЭFƖfXbWvo>UNg5԰lUr)#RN"ӓUг>-e/S!@}fw0fO - -6Q Z#F18W.'PՈh9g 1x/4O0[hgF NǕÇ!nAxɪཕَ:0p@ԅ -%ûr"5, ˊ~9Y(Z?(hV\t0II9mhkaYDәZi-&9 F?]']^G46{jJV|͵:Lm2 wE]vb{dI.-rر2A4dFjz2f8fǃ{w^մ]8U4c'l"z# y7g=-- -`,r$7 s8P R*jb @6 -Q\杛?_iǿWj+Jʒ82p`4AqfSsVK5_KF 9c9}$J^ YIyQ7݊? PtYAXtrToDD<`BZ&Rx1ȶRLH._ڋk&_ȖØ& ;w礄/"=FEc^xAS c{Qɦ Xzh;Mp K␛JdhnO)~l軖J};|i|Pk9LB腇z}9QŴ~_(H̴yuR w#d}(4Mg 9{,^24aO_ں1ӊKuIzOV';E:#q  6O`%Ť }Z-^7PZ7Mft`O&_ܓyLBM:,qZ*ANb'Kȼ5aRlq|4 P -|QEd[|خ_Wu %-ʽ:srGsXfFw}, 8TcsS/I= -"®S|3kj*lӻE`LK> -L+KoݖPn4%Eqc5֗lY1+j]Q Hxp ZVGe@I|D^3ty EV._ 'U&|Se"LG3 ~)ĕ}'wKvq9:\}Z?:]#hUE*EMKà$\CgVDOnq35:ËʊcO9NENSSDG(VYqQ0J_b8 R[T'ƁC5ѕ|\(FQA2 kfh͊Ǥ3RIBL}gVR[M"1B+dB/F#st#ꬹĔwc{kQۭq~5" ~8w#$u@w\f -C{jjUFKd_J{=;UL|b'ݘ0rNnCx1#zy R+Bn[9M -r\,Tu>kʁ`crl> D>@7}M7]$fPk  ۿyH5P~ÜƯtOVkM^o_0vg_HfKoY=L>IնMfdb.t.цN */A"m5ZВ#[b^4o P-\Brny x+h1Kr]_msm'UF2S{RWP4ٮŎy79Ad;~-~+h&a^^gݢF8Tw5-\i"`=KbTlmnxXqo^_&kۇޘLC'RiA"(K -gtƂG_'TWIvrßJwMs^75eekie_%h֥(Gz"$0Wq[P}6P>mI`b42p7A9T*sv2F_Iwx+VnK~̓/(V!sIH Btcn}K븩|'Q5c8bbd;yy~TqH4 ,b@Ia93KFI]]iѝڹjrp'a\|@=9@Pug]@nF3lC)jŽn21{ˠ]E/?RNtŘdYr6&۴&oElb?2^͹Dih 5R$ /2$y_X>bǣ`ϳM_%D/!ʏikP 1տ- t)a&6?^$ja_ x\~m06eC5yr/7mwD`b!)- -yVK;\?Nbp7\9"FuCsqEE'DM-Xu8fjV2%1 !AG#OOM -]A 3:! -ɽht}v_1Gm@0f }?0Z0{^jo)5QF$/'0GзS!{03]pgznήJ]1lwk;SpyH۬UV$%#!bC9KgC=]|q?^?TG} ]%5`_'{8?oMW.LP{ۃ@} ԔŦ,b/G74Go]]uof Ά?Vg3BXڌXL·g%n{`,UEEp}^Yo WcEKTQr'N(FVQq\rUr۔ ;;ȂC4-zk3كp9l+Ol?iY˚3P& ,l8 utVs׿frs@EHp~hog4%""}®Czj+%'ξ";w=PJmpV(ݧ;J^{LlM%$!nPrlA΀b/ݺT+ Zk3{D' ?MU)P𔽽D J ~쟞fZ9k[ -@zQݲ @A䨽R#,1\@6˅0ѰgdeeOf6&YA^̸Js>F+]MK2󺄒 R Ƴ3WuAiR֜ ߲_I3ưL[JpG?3 _ -?4٢!CZᣋ{q~^j>IgU;, -3ci-9~+;q;Mb?%B&aҜfE(߫4OVԨm*!*t ך;]gA2$өi|g2FXmx90+h9$HA[2 -Ύ׆C -jchTOjڢC~`V/Bz6Hmso!L01vT}"?ZCMpF E[WD|_fcI'w3H:)VG)%bXN#Gh0 CuWd{]xzgө)8=uxor[5獖 ?Kkv 8C %+J5=݃ٙPʙYֈ!(-F_rXcUpM3*շ?Wlz ipWIr$.#>9(ʟ (RaT*_ocn1׻R,1/凋840O~d-" Κl qf' tQBHE:[4o KhXq>G|Y~>mڹ{y;x!>PAM.q>g0x/XBx:5600FrxB G6 EuyaTS0 .iEE8.J<&6`4bM1[T *Uyg$iw &@xQX݆\.vs<@Z*OrV-B`ex]53I"w(3o'y\$uwo?SgDwӦ͍l -]!PT!ĝMҵ TThܢ \m3cIɉE-qSjyK>SSb.y-dElx%#v:#矃ٲϵe88lO_bIkP\YEg'l|%At,t $L?^~BMRȫXf8hʨ c]!Ntqɀ]L(偵P+#_'w( HSY{2-M"NI_b.%JV[~y L7x$b$)kW4t_zZWyqjG@rًcV~|QVr %0ګP1!~m[3Ysoҩ9~Ә(3HcmlNzɠ_Y^%pQ -ojkڇΣtfe"=qkb8X<.U{kSm]$"7}+Q- 6.ȱ-[bOgtL^^S\ْt*Q}SDd^w\k3YRFSuYCHh{ڪ˸`5rei/AX|t7i=/S9̰1b#,?'4'L]atCw)j.ñ5?2[e!z=B1pu\ǼJ`7dVd!ŝ?%Σo1}:,_;ep-*|Z  ҤHy}ed(ovم?-u m'M4hDp* -8p`n#LdH(UDr;i YVa^᳅ܵlr`.NHqυ, Ͷ }-_5;a - W;quPC0S7' n1%(B3%*4ڲțS&bkˏ"ƈ(~o0Rt tx®୿It#iEAXδ7t FE;Be*)@?1|` a%q`8PQ$@).ZH5L |a js;D'J4R"yx8,Hq./"E[=f:¸I0Zg{~ l -A~& nIya!: y~]fKU?45pHD# c2YfGƦg'U{l[U:* (hsT͈p6 V, Ȏv%gPV>IXzGk1&>QO풭{k+-T[K=O~rˠ"׳><,&P²ar' nUMH<khӻĥPmb\Ć[X ~%c␟A:kLarKk9qEG蜩tH4q {D,tvJ}¬f;gAz.M6m۶+mOڶmVZm۶m6wztEU"sP6%K\ޑ$hƽåaQN^dPJRtk9#5KB)00EYg}/hHD>g7LFh25+naD[j[}ͳ ߘL䞫*`Bhc5"ϔM'6)r/<@ŭP@~7p/i+g '+w,nB2h7]5 Wx2krl*Huv=ajjԢ!)rAWR/a=ƀխE\ز7UhAke4kzsOkdBkS }Sզ 2+b[ؤ?As=óu }4p'φPXq0"}4YfC :.Z-[wר+_ou[u@7nD{@s^div̨\׎u&+(/RQ@gP@RIE|Ruxy -_cg -ZAJGa$+k:o<3~GXTB-?yx J_Z0l%cBկ07m@"iS`IፙښďŢVgh_IJJ|7B.ޮGR!pC M- tOe)vjm8o2bdݚH4N!p2I)ZO9"nl#ZM]ny)턷UsܡNCy-l!9s+b78_72 36.b5|] ?&AvYђZ# `KR@efGM,LWvaD@seLP;V&zt$8lztZxj|0uI{KLքX*b} &v6A@!04ߐ7 ˒|iG0OQr$OTo]A7{ ^?RȴG1_vi &Uw_s)ڹq&ϨBۺT+mᒔV{nj!WT+qvJzҹ8O֠{ޖyK M3R6(+2AZFi(D@[L=; -dz# l4|DK7iCm_o#xlLg79/){R]YH_% -k#Ds՘v 7 JoP`z_*\/N"M6]eqxq" Mx|ݞHٝ[&nYx]56w MKOUV]:;S=0 EMTP#10|Of7ŷJW܆&QEҧ%,کn 2-G"۰7|a4XKs̓b}jk24&Z7O j %l 4B3U嘘.|^IAM!*&T,GtD9>azPf <^~@Cx@Wڄ_J{ǠZq%θGvXQ{w-ri: \LG~9B&`ze%s4$!qrP.4{Rӻ9W0%wNd)!?*PQf% yY{<[)^%iUi=;2eSk {H9cM"c䜺x3@}|AO2?L+uɏ+K,_wT,,n:Y0 -)7>eŃk iLDQ$k"k0Qw${`ҁ6 n[ SEnFɖN[A$ZqIm;rz. ,e|dfu$+BcJroraG}/.ӧ}FffrW՟{RRDa-kV-ak7HB')n4OY$rJH~)YA\ ]-FƆ(8NP|M4,z}dbAtL un#pt>{ǩk iP家Vo*@+ƒM,,)@|!+=XՐj{@:;WHj; BvV4upOOh\vN7N~8S3W7%eV3_W Kk"+;I.#$$ӕA%[m鞢&O<\\$VWUm>VgZX -%^,.%b'N^UϒƮK])x[?m5)v1Xb#eM{#PWYx+4r3$DCvQURd|'EsqsKiP |M8cT/s{B@vB`urN6:9D.  .uON؟v°.kK98ɇk_6ڣheth |Vګ';U|)qD@T΋:zq7H9avN%a߅at/d!xn4,Evh'B OU(XvP#i'ya3{00Zi0qncAV;Fl;BQz!er.zi~(%a||a#d5^}H`]&*v8c&Mx6!Ľ鄾D7KV?σ>2.mBk ^ s$ =Ɖ_x%?yQ NvUExϥ_f">Ē6L>}' aB5ןŦ.wOWVa< Jyv"@1*7f?J'A6 -7R8=Kk?IHki%ǐĞTX^ {0|D1$ot3>ڲ۞BHX2&62? y18Mz໮2?Rq9_Lˢ+”G0WB}0ջ Ϛ)TQr6 P#*2"s;? gt> YkԤu}bEO.Z+FxA/ xq' 4Ԟ\VeH%xݙ㎬Sstђ0%<rQ }]^LݎL?F%Y*Ё˴q;t0((%ThӆY98J=ο QE -Q "3Ůq`nzH/@QTkb.TMah`׳?GѵZIIyEPBkqg0d8~r t8C-źXR522=-T'Х>˃OLQ[%^+V.^&Kf3˨ʷ%onOp+fj2O`Br{xt{@t䛴JQ@erhe'<5r)Rf5ܧi;q&~@Zqˍ^ /BԴKbZb>>xngYqW4م)"¹~2šzd^+i2rfSꞇd-Ziƽ#Ϣ@?((Hh8/˖O6>Sv)*42)X]"+ jmg%Z8L@sS޺C,_8 :CQ 3hZ+&w8BҔ9 5i@M@cPsݛa;Q'>~8 畔ӚFW̺-W$Z./GHYn|ѐs+Jz}sAcwm 2l'\aY^ Z[!kw*4g"aF=)Ƥ*~:1ܮVq:RPy. G dIRPZyvUN%D1/b!qk`v3N4wܷR -ƆwyK{gJ㯞%JvJ* $0{-"vErڄ=Aҁ'sJbc5}dKr~e G^QGI @ÿgH?Xsje -B׍צ/dŗ*=L}A)`xԯ1=D[2Nj鏸i)`*{o̺ .E?0~@ݨ FLG]P'dW+߮)Y!v}* ;쯸8lFLz&qL0AGԵl9u,?߅WcCU&LK)Ne>uo>3udL -":W~􉎃WߌTaݢpQiSzj[r,eeAfy@FđFgze΍*˂l !_t ~11js -5}AĜf{ R98tv ZDr1kї"OUYV n}6CPM1f܌  ZukzKA%[kM?%E2T+0p5A<뇫7=AGUL>:9ˋj ʋt{ / `v Y*I$ -ȹ\=pcV +&X݁>mU#A.M'6SgT:SMvcsBwrI1.3pgFȒԻޣ;{OjѤ;i^~8nRO'%K-h&I'e;1SOnmJ AYM>Iv+BMg?78ME"BQAz.o֠oQХ(.?1 TfUXe9.kTe}sfCqÒϨVʽmazL__`C?2-I,`gp@K:DјX vmX-J 螃Q,_#+^JFgrj&A 꿃f@f9.n -3!<_E:TB&rwPˢ@̅22Fj -W i0P@HDC@Pʚ,I]4Tz6ԯNAojG 7uH]\̴6wIKkW\<_̔Z+*u[Xsw[rè97Ζ4āQ %2ARߠy^# Apm]8t'XEFVt9ۖ~= HA5ˉ/Fi'=-ˌ 7@{?x'(G"/{\/s ȩSAޤʺP`PEFƙH=zLh&&MғUKw[BlaBEȜ֓7):"[: yۤ`QRBXp(tε??ӉMjWMƙs;^V\uCOɾeBE;m4,蔲d?B8T6Q_"EDŽQXp߽V-h(̓NB`Uxpbra9md(BFn -aEGjl(HYjzHqޕ yss]%mү_{R $X}&\py<'%T㗴alm\r'c*݇ -x nΦcgnB1Sݡp LN["ɟ=2CNUPIHg~y凊פ|Ŏ_fJ=>K 8#{!O{(?m5$:mݶv.&\ki^9&aa -wk~#ddh[ PS>EXvq =a^n -v؟tbxɞXr8hHJch+V i‘?]Tr5h㫓cIHs\qvby+VIM:1u;R@8dvݠܻ(!s,{ g~ꟻwRo7q{0{ - loE;JEA 2e|#V1SNfsZ<-^ǿjPüun$6yTrbk2M|kXc6ݽގA\f9 WG,UcND -o~ٸ,8)`}m -b/`60 Aq(+TU/G|?A +lU)Wmq{!z2zVQ>HL]DZ(,ALKf~|b|66 JUKk,>YD̄,Sy'[j~[B]i;6g@:aO DϺ/T"C9>zq`xi8N3|A[g_~J܊25H0Aq| Y$-୕Df|`47o5tq\P~=cӘdU \=ͮ:n/qoGFF"|ոo. r$S,.,zYjچ9(٪r6X71:M9t" ѼiRꉱX0 3bi$xsUK_HnN)""|R{9Is$erKhEҏe0yCBQd]HRW:c0L^W`zz>XK=n i/9zoXVh1^sKF2n㼟s{"^c5qH6ᇽ>ݢy6wy+oMSS$w՚^BשJ:\fTWuKk^K,Z#ogZbHTLPvUY?SM!ĵ7~)Ћq_Yޒzkn!d'pH. 1x0V%~Hc!t,czK֐)"78P̅B:TtO31l'lv=7Jh߾TYa`p %"UIfY4*8 W9l:_R}hI\R/72 gHvk)/6tO,P 62̃V;%)q|Tºdlpș MD+pqw!E>3O)ݱ,ErGſ!zY\iV;Mn&`%}δ˩T-ZTz p5h4h3Z'Zti#nAIj3[ &TLA{K&]jO . vC*WyYdQ1 /E[/ybع3\k4Rٳ*/jz}j gf)lFu3GCkPUWM -TP}>(f|r'k˾3D -NPL;߿g hG'轢w ˯.Xw,53,[j^w#HϠ%(coBK?><8e}10_}}/s16o2(8`,5`rm\[ju!uL`\n#a[іA@~ -iL޻ YKD+-,}!&r9om3y֣4)_Y|/ZvU7mX6፛31y+j \22y PW?rNڞ8m84c3~D6G1%zQ@&qyܴocL}Xv;~xib;ak!PC*pJ_;{ajLڵb`)!=)Rۺ'8?R -7"gP7М:UXD _+Қ3Ď]PU,&{O7\ɼx251EW9ZT)g A[Yj1s -},?XCCpZ12(0Qw<>6kF ױ3Te0Zn wNL)67yt -||MK8⽔oiU1-xpQ J5kYÜ@*>:Ӓ TeqA2Ul!6O1Tݺ+{Kf6'j5! mh^㮍M͊0ߝ39׃:s0\+_e#L׳.ŋc>W$.HO43Ϸ@- ',-KP2N:%ϾCm<-F3KXیqBv 8}AN5GOqS{R=٤W-K?S kCRhG_FjӭMz}=lH017^9F=vGMbsmt5Ǧ _ef·$Wp/uP }!k^%Z_4|„±@,{ -d,'PsC*cu9SE|]Fh3'/Bz nh b>]ء[ &˝N|ZM\ĊeyןgA"ׅ$>'e5X -h`wArzNª:|:juSE;ؒ3M-rwt& ,;|h <$"/Ihej|v9?k,T$^;i\IKx/mpFUP,cZCR׆迺 VG/qS OoD ~-~"_҇@ٷ DL|QHpHɔ2U) 5RwM ʽV4Fk`)i KQG`ydx9)b ?܀y$f -o` VI֟EʐUV {IpL*/|`.w$9ŐKZ33XT̙i`#r0Kfk#(‡Q&KEBp'83tWNeLsɐݏbDnkgcW0 -($XJ>cp F_L*>Ts.ڗ~t'yҺ?Y%?疀3~(D*  -c4jDfWB^n`5~>U;eCTC1ځ{T[0_mb^ R4L/K=У@-A|{w<hָ -΍TF 43f:t!n{BTac,;yzL{Lݽ^ƆHld<%<=H}mɖI'%|=ɛ20?3-GK?1@_NL#DHL)BR6@!95p[ _2Gs]QPӟ{M_jWO][$,gǯ!jdͅr/ɪ(6f.lڹD -W٩ :Po kE -4š&yL*\3yuQWJejjɅ0Z??8E{)0qѻ-M.~qvGi@~X REm'ѽUg1"b(wx S?q5o!x狗lQD,-6٫\Efl97Јb/ ,7AY©l_ )4!6Brud\7<!/zΗHs&>YuA2էo7'N\Y$>/XF#BQI=Ϙ'Uė9 Ap=qfu.AOOL T; [_f M`JJ{G3@#@+1Q!ic"T!Sp:EuOE910`V.n@{o@d&UƓgV *j4{HOK˕k0J>!Xjئ{`mYlEБ>E$-;MM`jsw( xl /8gVxVх;K##DJH,Ou:oiҁ}l.,=ڞ0@=2}rswKz1rNdы؎:."h:>3W5Aߧ} 2u+hB--5'!ﳤgq9mI$Rntsgxp*W(CrsDB5z+?VG_C!"ϽnD v6kzi{3quVi֠M^`rx6Eр &v [?xt -su#x(=EKyV=#Hc%bMThh EU]fd>0`988[ xeγ'lI.?:s@--۵9A]7o>mg]zt9D<[%n;5/`S}vUa -s5re)$^pK>=k hV츣$vrVTFj$~>e1p\lj{gWEEVA:os!. 11&FiQ>ODLD -SCBz aV+8 T`E v j&v:@.6AWgr9s:߹:e^ty74tM?I7PQgf}QvRax(F)@Q!4v Ͻq܉a#m5̟iMspY.CqZɐn&w*bV`.=jv0;6?U"C2Gbdr;DVKL;֕!X(%s<ޛt1]C_}b+.ť}[:|M@b#붬Yҕ1/J}TB ;3;t|qf/"y>_)њ`;Nz'/.!;v|bÀLxx̪岽%o @W iG[r^} 'ԟEK@pci.dFA`s6Zo"m%S\1`qUFw,;OWv8jbYzpIDyeHsڥU tv d9L@=\Bej]%v}No=>-I**!4e~ u:FP6 [YK"D\ n%&(£= -hM#M)Kʑ_!Iݘ捪 [q*[j2q:ZBe?v =M ᚴ~'K eH5U@J5+A%j; L Y0RBr͑5'AJ>9c|T~WTzۧ۳^C.Lo@Z9v"artFMd=i1._}j;_Q',cxKx|&ݍAn>kq+˺%SzaCu8y A2n--[0X=M*$v" -0uWtiHV`<>K2/SglFBꗒ 3n[6nQEݕAތm8^K~lrx=/V4ZWV3,k=. -w9Owâqq xN7Z6ßZͨ2IKlkQ~2eG.c Pf0l ܉,7`0ik%뼾*7sl΅atm۶m۶m۶mlǐ#:<)|;{_^kÜ'`+s^M<^h$鱕IjMB1"<›t]3~ 0x;U ]u%ҨLc-j' -wLO-"~+N/r -GVkOSHN3AUOb770wdi698I~eފ}HdGo8ܒxjzq*PX?[[Σ7)ﴲlTrMi-klͅmeW )sUF_jqz8?4-b9yhL2X -j{Rd ( *<ѲJr# ͙ { h&W?ĂLr'AdSm}XjdPw\zil -b9U$O3Ȼ~5gOP -lӐخX+\)yz>=0S͓C Nd3Ģ " ۾ T=mEM0/sA. Ss k*}'x?N8y 6.5.*ɒ٦Q}X7un"~gv?"BEc? B]¨6b#rI=͛: Yӓ:FwjĿ6/ -ϣ)֤4 9=}NpUGǞ4xgCWienQ:CEFMWm0H_Zu[2X\+b yFmÕ}gPNMđvW_6>F'{À@! l4c!ݎ\T\9Z^cB}6bPr< tR!jZCF%x*RHLbј}]D$Ҙvkrs?`(&a 2 #O{UQْ:2 eyi"{7i7}D&I'oڇ|J}ytSY4<58qAMATT`yT1n\?eƫ)VE!WZ7VK->\igy -ɩ@ND{jԳv:&ķ.'n`i]/I{J6Eo-;$cpͺ-6s-inj'zДmS lR{Grr%<=/MHnvպY3ߛ Ubք.~X1խJJ! -xt\ۗRh#/J=\FoѳMxbN}Eԙ: r,ĒuZtoW[V?-Fv/wƷ8;ti:O}RT$NIֹΕeb%vSWljЌ&cu@1s=/gknD\ʼ hDkC\+Z=B4Pgact|rt4PSBLĥY-@4qi4nLJ⾁^ࡀ-L̜܅?ɬW(ڼ'h%U8'Y'y -g%r3!Q_LIB$p8lLwo=[qlSC|#uP^ ,9ו!scT[i_ƞ+µ΍1ޒhIj)8p,(~*7a"3I;Kf@X4((Td -EgaBZ5̀א8MlS䅖%Ez ѭICB -co)7޿49+J)V.9̊@dJĶ f63T]uoUgi k=3a(Gݰrg>=_mV2<\ c\-V̍I99A#)PI,O߸:!O - b}!9<)'đҏD&猏u]u_+Sh}9J5 0|9.эQ/T!r[ZB洉_nNy Za]pE,# D: PA1eTƋڽN,+|8„VV+.En"4&t(LS/:K$ʪ. -%xsx +BuxF#.߿@B.[p: Z;oq7?^X,ɀaW lU/L`mh|[qp6|zP\}~̂$" t r۶eޔ/f֩U9D(IX8H2ɫTF&S tNg;zW2972@CmMA"d nU#~M|}7r&8{ --ۺ 1r"Qc&.zfD3bl'ϖt[AfFuX -`1xɑ0 au3t~ioD,x͘Y?'zl]zq(|T #Ģ蹋I\3&ix -ȍ7Uشee&7v;:|C~w{ϟ נg#-R1BANZzG_e -` 칹3NZ ,V+S>jngd9v`UOPw8JBM,٥χ$1ݛJ&iz_Z61n&S4BbÙ5BG=**A=&(ZEPyvhZzgH8' pq< -' FL,4KT'o Ua)[u|'W2H Ļׅ݈{Jc+>P0G*i9(t5Ij ~NbjJ(e$F)̈Bn{iX bX,h3l2#8b-_9(kQwtZaw9e sZ傀{!ī9lf23߁,ZV(%+ŶBhYs`k}B Cd6p}t)%^ -rS}0"!S}KR2G0sFnzG0En7xW*;.]]rzjx+7;/E.+brH1( ʞֹJ;n]uH9^+R)ϼ5<>|i^~ -bʔ.U`Gm21OLeFB̬; +6qsfvH&>Wap YV43t52ef o앫h+&^(ǚM\Qej_%ER;gfJvw{#+Yv gJ䕂ַ*J5Ev;ˆ<9D{x4jX3CYf!z7EjkּE{yhG~.{yy}ypo`s[NI -oA@[9Ι`/EE+mٛ[}?*@$2:#0ՅmZ*X(g~i5b&(9vߎN -Zy'L4=`p>ˆJ 3eb#R;<(놵^ &+K/SlaqiyB)ҴM>=^6`[jVqbA/\]陃t*j;0хq%/NAsM 8?[cPgj< G49c@J`ppl - څ}?; ԔkrM|'Rb_.. B<=H (fZ qO+K]W:$߳,4. t-SS!pXǕ?jPF7E\ȚޗKh`G9;a8xlXu2-բ-~:yi(gE#tMX4`<BZ -_AYԳk~7st=0r1!Ea٠7ri@'_ wM gy/lȰֳ#u/-xgqKvOg6x!b eN7wJy|1EXBa(\}ygEF Aeڭ9}I?IP&}%}[WxmDM.?x]B,8U(Dyl*iN"4}S ]m}2lh7kn͵%vF=_-syQ조(_Q8hsW}9A}iMPH,bi+Rm@@N^Ir?C~J&iwvyX@W<%ď: <MrK*!l搡Tjh ӣSLt8F5iרV{. i+Iv~%s,PT -g1AqGx ʓȝmCefs%UJb)%9|>[Tc PO(z>XJ JLQDf~3)G!(ڈTcUTuRۀI~3=#bDuc܁!(mU?RФЖP}8eyZL0wƸ4G*s$!>TWU2KL,Cn#w_d C2S H<0 -P,ҒTj KpPWTrqN< e'Y6Q~df|9@4vWy;V")DqWF1jP:g.o~ҏYLf}gMJE|CA:n}ehaMo2x:v RY-Fmy^qk ;PEmǡ$0욽XڐIC{t7ې7\1f򴈻挂 !iޔ - kvU4+T }e $)&t*o8"cj>^Oo.3>A |]\VjlB3/*ʩAatg*Ptmt,ڝUFk{Rqߑ zZ?=qu)1/_(:8;#BWpXc"Œ఍M?QX+#se~L{qr/Lu2rI/z+Nx!ϼ>m:3^vȿٜҕ/z2A)L+D~x1_I 1| ϟP9^A,b!?!=*$nFc*TC2KJ;дs!*ŁG-V ^+alC{][.lh2k[x}7tax -7,e,|Y"Ijn*\8beNxxQ͢Dy~97RfU0\l Jx*Fcez܋LPJj"5 -BY@({jRJGLّ0+ʬojamV|`/m$ƒ"d@^j*| 4ë+ ̈ S`h.9JBӤU9 _C)heRc*d7aYBoFc:)4CM8}uNIGÕxu&kso++mPuO XAZMElQv^)n' N.1jvTTU mBOy '[ :Z7@j5Iݎ'Al+නEXcl־3k -\ -Bu+,‰<ݞ'&{y,^mKF h>ă5OӆF|;lOI";ug obm`~e:& $ - -a!Zb|_ZDu.^ߞ I֋JFǢ1ٮ'5m3%:%%3 -E7Uz*j:7LIk Eڻ1Hf;>|f - ?`o=X4. ~yoCYKuEocȯrKX&c Țس?,t6N2N$ ccEZ̥*Oo#{ɱZSK2/MwA>:}O|(2s{/a&jJ 6~削?fz濥}crMP߹EAFG Ҕ -X;OImNKG-*6Yj!Kj$;tZqꗰN -k{)gyU{ -YF3RBfC"ɔ>HRv?{,}Ox8j|$#Zra,gVUvsO,=(BDIk1>T!a8?@E܉noJQ6Sl^9R3 B%^2|"|lZ"<^95~aIӮ5Q%fwvqJhp35k-D"1:RχL+I7\;hr60.Ƌ~IeΔƇ,of`fIPe԰M"k8J]Qx^9#:bSϾǂmFh1چTLW8DU$QƂ]-ЇʆP>Tl&jzh=7DԾ.i&stlܶ}U$pΝ@*pEy95w ·r&M&_W" ǖ25OV^zUֶךJ,<ˍ.#O"-%`%"^r(Yf%+N<8H |dBp t88\Co*ۋFl7L S{rJ_9!FYSSD+@cZ -eC1PBT 'o.,~T]M+x#rt!=tP]|yB -vcQշe5 SKr;1Y^2]xy ަx9{2QT5A>N*}7K%ZKýt{YZ?fBs"fNw[U,tIvx+8 .q+)vPfth׹x5s"?ʘіaPֽbs%,;V\Pc!C`;庴7ul彥:ZZIx,< M' r+wݭM23fkiz%>&rhf$YU| -&jp-D {!d3QȑFXݿ]*%Pڛ*|`N>hZYO̰V"W0ZcML\w;Go?.WDuF9/a{Z~EF3][LaixHp.dZQ9a5Nʾo9NOT%[FjݽN}@ԍ~M&*IY:CA>` Ka2&/fD',pY-4=p;kʄ 8s.w*U'/1u6F""dCʨڃ p|XB#@4ǧJpِ?':eO WT| E07x=D[۸T m_2nلQI*)FCw:D-]Htt k)6٘DgSԾ#3{ 3}JYAcvf9s%Mt?:K4^@ = -Cۢ[thz{>hjBOA<Wޚ:#*cAG sBÿ9||/HV rCa$eŨ':&֜9c+HAe-*\3AI!r']Ik -~ -2ɷa W9jt߶J!a5'Iof._,HX~U|Fr?SMH$8 6O@\Z"k@zv#=rd#2M~4 S-.+=4&?[w7[;H1%@ۦ OI -a! -wp2-ni8Ѓ կ)d;YX`&>o5bوi&Sˍ`ҮL`^eex˄ob2sSib(wȬDC:EyzjDfڿJSH\+\T$!km]d -B.xhR̟ v/̬IJMIͩZ)3EoFHaK9ԣ {݌cQb,.Kl2cɴl4ez -d[ԉ_$?.>}\(![m!ynՋKO]cu{fANxhmޟ}fsp^u ,jA -垻ng+mOXÏ3-߬brUZEd+ wXټSvgϧ7@(A'[^K|sYfݞl+I!pKq[?hf|&Cs&_tL&}d32Z7} Hl Y8 6~»?զ*2cЬ)s(j2D(.Y{Գi|ROrCސlTQos NeL'VOWX,+Bɖ X]}Y:6Y+OSDօF4hQZ&c(;̛N͉} &zEܱgUV@}h4|:X; -SۘKth`^s8`g$9.S,t%.k(ƖMo``/+\Mb}ՂլL<5~_7|́ rFDiXZyg'lqm䄤N?.njԣ:6Sɻpɒ3D:WB RgE@-Rˣsy"kщH )6YdGNA:c#x#eL ƾ -.@L-k{o5!GmN#[7|4 P!O 2oUn{SkĊgׄ -p\aU? =Qrj(}dAykjWu*U`.#0\ݟ^,7"/J\UL3:T@TOmS@<#ܕFQ#f k?}5{</{ݩ#gMF5@uf4Q7S}3;2rVj8ƍ|r2?'kl᝺^Gv5`_C]y9‰j9_yrle$ԦkӒ??djJi@e^8sb\S$5ZQd- aQL)\j:O12 _@メHX={cvS7t#i "$6tC((.zyc{g⦁e 2xN;B̗RlǸ}ZĿK>2 N6 PL0(dp+t Mpk:OK?A49 IlV`-MWEEzYrG=Hŗ=q$d6G:3)٘zb}]f) z7jnp'SFyʲ~P4r!I7(WpfijA47Ki2KÊuoʺ JbIz"o 8dRM=HQ((8d]4SsGJ8p/.a5bUxhz]VY]ӲRЌF 7-@E[P~q.R eFDCp J2>0-6G[i{S#]fVJa7} h|^l^Is lt9TFmhZ"} Sh쒛+OE,'e/`*QϘWgIʽE%wrW5 ޥ8K%'Ql~u>2Bu[(6O"۹JE̸ם*c9z"c'4}kSrl|7-{p!O*8Eu:xg b$J2渟Jrog' b_QlQfsB ,|KlD{DPlʽ -&H]+]p7Z4rﶢ+0Zu@-#!7Ȁ$ -A<1l^fq`p@5T7V*q}rYGrؓ˻?mj-(M!:gCm5l Hn)ކ̖T(ɨ>'S\ ,e7C)[`5"qBfU&Qw!'l "X*yrѳꎂ%^ px8 E>g$^81=R 3+ sW^ֆKw2ъƴdTuK4t[ׇWp?8xpPcu挷dby7Q (/p'bzɌup"qSmkXqWwbڻ+;e.b)/n%kOdMBZ&37r`X-pJHb#x-(SޕCmT\Lntv28u0>3YM\ujZ}z'BzgSy^1'k3ZlSk&aDOҜM׉ƎJ4d QHcKTJ"O_br5ѱ}ʚ_#cDyg[zVf|oղHw1:Kdh#vJZ|[*2Qa`•r*oVcb09\Qb( -A($$!8vD 5ECV™4؛f/Ӝfg_Bxd -ߚS:+G1)\QԎ9KH$&ř~iแAQ?aT]ADlau$:*ǿA6IcK5rA ?N"Gnr>:%\E0*'} 1 jx0(rk)Ui O!R:KY.2$m{gI3R0[hC(V:w3ճvur%h -ͣ[z%#Zk~uv_oCڐ]W7.i& px1vn_ 336D@t/ -É?vU39߉ ᆐeIfUR,hΝ$N.Y?qt36nme@}`&ך[e3VOӰ=p-A!ƨ+h6Bp\We((+[W+n{3yŘA0\l!?$-IH|Q #Td]2Kz -E]gn39{`+dG O^SD}PG{z xJӬk('!p#]Y=.FpjEbh٨Ye: Nnl2&-ʡfr0j'NAF O95 -m۶]۶m۶wmSڶmrLI֒AT[LM[;/n{z|A ;`'3bmd p:yK:{H)=> JHteڗz̨Ӂ}^@ZF}xvX >ot1ݢ["<ݝ1 0QCrcQ2b nrw( 40Y5QUmEEn)JԨǧr[TSőSid$93 -Ig*mI2nZ!R@w'3ǔam -bJX D Nno -\_ -WH֓`^lGw|7PC,ÿ71ѻK<xa.?86z~7߯#i@ :_Wx͒Umw "y!i}@8nvRRãE;ھV(^"xfZ*4_&A~g`ֳį_R͑&B=9-jWüAԮ=Q{= rI (;h< `Б,'?'tQY?8 dr[l -fS/J4Ǿ;2"0W2u =="KOz\ㄎN`R~>Ɛb!ȩl!{3C<._cedW5]zV#ނDr0CȈ{'فe?k-# -Slq#l2BDE8l#lBEȮnf.26U Gz4f^#]q#9o}PdY3luE,62C:Hn!z?;pd7́.Bil[=7ԕo)lrT.oQ&{9|C4Ke~l1-h@߹^Jb|]6ѺHn6^^ NO+VrTrR$d8SPlq/ʤll% h|XY$]8o^?A +,k5j7)͐ %%BBM^*xKǎ .붷t|H[L0I-Z[xo'#g6=4zF@]T[Z%{En} [֖Us!md9|A> !, -uq3с1Ei.rQ/̊U>׶2]n&^tŴIsSGT>>~hfb?xA蘠^;xl%XӍ$"X8k@ ;,K=~Ed24mLDsRds'mX{OˢO9W`'5B cZ5$ڢzR?p$`^r K. -5XXfmgwXpۀHFRIrk#QިHCNCHǦpma-W&| ;8*~i9ƌm:ˎ/PJ3R8V,^%׮wV $ВpEWw"yl.s']FSLkV X@=Wci@y|Meo$>YVߤjI}VՇ [H-M L Z |XbqHe BSkE e-Z2=`">arRoeUոiRJ(mi -9mE,T*Pdp$sz٦RQ!s+F2D K^uXoj{Ssqf %[-1uΖj;F{ -`cujSnj{URKҝ)[@O=a ig@t葸>St6dG Z -`U_ٰXy赾:yvFJVl۴K3P/>C-֠D`6#|k:]n;=WBE01Df7)lVjp\3!jqADB<;$.>SDQHd8xO7&m1Te=ljG 辿lu\Lt3΋c\=l/xoĥ~׬uѽEL̦?:& -ޟƆ/^ף;-2^/C]Iv$[P hL1VA&~/:7S g}ǰhK ;6A]A\JYW?01a@H5Ud?KJ -yKIb{/ov -d73h?]8q0܏!t)S-nқ_ݣ<) 0d::uAf [gپ&Tׯ8DG1?uX .ӟO@()mg_al",'Ǣn2B[|g -'5&]p%cSu:[gO'JJ nkBC -5&|;hQi?AW>_}t]7;6%UwFٝ- *&XN0xmHP☆kf{鞋&_?n%šjnP,|~8Uݸ]fsxhG3AjlqtuRGuϘttSY+ޒFy7ӑ@KktNÉMgv(`hX/g_/d{hayJ|GVh=QYȊ&kIEaȥS! ?[|簗K:ZJ/:0QwDXmAv+sDOz"?vn%7WDzZ -'u#yb֞;\%MŒj#j& _GsZ܁ŋNЖ)1Qt@w`O{8_~&'`\lD"SK\1Vp#aCA&ށͳŶ!d\65l9Z:&r\ ba638C-NpT -{rJj? .X8_'L`XȋHjogl010Dz3~ -rAF慁]%vZIpG@4˩vfaa&LKkʫ]*m"=YKGf0L-O%}ymq.5tIN4 -sFߏ;{O~mlm O0̘xZ(Շ~s/J[1jSd.jGTH_ -L=$ n=iy4- ԝi,dde y~kiQؔUyCūRs}uM#Qþ[Uahs|T/:.sɰĶ#@[_ˋ3VQ@1W[e$hR  >_wSu=/v \of+}*<5hGB/h[CHaI[wϛv2VB0\Hb{{x\)F-e$ -0yB"NUQ=5D:m=Ėe{I@rFx P(Uܖ賀 I 735jT$EV'1\Z] *^+c#F47C4w&qhA8氝[?0;]~'I`/oDg)&FVH&d?$\a1T]%kEOpfhA o* -t;8 -@_ܕ -`$sSV[PG?*ꁉq 8<ԝ1=Xm*AC,UdDj{ݚ>l0fga.'[fNwf,M|Z9t1, - J4ES%a遉9ڑoTk8/@I7!N-A.ՋoIl*cDa:XBGmПw{wl!n@3xa?EFF-Ɗ= hYZo1*aQ|̎VGkS_6OAHcn,!#z W4񾘃Jm׌TML8`jhI8p̸آڀI(,'H>4aIџh 1[~BWV\ts ʓ!^.%._AīU1{qϢLϺIǀj{O3N˷Z>Źe,Ie)'o2DPٌUj{|e<UKKҷdc; ;"#*Fhb[Avſ -qqg&1BAUDBP Զ9Ŭu--q:2wJo-1Ԕ+Fd(N 9."`*^Nz Hgthdi:+W8$&mPu"t:idޢKҶd#X Ϩ<3Ɣ镀?فګٷRv X1i^zs5*gMrwqI|RoЛRE3X쎼BlIrǚŇV o97"wY^&2Q<>Ah& !W& HkQ0} WXޢޗ9Cxe5ݵ6I*9;g$U' W!jplhPxK 3ge>ä^1.'u̬9$+б죎Z'D$_<>mbIsYC^wЇ JwHSY)GUnN#}\'ƸmヮEŗSD^ɘnMZ*Ϻ7f$-$3o.>W9A^7 Vb?}q];-6m 2z7t> _FLPO~\ ,xӂ*s\-d":!46Vw~j^ @j7~1В$ -8Ku^&Ѳ|DC~2-E_>a ?L u%k9Q 6&-n1mĠy٠Sa5- ?,Ĕ_NEyi̬9qVekTCpʠ^h_y [G.o3r<)h,|/5ֹ=QW^MABA,+̮['M9YʱZaĘ-'JK?"+BNc^ aWO%喷2o <9a:Q!mv@oqu(FbOt]y&6CkA!073Uvcz +`ߒYm2PsE=y\T"x8+ lIRs #GqXzt!zOfD.ڏ3DXëze2oKkKaN=,aOce SNg6!xJq5tf \*w5@;;2E%ָxG"7YȆ87Mɍ3Vt(J* ljt+_2">[F:!TKzZZ6"s!li -sua_?geg ֽ *i ^k?>vq_l(@q5jo>[1IԶE.]8H0Ep[h2xPʛ.N }]Ņ\E躰߷E4ZQ`_rXzN1 uF:w_tR,u LrM`d=#Dk !O#vhqu^xb#&pC7Vgz~۝ d[t -2qW}%R3}18|jF/ 6Zn^m-J"=`tJ[=>~*/#F6J$G4[m>WImJYj\‘UK^5&v|y]#ePNԜP=*D9f(+/d5?{wkQF4$xp7㞀nk -r@Q-c,IGZŖ)~IOӟXB)iXY -@ Il]bN0C̥醣Fכ^Z%Ō"E?fQ4 x Hp4lwk-.XĨ0θ^Ϋ4^RPT 3ռzL!?c+&iSNGB,”p4LdmHYjD)R6&׈7w0E  ֦Y^'5r!֧[o(ޞlhvcT Cǧ{i)5 &f4u=L%Ӓ!Ԡt|ѥ]<)zMn6{:P(ʗx{O `HM2iʶ~IWҴZхh :cLb%]iICCy îL\5u>Af*#or?*Z[бSTg狤UZD -A:*&s+ V8?'/t=AN@SABuuŽc%.P!9E3CZOTDA:)ElY><*,Ep. .68@(pX>0Y5CM6`qi,;qHɗеxl Iآ¨Mɽ*כ㏪Ҹ̑ZbSd4"5*W8?Net,E'u̓%,]P0Hn௖87-ͻ(}-ejhG)b{dVZ`'w$. sV(f!=T/EqA&S]IS7IףPй0TRv_9(zikC#S4-(PvSJq1/Iv}Ι;ƩK [M!XE]uȜQ9B/ZZa9>hoئ#Y sjOQY(ݥrnx1 Dq/AREQAC Gq7-\XţS;\8zMj1 RSOhH޸(^ڗ܍JE|$Tc<@Q-8)PZb2@)taW kFl 7 :0Wd/h]Oc5$u˙vyc;Fe9j8+;:~|eSX8VrEj\p ׻וoSG`geKKռ&:pdXoL?k~]=N2[bw]kZU%_sw.X{?j92=:](&|V4 .VvE$*Ȏ -BMYgi&t9 i܋fl߯N=Wx ߍ08tĄ3oאwfZ)n;<?? em<~|šfy'左Q[Cf!uyY`pe~-VQ[%=@)]Zh _/r9qg|C5I~װȽv9pi5ELPlO;hᓻU6C[l[޿Wk_i:N^41(kTjnҔYȇi/ՕCHAڪqI' -vY+|=UA5~…겳hXYlW$k9Yaɛc"#P *id uJȿ"?f5J o3o5\e%Jֱ)J)ao|c1@?1AiKpk/z9% CRPY87M{siq&ǡA{A,73eP0f)njXM]UL ^7N#"0kǦ9e:Iv*l\޹3. 8N0"MFKc4$"?ЯD0+Ua]@-T׃/aCQn{X@(4DS eB tOT5l&#PC6`Mj;E! N |o&lJ:Mf( a(q5:?~ CGp]iD##]D0W!ݶ)+MWO*QtT#,B< CY=tr*sk$5#nBe%D|ዋT^RW:e K-Ӊ'+ܸ|||#ÃtgvlZ1umAe㒪Tگ:!lc]仈)GEɡtBa[bdg!@‹JbBk8ZӺKU|)b 5e?rqlE<|ufT_YA"(:A+6Cj/)?ЈSq1E -2g6M%g&ڂ޽~H(v>O/J6qB0 `FYltywoYFbѦ9N<JLRZIXDbT+Jqwpk{ِZvdI^X0Z,X)>=¤߮?oUQUlJO'.MqiU,+ԉ-xA*ooA3O\Nį <#9}|Vg +d>03.if[nCoU]D({Հ(!ɋ-y/3zZV?|Mib?vȕ5Rj1N"Gј8ubgHd S* `PYw!߹7u#ڎT`G 23SꁘLF3Җg_@_=# -%y2aƓp odz*P -=;qw`OX*LR N{~޲&>ZIYt -ɴ:Wg H+SFL`+$,ڨ/ɬV\PK+h*5z$O[d3lBx_x]VhN`CQF}*hJF1r6mT!7& *4sm#+ befT艶e JhS=,!iq$ݴ|&Kk)(#[N9c0S =X~C(7x@\ koc>_sGmS:WRqh[EacTNv~~ L$N3ixs-(b3Ar_/,]>#Uu,ؽp؉pTJƤ6F&cCsjBR"I?`i#&Dȧ?~+{;Ip{Q-QX{`qц@"Ƒss_.xx -8r Ku;FGŨ^ۍSp(DQ,^fD+M#⨠[ELD }dW0hz?|Y˓6sћ?Wq,'(;,jG@KLشyv\5<ǤW\Q?'ބy3y~uc|FQ6-'Σ$ -mcrf1Y{ |# -=M'l}qֺZ>W|1MVe}vpq ԺIf-)GeeWLk:=$IOX.LȰxg%: ְgl~$̎ SH˚]@'EBvGgW:l+iMmGȂ?O){؅,i@f [S(- n9K ET Lp+c9uiPlY ~^C{ei:E]zu]Paі%iRۈrO6;!?8vA0%VpA١DVsG}H JUgL ,S>hTV9aY:* -u+Xݶ kBā˥Q-!_jRN4K7Tr io#YU1ʞi [#̫%^E-R:=F*Z{w `ʒ$K:Y,_| .Rt+BT"Cop(,Oli㠖:>oҩs&Um 瑹qn:آ8X~0˧yɫH '͉(vFح`S Wo(۰Dn٪ɷjiOHO>b@) #\d=сڤ˯r:"DbO" I. 43 OGk@W?9]jQZ`lGz# vJT;R3J֬n {BDspIeqoc>=MH8uIv+"o~9˻-s‰H>y}/b01=mTu$ Ulq*jA.OJ^ Y zU[Aup+RJ5$f87Pt"/kCh H0#W6ۋ0*#YEoL$5RJIqI0zm=]M mH쇫-k1 4ֹZ8o 6W/o #(-K Y/QA{+>[oF#+@@A24?JfO/8&w5EQ2'S.OЍy;qnfT7l<>?1vtHnLN|iĔS ;2b@ۏJVkiM}?J, -<= w}'VꯋQ*SGyΞɣ8pgRl!Oג-i-|/Io3G!ES_P7l>qv -35ec%b n;eMk$DJ3-Aإ#\ng$@DDrۭ\Ej[ЎZO1Jqr]hqm6TftNN^@%4" Q8BGBs{NDc h)xK(@ל|G(Gvu 2ԃ+&ȥznK0^S$Œ%SDAZ9 [}R$/8d`E/L. 9$v )P4 n)܇rm(6P޲E`)߼fGHLN0,x4^&CVa#ۦ@B?5B!0l{][sYIjdY)1cHWv #|D$j#+c"x k.I൐wsAoz ޲@*a4g&T-~0!4Veٔq!Yx*x;݃@h& n̒|tnԕe7>Jyn -GCC%ӁNADIsZ?ؚQ*tjT^J=oX%\эH%R.PP=}ޗh H(29E `ޱ=\DXFQfXB!ǡx^PI@C -JL")'a!6ыo#anGbzt3 ~{ލDZY bu؏:'s׳jŕ-%fhmU6%ӛqח Ʉn(ՅoE -;u/v$ ;4;e<i{/Ѹ.$0/|1>i4EƘU,}mY*.oل11^Dwtjѻ_*y(72~﫤@:ʀ07$<0As;gN 0LnNt-ts²-A9/z()SEYgϠpZZʖMqS$r#OUV?"h|}gCG/(R%B0Zg L`nb)~ak\Wsr(*Z :,&T^#I- :j*HQҚjSIg,r#v6wErt*(wX?iUWr=:vEnbE`?c+^[ܟDN'dkgIg=a$AjfdigA].JNes_rO#Ss{k7 82 .V,+mS]]PHX՘1:2Km&S莱ؘgܱep -Za`:d'& ]ǧ z i,i=G{J$'I_!Lz-qCvNlre -UʐW?3wۋU(jhJ@>Igi9XtPAdʾ -,"a܌GX֮`6mA'l ` ,3if?G.HSq1Y͎]xpLr] -􇫸IE3>Ѵ^.鷮vwfU]0jw& M%ڡ J5u.qҝuߞ1:Fٽ#$%ke!0g CZцdu;6cifCotvlqȦ4wTa_h+juk jUiAYm< -UPUX=|*@y掞n8?HQ<Vg ңVK S -pN, -64W:IB_↉74>2=q@h2P>6mtzݏ4bLs |yN%`iuf&seGfUvԧz^fEఢfp#ـ9]A U_5z(.<_yH }s>ջJ{0 5'IL/XjiT,;ԯ0 - K -D/S:۴j4Vg{ߊl4hHU+9|<-Lt~,2f89Xt$g?} -S3qFVd.1亏"ʹKră[>J=k1²9# Op#a cIn39-.dtZs}2;'- \hDezl8P z_aβw6G? 6n|p^~[ 2)[wΎf $8FjMo'w An'ㅢ6oSY`uXdK߮Jv_/Ț1)&b3ON 3II NE|2@lƅw}3NwKcPv>.RLI?hꛖ_E7 +hq.셶~dvBalyŷr*j xzUL‚\le(>ag$m17:џLQ~آ9c*ٳ)Ll˩{ǰ8"la^k8V˴8 H}OũO-fXd%r$b6gRF[VqB1bc9p96?QHLA Y|騄҈ -'+ W!*('fknjM/ߌV܆',C=\ص>:,Y#\3XPI)֌ڂEznrT~%zw<тeUt4$Ȕ]ن;GM kxD1`"]C3;Av{Z1r.15ܗPu ^ ̧]F@D%SzǞt=P&8XQNj Gi*^[*0֋2)jz^8'TƈɎho-4:([]jNN1E`l=E9R#ޱ}R 1.mؤ*˺et}T擒Fw+;XAAu/B<ړ)B{IvLRY<ިW.Sˊh_ǎo~r ܾa{ JӦ!멟5QW+*ADL#Luu5 TRG6DŽvTH,|\,]MKI_~(츄$i?QoY;P2JӧuFQC ȭRzvynܐž:ɸ1(-i.pIA UdiN>Zk/ -Wm1` Ĉ7/hFw[*Lyo21BWpV F ]fSیIbER*dq9Κ|Sq_:VnWX@6D"|.}vaFn>-fWגqZL9cJG_ <>&R3rs7 $[1~ gr˵&!{R:^a t3f[Q[O w-qRu"&Lܞ]{^" | -ɑKHwht-bpc|i,,u+ϙ ,-oGtUQߓSCm+ lr'{%t(\% sVnMw5<F2rZ+3jEYzg;ۦЧK{F6_\PtTD]go~ - 4Ym~\bL3X}UTcB?6| TQI$$4(噓5? fpKxB̕Peiaض٣ -%SFDwծa Xm$r}X]ͪd[a )=f!KZyXV]l+ 9v%mbqYM[FlaF~3WA+E $a—*d@HC%S=`RtDdeÅ$#lBk QVV9:]h[QЬP -WZ m|' oGjӚ\*g1옹wpu%-(CWN|G2 `; Bwhzw8@vAG倔xc6D]1EU ;}Е=Q߳܌i|O3:&lt;BLj'[K;!JHy`(Y4S:>vٰ~C=!$'w, '3BMa@ (.G%_}dG"պ=a>vh %mtym0LY|-'Vl>tq(UhImln}ACň(sp^aע৹t| DA1jI=\p Νԝs] 48(ɸdո^1ƄS1-$ϻ1N!l,D5U/A!<%Z/ 7D1`Tj>wG_'ȅ 4%$"+cv -XĶѨ%:r'ڻľt "8]Ir"ɶ9L?wކoNczXU('~+Nx+J{1j= ;Bc?FĞT4Ee>mV؀E{IB3.s6Δh/fWf27E/Yb'On\M7z?Ίꐣ>4BF11)6t^m<ŸWUSP;vP@BiXDLoTP 8.gC\j׭V(/O۞\`73sB#? dlj߰>Gp5΁_4OcJ$U a=*@#/ E|GcpA Ϟ\N.k@^L8"Yn߽8ҵ/@Fxy'ЬhF:h3׿/S -@=PQC9Ǥ *ic=!l:E 2w |?q -_H4.:\Ǡ+y(9s\PQ{'&,>k+Q&!W|檷>Ak._˃emyKtfM8zD'~Խ$k9e,MPYm ۋ{vAHZjգـ -+o)2 S"kd3M\joߔւDTv̩ZI~W0EKEfI*Bͧ UFE%j2-usx{!R_ݯ^1dX"9‹֝]cw1wܪ}N3G›?Oœ~ŀhv }FљMnKN.kUav<"w_Wf4<#"h(z8bA ҏ`5`|q[7\{JFnx%Pe2#[T/64 u2z0TQ,HtvEt0z -cʫa}H-6N(6cנHƿf3 ;+4d"7=3(ٵd7U,~fZ+'S^zf\{Ŭ/db6D[F<_}_SMyX][Ygخ:Z''I! EbwMj@;H@'hm.6yk)-f\E2R LI;S5'Z! K~L㞙cj/ؿgL(ؕ•E& %+ݢՋyf - id!Yj%\tO'HI2P;Vr}1$^z{@YΆSp| -6ϗP 0֠KH&ma>M'hJ1-T@hQkJP{($JYt/>anyF$>ޙR{CRo#?.bѥC< TT94*iK1Q?j;Yi4K nxxG"=)ze+5-ӓh;c\*憰kF˵ëlTَ fx;-<AHrˣʒgǪNjBU0y}ܰx=&n$춱;PGnl?uzǍm29miY\x/)s~GlEk6Ⱥx[j叧KɃ "qgM -tb<&m01 *qN!5PNQ!L+7ɣRX7E^^_ 6drR~}PN FlsYP~DZh#n:"RU'*`aL\U3wJغK8q ->x@-2~G7JM" 0 OW|0mJ7_dl*zk XizPMaF鎡jG R0mi``4vZz7fK_3Y޿(爒ۑO G 1jj4'JO"yE$?#%௷r[_?  -&$ F[8|UؘۥT}tNrdH!vP$9̦84ZViu#4&t^-ir[ȱ<)tI@ -Vpf;ѳ;|lbl`F&UE -ZEɗB4oo6Z­VY\ ϐt%ف o@<ؠ@Q_ߖHBVysPI1 -uGoB_j.!RۧSs,%$kxl$Ud"?'lz61E<{)?ޥ aa2d\ |Mb -|(/D[4Qn>Oh8Q9J&Ki8N.}dr3Jd1эM(go8{'k7l\O\? -.!$GhڸjI|H [N" '(uiiB:⧯ ;xzWZ~(nW?P|Rj5T.g A|Tg^`zcpALZ` t|! -nx?yZ=$|U!l_s#Qu?=%qm_.jnD!J=-Ca:9P|g`:8h@oF2Hnlo_5dl*8U[{Kj7q^l $B X`^z!%Y2Ti(Z[D2& ( 7&52]ax2xy;kY(m '{DCHQur6ٽ"gAZV%" &B++jҡbcAa+L@.a5ʔw{^=J{$-evbѯ@dU{#s{05u&PƉ2=)b%ZAqC!=\W9١*+187ɛ Q ȱhEՂbXODDS+:!dm-b882z2@u.+"&'j{eC^~m4@,iـ̽0Y/y}ָ -Ո[H_y.Ui AQВi'gZo^А㬝J;ߨWꢤĢhߜ!|`pnj˩,<^40}x/BߖŸG6*Ri#y>W;mKtџ6@) Q H2*iyEɩ]gE0Kxs0ƘhW|wC-w<vمxTnJRuVX/3v֘N_'WIB7DJ`,,88jl$FUNMd֫HJMd6 KCKuѻM*1TL@d ~64iukY"M=j"ڣ⾀(^݌+uȯ tp2ˀq -d."#Kct1j`K.IAc@J+¢l[1Pf j}[i*4IR2F.wލ騔T#@e'pc5s׫?3V/Th4s㑄?  b^ľOÂ=@Sq/?"%ͼ6wv ZF":gukd!NHQ D*y͙3QmAAS^ˆ( Pe0ro 7le`7D U"Ȕd>-T>aST@%VK,2Ў9/tu KWRZO## 8^8P\+x }<6p8oؤS,p]VrV-K'Z`oяZrgЈ}B~Lԭ!1\P7vU> z #A)Bᢛ|tgVdk6vg -Yqvsgt,leɧCUD-%o BqLKL+ڷO?aNuʹt`0"xNx"G TNEI9(Hm۶m۶m۶m۶mm=yɼR9'+BKn FjO73bˌY:RK sQ.{ȩ^$Zls3}`sP5|-Jj@DA'Jh6=W{+{دo%gH5t`vKܸ- Z>74:QhtXoJNjyRʌY~&Z#+DAN| yr 4T( e zBv꙰ ;uL SBH8K%]^alge h4KМSPΘ%JfnoZ&>veRߛ?|95$ȧ -w.NP>f.V|q' -rq4.>e9g`$GPsj^|Z-)t"2&n9j_u@uI )'IlJ[4ɐI:65غ\&*_(l75%恁U'@.Cdׁ LN)0QRnH/M$ZcTDWw@LC.^U +وWNL><[,$sRx3Ɲx"E ?E~Bi >m{z\h`siJXJ;LTo2>#'&U'Y 1xS~XG{e7Mmu՜>#vVfs~C7me &Oȇ,Ȼ*P>ZlT1-&jvsb ƾd ]mܧX1('KڕK.dhbr. XTBb8?]j ۊ3#мZfX[ NMJ'&FPiHړSkK5* -4Ϣz< 4m\aK5({݂P1ͥY&Mo:x7~CxQJ8IZ -}P6sLERDg*g]J?δWOB8tH?fV'qAz̙@!Ӱ๙ua!S J>T=hZ6=25|iX_tE {n<\F@8l*v k~e)Fv>!+;mBv;{^+[7 yQ@1\R -ߪWsR(#Btu 'H~X˻(1/} RCDY I"#^~ÇΪw~Τv!B2d=' WS:ݬ3#M@~tn ZД -~aR=!L|d6~n3EmY{"Bt2vԞUltJ| ځH>0gzYؔja vRxvFAbxt B0\Vc1 -9,Ǥx~ZR^iv+-VFEc6r4'ͤL`67WNj="~ !eR|Dd0M2Q:}LpI׌6[xenѼQu~" ͥĀ @$RwTIx[yМz{FK+1#3[q A<%C'0>n\cl:am94̏zp(m77 -4cxpIm:pX ,)KH,tDҺ|(cmg {:Q$yB,TH@q-ZDulC_Czt1 qdk֐S\0MbcpR3gu_v3 q0Z^گAt_>_QOg k>1΅=:Ti;|6DՕC]M|MV%ʶG'T]Peɘ.=wBň؝'z.U2wr!}O@<'PziT'/b|LϚk6 B羕|Q YzXH'Gmeي렾ȁz<Owr&Na!;J$34`kbI:)If,眢OZe5"ڡL<8dXۍ[C-cYJ伨45)#C[ GlgN%I49hqݚe^3Op@ D"`&"ʌWi J =[W`j邑+ogk:](uKse@ۊbT&i5BQ~(zF9,s A8Dy7$fC0ќ/fZV8ïʋFy|K]v1GC2[hF&M -fn ZqcZ19 \e<l><\sfD]1tgO0&܅|>(5ig BE?>lv9Ls!Uv~)x_z1jڤ<> :xՙB6䬜vW_?ż`蛵Pǜ%~zt ocĝnNL!?ud'Kp -2B`_2~T _kB-0?t|ң9FVm~;w]I7z#t)z ˦Vc6Sb6izIFq¢xm$Q+PYjj3#-CдSvD:%C(;cu6KAYLw%٪2+<Sm@|i؛,?2 '\T~2'0cXeCV'O)3w}\&A܇ZDDv,U ?EFMݓI.b{diг1&SwkW८ -ɤ\EvFxO|:RW۵z_(vL>U GCRR7Bix0|犜Lht&2 L lnn&bRpdFD9, -3.wOy/#ά |LM/^B3Ŕ-bH.zVܘx{V A(+S2FzHMƭ&Аs o!"GQmc;'0ĉs@ zdcF&.5_'g|\FECŪVg8`ˣȧ8xWm`V@34"|絈VZBͨphۘ'xi ֥2EnB`PƩ -AY)5`+]֯AŲͲ݋4Ɉ$F>D8\xTyO4bc(V_cRCK\+EyxgJ`j#I++h9^GlUk1 8nNNҀ`ڱ @Gf`ؓ&vRLV-O*`qd5Vw20I@hs OcJV2W G)рNۏBN*T*b@Qz* VL;UA agy KHqn+z\mYǨ~ϧv;J $I22`wR]2D0ҳܝGTP# AKߣhL9EL=P;lXh9{)\UR=]3_2)}γ{9 x_t Xh-q;=,l;9wzY܋_bհ}(0D2Evy{CEФI"CP= q(@^LocjzkSDRxZg*Mhi hOtJ* $,Fm4>j -?IPޤ?ƪ}"Pp9''SqVT~rnt2~L6ڢ}0|Tx=RtiK̙o .754!U2m!E)rgzMO1hD6Dَ46aTUBY Kz X+8< @{i -e(&G_,L`!fnUc7I-_򟞋(.}憎2 TjSLڝ%'kow M_T_0e $ZF躿( YY[PS2ɴ^/?W%L3`H=3)&q jwxjQ^ -wo)oxBkq%Ү{[8b'Jj %n :^* A}uF&/˖ %&|hWZ%QZg\ Pd7* '{@ܛt*3e -LW JArmnݖNatJT<@bVn'88̸^M!JKfx* -cE%<w~ȅqa|&X({2YX]gG m z ԃ|0Sb\Ke$4K{]VRQ208{ӇuWZB?T.Qn%LI -#aˀ@ڃ5)T W5baD'+>|(IdDsw0:/!Tch.3X.O|+rs(2 -P,Ӣ9~6^5'KOZQb#8~&^c9a<$MJ<Jutb$UGK3);G;IA -)]ѹP=:9:W0>\r>;Jϧ@7%'uE㩆P[d]}[W8!@+BMNCGEr2 "ոen0 \YdIsb&uYk5zq'a%jn2E2VgZLJ2װkyV:&y.\#kCHX$!0=$8غjZ\ ?]5sio/(^FߓS[ٵL/~M+zKϱHl@Lq2oCwpA*4oLԐ&)-)]>Qt YT~PHqè:wp]Eg-NԒ u@:b&HΫeN6WY"]L]kuu؝FYVA$i1T9~pvAzX>fIQ"o c=?>{S?l]gb, l.zG3NFRURACAj Z;3&ޖ4h$//6RZb3j/cn4}?W -c0tCXZ&Ah>3 {hl2 Ք )FlC#gY&sJwm <]L,r\~RiRZ[ hZȜAF"f&|k\ڑ):L|ni+zU3-'{0k6v/6ΛZ*aQfH36w(%L)l@~bx\p2#UXVNsR HUʴ0 I<^}_gFy+W `8|=T98;lkz IjDCmAnKqhtC@}CӔ+ђ߆8f`y~bwnBjlL-Ȣ;(x>ۈ -)yhIlb!aYp!v?b7nazbk2-ct`D2L7H*V|v}t~337M#-EYBV6ORZv8<)E\7~:O͊5" D Yy!IԲKl -/Z榼ߍnfDKEk& 2Kx -G~0-ڠ[t2 ->+O+km9y {)  -yY~%Ē5oUP@\o[Am=|`{ٓTQƟ@r* -9޺+2.2q1qR/\w0I(mY!R#~̆LLt57]^aW%]xSdu)PPZ%u{H`X~:Í&RV;*gY|l0J -T(*Y3cG,Nʥhġ[B=ΏiCFUb?`G>چ)i} -9(*_phЖe*hoow$$N6ao'{%[Xܿx 8Y~ZE<ٚ=5#n8)>т 9+u{&|1XP,7b -ƖC%yƸC3ĚZ,!:spGY\KD*'UC}F7mv}?KJ"r ^<VW߰CY OguYC-S,!"'muucjB.v2\->R3Vńɒ\4nælgi˚_ 3G9[ڝI;ѿJhb1q6jQ~GB6{OR4˩YcN:ZڳtCz=G8jB LՐ(D(Ps) S"fv?@[BBs8Cǔhy>NFCwɊS&gn_@ДzH*v"?r.h1; 2 -B95IB+Z`9s#f;`lldp%2҂<$) ]![BY vE20k9|85ceKnL+T @utk :4C}1Ilj@"j&4 q3PDTqS},.LnqLni| ?6!W~/MHW|YI1v*Ҝ|yr2M _^l# ]ߣfKwqԅL뽵,}a#6c̈ަ=Z4^!q - }4]AeSpoID_ U eSO mKùx/ z9:A/$e"! 71ŭ_;) s&)$WLʓ&%oKhq.$r2Zʸ.>[Bڭaeb׶ć lmf.2fpVm(7ۣQMh!=GФ!sg$@CAlv^TCvMB3 b R$`gZRw`|@08Z@@m@*8:ynE?UBB^R2 %(xGw[*W;a 5xPKKf̧0k~18>M`p>G'*kN`r(y3"XO TДwI)(= 2kOy uC|~͑~s^_}"fHT+Yg cKd{OٓN冬;ҎoxWj'nzVz+{F$݆u Oxd%EBYj$Me~ ӭSOP@f.H`eq[X >-{13묌Xme#wjQM`љlʇUrQX#Q*j{ pW@[@C)Opq>*#:(ZRC Fg`;~2oPJPXS(rvHky7Tړݮ9ݴ Mb_d遇or]8h籄ҽhş1n! \K}XcN嗷 -z"!̥Og:+ ~r,=x$[sy(܈*О}(!]mH+4V6#--3)BF.1.| N>FA`ͥS|KT- -gD;Fv>eg*M=$$}0_Wt!bwWH'7DY4skLDTo8 T}0}Tsqˋ~/4c0S SM2'#H1WVqN!Gށ?e ¦' -Èi)堤 ǥ:#w$z:ْ>0THZSB zѻ,31@K[ -R}{I@|zf~k$v;|Z -uf# (;2Dۚ `̏DggD o6Nm⟝T<Ƌ-]vg׊`ES^RX˹kоGce7M<@J(E9KLz: _QA5SRz)6Sy&.*+R<“_Hb2@xoXɘCTlʨOKb~/țLAEFû,*@q@X-Qgݓ!?oWg/4hy(!e焯YjE.t1"p"P*~$o2s"fލ{nGOͿ^G}Ha?Hc{ʅ[`xa 1lOXZ,7n0Dv-^2[So*{Jw{n5 dz7biZM5L|xyy`s  UҘ2ޠsnLٟiz:NX,FYd{dFxnڜTOcsB+UN..4_j2rVrRGЖf"BﵖY_PԳMEj;E,ۖa"w)RӴ&ۘYu_8@ݦA̝G3*6c-3:yG}Ss&72Yc7̺rУz{8dHfG*Fu-1Uz -8O(j֫xIn5H:`;5-2>OcϹ6(z)<[R-~B]!gEtİ1qlV4<%5(&26*.a#Jl~#>flɕըxuDVQ` |aΤiX.Էή@wO;N(3 no$7eպ - RB#/}go~dqwXTi(e.-h1;ؾ`'=[ or"ſ* 5oD;Q;K>%r;c * ψ*_n@"VNi%^=b!QP[FH35w<~%)l_s4bzQ`u;rNJ@[P- =]!;λ<)#H~)wi0 A3[,g8,K13ڝ-&'fcr+h/--ĩi6<ĸ[܄WERyi4]R"Y 0D--<4nVT ܶ'Y"fFK>[@+gK_]Օf:+k%6$+^>8RJ C{`x{`@n6> pZ)5;,˙٭ -3WJ5c}.3<^7kȏ_otK/1*0o$t@ P)+u LdsE(^6+Iy1/trDK]{ٟnSflǣ($-XjÑz1Rs#|qy޹'r]hLZj0ֳG+koc1yEB wU&xA/W23]CVNp\rK^pɄ(ɵSs2C[^Ƿz~"9r7&_83{KA3\87֤v9̚_-R3 ~tJesC\Y<q>2*f_H5XC~ 55+=>˓K kp4M;zQ4l٩łn'w]; oHgex)wZjQ x<䉚ղ2|Xf鍤ڦc8 -D39'0Y.FWQE.u8X$ziD"M.D2LII6p1zFтzDTrŮѿ}XZb3M>T aymL1"G?/٩hX$/3 w˒[3Q78@ K}K?Í{3EPBƃ"naZh0Sp7YNxk,sGM3ρ{j4}jVAV'0H qo`en?.Fw> -endobj -1559 0 obj -<< -/Length1 2170 -/Length2 105555 -/Length3 0 -/Length 106088 -/Filter /FlateDecode ->> -stream -xڌeT]۲3qwwww'ĂKp]C-;\쬽{[TUVU}AA bfosa`ad;Z*[ՌT6NVfv'@#_a)[i8 - -1'  dP2uXXxYy٘Z GsX 4+9 >D,y 1 - ;31{[[3 +c_e<2:c3]jBkfog 01)ڻ| V $]mlm?+_ծO`- Znc+S;  ߿uK+v@gg'.Wk`ё\=>Tˠdeeb2]<z ??Qo.vGXXy8> 37rp=>?(h/ Q_'Iq7I$M\&?`C&?`C&?E}hCZЇ?EE}hQCZTЇ?E}hCZ4Ї?E}h7|hC:?忭,}ctoLJǞ6OZqژ[d?vjlo ۇ#gcl,an]#O_?c` Gć!F?,c G|,G1v10v>r:~rm38ظ:c㟙E@/fhZ2Ǭxl'G??q|rZY+p|$q:,-.NcG?cO׿xgS{?C?]=#_ -5uuo㏷G@)Ҽ)_uzVK-v/q^V+5iHS3 $u*p8*.)F-w@WHewh͈.=_@NC qn r&B1%ނ~&IAKKf@pq !s_C4ME>E C 92xgۭ=ӶD4!?)I=4*lĊb}k<.=zGp+O>a{~6Fotoc~sR=[OHkDdiɯ ֝ -Dy9S;"j9@hƳmI;mLLNQru߃>EVfu[PA_xG@S3 .)ME%7h%5Jd^?: iRbV?..v6aw7h3%‚JK6ーE:5"~BATT~%|A\e#z-Ϟ<ë_MV2Ds~6niAyȸo4 Bsؓ޽ Jۄ4z۴]#E̥58}fR(D wkU -*P!QׯIT܂(޸"%'h,xKQ'uU8% *J5Pr1Q9Rlzߛ,Ji$0ͮ -Rn)*O ƧK8? -`?[h4꟠3)[OJ|aܮgD91]> 0b 2?+n5$oēÍ\Xẋ2-Ehĥ)!j gͽL΋ z|bu1,+-IuӒS}9}?`L)?oHZ6` N -b> ܓ -Q'HqkҒM8<먐e;?'l9hC7٫=T9Z&c8S}1mvf)j ~'O]1)F.Ni RR#ݏ$R; bUh0\}ƒWZUK{ZdQId3`OBȇe]ߌ YDZ,>*?*sܴ6', K!Qou4TݝRGNNv& eVβڱ|圔QeGfE6*+̮@ΆG'Bj mv)tX8B6^2rq8 t;o«Xh]u# M.Khɫ㗰Ć5P 2`O꿾||:n.s_Yaya*=*J67==c7ɸ7ش (5oPwSC!H/RsO:6[Tvޙof2a*z8& >I']lI#g&ty>S$3L;v=bH#eXXf -dΘ9wh$ifنl |zPғB㤗ďN ?!Sd?_cc4Eu`3gF^zojupq%~e$(PދkqP0Dlr1OLRk $t-ÛwregwA^GMAo/<޸ʷ佼]F5rˬoQ:N!L'CD/kf~k1T]<*2L@->gA~g8tQk[=#XBtVwOxcrT>F  -5IYd68/Ř"+ ,Ix5P_'{v-c*e33W=-̸~x=`"ǢfQH;i20 0Z>f9)v+%l8DZNbEJX57#LC Wꆍ~G%]xxS| -1JROu1={ܿuVO;<Еl=.ҿF޳"g4pl\l}Ӂ]I!GDpPXgx "At2V TQ$#4eU񕲅Сߥ1g^U@x4NL@Mᔎtub1 ]|K lnD|~[aׂN<.49lk*. -/$mI׆]ǯ_7=h^ }> !Z#o %D`79Qdd%Mn[9McgKA'jC_)%xru#oTO4VZT@BW9&4Ȉ#wF !JdgygRܜCcVoO'Ub%`PyEsx]jZvڪCiR:=eP䌚510 -Ϋ+|l}xܢ 6n>ҁPYu _6@b]s5hpkOqokR |o_Df&蹙N' ,8z4@%Ƹ.e/Ӈr8\ q*,Z?#Iҡ3)^?OLϴ&vDrUV|Br[IFķ}5<{u*zƝ׋|Yq A͇\E)A}8:$S[Ğ/rXLSwNZ5,]fԘtp՟EΈ"Zԟ{O5AYB+zQbgԵG  bLIo~H/ -RI/uYg߭jLw Le1O0 ~ յU?L'ԇٍGk0u -ܿV!˝EԚhJ@B -K^-͕qw=v`]l5jyJ>rZ*2IPoNZĔV|ɚQo %E)`ys֟fzqρ -S|Ys!oQe"O˹b*'.B+Dh ֖936kԝKHQw.u: 0$h6:X)BUR&R =g#oe9]+Q+G>ŃdOa6Yu2ޤ1u`8ɐvfi#[P3f_ h)|ϻu;^PW[ -M_BLV -uٌB$ -erM7AWA7O}eT)cZ. -7Qe+"PP 07wLa&$?8!e}6ا2J͗k:hiU6gAiDdK47˽\ȯI!S`傴-5gTkL=疮Ö!Myhs/;SGQWd7Pvv#׺#.ɨ5&K 2r}<(9vI֛}9";c$!dkv>)C?_JC8.CPSH6&r[3Lж۫!jϋm(Dz5C\XE94CEauHh* kFG~t!xNn~\Giai@9&êp/6FH8_OX$nKŝ6wBM".VO_g|Y:Nӭ01nҹkD.6SujތƑq]ICw20 ,  őJ\y8UUO5>#-xs] PҌr{C/nZYf^ؑ~2A 2]nFo"(HkVuGdD .v8Sm,VK*t(.fN!*^{.ZNf5cp09]#f-g:wؙ.HUԘ1Atx5ˊtIj8 ]"C,%0Z8Y̅iDiN%aBP=vzp7b=>MFﱆ83rb㜿F_gbuD|\iu|)X'BFIUL`y%//ff *h -CiJHj L~Tk̬{ -o]=LF@Mtf&{h3Uf`_9&B I-rx>{,?{ї*=kO%PܨD&Q7d.D-ZnXt8('uo`@bԺg<|^[}$;J t}A1P.RGm=9׍smrH-,=Jm{?8l}Skbvx/ի=Y?F#9S[Q$c\VMD[mL)qO>D$cEW}¨Վݜ>'\RqzBIXPEsf0;,òuΒ{LَcL8> ńu˄<$,yC5s=Hia\pB!&VW&r,>E(ABljLm7W58/ե%T޶sFu9K7\^[j Hȟ1/GBHl@y!Esܘru\ye;G{`8BN5B؟s<9cBcg,m1_zUw`Z1#IӞ}TBaz"~'..Ge%Lì{,ł'e~%&VگL򝰗;qynx؈G>"$!?"#w5RcAvG oz>OL{_%˘|J}7$L[em&6X@*>X: /QNX? |؎ؗt- -PAH0N$e kxp+( [xa(nUn=p2YCwiXkNClA\R?@kܶDj\y:nUY%5wOgϺ+' 8{=lS0 $"|G WSWg򵕘/mgQ1-\#t9-Խ˚yd9syzW'G=D[+8qT;FUt`(9N(gni(~״v˒jGj=kq-u1@˰ -MTyM&. --_R*ՃbyB º=»h[VIXKke-̘]xZW!.=/7HnYlL⽗y*< -U09Y)JQ9_a#Bm5!48L\scw78cSnuAm7M,[sjH.5>AUo,sҁ]&;=tXd)qEOj8Ņ%WK=>?zI,qxxx_dD)qi9=^m01xeJdËtӐ/뛥3qʟq+aO,K2pR翼={WԂ8!~&-6hKt ?t'*16Q;Z -Wȗ9'ÚnRFLsO$ bo!(QOpQHNHS&Ke*)).,:rL\x4p&dF-D{/k'DaEC‹J͕cb&N opXNpqNf0 sD~|͑hʸ0{6uN2?v7|뙏F߷W ^;YXq`#@2cЫ[oZ+F -{=h UMC 287xDfK̪E+ VzbϧNi9Zzeh)1={L"V9nOFdZ&xK ٨ugp1(ּ(r)xCH}{n1a嚍 B2,_hX??qrk3[{;N #a{]| Sx xB(\}Jĥ•\W *f۱ȅaCm+E#B"-t:֥a ښ ~؊>3W\y1d} j~X_6o\^]y#%@t\'-0ȟIH`T|Y:"3N7!D=h¨!VNL!zeBAdO5h;0yòw$˲b2$_L!=HW#Wl= -#̈O J0(*+?B8#c7 7-B%U$䞍fbh;ͩd^ߣWW6*ҒRUV-zUZ>#Hl7|(G\`{xENSOm#jm|e{E`,*׳pFN"F]o'h[Z'e 4շwOI[OEf3u{q 0-E-"KuZHkzH HLxLX#qB4iVDrW&C 9uQSmAV1nV+5ݩsPQ1 dAXYpt׶]_D;oTD" -[oե |[=CA($ -6ѵJ>Vs5tDsmp}wNF5=Jz5 q7sY%X2nLY6.)zj3vr:M:=&KL{RPHB}zRB$hk*";%TwcS]e1%M6}0ɼȠfUPIV~XZ-˿)O82r\PԨ1iֈ j DwF -kӄ-|;- sd -x Vvu_HN 학N>Z^"C(yD:֥ -)|2ŒJ5>+DS8A1v71pPۖ;5V zQ -DSHĚs:4Q"kx2 u *z!6{V,q{¿mb>Mut ,hΉw N);X1-1ˆUr1P ѲRi tِ9|2\骬/>kA?!>UgM143Z8 ޤ30E߅[|:%o6?\Ҭ=##{0re#_ ֈzگg~Q='%A:p'YEPW+j igWa0r^:6"ukܩLeb0ߙysL ŝu> fKt볳Ts˩" Hm>ёj/)01^ -?S$DQR?g913=goM 41%&+,3[fRbƘ=F~8eq|P

UE>j_{P7ڬ7WeQm{H>)==<)sc({?\<鏬lWnG/8,6HVbrO!"%+ᵙxaSii(y 1kb5?Yf;q^VX4d/^C 󣮾 ^= -UIX\cAq%&VXX% БMkS8gkokt -cx﨟Sβ!i -roܚ|{4b*OM׫:'bbKoLƮ6uqYx\ҝ&S\!7蟦c*ڷQl&Vbt#bEA UG?:mkkSa82 O0w.M~L7xo'I2v@"}% `l%<};\~2oGC w ~ǽF[}XTqSGLM95܏6|\k[We*P -P^؃LV6MٙS0ԓ2C`Sѕ7crp)P^)!^̊Bla㷷]A:ǾRP g>RFJ䘔۲97ހ0AlHqEݒG I.Q#rΧ; (F -Z+o .+OF= O0&Bb*䷔A3# `Jvvve -yUT7? zb~G Gg[!xv#-DP,$2a|f/I#67Vѝ%{HbC_4r?lN80߰w uvG.ߖ.ό-,qu ׀~BnSg4r/럹ĆÐ)_ͼ+>m'5N|hЙFn+aYeLUFS3$l8"MrϑQ`5" -GC)O43eD#;U{zTzF80F"I/YE#Zs; O NY:Xe~7s;DƂ q$*jJ>tf zhS&cad+Jbe%׭< Q!xcm؛سlmMAC!Dwu1`ny-f7`-VSHdD! Uu\t fc1q!* )eI6}ƪRk -Rtd{WmnkjkMdF]E~q9@}V -SocMo v/ʹh\z[{%-"\֏F,>-s S`$' V9[F4/)vmKaZv9Mv .r߉`ȫ1n /cᖩ@oX׸IĔ"&) -I)pl|>3@BԬv+!/(}Z5c'vo5MU+ٛ*ϯsÑvPp -?;A:y;j'r!Gqڡ6EE/s{Y*>Ohcۍ-&#]:s&,TJ?ߢ ƫ~@# - s;*j4NJ^?V@/K1@˄m6(*aNc -`mRW B,!Eٜ]A'_yj7,\/>2Jj{4lR9һj/[\%ca)nkM`%p-?&M$lT!'-`<:RWX٭snZj/@tJ_["nbt]H!br6*;w$tv>X6qmȯ2f^% -%*o !@$#MqR t9&|ҹ2 -` o !l Bxc -li prHsnoCz"zQX6BO]5oOK:UT9`6ST[b`yMILfHYtYE$W\ |(OO68Q ZY꘥,H@khl芎21]4qog{{cHچ,nA_~vI#)+kũEg *8J}C9wcmd,JJfd&rzrΘ/Z-lQ\wgv Y4/U ]B|>J0֚C@~csx7O.e˵b@RݲVN.=\z{L2Og'gڝa*Zӹw -ܻfGeZlb'jģߟ=nzӿ@JھOaĦVUBH˚ldrcz+ǷEo##0xRFBz5nPA~خbk>Lh' m3…L^Zp,Q>2|j5)M&_EL;]0, -)v}݋^ٗ1>3z8jMAQ(?Z)ZTHğI7Φa/ u$Ɲr btes''d/@>VBDRJzy!'T8꾵Ci -չUZ ު i#^量h~AZu]G,R!dFpk9|_EhPHn/o*"-w4̫^{N"H(g -7nYFDXJzVD+tf@4oi"~&9Hsl =7"u 1@3A,W`sN2ZʕY0>4ɾJPV(ΚHH(t̼a"ଫvO-,v'd9X{9ݙBe"ҵ[5惰c)ZFcI췫Q=b+T<_n$%{bxuFg.b +MC{hP\R\rjDsZU*5y?*7ؾmh-hp1^tIy8ÖH+}jwP.toŬڗ ^^^1nM{.@׽<'8ދit]HՃky[(q:6,o -NeyF'yLa:фFu"Be[{M= eLKujTL7\`=H#NuUy񄔍̻ܯqm(AM=Ý"fh:vGHxc詤,`K!@̪m1À$˵4G g*47eILB8We~Ϙ75 @m۶m۶m۶m۶m}?!]IC{ ˆ_NRC aOySZȵa3x=G"H8r_z󯎲j`NhPqz96!Tl,+*l~aQxs|-K1x"~$u/k 4`XQ@J7b^=:>)|A̢xP%3NY^1*]G!Ҹm>?Hi OA6+jճv#y1J^uAqqXʬz( x&?2HH ZdF\^HBY_/20[v"cLh;g՟UdkVpJ {tGEdGגWl.Ǭ9ڧ'rKK;_Q52zB}V1p-FR? : 6ٖĐ<t0b$RemR2 )'/bAOib/Iϒ7NmTX[k=3幏I`Y#.u'\b,'2J(G}; R22JML߶r!>.8a#u|9=ȺCuxo${j 9<|Cc&ovF<^xzYUb$q$5eED)z-; -;^s&CĭtW6,s{YWjw.j N0.ƽ  -g\=*UF-!YWU>4^b9sI9*`ϧ{JwP4 e˛`^qW5ĿOTo4m%偽c~@9x qv`2VZ36J@z8] Ń8,qWkPbChʅF$RVqAjƅv {yhq8?%;}#zFSXa%Aӿ8h2x4q!ʆ\p;[+|^I-stn̔m:@0$ -έlllFM.+V6R.ſ"8SbTWN9J( W42DAi[Sf&Ë~S)oex (YUEhŮL4nI2;XN-~dT_R98(8 $w!PrRqC2g7J'EB(irwҝz= Em:]+ Q^% 4e.}\MK /!̝'pl:l}' -j#rPMQ [Y2YWGY$hoӟyQX+tSk_V>X#%Q5N0!,X82(: 2NR,7DTx6P80=Ĥnģ%R*JJWMqE5&AT} p1J!#˧]8BQR`& -XFX rmɿ0:dHs]Gr.EKc;FrPvwhj:;#{Ǐu&,`1KoyKlp:=g]P"qyg - -ނ_ -Bցs{^,[n|47(^\V7OD%iy@ތ wT*?"JmG7v$kޖC71ha~&qXSSR7jf%Te*k_p\@.Ɣ_^_`7eIyLzNb╛;\?2&74kX&#z?WTĒR%*DZ;k3N+! 1]h@];gn,oUॲ8Zo> -UT -a}bO3yϯ  -FM?O..:M #; - j8lվß^瑆hY/o*}Z6ǐ~р:Z n_d -חƴQzE-Y87;ϹǮcTAf%޺x+V|+sRJDŽ7F>6Bq̸>OB,qTE|dPvWxR :(nl=E:. έ u&hco7D/v7 t2x3JMnbng0Όƨp'5sy:'G.h5D̓h28qaX^&ٮ  ovں&ǒYztlzwfI}Qc䜥ú8>SӨR:Ys7~YR$I v8koÃQ ,(nk$UC5vO:˩B{ bW߽D ٹ*nQ&.4ݿ18xrnrFE bhMasot#_v=Et6qp6;}pLHlNHig7n8S -C)P0y_K+".HGzV]VaiYȂhhZ>{AY+dҞ7CL UrlОmX914qDŽLBڗOօ "LvOXФ%K~Qj qsDj4`A&t[kr29Irêɯ9;6"YO)#p[/*Pq-%P,f#޿σ<80aKv+x -ӑzUK1Bk|Bz#mQ9t=6X%&+< 8CJN]C;f%/t%f5Tn$w@KS~< }ecwR`z]_pa9#64[Fs\0]!P,WmͭyFhjMJl+3,d|BǬ'ѓRӫ:$ -{>~~Rl)MJwArck@h -\<3/7N<$*rUC++jg| ౿QlskQ9)D,K9_RZ9wMLWYMz؝$yPsm82eWpm<굓% 7xr gļ_C ܈+'Do8+Q -*:ۤp,rvR@n*ӛs%XG}M$0U 4a/@t_G[v#uc7o^C/Ȫ\ +\iX{q vPc0㓱*Qs|9?&8shUJJA*kH[KXĊ5Kf@_ ;*}qkfWT9quӜZ6ҁK#uv}d+Mi#ذb(emLhy&hgUMs;4#|(<^ȐWO`[M=HBQo'9}?8knI\,-5oT3g"j(\63` -RtP=e-KwC-F3_`쨥'((l#%)!0dŃ7V䀴˲ -. -N1h KXP0g"G۰>3"h,r R}D-h#8sߏES`8Q[QlٛEL#]CXŠM-$.#_syKhǏBfDYg=I#LR7->WHb6&Әo>.HIۯ#J]nD#\ihΡK|Gf׾//t1Տs8 byH! I?,$u TVҫר}ǶKpJTታ V -@'YK[i*PdHJ;#.'=&BC>P;*­yEmFpײ5hqzHV[$}7eS%▽BZy;sRB9(t?[nLvW>_W$;E&%%9q-Af^ ٙ?>tJ߶ƔjʿkYڃKdU䎶r0qdY$T*0ehSߢElIY>!tUWa?}Z W|HO'2S p2q @9{5K}tOsI9"ff<ȽQo>g?L!?,H"<7z~rs:vUwY`tp*O9l[! -xK/om(!ɣR?̘HZ;]cx#@0H/GDŽk8y~V-.;4Nڲa3s3¼;AlYJ q | XsmO_m}Gvva3GJLDό A\-#*4yxqSL Bf.rbSz0^80JX;6 q)P3v YTd$ke |ͣ#\ \Aza4>0a̔~9ƭ 30}DC\=@ԪXx,u]8j'Nrw^=R֛͌&ɑUmuۿ(F;Kyc(_9whw%t},%Ր5)C9U0poM#Gvݲ:gW(a3a_X6浥}z͈zsf#S[(B+[]RFtG*)C\ØxZq×C01|]]yGQMʛ/Mpю;ds73Jl'&t#% |y*ˈVs/'KPiGwG@$x=.;)/We8_`Ey٦#)>刔>Z'U,V%#!bCZp^[BB;B<8x=JZe'/GITmP=߇`sy`&68g>f]r}UwU1 l -Ư[5j -ƸqhFbix5L"suWQ7Ђ5s4wW dKd\`<9s L%z/8ч+v 6*0dHɫ^QRz'T|U&:cƑu]gdOYmS%u-7. VK)xm\B`+ 1z\r1U{ -b5@'E'Ƶ_[(㕒yDazEt;BMe-bRdLSsZa?yl9Ng~H5]uqF*ij,7 usέ[C/jƩŹ!7(#6|++d]D:d vNKx$h=`D؇|-1Jpe|+Y{|4a0o]:xSP\NNpin*8qM{+iKwYhx$jdt i,|>VOR+~vùt1@X)chi.clbpr -c5>΁}`7CRaBT oo:7撯|)ww: 陈͂޳/gc It*RdØў<,' OF( ecy۞/udg9CNd6f"ո3A޴؞2f"yܝ; -UVQBր[`UV⳽Ok y@gͣ5pV$B-od"GO{1ˆN[h4rucO'z]|( 0u,k !"֧SRĒP +o ?kw(oWe[)HψfÞ`%cSO!@7Z)=wUQ;ԺwKQW໚ [E)Td+!3j F]k4Ϲƃ{j܍Ok-Dup^2 Mlk[fHC/M;twt.+ƭC8)qݫT_tI7b>∎NxQq Uo$EHV&!ϑ"kiuN4gIWS[5w3TC!&K^ cV8cߏ癳 -rͫMw0 ->$ qNJ&s\=*X7+z\NDT'^S-U+jNyZs]4=g ,=cxߚrugfY}F"-G\@өBaniuL6A!JvEmQ6Q?VQE?P ĜӠYh*m-|TE╈|rĒH؄ۋx8^Z 8u{UN*ўm1xϗ3$㙾5+q?Nlj͏ eEMrZI{g'UyyFSx&8a"kz! ʝא -}-ew (3FfHȗ67Ny|Y;_w C ܒŜǶ.lĒ׉'#AhXTj%/ڸ[tXzKm p2O?< -Wc+{:cBM\59XhNAhJUbbk&>q, Kwy,a*^0 - -;2h#N3'YfOdί 'j0h9=*pT7FTkЭ4]lWd'Le$ R*&%U@S6rm8]OZ /;?xLωʦTӅPAFCq!p46 @xXcLBl_w/Jh0ب]>: Sj {ie~  kya m0M\ff?:3*0ѓ}ďwm 3[`a^[7OA^r* ]%vyDȈFOd"+q[K%j5ewbvy^mQ#n)IF< [Fg\"׋"/ҞU)8NhijKN yX&5UI邿^eNZ/2+TAxqz;EXqi`\O$>2k.%`%%TT1[,ЬȍrvԤUBkA9CBVG mK|86(ɰ>Oo9 셙1;Lw3txdno97_('u wC >{>.'v٩.8P}o%TGD%!pM9[ׅں.7N|o"$P(E%/Ih7/iKШh6WͨZ&h(Vq"IP+{WȘ2$jbi}6gңe8~+MF MYgh%k9f=b((*lJP)s};Wrcfc;Vq4I=հZ _t$k*DOf}ڥE3BȪOop$SZ3I_Zl BaaCH{,aNB:؋R1:MaGZx;v+=B6y7cÈERg -VՃF1=fzy=y}d_1u+_ia zIg-qV'sG:H^gW*LuH*B<wE~Cg<N=]Vsp`SoߟE?!kbi_ְk븤ӣ{c Iv F\6 a]D[鴿BK~yuM@Lr -EtNZ~^Ә  A[RtI F*8Rb17>3 J8ޘOB8 a@,Nؙ):iQYq%8s;Hr" fYBg9q>d -9$v?3 C}7ϸ5iK7IZ1tLLP=d@0DGMwfyBHaTm/qZt~4ݮ(@7ѯ/]I*`مBY0<U$xIe5+}D"#~ ȚObZ&IZ܋Q>cQT*N楨"3 -Bj6@"X\.s͸Wf3nIfTrJ kL-Ӳ7G"Oݦ͹Jr#e_֧P:$dv~[,yޥu$Tk|ySZA~iܤTעb&KE)6@2H1A+f0.2Aƈטo7Ĕ6lj_HkxLռNа%KTAQ:.xm{W -66`3K[i iٯbٕZg=x)gKxff,`iO\#JBHXNvMP-\>>;^R%ȱ-[bp2VM3KE?$&tf}04[W*h\l zo=b%=ȏH(hGbiVA_|FٕPnR6GV+HE ~0UĊWW4JF߻4*>jWK _(Ībqh$D-np ]DZ| -ϴ7Li KL};ur-Lne=5sKٚ֐y@n?:ast^t_[ɘyx`Ɔ1 .rPbk>JNE?/Hubo-(BX' -C c;KT'O*2#c'q?"B]EO*Œ9<R4TXtd4 =n9쒗mX>h*:2d+cr;-:sRԶ9r:E" -%o]eCJ^0Y,JWR6@vD" %"oPqG>rC]rgK:NGy\16R**=R 0D[L_B+miE9:A2M7y=% ߠg4 -8BJQekV*D{}d}X@q y'B -DY.0;]\$ԭ̐2kT^a0b5^ɰB.j --6^`ƸS7LV)i_`?FfȚP ާ 4ôx" J b+ ܊K2ɖ R v]{)Q*ٟB}=V(X)K/H}DҦr~/|&tDwPx&es -n6,f K챊eLZj7;=iR=P:ܻ+,tˌ - ɍ=Ťu6SUSh {y?pC638 O׵>lU$7|J *Ea-)cΝ ' ңMܫp]JX%!U /ۏ>^*jŘmᩥRO++ƒu] >I{5?$c)=_|?u_?P8Jϔ _VkS,ՉKСmLv D1RDF.FCC\zMmؘi GZ}+1yklP2f+TyY:4Ĺۥ[CK86I ,.4!s+Wx&>L۪̥NBډqI%U!@qј$j'TXyg˯lȰ՚wvz%[裄?6-x&&YQ-#vP}.琐ۻ~>[ -;1dܜt/V肱9!=HgkWpҥxb2v!ȅQe%d,EfVfUh~ -s@`TboxF(Ob󔅗VI9BF~T6~G}:GVF ݔ`Bt%$n%YȾ!AEo[~Ie&0%!@EţO7cZQ@殝٫$:DROEYÈa*W z:G:fGA-$k$jYnhL]_\I?ڦ.NئQќ$4ri!a|Fzз]je!ƹSk"D<"(H,bqBZk.T0V*p7ZDYw-wc/ :?r;7AKYҐbz3\ ŪV]@A:GvσW DϒՍ^+XLZLC gz ?Ҳe9e8Dtv<3]5&]] H'8C~`\a Φ2U]|WmVHp/g!)eKtQgia^3N1 6 a?lUq-y/U@re#f}YJ;amD1^1}S~ pT -Ut֜-SճFJ &\HT4x'LK&*dsH5✴\{cUGl̻F+Y9jkoo{sB5kN]غ)ɤy%%~*<{I3ρ圉%j`g4 =sn5զ'^p=8Iw6tB -ۮj)o *G3Fv)C\}9ʵӲ_c|ԤbӹEb- s-f zjpB[rH8yhrUeN_yd>Ӯ w?x"Z;ɿi)@ תieI&Wc6p [f?@F+vf; Kb5oMY8Ѥ96WJ:Ķ'm۶m۶m۶$۶qo~}E㩮F^1x/8kV0gGoV"lrQKd&0S1Nm/ ^dH  -q"Qsd),Nj9m<-Q4?[ʍ0+2j݉- :ϤV<d7A?:NX_,iDDZO#١4∯<7aL@4=\5>4/= d(>(vY=xk,h%ɷQes))N QV8wXIh@^lk>k;אIi~5.`zDmVvy έm$^-|xt`Q.1EPNB"r5{]IX\̿T_i}7 -qB)ԍ%(pw0Un> -FB\ % Oh,7 ¶9Tx"f?OÁJ;βM+/r(Jѥj.ElDHGPTS+j]3";MY}ǍF0E~ӹA`wK"~1K(wHzj^ϊS0 (<7-Ly^$uNhUgG= F*$n9 -5VFx `HZpkP?x44rZHdlJY񼥦ULc~?zU P@b |'Ji9=c=oGunosF˼qrb\S|kےd( -m4[x -6`QXbִR`ʽq/4v<שa7S6'?q -@.!Əd5/KDd\E@)ТP'{A `e,Rz hMВHwffAo!b1.rfJ=<4wk4 -84DK(fU4ˈT"?ZacC~KRTj;V)AXLË?h,`=Deݔ%9sZLNV.c@LƌfԒ@^Dc4T޳!ޞrݲN)w)z* [jW1JUEǁd'hHпgG41[SP6K}w/cyNOtWoIE?Dƕ8j|b7DsU U(GV*qFR}ar*Bٽ?2&%c!ؓA_F\9fʛG$[SkZq2Q(x9 wMu҇F0]UG+ 1fcdD r[yQʗ0'p:!,|{u',7 B_m~[Ay9\R{KxGI"v|&U@|"Hy佹|a -DL3[ '}zv Հs,8r?50, XP|+t"!){ùVL"ۙR6v8gIv﷌;|n\ODDa E&%C\@F>\^({;JN8N4F Efmɢ0oV|W5$HMAf߸YœDԾKlNGh)5/Q1K_:uULil-=T[;I-eG&F7îk*c~gI6EVgcͭ+2_c vgj5*[ђ,80? RrH;Lj]}^Qk'0-']陙Ј}EIK ޒ,ʩȞ!ܘ> @ϭn~ف@ -a];>L\8Rx'cT%aqݼ҃@v#q\gqbwsLp;+v}@OK/5PE_k=NSPMlnwp cN^5L\L*@9& o)ߪnS銠kR0V~D@11Me֑V*ΰ.y#XzZ~uyQ/VvuJ4IgTQԑHLA+(=Z"O 10iK;[sl$9{ȼ%|ͬe߽̿f#bmuT=6rIg?,o؞46sFq(&1rdf_?zyE+5}jH8,q%s:nZR58b p~.2:ʥUdQ)G$SZ>,\D_K5@lXp O%5C~E#}!l[ mI|ЇʆP>]+|<kwR -2vhxm8y8+.)ksV'~[C.C{ﮢ -M95{1K_^ɻ|)$Z7=G!UTw߆o5b Ԅ%'.ĵ2.1n|v>>T]D_f0GԨ:\1VnI=;/ˣ.^]v q{8wvK{ y-_'l[SغE0MSiUT'hJH416EEj)gRGzF\i2bj@C498RAx|نO"SknǾp2H=$J[O}vszp YEhEdBOǐ;j}ԍ lbk -f04 ȃ!205>ƊfxYvw̫uGwj74ZfXQP`]q\t0נ物B|ڊO`Tى]e})=m#(>ݻXW2$2q9s\ul~;Et%ez)#V\$ ߳E1:Onw#,ۯX!4-SioD9/q+^㌖BMR(O=O(QV=JrAq~%erwEQAym>v2"1*Bh( W.t]N23m.%$-mF:3o'&j)sVTQΛN40=j|;hT<:dV 3+g.8\"f&WB6EzXXVmjK뎰-V5rґ;m :`+p3W.q{- ү)GWBvx;wj݋3i@DU~N;)T[v} -cwm~P_Xhf75C7cmN׭]J/# EmjhA%N2dm0YQsΐ?W.xC+ un}7 HDpHg^eMYuiI{կ-_S T?Mk`unrLwŧ`ϩN>pDùx.62-)vQ!E3Bo=}rR+\oejzUI4$mt)u2y'(uCYY`.F?4tyxwmw)l:NN}u2+ckfS"pyGWf gώB*Gfp͖6B}[KRx`{ǏM8.&vUW!PrO* T(բ)H(${FsZǃ',?!li%^Wږ[05͹[+R4IZXRgE|1[l2Ƭ侓șD,fr鐓 [q=uTw)E7㶯UXv E)i{ݘ#O+maˢSH4%6!׳;}kL2 aVxɆEr\sZ u""-ZҭrijGfz/-4 *C(-cRrYom)TgpSuҝo -mCeOi<X.㰾gyVu|aCBZ{\ Yɝ0kP*D& -)F任W(쨼XcAU2uBr :DMtS;5[ܦl·9ӃWU)c%f׻XMq_E,8i}FUd5qPd %q(<PclK#)K 8umbef@d(^nُ^4x6oKpP6ԭks6\%qN0\cͧks /p擼WLŻs~ﱁk?뒪"\@wcxp7GۜU -=s'2%M*u<*$lt9^[OnBU;G/Q2 Ʈ{/wG:s&C)lc1s~KMR5Oo -Y;,ps^)O^\t㾂 } F8ח85[`@|5kr(j[Rg~,TI}NHKj/]dGXiw64v@ݧ[6 4n( #JV*Lrv>b2*mfB_eC#p$_~E&P'`=k:,>H/j#UH>JEpˍ[,6c34/%ZGK}tp=БA\.E5!S5]V9+LƗ"!쭷Q[3xC\!~? J,ĻWAJǐګfPV/CIH_mH.6",7}xyp_-}Sm^t^C>eFK -5G~^_ ɀ[Rq}]a _'1H/&V2V`{ݺ[i-%L x0s9ϰi<=cdK!v|kǣ79UIy˩B-05̄?pc#>7y%rE>ɇ6g*njg8|=AZ -m\@`rÊ&Ot#Q-@J{k+` )I;NQ@bTy[וJ5yՈdt\\ %l99~>Ȃ>#9ZV_ C#Ur̄^t-2Eܡ#"yE%?hbĖ+X Ii WuSke,fVvІZcGԂp`05ujZ+o,zr:sa'oLK4./v#M@7oI -h~ c2D$ 31+~V@1KHA*h2"NRVȞǿDV5R.$yzSyeKx~;w=QsuAŞhН m9 -:Ʈ櫨`UI3߱~ YSM}ϾˑFUϟ%LUC$CebO6B i$>)*I3C@t>F?.Tsę1 .cRoaNvaZhO:pok_@c l ]v̶&z*urQ˃p`iBxDp[n;sFpN1n2.fhVk X -^(gYlԀ0-62/Slu9MMs&Cq8K,A&ޣw\XK$Qx>\Sjo6eƃ&lz,@jݴ7/]nx{Zmu#L(ۣ3LFژY ɐ6^# ; E=x;4{zQ){˶5Je%>Џ#!WIL g,0VODAj(b(PeZ8,Q))Ǒ~%t/^PHK#vsbq,({<[ZhU(cyqg꼱i -n*p#M]aV4 -WG>b~ш&{$D͆,P\#v-Q4 #6WR~ -߉mzՅvF/OYV]1{Ӽ&YԆ #H6_|^95~Ã#6<)#@yQUq&;Tmev$(KZ<.9=1=A}vjlK*#hLΚ?y*+ /N}9@$O /uqSclNۘ;&DN1i{LW14~:ݭL:BZ5O&Z如5:HnM>O}UV/?U? _1Ddž^3ps%7^xU{kY lȤpnXz@<@}iwP:l#̕v1]V;N9: cq%dU oUy}AKhg?ȳK8¿B[K q_=q8V `R(BO+0_T@lvđߗg>Ew%6[BK*NMfvÌj#dſ2T5\&B'1rjs,  R-1?\si4Ϙ4mZ+8{q6BנQ0bSsİr73=}꞊} ۧBn>.Z:]Ԉ}iQx֍'^-x){RwK1dl)p;_^Q Hie~ztXW O:F- y]{yS='۠S+%g{Ǘ4pC2bͲgxp=(TDg&\*O6¤{-:/Aa9+ju_NK0.Hv;]=֑C9ㅟ 9WW /6ASD Y=Ks\O%:PX(9wN5@`p2"{Zp p~M.6ܟ/>{?@vwȷӔ}E?Sq @,ѨJC~b٥b% -aQv]|Wq 7>&$V)$!Z\n -޼\=Jڬ)Òz6It́%#%Sfkh;ٻ:̛M.j]1f44d#}o V!^cU`b3wˑҎ]n;zqpwc&^YB+% 2Tt e9y_~|uNأQe  믏5< yʍ<r,k؎IN+.Ǩq -W! Oir3{ئAe6ƥ.! ,Z3l+jD|;x̓M5X0J{?"x@":8"]i4T2d=3 ,Cػ* HEtIԝky02RmU ͎u*BP3<0ȝmSSRꥌ;![,PP bSf,S.lo\G{B"v3=x䆗dlX-Ru$BxGoOL⒙wS6T^i;JOA ͕UكB 'Vu˃Zh*]]{UC6B0c_PH l"H#\A@xbɛ%7܎5i.+1"WvAsۡ*]#6ߡYZ%H9 vˏe뻋h͹uA3oM 4گ6_Y(Q1ґʻ4}̗!x9)h6xpG 'R*Uo#m\aN-[,$c۶m۶m۶m[ضm۶l&OtTted >I~df -¹ecVhLhgB gH/ZRJV" Trz -I6^\-ֱ5wJdvQpQNXS~>>Rքw9/i"ͨ;JsPrܶ"C ,L]_RI&{cv6~i/Oe/B7p)Ys82٨ilv_&Gtn!C jtQmA1ʐv/}/?tAQZ弸RծÖ=Ǻ#9q`6G'ЉM -^v] W4VkQV)C.BXXc y}2^OqT?٪gTfk*n1>5 -%PP?no_Sۗ} -ix@]2< In9GԺR6 #EYwO="lt7&tfV<&T~FQ4;*+2A`,7A*빡jP2 -$+>gB헹bH ϶ $?'`+yDB /p7[,MVEʽԄ`{ rS W+ak*Vo.>RɺEW;{8Ƴ& VVR[qgGGMU/O@[>JBieP#$>$W?V˟1/O>`( 8шRBH<-/CPh )cF3}Ġ3}[8+RK13}|g$ `6\]k;].FTJu?GG0QҮ ֥96|O˓u ӱMMFʸ@Oǀ~6#!I'TZ5gZ>vV-vE|R(ڐb0d)q jA4!D')^Ry\(B9-;TVej9hg,hz3TNoo M'|(.YVY.[ &|?J$R n ?` X}x(L [o^"( Q$̞Cv;"w0[w7z^@dv-t_[6R&b>3MM7#xU]}Fc7Ħ֦%%})X-1q:kl"VC[_b"e}/" ߦS6{S5yRMd^EEy} F b/PƏi2m']_{B5@Y/oMe;|Rl2/9ݓ ?~%S}T~}2 طy4ob/c<^^]l ` 9XQoX*(o_Fx gTR>k.T.52^##O|iQc<*R C'& Bjb& ᢫KzfA'7Z -? qOFb?(#郸ijs#%&=5tkA&Y@nN I0ޭ>έfoR('5d$*+DV*E٣:U6AYK!K?Nel7}Llj%'Ŷ90e\?K_Q_<,Eެ#EU֘WS$3h`5&$I5GsS>eG2(Md2{*C\g={ -XbNt%K,pER+ߒIeyJe#D\f2:t=K,p㢊+8`TcfAX4Yߓ/CgFH)??J" 8%ez1/ڻj(]"o? V?&Ʈ<k-ƔǕDj zwBe9<VMj⹕YvΊF8d)q*d覌To kՉ(vC?EXϢWy -VȒP'}M#W(L+3 Қ`dWUymw- jKRw=^ {Q$Zӓ 9҆F&zLBdy+Gɞ^؃_QG]%3Ƭ3*NWi]G5.S?|yq] -,^pεF -֊k#dr;z1ݬh-; ӻukr+&GeE$3h!mqmBUN׹>w %TDaf -Ssgy*r|!0IUqM8>8@ O?ˎSQ^TlWe]d(+\͹qS?{j=RfK\VUh \ > H_(gJƇJ - AB}`O}meSѦ _2<K0ΜSLݨΡow |j塈O"<#uv&mR>ؘߠWG-!36aT6S[VSs4}Wz2ʚnRJj:71[ըc%Rs•BfAB.l~Y(ݔTZ=JA5Y$O#onI=2YD̏ICT Vaן‡G@IsBޚpl#6WVy3bG$ݹq}qp˲\=U+vQS;q~OڬF@vlOD)VX(XY>V)?z@uwB=6̟\cBui3lyX{˘2?%/w_|0T˟b̗t}?ҮB?eM_%Oֹ*ߋ`JYy0Zv*n^bK.ְ͂eWdBo&i܉JO>0#J*\.RYeL7:fl<՛.ٻɴeI dܚ{ޒPo:G cWZC千(PZeY.o\PҲ@FjIFo6>7)Ldb&tնuG/ P1 #Pxޘ×mRŗ@<)үWu9\Se'@#*[|CWeP\*}MCCN}h$5/ `C>jieؐXs -si 4'nm03Byoq~:4.ԧËy/H L`*ntT;Hw1@!Rc,)r߬| {[u~~fdr?/u5-k%gn)"6f7;N0rz^7damT6t@v ThCDYKtist<9‡Ib|ţ.AߣG#}#%CYN>vtZ.u`QSF$Q!k$: /=1&EN4ژ3FܭM~fX -[GxmM+~B9^F>6- {9UuO\۫wo !c~)IYߤ4踇߆̉~GagҒoL) yW53{<Ј@Cy^{F\YiZJt`9}&GEQ{< lE:e/!{wtX^]XL0{a?i*t*/b-ְ> Bn6vjVu45 YRi^X *O?uҶD#ZxLI:[buj?g:_V4;xA@β|LL1qu[&㯼ڿ;4ߊPyM'[!R"lSVbkH U/M-GKVs -a`G:6x ma9# -[b10bF}/ -}(@tֳ7~Cyc1k218aJ77Vb_~C-PvJ `Blb: /rn{!#]{)os~*k>+l8DҦF;~VନB`7^#WE\C/'oR.#^$|gJwz#p,տC͌R[WU3$\ c21ua%GԈe~ Yfq0ۼgl[%= ro2C0WAxrm @mNYi"C%oDe19#P.ibm&q0a + $"-fhi[?m 61_kZb=)PiF&S`=XUqYkUQB'cHFt:+1=4%̙geQ^&Mw'"G7؋lM`[^J83_КZK:W{[T1OLrQrNI# 1rl~6B.8Љ: vtP?od7f H2NP63] ǣk -xp[+BO'*XF_\6Yo ˫(4n686с#ʜ2gc# b ?6ٱ_!H~#%_6CTI M-V( -YiA-ũ}XQdd$ 5Οֻa_=- uc2YOXp)_n8hmWGąr5"Y_1VŽhNF.džDlWpӘ -87!_W7mG9:^r)3xF_pTd7aRoJx puxC)neJϝ -bnUR'F 㘁`y\c@v*6|u4U0B*'ެbEVE~VPv:I'%gqkƮَC#r:pyCSh},^6Uk;J|ٳ֘Q68A䖌3FK6 M7qE̵`5K Cqn.92T"]k;w1@/T\& +9 CϿ -i9[ -Ɔ,: meˠD p'wXhcP|݋;~98:c{M TA$JݵjXD\ ?tv64>vl3W h$ c$?E΢P)b8~GrZ -%F.s'R%T{6;W].277YT04Y"% FJ8x\ Lz;N)aJGs.U@Tٚ2b|Cs1\A-ƸWg5)BwVӇ3i2VR%`S^E :@49!D¹ cQftzz$V NNd9DvRlCYp&]AqPgŧ? sU ac+vC/k|r8e5NvK wb ~2sC6{y(5Zc*Lzx  MzJ[ - n@Z,dƲCkJHNpv[I{ -;#MknV|w͏ CXaqيΉ!m[l&aeCh=ӃxOEe2'HY̼ w*-@>?  !5-~ +(gg.Ph-p -?!]2  ^|:GXPZ{hR/dd.VKsŏNV\td7 bX Zf.hV~cҏ5 pn+ Wr.LH7ZCp[L{ݗu'Qai; o_W1A=l0 +Υ\kJb%M~MA9!0HzV9[ <~?>Nc&szBR}6:&g`6JF;}d/5#6Ka(2VO'lB 6f7 ߅~G\cw3YTԸlkUl&$p76m-+cYh̥@^fMl 1'QmyA3%Nc*6%LXfZjmO١IyAسuZx9/>$tU>K'{ nA~gֿ;1%Vһܒ99׫m b`ijC2mQ3->D,CՆa+4Ne7э1w338<08s1LJTtN}^k뤏W5ȉ5XxHSŷ,(3Y:`z~SAtp:MwA #dWpU1icFMU [@ށ!U,Rr"ҝ> -''ṫOQ߫)d12~ܢ{_?ypGiٳ9w8#z5/8D13 -;WLG3y]`-,Ӛ5TJ<\;kEV>9i-&dY6i&o)Ph5 bu|k [ -Πd^˅ZU6`pWƃF{D:{u 8TV1'QQkӋhtcYܸN.h+ AۤApd4F ;0XE.z= O& -_^9ZbHXz% L{*hd6jJjނe& 'n%{t NG$6o$"J#%?I.FAhN('U^SK\n(;vBwBi@JyZ߿ha+{*Bn:g@>!$m-:.nIXU+{+9t{bd 7;;RDR/9Au0+ae !\ -!x(D :I"m@3H9?jZn e>:v;cH"lb&u9Ο_]HX,3sc~ek S;ģ^co"U|`uh-RNf=>@F}<6x`ܞ9{lWB?| -p%3(Z)=]i׍diկhF ʵf -˜6\9#6c=bthXSʨn#>P3/*>aO ַǂ (g~J̙zB}ͽs)>'8 A͒v 8=(-|1eH̽⯂R_PY L드0?flQ?~12¯Un}B{q-ǮniMJ}=NDKvƻ ϢFoC( l{(jd3 r  I)O4RG~Ƿ$lxF${M j|%$aJ0?7tGk+$ch;ռ1RFl)7NVΠ24lM+gWjLuo(o)-^Fg8e)g?,%V=-T`R8Sgׅ*F"֓tEAd qħXK<~[Tk[+ӴeɟQ]%++f* "cy>rE|Ǹq $j3KQNҮ$ ϻ)]iU bK\/`\19A轸GZiBr LU`fK55Ѩj23[is -!Qԓ.X5*oXk7HNT)¶T_ MuS+B$W7WkVs~S278[<7z`|F.Mfk^sGmѭPņQv?a 62,tUƥs s4q ƪ$B3aKrRK'5hl "<;.A%Mrhcb&uiw'mF}e\]q1mYHnTj])h+:j//?L,֪G=ZqXvd!vI9|c, -\=}!"up!Ws] "ޮrT?{TU(ZV/uGlx:NO<%yHj7& ̚&!ZG(>隙N*ESߏ̢˴X ݫ&=6֒{fAݵO^vsHX0Q Qc|ޤtx)s)<]ԧG.?[>ZS,vf<軭J<W[8ݛB+1y-R{3Mj@k_uճQo/.,6`ˀ@ڂ4)T* `N/s16 ȣJ2*Sڬʭdj2jTJ` ̯J(@rA{w -N_YD.vjErxs!l0N[Dyo]^jv v -LdBC~ke"0c^djWF }L_h+M>XH i3?΍L6q&{-M$ffgs-kBB\dxR)(K,d`1G~XR7zKj +:`evvf/YÅ dYfL=m,H"RH*Z3WJ, LΑF<Io%s4#MHb)V4+-ɥB&Q7SREPr퉉FmM>O:֮ө-꺿>cה띢nLG\(b}|-CS+g=pԔie%mZeLkJuмP QMfpf& -U=ݺcg^}G' {96hd9Vm߆#~;SF]0;OQjnHJxk޻n\5Snr`?V?tv!~ӗ "P9sȏ鸅LJk>1X:ow\0 "dO?lӒ(`Ѳm۶m۶mUl۶m۶m~8?22"q{_[mKYPgbI=~(  &`hBꞿ -&|lXd,&*y)r.Nix^@߲i@ddLRbS,ɗ7LΐQ-;k_Lf6>=RV,SrPoC"HsKK' -펚2V,4a_Ωi%PѲvm"a`fō7),B4G(SK$HVdrw@3S@h*ͳPc<ͫE:k.gs/[a~4[w|Scdysx&$_ i:8-G<qv,> ylj'25 ?F,JN^!3Y%2B`2\h+c՚j)HF*EUH*`M$N+ @( /Tlˮ^(6| 0 -o?PY YWQ05 ȑ<"2e'SWj$0̏(EsbA4.4hDLU MB H2 WMu}>ۅ}|;pjgW -k1cU.a -< Ǩ։M1cg脛&A-qE`GA}ĨgRyRì ?g[i2׆0Ba">^ {=`%^' -bNQ P!ѱ U#aeI ۬ב-i)V|~B w2Q·Vۼduߪ)48`X We7197HW/ [z oVK0nf/mߜN4%UCFjXIQEԕU6+l+Ln g#uI:xI4@a3z +écoYt-#;^ QTb ܂QGklT5]aAMm3E񜌚!er'y tICD>nkL(sҮ#8:5HK3]l&(n@Ѹx-&!m"+`6}H.Hر_ -Ο>E?]y4g>lc5:>ɴ>@QUU% i3"k]N. -a<$eOr Hh k)aA3`q1) 7~:ߒʛ K_kN_HHg0V5bQ0+0~IޯV چ1SO+=6K?%K %Vu)ީ< ҝ -ddCwdY4kcVޠuQ@ YA"rzάmu*4@0`3O?@}<V tGIHU*3uy~3zk@g993OVT(`{lB\LghZhOjRM" ~3/w5-ivt׽x,ȗ59¦^;!O ( M"+L~$[Co䠋ǿJQG?/󨀰IQN|mמKA45*Ap|ĵiIo*83deٺ -W DĘcԒ`Fbna48$:y)MGuZ9}E( @=hpO"M78LV܈&c@xVw}4O/՞nYڏK3sl (1˹+X$L6-ur1^4$݀on&8O5w (AWCg+;]dma7M|ΏɊ簁 ?deȨHu -]GILpѣTn1(^6^ @a ۟n *P>խU&uZCXY/9z.y~tiE}Lx)GŅ'nd6G廧Nͽ漏U z x%n]zq=pWT PQ&@3q}# -y԰px@q/Loㅏ 1U6sл\;J -+9 B|t/}u*էE) O=u&0I~3i1Z_wffLc5rZ⠘/n&0Ѓ*ZkCTq֬– Uv!L4MF R>8^qƺ>ıy@j?ۅA02h& nPU\_<ጢaz1U '$2.Y90xCk9a *|E/܉O*f8fH,Eej_ -ꈙ)M8?*OP 81J"SG{͹@ytNҲYc -4D푑}az;) -=g#Sƅ^mG(՝VN$L2YSRίe)ZJ9,x%~ -1`g6 m#s|[enk-WA \(s7*fbX0 ` o$0oY=:@.8f/"C}߇c˲ QJCcRdP.w4,|`(s)es\\i%IU R=t{ïےjOX Sj.f3?G;5YG[0qCt$1[$-xТ `mU!6[ 5RB"whP,2 -ⅸwh?!li'wygoƁ!Mo): 7X fЌd=Frq\sJCۋ0Pu@#i@~>Z,Efs{GbvVZ H]ΙH$8 -6O@*~+BcjJ8"dBT@u#Z'0 JalaTx<ܨr[u,]IKHVаQܶ0  Hȩ\߾lNT)Ί-vc~%g(Yɝ1ue~"թD,7P|'0߅: MT~eRIp,F.;;AuZ?7b& cDye>9~եfJhWmVLPfWW_qŽ"לinMu纫mk[4-pC̨a<~cJ~"5dJ$F}N(a -"l- xR۱d~KjߞT| nj7ks>r=5 -;! =}Wu5%JL #eE]ZSՀ-0F~l8{}m.7>Xϖ1k uq+W"~DgTp@nO_ @}1-`)?qŒu6PAr7>x.'+rڌ1.Up0LPj4s-a|q" ze8+ "1+|ى]kK? -ϊi ͑.h -COJ\"#w_V=U1o !ưuO7Pxw ids N(>u 36 -D|p?Uۂ7R>}4#7gUKbL2F]t#}<<^Cj*퀽"4Q%@K;k1B r[eۃSq [=ddi[!v~qSG6}%lu&DkQdXbUy*@#%ABͱ^X(uJNÜT@?t%h'"r#mBd_Yjg6)qȹ=߅^jEkUf -} LȻṪ_\~d|_1ɴ6I=SKԒݱ#tbSK@!̱sI"52r'A8?kB{qA2i'"\𨨅倖ci^HZHԑil\ْ>go YRK^!Jloig[u@!(cR~\^yWV<Od -=.C`I:νF0*y}"Gu$!UžFӾ;{xb$/*m~"c#mj0.オr4:P#!@}*0вݴnSj4y"܋z͎kHYm` R9V?Ӎa8ҠrZ '^jp< -=ӃH5Ti/*J~LΓWeOOזߣn3ǏVR†sۣGnN+I848ǐA,>xzvZhYrBp6PHiXKc*!OΪ(_$G~Yf=)gCA":Qz\_=w@[VDs cO%U\=`*EQwЬVFb ys첱g{rX2XSh2>kdg>rDN>sV$z= k"b?x' cIBn}/pj#e*YH2˻ԝ" apMHbE "MWzt-eFfWv72D7}sr衪b#1hΠQ]cY7O-rIF̂d.QfEŰUsU &8p!3 AaPXHyqhGg`?EL.\Mrz8v}T`! P>ÉRϑhٷƧbU‰-M-ap^L _U–)`Ka,6O6tź7*JVOQ/[bӯw$u+YћѰx88%ktI^vL:6Dm۞]* -)~X|% aaï=;L˧HبE޽-V?lnXt1a% -!MfW^'KUi*訢˞,rgxΰaR C.{');ߒ Pb]H|䱾36Ӈ]LY0Ipc`Дх2<>A LFI혳h+~k#]3L~2v &"%ЅMftUꭡ@ -֨#ST O&ޒQu+HNT\6&+94kՆ#sydG;*>'B4Q>XffE]CSME1]@]z3 +$Z?U͉QLjMZP Dܲ7cpEm{h"2{)&U :.|*^QID(l4/\zьYqY,/ڭnv zR_ezeNJzD 1Zz..z"l53~veptvEv80ʲj!Nf( j6R'79#,oǭipjq18L(P=%]G1G:!ӏ 0M3GIsCSN@*̉8-@KGoV; kH"M7uMv9H!#!dot^-.:%4NCkuLaCX* N?rPH.-Whb_Q:ĶyI&gKoܒ89[1z+@.}xq.4 -ȟ[a//L$"<m!ǹ!\w'fýv !xc#2\tM >Ĉr}mL߾/M_T.}O(\K@D~]FM9O8[5+_; 8XP. `OcV|ү_ΝjpD -`SB΃3 UG:&Z?y(R$Ic8PT.w; -~lߤzﺘX5;V$8D`/+F+ DxY6\us܆ߍ}/8 r\}D(cmlQmCslRP3[8+#~A&~|ȹAZLiJX{)<]_c -ӡ txNk^=fuQr;EN G]2M'jq)Kiwm=ѧ"Ə軈/G5oGDwwr#ȤLfns=FUC9&Ai΢~;NAfێXWk4?S;`bE~EI'R>Gd [G@Y}&A놔/\w? -\2hF$pVE Un=d;kMeX1ˋ )e6-uR9V -3?Om;_`&C^I/RZCoo$*iTCn R?Q@#B(,&ss7C .t8[uR5_`J 7h%r6q&p ͍"Fw /[[4\,1J#3c*dkjU[K嫅k&;3@ύ6/kr9"Pui6ʍngQng2ϛ)A5hJ;|Wӎ_A'Bԉ)E21urAmIF$Ŧӭ*E+Q[nC[ɼ^A^Ϝ]vGM\<u3OkROZu\bI Ҏd\'2R| jehgmEtc[u5Lhs S*\L_E"rI9j5màOuQZ΍y%ﭟ^_`u҈"V> e%;I' {>ҷhτlȳ!ǐ J;KkI݊s΍bZt6vWZHġLUQ"I_ 7EvJq!F&pc4pɜ=Qu\}/fCF-01fyM~0[5C Ÿ;L&xZgђsqIM=ܣEoОi{)  J/YכRHw ->cM L{ryƸHnO~e][XϸAF# S‰f -ݾ(9pvͻ<6`CTs1+ CK"q<_$o2'lI!@UZq;Gaa/ܧyܝEk2Gs&?w7/ &͞sXv$Ya9Zƕu -WXϲ]  ´Rb`X3L)Uh <٠7h2Zr\@<W;o9*6s( (hsac~2!] -fYDm -It!,Yc؁x &4#]\ y[1:^3$hb͔έl@ȅ+8b67֠-P?1G<+zӘHRzjYɁqhTa8] -c, - 6gydw9M1D_͜6}2w_@fgLiǤG.@oR4\/f -ǫ0,wT -XN(;&$Ҵ8TB'7`=C΋F)Bq{fQ憞o29ʁY)Ө]P|vaf%2ҷHb~vKB:m|d%QW'5cc%윖L J4@Ng@ـȋtM).^nxNa&D鋁=r , Lz8 k*"^a nFդO][3hSs82Ubܼ)a<j}lNy*k1y_dU ;)=tzGB"ޙXr ~ -~|:T·g* }MpylDBb1wٮL~vSOCx<WBOM tuGU'_~m~¿$0JcWQ }UE]'-Y_GƑo;RQǜ812[vFJR]aRx@~{c8VD@"l;tp2ITJC5(|~rF-q4k-*ʾ%Gc,k nӞjKVY - -iGe}-ĆeYB>{.u4eL!xWzo$jwToqulT]m=[&ɀ#Y$?\J8vm!C=萟Z*_nD-rjt+D&ىA-]́Exv júE:Wɕ*d"79ee$_|JKe|5CAĶ.9p 8豛MiPoŁC]"sgSϖ`9K' 6!?C<*˵7S7E][Fopgl`\_b f|#@3&{DE-֥sI(,>XtMXZBdR6Ъ9Mpt+|ٓsBIB+V˙99TB*b)e$(ALhk~ !d.9@<Q䀙?sFW -3`Co+ɖ4GN#N~>B|DJQ~ҎjH9*]!=hufZ'@;7Wf3WgcLqcN s4ξ\j.hMl0=:xЙ{}˅]*2;}q5X?df,0d?Wdc=y\k[~g^Y>]r®[\81T|ִ#0n,jlXisZ'Ѥ]6Z#Y9Or8rQR @*X!]cࣼoT5KF2 bvפt| Η+A@ 0*nO4,UVU1G1^t\t4?[?:I}z խL))k>ۭfFqHPCN0>` I1w'AӃc۷rbF) -#o{dD0T- - -8ϩ0aߵw, -ɹ5D}<2[6?~ -JEj -W=оsd{3uAIecj|( _Ϊ[-e+|gKQls+tv;_d4i bnHz~K MJ5oON2쿏\-Jg6 -4E jv|4Sٜ'[a`X1$NT:|e?jdCgNr!)N~+T(HݵE(/̈-ٙ͜Pޱ<le+P&hv`.8z.S-QBjH \՞ -8*ЀxXy,0i-QR!kȖՊ5KR'dZO {}ZЌRYMʚtߟcytJ}Ӓgf"F!SWPl}B|NR2 #VH 3WMHamfZ9r:Z -P ,b2H ]aAzZ5] 3xr8Gw-M |l3:^ހsBMA $_6)#.uDV|9pN0CxKE?9C7Z`)Y׼W2C]6vn@"5ߞ^FL ,yjMNX.'mѹ3>G &h" 'r>u2:&բMDQ -ʁN4bVY64!?@D=r+AIJ4BN0]*Vpc\<308 -c\* -ti/ 8}E7x>< vpa$ckǍ.tdҨG=˦M TBQD({u"Ztw| b~uLxzek]6ljYH̔Il9ز'B*飷.?T9+߳Hڝđ%T '$&6f:̜8Ǵ%,B|Be iWa0O vP]dH:Mb5^S#aOmf5;hBHFwje7r$rXD0NFD\j:}*Wx?gg2(˨7^( i2 -41C $|YrJXYaL7H+]_g[YہKKiTeF i<5͛v{M8@Ԅpw4U^Z3kl/,*Lcr=ѓ<@e8GΏ)\=(HR̕O ΁PrU4Q<cw͘&>ӊW_I: Chjԇ(];oy+=VXg'/]CۗX!~b*̜i7]s/N57d=` <0@3fiMC e\k [cDzC7&[6SdQH9c( -}Wܺ|:jY@F><*A.`vX9{ }6"G]TQ~Yj{1`ukTtt,5ɟ^jϫ]FѯIg!JE(2gnI6M`Y |89_{#Snm7CƕZukTkb6|Ja>&_'E#Va7Ko)3w8_HWX. ˢs"9UNl -N'r crZ>==E/F yEw-pC(C)u:#s{݉Vw& ]TMU [61߽DDZV\E|u1:psXlI]HѥRtm0 -xR뜲][:yL:2d`,9/g{|ź '_-Sk.4ذ YD# W)g J 0C -Vi-gE -5HLI#_]o26*zE]h*cGYS-=rRn[q{Z] X*{';̫OGy۸,07/D7V;*5a##v#({BBT욾ղPz[M3^mȂB u+n;ضaozօF@1y5Ӣt ޞ -eu@;MfH}Pax它ul>"5@`X)L/ށ|hY}r3U -  -)4N?F xw{tE/p}~RTf3˂J - -BP[!sD {:J.;NUrx 2˾%FG)8Lp_&iA d8ǒ$݄ÇY$B0sI3mGλ~Oڝ'B[ia"'N>N}YQFRT*tˍm\-FŰMȌ5h^଀&g/#cZv53dΏR2?:r߄ [D 00O,"4xH?o/ZP;kv?.8;g@y4@([u[Aĭ&8rZ 5fH!HKmlM$GgF)B΄?hDtWxƦfIW& --:)4%}q^JGSgedt1j<̏B| - -`X8:2/2@jw0'`bBwIGʿO̻-+2Tw_36Ք"VTe'+i D 15PO>$"i:|LjMf/R`2j:Llbݞz#q!_TZCcQ{;5`sSM5]kT0XzCblD)(@&~}9Oiwѩ:Uo u:[ғk~FU;هkρysI@"] #FEJNb!Z6 - -F1OƬhfm#QLO۴:;oNbP\mH7F&lP%eq<4CCGe$dJ:%~8u Òi賲7tNuR5#24noɌV\dERZ[[mDtgq? nJ1-<}D(秳Ncf*xG֎I`?"f-{ @j s޶4c4z"SobadX -5ew'i <蘚$A nA14-}P{uwA-H{߀n L6(!L Tщ/&B*Tib\&߮tIcH-&D7t16Bbvdf|,9ELXe6wU*,%FnsWL.) Jv3>_ -L*;}i⃙KGTwkI/tvW^`ou߰h.,hmK՜e}|<ʟiNB2kU6wig t»dz LZ&LEd7f4Ola{j`i<\gj.y,E3>gl zCʼ$v++Pual$د#D<9kȬ7H\rY Lm_dz=e@0kf_LDǟ5pif[:8(L?#:D>BїgpA&//\Ygfq᧤TA6yXcenC>?VS¬Nss5`URԛugZJ'Vu@}= aѕ+M"]g>ze~tě'xFu(ʒݶm۶mm۶m۶m۶m7oXUL29L(rlug Hlplo@IПH6ř'k+.Xފ7CsnJv/y?X1u:`K`!(DJsbJ<( WQryҊ 2a - -,t*Qf49g}_XHOSb8iD1X(rҸk!`Հ "`to#5LV1xw!&]ǐY0A]b~lVRiqnm"o7,Nf "eL4!/kvC!5ۂSZ$e | π?T1kPqFHUU%CaIOC}]U*79B@*] -#e/S| K\4Gfnfg)_jG<~_ɂjļ[TA2j-_薪Ӗ?R2Qg]trxIa"۩F>r * Hx loXe1eL}˭c7VA^כݖ茸E[[= b?2{*~pE)5Ģ ‡ʽ7}~ާTFJ#o gG?{ӑYmONުn*iNl R\^Y jWNp[ĄR(yPJVb3:/!E e濢 -i%dHH[^_c"T,>%D}6Fia#2aRȥ8. D^aT\r`YR:s; ``vk٦~/|\{`B8fZ[wR_d]!Y 8@K׋8ZHmoiYI88v9rAo .M)^r,O a!APBzLjcٲ Ǔ3$M>G95Rش_L}5Xr,V ١&,I7^ a"|`L!';ҷҝx1mnc ۙS-GCIlqpm'}?r꽳捻Ӭ'\䞶1'4 f,MaɷXNfgNz% -*/F^2Iy}ݗ(֚ARa@ҽT"OK["Bkklq+NPVjWvʅע*Q(+md꿿P*4 ;Pa^fyp }HRcn!(!&I3נyֵ8=EzRc Vhkp>^ni~I$cfcP" o*Yjcmb: 2 -&&[/(I2\ seCxLTNF$~y-rM$ TLy-L;~n3DЯwc`R ͚N-o)+/v!ZgvP>fX6QgψH6C_jn6ed|Uh{Q-CZ!'ܤKhv 0B @a@결vofpjH0 S]j;;2DMC}ag`˜\' hWj,-TǜΟGM0ȍT 69o*4_gd#tN24E(&:tZ`3ԫ:Pl)8[-N}>'_u2rpR~ -5օTA3-?g#J -rl 1;TY N]'l/](ryt 㰽0*bG 7nFt=(sA>oE=JN9o`SX`< gkX̒0zaGUL -WѠJIf9uSZ(,*A-i/D>KljpĦ_K\#q$7n nNC5/ EыF>eGDE P@6!B+D:Z_;Փ*y+=óЕ*ʰBi)K`;0e{ ipnhU>s"DcO=5u˹@$"Izހ Iŷ&\KIh4r .ȈgUn$>F ]f,YRr݀ŜPF 󏥕?P.)}9OVZ2dߜs[!씺O>0[ʅwuʇwH?^u˥ܾO763项yŷ)/0rU q  g -cUek>{=1tթXuibMt/\Nv]+UVwP̾PEn! <+ -IdBTTD6&W/w&U S9QRYisۂr<0z -)FM :tٜQZ-@(R\miQZް¥-b"8 &#j ZˠT4`Ӵ*yW~dA2kCwٷҥa4 `ϚL`cEHײ M"vp=8G~\cA`luT]I'Z4{:s*|TđKLG,.S -YP Z +tH$\\)|#lcHQu1nS w3sn2^E'Bt‚>o . EgOH?n~W+mт}8[v)"SEt/[)fa.č&2>{aIuYLLqmϧ/O%7Xf\༖5c܎&g{ãs~bҍ#.dX4 _;w6OX" j3~/[ͪҕ%U(`bVGI&G0U쮻7[31OkhaI]\o Pѳv"+G[rK=~ZQ S j]`s.LyRxovC(XC yCg&34ԭԓ)~ojKb-wUg^ j)# m_q/n"W>(e -Blt z=r\ZiBƖQIC֎.Yv[<UeF֊ofo5 ݩ[ㄈʒM3>`Kƍf[utI9YUB@*'[E;.41 i>4l;PUyV{t8P3kP*۲M8[#5!@cz޲\lm2}AR=~e>&kG@ ֤5=6 NXuu*OrK/. -'B@vm`,XbND-{c#saA'~K2Vwx/ntG1Մ1y ek9g$s~=pXЀ4>WW|Ůy7LyT` E弈=;qxBB E30oo*FWz4 ę[o9{4y7[$;>Ӆ^9Iߣ'VKj*A /#E>'c  D4TRzEmugfTx s;,ܤE'ۂ! )Vmk)|^QiАHRF絰%NTg ]:q+ΧN \0;W2u}& g>aǐg|Io*+83t~y8Jڤ|UKZQ{^&>b Jwvxr_7bD5"|.g';xZLqRP̾dLD"Ӝ>SLX=V>tQX)0J0u(w8ĆBl ƿH|$_MNx5LJ/r~2CPrq$OB\碞(ݲ6r <笀duyotEin:@K$W(.јzȾ..wxhKls,ЮҺqXy~s֥ނ(vUb}':А8Op(z'>qF\ӧ -J8)"$Wvfp<>eLLȠJ%[q6:W%2#R}/\kSR?XE`-B!J)F?n3ar8;fgmDɆ2Ibt ,s."5+R'tqO_:41% ÆЯPn/#dg>5dMabEq}Eic -gd;SԊ4$p弸V/r -d,%fAVf1[WReh -Wr sFh}bvkJ_]drڢ0D??D lm<AG`ijnΟN!c lQ؆Bqt$mH64K@pW_?!DX?u\¥,+JBOrBx_px>VE #{kdz{PΤo}8ARh3P` y. cU9,6Ea>J#ɭ#Km,rνk_z&!,}#eɓ%xtaޭ"W0MkȔK]4"|x#!|(&V3=ؑstg,3 -ͫ:"QYS4fNDǥ)k% 3Lc<5=K{5 n'#S6.j2a꠩٦W4_'/z~b_EB E_ث1-DfmǶle)?m(;#/8||k_gc=LP ȵ[e$Na$6kҾAZs)[\$t -K7n)j柸Ie$}V6„m~HcHd^ .:>W"dgeSB|6{r:J:чTQVMõpo|zb4HQIeȂͮE]?I?=o8Nǜ1' -[bx=`\t:4xIAP'_?)7o@ѿTe) M30>!'1un'f 3Udk/AT|gDC:.MY\ %Jvܥ!]@Q WyQ^__N*7RSU8D $<"A/;2W(i:{W5RfЀ!E31EN7I/#XXD]؈^ v!=M*DIE͗|; \\,m V])5vπŖ7V/x,p_&Ў2Kʃfi6E۬?q&0(G+Qajo<4ED\e;'_[ ʕƘΓ_lE7"D@/lE?RQ uQG]H'8t:bcKd! bqURp5'?E:FQ>! `s*ɢ^ 5vFt c0uJ[)_]uuҤ#7:# -Xf ݧlsgܑZ9_T<\RzN_LrF"*RvB"9H'fHr,1 -Z=85T4dq C(x 7[|q^X۠`oqo^Gn;Kn2x߰j:Z U~ |d<$>1o2F@fvl}QޒL"7"*<߰DO31ES{Z*Д$;gJ/0IT?#5>aF 9d'^~g2Ģ]܂9CV C؉bH;+:{)a1腙yyC\U ?G{gMІ)GP:t)w >| v/o"x a z dI-yM2$W9tdn&S!WL,Sh;]h=*F%m -RXȃvh"bpY=-\iJ6QI+?~vhe*17"q}}X"JG(I';zksӥVgl?u{Rf`!|k/ڄX6hq6ѾI,xf*-sP ՉflY} 1htO9ܚ s_ʺ!¬4l#@\<~(>6tӤ=Ad傍.]Y36uPwN:TB!0IqY[g((*4>Ƴ튳"(Q; -<'W/Vh&, eDqِjřQf8`Z㗭A4O̱2T%-i){'X!NLյ%z\at -vMnߩ;.gUd#g5IJ(<Aqd^QFI[ʑdF->lϖ,}m2Q$zÈC4+7ˉYZQVu9( q$jSˤ1tmd̾CBL3;]=YIOx:R0 ք(Vz]b -8Tы9ztdhs~6B3N 9 xv1" +?A:tnn\6, pR DfiQ7X~!3VJ2s{ H *:+3u \ /?PH&N:Ĥt b:6-Q ôFPZW#oL'ߧqc'|%#tIT !ZOw@DCzا9iy'[{"m]*!ޏ -b1Ea9p)a E 2WCM, M-..#Uȳ@\)$7r7XjՁ3՚*Eh>MW ΐBa`8##'W= $/8At*[˻-cJ[r )"!:v% }MF41A{b(+8MmhbԾ{?gAJ:|3ku.FP}r{H/[ѩh:vEyQVZ:ϔO+)TN;r`>=y.L(ja0C7$,=jkD/^0K&vp<]9-p|cLFum#'C|(RrߺfjQ'I*iedwFmzfVIn ԥF$mQ;t~MϐW| n;i1 -T0*zDlYe;'R)+ >+?8w( IC\NU -g#<K} ~Q7 c~'<&I@oubutGp rE?뙍J^ .BZZkm !ݯt aUxK\MqdWtg/|·XfDn0O䴌+,): W%ؚVbTp&n|5=ON.gA[Th)njH)|ʱ*6d^(A ?2/Ӫ[NΥzq_.%pg@1+B8'l?t^0|oGC_ {Uc.9[aB6 xv]ʫú^S]Jfw7yCStE.{Y]l#,+:l6d#1X`;FdhMN`L/#VT8̛C;s&&9DA3ܦh*Q4c޴8~_ -D 5ssՔY2(ⷢlVk 3ᨗix.'P3MF -ȌYPj15qfQ^0N%Î;[vb8H f1U,t8E*[ҪJߤ:GA&C\Nҧ{x!& RU# v!0UA}:Ħ)MN|,/25Q* -l#;:8CZ"dk6"QAw:|W԰ -> Kiý`7D:Ra~+ɏ}p1XamCb*q--(0]J{3I9TLAai6=)+& Mkʠ↨\d5}_Hܳ2kRjsZQU7j'|BW\28 --k]yz=[|^Ls; le7r3 ݈)dJ4Xŋ[( A7[$"fUlO~6kZlAy?ǔFu'PGZT2f'eqlKkM -A4:evق}h)iC@ ý>RR-'Mo3&z#ЋW,ʌ(2̛ X) )aT-I -8qZᑣ:$K۰`|EYi]H)zN&|ص\2 Χ c}9,ov*M*0 -T95:Q .?a1ʉdN|#[a_dH-Sӆɑsϣ}.G)$]9uH4w TdNMuMU -)W~^9) -xGE+fڷz.+W? @O%D .AXskvGQNF"<7w:bX -gȇNP<$8MVdw+)S S-jwC<Nt f o Q:b€\KpZyf|jHOuXXn%anWɱ\O4Syf>xSD7w-&Tw*sc96{x\f8_{űoq1:i?4lC+3XWIZ5l)ܞ@$NR4h 2 'e r[cl?%uS -\/Q̯Ѷ`-F8w=)GD0ӗtٮ͙5ӶAc!8ƴd4mn劶xɃ o7yLGճr!\@jRA\TEfNіG`)$y.ܯc@r-jFyRRaXS՚ -K,◟C|;L \8][)q=|#H[]W;ke+ԎEkIsL*'ۻ'l\I/KhARuz|Mj6N_?tIɨ&BrйK~d눱&ALᶓ_c04؛"hn1́pڱoE /3'-Dd UV8T.IfSljiIhB2rKҊn]uŬ``q4YuEmO\3?4"bIBK_ uCeX,$IlYǟ {#Tc>dUka~!.md"&TZsrݥ7oY(4g5 Jow)?\/ypBJ4X boM]Qa(N}g^D+]# -"(t_L~?|2E;G&^vUE!qAym+ܮ VKUx6{!e;sYIŎǯL"n)6Bn;KV%yk;ps;DkZ dx`t4y10 \e>lَX,<Иle4Z+ Tj|0 ޲C^PUl%&0 I 1˺#ҳ]>LwM2X,H~:4QzNv;A`CWjB$W<8 {/R闢{F=;*IKBRШTARhYЂutBj6!A0-f- _/DDJ#7,wH|r.HJ&= -jA u"H1xNxX$/t1MjMg.r&(OCՔuTBP?ɟSc.<)jV`sp&= S}Z4t Nj~'E C~oe&wB4+6!5f4L\}̗Y*JN3lrSAZXHO[piԆ$"w7{#` v,0w +T0G_LʾII+7@LX8l?0We߫Ա&dI]pTNtpD$17S.ɺN7ȩD{)땷{Uriy~S -Hp}q3sZZiUD##y0İFH b&w+Pw F@0& KwXaaI<īImDpA xi]BXn=Qpf UGh4QӟX[:CԚh[5Gi(ZcErk -ڗ3&L{`FA)HVyؤ` 6 ӱSo܀mԓeRK3vAu&q͖p eH|sOO̔#֝Vl o^-ㅌ(sF9^2PX0ln%D˜/OQ354gz *-(G0% K2wS ~$P_(}vQ-rizIf,"CϘ;[2+h_ s<-/^4"w,+˲'dk;joۃ}%6o|%BT×:%%WSEQ4RW Ӫi ~,2x Qx#ULzU}j6)a[{5!/\Y/BnO:p:XT#i@5xnݒSGw4j1zLU'8 Ԅ%VqI2W;K}X -yahMS].yVOq I*n4;uZ96!&d [;)jO)[*\ Ut 88.Y~0c+'/jшD6NKbSNqS55YQc&AXX1w$V4NZ{?cL 24RyAt`X5Sor%䍸ET'{{?[&a Vzs)/R@{;qe2Vۉy*Y޺q9vQa07`T3ͅ2&'kJN <Z9(?LrNhn#Gٗv++3^ChJ;r kqM`&uah@gw.t84c|{ pMN +E[WC 7?l 0 O`flx;F| bqvr|`f CG)+]8XDZ PEO,3.T =  @zPXa 멪GNxșҤC;2J~D6%_jl2̅/]kEdn) Lrl'9L=g.Z -}[0÷(8n:y eY5Yh^ \i܈NU,0<DQ9"X>8}>~t4c3fO3Z -u։i(w ٕ[sPƖobyK8L2$||.,ٛ=I՟Eoɼ`zcBYCB ݕXv,#t)t6Y: -Bֳu$7X8uin>߾ N5EqO9WGXG^]%n8\+uq.,0n-N9E* `.X>箚\c`hLL -E 7qc354Y>-?HV,Kda`{#d@O~AKokþq*U]|dNonyiUû#\tNkC@VMFje $aub|@d]>T}04CV7m} DpЦ4g"*[B<:Ra:V %ʣ~~7΅=L?  9..8mܷO% ,xŒ U{ce a9o[ qHK GJ\_HBVzZ :t>mO&,~ڼ\*KF*MWť -\Y(Qb$CꃊsrpbJ{>SXfTugu왁CR;%/<[v ) ?5G:JpXϡh`ǔb6-1t}> -endobj -1561 0 obj -<< -/Length1 1664 -/Length2 94813 -/Length3 0 -/Length 94701 -/Filter /FlateDecode ->> -stream -xts|dݖm۶mc۶m۶m;vq;7SO=k}v:"!S050qau4451174VԷqpҷ27gg`7pW6vp8$ 1'9>#>'3'?Y!Ilm\ɄΉ L9ii M li!16qrd`72``ljnI%lLl9%6r;wa*^#[+w|#cH:[f˿l5- _<ͭijlnjOT{QH;6FV6rXoOVS2371vtge=6A'.,(Hl8)WuNƪFNf#?MNn߭1|~I/+AA[7|O6V|XY_AX=Ϳw7vӷ 7?6+ >?D"V|: N/1ӉELtѷϿO?NO'})EtJ!(;>_MNV&Nə#w&w0C[}o 3?$%d:;~51w[b7oWۙ[f7^ 0, X +[dmmkkJO:߾v6m %Se.osbnoݸKǿrw4wȿ|u2s0{>w<\ᎆi׿Iw@<;ÿ.=Cg8L>K&'!꒭!WEZfSZfN&q<6uoCE(1>Go!th U!1Ҟ^ i$-R)xӗ'D[bkL)ޝ͟?7?UU%4NWXX$JSő rE|N҅Ҍ]{Bkء/Ӯ_ #!IvO^[%c~T]^\7jq`.031e=)p.~ҎU~(vܡGУD0#MGIXkb_&3"&М.wBUͭ:Ll3 d^%q1+B}jPT+}e}9?/ۗG F [܏v -">4Ⱦ^!!On>!Ybjl2(Ԯf׿˯BgDGum9sC֤*y׻Z$-؍wK\HZ_!oG-2N&jZ$mlj-t/Gӆ hf/(461jlBh/ ],A\gwAo=B5/,OyA<wرDX^6h…&ؤy0DNMJUX +7+)/}+4*#"(WĥkTcw-BGv$&مnK~]dԯrzq-O/X pfb@JҎ:&&ANwc]"f>"xkJ>7 TM"/ AhŭD?:|IѶd, snjR" @& dgT'c{vYT4ySo -g?dیFQGކ]\dZ>0F ȑ` ;5N7L``оH]dޑ&z B%_|_ֵԤ-'0Q6:[K9PqTuG"(p= tH$EfnzTm^KkѴd8/1L5T^vuZND0Hi \OXzI%b&ݾ -9 uFs& V\1˾Pǂ_g I)u$Mey\|O!KnVξf@F~tO^ȔIHEbuH?#P{jNbF,| -FHCB1cQjLXU*s5d -!頚FafKɆd*)2Zذ-y} M 6Q 1Hxً7+D8[2ۋWnljm!]Z ,փi,+Bl*= n;5~}_9Qd .Wx."c|X >Z3`U"e41x.[7ڊp$Tʓ,b/-\!Y3?a[jb#RLEZUpf ؗV!1G(pR8LJԯ@_ `sx#nx|oX,[?FTvY+w"vj`zV(F%n\A^3A3?씰GG6? p>͞zUF Qǡ^-a]fȖk(=(t2m-kJԦL/"}~y&䘸:&yoi%??"X :1 -c'/G|+wWÀ׈MhτvcpLruUoRZ|e_sC#62|ғrO=@kRcv N ->9U"B8c$Hn[};8uUt -GEWuY@o)YvWQ;;*AN2,]N{q:჋k% -빘 9qg#5,kIEȄ $0qC#@gSt` $F/DM:)9:*m%}_W3?ղ_T' MɃ5VUwjNm]kcƛ+Ǝ 4q &JQ(c>s%btj*^ij v jn(orR"!ԲkI?:Z$$OswE!o,{hҚk[MUUBٯ{͊j?FUKh{~ar|)P8] ߵACVQy}{ofSvjbuY~+IlI c:=v՟M\$M{\`tu޿C^BYb,W"q;j>{D ̡603HI6BLʸ{mX.m=X,!X6's\t"ȍsv.|mYa\baͰGŰ5Yϳf;Rg_ќj!<"0p$LpQHG*ħ[ia+ǻɩz_S -D:Ȉmru堖&e:rxh"5K!K& f6q !Ojiru99TsyaH[ SX<9 q/$^ Iw>Pi݊_/GȢ#%7\I ;gP}d6O \Dj'u -Ǐ2Ѩߙ`œM=F\^|f^ι/B}DŽ\_Znу,8 /V2Y&{Z [ܵgˈQ`VfYFgTEnnB&Һ_{aff=Μ` oy1m.%#zǏ -4Wc/`;kYuox` %`ia'$/M(qU1Jŏ& -r eO@aCaObz{vna3g!ZR;|{Q50RVKFS@K]]hcu,>i^:@\RΫj DHCaIKs-"W`1=/6j}|Oڗwc^* -9L?ړEVE3n\FS?iXWm[8NL+JsJVNmLr J 22W6A5+LE9x gb y r1 6 {ώ*EZ4uoprl}Cl_Ⱁ,^UJWst=p~bDj1/tTͩ[{nt2+/O;i }^3jDv[Hn`ϛ_ݫzʨ;)> -AiS> -`c{oI6XIO ."u/\#o&ܘYզm jeK?%KgMNu%J1Q~"l,P^\k."dcs3rgN]Z  P S6nբ =MJ"L\`N?7,T h=[os`FX@Ej;YeyAlMu^sWdDlKlȗ(#, -mR) ܺ5SgPS=+4 KfSba 9)|"pD#s@оSmTA~^b "FEz>)57M v"jsTU{Ws9~P4z{))=Ԅ>g ./~+Tgݎrjg񟫑On6|[5F_Q YI -kWrVk0mr3b#l[p(j̹{ f?U $_mxQr5痭٫ G,3׋d兆FŠ.IBu&`ԲbWz܌F]Oj>II55'XIT5/V^3 -*mg{cX3)F9zU`5 (w(&#e^yC?CM8RܷHp!uSW4.O4rTwY(:n˱%C~`VkbNvB,|!<>>i7oap䟰'ODޢ۩xP% eSF'uVo|©?t? &' pi@'S*K ٌ -&0ȧ8.c[-\匤v] -Փ&ƶ Q, -B h3u뽨dzoY-Ne8w9{(1YiοNx!tNe"d~X#@t5wZ =W -)A> -b@{cU%BRsSWF Q#$G}e+eڎ1EVΈ)$/]7o QW'J-קZxzF[tg w ?O |*tcDNjOc -xh-ijJ2CհwαRl˄+'<uxT,;(߹!Fe -9I%D [؝QvM(23oHfU4z g$[ h]~X?vR: 6]Wzm1F>ڣh%G\w^.XPw&^r.}?-?8Vփ; v2lmrֵ9]RˀJVSkuHdo!%GסdD"h)-WE12$[Ez2Ѻ0+J_ ms)K"zA%J0q b#j9a[[ 4w@:4it{ӬY(txm~|f[rEp߰px(B=;h^,#vRzGThoK:hrx^mfd4=b1$c ۡRU?Cewc!IHwǮ?(^G7. [,):ɮEYm$-Ӊz0 -.rGAijW o/Jc<%Må #3 Ltmja s͝y $t -3(YF6UnKY_4nqgG2eKGRԼw8dj,BUuJףU_`/nꪷsˌ=kN؞U֍?TxKaRfىy)@3lXawr.tb.2 :8v~@I_]卑% &Tߡ ).ʪ\"u`ԵeyA_I -FEI>2^>Wq_nN>2沚"C)z`tc -ߨ\J\Z?>:Vn\ )Sj;#9weY'?$H Z]m{(GQ?'D,ˡIlcװmZ+)G_2d|yu0 KT,hSm3uce* r{Rm71[ -QSSOV|׵'Tko8#2"s:y TZ*eRҘp+ 4ryu'͔~h߀IЛ%^A^j"M3.F-ūZnOPnACL Rhǟy:60dAػހrrF&N1]U0kHvRg} 6`,7V#z.w*A&¼D7Q'8*){N3l80%%2hfX>v%V @|c#?1D竨T\ =Nޑ֤SDːժUdqW$FOɕn øG U˷hUy -V×!~RC:\䷚Nc`kX6n `aW1WGIg[:(IxMra=~(k(4[w"yO8$-^mAk!-UkT,v ?c 'x9J0۽5>wϿz>s^4ޭukdzXL^4Ϡg5yL-fZQv]⋙a6`&57b.jB3q$~'3@&~~%)?K`ic%}tNv- d|XYڝ Oq]|y00q`z;0^$3bb!(~/]7< 똚yKv'=_0zuk2jIF%7onY U) %᫽Z -| 3B%vاOsZoȨ',^6B UWر-ҟVs!Jo'.+CXh 3†8 xTDf} S/ }E~ΠaC8H}H! vdePi$xpz/rz0dJ,צ>@n(u6 jMůp:G3S -+"shyjE}JHG9pZmbL&jϜs^::tb?'="R6rriMif8(?~.+Z ƴp3{TfRʏ`/,PH8q'cT[`, WsnX92\b"Fܜe&؞yJLo\|X/nn+) I<;-5#Jwg4 -Xk|hbZ@ bI1|jff?SD 3'A㌥ҏB rLB`nygga(ipOicEi㱂C" I.4j^G~7 C--&]V6uQ`j gpq#1~ZH{-=K1nepW[CF0Qi+%}IWיR -b tZ051HVp<_jBTH \ߐ fT9uô`ELXBe9$ >TAB=!JF "3KBZkc -s@-/Xzchq<ϓ1碃0= u<2I[Qo` ׊k /f)R;k oks>&ȼQzKƿJKjw{Z)=#p(M8KʭTw̻̽4=2"ƣS=/յ]jqgB,2KsrӼy,qgWZl/D\dda݇\&[Go+:_)@j)XpDni1~)gK 7!YP'r' >|-=T"/ke>rΧьJ vSVA+̝f -l+Bywad(Mo*ǮyW$>OTTJؼx~sw c2i#H5៤f 9zزIx(Ax^QW&Xmv/lAW?NX1!GӞnT=.N?n',/LN8?kTEilӐ>H-,9SmW2*@MA@azLHrgy/V~uY$uۼ;rgǭTnI+\  -UT!k@?]hE3Cb9+8eWƋj$2{K疍o$UkGgߍ=zp~Iҁ͇/8~wDXO!&C)^T~&r4YB -AR4*%M"h۽ { R5 `#73Z\]22 H 1hc+~sվד6X8$i #KogpҚxlt wk3"Ʌ .>˳IGWTQfw}*|Ë5=sqYD!S6B:8mYJR\ M GeBW-bYUk6A7>Q~$V K7MM9_X\@6AONN -K&<"Ohb@:H1#Zd~ ?`쳄AA)yb%`22.(AJ/P bH_U)bڜ6G<<V'ଖF2~cڜrڴR'Zī?گjНv_ [=wVg`4-=sO~`^lEy`J[F-k4̫ߒ -B?~q}3b[^Ʃ1;DK(:+@&Ggh % 8~3w7Q'кU"J!?)أf?հϡ~!><65峷k1t$2XOݵGqFJ lu3 2{f, -:hU UkcWhмJ0(byLmb: +_&%/Z@kdJfx ޛ[ui  I3t0ҧta2`p{^2|_nv&N?բ4Jz,u2x!$r湯<ǰ0Le I8q=,a7U-0A8J"g!O7vgmrX קNwA8sRYQEA/jklW73&9qj5:S -anr -~T'/S;NH{ 0&cj.ɿi+d53!&U4qPQ E:XaU:QAO۟X%cڬ"zt$tֳ(-R3gdYbntua;L^/'L liJnuoۿ@lh62Wë}I;Spf\7` |0}YB%8uZzBf-w#g_qe+~YeXC J"TWðk *X"" ${9f} P`,K2=EunukXR. 8W$cfdxw=+Eijk1ws暮#:hwVUԽO_qf\) P\ԑ浥թЫ -Gǯ.A?/rSS)Щta ՜BX@9~GLj *̨Xҫ)XVeT뿩v'ڝ%aՇHeaJzWedFFߞ-9b/Q %2@E}x]l -+.ӆsÏfFuM3^]{ ?[-6==uue^ZTeS?G,@i0]?}CM[`.=o7D<.sYܤQȮĴv5wR* - --)[ukXu;p -T0v>cDS. D}ӟmHeE7br@(D)sۢS(=NդLj<1#~))xj+':S"].NB3s +/6服O # -H8ׇ'wx<V[?dr@x9KoME4*nF4}PHz[RxG322װ-8Ms] -4'x<]݃~\xEvd܌\ 6z?dj!["$$q]La{)kFnRpRRmm5MH:y@{_4Q_ y*rNyG>G{SmiI^M޽Bۘ\Ƕ1do!`tQ^4)Vm۝?r%n|PNe 3_j5سz9,RVDry%LG:?xhإe>'u~ue=P-d8GQ 8 x&x򕃜xs D %h&q}<b^%Rzd6L\IA.@FThc%EE{&}E])o]3Ez3ER6s`(ӧѸ3^AngU$c#D,YfQνtiP^[F1'YEi Klw"/0PCʁM-Xcey/n)tUU6V1 fcCCߤjQeisE;4G+]@MVޙǤTT3njM"aA pV/&][IcʅtݺX/O**Wcy 7Ms6kXf]u -1E-I 7{+s&$yuAqa[e/IS?_ -6/<R9kLNLY؝uB8NeJK5a6$3 OYMYEʹB.]F}b@O5V]; +BV>WzAzX -KO,\E:=LQ7OLaϞjeC)M  `e$cPrbYh^t>{#)n&ل&$%L@?iy9k::QH{@gX5ZKzQ?K6ސB42(' +8NO"%>q kD5ڮ+ŢyI=NlUyhiߜ%t Ѣߦ<p!N]sqjcN{Y{ <33^:#08)@wq?'_n0<֌ʢs!T)솢j sX9fB*ʱ[KxFhfǖm7s_;;s:QNL(aCXɀɩ։r jz,<}x,y GG1Jȕ[ޟJrAwM']٩Sӹ_ߊ1_g`^)b2q?^(-Ü2aKfTmLW^9풅-ԧ]@XsG bnFbmrwA;!Ov' DX - 74?-I@@Ԋi$N)ovܠzJd8uTXh az>Ї`LnUAַ˿GFK2coe^te3 nCQ?n'>Gsc" -U6Lz+Rk0|G-.L3,] ؔF4jqq%o2ޯr ܂{o~> \})zFk1rW?u )w -Kr9nZY@{\ZNhћW= |HA#q/I~|yfxbÌReO:LzL6(>z; wځ <̘_HOĕ$"Q蝹VY1ѸOź7⏲\]q ֭GiM la/jq IUXP /}C!%Bl16\1;G_r٫F~l੹M̑QH5e^8{;770Ns|Fk)K|(.,#ߡ 3$7iy< >7$:hǾܭ~8 0O; \phZs[/Rˊ 0zia^YѩNП=r\8U*B<n0ǶSH 2|r, |9Iy傎Av_2JDاj,YNkx6&.Q÷"S۽!.,9'@B)6%A$6)J!wN?U<)}^`ع>LHkUy5ytp"M5ш}L@asgVfo_Fjc׶JDRLqvlaKI&$Jv_ -(9N֎@q )Pb岞7[jP{FH^{fSG[4їr3Z"%$c4aFu/Zx4Qʬ9SNU;!وTAj$JX# LrW2.yapjms%]1_ !Vա7&9̓%ΜPKsD`k6l{ۢv{X{|Lt lBb]A4`C" )f=ߢߴQHS\s;1!UqZ7 ޳SJ_7JPx1rT_ecJt"kX Tq`-p -)OYE"-k^X3z' ~YD"H4*FH>2{m#MDk~~,}IY}r$fsm(Њq2~Gk}Wx30ڒdxzHܨv_G}14UPcqpJ`ͣ/'4 >S^iGfVzEd -iwo76'z #H}9E6RwP>9ylX@z􅄇GP|ޘ-O2=MP7ix3"{6q˱IG˃}|>Pʤj< -GP-6@g@ *-7eʂLoyL&.Q[jTFg$ӷ/X39<4M| {rxo*oF\F֋r5}(ݥo˜YvͫiGG -Wh0[CK E|HK*jzrX Taz?vc+6+֖vQɗ! ],mpZ0-^{-2Dߒge?Ҹ -& xg;&i 5=s7tEP{C9AD|[4"qjx9nO1ʇLդúO c? )iR:1nl69튾Iq6[sp]ф!`RlfyoI}t4 QUזi60uA8Y.mMզ-@lp폭H6<]C4s!Z}ExQh_'E12"K8` -HӾI)t|וPAjcgJ-c##t."sT7Dǂ|5FzS&Wae|]K-gsn[=òH^d8-#mVZa0*@ NB\w&cZBF1Pֻjk>$S{7ZD5p%Zĝ:>Rȴvok˓cO~c,ϨTs/D޵P`5Ǵxz#h|=T 4dD:s;αtwU~:C[ZLߜI/ԔEvpk XP,<ʘp9YZ>5fR0 ')'7!}xiO=W{]Y e{IHPl -Qx=UkNDt#?gQR@|}nG8Ua(7ZKg:tf;]v=@FPCB3ҜV˄[ΙyR%#]zFpǶHyVjSQkJ#9;K]i0Yo=#tK9= =eK,j !%$d<8Uq:=."Ɇ{vAd(L*;CS2B/8C+28  %'ȍ`D9 -LL)kZS( h➳PutUxâZOub_d_7*43P[U_RT%&i'T5 O`\QJejLn#nʺ!zSEVw646"27 W6-S`*`akN06 m >Yԗ]5K9삧T -{sqyYf;<S`WHO~XoM"LƳ -]|QɷiAŊz3sꍒ2ÛZ3K+@|BJWH!'R n/ -,]h(@J;g:}1,Df8Fq3R˿>P2Ȍ<_KBqX+##$SV:'c,a/!3#UNۢ|qDnS%vRJ/rwїS¬ihw.BpM ޳g KxZv/gsV)@Ņ5ƬJLn4Ћ6u~󚝥mlBh7ޙGMnt&  q'U&!:JQ0%ʅ>'vIqk"/r kEoqnjM9ԋth=I<0F^G]E`:ٞS2tbCRH&<|0F` -݈ Pt9\&K@Y`)Bm8}T -"jTyѩovM hv=kd=7ܕ{Sh; -]Siⴝ*GsͽBԓH4-s6G[GqnhLrgH9Zi0Ԓe3I8$RL%>rZM淂cxlj4tt,c)#dNRن3=PѠ{Nga6'+O Re\>T?{Į 9: U r~\lPrg/ldH,~ r!G hkj3zW -˔v+՟Y4Bc9!Shʿ-XW6ah^ tQVEb-LD)Ms։_W4ڪPH)v2s.p'B!yWw,9]LݼHt?}MCQZQdv)~U7|t36] yʪqat9`#DWF@V9䋴(vcX)B]AO*:FùF<]1qWh]EОe.[>/ϧM;O/銎䭏¯{~KƼafLKA͛!\'df ^K: JM)  \} gGSŪmu'bc['W5BuO`i;Y^MRdyop~K(Vfym.@'5}L !F=993EK!猺:kK1%d%3&& t l/&s/i"OsX|Ԯ!t|$] k`o,5_-̔ b2JFJ%00u汓C`qɩfnLmsEꏜ J_lQ޺כ -cbF@k6DI$bW9CyࢯS} +}Q$CFBt4}?I -r:Yv茍3,J%>Jn8RGdĞ>@㧀Vaqx9<&gUk;D='4&QԄU(&{fwP#z"gi)SvX_.zևi4N$8~HQ~PH#8 .4} }s~xtY'2: -6am{Y^tH\ Q_alw.CA,iOh{)-w9ž}RT|- -s -Be5F,0#G۷QLcV! ݛYfe&% _2]To Cr*'j۴K#wa›U҈3qE)᪫6`Q$dJ ۂ|^ - fiS|XQxʡ&Ё*:+-vC{ l(Nz]1P6X-DdXcb.ѩh ؕEg3!]הC:rVh# E7)[_1'پ7~2@kI֘[L%΃hDo%%- ![l&4v/DIذH`BG;?LnE|m(y{MՆaY^ vj= -dZ%r,צ=$⼛G*=RUwX<>&ιUoN,w-a-]|XM9z635lA%OlZ5 5_&U_8dGgVFxkɖ9m1{I(bWk3=!o]s~QiŬgCh>3g +ʼ=9̆-yy^ {b{-]C^MSN|&!xenCE?¨l9=)L"lFV]KFƍN ^ь;T>2: ~rIlOH/gbHѽ@jt5VeLj):\LXQ?϶J3$ !v$ l)?r -, :G&C/1^:%m5q^B)T>wH9@|*=l_Pz;ZW+t5*2JSAgm}3dM儏.@o>ܔ߹Qv~I%s'K]Y4DO[+7'IwPw ˜'BީCAY鼷Ww[Li6}ez -П Gw #dg|۲VN HKf09V`C0T*dy5[E#fl:Cf !q*q~$8V6*z/ܲ&m.æO52cRorL"#JopII%mrBA -{S|Cdw@λȞV??Zd㯥pqҁPlQx3aE0u_|`ME4tNqBnj࿳SыXP5QtymEFRuf b?;F -}cW;!reXL~*ȒId&plZv-Q -dnCP!;]V.%˭a.&׈:y4Vˆvj|s&59 qyҖS5({+ G}mIU鼾3"oAEkbZ> H -ӗv9n>u>x-V>ø2nHhwi PE,wO왾\Uę kyXIVYܒ 8åS9Si)=9BԹ#`g}"Ϯ598 X2 ü):8IIEtYW|d0sRйzwysx:OvwC'-'ר -/>ۋbth:tDHei`ߤ!/nut4]Lzx#+|5; -ם[=lre a -K5v 躣ҥQI Jgu -,UWWfieֲ_|bݏ'[L菙I5hr&"]1 -j-F'cN «be#1yws @]qskcG>g9&3z ˈvdž+6 4Ʉ[rw+ދmxuԄu;!.3Ey@ti"/^ -k4戒A6w.9n u/޹H3gyVo+%6n/,OQ>12 p,L S~ i"_ARy-ѺBkh.j".BAsbrR\DH܀m\s)F)t&'i紐(])_Bxm22d#o)/܀M'''k1#wnD2Y ȩb0Qp{cBp6WRewT] ;SP5Ŋq E]Ik)BK9Biܩ^E/TOn<1jm A]H7 (ϋA%'W -}DYΘhT֦u3Gn{J*dnTI 8&PN(Đ_=<%{?\RѷD{&f]cEBDZ -]u~?)Ay,/;:V~N?ʐgьQ: -krkeA:ܑP2v >\i*DM+ )6IZ1sF%H=ʠBIOZ?21 ^G1}DԾ&OU?b@đ0ןO8Lb 񠝒(nzZ/Oxxq4n;,/}>xiBz -WH e1^ -ޝ׵ -Mu6z ڰS]\0ܮ#xlwM}⾑Dzض儦J~Z?3ς]l]hp)tlP%x Uͷ:? 1?g!ܺ?%ISPiio>Ԓq=g SX3gR -a1ĂbFS,g-7.~ָv#)u)4|{Tp3n`Kr٨找b~wvk5Zl!Ka6urթw10LtVSX>f*͎v!#QbO8'.0S`HsptBFkyH o1pHh96b<R񨬠Ld:Nj')8fkns.41_Ni4r>X?9.ɞ"?Uպ{џ0%?Vxq^MBl_뵆w|wΡ -L)8q -N4EzXVw}зNTJ}&!ƓòJoe FcLIn슉(.P@7Pee*@2F <%,Åa4NJ7]'N57S3-r#>K1Pu=$O`*Njhy }s;mec29u|}9VY>>ֲsޓx,(8핪祻{If:&csVAi)O3Z>ADccDi<MxTsBi[GFLsl5=kZ0>8L7)|C=PJh܇m=cmCe ob7! K*JM*}R#a'-K&Q^"M azDzcn#VuBm# GIT,cPtkBwdNlZiCL -$WrTW4&!vB HX@Kk3@u -ͳNǑ-OQ'^pD d =4BoiLZ -խ) JO1i4HqzΓX"]L09r0J9Mт !$!kൗ0ۍoM0 NC\ ŵs-=䰄sUr$Ţ˜gH¹Om8BN~y F<}GB -\+д.d 04)@m?7ɯ2SҕA ]YO$. .f"jpAf1;msޤMf7!'h?%Ң>CFHv3['/C= RKUv`pw1dҠI ^j8 Rpy09yjH e]w<[@>Ić*E̮2%\Uӣ`/<}p74叒s"E!CI-VZ$9ӡ?&2?P#k,0}k@פЪG#*R+p#:;ӽʔJv%GȂ I"ԽKYY\[BvL: -O(^МFMR5#I1/Ŵ3M<ҳ%̗(Mb5,Uė_IZ֕@^Bs~/ﵷA4`H#S6D<^|,zĵ=\? DIim$g>b 1%K0ܬ qg+ OAB?%NܤK]awGCBN,2Y֎k2_iہA@!^|n'lT=d*);b&KԆZe_7g+).W컼TfuF1VE.P%6@ϋav=țs>}_}MmNe'8 p̞{ )I876B< WŤyjGB(jd[TFn30f :Шu.:)\d 0Uw)l)nŤ 3D (䠗hp93&"s? xKbXu1{ҥ]H4|͕AAzF[ߊn< pڦ [܃'fO.t:b~sf6P4vя8`#ł&2eгal0ѢLt/<9Wk,EsCҊMJr_m [o ќ )rO*Ie1 =p*V -qKN͛cmٸېA1){t,ҝk@oదb%߼o[x3yE6D[q7,ݿn2,F ^3p@Y-"l;?.Z(R F]3!C? (9&bxy0\mdֻt! As렚 tުqf :WO{JuCr̔N-"nFMAPgѪ+QC -Va[ypYh4Zӏ27Qx^2rj1J(OWP4B_)&=-2A<2 -Pu,wȲK1q"IF d{[m ތUǽ -=Ӭx̸φX -wZjRqwha9J `tqwCwo=٤qr?p@ΰ..ՙvRD#øw,?o\%ӷ".Xz䘀w -ZҫVIvp.*H¯( Q@ AaĘÉ7| 繭 lC6~^5)v<[4Ɔ'7RSN[i\MB6R 츒Kf SnC,U'q;|K䏰]/ihɟ~<Gh&ː?ܕdqfpi{Z1Pf2\?EfVLKl?բOR߀ -~#9Kkv B/L{:u=$ XœXq(䟳srɩW8˚Ү.XaUEϽv6wԱvF;þ5uS͛Pg<:I BWw>8l4Yp!9gް]E> O,"&_A1˛I"OU+%3d1kit AƠORYNvyPOXlz2I,Lt#C_zCVD;X(׸i*r5~ENuWB玏g_ܱGoHiguz.$lkƬ\w8*9N?M(R#!*}Hc-.C&+L9UB0d> s.XwӳpC?W\d{`E9^?&ys)5G2f_9ћf4V[?vIL¹@⼎rVj"قiK3| ʬ,B -{eٳ3'*d9CEi:;bBm)] a랚tapAm۶mv?mvj۶m۶ګmw0`ϼ""3+2K025h%_1 J+dflQƀ[}JZQM@r͂mbv#`BbUsdˑNfQ{Kf""Iac )V̷<,uMJk@ʔ9PjTO+(-}zqvD%ocTg) 3R`7\HF4ebhr -f*IAҼ>_p Gz;od?@<"J̒o.ufraH˯O(Y)W 01eb]5 hq?sQSZ=0Űw/c!PX:ZI q GZxufPk%e -𾴕gY2vZ\#HX}򋮖DF&mJ}+*12у:q6 -AҼuP(43of1],?%SztЄ+rakCʺfҾ9_U^@!9q[=?Փ7&OnhXI8xTbb፱"g4e_^!M S389~r2UnZv屢:i3a$ R xhv\WAU&#ҍh);+/Y N=} -twyv_W -|9|ԎFރ*jQLGTõx7W:˴Zs=a2\?289 U7|(WJIuAeuVec+@WtVC/;)V -mg!'BKMihqJ?q߶RH,=-2[S_V<Bny0Fs b𸯬M,I)3K5j+*ʱ^.$~%:?[]6_+P^‹=-פ"!oVPQ3Ob+9VQKis폣`{([-ǧG.'A]\II Q{SUv/KBK~I ct ȸ!ȥj!`IxGA+jt 80sVp7pT WУ)cVqW\v{#9jڢe D;Qjs+qLj?} -V~rTD0bt)q'.,ؤƮ_B L/jI;(3Qڸ4xpQSKNJf 8%( ,rwQ9| ZVʦbLnVOhE=%,oxIZ -– w{Di`O.핸UQiZc0вC[J>;A&ݑ| u\4=<=ba⁰*K bJ[my:LkPVix#Zr#P-}V:wb1>Mj:'yo4r gTiǜdlXxbc 2R kqjKJ&Q).'kKl˂F-ڭuG4"=H^Kv@A־Zc',7#?эϾr$#h.FS9A "C[F fX~ڈEZYO'57 ݼz}bS=Ke=W --kK9B+wd#+Ħt'9 -bIǛH&-2qZ0<FW_'\TͶWaςZ`9]gQVV9; ߑ8'wS ׻*oUzj\PX/k*>nErM#pbZNe|/Y\Kwd3D,N}ZM'S|<$s]WSm~'܆qPޖ~>Y2sd;8yh] -Ƣe4 -#f5P3C]SCoU#aM{‰t/kpj F[mBN8ygaXD+@WXV JrPVNTCxWaw3De)q"Z\+jh%'@z\8! ]3IR'e Ag#C1-;u^*Kiߔzd.95:] MD#VKzhN5Di‡Ɋ݄\vr肀4Қ4R -\j,朵n?ˇں D=AеX]DB|nkRuesx l}2=BT-M9 6n h7AMBjʀY 6 HYu/73T i !9)PvChX$ HȝBjݜ4y٦a*U)HACP|kL :;V+ˉ{.T YQ!~͵cȂ; -=(MvSDzmux5|Q9&ð-H?fϤ(WoB󅈧^LErڇXIGܤfrmԷ@k+NP)t. C={ mH:73h#d)Sd8~P~On`m"eRfm"o\oZ5QWxM:*rMmr%t{U54R-b@W|ӊ\'5kD]`P<޺l,Ocԩv4[``t\!GxO҃~T7U(hW_oծ_)Yˏh˺IxچEfa{`޼CzcXcaѪ U%} -БCAD, b7}q]ֳtjr]9J17ڼ3 %/)FiH ur: !䯏^}k9. &6vU.X/{!m+U@n6U3w'VptEPHs)C*f1nO]VSV2˕/#:jᲄSִ[9EUj  բR_՛n`LQ?1LǴC=juc=;Yv,:;}_ExJ_{,=i~~561\ F߶ zg$Ex^g}r2?xaY` %s`Q4x8X8i1Ъ 3H")p1k -dϘ,FL_U, 䛳m!gl%8kKWIƑz/)ʐ?AZr(DOFAt{lhɐm/c1Ϛ{]mSuHTchBE(O]Mu qU[tu_MXt&44xigX#cZNS'D67i#,1d'a{4>v})j%l 9 z(Z݋0,(VEe "]2XՕr)2qE2hƪqmeTʡMT\Fr臱yf*:yޭWZ\yld< x{_FcЩQ:5eM ł_ES/Dޣ.h7cax/ݒX5oʂs{Wx{& -'ןs4e,rbKcqͮfFd% Hh_JMS]v "WCe`=yCXq?^4N''͞}lB8EJlt=eA}尵BpnDuyhqxRK[$E/:63EРiT؃]זqs!; -~@sy蛹6ca-i%+܏ؔus%LwߎRM-cm᤺Di$jM S -ug-DX;+`_Y"WW D`?L9/eY?$IêX(_q Xg*oO a0~DjF>}(WCQuM(z&fhQ\s\ Ocs/{^Y/łIÄb&cJ!( Iz;!TBD -ӪfU:ΉoqYuV{XHR#v_e؀=4 ꘞ6^jhLGIgu3n~ F1ҩ<#J2ߐӏL:Uu8R]`{#mP@ &R=ߵ* ש]LPx5cWGYpq jېђߥnniUyxf4Oa L膑U2Y*}VkqUR[VvyƗn'>Bwuz)JۣQ{U * mCI@prXNʢ%weA)ercr{@i\vT: ~`/߿sP0kJT3%򭷸YJ~B+Et*i]yk `C~w4VG[(C< -6Fzo90fH -p "Tϐu_[ O+ r=h';8x -[:Sx3fULx&){gYݜ6 ?2p-)m 1£ej)}5Tpc -EH~Qn(͐0H2V:bּW93 H; ݄+R&L Bٞ!J#u]wr SZ~`MthĊiLK ]ug [>ƶrlx G \QV=ϰ -)xN\ׁPm s6̎QpZ%+[׉ V}g1dJ%o&yxYUƵJLH$ 1+bMPMfrOwy!>#x I>gkG ūWP@Lۭ)ޑzQoxܮJT~.ʼnQ;W=/i٭UnA(YP=֥JF9lqMRy]YV솽t †+'GlB~H ?#twDR'n׹# nlE_d}jӭ7iq%Z<VuPȠI:F٦ [{?Y]b7TSg͕Q$OBA`Q,2?A^~칞uƭ[ud E$t´Xg|=:w}q#H~&.#ʃ|#F*\s,74'UH Nyݦ%'ή 7t'N(o%Wۗ ƶ ']ɺdQf[L`BƽFR_WmXi^Эpًg[RI-c#vL̕ZfO,<ֽ_k.y/ P1W.r\<PwWHr머LwҲ^3jZB IqKF?ҟL&_!ӌ1mAdxZ<Hd0ղbp v81}0ѢL oYewY0FVqvMb8 u$!zl:áH -R#q(km^䊭xfOdvN?\RSd5.svCLOîՈm[zd ؃RY>42g*^D1gCAr1ƐX%s<jWj\I'vOfxS-R̄k.wS00tU+GH/[)1kN ?:(+ %J4._ - ЁIm#^4[EoSN-$@=N6xt2Yb @01 \etlG唖L^B=n#2v -|V9ПNcz;[<, ݲqe(ǽ*Ike:3('eq3EШq/5YV{{W#bKZ/fK4Q:P -KKZf<+F+D t@I 6P7E3H\ܽ{%ֻf&oL҄R8({ڟ;QHB̦YATltd@]" 4Gٖ8qT(НDN9*ywU1EŮw"V Y,u&ȼ$W\HH,®lG:U턛Y8ы񦪔"`ɞt.S֍*\ -@ry p $X%6v줤\wRpN4#hVVtC˗e_$~Ҳ:TW+@*NYE)aU&Cf硴\]f@$HѸmXJ)0|1"QQ\ n'Jc;a~/' U/7w,SF^30 q% -b>϶O!C xILvoli9-R^{ ;zFK:dϣsm?2x=Vm>XPhp *'ušvYQ~=W X*C9 -/-wN/I\/;nKP5xNXY]j[-S/>~ٔ__mm^VvGs5|/lNG  -*Ε< Ec֤,>>J -%4| 0k{nnXGw&_ l].j̜ˊR3=ߧ|==+hq6R3^ᾩ y |f}?# X."Pmpsrg`)__A4L:pKo+T͇ -y=#l9nS|58$@mCI8@HT|4~~<&R/Ě Soฅ. %U:v,#82nm ߈]foAY7jWɶL jƌ  eǕ@MV*t:'U9 tU -.{innHP/p9,&4!FCl$*а~HLS2t"(iVjCc&;[31Nޯƻz9ҫT):ɔLej폣߂85@7ԄRW[ȹ@2(L5lMrCS-\岊q/-ސEG(>i/ >@P*;7 j-l8!fXbWhm j?=0"=kj,RĽE6(8O.I9,ѱKՠsE4Z Z}<q/G_`Jӯy5Nj$ -iBo(Ώ/'z)c} [5RLe4\rǤs*]=O\lYivK;˟jԶ-sVBÐy.lZHJ5~lB9^hKSUaSgkFM= <|G.e%ss].~B+iNy?&Lm/fǩ >w4W>@*MADjKZ5=i&Umg2H' 2`Qwxeo}: >}|PyRO]ETIbdJJ~CrQ㡢&w"}Xafq3ƏKO6/IM_JsPޓ‚Oא=NsܟSZr3Qmsƌ(y a5aDH ^|zWr, -v a4Vrjdnp)ȃH02~ qEEv8+sш:+v;=# ?frN_+}dzbfrgbRGH96'F-Uc -4m{Ur:W;)zNؔB`x.z0=`obXu]^T ) [ni.ǐn(VV0zɛ!yJpIʃȆҍ<5bnԾ_#$u(auw }@u Z>=NB=Vo]x -75ZDfI;- 5meT|eRujZv5X }"i̞篋O&P\Idbԇ̀H3H%w!YݐM̙^_:t,8]0|Fb-ZށzYShlAtVKDpx$ov5voBYҪNH$WQ#0225~@NFj`9wN31r R;Pg%H/'#W4+H}&rP^L{#i][aۜMW=:;2`o*#tTP? ||΃u.ΪųF%.'F;ڤvP9rZNN0ox!оTy895B9E(- dFtIϬ`\;pMAqwxa $XFc|u"Pes?CGq*Mk8,JE#>znLF(Z:mHPc19f%Z5t: -B01—oc`TO'J QOrRFyv7t;pSsWIКsf6`: E9bq߂%#ƒȼ;uOE`AJK, QK ֥Ox@@2&,o4mi h2k_?Y1Э,c넕ƁH ؿ+!UŲ|lnUSI#xXYG*ӄA\8CмkCo?0rNKVWEO/# )3ʄ_/_ŷ&N$cm#ئbN ixz-wݐt ``#QTd,^Ds.M3 =Sلw$`c}/@'0*ggbD3nSGi~3Z OoMTm@cHJ[V}¬U:ѷ'a C͔VI3 D[sʐ8*.dvRնra[ܾY,$\[i"9m!HHL⾬b f`K+mշp1yUHz9FU7{8 -08tsE2lZeSV.m{B@4/:Ap%l<#Qa/Ktbcz Nuz'`U!֠{e.MdoX.cK.jl=v#yjYÇ WaB8;nil#,Z>oKVpd~Bs^p5P(s= -;5&O.x (\)a+eDQLhiݔezR*ٌg o[CJ -h@Sjn.ƿػ -[Dygb8X.߱Cg#ŧHk&*Ykpq\TQ/74\xyrLk;kuNK,G}\EC<~>TQTt t)r][obzݩRPN&43aO-vDf:O]$/&NΘlLbo&ptr Ĝ7]SFt~X)Zך>%bV9=8)v- ~Лe{ MA3W;Z36zu;Ƹ lK񸞝ܽ^`vJR91c EѩIZaN쩶}3ejY{sXKۀ̅D MݕXlj Izk"WuB ,hGI \tq޿)H. qxGYb©a:;XgӚ_R4O߷9$sǞ1He\T ~W(P.- OP032~eΡ~f1v)z< ZcK6wb:+7h=9{n-q:wuP v~ZtV.|$& z샨 ab'_e#\"6jZ}ZM -,fvd[sf9M'7بʽUTi ;;-:grpZ~Gp֌͟<N Y&29(xpLwD|ǬjZu7àg%dL<&5Y#ecb7m &ҭ7-vbhY)`-~Q;78X4DamfdrO7^luX<9"VS19*Ԭ @GA<.e(SxĜ0KMzK#!bD_ mT S ;ZU:mۆIB&#\ 4 fv^.$pm K|qe48dwk:e{qyί=#&&<<'=)h$/VNf/7!.u0?L8p8inPVv2q(C7#䇞lb˶l+Z%ɝœ5ʶavNoK^=9<y׌BB_P*$sOH* 058FbYvo+HIc,k>{u]JR._ʚ4O!(Ѵsj(_[## "ksKΣ ₑ ̈́N%qYo|`0ǝiWYz}xW}:wMOr24u"_k{1yB7Փ369}", :72*=5Jշ_-oHS W_ áxCr齎ڵlnI2sִ[MN -n@/BR --l: x\nD+5f8UߐF:c,ϝcc6R?( -k-Kyy:֏wAK3Bغ-lNEh szxIс} 3Û< $*mNWǽ$sL:#&qਦ1S0y4nZm>qxS\IBJi%nѝKeAi 7 -fcHȯUW6Z}ܣ FO oXćZ[$A`|Ԋ' VqSDH׺=6wr7ehzA4Moiy"H=;ۃ ',z%?7 -%lTJǘ"=Ta -P0&R"ěq@HEaCwq]2AM4*iIEIm۶m۶m۶m۶mݻmۜ>**cE$vv6eon*d'ku*>#auBd<0ǾYF7rJ9mR~5b _vimUoW fဖ{RWWߢ1m?c{ZqpE+Z!.'>b%)ezM3NBMK1Zֺp=JK8nN0-=Ms ^R g>+bӵ sG٘LF=P1vF׉&CR %Bʛe,*U=4vrE]Rk*0٩ftղ `!PZCk4%v* 5;_z01#T,wKY.2oûͦ -P8RmԆQCA4mr,z@R9t> -(o:R!BHxajN?# 0a*4:iLzlTf+FnpW;#K,~!_lY~ kHΧ ISWa6A#8#d9jITpZgZp~ ~$zW jBrZCotS6eW L/?2Jg8 -δu-2 ~M;[׏Vwm^}/Ecur,-|/چ**F/^JN̾G ?b&QxCGsnE>^o:,f;~FaV;xf'1Np <]07+JDQddiVIU_ I gdq0 ݨ D>r"&;.n%yb4'@/1Դ%x[Xf(gZT:sIV!ѭq#5TDJv#zK7TK! Yz-ݏ@a&L^y2=IB$ՂpC|I<:VR~xa/ LqcCS儁ZD-ˠYg$Jf5owоLlݠ.m*GAD=). ܓ7@H;Gvfe؂A 0^weցAyY2i@dк?27'Uacb,DyGx1w_?qյxBf "T0̫a_-"U@\yO=ݰaCfbMXZ)趕`3y_vj8(*{Jkad'?jۼ%U&%3R'fɭA:yX˻5(~!Ye)&ͩOo7? -`Kip{)JId~eQ@~} N-"uɺ u{ +AXz$h@M$´n"(^)5v<0ߡ13-d /qQ"Dx>m95(v.d<BvTj5?뵱%srZA;婃zU#]&UˆFRnUꭰJlNR:a"| -@qꤗx~Np,2^FΤoO.ƾ[NG& Zs@1*~=Nr4}9$_2SD+EclSB0ǿ]RĽƃQnO^0Jduڌz)|͉o#jr~PigA>?meHbtkM -HM-{IS2Aćֽ0py -U韎~ECw ^{mbq4Þ?ΟcUKtǯL-)0+YᾺ++2{<6;,kԖ; "qu\2,,5zC]xL* Mxހ㡂2љ=a!o!m]"]J/ -|ѓ4vgڕ{UlqFg2AD)wOH7giUo=}"磬r"7oM0q}6Xh!)h~y,k]SUdq e~JA{-<@,\貹eR&~$7[%HI*EzPmVė_10Ί΅Gu|8E* -jNPə -_dۅvA+5z7ع} v QnsR~'NDiRӃ(;HcKǬ^1VW C3"Տe -s)ZB-Az/<Q3^V~&9(Dvz!ZRǭ 0^ eL^ͩ]q-ܲܰĺ'0uP=Rn.,,hP5SNvC ơՅHLբtpa0)Hǻ#dY zBt@\ ޿zB77úM:M )r(,lN@xznٽ Ċ]w?Et,-; di˶ N4*l9(~3ʭ#XPL^ WS3^Vp}%韟H 7;ug(x.*נ$މ游aI  eQ8;9H - -˴s$Tzu -;nG2ľR;H~vAeZpum*05eA~}J;Xyॳ8ˌ\5R1čH! -qC*a:T3!."[mԛ'6rdG>c>v}.[?9Y(B/B@ -E?2{3׉Pk<*x(艁`{+IpK0^G,6I4Rq?/d(cUZ VC",*fʁ1՟8Eί6*a1ny懴Va;b:jJ淽@ -3h'PͰt¸*"O-Z%aG|XV=@IVf[Px4n-^ Ҫ $*jM;dDWZLYKe])qd4XJ( l|-B)̈́ޒևqT$&̧q$Q´Kı i~&S|;9jt_tF/B$N/f 7ĨNpG++r;W?`}FdRҋy_} -2}c' Mdg;QEI><#v%hM؉ Th,Mt 'EpD ܃;B8u+A]IҚ%ХfgЫ A"NReuW{-FGD xcĸxK Fn/iu;KY=* ,\?^+%U9Oza^X डTXjtsF~ -$!m SԹ<(4".4sXV&8M>b1O^Uz:- ղ_Xs{TX߹{nMb>!+ԉ Ս$~v6 7H:_e`y/9y6jc@8&w*[yn=c^z 螦)ʀ6=FhMĈ؎0zAݣ@i:J P˜ 0,PǶ[#- D~i_$F8+!Q1陶0ppzy7PsT='=p˦p -k2(TL8IbIEPҷֆT~L3wP4 H,ńŊ͇n]$ii  x֙`8,JzGQeF|١Шf)Lc9ۤX"v8K=O}X |9r!jryT'Γ]oPtBq\ )}a1 Mt@ޣVѺOGg`>9/I鵯j;*z"][yQ}q(VU,0|Yrw\p|\( \g L9tL_T*}Lm5~&!偝qJ09QN b|Nrr^Ž - i|uװ'-pĥo 4K qW]ݢד.29 -jwymn繅c+^" /F;u,终kܲyƲ5\̪^ vп !HPP5HIfRlIiЦXTD'lZjB`IOMb VvƙM;T/J-?4&,aTlY/to;_~0AKSHX9vX%Gܧ\Xq‚t -o>e~Nb xOl ^=>e0Dba+;/˄h gb'x@NybX+Zt$: -|U iV|ٗirq!QN^ -z~@,t]a<76Y\ߘ/wSԦPM"%ػN)|=mztc ,'6)͉WڢH^3 <C[ - 7oc|7GUk{0|`}0>ӹ1MwE-y̞TR2a9h -/<i! K6 TPND##Jiٷ% A+6=o`_6o/?,!P_^%A_%z!NFި/|BPmiAT]dAȣ2iFFԭ&Q3KjnĖG$fTC/.js^G"c0Jd1`1U.BkB5%,H}`Q+k> -6i ѺcuDŽS YL">~=8Q?& ccL#QX ^miйlAwL%)8Z',߀T*v)X($ #lcn7!ݺm]J};n@шmX9gvkcњS-F`hNp{1C,HPzyvNslwũ8xf oI]0uS/b5C8iY \)w^x !NM>T=.:[hLN>2:""F)>[OABeӼy/'>5Q+ ɡ:m6Z"94@'4b YEd2EI^SKu]S@_I?0A]{C̸KGx)([lB&RlbUEr&MKyڕW`G/ˋT;Oes>)C~͓ jh9I@/fO@{6$儫a^քؕ6iw}}OT =k*f<&-Ҭ"a)4%). N\LF$(MbZD'Ud?=+ԲHFoJH6ꁌZ1j}sh}0-҂Gt-gˢ}x1"'.}2k& S"(kq%">1+ DG*; aa)-Ӻ2#NMu6e8A*mmmN+a }nD #^vGD޴U(BO-@m&smbLE3^H#=.7iMq309iA^*>J5CoT9OY2xk* A~M`F f }b$;;>)_l~{4;gH! IX/c'{/ D=r.sHѣ]r_B_O]+(!լԜN2Mhǃ4W#@$Uf4MSRSr:E7Tv~NJ/7n@x;9+R65@C$=!yeuuIՄ+::bM` Ń9DyB+20ANF3繶|A(4]ʋ&xhnT%K~u$B;-l!rrW3JL/g$8ݶQͻFt/`q<1,9/,"E9:Ⱦ!]WH=(SyYReR,n ep2=R;J`FB\z /o\{JyqLld`8Op!qZ앥G}|6#;̳>`_1{fdȝ:G/ʽ٪~܅ ,jqGo\߈$?Km+"1wlDԺ-¥ʂGܕT.93wn?tMNT(V5,ŽaGxbax?}HGQ7VPP:E .(SlK tR7x(%7(obX~%B-4+8SOc$ D4#,o{ AnK>=>[8-0;ԌfO'Gq&suW˿҃tHC$u6 Q~O&amٔVxž?%h6QNUx -S URצIL)NJBx].vhDű5[ԥ`>;vDYfX>+j@- жحiO -n+ѪBN~airV j;Eh2ems'sܚzoNY)4a`cī|wzb -KU ,;;N'ࡼX񮢎tϘ|A9*yS'tmߎ7RX͚r_ीg}۱{0{. iw@~ +Hez,lN#0I -~š_߿H,b"-x,{A/^?|fE$i![9?8}!oo2W.BG  5\lw;SO3!hk^L~+az,3< - *N[wTDN#-=h|4l@ޡiS\@k3^{_L﨟=]Rpg g<0F7LͦdK1^j{QwVb~d-t)}Ce - -g:c(K -MkۉT|й[%C a>@&23!6g@6 ̨r^ $o/y;QMWQHE֎5ӤB*/mV`|U",Y,l4K[;_3A~%,?v*-T#*'X]1 w #ӐOHrҚ V:˴U|;ur˵pހE$ijv7tQd\qY6^ g'kN &k|2ޞs+͗ 歷 u8$U5@Ŭg7Bf+^9mEWWbpd?C#V5'eORw<1ݴif*Ʒ\EZb1{Y6^W;xy0bIrG<dAbE pߑ*`Db/Qܬ֓{BAwaxp}=}x!9@뺜{%2+W;;vޟhj_TÿG7J=adIG|!Nw)DALCh&F%7 |toI$&g-V{Mrc=Wi~B]({HP'[.:nKMuYaΓ5qZ4BćIJ28 :Fr]|( @,ba;bͱ -X. vm)K ۼ x_U_ -|pƿÄ y)Z30 -_ODD!, xOd7:s@ש s?')G_֛kO?^)k1ٞ,2bN6e (0Iu&MTQ%Yyo(yl TOU+n#XJT.,)SrMy/n@d)E.h΢GkmJ:-N#<Fe3(.nYMϱ?-^i({lsAPI$EoBV_;Oh\hߠ!]X/"=XOe>Au䙏ѿfL觺h{ Lz5+96 _p]F͎ (ИYagT(z2.o\& !m4'dB{gFBⶾYA*_+R~ X0&8laɽQX9K XҭlluKږaeӔ2CY'CϚJ|vןG[%e%^Zj1rCϖ*9zF * G;p^='MDwcC\ĚC%zuKunw[p FM~O*Jkӻ@ƮͺGܬƈ@`6{ټ`*_w2ޮvA,Op{qRo=MJy%!XkbAJ ́E]=b?~ kkcԼe8D2r @6 ܀iKUx0dHaH7=f{._8Ōv{/UR"ҩeg vvA!ퟍřjn kݜYEvCwYP_ٯwld4H3tY MXa\f"n =-Bs;CB f$lQ}(oϧtI;s^,>-Q7/Y-4 -Qdi~w[3bJ;O\4,D'xF &"QrͿ;08.|ģ=Zwfٔ2Dڈ=beI6(6~=Fߞ)A,UՃ`B\乛Crg`iϼp2[j'"H:]&3:}5e<>^eZ>`r4uzPN KK>Q9P$k~![ϔV%NKeFQ(zIU̎Јޭ`)nxM~!xz 1scuDv !wN:%M=OpFZcFϸ=:-$=f!Y^t04X Wߤg B{RkIETCjfVׂ9㑨,+O }P4a\} ׺*H4ʚg8,)92|PL޼^CCo5u!eDG?-ts]rs )1=^&!\ ds$Eاñ3ev1/Qf4b i y7iOڍp5T6tmdI7 `re?n:_6\B ;;PW gf[/NG/,ׅN`sSO@zm3T[ÿ2Փ B[WTeXnr/a.)&$Z/S$pve1p4"l(陏=3;~4e -<8BvQ9 -qwmߣZ,gUchFFga{ľۆ"® CKQp+F^B*[T(E8| m۪|L>#""wJv2Z 60شlEF.?+M(kĒI/h1ʴ]Zki*"HH>OIv#_^"0 n&V@f@#yPĀqװ԰mV.VBdP$*m7 "R7\2* CS.~GҍUt”>LVţ,QyqF&U{} ؂Gz&{ A~d{\ߞ9_,P׆clñQa>`;bz2`_2Ჽ*˵"6V~d%5ZFALW*Q>2ifa@$z%5Ehz:ԇ.'r=S' ?Hpk|tiݺ{ni.G -+ %djE] TQfDn51GH: -uٞ:E(-wLGѨ'Eܛ1K R -N+aI&8֎Vk/D"ɩaM(0efo',+ǣX6D~b5[FD}c7E3!s|J/_8I?}?)ŌDvsV~V7e(,C\^-xjVN_P=&ԩ- ݹkjvxeEUPHsDdd.& u<`r1Dm`: Chjԇ(j Q.;GmR50ۚH+t`ͳ}ÄPm!k`(o^.ղ1srS#@/R&"bZ sdSCer14ek"fkjO:\Ξݻ]+Ƌq_+K8j+2kj C`}aoe:*n;|n\4skB"SmLӖųVY̓H1ZZ 4IQ50fv9 aDJ`(^%=[3W4:|'W1~e ,))(J|jϫ*ܐgn,Uih^NПk\+#ͤŚK:tҭi_LIӮ1mP>2c&#BZsSPgof%%箬yzeqW -wʀ*=4Y6 'NXCR0 -[d翎Wӈ꿿o I,+ ?&=wv5Fd1 NIVOBD+BQG$=F0տo2־c2˘-=r \E Y-ǨuG=E ѐSb0 Zo`Io +OᕏsS~:$K^F0!rˆo%hp!Z C~vrIJpǒ^AVg[uztxa#3g%&|5SLpoa\tyy0bJMˏ;P DZ9ؾMr3/yAШR -mc42ƹ]׿&w}3e]AR˶T. (.:2G[)? -,pƎwԉD-|P",-n7sy*LTe\ 5| u B@-I^?#6|O`@ɢ:hbf+wpMޔqz>ROw{e u1A}˟}Y2`=J"nRшLl'x역Y?v/%RtUQSE_'޽TE?'M`5t~B鰨.V8D$@ h؋=(0c2(UB}CakI=Z#nOur)l2k$5L Þ.įKR!F[C'Qd?Zҿ].X &IA`e3fRW$놗`Lu -0>3PY, &:IU/~vRCmpg@~Ft袚Ic7'<) *`@¤pS,CU/F-[S? I'2tƳ#-Q]zK!ک4lfQlxԎk s -t|M'œ $!J,NKƎVoV - $c R!EnOSyY6mѠLOצo] L3LeV앸ٯ6KYOW 7N/`YmI׻% s! :5TR]:ɩraѮ5zD6u N;Ҡ"7Hn+V\> /4 -,|kQ鯓ȸ5Y "`3V6 QdEWz} n{٩Td\..?#lGsI|M`L9r9csTs5z(IaHm?泉BOiʿ)o)yAg3bvH?TݝI^瓮q.I}Z~|,F^l I֑c;>Lֶ,ϸzN^1DZ98pu='2'4B T}C1ם%X`΁ cYؿXL|r1C= _p2w,fQh#5\ډw&\X>J>zҒl%X}f*k(=: -nYt_`f< ph,6,\J2p/8(.3 r_"-5yb6aρUь#^i$H{, @?^>0>K,ڲ  ,⏑mkjpGP GR #ej5'L i=-Ue.ιFvgyjJa+ ~4i8W2 '!,6mЭP -jhe+<٦_Xvbv7@T\BJ٩)H%W8~Xj`mz¹<(pآN -]8u388푝anJZ}d@9u@d#?i 䙒W{^@ k"RFI֫**>#*mȣsǶČ7o -)I}D"D,>-|WVjJnu@SFaP Nd R>\ƍ2Pu܉UXnUc&A xPYߋ*3HqAcuxe$w6;ԒGc/Deo@Wt(žeմN[-dyB16gOM|T1=͚ p۠ɻi7bg[U c2IqBЙLk}3, 3뫨"?I^dXAYxِ/ݩcRa{u0 `&.}=U- ?bTB7҄z 7 ^I/AdYHNxWF;TZVc<ݪ{_3],?YYb]RץI>83'W7[xڟQx!,o V>?'aQ6d3Ur[Zi|YW6@'|&Wޛ>\oDH/iW-M _S0h< u' w fX>n*EDAA ”_ 6k'ZEA3 xrALy)U`oqx/)9QRDsTJImnjWǚ}r"V_W.Ghwa㪄T^ZUiqBR-0˜i#P\em-D^} c,}hW@ļos5`/\КYyJrbt[>YScALR&lEJv^9v?D{?N碘 ̿ ïosP{9ѽEן|6:͆ %$j#^D{8&ra77[4 NX=Vdg?*B|m[&=\,ϨIOL6TlG2ԝC%V&n}PI% rBbeLXI/aZh+{6"S$S⃱1j7|+<][(q&#?*:Þ0d >O}!mfd {b]"ÉV]K/Ԥe*<0zwHױs(^ o釟 nظj2dH T3^Gv wcl־k -\ -@BT+cj4Ro31Ɂ*ƙ^m1"$Py|f/X TB#]bC<5x 3~voGҚRf S2?B(t72D1;Hƅ5* (*>hM|>ؘ ,AɋXuW=mp]B%Y6Zx)3yRmXb` frB.[e957҈~?xc s]y EU+ޚͧv^SVz-tt)4lH!n⣂,zڬ|+)$F0 A)NI}|yȁr:HZfq/k h]er ( &‹kN f|iS.d9XKFw! hi_ꯦreb5M`P֐Sv 4>1O;uXd)Pa*YahDFI;>Ӻ>0ϩ&OtvDdIy; GFJW_7ZSR'"#r5z{2wؐT4jsrbLw~[>RVf2ʞB >LQ~Ap{u#oBA=ҴAM. q`Z+ꅺ  .oPvB[`޴0a87y26z$#ꢜ 0\1;CT9 ~s*CdUfA$Q3O\s]@_kb.#lTXDȐX9Y -7Z -tBI MD?ngQEՉm5rM ƭ!B1X nz*owrXA#|C g.)"c).SzP3ʥr2W?// LgmxQp! rdȊM;Ig[Nr?aRW _GlQm'xkV `fI3!mR 7Tc)3f[w`(݀ e NK$1iE(E_+\ 1nd&# 3a`d rpQ6R[M ٯӔVq/XcxC5^qb)?ae5ݼg%]O2=WpR/u'vLe`N+Ycյăo_iVҴֲQ ħ3^ Qu"в^eRۺ7ۯ]g0?>,R#GvKMʣO+T^3+H79>Qy\Bz!Zn )'[_v~Zd?[)uC&Z0!W*n^Mޘn K[A[AR|!Phs=S"Yr kیyd. 8!8MRB@4f\yux I Nw( yDZ!M̡&&?=!n7h}?  CEfIřL*L@^&iul{<֚5@KJRgt\iZk5OaHr3L#0G}&gH M<_fF:=L d֪T.^O)S^dsR`-ϲל-ա& ŔǏp 2)=Hr pJ>]"coW#R:$Me?| -X_&r6pkػ1>7JсoXgG Ě%eE^ɟ[uCEԁxZVK=i}awԕJz3Aa@fṫo:W}ğRj5TxJI`qÒ,G¢bqpwQ6e}b1tP/P2]381eyo]Y *t'FPd~ >e ~Cr„}!mխ -1.sޒTdЩ6a;.Nnmw1Z"q _q?z3cKLDĚ"g Aw5z{" P>s/NseWeN i04o1:\N )Z,`Vnlft8;>N] 0d&ZC<YO]#d8dn4OMɄQ7Y˞1EN+_L?0r0X&$fi`Jė6+\D:3(?;crh=9S3zvN[+i4!8ĊXqBapO`Nӫ1s-SR9N-`-%3*$?%~Z%R>r+6]i U%Nsɴy0r\" -7 ZyEfHhK(LP۽׿2^R~RNZ:x0&B6~jM"Ou,'\w ;}R@=\I=3Tؙ,_=We KԮUV vJ\^n;*$mbst.B=EH p -Ug(}Eq -E".˽N #w: P[_niZcvo48G0c?h;?F%ZySn~Bڪ{3[_{vԅ;+iw`|]= ##uxY }b"5^xl}ìmVָ%9D_},bP3IW@r>] -8b6sWՏn - fOQVK9"pͿ֦==!:Ā*Ow4TguH+1WvbȐٮ'T -/Z'eI{eG0pvA 5t ɉ h'Hͳ+}w(2` )_vђ>QPP\0zr+ -%b.<i!;\znv}DWCo"DpUN1 -sDKOs&NJ!J&URc?9`3 ᠊AY/UY6y"{6}Juk -fNPLAU#b*(? 49VLFv:DU:ߨ1.dREhO޳wv }V [$fo+qi6V'46YɰjB_X&a71̋}vKfvHG@t:Y EI*$[aٓ}:C6&0&@zbS$r:}ӚB6<QA.'y6D6vbn>x;G4b=Ć ,\ڒYԁ%inhp"WP22jc0D_9aa_S^k]P@Gw]B"WɎj%AE(-Jy)'{<}k$F76Dk- MO?)ҙى( HS_"n=s <[ 4sYZ_{=\ZPNj[JPBs{w͌1v|p(q8q>\\2S,$ ~p_W?tӡuݚCfOL|b i]}ѓ763A$ œoA,r"o'6UA= -UȐbFfa0 FVw<0 q ZŚ0Pr-F"s xbl1m[0Iՙv[ry$'qV24q]=ԡ" iY8X6Q/.Ua!ɷ*k觯Z=JIàoLrQ0ibΡy!ӇWF|T&+pnH"&ћ 뢈hWM=hISD6n -a).:>B3b 4ncck+_ 86.@82mk!6;BG|I$ej2<;&8i> q+tPt{=<6b < SכN «@ǦG!=fv=9#HlE>/%%5BQ,5p4E4([uxj; /Eqjε3=hSo!͂s=g7;>Dc Uw2Ϩ v tV,<iS,ד_n pBYjn(etJx Hx:[fKR 'PY*82$UIrJ5DE%La궈`*8$6߱p3p־ݘȰmr@wT)7Q+ƽMT02YDI*|$i ;*obؠ&S)j]9SU? -2T,0k;1rY~d>(5RHAmz5|Be6T ^=/GYCǮsN'}[l+J")5ozBPS;-?grW:Ћ V }|[Վ/׹h4*)0P+|fjuҝq`՗IaoРfU EoUlpk@pTP-G`U%i,bG/;5^_~g wzоx"EjS̿F6 0D={D啼JUvFWܧ*W -\[ɤde%jIJ:;Ĵ#rV}^!6pN[ӚQ]2 vܿj~Xƶyd -Ӏ141)Wa9@9sWwek Y9C_F7pD٠Bv?JUpB>pr[;O?'-ްRga7>fsO - X|Hnb^6ҾB"! *Y{}a~)R:p&\P|FF8 զ洞z..#^KϽ$P-!˦!xM/I~D eh+_BD[.v Chd݅0Y056+4 =\pё+u/~/%U"31g,0#gB(1neנ5zO>w@Cjd`̤RMj&<%.-h_B'+>͚ vG{ CEϊ`Ɵ]Gt׈?6_}p0)aT"3)0 V'(ޕP|wT -,$z5KgR(YI joRאgl'5{.~DQ[h2iD` dtWQʝN-OKOɎbv9j\wн}5Q [ -RzaRVĽ+ӱg.}nW)PN{U+6n}9zHǽW~޷Nc(Z-1TlK6’,U닶(PN>Bq/x*_yNW -TVYX8--QE}FZ]h0'=;_`w*Y#f7m~sقXKX/UYy`0y]rNx 'Xh]J]O[x9S8Z( <ك-N$3B97crE15Tϥ @'L6CԻ(;/|\_HJ-u7Qt+00_s}i#)U^;ճUSV{Wl"ωs7wD߆%f70n9:|?mf#j[eY\䠜aԍ͂%EO*b`xQP|>Hd~ësKxl6XPZ.R#P~9#;ꭾ|K*RX6fF/) n/seb%UWumլT#ݑָ{!~$l$Ř/lS? o&)';*6JNh}PYڍ qǶNșJ Xq7yzci>,<<@1tuH6Gf?ǀQC]J ;]%'*tȃO b];5hB8mѹWi_ -?3DOQO+`p:^ ;IJ%:B.pZ޾7,D5Ѽ[1*.'4P x7Hz\Oj]eg8_>,RL sO};n;HTRQ\ !F#HE"F.69*N׮׼ 2D_G^dC<ɦvb> ->[Q(N4{ҥRlȫa s~Rs%3BS^**¬d-2}%j>ɛ'owb*dU'k_`i1WC}@~yX4"3:r3t vK#Νq'E{fcnf7EZ7a8f.,SVbͫܒa}H 3x4w1MCp5ڶM4nnŖYG Xd]|@gKO+ع4:plάĨø=scVjƥjJu` sk ̕x(!Qx"{'/mQ̴`'ǹ - ES !@95XF5,OuFx@W*QЉ[1ٹv g/`d7QT"G-mKArVIErd]GyjD8RGH#Jggz'-L q<4l۱SZgq\Bӣ>kQ ]%?A"NR/,71ځ}s `tEčpKـTLL!N߯gj!8B9޻˜E1髼0[9EPeݳD&}1nщdKqX`ra:\R :v!%襉- C0k;RSh gJE ATD٫ewN{-4KQuv6rfKx."U -?H*s4H<7-4i/qZ30Q/wegɆt ۾u#9dES~'qkpi?ס.ηlzX\ZRp &Bkլ[-j7XyjWtU "H>pG[dM9X]gO+DV_͛d9*iuWnǢ]}8Hr%ɑ3cº;Lyna<^Ra?'Z*T0cks|l=WnyZzdVjkd~:"n| @)Tֳ̮` Χ37b)s.z B& 9.}'0B!|5ߥnwO7#3h^q`vn/$M4 tAs ,D:هd71)Ţ.y Ng}$b:YUč?9P,)]; O@)Ff|gOc:rxyC =3ʨ=Ha>KY0.AWCRsC i¬F -IT#jm ;۷r&SáT*^48X: SJС'*Qݵ_-2p8cީ#YbrzJ*6_JB}26,ffVj§W1pGF)n_, Nw|Pt kOƚry"".q>[%uog]ȟ1 /W؎EwnVڲDZ, ̵O iuzPY+]]bd͝5/E[e] tUb!bۥ>ɒ} FzV@lᢰē%Pk6c)'G͔L3*QJf @#);#Q谄Z8SnmK{Zp B)jQ?g\[LofdEʮc&$:oa yD)7 \?6gG7Qk8BWr^  -2Gqn)q-NTN|cQ7-=q& cv]kXJ3CN&#d?dI VIͭW XՠqAz<`Ke^<>!<62Nn![5Ȓ׷l& e z#͊k!ٓ&UJPkGaȏM_MTc\N'nS)QA{tޢ,Wʕ r<*졯8{ qpzU <\JRm2 ScҚ|95X*/2W0+}%gL0Gx¸;)[d;TF*l66;܎I3O5îS{$:J[9m۶m۶m۶mkbv&swݫj5;S3GEW]FSe|s8wrjSӖ.侍jc`?;(s)Bh=_$ʠ8^zuJg$s_h :XἯ`p//>0+ w^XZ̗oH.:^]] èMCi) #c'08'͑]/S;ӧpwn?Zq~7,LnGH7 T(tXb%F1ŸЌ@-mo^CQeb3@͖ -PW{ieS!Ph7oȪU -ma:eyeO6  A"K#y1zΣ6\@P֡ -x ܉I4dgٟbE7Pѷ>jkq+zL|>g2(+m,qC+&y7+9K߉f {$f5쐛S^0,h sRB-Wn;lĬ^Xx=|q>C|3rھڇ4(eZR/?&Fdm6o|5g>#Ul?EWO"pxߨQ^3>츈Jai&f}ϱgT.|D3zҢ!. ZnjV0rq\K.?>LrNz.lD1 }E0b)kapHo7QE3Lf5cF݌]2o)=jor~N#^lEFؗeHӷ hڬhO96܀ST+Mk~,_>7/3GHithf*&}ie?qXB[KAggẹ1l+b2qR3>W1I83a^ XRѿ:y w!Xm}4ӑD׉ʼ/͜E$@:S#9}<1)ⷹmG?B,Vw5&g;4LꕢgD.@nn1$$]Ѡ> B v7EJȼ4d7ؾf*q%`hݴ(: Vi$j4񈴓׫hq$vt3 Q7j ,S'H$Ms4ڥBrPE} r1c$ܢ*AsT|33cңaqZ4 GWDɪ"B*ƾ\MRdyq^ 2/Љ^Fpy5>=ul#Jɲ)Oy*3WVGqQM<[y88{ +M璃grqz˛2qDg7Labz7rK6iع m8<6[S8Z澒+/fޟ7Ҭ.!( n&"S80O: [؏ixMw` P3,vŀj[~VK =7 -zJRLIzlyVVxCb?vUJhAH3GVu/ϴ\q_,JL2}-[?mlu; fzʖn\3nxmj -8H|Ϗy9֊q RA6geY\eeL 6$UR(J@3ĕG:#}N8ӝN *q_ rh 0P -p\ Y.ɑlX]R*P z†Rm[09-o_Yb D/,v΃ fX}G[W_F,]'4Uhibӄ]/ETC4Na?z9 Qֵb!#"c\NF0JȹAhmZA[b qs h:;r[xٮ*#3<^ - ?Y^*F<4)tRVǿMlL8r4=;ܽg0K"z -P.lIW>O7ط~Qs4F̠KkY[ŰdUpzH=h$֜ {߫ԃ\GPEܓmHŜfKy*Gt`*IIkz4I?]H9a{be ؟et:TPuPj`QTzLtLVխku"dگks`6C({eFWj}c -qs]bp'QVbavi"_ɞ".M!!S%W%Ovԯ)(ckY^넟P1l+w~WRQ7[S`>>Lp_k3X_6z/`99.ӳPO"zpns*EP8եdwoiOfl0@J4J33n+,V-<&)nuQgfEkR?y66HQlMF† d8 -w\!S݃}х?ZcC+c;.EC%X?)ݘcjlD /(fO^;Sx -~9Z|OxBU2 sx÷s( Θ{!ۉbWyT'Y2Ss P -zσqҋ/tZL p{u+yr_5w/"""W$)x=4_6W54WJ!EL+Z}UEH)7$x\(]N-6.=Bê3)g-?ȳBjj8&~02 A?#̒5*?1"M|y?v-g% P2xU{R w\\eY, 䐿F %B<\3X;{$4v{l4/~JVM:e8ojZәabGqS@4#nq\LˌM>3ω=A?bjxt{&\07&گ)i`iC ePXk'4ܯMj^,d@^>kʆ/N +q'}98G9vv_x4H+~5WKtFuŸW)d9CQ Ҩ9?D:PUBa)uaV: (,;sgEpq-.8]߰[Qz 7'QMm=UBEgR 7BHCM49dڝ8H*.Jpt :w)B5Yo|P1b|3NGuf)O+-7f`.9Sztߠuw}cN00йq`Kܺv!TC -qv^ғ],&4VOCYGJmR dM0c~wENxBG3oH**L>kU϶4뒾/}%"| m<2rNMyi) _L6Aff TO?NYgnYJ'2잫eҡ0гN?{Վ:Go0nhe3IF;CB+pdPЦ ] mMN6Eǃpʋ!bkG'/ΟZW 6oWҦ٨%ּA -g -~EWrk-l'ftrRQ?C ^G (*QKEVke/GLl=ė<n_D hO}^ KurY&3ƻے3ѭof}ј _-EK^|t/G:w -kg#غ_1^kҕ?FlfOI?'kC͋)|(S5YMM3WcnVZ$)/3N0w5Oί)U nLVtRꖾNQRozſF7» {=-6?9xL7/9:Ӹ1KO40ojTD(h)n<.fQ5竈*=gFN$O#wm-fT㩞⧹QJC널Zy'\Jᴊ: uBf~ Kk'z&YA!*K^/< 1- viQiiygr >$̋GybLP:{9ލTXAVQ5L7x;7~(钂"bvF ~R4]Bؒ6_vÞK}7VU4{QV6)!~KtGhK^ ߶AoT 9`%opLt _QyCp?5qoӰ_C)mkbF=pCܦX&sa^ T C:;@e^utX>3S71s;"G41G\4>}(]Xswlo)~n* 8N~NDR )l-X "@ %Ʃo:Puz& wq$K ^_q(5۽GkeasEE>S*azFGbq<⺿7P觪lkr6xj!c16-T+M%y 8,9kAMm$)RHJ12j-wP MRB^~M`2./hQZ/[g7bŝ%h@\/&nX?JAN}4=i`b10u蹙[ #ނQ1[nݕ4m뙱0<..dcvf=%'S9{ǎ!4W9ΘZUs~6gyZ-$}s)98w,$ᦗe.;l#f^.JʤN -wna Ɖs:=K c=@LN"2`|ϘN{:}Ɏ.۪=aWGЮȧL|gyCeY:ʞa%{S(%+57Tl܅a(y=fv,0BTv3PZ>'StrdwܗGWyZN%ޥ -}=m$T#bzRzjAun{İΔu3]eE'gD!)RJcY$;M pr ȌHYYQYN[oS ;U9[ JA5?TT3o#/K= -T8$dNB_V) W^Gtc) dtl0qZ>ꍆ"Ț5dm W(oy9"ֲh}՝SA"K2ϕșZ`@X&bzbJC.fSi_r53yjT[=  VYyѯ4_X;R`UY5 zs~W{|Yee{ W<0Ǔ[Eq@1m}</׊:"*$ VnA jhq@gRFwؑ(#1 -iXFM$zR:_z!cyB@֯&Uqc,C& c+Aˮ_7Oa KL~R{MaMQG<1B^\5Vgu4cpxtp Æ"9>vÅH0ɾX}{pQl::E/'ϸ%Ax"z@I5!Iq,譧ScZ|2 Ecs LHkߧ<9v\&DS4O @/}?S&a4Kŕ%%i22?{i"jdžݩ5Lp.?c'4}kY\+$ 5$H{,U5+I$/Rvﵡd=9"}>=aփGT -e&\R]GOC ?`ԸٽlG\y@\Q9!/|ڝ_d/ NIS0'aW.+^8sQhۅxqi[U7 *hL^a7sDඞ{:\($h z>v/;_Ϧa,F$4!di {k hAI -IF P%Re=`r M7g2 5;Mevd[`&e<9KM-|QŽg\įnE'nf:b>sd{_@\'aq}DNg5eg]J0KPC#A%nt(ʧrD4ťj -Lӏ -$ڑ-GSXacc{@v͆*+upV2 CL˚,|#Tq)=JԳƃ4Լi*e[**2Y=B3GRC+<(#e'k64DCt|k$07N'u:$̐dR6j]Rɒ,<<UlDJ7:NiB@9\lS0)KqWha2۲gHa#GƇXO`*qC9;Ǔ -%a9\U?n}F\_.(s(E_Bc%4Ig$x).s)q.3U(^6+Cm4-Dp%-j|spI8>q] ѓ$F\N -W\it}WmO<2S>KCyq-oHQavQ6 -[Cz_^\Eg$B$\|Ck;|̤ -gYcZ|p Zcr2ł M?-YoѯUu.Qg+sFtԝ 3N7p)eb4FO;Lv:'%/~_CK>䎋M`SᮥH!fx8 -_f )=XLH[]9JѾ/1ԉ 'vʋA( ɘ, :8tᖃ׷Tm{!EEf5t\͝NHxz>Loe1Ed[F/|ۧ~H[\^&) Z X[Դl+ȓ៌:= qЛGĪLB"S6:}׻'ҧ?xV̏wM_ T.zc(Y{:Ȁ{&"'V_eύ7r86^nbSA{9Xw.ZvA۹×&FW7-1#[Ǐ- 04RŎn -H]ezWlt8ESG_2 - әi>"8 ٔ9$sބz -ctt@O/9_ ˌPF_ɯş.ه1+ HCMޱEKF_}l U6"fɳ-L1,Yj,FڻL{!3>(O:I*gRdߖ^c\N2`Ht1L<qAt'ɂۥVn#zں-' -endstream -endobj -1562 0 obj -<< -/Type /FontDescriptor -/FontName /GYDQSB+BoschOfficeSans-Italic -/Flags 4 -/FontBBox [-176 -300 1375 1139] -/Ascent 766 -/CapHeight 728 -/Descent -198 -/ItalicAngle -11 -/StemV 93 -/XHeight 523 -/CharSet (/A/B/C/E/H/I/M/O/P/S/T/a/b/bracketleft/bracketright/c/colon/comma/d/e/f/ff/fi/five/g/h/hyphen/i/j/k/l/m/n/o/one/p/parenleft/parenright/period/q/r/s/slash/t/three/u/underscore/v/w/x/y/z/zero) -/FontFile 1561 0 R ->> -endobj -1563 0 obj -<< -/Length1 1199 -/Length2 806 -/Length3 0 -/Length 1564 -/Filter /FlateDecode ->> -stream -xڕT{TMY0+dHͪd=e<T({ξsϹ5ɔA&u(YL2c1i`E!rA 쀁z2^@' Мay$+a`,XY$$H1 l(^!)àl=M)c+l.YC:SQb{8QKGBAV4 2Z@OqJ}SVXא퀤t$E v`\u(SbSW R,&:BLa\+>˄|L!YBHlHwVc -6S  DYHi5'*u(MVL8_ @G]Ɍs`VJd?i(z!X}ijx^:oo*W>ڀS|t!3M2S7&W'G-^9]7|g '{ҭ~sb>גtu<{c2;Ybַ8RɺrA^|SycqrJJ̙W.v 3}z7A۲;biuݞm5~!Yz|ֳu&,~,{mmI$O2I 4gihͲ£OބcfpsƝ=aE7FniS$tU*Y'.#̽bnŦI'u.6{#||aWUNoǑK."Sbbmv/\$nEj=+:TEBܢf^Uе"U2Ɋ]F6VR;Ƨ׳8n>Kјo/6(SHڶNk-"o4/QlpW5l^R{;cS --/N:"֏˓]Ą+#.x޸q;<{y-d|E>y(Nu6NyRnշqG}90kWzgh_b-ϞB+D Gj_E_4#uƔ7Qu.[r,P(lQf;]s-TU9:#%~]NW6{T}V2]*M:~|Gsٱw\{o>ku{. ^>Q<^[<<הn"!k'rsrm웨> -endobj -1565 0 obj -<< -/Length1 2139 -/Length2 9316 -/Length3 0 -/Length 10476 -/Filter /FlateDecode ->> -stream -x}uuTk6 ݝCJ )ݒ20ݒ4"R!ݩxff2%&qHI`j \}\sPeY>W -;2*P_7мg٥ *>xR%棹tC}wǚ.;wwıYD[?.S6LkywKIOa&Awm{8wXt {')^G̎|IbQ<+Hk9{uX Ž% n+{}k-~B`faQ`e\M!| (Q{׻IJ NZ -Q0De7[8DNnK]8)hž. -"6"Mޟnv;h}d-kO(WC@J^}(H CxlLKKîJP2j5 eBc^ d=m;ƀ'chZxhDFmG8?ݟ":Cre2""%:~VB)zm^JmzG:[:`hs\=PwC8b:Q H _ ,A1Wb11x#qfcz:jRnjGWҩ1gQ>\Y(cXWV0Y4ؖj1_qgݒ2|zr^pNiHU/!@o==|^6mֺ+crofPBR߃ A aOu:2!dX;7 19C/$w8!Z|< CՎoWiߏǢZȿ|j -jogCBސHDbאӼаe:"3,wg=1sA۾]FO=I !*YKijߍA[m-%&Iˤw3>)Ӵldo=>M.`8)\&-Ƥap@gr18 -ag@q 6Sjk=Ϣ9lN; ]=FMkՁ$IR2wA]Iώrrgp=l5)N7uMggJ)تfS9Y5numQRR!};3Φ866>b~j INd xrU]N0y3 -(/׸1<ɡ^3G,hBLsl8h0m1cC%'B饝K#4?`si;Ȩ #RG6) Y8$%S٬a@1n],Cl)\jWtTkn=Lkp}|]bV\$jwV.680,t1Ze纻UeȼxM DnsdcޡƷy}SR27"!Q1|  oQw?TRE`b}*%Ok\@p}H5=[u ٧/fNIYpB9.[h^,$5/*$!~\=W||dڢgNP7Q ,Ay_!o0G~8U!v.{\FN3~c'b V2#+>:Kg(%ǩGGrs Ϋp[ -|K:%xВm :6 1stk:&n }߼kO;e3 uϛCwrO .:(cۆ˝ -=]b4ͤ\?h9Li|eě>~HnH3@ G82vE퓉"hloIVOM5umh̪Hk_>R`e\a匠Z+@WpSFNuFƈd`Ή߂t2,+q1r0FSr UAtᵱiwV -B6N7VeU#fퟰ}g/Fx)0JIGxz?2\ 'Kz4Ή.gORtq*3*tH,-Dv$继~ݴW;L=Cj56%ius>H;וϜr^JΜQN - lVp˖چ {=+.8lds07=[Wn3Vi(i-" -nүmMoX"]ۄf27%GO\E㷤jyq fPm[2˛gZZf*2O[ -O7ӯ|9 - *ñ;tphj#^S|U2k$ 1._1s-j u<1"v%hAFO^dS/rF6hnVIH؉2? pg^Y,)hV]+{l:Dpa>Xlraˊ=5b>cQP֋,G|wPC>QiݸGH7?K#Y5B.yj5+#Sr dmi5G] -Q~|%u{^wI\wmpSʗ -jeg -TE*lwj65_Q38Q+zB.e*t 0>_0roѾԴ=7wb=Cm{%QIkfluP"UÂ&ջےTyu^Y\?]T28ە ^?]wmpnl |E78j),pu^Ǚq :zٕٵMc -F9r Q<̔Ci k)LRG9o$rs[>᮲q'<_i$ޛ=:G~hE Gη1!aTG5|ipȺ8=QrV._,2픷/+V쩽\}0!pCNWdN(5v1VJHZw}[Y@Gڨd~iSgy6y=pqm+t*BJ!kCJϴ"}f`8 ~YIZ*iޯ3xFlt/V]$]ѸX/H@ mb7m)сZEMy> GVmjv.o@r<}̉CQ%q!>K1Q܇OOVwP/|ԪیV5s[1ϡ']-} %zӌN0j|&VKZ; 3.5JDQH(_\ |v^W+:\àN ]PgO@$FsPdmDE`*:eDSɼ0E5]?Tf9L6犂{2%wJtcDb$_$y[ԧPrYe{IwNye#៺ѯr_bʔfm2bK4E$)Pg7?7v>Ʊ`μHs*eԑ:V*<<`QSuP)TDKD^6fOT2]ru3|p^nnDؚwթɟm?+a:` kT{ѷsQ[f떀0Ӏ+Eˌ쉥w<5>/25Rwz ah1b.j0HK 5ާxu6ImM#uيD;7c7r +c9[CзI{8h'b/?/0\YlsD;B"!-xoP2%U0ș Mǣlcјڌݤ#''%zء-gFڽQ/+ Z@ȯPޞ^L8L5*_ET򧞋AXDӱmS~+%4#ɷ\ /a&(rW|F8V' d*z˳p=*4tӏ.y$ "i%HkfrݷV#z|O pXɂޔ_M$H*K+q~g}<]uAR][aBH0zo [F wTF6OGܾޓ -ۍ"w;پfѬAv!f*qlXBQ7cȅfq\A)YaF'=` xヌF-06VPwL=otLry"Tԕ;j$3/r+N4]Kl='nV~V hO]""25 -qo6&ė3qKyT8 -mnFz[-\ -v~],I eıAlt -}Y |E7"w ߗ"s"jfُlQ/觚^BE0\C%f+tnz8a"}*yQϞtwU"/Cmݩኳ|zXs4тއUW\34Ww`( yɴm7#:eEKbr4{ˮ1T0IHɮ0"M'չl{lQ5$b@Y'/"63֝ղk)~.-,(CtE NbԣTMg -ЩW?G'*^߇{jozul]2Q k_+ܿGp:!" z~E1UTQz׃UL}Q^樍JَTOPHJ s`T|GcBg#$@\sdw[2jJ\^fEJ.rN.oA@/)G=KnP -R~MVv͉UG73J &">s=C8Y岁~sO^~ ҎfibEhK6\ČWL-j\4Q&, lRI$˷_*:p(M4)Ȝ ;Q.a' 5/G`q60MlAM ,-uPIu W_QS]%FLlUyEŻ,/[os}8xv*!wmu1eMWcJTj㯨-Zgا9#Zx H!UKb+.Y(lRF[gi̛'쨅IXaRYj -!+=/ iNS S^@ZH5Upqeu5WD GD;ulK0H)0 -. ̎Df$zxݹE>'AN…NU -P&>1<VIeVWKL L ޡO7 -}w+%, &/9e[;-ͰI~0Z1&+kܹ%\41GVt͘ƚw)bIE=8/R(,iiʽphӞoi\VOd>_V'COtRVl:rHyzB]|KSR*33ig (T38lDu}b˟?Lp7LoR̎ёb`#ȎIufOG[{,FfQ'(4SW(˽N$(wƧv;UͷA|,X6[Y9%΁duNZR Yv%J');BKHJoVH=o((~_n>\RT3E]kl+x0F>wó!N?}#?$ah'cn0X -w'J -*X2)5I z˝Onmn~2Xi$~י5[6=9,-dVSD2?S}Ά0oDsfy>Ӏ馴b6=I)1lu$oUv\ L5)wu12>sN{N$0yY@ Ԓ94_ -ٜ}O]XStvjJY|TSь|Q܋ӤhJzRZu4%e1ƞլNL3ϤʭS|k~#r~ŝ9V -endstream -endobj -1566 0 obj -<< -/Type /FontDescriptor -/FontName /BOOWFK+t1xtt -/Flags 4 -/FontBBox [-5 -183 1501 822] -/Ascent 676 -/CapHeight 618 -/Descent -167 -/ItalicAngle 0 -/StemV 84 -/XHeight 461 -/CharSet (/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/W/X/Y/Z/a/ampersand/asterisk/b/backslash/bar/braceleft/braceright/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/numbersign/o/one/p/parenleft/parenright/percent/period/plus/q/quotedbl/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) -/FontFile 1565 0 R ->> -endobj -1567 0 obj -<< -/Length1 1134 -/Length2 3354 -/Length3 0 -/Length 4068 -/Filter /FlateDecode ->> -stream -x}y<}m),uY"یcWo2`2 c&[dG< -PI-al QElEMuOy~]s]s>=-dn%"8u x ,$ 8}ZF06V0HT/&2[7g, p,¸g+*Ȟ箢&zS Ecڕ5E_'a~ONΘQ2YqĻaр2$;Q;@"ѿ6xoOc(݄1.x7 Wʔ@¸5(}Ni@r8Ɠ@Q6/+ Vz+_Xaxe* 0yI$"8d((O }cCx I&"3SV ȟߤ@2q/t"pzAA(AAq݃rm؃t!=HWPz_%Az_=Hc ]T =HWEs-]=BbAX?H9=HW yH dd/f+àH{KL$",Xn,)s9.Z!y+Pyz :2H_+~h_ E5JExz&T'x]të(yػlz^'Tq*|(5~Ʌ._dž4;$WK2m n(["%D A. ,ē#~.Q=}^  -WIq9u_bDI tMpE)ݎ -*#j 2A'xFrfwFIz5G.DND]/=c#^fHlZ"ZC;]fPBo\(cBZ4ʴΏ β F!^_/$SloHlzJtcrO"E̥ Cy4Rde:>K:UIr+C+F - -Z.B.a|~jױʆg ys?lB؄ =6T/rߪ.['.5-+|$-YڣJkVS^[̦ARVzVЎxHWa⍠u3,⥲εog9$W'p'i]O/HxhXvA#z'$ظ4᝛M0bZW|\q+эmC-Ul^8GqQy]MgH^H + 3nsƊ圠H_hO)ytnz1sPuY'GE%پ9]{YcfhrAuo$sU>2pM'^z&UR)3Rq[ȲVt(uZP+l7)ma”SnE2Ώl֜>2)ƥr=vXHϳ%jf慎ayFzcOjxZ~~GՋ<^mݵ}\RˎZ|f,bȦ xpPǻ.Զ5G泹q@ݯx)n9xPKZ]UGP O -J G }xnnmq -ͫ ׊qq386Cpf2{^=)BbYXZt<_]$U)iPaumӋ4yA -gpKfա>NݪUQ5Q*s}#" #]i9 GF˫_viO-0fa5ٚ5f~-FՄ|n!ѶZw71Kv ~%mTQRF)zzRà\?Wq,f) -,J܌< x2*|+ۨ^7َY;8 -؏d{|y'="a/t3 ւcb4XңwmP&G٧dxJ .9&POm6=dvDqUÇZЁ*j3Wך rhG|꾬FHNQY ²?뼍ꐹ8Nz"^Mq ;0jt<`]ǎtk~mAHٕ\Rb7+ ok~úlI]-|զa٥ ?e¶ (`ƠM;yc{u۝ۨ"F6?TWQ]?b?6|^yC|j!z8mRcX:?X\%9{,xob#+`zKQXCY{'e agޚhVTw_0o:$/IE ~Nj.Li%QS*gUq^ݗbPd/w~sIgFEئ-]q)IȬ7]}Omv!ݔTڭjLDc:3ܼ "g_YM ulRy2p^cM ޖ%2j~5xѱU= -p)0Ɖ\h^Lb5 #y^G<]`;i#y=G{BIMk@٥(M;dוF%oZD[ͺWt= Ԋo\QN5F{YG)%7/J=N(p,Xɶxf3z%T7_[A#'z? zjB Q>/{0ZݨPquCĒ0 ysjLzȜ -6waa3tSHYW B <p'y:C94 yN -͢Z XZE-C33֬ϾSmNI=:,2JscgO+ish'U61Ϳ^kW:'\A7|ʥ6\򎶙ps: k6:'7Il˩ lH7vp6xr5Tyu,"N<=ik*|gat@+I)V=޶xz=?L"\jG> -endobj -1541 0 obj -<< -/Type /Encoding -/Differences [2/fi/fl 19/ff/ffi 31/quotesingle 33/exclam/quotedbl 37/percent 40/parenleft/parenright 43/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon 61/equal 63/question 65/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright 95/underscore 97/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z 124/bar] ->> -endobj -648 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /SYFPBV+CMMI10 -/FontDescriptor 1546 0 R -/FirstChar 60 -/LastChar 62 -/Widths 1535 0 R ->> -endobj -532 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /GNUTFA+CMMI8 -/FontDescriptor 1548 0 R -/FirstChar 45 -/LastChar 45 -/Widths 1537 0 R ->> -endobj -1366 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /QMHUCV+CMMI9 -/FontDescriptor 1550 0 R -/FirstChar 60 -/LastChar 60 -/Widths 1532 0 R ->> -endobj -514 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /UEIZYW+CMSY10 -/FontDescriptor 1552 0 R -/FirstChar 3 -/LastChar 3 -/Widths 1539 0 R ->> -endobj -531 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /HTWALK+CMSY8 -/FontDescriptor 1554 0 R -/FirstChar 32 -/LastChar 32 -/Widths 1538 0 R ->> -endobj -996 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /GJVTUN+CMSY9 -/FontDescriptor 1556 0 R -/FirstChar 3 -/LastChar 3 -/Widths 1534 0 R ->> -endobj -228 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /WRFWLY+BoschOfficeSans-Bold -/FontDescriptor 1558 0 R -/FirstChar 2 -/LastChar 121 -/Widths 1544 0 R -/Encoding 1541 0 R ->> -endobj -229 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /ADYYFI+BoschOfficeSans-Regular -/FontDescriptor 1560 0 R -/FirstChar 2 -/LastChar 124 -/Widths 1543 0 R -/Encoding 1541 0 R ->> -endobj -510 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /GYDQSB+BoschOfficeSans-Italic -/FontDescriptor 1562 0 R -/FirstChar 2 -/LastChar 122 -/Widths 1542 0 R -/Encoding 1541 0 R ->> -endobj -619 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /BOOWFK+t1xtt -/FontDescriptor 1566 0 R -/FirstChar 34 -/LastChar 125 -/Widths 1536 0 R ->> -endobj -997 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /SGLLBS+t1xtt-Slant_167 -/FontDescriptor 1568 0 R -/FirstChar 44 -/LastChar 122 -/Widths 1533 0 R ->> -endobj -511 0 obj -<< -/Type /Font -/Subtype /Type1 -/BaseFont /WJPRUX+MarVoSym -/FontDescriptor 1564 0 R -/FirstChar 183 -/LastChar 183 -/Widths 1540 0 R ->> -endobj -230 0 obj -<< -/Type /Pages -/Count 6 -/Parent 1569 0 R -/Kids [217 0 R 425 0 R 470 0 R 487 0 R 491 0 R 506 0 R] ->> -endobj -535 0 obj -<< -/Type /Pages -/Count 6 -/Parent 1569 0 R -/Kids [527 0 R 571 0 R 594 0 R 603 0 R 614 0 R 625 0 R] ->> -endobj -636 0 obj -<< -/Type /Pages -/Count 6 -/Parent 1569 0 R -/Kids [633 0 R 639 0 R 645 0 R 670 0 R 682 0 R 687 0 R] ->> -endobj -714 0 obj -<< -/Type /Pages -/Count 6 -/Parent 1569 0 R -/Kids [704 0 R 731 0 R 758 0 R 788 0 R 816 0 R 839 0 R] ->> -endobj -878 0 obj -<< -/Type /Pages -/Count 6 -/Parent 1569 0 R -/Kids [866 0 R 900 0 R 928 0 R 947 0 R 975 0 R 992 0 R] ->> -endobj -1025 0 obj -<< -/Type /Pages -/Count 6 -/Parent 1569 0 R -/Kids [1021 0 R 1044 0 R 1061 0 R 1085 0 R 1109 0 R 1128 0 R] ->> -endobj -1153 0 obj -<< -/Type /Pages -/Count 6 -/Parent 1570 0 R -/Kids [1149 0 R 1178 0 R 1232 0 R 1239 0 R 1267 0 R 1310 0 R] ->> -endobj -1326 0 obj -<< -/Type /Pages -/Count 6 -/Parent 1570 0 R -/Kids [1320 0 R 1328 0 R 1336 0 R 1358 0 R 1374 0 R 1384 0 R] ->> -endobj -1411 0 obj -<< -/Type /Pages -/Count 6 -/Parent 1570 0 R -/Kids [1406 0 R 1422 0 R 1442 0 R 1462 0 R 1474 0 R 1488 0 R] ->> -endobj -1523 0 obj -<< -/Type /Pages -/Count 2 -/Parent 1570 0 R -/Kids [1516 0 R 1525 0 R] ->> -endobj -1569 0 obj -<< -/Type /Pages -/Count 36 -/Parent 1571 0 R -/Kids [230 0 R 535 0 R 636 0 R 714 0 R 878 0 R 1025 0 R] ->> -endobj -1570 0 obj -<< -/Type /Pages -/Count 20 -/Parent 1571 0 R -/Kids [1153 0 R 1326 0 R 1411 0 R 1523 0 R] ->> -endobj -1571 0 obj -<< -/Type /Pages -/Count 56 -/Kids [1569 0 R 1570 0 R] ->> -endobj -1572 0 obj -<< -/Type /Outlines -/First 6 0 R -/Last 154 0 R -/Count 5 ->> -endobj -214 0 obj -<< -/Title 215 0 R -/A 212 0 R -/Parent 206 0 R -/Prev 210 0 R ->> -endobj -210 0 obj -<< -/Title 211 0 R -/A 208 0 R -/Parent 206 0 R -/Next 214 0 R ->> -endobj -206 0 obj -<< -/Title 207 0 R -/A 204 0 R -/Parent 154 0 R -/Prev 194 0 R -/First 210 0 R -/Last 214 0 R -/Count -2 ->> -endobj -202 0 obj -<< -/Title 203 0 R -/A 200 0 R -/Parent 194 0 R -/Prev 198 0 R ->> -endobj -198 0 obj -<< -/Title 199 0 R -/A 196 0 R -/Parent 194 0 R -/Next 202 0 R ->> -endobj -194 0 obj -<< -/Title 195 0 R -/A 192 0 R -/Parent 154 0 R -/Prev 182 0 R -/Next 206 0 R -/First 198 0 R -/Last 202 0 R -/Count -2 ->> -endobj -190 0 obj -<< -/Title 191 0 R -/A 188 0 R -/Parent 182 0 R -/Prev 186 0 R ->> -endobj -186 0 obj -<< -/Title 187 0 R -/A 184 0 R -/Parent 182 0 R -/Next 190 0 R ->> -endobj -182 0 obj -<< -/Title 183 0 R -/A 180 0 R -/Parent 154 0 R -/Prev 170 0 R -/Next 194 0 R -/First 186 0 R -/Last 190 0 R -/Count -2 ->> -endobj -178 0 obj -<< -/Title 179 0 R -/A 176 0 R -/Parent 170 0 R -/Prev 174 0 R ->> -endobj -174 0 obj -<< -/Title 175 0 R -/A 172 0 R -/Parent 170 0 R -/Next 178 0 R ->> -endobj -170 0 obj -<< -/Title 171 0 R -/A 168 0 R -/Parent 154 0 R -/Prev 158 0 R -/Next 182 0 R -/First 174 0 R -/Last 178 0 R -/Count -2 ->> -endobj -166 0 obj -<< -/Title 167 0 R -/A 164 0 R -/Parent 158 0 R -/Prev 162 0 R ->> -endobj -162 0 obj -<< -/Title 163 0 R -/A 160 0 R -/Parent 158 0 R -/Next 166 0 R ->> -endobj -158 0 obj -<< -/Title 159 0 R -/A 156 0 R -/Parent 154 0 R -/Next 170 0 R -/First 162 0 R -/Last 166 0 R -/Count -2 ->> -endobj -154 0 obj -<< -/Title 155 0 R -/A 152 0 R -/Parent 1572 0 R -/Prev 130 0 R -/First 158 0 R -/Last 206 0 R -/Count -5 ->> -endobj -150 0 obj -<< -/Title 151 0 R -/A 148 0 R -/Parent 134 0 R -/Prev 146 0 R ->> -endobj -146 0 obj -<< -/Title 147 0 R -/A 144 0 R -/Parent 134 0 R -/Prev 142 0 R -/Next 150 0 R ->> -endobj -142 0 obj -<< -/Title 143 0 R -/A 140 0 R -/Parent 134 0 R -/Prev 138 0 R -/Next 146 0 R ->> -endobj -138 0 obj -<< -/Title 139 0 R -/A 136 0 R -/Parent 134 0 R -/Next 142 0 R ->> -endobj -134 0 obj -<< -/Title 135 0 R -/A 132 0 R -/Parent 130 0 R -/First 138 0 R -/Last 150 0 R -/Count -4 ->> -endobj -130 0 obj -<< -/Title 131 0 R -/A 128 0 R -/Parent 1572 0 R -/Prev 98 0 R -/Next 154 0 R -/First 134 0 R -/Last 134 0 R -/Count -1 ->> -endobj -126 0 obj -<< -/Title 127 0 R -/A 124 0 R -/Parent 110 0 R -/Prev 122 0 R ->> -endobj -122 0 obj -<< -/Title 123 0 R -/A 120 0 R -/Parent 110 0 R -/Prev 118 0 R -/Next 126 0 R ->> -endobj -118 0 obj -<< -/Title 119 0 R -/A 116 0 R -/Parent 110 0 R -/Prev 114 0 R -/Next 122 0 R ->> -endobj -114 0 obj -<< -/Title 115 0 R -/A 112 0 R -/Parent 110 0 R -/Next 118 0 R ->> -endobj -110 0 obj -<< -/Title 111 0 R -/A 108 0 R -/Parent 98 0 R -/Prev 106 0 R -/First 114 0 R -/Last 126 0 R -/Count -4 ->> -endobj -106 0 obj -<< -/Title 107 0 R -/A 104 0 R -/Parent 98 0 R -/Prev 102 0 R -/Next 110 0 R ->> -endobj -102 0 obj -<< -/Title 103 0 R -/A 100 0 R -/Parent 98 0 R -/Next 106 0 R ->> -endobj -98 0 obj -<< -/Title 99 0 R -/A 96 0 R -/Parent 1572 0 R -/Prev 54 0 R -/Next 130 0 R -/First 102 0 R -/Last 110 0 R -/Count -3 ->> -endobj -94 0 obj -<< -/Title 95 0 R -/A 92 0 R -/Parent 54 0 R -/Prev 90 0 R ->> -endobj -90 0 obj -<< -/Title 91 0 R -/A 88 0 R -/Parent 54 0 R -/Prev 86 0 R -/Next 94 0 R ->> -endobj -86 0 obj -<< -/Title 87 0 R -/A 84 0 R -/Parent 54 0 R -/Prev 82 0 R -/Next 90 0 R ->> -endobj -82 0 obj -<< -/Title 83 0 R -/A 80 0 R -/Parent 54 0 R -/Prev 78 0 R -/Next 86 0 R ->> -endobj -78 0 obj -<< -/Title 79 0 R -/A 76 0 R -/Parent 54 0 R -/Prev 74 0 R -/Next 82 0 R ->> -endobj -74 0 obj -<< -/Title 75 0 R -/A 72 0 R -/Parent 54 0 R -/Prev 70 0 R -/Next 78 0 R ->> -endobj -70 0 obj -<< -/Title 71 0 R -/A 68 0 R -/Parent 54 0 R -/Prev 66 0 R -/Next 74 0 R ->> -endobj -66 0 obj -<< -/Title 67 0 R -/A 64 0 R -/Parent 54 0 R -/Prev 62 0 R -/Next 70 0 R ->> -endobj -62 0 obj -<< -/Title 63 0 R -/A 60 0 R -/Parent 54 0 R -/Prev 58 0 R -/Next 66 0 R ->> -endobj -58 0 obj -<< -/Title 59 0 R -/A 56 0 R -/Parent 54 0 R -/Next 62 0 R ->> -endobj -54 0 obj -<< -/Title 55 0 R -/A 52 0 R -/Parent 1572 0 R -/Prev 6 0 R -/Next 98 0 R -/First 58 0 R -/Last 94 0 R -/Count -10 ->> -endobj -50 0 obj -<< -/Title 51 0 R -/A 48 0 R -/Parent 34 0 R -/Prev 46 0 R ->> -endobj -46 0 obj -<< -/Title 47 0 R -/A 44 0 R -/Parent 34 0 R -/Prev 42 0 R -/Next 50 0 R ->> -endobj -42 0 obj -<< -/Title 43 0 R -/A 40 0 R -/Parent 34 0 R -/Prev 38 0 R -/Next 46 0 R ->> -endobj -38 0 obj -<< -/Title 39 0 R -/A 36 0 R -/Parent 34 0 R -/Next 42 0 R ->> -endobj -34 0 obj -<< -/Title 35 0 R -/A 32 0 R -/Parent 6 0 R -/Prev 14 0 R -/First 38 0 R -/Last 50 0 R -/Count -4 ->> -endobj -30 0 obj -<< -/Title 31 0 R -/A 28 0 R -/Parent 14 0 R -/Prev 26 0 R ->> -endobj -26 0 obj -<< -/Title 27 0 R -/A 24 0 R -/Parent 14 0 R -/Prev 22 0 R -/Next 30 0 R ->> -endobj -22 0 obj -<< -/Title 23 0 R -/A 20 0 R -/Parent 14 0 R -/Prev 18 0 R -/Next 26 0 R ->> -endobj -18 0 obj -<< -/Title 19 0 R -/A 16 0 R -/Parent 14 0 R -/Next 22 0 R ->> -endobj -14 0 obj -<< -/Title 15 0 R -/A 12 0 R -/Parent 6 0 R -/Prev 10 0 R -/Next 34 0 R -/First 18 0 R -/Last 30 0 R -/Count -4 ->> -endobj -10 0 obj -<< -/Title 11 0 R -/A 8 0 R -/Parent 6 0 R -/Next 14 0 R ->> -endobj -6 0 obj -<< -/Title 7 0 R -/A 4 0 R -/Parent 1572 0 R -/Next 54 0 R -/First 10 0 R -/Last 34 0 R -/Count -3 ->> -endobj -1573 0 obj -<< -/Names [(Doc-Start) 227 0 R (Item.1) 620 0 R (Item.2) 621 0 R (Item.3) 649 0 R (Item.4) 650 0 R (Item.5) 651 0 R] -/Limits [(Doc-Start) (Item.5)] ->> -endobj -1574 0 obj -<< -/Names [(chapter*.1) 473 0 R (chapter.1) 5 0 R (chapter.2) 53 0 R (chapter.3) 97 0 R (chapter.4) 129 0 R (chapter.5) 153 0 R] -/Limits [(chapter*.1) (chapter.5)] ->> -endobj -1575 0 obj -<< -/Names [(ex_step_by_step) 617 0 R (ex_step_by_step_exConclusion) 692 0 R (ex_step_by_step_exDataRate) 652 0 R (ex_step_by_step_exExampleCode) 628 0 R (ex_step_by_step_exHelloIaq) 629 0 R (ex_step_by_step_exMod) 653 0 R] -/Limits [(ex_step_by_step) (ex_step_by_step_exMod)] ->> -endobj -1576 0 obj -<< -/Names [(ex_step_by_step_exPrereq) 618 0 R (ex_step_by_step_exSelfHeating) 685 0 R (ex_step_by_step_exSetup) 622 0 R (ex_step_by_step_exSimMultSensors) 690 0 R (ex_step_by_step_exqULP) 691 0 R (faq) 707 0 R] -/Limits [(ex_step_by_step_exPrereq) (faq)] ->> -endobj -1577 0 obj -<< -/Names [(faq_faqErrorSensorControl) 936 0 R (faq_faqErrorSet) 873 0 R (faq_faqErrorUpdateSubscription) 791 0 R (faq_faqError_BSEC_E_CONFIG_CRCMISMATCH) 905 0 R (faq_faqError_BSEC_E_CONFIG_EMPTY) 908 0 R (faq_faqError_BSEC_E_CONFIG_FEATUREMISMATCH) 877 0 R] -/Limits [(faq_faqErrorSensorControl) (faq_faqError_BSEC_E_CONFIG_FEATUREMISMATCH)] ->> -endobj -1578 0 obj -<< -/Names [(faq_faqError_BSEC_E_CONFIG_INSUFFICIENTBUFFER) 934 0 R (faq_faqError_BSEC_E_CONFIG_INSUFFICIENTWORKBUFFER) 910 0 R (faq_faqError_BSEC_E_CONFIG_INVALIDSTRINGSIZE) 931 0 R (faq_faqError_BSEC_E_CONFIG_VERSIONMISMATCH) 874 0 R (faq_faqError_BSEC_E_DOSTEPS_DUPLICATEINPUT) 737 0 R (faq_faqError_BSEC_E_DOSTEPS_INVALIDINPUT) 712 0 R] -/Limits [(faq_faqError_BSEC_E_CONFIG_INSUFFICIENTBUFFER) (faq_faqError_BSEC_E_DOSTEPS_INVALIDINPUT)] ->> -endobj -1579 0 obj -<< -/Names [(faq_faqError_BSEC_E_DOSTEPS_VALUELIMITS) 735 0 R (faq_faqError_BSEC_E_SU_DUPLICATEGATE) 796 0 R (faq_faqError_BSEC_E_SU_GATECOUNTEXCEEDSARRAY) 821 0 R (faq_faqError_BSEC_E_SU_HIGHHEATERONDURATION) 844 0 R (faq_faqError_BSEC_E_SU_INVALIDSAMPLERATE) 819 0 R (faq_faqError_BSEC_E_SU_MULTGASSAMPLINTVL) 842 0 R] -/Limits [(faq_faqError_BSEC_E_DOSTEPS_VALUELIMITS) (faq_faqError_BSEC_E_SU_MULTGASSAMPLINTVL)] ->> -endobj -1580 0 obj -<< -/Names [(faq_faqError_BSEC_E_SU_SAMPLERATELIMITS) 794 0 R (faq_faqError_BSEC_E_SU_SAMPLINTVLINTEGERMULT) 823 0 R (faq_faqError_BSEC_E_SU_WRONGDATARATE) 792 0 R (faq_faqError_BSEC_I_DOSTEPS_NOOUTPUTSRETURNABLE) 761 0 R (faq_faqError_BSEC_I_SU_SUBSCRIBEDOUTPUTGATES) 848 0 R (faq_faqError_BSEC_W_DOSTEPS_EXCESSOUTPUTS) 764 0 R] -/Limits [(faq_faqError_BSEC_E_SU_SAMPLERATELIMITS) (faq_faqError_BSEC_W_DOSTEPS_EXCESSOUTPUTS)] ->> -endobj -1581 0 obj -<< -/Names [(faq_faqError_BSEC_W_DOSTEPS_TSINTRADIFFOUTOFRANGE) 767 0 R (faq_faqError_BSEC_W_SC_CALL_TIMING_VIOLATION) 937 0 R (faq_faqError_BSEC_W_SC_MODEXCEEDULPTIMELIMIT) 950 0 R (faq_faqError_BSEC_W_SC_MODINSUFFICIENTWAITTIME) 939 0 R (faq_faqError_BSEC_W_SU_MODINNOULP) 871 0 R (faq_faqError_BSEC_W_SU_UNKNOWNOUTPUTGATE) 846 0 R] -/Limits [(faq_faqError_BSEC_W_DOSTEPS_TSINTRADIFFOUTOFRANGE) (faq_faqError_BSEC_W_SU_UNKNOWNOUTPUTGATE)] ->> -endobj -1582 0 obj -<< -/Names [(faq_faqErrors) 710 0 R (faq_faqErrorsDoSteps) 711 0 R (faq_faqNoOutput) 708 0 R (faq_faqOutputZero) 709 0 R (figure.1.1) 598 0 R (group__bsec__interface) 978 0 R] -/Limits [(faq_faqErrors) (group__bsec__interface)] ->> -endobj -1583 0 obj -<< -/Names [(group__bsec__interface_ga109bf6e051d8635725da5bedeecf9eb2) 1346 0 R (group__bsec__interface_ga157748484a31501acfeee3df656adf54) 630 0 R (group__bsec__interface_ga216b6f4807227a2c6a183aaa9a8b8d7c) 1182 0 R (group__bsec__interface_ga339df4596b1c0e02eede5d54aa0f2858) 642 0 R (group__bsec__interface_ga49210a8ceb36d8610075b9220a0cdec6) 601 0 R (group__bsec__interface_ga51bcd13812ea62b35749284385a72f98) 536 0 R] -/Limits [(group__bsec__interface_ga109bf6e051d8635725da5bedeecf9eb2) (group__bsec__interface_ga51bcd13812ea62b35749284385a72f98)] ->> -endobj -1584 0 obj -<< -/Names [(group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) 739 0 R (group__bsec__interface_ga6c18af8c9be0813f7d8e3547e58428db) 678 0 R (group__bsec__interface_ga70e68dbe60e2ba462537540d60192a2e) 882 0 R (group__bsec__interface_ga78ceba2853489683f274831b41460d3e) 1348 0 R (group__bsec__interface_ga7a53a20ee206f9b4c30c1d63395b3c49) 1371 0 R (group__bsec__interface_ga832388c889417ed197609d9965625bfe) 770 0 R] -/Limits [(group__bsec__interface_ga5e4d504611e1c4a0219861bbcf2ad650) (group__bsec__interface_ga832388c889417ed197609d9965625bfe)] ->> -endobj -1585 0 obj -<< -/Names [(group__bsec__interface_ga847070d3ecfa970cb2f716a2d11fe219) 674 0 R (group__bsec__interface_ga853243e7f08cc25be117fca5c8216d99) 1049 0 R (group__bsec__interface_ga8798390d842b820e79e9cbf8ba4d516e) 916 0 R (group__bsec__interface_ga8967694b8e412412977488e3e6fdb3ed) 1362 0 R (group__bsec__interface_ga91d06ad8cd57ceae529b66dd30ca4d8c) 715 0 R (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8) 516 0 R] -/Limits [(group__bsec__interface_ga847070d3ecfa970cb2f716a2d11fe219) (group__bsec__interface_ga9de59ebc6a2504f15ba51d6d983faae8)] ->> -endobj -1586 0 obj -<< -/Names [(group__bsec__interface_ga9e190b85f103d75ede9477227567e799) 1364 0 R (group__bsec__interface_gaa8bb29e07b5b96d6f576962aef094466) 1369 0 R (group__bsec__interface_gab2122fa3909f67a2c786ecd2d8993977) 1068 0 R (group__bsec__interface_gac182d75bb2ca95c32ba4b98a136ad081) 1381 0 R (group__bsec__interface_gac4726411862aa2d383e3d3b9ca279a5d) 518 0 R (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f) 517 0 R] -/Limits [(group__bsec__interface_ga9e190b85f103d75ede9477227567e799) (group__bsec__interface_gac79a471c6e20fd8c17577f6f69a9469f)] ->> -endobj -1587 0 obj -<< -/Names [(group__bsec__interface_gacf6a5816306dfc1e3c0b26a6d459fc71) 654 0 R (group__bsec__interface_gad8f5b300b8cf00c73d837660a05e0507) 1367 0 R (group__bsec__interface_gae89eedb131288b72c267c02ec9dea8e5) 1089 0 R (group__bsec__interface_gae8fc6d614d6a40f0088262dccbb960dc) 883 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a06af666972edcebef3302d015f1d56c5) 675 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a0a7f6e18d053c4af5f26f3852ef6ae14) 771 0 R] -/Limits [(group__bsec__interface_gacf6a5816306dfc1e3c0b26a6d459fc71) (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a0a7f6e18d053c4af5f26f3852ef6ae14)] ->> -endobj -1588 0 obj -<< -/Names [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a178d85d77cf448057897e9b0e0932e33) 800 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a17bf2f98e8c59e29a8eda42c692e5b3d) 716 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a1ba36727b09433f1ae925646864d8a61) 826 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a2175fa185bbcaafb28b5c73ca8ff2394) 825 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a360b54bd3d53b377010d3afa29e04b89) 1243 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a3975b1dfa3c35829ce97814e04c143ce) 941 0 R] -/Limits [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a178d85d77cf448057897e9b0e0932e33) (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a3975b1dfa3c35829ce97814e04c143ce)] ->> -endobj -1589 0 obj -<< -/Names [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a465d9fc420b12cfe3d24e937c5e5f110) 798 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a5946f4a20c9ba0cd83fed96ce3103c06) 742 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a5fa05dbfcae3caa309d9f62422eb61f3) 1242 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a6d707845ea3200a1a45726c2700333e5) 772 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a76ee5462e14060fcc889bd889b6f7b3c) 914 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a7f2cea23dbdaeddb2d91d861c608f239) 879 0 R] -/Limits [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a465d9fc420b12cfe3d24e937c5e5f110) (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a7f2cea23dbdaeddb2d91d861c608f239)] ->> -endobj -1590 0 obj -<< -/Names [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a81fd5b4436be253e0ef3ebdf51b3d193) 740 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a87428d7a4a5d52e48af8db92ab71c83e) 880 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a89e2eec8486c2880912af108bbed3593) 913 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a8d7a8938ef9616b935094ed223122914) 1244 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a978a12de4397b9c0814e07650f8a1b46) 1245 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858aa1a59666f0af5463087f528473d4ff8c) 827 0 R] -/Limits [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858a81fd5b4436be253e0ef3ebdf51b3d193) (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858aa1a59666f0af5463087f528473d4ff8c)] ->> -endobj -1591 0 obj -<< -/Names [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858aa238cfe9b905deda6f1823ca32378f91) 944 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858aa5de81322b446f028934aa30c4826610) 799 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ab5356ac211454109eac007fcc458a6dd) 915 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ab78d6a66fc7a4205a6caf69ce4f161e4) 849 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ab810ba8e0fc4425c37aa460e57dc8129) 850 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ab87b5a5abeadc975488850bece3dbf84) 769 0 R] -/Limits [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858aa238cfe9b905deda6f1823ca32378f91) (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ab87b5a5abeadc975488850bece3dbf84)] ->> -endobj -1592 0 obj -<< -/Names [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ac2600415df086d1a9b36105ac29396de) 881 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ac2eca8b900ce91ee50004c549a409024) 942 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ac5899ebab7738c4c99b19ad9d934f8d1) 851 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ada34397de8a8e88ad72e8546748866cd) 943 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ae5d8b5de70152c09b4153bcb41997ee7) 912 0 R (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ae8e920ecde96d7d79b8962da38233880) 952 0 R] -/Limits [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ac2600415df086d1a9b36105ac29396de) (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858ae8e920ecde96d7d79b8962da38233880)] ->> -endobj -1593 0 obj -<< -/Names [(group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a161b8c7ebab8fcea5590d37295d31b35) 1315 0 R (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a381b968290256e77d50c4f7e92bfb27c) 1030 0 R (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a3eb936f08a8f6f01d4c683a6ba0c9d3a) 741 0 R (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a9202c1504b464b16f432da6a4dd582a2) 1272 0 R (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650aaf8083737123a5c4d012783ee10a522d) 1313 0 R (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650ad30626f0de1be98802cb5e50c8b67207) 1027 0 R] -/Limits [(group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650a161b8c7ebab8fcea5590d37295d31b35) (group__bsec__interface_gga5e4d504611e1c4a0219861bbcf2ad650ad30626f0de1be98802cb5e50c8b67207)] ->> -endobj -1594 0 obj -<< -/Names [(group__bsec__interface_gga832388c889417ed197609d9965625bfea134c7c7f7bd544e304209368ec72467a) 1324 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfea1369c4abd0a13602b197dfc94ae6ff7d) 1325 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfea1aac5358fbe12702647de81cacd6d062) 590 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfea1c0eee38a61b05c5239c871f9cdc85a4) 588 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfea2368e219ebbce4e1ede7209486283a6e) 586 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfea4e05ab48912e70486351f5199910fcb9) 587 0 R] -/Limits [(group__bsec__interface_gga832388c889417ed197609d9965625bfea134c7c7f7bd544e304209368ec72467a) (group__bsec__interface_gga832388c889417ed197609d9965625bfea4e05ab48912e70486351f5199910fcb9)] ->> -endobj -1595 0 obj -<< -/Names [(group__bsec__interface_gga832388c889417ed197609d9965625bfea5f42ad42c6bb71627b5ce91d4c410985) 582 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfea64d14f069c838de2d2c1f3f436ef6108) 585 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfea684dc07fef8c1723e60211068365b30a) 1323 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfea78b917ecbffc8eac6875644c4136a26d) 1342 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfea792b0fbeffceea19513cc0bd31ce7ef7) 583 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfea9fe6dbe27991e3f9f1a444c40b30af3d) 589 0 R] -/Limits [(group__bsec__interface_gga832388c889417ed197609d9965625bfea5f42ad42c6bb71627b5ce91d4c410985) (group__bsec__interface_gga832388c889417ed197609d9965625bfea9fe6dbe27991e3f9f1a444c40b30af3d)] ->> -endobj -1596 0 obj -<< -/Names [(group__bsec__interface_gga832388c889417ed197609d9965625bfeab9d6e7e5bb1c5f99d339a649d588b3cc) 584 0 R (group__bsec__interface_gga832388c889417ed197609d9965625bfeaf2cfe69583f70b1196660122ab5a94b6) 1341 0 R (index) 494 0 R (index_intguideBSECConfiguration) 515 0 R (index_intguideBSECSolutions) 512 0 R (index_intguideLibrary) 500 0 R] -/Limits [(group__bsec__interface_gga832388c889417ed197609d9965625bfeab9d6e7e5bb1c5f99d339a649d588b3cc) (index_intguideLibrary)] ->> -endobj -1597 0 obj -<< -/Names [(index_intguideLibraryOutputs) 575 0 R (index_intguideOverviewSensors) 495 0 R (index_intguideQuickintroCodeBuild) 606 0 R (index_intguideRequirements) 579 0 R (index_intguideRequirementsFramework) 581 0 R (index_intguideRequirementsHardware) 580 0 R] -/Limits [(index_intguideLibraryOutputs) (index_intguideRequirementsHardware)] ->> -endobj -1598 0 obj -<< -/Names [(index_intguideRequirementsInputs) 599 0 R (index_intguideSolutionKeyfeature) 533 0 R (page.1) 225 0 R (page.10) 605 0 R (page.11) 616 0 R (page.12) 627 0 R] -/Limits [(index_intguideRequirementsInputs) (page.12)] ->> -endobj -1599 0 obj -<< -/Names [(page.13) 635 0 R (page.14) 641 0 R (page.15) 647 0 R (page.16) 672 0 R (page.17) 684 0 R (page.18) 689 0 R] -/Limits [(page.13) (page.18)] ->> -endobj -1600 0 obj -<< -/Names [(page.19) 706 0 R (page.2) 427 0 R (page.20) 733 0 R (page.21) 760 0 R (page.22) 790 0 R (page.23) 818 0 R] -/Limits [(page.19) (page.23)] ->> -endobj -1601 0 obj -<< -/Names [(page.24) 841 0 R (page.25) 868 0 R (page.26) 902 0 R (page.27) 930 0 R (page.28) 949 0 R (page.29) 977 0 R] -/Limits [(page.24) (page.29)] ->> -endobj -1602 0 obj -<< -/Names [(page.3) 472 0 R (page.30) 994 0 R (page.31) 1023 0 R (page.32) 1046 0 R (page.33) 1063 0 R (page.34) 1087 0 R] -/Limits [(page.3) (page.34)] ->> -endobj -1603 0 obj -<< -/Names [(page.35) 1111 0 R (page.36) 1130 0 R (page.37) 1151 0 R (page.38) 1180 0 R (page.39) 1234 0 R (page.4) 489 0 R] -/Limits [(page.35) (page.4)] ->> -endobj -1604 0 obj -<< -/Names [(page.40) 1241 0 R (page.41) 1269 0 R (page.42) 1312 0 R (page.43) 1322 0 R (page.44) 1330 0 R (page.45) 1338 0 R] -/Limits [(page.40) (page.45)] ->> -endobj -1605 0 obj -<< -/Names [(page.46) 1360 0 R (page.47) 1376 0 R (page.48) 1386 0 R (page.49) 1408 0 R (page.5) 493 0 R (page.50) 1424 0 R] -/Limits [(page.46) (page.50)] ->> -endobj -1606 0 obj -<< -/Names [(page.51) 1444 0 R (page.52) 1464 0 R (page.53) 1476 0 R (page.54) 1490 0 R (page.55) 1518 0 R (page.56) 1527 0 R] -/Limits [(page.51) (page.56)] ->> -endobj -1607 0 obj -<< -/Names [(page.6) 508 0 R (page.7) 529 0 R (page.8) 573 0 R (page.9) 596 0 R (section*.10) 984 0 R (section*.11) 1409 0 R] -/Limits [(page.6) (section*.11)] ->> -endobj -1608 0 obj -<< -/Names [(section*.12) 1447 0 R (section*.13) 1468 0 R (section*.14) 1495 0 R (section*.15) 1522 0 R (section*.2) 496 0 R (section*.3) 497 0 R] -/Limits [(section*.12) (section*.3)] ->> -endobj -1609 0 obj -<< -/Names [(section*.4) 498 0 R (section*.5) 499 0 R (section*.6) 509 0 R (section*.7) 534 0 R (section*.8) 574 0 R (section*.9) 979 0 R] -/Limits [(section*.4) (section*.9)] ->> -endobj -1610 0 obj -<< -/Names [(section.1.1) 9 0 R (section.1.2) 13 0 R (section.1.3) 33 0 R (section.2.1) 57 0 R (section.2.10) 93 0 R (section.2.2) 61 0 R] -/Limits [(section.1.1) (section.2.2)] ->> -endobj -1611 0 obj -<< -/Names [(section.2.3) 65 0 R (section.2.4) 69 0 R (section.2.5) 73 0 R (section.2.6) 77 0 R (section.2.7) 81 0 R (section.2.8) 85 0 R] -/Limits [(section.2.3) (section.2.8)] ->> -endobj -1612 0 obj -<< -/Names [(section.2.9) 89 0 R (section.3.1) 101 0 R (section.3.2) 105 0 R (section.3.3) 109 0 R (section.4.1) 133 0 R (section.5.1) 157 0 R] -/Limits [(section.2.9) (section.5.1)] ->> -endobj -1613 0 obj -<< -/Names [(section.5.2) 169 0 R (section.5.3) 181 0 R (section.5.4) 193 0 R (section.5.5) 205 0 R (structbsec__bme__settings__t) 1116 0 R (structbsec__bme__settings__t_a300b00f9580b9af76d441cd4db8d7083) 1117 0 R] -/Limits [(section.5.2) (structbsec__bme__settings__t_a300b00f9580b9af76d441cd4db8d7083)] ->> -endobj -1614 0 obj -<< -/Names [(structbsec__bme__settings__t_a4407b04a0d403a9fb35fd322999113a9) 1415 0 R (structbsec__bme__settings__t_a500cfa825fa7c6ead38eba7bf7b4b955) 1413 0 R (structbsec__bme__settings__t_a7984769929826a36f59e7b9dfd6e7447) 1418 0 R (structbsec__bme__settings__t_aa197109b334a2a443d9349812865bff1) 1412 0 R (structbsec__bme__settings__t_aa4a1eeae4e7fe44a8093a3862996fbac) 1419 0 R (structbsec__bme__settings__t_aecd99f57df2bc07663a7de83f877228e) 1416 0 R] -/Limits [(structbsec__bme__settings__t_a4407b04a0d403a9fb35fd322999113a9) (structbsec__bme__settings__t_aecd99f57df2bc07663a7de83f877228e)] ->> -endobj -1615 0 obj -<< -/Names [(structbsec__bme__settings__t_aed0450820cd910e06e26fba04256bc24) 1417 0 R (structbsec__bme__settings__t_afc3ab51b88f259e5cb76c10ee0732e5b) 1414 0 R (structbsec__input__t) 999 0 R (structbsec__input__t_a000803d39a2be521f2b5e7017c31303b) 1028 0 R (structbsec__input__t_a90d515d57b274dfde74a281de469a3ad) 1029 0 R (structbsec__input__t_a916867811b65988853b69f729b91c262) 1026 0 R] -/Limits [(structbsec__bme__settings__t_aed0450820cd910e06e26fba04256bc24) (structbsec__input__t_a916867811b65988853b69f729b91c262)] ->> -endobj -1616 0 obj -<< -/Names [(structbsec__input__t_ab535651a26b2e2c44c83e441385e3def) 1449 0 R (structbsec__output__t) 1000 0 R (structbsec__output__t_a1a046572bcb85189df10c9ac8f362999) 1470 0 R (structbsec__output__t_a74a917725569b67eb14e78a34fa9c55d) 1469 0 R (structbsec__output__t_a91006cd8f20e88a5ff2b6ebfbecdeb95) 1471 0 R (structbsec__output__t_ab188da3e58d458f4b94a64379404da46) 1318 0 R] -/Limits [(structbsec__input__t_ab535651a26b2e2c44c83e441385e3def) (structbsec__output__t_ab188da3e58d458f4b94a64379404da46)] ->> -endobj -1617 0 obj -<< -/Names [(structbsec__output__t_ac4e7ef20f713075472bc953efb13957f) 591 0 R (structbsec__sensor__configuration__t) 673 0 R (structbsec__sensor__configuration__t_a150ba3a737fb75f56052c60d55246ae4) 677 0 R (structbsec__sensor__configuration__t_a92665e4f2f3cd5237814488774c0f546) 676 0 R (structbsec__version__t) 1069 0 R (structbsec__version__t_a3d9b11a72027026f492a438342a2efbd) 1095 0 R] -/Limits [(structbsec__output__t_ac4e7ef20f713075472bc953efb13957f) (structbsec__version__t_a3d9b11a72027026f492a438342a2efbd)] ->> -endobj -1618 0 obj -<< -/Names [(structbsec__version__t_a5daac4534748c6f0be9f009273613b02) 1096 0 R (structbsec__version__t_a9d47d254d17740222791fa0f53c7ac52) 1094 0 R (structbsec__version__t_af823001b85e62b90279f9e6f3c478c23) 1093 0 R (subsection.1.2.1) 17 0 R (subsection.1.2.2) 21 0 R (subsection.1.2.3) 25 0 R] -/Limits [(structbsec__version__t_a5daac4534748c6f0be9f009273613b02) (subsection.1.2.3)] ->> -endobj -1619 0 obj -<< -/Names [(subsection.1.2.4) 29 0 R (subsection.1.3.1) 37 0 R (subsection.1.3.2) 41 0 R (subsection.1.3.3) 45 0 R (subsection.1.3.4) 49 0 R (subsection.3.3.1) 113 0 R] -/Limits [(subsection.1.2.4) (subsection.3.3.1)] ->> -endobj -1620 0 obj -<< -/Names [(subsection.3.3.2) 117 0 R (subsection.3.3.3) 121 0 R (subsection.3.3.4) 125 0 R (subsection.4.1.1) 137 0 R (subsection.4.1.2) 141 0 R (subsection.4.1.3) 145 0 R] -/Limits [(subsection.3.3.2) (subsection.4.1.3)] ->> -endobj -1621 0 obj -<< -/Names [(subsection.4.1.4) 149 0 R (subsection.5.1.1) 161 0 R (subsection.5.1.2) 165 0 R (subsection.5.2.1) 173 0 R (subsection.5.2.2) 177 0 R (subsection.5.3.1) 185 0 R] -/Limits [(subsection.4.1.4) (subsection.5.3.1)] ->> -endobj -1622 0 obj -<< -/Names [(subsection.5.3.2) 189 0 R (subsection.5.4.1) 197 0 R (subsection.5.4.2) 201 0 R (subsection.5.5.1) 209 0 R (subsection.5.5.2) 213 0 R (subsubsection.3.3.1.1) 713 0 R] -/Limits [(subsection.5.3.2) (subsubsection.3.3.1.1)] ->> -endobj -1623 0 obj -<< -/Names [(subsubsection.3.3.1.2) 736 0 R (subsubsection.3.3.1.3) 738 0 R (subsubsection.3.3.1.4) 762 0 R (subsubsection.3.3.1.5) 765 0 R (subsubsection.3.3.1.6) 768 0 R (subsubsection.3.3.2.1) 793 0 R] -/Limits [(subsubsection.3.3.1.2) (subsubsection.3.3.2.1)] ->> -endobj -1624 0 obj -<< -/Names [(subsubsection.3.3.2.10) 869 0 R (subsubsection.3.3.2.11) 872 0 R (subsubsection.3.3.2.2) 795 0 R (subsubsection.3.3.2.3) 797 0 R (subsubsection.3.3.2.4) 820 0 R (subsubsection.3.3.2.5) 822 0 R] -/Limits [(subsubsection.3.3.2.10) (subsubsection.3.3.2.5)] ->> -endobj -1625 0 obj -<< -/Names [(subsubsection.3.3.2.6) 824 0 R (subsubsection.3.3.2.7) 843 0 R (subsubsection.3.3.2.8) 845 0 R (subsubsection.3.3.2.9) 847 0 R (subsubsection.3.3.3.1) 875 0 R (subsubsection.3.3.3.2) 903 0 R] -/Limits [(subsubsection.3.3.2.6) (subsubsection.3.3.3.2)] ->> -endobj -1626 0 obj -<< -/Names [(subsubsection.3.3.3.3) 906 0 R (subsubsection.3.3.3.4) 909 0 R (subsubsection.3.3.3.5) 911 0 R (subsubsection.3.3.3.6) 932 0 R (subsubsection.3.3.3.7) 935 0 R (subsubsection.3.3.4.1) 938 0 R] -/Limits [(subsubsection.3.3.3.3) (subsubsection.3.3.4.1)] ->> -endobj -1627 0 obj -<< -/Names [(subsubsection.3.3.4.2) 940 0 R (subsubsection.3.3.4.3) 951 0 R (subsubsection.4.1.2.1) 995 0 R (subsubsection.4.1.2.10) 1152 0 R (subsubsection.4.1.2.2) 1024 0 R (subsubsection.4.1.2.3) 1048 0 R] -/Limits [(subsubsection.3.3.4.2) (subsubsection.4.1.2.3)] ->> -endobj -1628 0 obj -<< -/Names [(subsubsection.4.1.2.4) 1066 0 R (subsubsection.4.1.2.5) 1088 0 R (subsubsection.4.1.2.6) 1090 0 R (subsubsection.4.1.2.7) 1092 0 R (subsubsection.4.1.2.8) 1114 0 R (subsubsection.4.1.2.9) 1131 0 R] -/Limits [(subsubsection.4.1.2.4) (subsubsection.4.1.2.9)] ->> -endobj -1629 0 obj -<< -/Names [(subsubsection.4.1.3.1) 1235 0 R (subsubsection.4.1.3.2) 1270 0 R (subsubsection.4.1.3.3) 1316 0 R (subsubsection.4.1.4.1) 1343 0 R (subsubsection.4.1.4.10) 1372 0 R (subsubsection.4.1.4.11) 1377 0 R] -/Limits [(subsubsection.4.1.3.1) (subsubsection.4.1.4.11)] ->> -endobj -1630 0 obj -<< -/Names [(subsubsection.4.1.4.12) 1378 0 R (subsubsection.4.1.4.13) 1379 0 R (subsubsection.4.1.4.14) 1380 0 R (subsubsection.4.1.4.15) 1382 0 R (subsubsection.4.1.4.2) 1344 0 R (subsubsection.4.1.4.3) 1345 0 R] -/Limits [(subsubsection.4.1.4.12) (subsubsection.4.1.4.3)] ->> -endobj -1631 0 obj -<< -/Names [(subsubsection.4.1.4.4) 1347 0 R (subsubsection.4.1.4.5) 1361 0 R (subsubsection.4.1.4.6) 1363 0 R (subsubsection.4.1.4.7) 1365 0 R (subsubsection.4.1.4.8) 1368 0 R (subsubsection.4.1.4.9) 1370 0 R] -/Limits [(subsubsection.4.1.4.4) (subsubsection.4.1.4.9)] ->> -endobj -1632 0 obj -<< -/Names [(subsubsection.5.1.2.1) 1425 0 R (subsubsection.5.1.2.2) 1426 0 R (subsubsection.5.1.2.3) 1427 0 R (subsubsection.5.1.2.4) 1428 0 R (subsubsection.5.1.2.5) 1429 0 R (subsubsection.5.1.2.6) 1430 0 R] -/Limits [(subsubsection.5.1.2.1) (subsubsection.5.1.2.6)] ->> -endobj -1633 0 obj -<< -/Names [(subsubsection.5.1.2.7) 1431 0 R (subsubsection.5.1.2.8) 1445 0 R (subsubsection.5.1.2.9) 1446 0 R (subsubsection.5.2.2.1) 1448 0 R (subsubsection.5.2.2.2) 1465 0 R (subsubsection.5.2.2.3) 1466 0 R] -/Limits [(subsubsection.5.1.2.7) (subsubsection.5.2.2.3)] ->> -endobj -1634 0 obj -<< -/Names [(subsubsection.5.2.2.4) 1467 0 R (subsubsection.5.3.2.1) 1477 0 R (subsubsection.5.3.2.2) 1491 0 R (subsubsection.5.3.2.3) 1492 0 R (subsubsection.5.3.2.4) 1493 0 R (subsubsection.5.3.2.5) 1494 0 R] -/Limits [(subsubsection.5.2.2.4) (subsubsection.5.3.2.5)] ->> -endobj -1635 0 obj -<< -/Names [(subsubsection.5.4.2.1) 1519 0 R (subsubsection.5.4.2.2) 1520 0 R (subsubsection.5.5.2.1) 1528 0 R (subsubsection.5.5.2.2) 1529 0 R (subsubsection.5.5.2.3) 1530 0 R (subsubsection.5.5.2.4) 1531 0 R] -/Limits [(subsubsection.5.4.2.1) (subsubsection.5.5.2.4)] ->> -endobj -1636 0 obj -<< -/Names [(table.1.1) 513 0 R (table.1.2) 530 0 R (table.1.3) 576 0 R (table.1.4) 607 0 R (table.4.1) 980 0 R (table.4.10) 1113 0 R] -/Limits [(table.1.1) (table.4.10)] ->> -endobj -1637 0 obj -<< -/Names [(table.4.11) 1115 0 R (table.4.12) 1132 0 R (table.4.13) 1181 0 R (table.4.14) 1236 0 R (table.4.15) 1271 0 R (table.4.16) 1317 0 R] -/Limits [(table.4.11) (table.4.16)] ->> -endobj -1638 0 obj -<< -/Names [(table.4.2) 981 0 R (table.4.3) 982 0 R (table.4.4) 983 0 R (table.4.5) 998 0 R (table.4.6) 1047 0 R (table.4.7) 1065 0 R] -/Limits [(table.4.2) (table.4.7)] ->> -endobj -1639 0 obj -<< -/Names [(table.4.8) 1067 0 R (table.4.9) 1091 0 R (table.5.1) 1478 0 R (table.5.2) 1479 0 R (table.5.3) 1480 0 R (table.5.4) 1521 0 R] -/Limits [(table.4.8) (table.5.4)] ->> -endobj -1640 0 obj -<< -/Kids [1573 0 R 1574 0 R 1575 0 R 1576 0 R 1577 0 R 1578 0 R] -/Limits [(Doc-Start) (faq_faqError_BSEC_E_DOSTEPS_INVALIDINPUT)] ->> -endobj -1641 0 obj -<< -/Kids [1579 0 R 1580 0 R 1581 0 R 1582 0 R 1583 0 R 1584 0 R] -/Limits [(faq_faqError_BSEC_E_DOSTEPS_VALUELIMITS) (group__bsec__interface_ga832388c889417ed197609d9965625bfe)] ->> -endobj -1642 0 obj -<< -/Kids [1585 0 R 1586 0 R 1587 0 R 1588 0 R 1589 0 R 1590 0 R] -/Limits [(group__bsec__interface_ga847070d3ecfa970cb2f716a2d11fe219) (group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858aa1a59666f0af5463087f528473d4ff8c)] ->> -endobj -1643 0 obj -<< -/Kids [1591 0 R 1592 0 R 1593 0 R 1594 0 R 1595 0 R 1596 0 R] -/Limits [(group__bsec__interface_gga339df4596b1c0e02eede5d54aa0f2858aa238cfe9b905deda6f1823ca32378f91) (index_intguideLibrary)] ->> -endobj -1644 0 obj -<< -/Kids [1597 0 R 1598 0 R 1599 0 R 1600 0 R 1601 0 R 1602 0 R] -/Limits [(index_intguideLibraryOutputs) (page.34)] ->> -endobj -1645 0 obj -<< -/Kids [1603 0 R 1604 0 R 1605 0 R 1606 0 R 1607 0 R 1608 0 R] -/Limits [(page.35) (section*.3)] ->> -endobj -1646 0 obj -<< -/Kids [1609 0 R 1610 0 R 1611 0 R 1612 0 R 1613 0 R 1614 0 R] -/Limits [(section*.4) (structbsec__bme__settings__t_aecd99f57df2bc07663a7de83f877228e)] ->> -endobj -1647 0 obj -<< -/Kids [1615 0 R 1616 0 R 1617 0 R 1618 0 R 1619 0 R 1620 0 R] -/Limits [(structbsec__bme__settings__t_aed0450820cd910e06e26fba04256bc24) (subsection.4.1.3)] ->> -endobj -1648 0 obj -<< -/Kids [1621 0 R 1622 0 R 1623 0 R 1624 0 R 1625 0 R 1626 0 R] -/Limits [(subsection.4.1.4) (subsubsection.3.3.4.1)] ->> -endobj -1649 0 obj -<< -/Kids [1627 0 R 1628 0 R 1629 0 R 1630 0 R 1631 0 R 1632 0 R] -/Limits [(subsubsection.3.3.4.2) (subsubsection.5.1.2.6)] ->> -endobj -1650 0 obj -<< -/Kids [1633 0 R 1634 0 R 1635 0 R 1636 0 R 1637 0 R 1638 0 R] -/Limits [(subsubsection.5.1.2.7) (table.4.7)] ->> -endobj -1651 0 obj -<< -/Kids [1639 0 R] -/Limits [(table.4.8) (table.5.4)] ->> -endobj -1652 0 obj -<< -/Kids [1640 0 R 1641 0 R 1642 0 R 1643 0 R 1644 0 R 1645 0 R] -/Limits [(Doc-Start) (section*.3)] ->> -endobj -1653 0 obj -<< -/Kids [1646 0 R 1647 0 R 1648 0 R 1649 0 R 1650 0 R 1651 0 R] -/Limits [(section*.4) (table.5.4)] ->> -endobj -1654 0 obj -<< -/Kids [1652 0 R 1653 0 R] -/Limits [(Doc-Start) (table.5.4)] ->> -endobj -1655 0 obj -<< -/Dests 1654 0 R ->> -endobj -1656 0 obj -<< -/Type /Catalog -/Pages 1571 0 R -/Outlines 1572 0 R -/Names 1655 0 R -/PageMode/UseOutlines -/OpenAction 216 0 R ->> -endobj -1657 0 obj -<< -/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.18)/Keywords() -/CreationDate (D:20190628134145+08'00') -/ModDate (D:20190628134145+08'00') -/Trapped /False -/PTEX.Fullbanner (This is MiKTeX-pdfTeX 2.9.6362 (1.40.18)) ->> -endobj -xref -0 1658 -0000000519 65535 f -0000840812 00000 n -0000840832 00000 n -0000840852 00000 n -0000000015 00000 n -0000547474 00000 n -0001229897 00000 n -0000000060 00000 n -0000000222 00000 n -0000547655 00000 n -0001229825 00000 n -0000000269 00000 n -0000000458 00000 n -0000552570 00000 n -0001229702 00000 n -0000000506 00000 n -0000000730 00000 n -0000552751 00000 n -0001229628 00000 n -0000000783 00000 n -0000000926 00000 n -0000552934 00000 n -0001229541 00000 n -0000000979 00000 n -0000001147 00000 n -0000556966 00000 n -0001229454 00000 n -0000001200 00000 n -0000001290 00000 n -0000564100 00000 n -0001229380 00000 n -0000001343 00000 n -0000001577 00000 n -0000564283 00000 n -0001229270 00000 n -0000001625 00000 n -0000001798 00000 n -0000564404 00000 n -0001229196 00000 n -0000001851 00000 n -0000001918 00000 n -0000602032 00000 n -0001229109 00000 n -0000001971 00000 n -0000002091 00000 n -0000604706 00000 n -0001229022 00000 n -0000002144 00000 n -0000002325 00000 n -0000604828 00000 n -0001228948 00000 n -0000002378 00000 n -0000002501 00000 n -0000609616 00000 n -0001228822 00000 n -0000002547 00000 n -0000002705 00000 n -0000609799 00000 n -0001228748 00000 n -0000002753 00000 n -0000002845 00000 n -0000610043 00000 n -0001228661 00000 n -0000002893 00000 n -0000003031 00000 n -0000614559 00000 n -0001228574 00000 n -0000003079 00000 n -0000003192 00000 n -0000618304 00000 n -0001228487 00000 n -0000003240 00000 n -0000003416 00000 n -0000626182 00000 n -0001228400 00000 n -0000003464 00000 n -0000003627 00000 n -0000632926 00000 n -0001228313 00000 n -0000003675 00000 n -0000003788 00000 n -0000637047 00000 n -0001228226 00000 n -0000003836 00000 n -0000004147 00000 n -0000640369 00000 n -0001228139 00000 n -0000004195 00000 n -0000004500 00000 n -0000640489 00000 n -0001228052 00000 n -0000004548 00000 n -0000004763 00000 n -0000640610 00000 n -0001227978 00000 n -0000004812 00000 n -0000004889 00000 n -0000645524 00000 n -0001227849 00000 n -0000004935 00000 n -0000004977 00000 n -0000645706 00000 n -0001227771 00000 n -0000005026 00000 n -0000005225 00000 n -0000645828 00000 n -0001227679 00000 n -0000005274 00000 n -0000005566 00000 n -0000645950 00000 n -0001227562 00000 n -0000005615 00000 n -0000005830 00000 n -0000646073 00000 n -0001227483 00000 n -0000005884 00000 n -0000006103 00000 n -0000664192 00000 n -0001227390 00000 n -0000006157 00000 n -0000006431 00000 n -0000682056 00000 n -0001227297 00000 n -0000006485 00000 n -0000006862 00000 n -0000694561 00000 n -0001227218 00000 n -0000006916 00000 n -0000007165 00000 n -0000701856 00000 n -0001227086 00000 n -0000007212 00000 n -0000007343 00000 n -0000701978 00000 n -0001226982 00000 n -0000007392 00000 n -0000007506 00000 n -0000702039 00000 n -0001226903 00000 n -0000007560 00000 n -0000007666 00000 n -0000707601 00000 n -0001226810 00000 n -0000007720 00000 n -0000007846 00000 n -0000766265 00000 n -0001226717 00000 n -0000007900 00000 n -0000007988 00000 n -0000795693 00000 n -0001226638 00000 n -0000008042 00000 n -0000008105 00000 n -0000810346 00000 n -0001226519 00000 n -0000008152 00000 n -0000008326 00000 n -0000810471 00000 n -0001226401 00000 n -0000008375 00000 n -0000008598 00000 n -0000810596 00000 n -0001226322 00000 n -0000008652 00000 n -0000008783 00000 n -0000812920 00000 n -0001226243 00000 n -0000008837 00000 n -0000008963 00000 n -0000818632 00000 n -0001226111 00000 n -0000009012 00000 n -0000009197 00000 n -0000818757 00000 n -0001226032 00000 n -0000009251 00000 n -0000009382 00000 n -0000818819 00000 n -0001225953 00000 n -0000009436 00000 n -0000009562 00000 n -0000823380 00000 n -0001225821 00000 n -0000009611 00000 n -0000009801 00000 n -0000828199 00000 n -0001225742 00000 n -0000009855 00000 n -0000009986 00000 n -0000828261 00000 n -0001225663 00000 n -0000010040 00000 n -0000010166 00000 n -0000832790 00000 n -0001225531 00000 n -0000010215 00000 n -0000010478 00000 n -0000832915 00000 n -0001225452 00000 n -0000010532 00000 n -0000010663 00000 n -0000837684 00000 n -0001225373 00000 n -0000010717 00000 n -0000010843 00000 n -0000838123 00000 n -0001225255 00000 n -0000010892 00000 n -0000011087 00000 n -0000838248 00000 n -0001225176 00000 n -0000011141 00000 n -0000011272 00000 n -0000839998 00000 n -0001225097 00000 n -0000011326 00000 n -0000011452 00000 n -0000012595 00000 n -0000093858 00000 n -0000530398 00000 n -0000012730 00000 n -0000032812 00000 n -0000081329 00000 n -0000530592 00000 n -0000011502 00000 n -0000530469 00000 n -0000032736 00000 n -0000530531 00000 n -0001222552 00000 n -0001222730 00000 n -0001223540 00000 n -0000014448 00000 n -0000014578 00000 n -0000014802 00000 n -0000015026 00000 n -0000015250 00000 n -0000015474 00000 n -0000015698 00000 n -0000015922 00000 n -0000016146 00000 n -0000016369 00000 n -0000016593 00000 n -0000016817 00000 n -0000017041 00000 n -0000017265 00000 n -0000017489 00000 n -0000017713 00000 n -0000017937 00000 n -0000018161 00000 n -0000018385 00000 n -0000018609 00000 n -0000018629 00000 n -0000018719 00000 n -0000018739 00000 n -0000018829 00000 n -0000018849 00000 n -0000018939 00000 n -0000018959 00000 n -0000019049 00000 n -0000019069 00000 n -0000019159 00000 n -0000019179 00000 n -0000019269 00000 n -0000019289 00000 n -0000019379 00000 n -0000019399 00000 n -0000019489 00000 n -0000019509 00000 n -0000019599 00000 n -0000019619 00000 n -0000019709 00000 n -0000019729 00000 n -0000019819 00000 n -0000019839 00000 n -0000019929 00000 n -0000019949 00000 n -0000020039 00000 n -0000020059 00000 n -0000020149 00000 n -0000020169 00000 n -0000020259 00000 n -0000020279 00000 n -0000020369 00000 n -0000020389 00000 n -0000020479 00000 n -0000020499 00000 n -0000020589 00000 n -0000020830 00000 n -0000021078 00000 n -0000021332 00000 n -0000021579 00000 n -0000021826 00000 n -0000022090 00000 n -0000022338 00000 n -0000022680 00000 n -0000022928 00000 n -0000023181 00000 n -0000023434 00000 n -0000023682 00000 n -0000023930 00000 n -0000024164 00000 n -0000024418 00000 n -0000024673 00000 n -0000024927 00000 n -0000025179 00000 n -0000025199 00000 n -0000025290 00000 n -0000025310 00000 n -0000025401 00000 n -0000025422 00000 n -0000025513 00000 n -0000025533 00000 n -0000025624 00000 n -0000025644 00000 n -0000025735 00000 n -0000025756 00000 n -0000025818 00000 n -0000025838 00000 n -0000025929 00000 n -0000025950 00000 n -0000026012 00000 n -0000026032 00000 n -0000026124 00000 n -0000026145 00000 n -0000026237 00000 n -0000026258 00000 n -0000026350 00000 n -0000026370 00000 n -0000026462 00000 n -0000026482 00000 n -0000026574 00000 n -0000026594 00000 n -0000026656 00000 n -0000026677 00000 n -0000026769 00000 n -0000026790 00000 n -0000026882 00000 n -0000026903 00000 n -0000026995 00000 n -0000027016 00000 n -0000027108 00000 n -0000027242 00000 n -0000027376 00000 n -0000027510 00000 n -0000027644 00000 n -0000027778 00000 n -0000027912 00000 n -0000028046 00000 n -0000028180 00000 n -0000028314 00000 n -0000028448 00000 n -0000028582 00000 n -0000028716 00000 n -0000028850 00000 n -0000028984 00000 n -0000029118 00000 n -0000029262 00000 n -0000029426 00000 n -0000029570 00000 n -0000029693 00000 n -0000029816 00000 n -0000029980 00000 n -0000030103 00000 n -0000030225 00000 n -0000030352 00000 n -0000030475 00000 n -0000030602 00000 n -0000030725 00000 n -0000030848 00000 n -0000030971 00000 n -0000031097 00000 n -0000031222 00000 n -0000031348 00000 n -0000031475 00000 n -0000031602 00000 n -0000031725 00000 n -0000031850 00000 n -0000031977 00000 n -0000032104 00000 n -0000032231 00000 n -0000032357 00000 n -0000032483 00000 n -0000032609 00000 n -0000077106 00000 n -0000077339 00000 n -0000077376 00000 n -0000077504 00000 n -0000077630 00000 n -0000077755 00000 n -0000077882 00000 n -0000078003 00000 n -0000080702 00000 n -0000083580 00000 n -0000083833 00000 n -0000083870 00000 n -0000083998 00000 n -0000084021 00000 n -0000084137 00000 n -0000084253 00000 n -0000084369 00000 n -0000084485 00000 n -0000084601 00000 n -0000084717 00000 n -0000084833 00000 n -0000084949 00000 n -0000085065 00000 n -0000085181 00000 n -0000085297 00000 n -0000085413 00000 n -0000085529 00000 n -0000088228 00000 n -0000089163 00000 n -0000089477 00000 n -0000089848 00000 n -0000090368 00000 n -0000090878 00000 n -0000091275 00000 n -0000091694 00000 n -0000092028 00000 n -0000092428 00000 n -0000092742 00000 n -0000093079 00000 n -0000093498 00000 n -0000519964 00000 n -0000531148 00000 n -0000530966 00000 n -0000530859 00000 n -0000531086 00000 n -0000534209 00000 n -0000534359 00000 n -0000534512 00000 n -0000534665 00000 n -0000534823 00000 n -0000534980 00000 n -0000535138 00000 n -0000535296 00000 n -0000535449 00000 n -0000535607 00000 n -0000535765 00000 n -0000535922 00000 n -0000536080 00000 n -0000536229 00000 n -0000536382 00000 n -0000536535 00000 n -0000536687 00000 n -0000536840 00000 n -0000536993 00000 n -0000537146 00000 n -0000537299 00000 n -0000537451 00000 n -0000537603 00000 n -0000537757 00000 n -0000537907 00000 n -0000538060 00000 n -0000538213 00000 n -0000538365 00000 n -0000538522 00000 n -0000538679 00000 n -0000538836 00000 n -0000538994 00000 n -0000539145 00000 n -0000539298 00000 n -0000539456 00000 n -0000539614 00000 n -0000539772 00000 n -0000539929 00000 n -0000540078 00000 n -0000540228 00000 n -0000542344 00000 n -0000540507 00000 n -0000533757 00000 n -0000531296 00000 n -0000540384 00000 n -0000540446 00000 n -0000542502 00000 n -0000542655 00000 n -0000542813 00000 n -0000542971 00000 n -0000543122 00000 n -0000543280 00000 n -0000543438 00000 n -0000543591 00000 n -0000543746 00000 n -0000543904 00000 n -0000544057 00000 n -0000544215 00000 n -0000544435 00000 n -0000542108 00000 n -0000540740 00000 n -0000544373 00000 n -0000548017 00000 n -0000547292 00000 n -0000544655 00000 n -0000547412 00000 n -0000547533 00000 n -0000547594 00000 n -0000547714 00000 n -0000547774 00000 n -0000547835 00000 n -0000547896 00000 n -0000547957 00000 n -0000551712 00000 n -0000551911 00000 n -0000552110 00000 n -0000552310 00000 n -0000552994 00000 n -0000551548 00000 n -0000548250 00000 n -0000552508 00000 n -0000552630 00000 n -0001222911 00000 n -0001223391 00000 n -0000552690 00000 n -0000552811 00000 n -0001222123 00000 n -0000552872 00000 n -0000739405 00000 n -0000720396 00000 n -0000732735 00000 n -0000000520 00000 f -0000000521 00000 f -0000000522 00000 f -0000000524 00000 f -0000556382 00000 n -0000000537 00000 f -0000556582 00000 n -0000557087 00000 n -0000556234 00000 n -0000553266 00000 n -0000556781 00000 n -0000556843 00000 n -0001222266 00000 n -0001221834 00000 n -0000556904 00000 n -0000557026 00000 n -0001223658 00000 n -0000732421 00000 n -0000000538 00000 f -0000000539 00000 f -0000000540 00000 f -0000000541 00000 f -0000000542 00000 f -0000000543 00000 f -0000000544 00000 f -0000000545 00000 f -0000000546 00000 f -0000000547 00000 f -0000000548 00000 f -0000000549 00000 f -0000000550 00000 f -0000000551 00000 f -0000000552 00000 f -0000000553 00000 f -0000000554 00000 f -0000000953 00000 f -0000560960 00000 n -0000561193 00000 n -0000561426 00000 n -0000561659 00000 n -0000561890 00000 n -0000562122 00000 n -0000562588 00000 n -0000563054 00000 n -0000563287 00000 n -0000563520 00000 n -0000563718 00000 n -0000600974 00000 n -0000601373 00000 n -0000601572 00000 n -0000601772 00000 n -0000564525 00000 n -0000560724 00000 n -0000557359 00000 n -0000563916 00000 n -0000563978 00000 n -0000564039 00000 n -0000564160 00000 n -0000562355 00000 n -0000562821 00000 n -0000564221 00000 n -0000564343 00000 n -0000564464 00000 n -0000786152 00000 n -0000786090 00000 n -0000786215 00000 n -0000786278 00000 n -0000783020 00000 n -0000790478 00000 n -0000795505 00000 n -0000786341 00000 n -0000786403 00000 n -0000828323 00000 n -0000567083 00000 n -0000602213 00000 n -0000566911 00000 n -0000564797 00000 n -0000601970 00000 n -0000601174 00000 n -0000602092 00000 n -0000602153 00000 n -0000593452 00000 n -0000751830 00000 n -0000604949 00000 n -0000604524 00000 n -0000602501 00000 n -0000604644 00000 n -0000604766 00000 n -0000604888 00000 n -0000608564 00000 n -0000608737 00000 n -0000608961 00000 n -0000609142 00000 n -0000609346 00000 n -0000610102 00000 n -0000608392 00000 n -0000605208 00000 n -0000609554 00000 n -0000609676 00000 n -0000609737 00000 n -0001223091 00000 n -0000609859 00000 n -0000609920 00000 n -0000609981 00000 n -0000614236 00000 n -0000614678 00000 n -0000614096 00000 n -0000610362 00000 n -0000614435 00000 n -0000614497 00000 n -0000614619 00000 n -0000802768 00000 n -0000618043 00000 n -0000618364 00000 n -0000617903 00000 n -0000614938 00000 n -0000618242 00000 n -0001223776 00000 n -0000621477 00000 n -0000621737 00000 n -0000621337 00000 n -0000618611 00000 n -0000621675 00000 n -0000766327 00000 n -0000625676 00000 n -0000626302 00000 n -0000625536 00000 n -0000621971 00000 n -0000625876 00000 n -0001221689 00000 n -0000625938 00000 n -0000625999 00000 n -0000626060 00000 n -0000626121 00000 n -0000626242 00000 n -0000802893 00000 n -0000630051 00000 n -0000630229 00000 n -0000630407 00000 n -0000630606 00000 n -0000630806 00000 n -0000631005 00000 n -0000631239 00000 n -0000631452 00000 n -0000631686 00000 n -0000631898 00000 n -0000632097 00000 n -0000632296 00000 n -0000632496 00000 n -0000632693 00000 n -0000632986 00000 n -0000629807 00000 n -0000626601 00000 n -0000632864 00000 n -0000832728 00000 n -0000795754 00000 n -0000766515 00000 n -0000837871 00000 n -0000837746 00000 n -0000803018 00000 n -0000636725 00000 n -0000640046 00000 n -0000637107 00000 n -0000636585 00000 n -0000633233 00000 n -0000636924 00000 n -0000636986 00000 n -0000640670 00000 n -0000639906 00000 n -0000637354 00000 n -0000640246 00000 n -0000640308 00000 n -0000640429 00000 n -0000640549 00000 n -0000643634 00000 n -0000643834 00000 n -0000644034 00000 n -0000644234 00000 n -0000644434 00000 n -0000644634 00000 n -0000644834 00000 n -0000645034 00000 n -0000645266 00000 n -0000649023 00000 n -0000646256 00000 n -0000643430 00000 n -0000640917 00000 n -0000645462 00000 n -0000645584 00000 n -0000645645 00000 n -0000645767 00000 n -0000645889 00000 n -0000646011 00000 n -0000646134 00000 n -0000646195 00000 n -0001223894 00000 n -0000707662 00000 n -0000766578 00000 n -0000649223 00000 n -0000649422 00000 n -0000649621 00000 n -0000649821 00000 n -0000650021 00000 n -0000650419 00000 n -0000650618 00000 n -0000650851 00000 n -0000651051 00000 n -0000651285 00000 n -0000651484 00000 n -0000651684 00000 n -0000654802 00000 n -0000652221 00000 n -0000648779 00000 n -0000646528 00000 n -0000651915 00000 n -0000650221 00000 n -0000651977 00000 n -0000652038 00000 n -0000652099 00000 n -0000652160 00000 n -0000772854 00000 n -0000766640 00000 n -0000777485 00000 n -0000766703 00000 n -0000655002 00000 n -0000655236 00000 n -0000655469 00000 n -0000655668 00000 n -0000655866 00000 n -0000656098 00000 n -0000656297 00000 n -0000656496 00000 n -0000656893 00000 n -0000657126 00000 n -0000657326 00000 n -0000657525 00000 n -0000657923 00000 n -0000661175 00000 n -0000658581 00000 n -0000654542 00000 n -0000652507 00000 n -0000658153 00000 n -0000658215 00000 n -0000658276 00000 n -0000656694 00000 n -0000658337 00000 n -0000658398 00000 n -0000657724 00000 n -0000658459 00000 n -0000658520 00000 n -0000766765 00000 n -0000782832 00000 n -0000766827 00000 n -0000766888 00000 n -0000661375 00000 n -0000661574 00000 n -0000661807 00000 n -0000662039 00000 n -0000662238 00000 n -0000662436 00000 n -0000662607 00000 n -0000662840 00000 n -0000663072 00000 n -0000663271 00000 n -0000663469 00000 n -0000663640 00000 n -0000663871 00000 n -0000667278 00000 n -0000664617 00000 n -0000660931 00000 n -0000658867 00000 n -0000664069 00000 n -0000664131 00000 n -0000664253 00000 n -0000664314 00000 n -0000664375 00000 n -0000664435 00000 n -0000664496 00000 n -0000664556 00000 n -0000766950 00000 n -0000767013 00000 n -0000767076 00000 n -0000667510 00000 n -0000667743 00000 n -0000667941 00000 n -0000668141 00000 n -0000668374 00000 n -0000668607 00000 n -0000668804 00000 n -0000669003 00000 n -0000669174 00000 n -0000669407 00000 n -0000669607 00000 n -0000669806 00000 n -0000670001 00000 n -0000670232 00000 n -0000670857 00000 n -0000667026 00000 n -0000664877 00000 n -0000670429 00000 n -0000670491 00000 n -0000670552 00000 n -0000670613 00000 n -0000670674 00000 n -0000670735 00000 n -0000670796 00000 n -0000767139 00000 n -0000767202 00000 n -0000767264 00000 n -0000673436 00000 n -0000673607 00000 n -0000673840 00000 n -0000674073 00000 n -0000674306 00000 n -0000674506 00000 n -0000674705 00000 n -0000674905 00000 n -0000675103 00000 n -0000678628 00000 n -0000675786 00000 n -0000673232 00000 n -0000671143 00000 n -0000675300 00000 n -0000675362 00000 n -0000675423 00000 n -0000675484 00000 n -0000675545 00000 n -0000675605 00000 n -0000675666 00000 n -0000675727 00000 n -0000767325 00000 n -0000771732 00000 n -0000771794 00000 n -0000678861 00000 n -0000679060 00000 n -0000679260 00000 n -0000679493 00000 n -0000679692 00000 n -0000679892 00000 n -0000680290 00000 n -0000680523 00000 n -0000680723 00000 n -0000680956 00000 n -0000681155 00000 n -0000681553 00000 n -0000684876 00000 n -0000682296 00000 n -0000678376 00000 n -0000676046 00000 n -0000681750 00000 n -0000681812 00000 n -0000680092 00000 n -0000681873 00000 n -0000681934 00000 n -0000681995 00000 n -0000682117 00000 n -0000682177 00000 n -0000681355 00000 n -0000682237 00000 n -0001224012 00000 n -0000771919 00000 n -0000771856 00000 n -0000772107 00000 n -0000744805 00000 n -0000726605 00000 n -0000685109 00000 n -0000685308 00000 n -0000685707 00000 n -0000685940 00000 n -0000686140 00000 n -0000686539 00000 n -0000686772 00000 n -0000687005 00000 n -0000687205 00000 n -0000687405 00000 n -0000687605 00000 n -0000687804 00000 n -0000688001 00000 n -0000691472 00000 n -0000691672 00000 n -0000688685 00000 n -0000684616 00000 n -0000682582 00000 n -0000688196 00000 n -0000688258 00000 n -0000685508 00000 n -0000688319 00000 n -0000688380 00000 n -0000686340 00000 n -0000688441 00000 n -0000688502 00000 n -0000688563 00000 n -0000688624 00000 n -0000772169 00000 n -0000772229 00000 n -0000772292 00000 n -0000772355 00000 n -0000714773 00000 n -0000691870 00000 n -0000692103 00000 n -0000692302 00000 n -0000692501 00000 n -0000692900 00000 n -0000693131 00000 n -0000693330 00000 n -0000693530 00000 n -0000693763 00000 n -0000693963 00000 n -0000694865 00000 n -0000691236 00000 n -0000688957 00000 n -0000694194 00000 n -0000694256 00000 n -0000694317 00000 n -0000692701 00000 n -0000694378 00000 n -0000694439 00000 n -0000694500 00000 n -0000694621 00000 n -0000694682 00000 n -0000694743 00000 n -0000694804 00000 n -0000772417 00000 n -0000772479 00000 n -0000772668 00000 n -0000772792 00000 n -0000696644 00000 n -0000697060 00000 n -0000696504 00000 n -0000695137 00000 n -0000696877 00000 n -0000696939 00000 n -0000697000 00000 n -0000772730 00000 n -0000000954 00000 f -0000000955 00000 f -0000000956 00000 f -0000000957 00000 f -0000000958 00000 f -0000000962 00000 f -0000700396 00000 n -0000700596 00000 n -0000700796 00000 n -0000000963 00000 f -0000000965 00000 f -0000700996 00000 n -0000000966 00000 f -0000000967 00000 f -0000000968 00000 f -0000000971 00000 f -0000701195 00000 n -0000701395 00000 n -0000000972 00000 f -0000001183 00000 f -0000701595 00000 n -0000702465 00000 n -0000700208 00000 n -0000697306 00000 n -0000701794 00000 n -0000701917 00000 n -0000702099 00000 n -0000702160 00000 n -0000702221 00000 n -0000702282 00000 n -0000702343 00000 n -0000702404 00000 n -0000706417 00000 n -0000706616 00000 n -0000706779 00000 n -0000706940 00000 n -0000707140 00000 n -0000707340 00000 n -0000707844 00000 n -0000706237 00000 n -0000702711 00000 n -0000707539 00000 n -0000707723 00000 n -0001222410 00000 n -0001223236 00000 n -0000707784 00000 n -0000818570 00000 n -0000823316 00000 n -0000710853 00000 n -0000711013 00000 n -0000711175 00000 n -0000711375 00000 n -0000711572 00000 n -0000711806 00000 n -0000711998 00000 n -0000712195 00000 n -0000712391 00000 n -0000712624 00000 n -0000712820 00000 n -0000713017 00000 n -0000713214 00000 n -0000713449 00000 n -0000713645 00000 n -0000713842 00000 n -0000714041 00000 n -0000714275 00000 n -0000714509 00000 n -0000714898 00000 n -0000710546 00000 n -0000708145 00000 n -0000714709 00000 n -0000714835 00000 n -0001224130 00000 n -0000818880 00000 n -0000777548 00000 n -0000822939 00000 n -0000823190 00000 n -0000777421 00000 n -0000718266 00000 n -0000718466 00000 n -0000718667 00000 n -0000718868 00000 n -0000719068 00000 n -0000719269 00000 n -0000719469 00000 n -0000719670 00000 n -0000719869 00000 n -0000720069 00000 n -0000723951 00000 n -0000724350 00000 n -0000720520 00000 n -0000718040 00000 n -0000715187 00000 n -0000720269 00000 n -0000720333 00000 n -0000720457 00000 n -0000795879 00000 n -0000724551 00000 n -0000724752 00000 n -0000724951 00000 n -0000725152 00000 n -0000725353 00000 n -0000725550 00000 n -0000725751 00000 n -0000725950 00000 n -0000726150 00000 n -0000726315 00000 n -0000726793 00000 n -0000723698 00000 n -0000720809 00000 n -0000726478 00000 n -0000724152 00000 n -0000726542 00000 n -0000726667 00000 n -0000726730 00000 n -0000796006 00000 n -0000838060 00000 n -0000729766 00000 n -0000729929 00000 n -0000730128 00000 n -0000730328 00000 n -0000730528 00000 n -0000730727 00000 n -0000730927 00000 n -0000731127 00000 n -0000731327 00000 n -0000731525 00000 n -0000731725 00000 n -0000731925 00000 n -0000732159 00000 n -0000736735 00000 n -0000732859 00000 n -0000729513 00000 n -0000727108 00000 n -0000732357 00000 n -0000732483 00000 n -0000732546 00000 n -0000732609 00000 n -0000732672 00000 n -0000732796 00000 n -0000840060 00000 n -0000840312 00000 n -0000840186 00000 n -0000840438 00000 n -0000736906 00000 n -0000737105 00000 n -0000737305 00000 n -0000737703 00000 n -0000737901 00000 n -0000738072 00000 n -0000738273 00000 n -0000738473 00000 n -0000738678 00000 n -0000738878 00000 n -0000739078 00000 n -0000739593 00000 n -0000736482 00000 n -0000733160 00000 n -0000739278 00000 n -0000737506 00000 n -0000739342 00000 n -0000739467 00000 n -0000739530 00000 n -0000810408 00000 n -0000813360 00000 n -0000742941 00000 n -0000743141 00000 n -0000743341 00000 n -0000743542 00000 n -0000743741 00000 n -0000743941 00000 n -0000744141 00000 n -0000744341 00000 n -0000744542 00000 n -0000744993 00000 n -0000742724 00000 n -0000739921 00000 n -0000744741 00000 n -0000744867 00000 n -0000744930 00000 n -0000748807 00000 n -0000749006 00000 n -0000749207 00000 n -0000749408 00000 n -0000749608 00000 n -0000749807 00000 n -0000750006 00000 n -0000750185 00000 n -0000750364 00000 n -0000750563 00000 n -0000750764 00000 n -0000750965 00000 n -0000751165 00000 n -0000751365 00000 n -0000751566 00000 n -0000751954 00000 n -0000748536 00000 n -0000745282 00000 n -0000751766 00000 n -0000751891 00000 n -0001224255 00000 n -0000755403 00000 n -0000755604 00000 n -0000755805 00000 n -0000755982 00000 n -0000756182 00000 n -0000756381 00000 n -0000756559 00000 n -0000756773 00000 n -0000757008 00000 n -0000757222 00000 n -0000757423 00000 n -0000757637 00000 n -0000757872 00000 n -0000758086 00000 n -0000758287 00000 n -0000758500 00000 n -0000758734 00000 n -0000758948 00000 n -0000759149 00000 n -0000759328 00000 n -0000759528 00000 n -0000759728 00000 n -0000763396 00000 n -0000760053 00000 n -0000755069 00000 n -0000752243 00000 n -0000759926 00000 n -0000759990 00000 n -0000800801 00000 n -0000001184 00000 f -0000001185 00000 f -0000001186 00000 f -0000001187 00000 f -0000001188 00000 f -0000001189 00000 f -0000001190 00000 f -0000001191 00000 f -0000001192 00000 f -0000001193 00000 f -0000001194 00000 f -0000001195 00000 f -0000001196 00000 f -0000001197 00000 f -0000001198 00000 f -0000001199 00000 f -0000001200 00000 f -0000001201 00000 f -0000001202 00000 f -0000001203 00000 f -0000001204 00000 f -0000001205 00000 f -0000001206 00000 f -0000001207 00000 f -0000001208 00000 f -0000001209 00000 f -0000001210 00000 f -0000001211 00000 f -0000001212 00000 f -0000001213 00000 f -0000001214 00000 f -0000001251 00000 f -0000763596 00000 n -0000763795 00000 n -0000763996 00000 n -0000764197 00000 n -0000764398 00000 n -0000764599 00000 n -0000764800 00000 n -0000765000 00000 n -0000765200 00000 n -0000765400 00000 n -0000765599 00000 n -0000765800 00000 n -0000766001 00000 n -0000771066 00000 n -0000771267 00000 n -0000771468 00000 n -0000767387 00000 n -0000763134 00000 n -0000760314 00000 n -0000766201 00000 n -0000766389 00000 n -0000766452 00000 n -0000775614 00000 n -0000772914 00000 n -0000770903 00000 n -0000767648 00000 n -0000771668 00000 n -0000771980 00000 n -0000772043 00000 n -0000772541 00000 n -0000772604 00000 n -0000775814 00000 n -0000776012 00000 n -0000776226 00000 n -0000776426 00000 n -0000776604 00000 n -0000001252 00000 f -0000001253 00000 f -0000001254 00000 f -0000001255 00000 f -0000001256 00000 f -0000001257 00000 f -0000001258 00000 f -0000001259 00000 f -0000001260 00000 f -0000001279 00000 f -0000776766 00000 n -0000776967 00000 n -0000780581 00000 n -0000780816 00000 n -0000781286 00000 n -0000777612 00000 n -0000775406 00000 n -0000773174 00000 n -0000777167 00000 n -0000777231 00000 n -0000777294 00000 n -0000777357 00000 n -0000781487 00000 n -0000781687 00000 n -0000781885 00000 n -0000782099 00000 n -0000782299 00000 n -0000782477 00000 n -0000001280 00000 f -0000001281 00000 f -0000001282 00000 f -0000001283 00000 f -0000001284 00000 f -0000001285 00000 f -0000001286 00000 f -0000001287 00000 f -0000001288 00000 f -0000001289 00000 f -0000001290 00000 f -0000001291 00000 f -0000001292 00000 f -0000001293 00000 f -0000001294 00000 f -0000001295 00000 f -0000001296 00000 f -0000001297 00000 f -0000001298 00000 f -0000001497 00000 f -0000789006 00000 n -0000789241 00000 n -0000789476 00000 n -0000789709 00000 n -0000790179 00000 n -0000793198 00000 n -0000793433 00000 n -0000793667 00000 n -0000794136 00000 n -0000794371 00000 n -0000783083 00000 n -0000780355 00000 n -0000777860 00000 n -0000782641 00000 n -0000782705 00000 n -0000781051 00000 n -0000782769 00000 n -0000782894 00000 n -0000782957 00000 n -0000828637 00000 n -0000786466 00000 n -0000785712 00000 n -0000783357 00000 n -0000785836 00000 n -0000785900 00000 n -0000785964 00000 n -0000786027 00000 n -0001224380 00000 n -0000790540 00000 n -0000788816 00000 n -0000786687 00000 n -0000790414 00000 n -0000789944 00000 n -0000794839 00000 n -0000795039 00000 n -0000795240 00000 n -0000796322 00000 n -0000792972 00000 n -0000790814 00000 n -0000795441 00000 n -0000793901 00000 n -0000794605 00000 n -0000795567 00000 n -0000795630 00000 n -0000795816 00000 n -0000795943 00000 n -0000796070 00000 n -0000796133 00000 n -0000796197 00000 n -0000796260 00000 n -0000798421 00000 n -0000798656 00000 n -0000798827 00000 n -0000799062 00000 n -0000799233 00000 n -0000799468 00000 n -0000799639 00000 n -0000799873 00000 n -0000800862 00000 n -0000798213 00000 n -0000796596 00000 n -0000800042 00000 n -0000800106 00000 n -0000800169 00000 n -0000800233 00000 n -0000800296 00000 n -0000800360 00000 n -0001221978 00000 n -0000800423 00000 n -0000800486 00000 n -0000800549 00000 n -0000800612 00000 n -0000800675 00000 n -0000800738 00000 n -0000803271 00000 n -0000802517 00000 n -0000801125 00000 n -0000802641 00000 n -0000802705 00000 n -0000802830 00000 n -0000802955 00000 n -0000803081 00000 n -0000803144 00000 n -0000803208 00000 n -0000803815 00000 n -0000803627 00000 n -0000803519 00000 n -0000803751 00000 n -0000806410 00000 n -0000806615 00000 n -0000806820 00000 n -0000807021 00000 n -0000807226 00000 n -0000807430 00000 n -0000807635 00000 n -0000807840 00000 n -0000808045 00000 n -0000808250 00000 n -0000808455 00000 n -0000808655 00000 n -0000808861 00000 n -0000809064 00000 n -0000809270 00000 n -0000809474 00000 n -0000809672 00000 n -0000810078 00000 n -0000810658 00000 n -0000806103 00000 n -0000803964 00000 n -0000810282 00000 n -0000810533 00000 n -0000809875 00000 n -0001224505 00000 n -0000813612 00000 n -0000812982 00000 n -0000813108 00000 n -0000813738 00000 n -0000813486 00000 n -0000813864 00000 n -0000813234 00000 n -0000818446 00000 n -0000812655 00000 n -0000813926 00000 n -0000812510 00000 n -0000810944 00000 n -0000812856 00000 n -0000813045 00000 n -0000813171 00000 n -0000813297 00000 n -0000813423 00000 n -0000813549 00000 n -0000813675 00000 n -0000813801 00000 n -0000816536 00000 n -0000816733 00000 n -0000816928 00000 n -0000817125 00000 n -0000817322 00000 n -0000817523 00000 n -0000817721 00000 n -0000817918 00000 n -0000818119 00000 n -0000819006 00000 n -0000816319 00000 n -0000814187 00000 n -0000818319 00000 n -0000818383 00000 n -0000818509 00000 n -0000818694 00000 n -0000818943 00000 n -0000823064 00000 n -0000821291 00000 n -0000821491 00000 n -0000821690 00000 n -0000821888 00000 n -0000822084 00000 n -0000822283 00000 n -0000822481 00000 n -0000822679 00000 n -0000827338 00000 n -0000827537 00000 n -0000827736 00000 n -0000823505 00000 n -0000821083 00000 n -0000819280 00000 n -0000822875 00000 n -0000823002 00000 n -0000823127 00000 n -0000823253 00000 n -0000823442 00000 n -0000832603 00000 n -0000832351 00000 n -0000832477 00000 n -0000827936 00000 n -0000828698 00000 n -0000827166 00000 n -0000823779 00000 n -0000828135 00000 n -0000828385 00000 n -0000828448 00000 n -0000828511 00000 n -0000828574 00000 n -0000831003 00000 n -0000831202 00000 n -0000831401 00000 n -0000831600 00000 n -0000831813 00000 n -0000832026 00000 n -0000832977 00000 n -0000830813 00000 n -0000828959 00000 n -0000832224 00000 n -0000832288 00000 n -0000832414 00000 n -0000832540 00000 n -0000832665 00000 n -0000832852 00000 n -0000835628 00000 n -0000001498 00000 f -0000001499 00000 f -0000001500 00000 f -0000001501 00000 f -0000001502 00000 f -0000001503 00000 f -0000001504 00000 f -0000001506 00000 f -0000835828 00000 n -0000000000 00000 f -0000836028 00000 n -0000836228 00000 n -0000836429 00000 n -0000836629 00000 n -0000836828 00000 n -0000837025 00000 n -0000837224 00000 n -0000837422 00000 n -0000838310 00000 n -0000835402 00000 n -0000833251 00000 n -0000837620 00000 n -0000837808 00000 n -0000837934 00000 n -0000837997 00000 n -0000838185 00000 n -0001224630 00000 n -0000840564 00000 n -0000839810 00000 n -0000838584 00000 n -0000839934 00000 n -0000840123 00000 n -0000840249 00000 n -0000840375 00000 n -0000840501 00000 n -0000840905 00000 n -0000840931 00000 n -0000841267 00000 n -0000841293 00000 n -0000841329 00000 n -0000841717 00000 n -0000841743 00000 n -0000841770 00000 n -0000841794 00000 n -0001221259 00000 n -0000841818 00000 n -0000842319 00000 n -0000842828 00000 n -0000843326 00000 n -0000850466 00000 n -0000850701 00000 n -0000857718 00000 n -0000857954 00000 n -0000864965 00000 n -0000865191 00000 n -0000872302 00000 n -0000872537 00000 n -0000879594 00000 n -0000879825 00000 n -0000886938 00000 n -0000887172 00000 n -0001001184 00000 n -0001001647 00000 n -0001107858 00000 n -0001108433 00000 n -0001203256 00000 n -0001203685 00000 n -0001205369 00000 n -0001205597 00000 n -0001216194 00000 n -0001216778 00000 n -0001220967 00000 n -0001224719 00000 n -0001224840 00000 n -0001224948 00000 n -0001225021 00000 n -0001230007 00000 n -0001230176 00000 n -0001230361 00000 n -0001230657 00000 n -0001230932 00000 n -0001231296 00000 n -0001231758 00000 n -0001232194 00000 n -0001232640 00000 n -0001233100 00000 n -0001233347 00000 n -0001233920 00000 n -0001234493 00000 n -0001235066 00000 n -0001235641 00000 n -0001236316 00000 n -0001237160 00000 n -0001238004 00000 n -0001238849 00000 n -0001239692 00000 n -0001240535 00000 n -0001241383 00000 n -0001242228 00000 n -0001243073 00000 n -0001243567 00000 n -0001243929 00000 n -0001244174 00000 n -0001244345 00000 n -0001244515 00000 n -0001244686 00000 n -0001244859 00000 n -0001245033 00000 n -0001245210 00000 n -0001245385 00000 n -0001245562 00000 n -0001245741 00000 n -0001245945 00000 n -0001246140 00000 n -0001246337 00000 n -0001246534 00000 n -0001246736 00000 n -0001247060 00000 n -0001247677 00000 n -0001248219 00000 n -0001248744 00000 n -0001249281 00000 n -0001249684 00000 n -0001249922 00000 n -0001250165 00000 n -0001250408 00000 n -0001250661 00000 n -0001250944 00000 n -0001251230 00000 n -0001251513 00000 n -0001251796 00000 n -0001252083 00000 n -0001252372 00000 n -0001252664 00000 n -0001252958 00000 n -0001253247 00000 n -0001253536 00000 n -0001253825 00000 n -0001254114 00000 n -0001254403 00000 n -0001254593 00000 n -0001254794 00000 n -0001254983 00000 n -0001255176 00000 n -0001255327 00000 n -0001255525 00000 n -0001255775 00000 n -0001255989 00000 n -0001256126 00000 n -0001256245 00000 n -0001256419 00000 n -0001256599 00000 n -0001256738 00000 n -0001256882 00000 n -0001257014 00000 n -0001257089 00000 n -0001257210 00000 n -0001257331 00000 n -0001257415 00000 n -0001257455 00000 n -0001257587 00000 n -trailer -<< /Size 1658 -/Root 1656 0 R -/Info 1657 0 R -/ID [ ] >> -startxref -1257863 -%%EOF diff --git a/lib/Bosch-BSEC/src/bme680/README.md b/lib/Bosch-BSEC/src/bme680/README.md deleted file mode 100644 index 0a7e0ee4..00000000 --- a/lib/Bosch-BSEC/src/bme680/README.md +++ /dev/null @@ -1,282 +0,0 @@ -# BME680 sensor API - -## Introduction - -This package contains the Bosch Sensortec's BME680 gas sensor API - -The sensor driver package includes bme680.h, bme680.c and bme680_defs.h files - -## Version - -File | Version | Date ---------------|---------|------------- -bme680.c | 3.5.9 | 19 Jun 2018 -bme680.h | 3.5.9 | 19 Jun 2018 -bme680_defs.h | 3.5.9 | 19 Jun 2018 - -## Integration details - -* Integrate bme680.h, bme680_defs.h and bme680.c file in to your project. -* Include the bme680.h file in your code like below. - -``` c -#include "bme680.h" -``` - -## File information - -* bme680_defs.h : This header file has the constants, macros and datatype declarations. -* bme680.h : This header file contains the declarations of the sensor driver APIs. -* bme680.c : This source file contains the definitions of the sensor driver APIs. - -## Supported sensor interfaces - -* SPI 4-wire -* I2C - -## Usage guide - -### Initializing the sensor - -To initialize the sensor, you will first need to create a device structure. You -can do this by creating an instance of the structure bme680_dev. Then go on to -fill in the various parameters as shown below - -#### Example for SPI 4-Wire - -``` c - struct bme680_dev gas_sensor; - - /* You may assign a chip select identifier to be handled later */ - gas_sensor.dev_id = 0; - gas_sensor.intf = BME680_SPI_INTF; - gas_sensor.read = user_spi_read; - gas_sensor.write = user_spi_write; - gas_sensor.delay_ms = user_delay_ms; - /* amb_temp can be set to 25 prior to configuring the gas sensor - * or by performing a few temperature readings without operating the gas sensor. - */ - gas_sensor.amb_temp = 25; - - int8_t rslt = BME680_OK; - rslt = bme680_init(&gas_sensor); -``` - -#### Example for I2C - -``` c - struct bme680_dev gas_sensor; - - gas_sensor.dev_id = BME680_I2C_ADDR_PRIMARY; - gas_sensor.intf = BME680_I2C_INTF; - gas_sensor.read = i2c_read; - gas_sensor.write = i2c_write; - gas_sensor.delay_ms = user_delay_ms; - /* amb_temp can be set to 25 prior to configuring the gas sensor - * or by performing a few temperature readings without operating the gas sensor. - */ - gas_sensor.amb_temp = 25; - - - int8_t rslt = BME680_OK; - rslt = bme680_init(&gas_sensor); -``` - -Regarding compensation functions for temperature, pressure, humidity and gas we have two implementations. - - - Integer version - - floating point version - -By default, Integer version is used in the API - -If the user needs the floating point version, the user has to un-comment BME680_FLOAT_POINT_COMPENSATION macro -in bme680_defs.h file or to add it in the compiler flags. - -### Configuring the sensor - -#### Example for configuring the sensor in forced mode - -``` c - uint8_t set_required_settings; - - /* Set the temperature, pressure and humidity settings */ - gas_sensor.tph_sett.os_hum = BME680_OS_2X; - gas_sensor.tph_sett.os_pres = BME680_OS_4X; - gas_sensor.tph_sett.os_temp = BME680_OS_8X; - gas_sensor.tph_sett.filter = BME680_FILTER_SIZE_3; - - /* Set the remaining gas sensor settings and link the heating profile */ - gas_sensor.gas_sett.run_gas = BME680_ENABLE_GAS_MEAS; - /* Create a ramp heat waveform in 3 steps */ - gas_sensor.gas_sett.heatr_temp = 320; /* degree Celsius */ - gas_sensor.gas_sett.heatr_dur = 150; /* milliseconds */ - - /* Select the power mode */ - /* Must be set before writing the sensor configuration */ - gas_sensor.power_mode = BME680_FORCED_MODE; - - /* Set the required sensor settings needed */ - set_required_settings = BME680_OST_SEL | BME680_OSP_SEL | BME680_OSH_SEL | BME680_FILTER_SEL - | BME680_GAS_SENSOR_SEL; - - /* Set the desired sensor configuration */ - rslt = bme680_set_sensor_settings(set_required_settings,&gas_sensor); - - /* Set the power mode */ - rslt = bme680_set_sensor_mode(&gas_sensor); - - -``` - -### Reading sensor data - -#### Example for reading all sensor data - -``` c - /* Get the total measurement duration so as to sleep or wait till the - * measurement is complete */ - uint16_t meas_period; - bme680_get_profile_dur(&meas_period, &gas_sensor); - - struct bme680_field_data data; - - while(1) - { - user_delay_ms(meas_period); /* Delay till the measurement is ready */ - - rslt = bme680_get_sensor_data(&data, &gas_sensor); - - printf("T: %.2f degC, P: %.2f hPa, H %.2f %%rH ", data.temperature / 100.0f, - data.pressure / 100.0f, data.humidity / 1000.0f ); - /* Avoid using measurements from an unstable heating setup */ - if(data.status & BME680_GASM_VALID_MSK) - printf(", G: %d ohms", data.gas_resistance); - - printf("\r\n"); - - /* Trigger the next measurement if you would like to read data out continuously */ - if (gas_sensor.power_mode == BME680_FORCED_MODE) { - rslt = bme680_set_sensor_mode(&gas_sensor); - } - } -``` - -### Templates for function pointers - -``` c - -void user_delay_ms(uint32_t period) -{ - /* - * Return control or wait, - * for a period amount of milliseconds - */ -} - -int8_t user_spi_read(uint8_t dev_id, uint8_t reg_addr, uint8_t *reg_data, uint16_t len) -{ - int8_t rslt = 0; /* Return 0 for Success, non-zero for failure */ - - /* - * The parameter dev_id can be used as a variable to select which Chip Select pin has - * to be set low to activate the relevant device on the SPI bus - */ - - /* - * Data on the bus should be like - * |----------------+---------------------+-------------| - * | MOSI | MISO | Chip Select | - * |----------------+---------------------|-------------| - * | (don't care) | (don't care) | HIGH | - * | (reg_addr) | (don't care) | LOW | - * | (don't care) | (reg_data[0]) | LOW | - * | (....) | (....) | LOW | - * | (don't care) | (reg_data[len - 1]) | LOW | - * | (don't care) | (don't care) | HIGH | - * |----------------+---------------------|-------------| - */ - - return rslt; -} - -int8_t user_spi_write(uint8_t dev_id, uint8_t reg_addr, uint8_t *reg_data, uint16_t len) -{ - int8_t rslt = 0; /* Return 0 for Success, non-zero for failure */ - - /* - * The parameter dev_id can be used as a variable to select which Chip Select pin has - * to be set low to activate the relevant device on the SPI bus - */ - - /* - * Data on the bus should be like - * |---------------------+--------------+-------------| - * | MOSI | MISO | Chip Select | - * |---------------------+--------------|-------------| - * | (don't care) | (don't care) | HIGH | - * | (reg_addr) | (don't care) | LOW | - * | (reg_data[0]) | (don't care) | LOW | - * | (....) | (....) | LOW | - * | (reg_data[len - 1]) | (don't care) | LOW | - * | (don't care) | (don't care) | HIGH | - * |---------------------+--------------|-------------| - */ - - return rslt; -} - -int8_t i2c_read(uint8_t dev_id, uint8_t reg_addr, uint8_t *reg_data, uint16_t len) -{ - int8_t rslt = 0; /* Return 0 for Success, non-zero for failure */ - - /* - * The parameter dev_id can be used as a variable to store the I2C address of the device - */ - - /* - * Data on the bus should be like - * |------------+---------------------| - * | I2C action | Data | - * |------------+---------------------| - * | Start | - | - * | Write | (reg_addr) | - * | Stop | - | - * | Start | - | - * | Read | (reg_data[0]) | - * | Read | (....) | - * | Read | (reg_data[len - 1]) | - * | Stop | - | - * |------------+---------------------| - */ - - return rslt; -} - -int8_t i2c_write(uint8_t dev_id, uint8_t reg_addr, uint8_t *reg_data, uint16_t len) -{ - int8_t rslt = 0; /* Return 0 for Success, non-zero for failure */ - - /* - * The parameter dev_id can be used as a variable to store the I2C address of the device - */ - - /* - * Data on the bus should be like - * |------------+---------------------| - * | I2C action | Data | - * |------------+---------------------| - * | Start | - | - * | Write | (reg_addr) | - * | Write | (reg_data[0]) | - * | Write | (....) | - * | Write | (reg_data[len - 1]) | - * | Stop | - | - * |------------+---------------------| - */ - - return rslt; -} - -``` - -## Copyright (C) 2017 - 2018 Bosch Sensortec GmbH \ No newline at end of file diff --git a/lib/Bosch-BSEC/src/bme680/bme680.c b/lib/Bosch-BSEC/src/bme680/bme680.c deleted file mode 100644 index 6067725a..00000000 --- a/lib/Bosch-BSEC/src/bme680/bme680.c +++ /dev/null @@ -1,1367 +0,0 @@ -/**\mainpage - * Copyright (C) 2017 - 2018 Bosch Sensortec GmbH - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of the copyright holder nor the names of the - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER - * OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - * OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE - * - * The information provided is believed to be accurate and reliable. - * The copyright holder assumes no responsibility - * for the consequences of use - * of such information nor for any infringement of patents or - * other rights of third parties which may result from its use. - * No license is granted by implication or otherwise under any patent or - * patent rights of the copyright holder. - * - * File bme680.c - * @date 19 Jun 2018 - * @version 3.5.9 - * - */ - -/*! @file bme680.c - @brief Sensor driver for BME680 sensor */ -#include "bme680.h" - -/*! - * @brief This internal API is used to read the calibrated data from the sensor. - * - * This function is used to retrieve the calibration - * data from the image registers of the sensor. - * - * @note Registers 89h to A1h for calibration data 1 to 24 - * from bit 0 to 7 - * @note Registers E1h to F0h for calibration data 25 to 40 - * from bit 0 to 7 - * @param[in] dev :Structure instance of bme680_dev. - * - * @return Result of API execution status. - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -static int8_t get_calib_data(struct bme680_dev *dev); - -/*! - * @brief This internal API is used to set the gas configuration of the sensor. - * - * @param[in] dev :Structure instance of bme680_dev. - * - * @return Result of API execution status. - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -static int8_t set_gas_config(struct bme680_dev *dev); - -/*! - * @brief This internal API is used to get the gas configuration of the sensor. - * @note heatr_temp and heatr_dur values are currently register data - * and not the actual values set - * - * @param[in] dev :Structure instance of bme680_dev. - * - * @return Result of API execution status. - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -static int8_t get_gas_config(struct bme680_dev *dev); - -/*! - * @brief This internal API is used to calculate the Heat duration value. - * - * @param[in] dur :Value of the duration to be shared. - * - * @return uint8_t threshold duration after calculation. - */ -static uint8_t calc_heater_dur(uint16_t dur); - -#ifndef BME680_FLOAT_POINT_COMPENSATION - -/*! - * @brief This internal API is used to calculate the temperature value. - * - * @param[in] dev :Structure instance of bme680_dev. - * @param[in] temp_adc :Contains the temperature ADC value . - * - * @return uint32_t calculated temperature. - */ -static int16_t calc_temperature(uint32_t temp_adc, struct bme680_dev *dev); - -/*! - * @brief This internal API is used to calculate the pressure value. - * - * @param[in] dev :Structure instance of bme680_dev. - * @param[in] pres_adc :Contains the pressure ADC value . - * - * @return uint32_t calculated pressure. - */ -static uint32_t calc_pressure(uint32_t pres_adc, const struct bme680_dev *dev); - -/*! - * @brief This internal API is used to calculate the humidity value. - * - * @param[in] dev :Structure instance of bme680_dev. - * @param[in] hum_adc :Contains the humidity ADC value. - * - * @return uint32_t calculated humidity. - */ -static uint32_t calc_humidity(uint16_t hum_adc, const struct bme680_dev *dev); - -/*! - * @brief This internal API is used to calculate the Gas Resistance value. - * - * @param[in] dev :Structure instance of bme680_dev. - * @param[in] gas_res_adc :Contains the Gas Resistance ADC value. - * @param[in] gas_range :Contains the range of gas values. - * - * @return uint32_t calculated gas resistance. - */ -static uint32_t calc_gas_resistance(uint16_t gas_res_adc, uint8_t gas_range, const struct bme680_dev *dev); - -/*! - * @brief This internal API is used to calculate the Heat Resistance value. - * - * @param[in] dev : Structure instance of bme680_dev - * @param[in] temp : Contains the target temperature value. - * - * @return uint8_t calculated heater resistance. - */ -static uint8_t calc_heater_res(uint16_t temp, const struct bme680_dev *dev); - -#else -/*! - * @brief This internal API is used to calculate the - * temperature value value in float format - * - * @param[in] dev :Structure instance of bme680_dev. - * @param[in] temp_adc :Contains the temperature ADC value . - * - * @return Calculated temperature in float - */ -static float calc_temperature(uint32_t temp_adc, struct bme680_dev *dev); - -/*! - * @brief This internal API is used to calculate the - * pressure value value in float format - * - * @param[in] dev :Structure instance of bme680_dev. - * @param[in] pres_adc :Contains the pressure ADC value . - * - * @return Calculated pressure in float. - */ -static float calc_pressure(uint32_t pres_adc, const struct bme680_dev *dev); - -/*! - * @brief This internal API is used to calculate the - * humidity value value in float format - * - * @param[in] dev :Structure instance of bme680_dev. - * @param[in] hum_adc :Contains the humidity ADC value. - * - * @return Calculated humidity in float. - */ -static float calc_humidity(uint16_t hum_adc, const struct bme680_dev *dev); - -/*! - * @brief This internal API is used to calculate the - * gas resistance value value in float format - * - * @param[in] dev :Structure instance of bme680_dev. - * @param[in] gas_res_adc :Contains the Gas Resistance ADC value. - * @param[in] gas_range :Contains the range of gas values. - * - * @return Calculated gas resistance in float. - */ -static float calc_gas_resistance(uint16_t gas_res_adc, uint8_t gas_range, const struct bme680_dev *dev); - -/*! - * @brief This internal API is used to calculate the - * heater resistance value in float format - * - * @param[in] temp : Contains the target temperature value. - * @param[in] dev : Structure instance of bme680_dev. - * - * @return Calculated heater resistance in float. - */ -static float calc_heater_res(uint16_t temp, const struct bme680_dev *dev); - -#endif - -/*! - * @brief This internal API is used to calculate the field data of sensor. - * - * @param[out] data :Structure instance to hold the data - * @param[in] dev :Structure instance of bme680_dev. - * - * @return int8_t result of the field data from sensor. - */ -static int8_t read_field_data(struct bme680_field_data *data, struct bme680_dev *dev); - -/*! - * @brief This internal API is used to set the memory page - * based on register address. - * - * The value of memory page - * value | Description - * --------|-------------- - * 0 | BME680_PAGE0_SPI - * 1 | BME680_PAGE1_SPI - * - * @param[in] dev :Structure instance of bme680_dev. - * @param[in] reg_addr :Contains the register address array. - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -static int8_t set_mem_page(uint8_t reg_addr, struct bme680_dev *dev); - -/*! - * @brief This internal API is used to get the memory page based - * on register address. - * - * The value of memory page - * value | Description - * --------|-------------- - * 0 | BME680_PAGE0_SPI - * 1 | BME680_PAGE1_SPI - * - * @param[in] dev :Structure instance of bme680_dev. - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -static int8_t get_mem_page(struct bme680_dev *dev); - -/*! - * @brief This internal API is used to validate the device pointer for - * null conditions. - * - * @param[in] dev :Structure instance of bme680_dev. - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -static int8_t null_ptr_check(const struct bme680_dev *dev); - -/*! - * @brief This internal API is used to check the boundary - * conditions. - * - * @param[in] value :pointer to the value. - * @param[in] min :minimum value. - * @param[in] max :maximum value. - * @param[in] dev :Structure instance of bme680_dev. - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -static int8_t boundary_check(uint8_t *value, uint8_t min, uint8_t max, struct bme680_dev *dev); - -/****************** Global Function Definitions *******************************/ -/*! - *@brief This API is the entry point. - *It reads the chip-id and calibration data from the sensor. - */ -int8_t bme680_init(struct bme680_dev *dev) -{ - int8_t rslt; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - /* Soft reset to restore it to default values*/ - rslt = bme680_soft_reset(dev); - if (rslt == BME680_OK) { - rslt = bme680_get_regs(BME680_CHIP_ID_ADDR, &dev->chip_id, 1, dev); - if (rslt == BME680_OK) { - if (dev->chip_id == BME680_CHIP_ID) { - /* Get the Calibration data */ - rslt = get_calib_data(dev); - } else { - rslt = BME680_E_DEV_NOT_FOUND; - } - } - } - } - - return rslt; -} - -/*! - * @brief This API reads the data from the given register address of the sensor. - */ -int8_t bme680_get_regs(uint8_t reg_addr, uint8_t *reg_data, uint16_t len, struct bme680_dev *dev) -{ - int8_t rslt; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - if (dev->intf == BME680_SPI_INTF) { - /* Set the memory page */ - rslt = set_mem_page(reg_addr, dev); - if (rslt == BME680_OK) - reg_addr = reg_addr | BME680_SPI_RD_MSK; - } - dev->com_rslt = dev->read(dev->dev_id, reg_addr, reg_data, len); - if (dev->com_rslt != 0) - rslt = BME680_E_COM_FAIL; - } - - return rslt; -} - -/*! - * @brief This API writes the given data to the register address - * of the sensor. - */ -int8_t bme680_set_regs(const uint8_t *reg_addr, const uint8_t *reg_data, uint8_t len, struct bme680_dev *dev) -{ - int8_t rslt; - /* Length of the temporary buffer is 2*(length of register)*/ - uint8_t tmp_buff[BME680_TMP_BUFFER_LENGTH] = { 0 }; - uint16_t index; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - if ((len > 0) && (len < BME680_TMP_BUFFER_LENGTH / 2)) { - /* Interleave the 2 arrays */ - for (index = 0; index < len; index++) { - if (dev->intf == BME680_SPI_INTF) { - /* Set the memory page */ - rslt = set_mem_page(reg_addr[index], dev); - tmp_buff[(2 * index)] = reg_addr[index] & BME680_SPI_WR_MSK; - } else { - tmp_buff[(2 * index)] = reg_addr[index]; - } - tmp_buff[(2 * index) + 1] = reg_data[index]; - } - /* Write the interleaved array */ - if (rslt == BME680_OK) { - dev->com_rslt = dev->write(dev->dev_id, tmp_buff[0], &tmp_buff[1], (2 * len) - 1); - if (dev->com_rslt != 0) - rslt = BME680_E_COM_FAIL; - } - } else { - rslt = BME680_E_INVALID_LENGTH; - } - } - - return rslt; -} - -/*! - * @brief This API performs the soft reset of the sensor. - */ -int8_t bme680_soft_reset(struct bme680_dev *dev) -{ - int8_t rslt; - uint8_t reg_addr = BME680_SOFT_RESET_ADDR; - /* 0xb6 is the soft reset command */ - uint8_t soft_rst_cmd = BME680_SOFT_RESET_CMD; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - if (dev->intf == BME680_SPI_INTF) - rslt = get_mem_page(dev); - - /* Reset the device */ - if (rslt == BME680_OK) { - rslt = bme680_set_regs(®_addr, &soft_rst_cmd, 1, dev); - /* Wait for 5ms */ - dev->delay_ms(BME680_RESET_PERIOD); - - if (rslt == BME680_OK) { - /* After reset get the memory page */ - if (dev->intf == BME680_SPI_INTF) - rslt = get_mem_page(dev); - } - } - } - - return rslt; -} - -/*! - * @brief This API is used to set the oversampling, filter and T,P,H, gas selection - * settings in the sensor. - */ -int8_t bme680_set_sensor_settings(uint16_t desired_settings, struct bme680_dev *dev) -{ - int8_t rslt; - uint8_t reg_addr; - uint8_t data = 0; - uint8_t count = 0; - uint8_t reg_array[BME680_REG_BUFFER_LENGTH] = { 0 }; - uint8_t data_array[BME680_REG_BUFFER_LENGTH] = { 0 }; - uint8_t intended_power_mode = dev->power_mode; /* Save intended power mode */ - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - if (desired_settings & BME680_GAS_MEAS_SEL) - rslt = set_gas_config(dev); - - dev->power_mode = BME680_SLEEP_MODE; - if (rslt == BME680_OK) - rslt = bme680_set_sensor_mode(dev); - - /* Selecting the filter */ - if (desired_settings & BME680_FILTER_SEL) { - rslt = boundary_check(&dev->tph_sett.filter, BME680_FILTER_SIZE_0, BME680_FILTER_SIZE_127, dev); - reg_addr = BME680_CONF_ODR_FILT_ADDR; - - if (rslt == BME680_OK) - rslt = bme680_get_regs(reg_addr, &data, 1, dev); - - if (desired_settings & BME680_FILTER_SEL) - data = BME680_SET_BITS(data, BME680_FILTER, dev->tph_sett.filter); - - reg_array[count] = reg_addr; /* Append configuration */ - data_array[count] = data; - count++; - } - - /* Selecting heater control for the sensor */ - if (desired_settings & BME680_HCNTRL_SEL) { - rslt = boundary_check(&dev->gas_sett.heatr_ctrl, BME680_ENABLE_HEATER, - BME680_DISABLE_HEATER, dev); - reg_addr = BME680_CONF_HEAT_CTRL_ADDR; - - if (rslt == BME680_OK) - rslt = bme680_get_regs(reg_addr, &data, 1, dev); - data = BME680_SET_BITS_POS_0(data, BME680_HCTRL, dev->gas_sett.heatr_ctrl); - - reg_array[count] = reg_addr; /* Append configuration */ - data_array[count] = data; - count++; - } - - /* Selecting heater T,P oversampling for the sensor */ - if (desired_settings & (BME680_OST_SEL | BME680_OSP_SEL)) { - rslt = boundary_check(&dev->tph_sett.os_temp, BME680_OS_NONE, BME680_OS_16X, dev); - reg_addr = BME680_CONF_T_P_MODE_ADDR; - - if (rslt == BME680_OK) - rslt = bme680_get_regs(reg_addr, &data, 1, dev); - - if (desired_settings & BME680_OST_SEL) - data = BME680_SET_BITS(data, BME680_OST, dev->tph_sett.os_temp); - - if (desired_settings & BME680_OSP_SEL) - data = BME680_SET_BITS(data, BME680_OSP, dev->tph_sett.os_pres); - - reg_array[count] = reg_addr; - data_array[count] = data; - count++; - } - - /* Selecting humidity oversampling for the sensor */ - if (desired_settings & BME680_OSH_SEL) { - rslt = boundary_check(&dev->tph_sett.os_hum, BME680_OS_NONE, BME680_OS_16X, dev); - reg_addr = BME680_CONF_OS_H_ADDR; - - if (rslt == BME680_OK) - rslt = bme680_get_regs(reg_addr, &data, 1, dev); - data = BME680_SET_BITS_POS_0(data, BME680_OSH, dev->tph_sett.os_hum); - - reg_array[count] = reg_addr; /* Append configuration */ - data_array[count] = data; - count++; - } - - /* Selecting the runGas and NB conversion settings for the sensor */ - if (desired_settings & (BME680_RUN_GAS_SEL | BME680_NBCONV_SEL)) { - rslt = boundary_check(&dev->gas_sett.run_gas, BME680_RUN_GAS_DISABLE, - BME680_RUN_GAS_ENABLE, dev); - if (rslt == BME680_OK) { - /* Validate boundary conditions */ - rslt = boundary_check(&dev->gas_sett.nb_conv, BME680_NBCONV_MIN, - BME680_NBCONV_MAX, dev); - } - - reg_addr = BME680_CONF_ODR_RUN_GAS_NBC_ADDR; - - if (rslt == BME680_OK) - rslt = bme680_get_regs(reg_addr, &data, 1, dev); - - if (desired_settings & BME680_RUN_GAS_SEL) - data = BME680_SET_BITS(data, BME680_RUN_GAS, dev->gas_sett.run_gas); - - if (desired_settings & BME680_NBCONV_SEL) - data = BME680_SET_BITS_POS_0(data, BME680_NBCONV, dev->gas_sett.nb_conv); - - reg_array[count] = reg_addr; /* Append configuration */ - data_array[count] = data; - count++; - } - - if (rslt == BME680_OK) - rslt = bme680_set_regs(reg_array, data_array, count, dev); - - /* Restore previous intended power mode */ - dev->power_mode = intended_power_mode; - } - - return rslt; -} - -/*! - * @brief This API is used to get the oversampling, filter and T,P,H, gas selection - * settings in the sensor. - */ -int8_t bme680_get_sensor_settings(uint16_t desired_settings, struct bme680_dev *dev) -{ - int8_t rslt; - /* starting address of the register array for burst read*/ - uint8_t reg_addr = BME680_CONF_HEAT_CTRL_ADDR; - uint8_t data_array[BME680_REG_BUFFER_LENGTH] = { 0 }; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - rslt = bme680_get_regs(reg_addr, data_array, BME680_REG_BUFFER_LENGTH, dev); - - if (rslt == BME680_OK) { - if (desired_settings & BME680_GAS_MEAS_SEL) - rslt = get_gas_config(dev); - - /* get the T,P,H ,Filter,ODR settings here */ - if (desired_settings & BME680_FILTER_SEL) - dev->tph_sett.filter = BME680_GET_BITS(data_array[BME680_REG_FILTER_INDEX], - BME680_FILTER); - - if (desired_settings & (BME680_OST_SEL | BME680_OSP_SEL)) { - dev->tph_sett.os_temp = BME680_GET_BITS(data_array[BME680_REG_TEMP_INDEX], BME680_OST); - dev->tph_sett.os_pres = BME680_GET_BITS(data_array[BME680_REG_PRES_INDEX], BME680_OSP); - } - - if (desired_settings & BME680_OSH_SEL) - dev->tph_sett.os_hum = BME680_GET_BITS_POS_0(data_array[BME680_REG_HUM_INDEX], - BME680_OSH); - - /* get the gas related settings */ - if (desired_settings & BME680_HCNTRL_SEL) - dev->gas_sett.heatr_ctrl = BME680_GET_BITS_POS_0(data_array[BME680_REG_HCTRL_INDEX], - BME680_HCTRL); - - if (desired_settings & (BME680_RUN_GAS_SEL | BME680_NBCONV_SEL)) { - dev->gas_sett.nb_conv = BME680_GET_BITS_POS_0(data_array[BME680_REG_NBCONV_INDEX], - BME680_NBCONV); - dev->gas_sett.run_gas = BME680_GET_BITS(data_array[BME680_REG_RUN_GAS_INDEX], - BME680_RUN_GAS); - } - } - } else { - rslt = BME680_E_NULL_PTR; - } - - return rslt; -} - -/*! - * @brief This API is used to set the power mode of the sensor. - */ -int8_t bme680_set_sensor_mode(struct bme680_dev *dev) -{ - int8_t rslt; - uint8_t tmp_pow_mode; - uint8_t pow_mode = 0; - uint8_t reg_addr = BME680_CONF_T_P_MODE_ADDR; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - /* Call repeatedly until in sleep */ - do { - rslt = bme680_get_regs(BME680_CONF_T_P_MODE_ADDR, &tmp_pow_mode, 1, dev); - if (rslt == BME680_OK) { - /* Put to sleep before changing mode */ - pow_mode = (tmp_pow_mode & BME680_MODE_MSK); - - if (pow_mode != BME680_SLEEP_MODE) { - tmp_pow_mode = tmp_pow_mode & (~BME680_MODE_MSK); /* Set to sleep */ - rslt = bme680_set_regs(®_addr, &tmp_pow_mode, 1, dev); - dev->delay_ms(BME680_POLL_PERIOD_MS); - } - } - } while (pow_mode != BME680_SLEEP_MODE); - - /* Already in sleep */ - if (dev->power_mode != BME680_SLEEP_MODE) { - tmp_pow_mode = (tmp_pow_mode & ~BME680_MODE_MSK) | (dev->power_mode & BME680_MODE_MSK); - if (rslt == BME680_OK) - rslt = bme680_set_regs(®_addr, &tmp_pow_mode, 1, dev); - } - } - - return rslt; -} - -/*! - * @brief This API is used to get the power mode of the sensor. - */ -int8_t bme680_get_sensor_mode(struct bme680_dev *dev) -{ - int8_t rslt; - uint8_t mode; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - rslt = bme680_get_regs(BME680_CONF_T_P_MODE_ADDR, &mode, 1, dev); - /* Masking the other register bit info*/ - dev->power_mode = mode & BME680_MODE_MSK; - } - - return rslt; -} - -/*! - * @brief This API is used to set the profile duration of the sensor. - */ -void bme680_set_profile_dur(uint16_t duration, struct bme680_dev *dev) -{ - uint32_t tph_dur; /* Calculate in us */ - uint32_t meas_cycles; - uint8_t os_to_meas_cycles[6] = {0, 1, 2, 4, 8, 16}; - - meas_cycles = os_to_meas_cycles[dev->tph_sett.os_temp]; - meas_cycles += os_to_meas_cycles[dev->tph_sett.os_pres]; - meas_cycles += os_to_meas_cycles[dev->tph_sett.os_hum]; - - /* TPH measurement duration */ - tph_dur = meas_cycles * UINT32_C(1963); - tph_dur += UINT32_C(477 * 4); /* TPH switching duration */ - tph_dur += UINT32_C(477 * 5); /* Gas measurement duration */ - tph_dur += UINT32_C(500); /* Get it to the closest whole number.*/ - tph_dur /= UINT32_C(1000); /* Convert to ms */ - - tph_dur += UINT32_C(1); /* Wake up duration of 1ms */ - /* The remaining time should be used for heating */ - dev->gas_sett.heatr_dur = duration - (uint16_t) tph_dur; -} - -/*! - * @brief This API is used to get the profile duration of the sensor. - */ -void bme680_get_profile_dur(uint16_t *duration, const struct bme680_dev *dev) -{ - uint32_t tph_dur; /* Calculate in us */ - uint32_t meas_cycles; - uint8_t os_to_meas_cycles[6] = {0, 1, 2, 4, 8, 16}; - - meas_cycles = os_to_meas_cycles[dev->tph_sett.os_temp]; - meas_cycles += os_to_meas_cycles[dev->tph_sett.os_pres]; - meas_cycles += os_to_meas_cycles[dev->tph_sett.os_hum]; - - /* TPH measurement duration */ - tph_dur = meas_cycles * UINT32_C(1963); - tph_dur += UINT32_C(477 * 4); /* TPH switching duration */ - tph_dur += UINT32_C(477 * 5); /* Gas measurement duration */ - tph_dur += UINT32_C(500); /* Get it to the closest whole number.*/ - tph_dur /= UINT32_C(1000); /* Convert to ms */ - - tph_dur += UINT32_C(1); /* Wake up duration of 1ms */ - - *duration = (uint16_t) tph_dur; - - /* Get the gas duration only when the run gas is enabled */ - if (dev->gas_sett.run_gas) { - /* The remaining time should be used for heating */ - *duration += dev->gas_sett.heatr_dur; - } -} - -/*! - * @brief This API reads the pressure, temperature and humidity and gas data - * from the sensor, compensates the data and store it in the bme680_data - * structure instance passed by the user. - */ -int8_t bme680_get_sensor_data(struct bme680_field_data *data, struct bme680_dev *dev) -{ - int8_t rslt; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - /* Reading the sensor data in forced mode only */ - rslt = read_field_data(data, dev); - if (rslt == BME680_OK) { - if (data->status & BME680_NEW_DATA_MSK) - dev->new_fields = 1; - else - dev->new_fields = 0; - } - } - - return rslt; -} - -/*! - * @brief This internal API is used to read the calibrated data from the sensor. - */ -static int8_t get_calib_data(struct bme680_dev *dev) -{ - int8_t rslt; - uint8_t coeff_array[BME680_COEFF_SIZE] = { 0 }; - uint8_t temp_var = 0; /* Temporary variable */ - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - rslt = bme680_get_regs(BME680_COEFF_ADDR1, coeff_array, BME680_COEFF_ADDR1_LEN, dev); - /* Append the second half in the same array */ - if (rslt == BME680_OK) - rslt = bme680_get_regs(BME680_COEFF_ADDR2, &coeff_array[BME680_COEFF_ADDR1_LEN] - , BME680_COEFF_ADDR2_LEN, dev); - - /* Temperature related coefficients */ - dev->calib.par_t1 = (uint16_t) (BME680_CONCAT_BYTES(coeff_array[BME680_T1_MSB_REG], - coeff_array[BME680_T1_LSB_REG])); - dev->calib.par_t2 = (int16_t) (BME680_CONCAT_BYTES(coeff_array[BME680_T2_MSB_REG], - coeff_array[BME680_T2_LSB_REG])); - dev->calib.par_t3 = (int8_t) (coeff_array[BME680_T3_REG]); - - /* Pressure related coefficients */ - dev->calib.par_p1 = (uint16_t) (BME680_CONCAT_BYTES(coeff_array[BME680_P1_MSB_REG], - coeff_array[BME680_P1_LSB_REG])); - dev->calib.par_p2 = (int16_t) (BME680_CONCAT_BYTES(coeff_array[BME680_P2_MSB_REG], - coeff_array[BME680_P2_LSB_REG])); - dev->calib.par_p3 = (int8_t) coeff_array[BME680_P3_REG]; - dev->calib.par_p4 = (int16_t) (BME680_CONCAT_BYTES(coeff_array[BME680_P4_MSB_REG], - coeff_array[BME680_P4_LSB_REG])); - dev->calib.par_p5 = (int16_t) (BME680_CONCAT_BYTES(coeff_array[BME680_P5_MSB_REG], - coeff_array[BME680_P5_LSB_REG])); - dev->calib.par_p6 = (int8_t) (coeff_array[BME680_P6_REG]); - dev->calib.par_p7 = (int8_t) (coeff_array[BME680_P7_REG]); - dev->calib.par_p8 = (int16_t) (BME680_CONCAT_BYTES(coeff_array[BME680_P8_MSB_REG], - coeff_array[BME680_P8_LSB_REG])); - dev->calib.par_p9 = (int16_t) (BME680_CONCAT_BYTES(coeff_array[BME680_P9_MSB_REG], - coeff_array[BME680_P9_LSB_REG])); - dev->calib.par_p10 = (uint8_t) (coeff_array[BME680_P10_REG]); - - /* Humidity related coefficients */ - dev->calib.par_h1 = (uint16_t) (((uint16_t) coeff_array[BME680_H1_MSB_REG] << BME680_HUM_REG_SHIFT_VAL) - | (coeff_array[BME680_H1_LSB_REG] & BME680_BIT_H1_DATA_MSK)); - dev->calib.par_h2 = (uint16_t) (((uint16_t) coeff_array[BME680_H2_MSB_REG] << BME680_HUM_REG_SHIFT_VAL) - | ((coeff_array[BME680_H2_LSB_REG]) >> BME680_HUM_REG_SHIFT_VAL)); - dev->calib.par_h3 = (int8_t) coeff_array[BME680_H3_REG]; - dev->calib.par_h4 = (int8_t) coeff_array[BME680_H4_REG]; - dev->calib.par_h5 = (int8_t) coeff_array[BME680_H5_REG]; - dev->calib.par_h6 = (uint8_t) coeff_array[BME680_H6_REG]; - dev->calib.par_h7 = (int8_t) coeff_array[BME680_H7_REG]; - - /* Gas heater related coefficients */ - dev->calib.par_gh1 = (int8_t) coeff_array[BME680_GH1_REG]; - dev->calib.par_gh2 = (int16_t) (BME680_CONCAT_BYTES(coeff_array[BME680_GH2_MSB_REG], - coeff_array[BME680_GH2_LSB_REG])); - dev->calib.par_gh3 = (int8_t) coeff_array[BME680_GH3_REG]; - - /* Other coefficients */ - if (rslt == BME680_OK) { - rslt = bme680_get_regs(BME680_ADDR_RES_HEAT_RANGE_ADDR, &temp_var, 1, dev); - - dev->calib.res_heat_range = ((temp_var & BME680_RHRANGE_MSK) / 16); - if (rslt == BME680_OK) { - rslt = bme680_get_regs(BME680_ADDR_RES_HEAT_VAL_ADDR, &temp_var, 1, dev); - - dev->calib.res_heat_val = (int8_t) temp_var; - if (rslt == BME680_OK) - rslt = bme680_get_regs(BME680_ADDR_RANGE_SW_ERR_ADDR, &temp_var, 1, dev); - } - } - dev->calib.range_sw_err = ((int8_t) temp_var & (int8_t) BME680_RSERROR_MSK) / 16; - } - - return rslt; -} - -/*! - * @brief This internal API is used to set the gas configuration of the sensor. - */ -static int8_t set_gas_config(struct bme680_dev *dev) -{ - int8_t rslt; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - - uint8_t reg_addr[2] = {0}; - uint8_t reg_data[2] = {0}; - - if (dev->power_mode == BME680_FORCED_MODE) { - reg_addr[0] = BME680_RES_HEAT0_ADDR; - reg_data[0] = calc_heater_res(dev->gas_sett.heatr_temp, dev); - reg_addr[1] = BME680_GAS_WAIT0_ADDR; - reg_data[1] = calc_heater_dur(dev->gas_sett.heatr_dur); - dev->gas_sett.nb_conv = 0; - } else { - rslt = BME680_W_DEFINE_PWR_MODE; - } - if (rslt == BME680_OK) - rslt = bme680_set_regs(reg_addr, reg_data, 2, dev); - } - - return rslt; -} - -/*! - * @brief This internal API is used to get the gas configuration of the sensor. - * @note heatr_temp and heatr_dur values are currently register data - * and not the actual values set - */ -static int8_t get_gas_config(struct bme680_dev *dev) -{ - int8_t rslt; - /* starting address of the register array for burst read*/ - uint8_t reg_addr1 = BME680_ADDR_SENS_CONF_START; - uint8_t reg_addr2 = BME680_ADDR_GAS_CONF_START; - uint8_t reg_data = 0; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - if (BME680_SPI_INTF == dev->intf) { - /* Memory page switch the SPI address*/ - rslt = set_mem_page(reg_addr1, dev); - } - - if (rslt == BME680_OK) { - rslt = bme680_get_regs(reg_addr1, ®_data, 1, dev); - if (rslt == BME680_OK) { - dev->gas_sett.heatr_temp = reg_data; - rslt = bme680_get_regs(reg_addr2, ®_data, 1, dev); - if (rslt == BME680_OK) { - /* Heating duration register value */ - dev->gas_sett.heatr_dur = reg_data; - } - } - } - } - - return rslt; -} - -#ifndef BME680_FLOAT_POINT_COMPENSATION - -/*! - * @brief This internal API is used to calculate the temperature value. - */ -static int16_t calc_temperature(uint32_t temp_adc, struct bme680_dev *dev) -{ - int64_t var1; - int64_t var2; - int64_t var3; - int16_t calc_temp; - - var1 = ((int32_t) temp_adc >> 3) - ((int32_t) dev->calib.par_t1 << 1); - var2 = (var1 * (int32_t) dev->calib.par_t2) >> 11; - var3 = ((var1 >> 1) * (var1 >> 1)) >> 12; - var3 = ((var3) * ((int32_t) dev->calib.par_t3 << 4)) >> 14; - dev->calib.t_fine = (int32_t) (var2 + var3); - calc_temp = (int16_t) (((dev->calib.t_fine * 5) + 128) >> 8); - - return calc_temp; -} - -/*! - * @brief This internal API is used to calculate the pressure value. - */ -static uint32_t calc_pressure(uint32_t pres_adc, const struct bme680_dev *dev) -{ - int32_t var1; - int32_t var2; - int32_t var3; - int32_t pressure_comp; - - var1 = (((int32_t)dev->calib.t_fine) >> 1) - 64000; - var2 = ((((var1 >> 2) * (var1 >> 2)) >> 11) * - (int32_t)dev->calib.par_p6) >> 2; - var2 = var2 + ((var1 * (int32_t)dev->calib.par_p5) << 1); - var2 = (var2 >> 2) + ((int32_t)dev->calib.par_p4 << 16); - var1 = (((((var1 >> 2) * (var1 >> 2)) >> 13) * - ((int32_t)dev->calib.par_p3 << 5)) >> 3) + - (((int32_t)dev->calib.par_p2 * var1) >> 1); - var1 = var1 >> 18; - var1 = ((32768 + var1) * (int32_t)dev->calib.par_p1) >> 15; - pressure_comp = 1048576 - pres_adc; - pressure_comp = (int32_t)((pressure_comp - (var2 >> 12)) * ((uint32_t)3125)); - if (pressure_comp >= BME680_MAX_OVERFLOW_VAL) - pressure_comp = ((pressure_comp / var1) << 1); - else - pressure_comp = ((pressure_comp << 1) / var1); - var1 = ((int32_t)dev->calib.par_p9 * (int32_t)(((pressure_comp >> 3) * - (pressure_comp >> 3)) >> 13)) >> 12; - var2 = ((int32_t)(pressure_comp >> 2) * - (int32_t)dev->calib.par_p8) >> 13; - var3 = ((int32_t)(pressure_comp >> 8) * (int32_t)(pressure_comp >> 8) * - (int32_t)(pressure_comp >> 8) * - (int32_t)dev->calib.par_p10) >> 17; - - pressure_comp = (int32_t)(pressure_comp) + ((var1 + var2 + var3 + - ((int32_t)dev->calib.par_p7 << 7)) >> 4); - - return (uint32_t)pressure_comp; - -} - -/*! - * @brief This internal API is used to calculate the humidity value. - */ -static uint32_t calc_humidity(uint16_t hum_adc, const struct bme680_dev *dev) -{ - int32_t var1; - int32_t var2; - int32_t var3; - int32_t var4; - int32_t var5; - int32_t var6; - int32_t temp_scaled; - int32_t calc_hum; - - temp_scaled = (((int32_t) dev->calib.t_fine * 5) + 128) >> 8; - var1 = (int32_t) (hum_adc - ((int32_t) ((int32_t) dev->calib.par_h1 * 16))) - - (((temp_scaled * (int32_t) dev->calib.par_h3) / ((int32_t) 100)) >> 1); - var2 = ((int32_t) dev->calib.par_h2 - * (((temp_scaled * (int32_t) dev->calib.par_h4) / ((int32_t) 100)) - + (((temp_scaled * ((temp_scaled * (int32_t) dev->calib.par_h5) / ((int32_t) 100))) >> 6) - / ((int32_t) 100)) + (int32_t) (1 << 14))) >> 10; - var3 = var1 * var2; - var4 = (int32_t) dev->calib.par_h6 << 7; - var4 = ((var4) + ((temp_scaled * (int32_t) dev->calib.par_h7) / ((int32_t) 100))) >> 4; - var5 = ((var3 >> 14) * (var3 >> 14)) >> 10; - var6 = (var4 * var5) >> 1; - calc_hum = (((var3 + var6) >> 10) * ((int32_t) 1000)) >> 12; - - if (calc_hum > 100000) /* Cap at 100%rH */ - calc_hum = 100000; - else if (calc_hum < 0) - calc_hum = 0; - - return (uint32_t) calc_hum; -} - -/*! - * @brief This internal API is used to calculate the Gas Resistance value. - */ -static uint32_t calc_gas_resistance(uint16_t gas_res_adc, uint8_t gas_range, const struct bme680_dev *dev) -{ - int64_t var1; - uint64_t var2; - int64_t var3; - uint32_t calc_gas_res; - /**Look up table 1 for the possible gas range values */ - uint32_t lookupTable1[16] = { UINT32_C(2147483647), UINT32_C(2147483647), UINT32_C(2147483647), UINT32_C(2147483647), - UINT32_C(2147483647), UINT32_C(2126008810), UINT32_C(2147483647), UINT32_C(2130303777), - UINT32_C(2147483647), UINT32_C(2147483647), UINT32_C(2143188679), UINT32_C(2136746228), - UINT32_C(2147483647), UINT32_C(2126008810), UINT32_C(2147483647), UINT32_C(2147483647) }; - /**Look up table 2 for the possible gas range values */ - uint32_t lookupTable2[16] = { UINT32_C(4096000000), UINT32_C(2048000000), UINT32_C(1024000000), UINT32_C(512000000), - UINT32_C(255744255), UINT32_C(127110228), UINT32_C(64000000), UINT32_C(32258064), UINT32_C(16016016), - UINT32_C(8000000), UINT32_C(4000000), UINT32_C(2000000), UINT32_C(1000000), UINT32_C(500000), - UINT32_C(250000), UINT32_C(125000) }; - - var1 = (int64_t) ((1340 + (5 * (int64_t) dev->calib.range_sw_err)) * - ((int64_t) lookupTable1[gas_range])) >> 16; - var2 = (((int64_t) ((int64_t) gas_res_adc << 15) - (int64_t) (16777216)) + var1); - var3 = (((int64_t) lookupTable2[gas_range] * (int64_t) var1) >> 9); - calc_gas_res = (uint32_t) ((var3 + ((int64_t) var2 >> 1)) / (int64_t) var2); - - return calc_gas_res; -} - -/*! - * @brief This internal API is used to calculate the Heat Resistance value. - */ -static uint8_t calc_heater_res(uint16_t temp, const struct bme680_dev *dev) -{ - uint8_t heatr_res; - int32_t var1; - int32_t var2; - int32_t var3; - int32_t var4; - int32_t var5; - int32_t heatr_res_x100; - - if (temp > 400) /* Cap temperature */ - temp = 400; - - var1 = (((int32_t) dev->amb_temp * dev->calib.par_gh3) / 1000) * 256; - var2 = (dev->calib.par_gh1 + 784) * (((((dev->calib.par_gh2 + 154009) * temp * 5) / 100) + 3276800) / 10); - var3 = var1 + (var2 / 2); - var4 = (var3 / (dev->calib.res_heat_range + 4)); - var5 = (131 * dev->calib.res_heat_val) + 65536; - heatr_res_x100 = (int32_t) (((var4 / var5) - 250) * 34); - heatr_res = (uint8_t) ((heatr_res_x100 + 50) / 100); - - return heatr_res; -} - -#else - - -/*! - * @brief This internal API is used to calculate the - * temperature value in float format - */ -static float calc_temperature(uint32_t temp_adc, struct bme680_dev *dev) -{ - float var1 = 0; - float var2 = 0; - float calc_temp = 0; - - /* calculate var1 data */ - var1 = ((((float)temp_adc / 16384.0f) - ((float)dev->calib.par_t1 / 1024.0f)) - * ((float)dev->calib.par_t2)); - - /* calculate var2 data */ - var2 = (((((float)temp_adc / 131072.0f) - ((float)dev->calib.par_t1 / 8192.0f)) * - (((float)temp_adc / 131072.0f) - ((float)dev->calib.par_t1 / 8192.0f))) * - ((float)dev->calib.par_t3 * 16.0f)); - - /* t_fine value*/ - dev->calib.t_fine = (var1 + var2); - - /* compensated temperature data*/ - calc_temp = ((dev->calib.t_fine) / 5120.0f); - - return calc_temp; -} - -/*! - * @brief This internal API is used to calculate the - * pressure value in float format - */ -static float calc_pressure(uint32_t pres_adc, const struct bme680_dev *dev) -{ - float var1 = 0; - float var2 = 0; - float var3 = 0; - float calc_pres = 0; - - var1 = (((float)dev->calib.t_fine / 2.0f) - 64000.0f); - var2 = var1 * var1 * (((float)dev->calib.par_p6) / (131072.0f)); - var2 = var2 + (var1 * ((float)dev->calib.par_p5) * 2.0f); - var2 = (var2 / 4.0f) + (((float)dev->calib.par_p4) * 65536.0f); - var1 = (((((float)dev->calib.par_p3 * var1 * var1) / 16384.0f) - + ((float)dev->calib.par_p2 * var1)) / 524288.0f); - var1 = ((1.0f + (var1 / 32768.0f)) * ((float)dev->calib.par_p1)); - calc_pres = (1048576.0f - ((float)pres_adc)); - - /* Avoid exception caused by division by zero */ - if ((int)var1 != 0) { - calc_pres = (((calc_pres - (var2 / 4096.0f)) * 6250.0f) / var1); - var1 = (((float)dev->calib.par_p9) * calc_pres * calc_pres) / 2147483648.0f; - var2 = calc_pres * (((float)dev->calib.par_p8) / 32768.0f); - var3 = ((calc_pres / 256.0f) * (calc_pres / 256.0f) * (calc_pres / 256.0f) - * (dev->calib.par_p10 / 131072.0f)); - calc_pres = (calc_pres + (var1 + var2 + var3 + ((float)dev->calib.par_p7 * 128.0f)) / 16.0f); - } else { - calc_pres = 0; - } - - return calc_pres; -} - -/*! - * @brief This internal API is used to calculate the - * humidity value in float format - */ -static float calc_humidity(uint16_t hum_adc, const struct bme680_dev *dev) -{ - float calc_hum = 0; - float var1 = 0; - float var2 = 0; - float var3 = 0; - float var4 = 0; - float temp_comp; - - /* compensated temperature data*/ - temp_comp = ((dev->calib.t_fine) / 5120.0f); - - var1 = (float)((float)hum_adc) - (((float)dev->calib.par_h1 * 16.0f) + (((float)dev->calib.par_h3 / 2.0f) - * temp_comp)); - - var2 = var1 * ((float)(((float) dev->calib.par_h2 / 262144.0f) * (1.0f + (((float)dev->calib.par_h4 / 16384.0f) - * temp_comp) + (((float)dev->calib.par_h5 / 1048576.0f) * temp_comp * temp_comp)))); - - var3 = (float) dev->calib.par_h6 / 16384.0f; - - var4 = (float) dev->calib.par_h7 / 2097152.0f; - - calc_hum = var2 + ((var3 + (var4 * temp_comp)) * var2 * var2); - - if (calc_hum > 100.0f) - calc_hum = 100.0f; - else if (calc_hum < 0.0f) - calc_hum = 0.0f; - - return calc_hum; -} - -/*! - * @brief This internal API is used to calculate the - * gas resistance value in float format - */ -static float calc_gas_resistance(uint16_t gas_res_adc, uint8_t gas_range, const struct bme680_dev *dev) -{ - float calc_gas_res; - float var1 = 0; - float var2 = 0; - float var3 = 0; - - const float lookup_k1_range[16] = { - 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, -0.8, - 0.0, 0.0, -0.2, -0.5, 0.0, -1.0, 0.0, 0.0}; - const float lookup_k2_range[16] = { - 0.0, 0.0, 0.0, 0.0, 0.1, 0.7, 0.0, -0.8, - -0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; - - var1 = (1340.0f + (5.0f * dev->calib.range_sw_err)); - var2 = (var1) * (1.0f + lookup_k1_range[gas_range]/100.0f); - var3 = 1.0f + (lookup_k2_range[gas_range]/100.0f); - - calc_gas_res = 1.0f / (float)(var3 * (0.000000125f) * (float)(1 << gas_range) * (((((float)gas_res_adc) - - 512.0f)/var2) + 1.0f)); - - return calc_gas_res; -} - -/*! - * @brief This internal API is used to calculate the - * heater resistance value in float format - */ -static float calc_heater_res(uint16_t temp, const struct bme680_dev *dev) -{ - float var1 = 0; - float var2 = 0; - float var3 = 0; - float var4 = 0; - float var5 = 0; - float res_heat = 0; - - if (temp > 400) /* Cap temperature */ - temp = 400; - - var1 = (((float)dev->calib.par_gh1 / (16.0f)) + 49.0f); - var2 = ((((float)dev->calib.par_gh2 / (32768.0f)) * (0.0005f)) + 0.00235f); - var3 = ((float)dev->calib.par_gh3 / (1024.0f)); - var4 = (var1 * (1.0f + (var2 * (float)temp))); - var5 = (var4 + (var3 * (float)dev->amb_temp)); - res_heat = (uint8_t)(3.4f * ((var5 * (4 / (4 + (float)dev->calib.res_heat_range)) * - (1/(1 + ((float) dev->calib.res_heat_val * 0.002f)))) - 25)); - - return res_heat; -} - -#endif - -/*! - * @brief This internal API is used to calculate the Heat duration value. - */ -static uint8_t calc_heater_dur(uint16_t dur) -{ - uint8_t factor = 0; - uint8_t durval; - - if (dur >= 0xfc0) { - durval = 0xff; /* Max duration*/ - } else { - while (dur > 0x3F) { - dur = dur / 4; - factor += 1; - } - durval = (uint8_t) (dur + (factor * 64)); - } - - return durval; -} - -/*! - * @brief This internal API is used to calculate the field data of sensor. - */ -static int8_t read_field_data(struct bme680_field_data *data, struct bme680_dev *dev) -{ - int8_t rslt; - uint8_t buff[BME680_FIELD_LENGTH] = { 0 }; - uint8_t gas_range; - uint32_t adc_temp; - uint32_t adc_pres; - uint16_t adc_hum; - uint16_t adc_gas_res; - uint8_t tries = 10; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - do { - if (rslt == BME680_OK) { - rslt = bme680_get_regs(((uint8_t) (BME680_FIELD0_ADDR)), buff, (uint16_t) BME680_FIELD_LENGTH, - dev); - - data->status = buff[0] & BME680_NEW_DATA_MSK; - data->gas_index = buff[0] & BME680_GAS_INDEX_MSK; - data->meas_index = buff[1]; - - /* read the raw data from the sensor */ - adc_pres = (uint32_t) (((uint32_t) buff[2] * 4096) | ((uint32_t) buff[3] * 16) - | ((uint32_t) buff[4] / 16)); - adc_temp = (uint32_t) (((uint32_t) buff[5] * 4096) | ((uint32_t) buff[6] * 16) - | ((uint32_t) buff[7] / 16)); - adc_hum = (uint16_t) (((uint32_t) buff[8] * 256) | (uint32_t) buff[9]); - adc_gas_res = (uint16_t) ((uint32_t) buff[13] * 4 | (((uint32_t) buff[14]) / 64)); - gas_range = buff[14] & BME680_GAS_RANGE_MSK; - - data->status |= buff[14] & BME680_GASM_VALID_MSK; - data->status |= buff[14] & BME680_HEAT_STAB_MSK; - - if (data->status & BME680_NEW_DATA_MSK) { - data->temperature = calc_temperature(adc_temp, dev); - data->pressure = calc_pressure(adc_pres, dev); - data->humidity = calc_humidity(adc_hum, dev); - data->gas_resistance = calc_gas_resistance(adc_gas_res, gas_range, dev); - break; - } - /* Delay to poll the data */ - dev->delay_ms(BME680_POLL_PERIOD_MS); - } - tries--; - } while (tries); - - if (!tries) - rslt = BME680_W_NO_NEW_DATA; - - return rslt; -} - -/*! - * @brief This internal API is used to set the memory page based on register address. - */ -static int8_t set_mem_page(uint8_t reg_addr, struct bme680_dev *dev) -{ - int8_t rslt; - uint8_t reg; - uint8_t mem_page; - - /* Check for null pointers in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - if (reg_addr > 0x7f) - mem_page = BME680_MEM_PAGE1; - else - mem_page = BME680_MEM_PAGE0; - - if (mem_page != dev->mem_page) { - dev->mem_page = mem_page; - - dev->com_rslt = dev->read(dev->dev_id, BME680_MEM_PAGE_ADDR | BME680_SPI_RD_MSK, ®, 1); - if (dev->com_rslt != 0) - rslt = BME680_E_COM_FAIL; - - if (rslt == BME680_OK) { - reg = reg & (~BME680_MEM_PAGE_MSK); - reg = reg | (dev->mem_page & BME680_MEM_PAGE_MSK); - - dev->com_rslt = dev->write(dev->dev_id, BME680_MEM_PAGE_ADDR & BME680_SPI_WR_MSK, - ®, 1); - if (dev->com_rslt != 0) - rslt = BME680_E_COM_FAIL; - } - } - } - - return rslt; -} - -/*! - * @brief This internal API is used to get the memory page based on register address. - */ -static int8_t get_mem_page(struct bme680_dev *dev) -{ - int8_t rslt; - uint8_t reg; - - /* Check for null pointer in the device structure*/ - rslt = null_ptr_check(dev); - if (rslt == BME680_OK) { - dev->com_rslt = dev->read(dev->dev_id, BME680_MEM_PAGE_ADDR | BME680_SPI_RD_MSK, ®, 1); - if (dev->com_rslt != 0) - rslt = BME680_E_COM_FAIL; - else - dev->mem_page = reg & BME680_MEM_PAGE_MSK; - } - - return rslt; -} - -/*! - * @brief This internal API is used to validate the boundary - * conditions. - */ -static int8_t boundary_check(uint8_t *value, uint8_t min, uint8_t max, struct bme680_dev *dev) -{ - int8_t rslt = BME680_OK; - - if (value != NULL) { - /* Check if value is below minimum value */ - if (*value < min) { - /* Auto correct the invalid value to minimum value */ - *value = min; - dev->info_msg |= BME680_I_MIN_CORRECTION; - } - /* Check if value is above maximum value */ - if (*value > max) { - /* Auto correct the invalid value to maximum value */ - *value = max; - dev->info_msg |= BME680_I_MAX_CORRECTION; - } - } else { - rslt = BME680_E_NULL_PTR; - } - - return rslt; -} - -/*! - * @brief This internal API is used to validate the device structure pointer for - * null conditions. - */ -static int8_t null_ptr_check(const struct bme680_dev *dev) -{ - int8_t rslt; - - if ((dev == NULL) || (dev->read == NULL) || (dev->write == NULL) || (dev->delay_ms == NULL)) { - /* Device structure pointer is not valid */ - rslt = BME680_E_NULL_PTR; - } else { - /* Device structure is fine */ - rslt = BME680_OK; - } - - return rslt; -} diff --git a/lib/Bosch-BSEC/src/bme680/bme680.h b/lib/Bosch-BSEC/src/bme680/bme680.h deleted file mode 100644 index 7c59be0f..00000000 --- a/lib/Bosch-BSEC/src/bme680/bme680.h +++ /dev/null @@ -1,225 +0,0 @@ -/** - * Copyright (C) 2017 - 2018 Bosch Sensortec GmbH - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of the copyright holder nor the names of the - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER - * OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - * OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE - * - * The information provided is believed to be accurate and reliable. - * The copyright holder assumes no responsibility - * for the consequences of use - * of such information nor for any infringement of patents or - * other rights of third parties which may result from its use. - * No license is granted by implication or otherwise under any patent or - * patent rights of the copyright holder. - * - * @file bme680.h - * @date 19 Jun 2018 - * @version 3.5.9 - * @brief - * - */ -/*! @file bme680.h - @brief Sensor driver for BME680 sensor */ -/*! - * @defgroup BME680 SENSOR API - * @{*/ -#ifndef BME680_H_ -#define BME680_H_ - -/*! CPP guard */ -#ifdef __cplusplus -extern "C" -{ -#endif - -/* Header includes */ -#include "bme680_defs.h" - -/* function prototype declarations */ -/*! - * @brief This API is the entry point. - * It reads the chip-id and calibration data from the sensor. - * - * @param[in,out] dev : Structure instance of bme680_dev - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -int8_t bme680_init(struct bme680_dev *dev); - -/*! - * @brief This API writes the given data to the register address - * of the sensor. - * - * @param[in] reg_addr : Register address from where the data to be written. - * @param[in] reg_data : Pointer to data buffer which is to be written - * in the sensor. - * @param[in] len : No of bytes of data to write.. - * @param[in] dev : Structure instance of bme680_dev. - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -int8_t bme680_set_regs(const uint8_t *reg_addr, const uint8_t *reg_data, uint8_t len, struct bme680_dev *dev); - -/*! - * @brief This API reads the data from the given register address of the sensor. - * - * @param[in] reg_addr : Register address from where the data to be read - * @param[out] reg_data : Pointer to data buffer to store the read data. - * @param[in] len : No of bytes of data to be read. - * @param[in] dev : Structure instance of bme680_dev. - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -int8_t bme680_get_regs(uint8_t reg_addr, uint8_t *reg_data, uint16_t len, struct bme680_dev *dev); - -/*! - * @brief This API performs the soft reset of the sensor. - * - * @param[in] dev : Structure instance of bme680_dev. - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error. - */ -int8_t bme680_soft_reset(struct bme680_dev *dev); - -/*! - * @brief This API is used to set the power mode of the sensor. - * - * @param[in] dev : Structure instance of bme680_dev - * @note : Pass the value to bme680_dev.power_mode structure variable. - * - * value | mode - * -------------|------------------ - * 0x00 | BME680_SLEEP_MODE - * 0x01 | BME680_FORCED_MODE - * - * * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -int8_t bme680_set_sensor_mode(struct bme680_dev *dev); - -/*! - * @brief This API is used to get the power mode of the sensor. - * - * @param[in] dev : Structure instance of bme680_dev - * @note : bme680_dev.power_mode structure variable hold the power mode. - * - * value | mode - * ---------|------------------ - * 0x00 | BME680_SLEEP_MODE - * 0x01 | BME680_FORCED_MODE - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -int8_t bme680_get_sensor_mode(struct bme680_dev *dev); - -/*! - * @brief This API is used to set the profile duration of the sensor. - * - * @param[in] dev : Structure instance of bme680_dev. - * @param[in] duration : Duration of the measurement in ms. - * - * @return Nothing - */ -void bme680_set_profile_dur(uint16_t duration, struct bme680_dev *dev); - -/*! - * @brief This API is used to get the profile duration of the sensor. - * - * @param[in] dev : Structure instance of bme680_dev. - * @param[in] duration : Duration of the measurement in ms. - * - * @return Nothing - */ -void bme680_get_profile_dur(uint16_t *duration, const struct bme680_dev *dev); - -/*! - * @brief This API reads the pressure, temperature and humidity and gas data - * from the sensor, compensates the data and store it in the bme680_data - * structure instance passed by the user. - * - * @param[out] data: Structure instance to hold the data. - * @param[in] dev : Structure instance of bme680_dev. - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error - */ -int8_t bme680_get_sensor_data(struct bme680_field_data *data, struct bme680_dev *dev); - -/*! - * @brief This API is used to set the oversampling, filter and T,P,H, gas selection - * settings in the sensor. - * - * @param[in] dev : Structure instance of bme680_dev. - * @param[in] desired_settings : Variable used to select the settings which - * are to be set in the sensor. - * - * Macros | Functionality - *---------------------------------|---------------------------------------------- - * BME680_OST_SEL | To set temperature oversampling. - * BME680_OSP_SEL | To set pressure oversampling. - * BME680_OSH_SEL | To set humidity oversampling. - * BME680_GAS_MEAS_SEL | To set gas measurement setting. - * BME680_FILTER_SEL | To set filter setting. - * BME680_HCNTRL_SEL | To set humidity control setting. - * BME680_RUN_GAS_SEL | To set run gas setting. - * BME680_NBCONV_SEL | To set NB conversion setting. - * BME680_GAS_SENSOR_SEL | To set all gas sensor related settings - * - * @note : Below are the macros to be used by the user for selecting the - * desired settings. User can do OR operation of these macros for configuring - * multiple settings. - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error. - */ -int8_t bme680_set_sensor_settings(uint16_t desired_settings, struct bme680_dev *dev); - -/*! - * @brief This API is used to get the oversampling, filter and T,P,H, gas selection - * settings in the sensor. - * - * @param[in] dev : Structure instance of bme680_dev. - * @param[in] desired_settings : Variable used to select the settings which - * are to be get from the sensor. - * - * @return Result of API execution status - * @retval zero -> Success / +ve value -> Warning / -ve value -> Error. - */ -int8_t bme680_get_sensor_settings(uint16_t desired_settings, struct bme680_dev *dev); -#ifdef __cplusplus -} -#endif /* End of CPP guard */ -#endif /* BME680_H_ */ -/** @}*/ diff --git a/lib/Bosch-BSEC/src/bme680/bme680_defs.h b/lib/Bosch-BSEC/src/bme680/bme680_defs.h deleted file mode 100644 index 79fd7782..00000000 --- a/lib/Bosch-BSEC/src/bme680/bme680_defs.h +++ /dev/null @@ -1,545 +0,0 @@ -/** - * Copyright (C) 2017 - 2018 Bosch Sensortec GmbH - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of the copyright holder nor the names of the - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER - * OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - * OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE - * - * The information provided is believed to be accurate and reliable. - * The copyright holder assumes no responsibility - * for the consequences of use - * of such information nor for any infringement of patents or - * other rights of third parties which may result from its use. - * No license is granted by implication or otherwise under any patent or - * patent rights of the copyright holder. - * - * @file bme680_defs.h - * @date 19 Jun 2018 - * @version 3.5.9 - * @brief - * - */ - -/*! @file bme680_defs.h - @brief Sensor driver for BME680 sensor */ -/*! - * @defgroup BME680 SENSOR API - * @brief - * @{*/ -#ifndef BME680_DEFS_H_ -#define BME680_DEFS_H_ - -/********************************************************/ -/* header includes */ -#ifdef __KERNEL__ -#include -#include -#else -#include -#include -#endif - -/******************************************************************************/ -/*! @name Common macros */ -/******************************************************************************/ - -#if !defined(UINT8_C) && !defined(INT8_C) -#define INT8_C(x) S8_C(x) -#define UINT8_C(x) U8_C(x) -#endif - -#if !defined(UINT16_C) && !defined(INT16_C) -#define INT16_C(x) S16_C(x) -#define UINT16_C(x) U16_C(x) -#endif - -#if !defined(INT32_C) && !defined(UINT32_C) -#define INT32_C(x) S32_C(x) -#define UINT32_C(x) U32_C(x) -#endif - -#if !defined(INT64_C) && !defined(UINT64_C) -#define INT64_C(x) S64_C(x) -#define UINT64_C(x) U64_C(x) -#endif - -/**@}*/ - -/**\name C standard macros */ -#ifndef NULL -#ifdef __cplusplus -#define NULL 0 -#else -#define NULL ((void *) 0) -#endif -#endif - -/** BME680 configuration macros */ -/** Enable or un-comment the macro to provide floating point data output */ -#ifndef BME680_FLOAT_POINT_COMPENSATION -//#define BME680_FLOAT_POINT_COMPENSATION -#endif - -/** BME680 General config */ -#define BME680_POLL_PERIOD_MS UINT8_C(10) - -/** BME680 I2C addresses */ -#define BME680_I2C_ADDR_PRIMARY UINT8_C(0x76) -#define BME680_I2C_ADDR_SECONDARY UINT8_C(0x77) - -/** BME680 unique chip identifier */ -#define BME680_CHIP_ID UINT8_C(0x61) - -/** BME680 coefficients related defines */ -#define BME680_COEFF_SIZE UINT8_C(41) -#define BME680_COEFF_ADDR1_LEN UINT8_C(25) -#define BME680_COEFF_ADDR2_LEN UINT8_C(16) - -/** BME680 field_x related defines */ -#define BME680_FIELD_LENGTH UINT8_C(15) -#define BME680_FIELD_ADDR_OFFSET UINT8_C(17) - -/** Soft reset command */ -#define BME680_SOFT_RESET_CMD UINT8_C(0xb6) - -/** Error code definitions */ -#define BME680_OK INT8_C(0) -/* Errors */ -#define BME680_E_NULL_PTR INT8_C(-1) -#define BME680_E_COM_FAIL INT8_C(-2) -#define BME680_E_DEV_NOT_FOUND INT8_C(-3) -#define BME680_E_INVALID_LENGTH INT8_C(-4) - -/* Warnings */ -#define BME680_W_DEFINE_PWR_MODE INT8_C(1) -#define BME680_W_NO_NEW_DATA INT8_C(2) - -/* Info's */ -#define BME680_I_MIN_CORRECTION UINT8_C(1) -#define BME680_I_MAX_CORRECTION UINT8_C(2) - -/** Register map */ -/** Other coefficient's address */ -#define BME680_ADDR_RES_HEAT_VAL_ADDR UINT8_C(0x00) -#define BME680_ADDR_RES_HEAT_RANGE_ADDR UINT8_C(0x02) -#define BME680_ADDR_RANGE_SW_ERR_ADDR UINT8_C(0x04) -#define BME680_ADDR_SENS_CONF_START UINT8_C(0x5A) -#define BME680_ADDR_GAS_CONF_START UINT8_C(0x64) - -/** Field settings */ -#define BME680_FIELD0_ADDR UINT8_C(0x1d) - -/** Heater settings */ -#define BME680_RES_HEAT0_ADDR UINT8_C(0x5a) -#define BME680_GAS_WAIT0_ADDR UINT8_C(0x64) - -/** Sensor configuration registers */ -#define BME680_CONF_HEAT_CTRL_ADDR UINT8_C(0x70) -#define BME680_CONF_ODR_RUN_GAS_NBC_ADDR UINT8_C(0x71) -#define BME680_CONF_OS_H_ADDR UINT8_C(0x72) -#define BME680_MEM_PAGE_ADDR UINT8_C(0xf3) -#define BME680_CONF_T_P_MODE_ADDR UINT8_C(0x74) -#define BME680_CONF_ODR_FILT_ADDR UINT8_C(0x75) - -/** Coefficient's address */ -#define BME680_COEFF_ADDR1 UINT8_C(0x89) -#define BME680_COEFF_ADDR2 UINT8_C(0xe1) - -/** Chip identifier */ -#define BME680_CHIP_ID_ADDR UINT8_C(0xd0) - -/** Soft reset register */ -#define BME680_SOFT_RESET_ADDR UINT8_C(0xe0) - -/** Heater control settings */ -#define BME680_ENABLE_HEATER UINT8_C(0x00) -#define BME680_DISABLE_HEATER UINT8_C(0x08) - -/** Gas measurement settings */ -#define BME680_DISABLE_GAS_MEAS UINT8_C(0x00) -#define BME680_ENABLE_GAS_MEAS UINT8_C(0x01) - -/** Over-sampling settings */ -#define BME680_OS_NONE UINT8_C(0) -#define BME680_OS_1X UINT8_C(1) -#define BME680_OS_2X UINT8_C(2) -#define BME680_OS_4X UINT8_C(3) -#define BME680_OS_8X UINT8_C(4) -#define BME680_OS_16X UINT8_C(5) - -/** IIR filter settings */ -#define BME680_FILTER_SIZE_0 UINT8_C(0) -#define BME680_FILTER_SIZE_1 UINT8_C(1) -#define BME680_FILTER_SIZE_3 UINT8_C(2) -#define BME680_FILTER_SIZE_7 UINT8_C(3) -#define BME680_FILTER_SIZE_15 UINT8_C(4) -#define BME680_FILTER_SIZE_31 UINT8_C(5) -#define BME680_FILTER_SIZE_63 UINT8_C(6) -#define BME680_FILTER_SIZE_127 UINT8_C(7) - -/** Power mode settings */ -#define BME680_SLEEP_MODE UINT8_C(0) -#define BME680_FORCED_MODE UINT8_C(1) - -/** Delay related macro declaration */ -#define BME680_RESET_PERIOD UINT32_C(10) - -/** SPI memory page settings */ -#define BME680_MEM_PAGE0 UINT8_C(0x10) -#define BME680_MEM_PAGE1 UINT8_C(0x00) - -/** Ambient humidity shift value for compensation */ -#define BME680_HUM_REG_SHIFT_VAL UINT8_C(4) - -/** Run gas enable and disable settings */ -#define BME680_RUN_GAS_DISABLE UINT8_C(0) -#define BME680_RUN_GAS_ENABLE UINT8_C(1) - -/** Buffer length macro declaration */ -#define BME680_TMP_BUFFER_LENGTH UINT8_C(40) -#define BME680_REG_BUFFER_LENGTH UINT8_C(6) -#define BME680_FIELD_DATA_LENGTH UINT8_C(3) -#define BME680_GAS_REG_BUF_LENGTH UINT8_C(20) - -/** Settings selector */ -#define BME680_OST_SEL UINT16_C(1) -#define BME680_OSP_SEL UINT16_C(2) -#define BME680_OSH_SEL UINT16_C(4) -#define BME680_GAS_MEAS_SEL UINT16_C(8) -#define BME680_FILTER_SEL UINT16_C(16) -#define BME680_HCNTRL_SEL UINT16_C(32) -#define BME680_RUN_GAS_SEL UINT16_C(64) -#define BME680_NBCONV_SEL UINT16_C(128) -#define BME680_GAS_SENSOR_SEL (BME680_GAS_MEAS_SEL | BME680_RUN_GAS_SEL | BME680_NBCONV_SEL) - -/** Number of conversion settings*/ -#define BME680_NBCONV_MIN UINT8_C(0) -#define BME680_NBCONV_MAX UINT8_C(10) - -/** Mask definitions */ -#define BME680_GAS_MEAS_MSK UINT8_C(0x30) -#define BME680_NBCONV_MSK UINT8_C(0X0F) -#define BME680_FILTER_MSK UINT8_C(0X1C) -#define BME680_OST_MSK UINT8_C(0XE0) -#define BME680_OSP_MSK UINT8_C(0X1C) -#define BME680_OSH_MSK UINT8_C(0X07) -#define BME680_HCTRL_MSK UINT8_C(0x08) -#define BME680_RUN_GAS_MSK UINT8_C(0x10) -#define BME680_MODE_MSK UINT8_C(0x03) -#define BME680_RHRANGE_MSK UINT8_C(0x30) -#define BME680_RSERROR_MSK UINT8_C(0xf0) -#define BME680_NEW_DATA_MSK UINT8_C(0x80) -#define BME680_GAS_INDEX_MSK UINT8_C(0x0f) -#define BME680_GAS_RANGE_MSK UINT8_C(0x0f) -#define BME680_GASM_VALID_MSK UINT8_C(0x20) -#define BME680_HEAT_STAB_MSK UINT8_C(0x10) -#define BME680_MEM_PAGE_MSK UINT8_C(0x10) -#define BME680_SPI_RD_MSK UINT8_C(0x80) -#define BME680_SPI_WR_MSK UINT8_C(0x7f) -#define BME680_BIT_H1_DATA_MSK UINT8_C(0x0F) - -/** Bit position definitions for sensor settings */ -#define BME680_GAS_MEAS_POS UINT8_C(4) -#define BME680_FILTER_POS UINT8_C(2) -#define BME680_OST_POS UINT8_C(5) -#define BME680_OSP_POS UINT8_C(2) -#define BME680_RUN_GAS_POS UINT8_C(4) - -/** Array Index to Field data mapping for Calibration Data*/ -#define BME680_T2_LSB_REG (1) -#define BME680_T2_MSB_REG (2) -#define BME680_T3_REG (3) -#define BME680_P1_LSB_REG (5) -#define BME680_P1_MSB_REG (6) -#define BME680_P2_LSB_REG (7) -#define BME680_P2_MSB_REG (8) -#define BME680_P3_REG (9) -#define BME680_P4_LSB_REG (11) -#define BME680_P4_MSB_REG (12) -#define BME680_P5_LSB_REG (13) -#define BME680_P5_MSB_REG (14) -#define BME680_P7_REG (15) -#define BME680_P6_REG (16) -#define BME680_P8_LSB_REG (19) -#define BME680_P8_MSB_REG (20) -#define BME680_P9_LSB_REG (21) -#define BME680_P9_MSB_REG (22) -#define BME680_P10_REG (23) -#define BME680_H2_MSB_REG (25) -#define BME680_H2_LSB_REG (26) -#define BME680_H1_LSB_REG (26) -#define BME680_H1_MSB_REG (27) -#define BME680_H3_REG (28) -#define BME680_H4_REG (29) -#define BME680_H5_REG (30) -#define BME680_H6_REG (31) -#define BME680_H7_REG (32) -#define BME680_T1_LSB_REG (33) -#define BME680_T1_MSB_REG (34) -#define BME680_GH2_LSB_REG (35) -#define BME680_GH2_MSB_REG (36) -#define BME680_GH1_REG (37) -#define BME680_GH3_REG (38) - -/** BME680 register buffer index settings*/ -#define BME680_REG_FILTER_INDEX UINT8_C(5) -#define BME680_REG_TEMP_INDEX UINT8_C(4) -#define BME680_REG_PRES_INDEX UINT8_C(4) -#define BME680_REG_HUM_INDEX UINT8_C(2) -#define BME680_REG_NBCONV_INDEX UINT8_C(1) -#define BME680_REG_RUN_GAS_INDEX UINT8_C(1) -#define BME680_REG_HCTRL_INDEX UINT8_C(0) - -/** BME680 pressure calculation macros */ -/*! This max value is used to provide precedence to multiplication or division - * in pressure compensation equation to achieve least loss of precision and - * avoiding overflows. - * i.e Comparing value, BME680_MAX_OVERFLOW_VAL = INT32_C(1 << 30) - */ -#define BME680_MAX_OVERFLOW_VAL INT32_C(0x40000000) - -/** Macro to combine two 8 bit data's to form a 16 bit data */ -#define BME680_CONCAT_BYTES(msb, lsb) (((uint16_t)msb << 8) | (uint16_t)lsb) - -/** Macro to SET and GET BITS of a register */ -#define BME680_SET_BITS(reg_data, bitname, data) \ - ((reg_data & ~(bitname##_MSK)) | \ - ((data << bitname##_POS) & bitname##_MSK)) -#define BME680_GET_BITS(reg_data, bitname) ((reg_data & (bitname##_MSK)) >> \ - (bitname##_POS)) - -/** Macro variant to handle the bitname position if it is zero */ -#define BME680_SET_BITS_POS_0(reg_data, bitname, data) \ - ((reg_data & ~(bitname##_MSK)) | \ - (data & bitname##_MSK)) -#define BME680_GET_BITS_POS_0(reg_data, bitname) (reg_data & (bitname##_MSK)) - -/** Type definitions */ -/*! - * Generic communication function pointer - * @param[in] dev_id: Place holder to store the id of the device structure - * Can be used to store the index of the Chip select or - * I2C address of the device. - * @param[in] reg_addr: Used to select the register the where data needs to - * be read from or written to. - * @param[in/out] reg_data: Data array to read/write - * @param[in] len: Length of the data array - */ -typedef int8_t (*bme680_com_fptr_t)(uint8_t dev_id, uint8_t reg_addr, uint8_t *data, uint16_t len); - -/*! - * Delay function pointer - * @param[in] period: Time period in milliseconds - */ -typedef void (*bme680_delay_fptr_t)(uint32_t period); - -/*! - * @brief Interface selection Enumerations - */ -enum bme680_intf { - /*! SPI interface */ - BME680_SPI_INTF, - /*! I2C interface */ - BME680_I2C_INTF -}; - -/* structure definitions */ -/*! - * @brief Sensor field data structure - */ -struct bme680_field_data { - /*! Contains new_data, gasm_valid & heat_stab */ - uint8_t status; - /*! The index of the heater profile used */ - uint8_t gas_index; - /*! Measurement index to track order */ - uint8_t meas_index; - -#ifndef BME680_FLOAT_POINT_COMPENSATION - /*! Temperature in degree celsius x100 */ - int16_t temperature; - /*! Pressure in Pascal */ - uint32_t pressure; - /*! Humidity in % relative humidity x1000 */ - uint32_t humidity; - /*! Gas resistance in Ohms */ - uint32_t gas_resistance; -#else - /*! Temperature in degree celsius */ - float temperature; - /*! Pressure in Pascal */ - float pressure; - /*! Humidity in % relative humidity x1000 */ - float humidity; - /*! Gas resistance in Ohms */ - float gas_resistance; - -#endif - -}; - -/*! - * @brief Structure to hold the Calibration data - */ -struct bme680_calib_data { - /*! Variable to store calibrated humidity data */ - uint16_t par_h1; - /*! Variable to store calibrated humidity data */ - uint16_t par_h2; - /*! Variable to store calibrated humidity data */ - int8_t par_h3; - /*! Variable to store calibrated humidity data */ - int8_t par_h4; - /*! Variable to store calibrated humidity data */ - int8_t par_h5; - /*! Variable to store calibrated humidity data */ - uint8_t par_h6; - /*! Variable to store calibrated humidity data */ - int8_t par_h7; - /*! Variable to store calibrated gas data */ - int8_t par_gh1; - /*! Variable to store calibrated gas data */ - int16_t par_gh2; - /*! Variable to store calibrated gas data */ - int8_t par_gh3; - /*! Variable to store calibrated temperature data */ - uint16_t par_t1; - /*! Variable to store calibrated temperature data */ - int16_t par_t2; - /*! Variable to store calibrated temperature data */ - int8_t par_t3; - /*! Variable to store calibrated pressure data */ - uint16_t par_p1; - /*! Variable to store calibrated pressure data */ - int16_t par_p2; - /*! Variable to store calibrated pressure data */ - int8_t par_p3; - /*! Variable to store calibrated pressure data */ - int16_t par_p4; - /*! Variable to store calibrated pressure data */ - int16_t par_p5; - /*! Variable to store calibrated pressure data */ - int8_t par_p6; - /*! Variable to store calibrated pressure data */ - int8_t par_p7; - /*! Variable to store calibrated pressure data */ - int16_t par_p8; - /*! Variable to store calibrated pressure data */ - int16_t par_p9; - /*! Variable to store calibrated pressure data */ - uint8_t par_p10; - -#ifndef BME680_FLOAT_POINT_COMPENSATION - /*! Variable to store t_fine size */ - int32_t t_fine; -#else - /*! Variable to store t_fine size */ - float t_fine; -#endif - /*! Variable to store heater resistance range */ - uint8_t res_heat_range; - /*! Variable to store heater resistance value */ - int8_t res_heat_val; - /*! Variable to store error range */ - int8_t range_sw_err; -}; - -/*! - * @brief BME680 sensor settings structure which comprises of ODR, - * over-sampling and filter settings. - */ -struct bme680_tph_sett { - /*! Humidity oversampling */ - uint8_t os_hum; - /*! Temperature oversampling */ - uint8_t os_temp; - /*! Pressure oversampling */ - uint8_t os_pres; - /*! Filter coefficient */ - uint8_t filter; -}; - -/*! - * @brief BME680 gas sensor which comprises of gas settings - * and status parameters - */ -struct bme680_gas_sett { - /*! Variable to store nb conversion */ - uint8_t nb_conv; - /*! Variable to store heater control */ - uint8_t heatr_ctrl; - /*! Run gas enable value */ - uint8_t run_gas; - /*! Heater temperature value */ - uint16_t heatr_temp; - /*! Duration profile value */ - uint16_t heatr_dur; -}; - -/*! - * @brief BME680 device structure - */ -struct bme680_dev { - /*! Chip Id */ - uint8_t chip_id; - /*! Device Id */ - uint8_t dev_id; - /*! SPI/I2C interface */ - enum bme680_intf intf; - /*! Memory page used */ - uint8_t mem_page; - /*! Ambient temperature in Degree C */ - int8_t amb_temp; - /*! Sensor calibration data */ - struct bme680_calib_data calib; - /*! Sensor settings */ - struct bme680_tph_sett tph_sett; - /*! Gas Sensor settings */ - struct bme680_gas_sett gas_sett; - /*! Sensor power modes */ - uint8_t power_mode; - /*! New sensor fields */ - uint8_t new_fields; - /*! Store the info messages */ - uint8_t info_msg; - /*! Bus read function pointer */ - bme680_com_fptr_t read; - /*! Bus write function pointer */ - bme680_com_fptr_t write; - /*! delay function pointer */ - bme680_delay_fptr_t delay_ms; - /*! Communication function result */ - int8_t com_rslt; -}; - - - -#endif /* BME680_DEFS_H_ */ -/** @}*/ -/** @}*/ diff --git a/lib/Bosch-BSEC/src/bsec.cpp b/lib/Bosch-BSEC/src/bsec.cpp deleted file mode 100644 index cf85d77f..00000000 --- a/lib/Bosch-BSEC/src/bsec.cpp +++ /dev/null @@ -1,498 +0,0 @@ -/** - * Copyright (C) 2017 - 2018 Bosch Sensortec GmbH - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of the copyright holder nor the names of the - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER - * OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - * OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE - * - * The information provided is believed to be accurate and reliable. - * The copyright holder assumes no responsibility - * for the consequences of use - * of such information nor for any infringement of patents or - * other rights of third parties which may result from its use. - * No license is granted by implication or otherwise under any patent or - * patent rights of the copyright holder. - * - * @file bsec.cpp - * @date 31 Jan 2018 - * @version 1.0 - * - */ - -#include "bsec.h" - -TwoWire *Bsec::wireObj = NULL; -SPIClass *Bsec::spiObj = NULL; - -/** - * @brief Constructor - */ -Bsec::Bsec() { - nextCall = 0; - version.major = 0; - version.minor = 0; - version.major_bugfix = 0; - version.minor_bugfix = 0; - millisOverflowCounter = 0; - lastTime = 0; - bme680Status = BME680_OK; - outputTimestamp = 0; - _tempOffset = 0.0f; - status = BSEC_OK; - zeroOutputs(); -} - -/** - * @brief Function to initialize the BSEC library and the BME680 sensor - */ -void Bsec::begin(uint8_t devId, enum bme680_intf intf, bme680_com_fptr_t read, - bme680_com_fptr_t write, bme680_delay_fptr_t idleTask) { - _bme680.dev_id = devId; - _bme680.intf = intf; - _bme680.read = read; - _bme680.write = write; - _bme680.delay_ms = idleTask; - _bme680.amb_temp = 25; - _bme680.power_mode = BME680_FORCED_MODE; - - beginCommon(); -} - -/** - * @brief Function to initialize the BSEC library and the BME680 sensor - */ -void Bsec::begin(uint8_t i2cAddr, TwoWire &i2c) { - _bme680.dev_id = i2cAddr; - _bme680.intf = BME680_I2C_INTF; - _bme680.read = Bsec::i2cRead; - _bme680.write = Bsec::i2cWrite; - _bme680.delay_ms = Bsec::delay_ms; - _bme680.amb_temp = 25; - _bme680.power_mode = BME680_FORCED_MODE; - - Bsec::wireObj = &i2c; - Bsec::wireObj->begin(); - - beginCommon(); -} - -/** - * @brief Function to initialize the BSEC library and the BME680 sensor - */ -void Bsec::begin(uint8_t chipSelect, SPIClass &spi) { - _bme680.dev_id = chipSelect; - _bme680.intf = BME680_SPI_INTF; - _bme680.read = Bsec::spiTransfer; - _bme680.write = Bsec::spiTransfer; - _bme680.delay_ms = Bsec::delay_ms; - _bme680.amb_temp = 25; - _bme680.power_mode = BME680_FORCED_MODE; - - pinMode(chipSelect, OUTPUT); - digitalWrite(chipSelect, HIGH); - Bsec::spiObj = &spi; - Bsec::spiObj->begin(); - - beginCommon(); -} - -/** - * @brief Common code for the begin function - */ -void Bsec::beginCommon(void) { - status = bsec_init(); - - getVersion(); - - bme680Status = bme680_init(&_bme680); -} - -/** - * @brief Function that sets the desired sensors and the sample rates - */ -void Bsec::updateSubscription(bsec_virtual_sensor_t sensorList[], - uint8_t nSensors, float sampleRate) { - bsec_sensor_configuration_t virtualSensors[BSEC_NUMBER_OUTPUTS], - sensorSettings[BSEC_MAX_PHYSICAL_SENSOR]; - uint8_t nVirtualSensors = 0, nSensorSettings = BSEC_MAX_PHYSICAL_SENSOR; - - for (uint8_t i = 0; i < nSensors; i++) { - virtualSensors[nVirtualSensors].sensor_id = sensorList[i]; - virtualSensors[nVirtualSensors].sample_rate = sampleRate; - nVirtualSensors++; - } - - status = bsec_update_subscription(virtualSensors, nVirtualSensors, - sensorSettings, &nSensorSettings); - return; -} - -/** - * @brief Callback from the user to trigger reading of data from the BME680, - * process and store outputs - */ -bool Bsec::run(void) { - bool newData = false; - /* Check if the time has arrived to call do_steps() */ - int64_t callTimeMs = getTimeMs(); - - if (callTimeMs >= nextCall) { - - bsec_bme_settings_t bme680Settings; - - int64_t callTimeNs = callTimeMs * INT64_C(1000000); - - status = bsec_sensor_control(callTimeNs, &bme680Settings); - if (status < BSEC_OK) - return false; - - nextCall = - bme680Settings.next_call / INT64_C(1000000); // Convert from ns to ms - - bme680Status = setBme680Config(bme680Settings); - if (bme680Status != BME680_OK) { - return false; - } - - bme680Status = bme680_set_sensor_mode(&_bme680); - if (bme680Status != BME680_OK) { - return false; - } - - /* Wait for measurement to complete */ - uint16_t meas_dur = 0; - - bme680_get_profile_dur(&meas_dur, &_bme680); - delay_ms(meas_dur); - - newData = readProcessData(callTimeNs, bme680Settings); - } - - return newData; -} - -/** - * @brief Function to get the state of the algorithm to save to non-volatile - * memory - */ -void Bsec::getState(uint8_t *state) { - uint8_t workBuffer[BSEC_MAX_STATE_BLOB_SIZE]; - uint32_t n_serialized_state = BSEC_MAX_STATE_BLOB_SIZE; - status = bsec_get_state(0, state, BSEC_MAX_STATE_BLOB_SIZE, workBuffer, - BSEC_MAX_STATE_BLOB_SIZE, &n_serialized_state); -} - -/** - * @brief Function to set the state of the algorithm from non-volatile memory - */ -void Bsec::setState(uint8_t *state) { - uint8_t workBuffer[BSEC_MAX_STATE_BLOB_SIZE]; - - status = bsec_set_state(state, BSEC_MAX_STATE_BLOB_SIZE, workBuffer, - BSEC_MAX_STATE_BLOB_SIZE); -} - -/** - * @brief Function to set the configuration of the algorithm from memory - */ -void Bsec::setConfig(const uint8_t *state) { - uint8_t workBuffer[BSEC_MAX_PROPERTY_BLOB_SIZE]; - - status = bsec_set_configuration(state, BSEC_MAX_PROPERTY_BLOB_SIZE, - workBuffer, sizeof(workBuffer)); -} - -/* Private functions */ - -/** - * @brief Get the version of the BSEC library - */ -void Bsec::getVersion(void) { bsec_get_version(&version); } - -/** - * @brief Read data from the BME680 and process it - */ -bool Bsec::readProcessData(int64_t currTimeNs, - bsec_bme_settings_t bme680Settings) { - bme680Status = bme680_get_sensor_data(&_data, &_bme680); - if (bme680Status != BME680_OK) { - return false; - } - - bsec_input_t inputs[BSEC_MAX_PHYSICAL_SENSOR]; // Temp, Pres, Hum & Gas - uint8_t nInputs = 0, nOutputs = 0; - - if (_data.status & BME680_NEW_DATA_MSK) { - if (bme680Settings.process_data & BSEC_PROCESS_TEMPERATURE) { - inputs[nInputs].sensor_id = BSEC_INPUT_TEMPERATURE; -#ifdef BME680_FLOAT_POINT_COMPENSATION - inputs[nInputs].signal = _data.temperature; -#else - inputs[nInputs].signal = _data.temperature / 100.0f; -#endif - inputs[nInputs].time_stamp = currTimeNs; - nInputs++; - /* Temperature offset from the real temperature due to external heat - * sources */ - inputs[nInputs].sensor_id = BSEC_INPUT_HEATSOURCE; - inputs[nInputs].signal = _tempOffset; - inputs[nInputs].time_stamp = currTimeNs; - nInputs++; - } - if (bme680Settings.process_data & BSEC_PROCESS_HUMIDITY) { - inputs[nInputs].sensor_id = BSEC_INPUT_HUMIDITY; -#ifdef BME680_FLOAT_POINT_COMPENSATION - inputs[nInputs].signal = _data.humidity; -#else - inputs[nInputs].signal = _data.humidity / 1000.0f; -#endif - inputs[nInputs].time_stamp = currTimeNs; - nInputs++; - } - if (bme680Settings.process_data & BSEC_PROCESS_PRESSURE) { - inputs[nInputs].sensor_id = BSEC_INPUT_PRESSURE; - inputs[nInputs].signal = _data.pressure; - inputs[nInputs].time_stamp = currTimeNs; - nInputs++; - } - if (bme680Settings.process_data & BSEC_PROCESS_GAS) { - inputs[nInputs].sensor_id = BSEC_INPUT_GASRESISTOR; - inputs[nInputs].signal = _data.gas_resistance; - inputs[nInputs].time_stamp = currTimeNs; - nInputs++; - } - } - - if (nInputs > 0) { - nOutputs = BSEC_NUMBER_OUTPUTS; - bsec_output_t _outputs[BSEC_NUMBER_OUTPUTS]; - - status = bsec_do_steps(inputs, nInputs, _outputs, &nOutputs); - if (status != BSEC_OK) - return false; - - zeroOutputs(); - - if (nOutputs > 0) { - outputTimestamp = - _outputs[0].time_stamp / 1000000; // Convert from ns to ms - - for (uint8_t i = 0; i < nOutputs; i++) { - switch (_outputs[i].sensor_id) { - case BSEC_OUTPUT_IAQ: - iaqEstimate = _outputs[i].signal; - iaqAccuracy = _outputs[i].accuracy; - break; - case BSEC_OUTPUT_STATIC_IAQ: - staticIaq = _outputs[i].signal; - staticIaqAccuracy = _outputs[i].accuracy; - break; - case BSEC_OUTPUT_CO2_EQUIVALENT: - co2Equivalent = _outputs[i].signal; - co2Accuracy = _outputs[i].accuracy; - break; - case BSEC_OUTPUT_BREATH_VOC_EQUIVALENT: - breathVocEquivalent = _outputs[i].signal; - breathVocAccuracy = _outputs[i].accuracy; - break; - case BSEC_OUTPUT_RAW_TEMPERATURE: - rawTemperature = _outputs[i].signal; - break; - case BSEC_OUTPUT_RAW_PRESSURE: - pressure = _outputs[i].signal; - break; - case BSEC_OUTPUT_RAW_HUMIDITY: - rawHumidity = _outputs[i].signal; - break; - case BSEC_OUTPUT_RAW_GAS: - gasResistance = _outputs[i].signal; - break; - case BSEC_OUTPUT_STABILIZATION_STATUS: - stabStatus = _outputs[i].signal; - break; - case BSEC_OUTPUT_RUN_IN_STATUS: - runInStatus = _outputs[i].signal; - break; - case BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE: - temperature = _outputs[i].signal; - break; - case BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY: - humidity = _outputs[i].signal; - break; - case BSEC_OUTPUT_COMPENSATED_GAS: - compGasValue = _outputs[i].signal; - compGasAccuracy = _outputs[i].accuracy; - break; - case BSEC_OUTPUT_GAS_PERCENTAGE: - gasPercentage = _outputs[i].signal; - gasPercentageAcccuracy = _outputs[i].accuracy; - break; - default: - break; - } - } - return true; - } - } - - return false; -} - -/** - * @brief Set the BME680 sensor's configuration - */ -int8_t Bsec::setBme680Config(bsec_bme_settings_t bme680Settings) { - _bme680.gas_sett.run_gas = bme680Settings.run_gas; - _bme680.tph_sett.os_hum = bme680Settings.humidity_oversampling; - _bme680.tph_sett.os_temp = bme680Settings.temperature_oversampling; - _bme680.tph_sett.os_pres = bme680Settings.pressure_oversampling; - _bme680.gas_sett.heatr_temp = bme680Settings.heater_temperature; - _bme680.gas_sett.heatr_dur = bme680Settings.heating_duration; - uint16_t desired_settings = BME680_OST_SEL | BME680_OSP_SEL | BME680_OSH_SEL | - BME680_FILTER_SEL | BME680_GAS_SENSOR_SEL; - return bme680_set_sensor_settings(desired_settings, &_bme680); -} - -/** - * @brief Function to zero the outputs - */ -void Bsec::zeroOutputs(void) { - temperature = 0.0f; - pressure = 0.0f; - humidity = 0.0f; - gasResistance = 0.0f; - rawTemperature = 0.0f; - rawHumidity = 0.0f; - stabStatus = 0.0f; - runInStatus = 0.0f; - iaqEstimate = 0.0f; - iaqAccuracy = 0; - staticIaq = 0.0f; - staticIaqAccuracy = 0; - co2Equivalent = 0.0f; - co2Accuracy = 0; - breathVocEquivalent = 0.0f; - breathVocAccuracy = 0; - compGasValue = 0.0f; - compGasAccuracy = 0; - gasPercentage = 0.0f; - gasPercentageAcccuracy = 0; -} - -/** - * @brief Function to calculate an int64_t timestamp in milliseconds - */ -int64_t Bsec::getTimeMs(void) { - int64_t timeMs = millis(); - - if (lastTime > timeMs) { // An overflow occured - lastTime = timeMs; - millisOverflowCounter++; - } - - return timeMs + (millisOverflowCounter * 0xFFFFFFFF); -} - -/** - @brief Task that delays for a ms period of time - */ -void Bsec::delay_ms(uint32_t period) { - // Wait for a period amount of ms - // The system may simply idle, sleep or even perform background tasks - delay(period); -} - -/** - @brief Callback function for reading registers over I2C - */ -int8_t Bsec::i2cRead(uint8_t devId, uint8_t regAddr, uint8_t *regData, - uint16_t length) { - uint16_t i; - int8_t rslt = 0; - if (Bsec::wireObj) { - Bsec::wireObj->beginTransmission(devId); - Bsec::wireObj->write(regAddr); - rslt = Bsec::wireObj->endTransmission(); - Bsec::wireObj->requestFrom((int)devId, (int)length); - for (i = 0; (i < length) && Bsec::wireObj->available(); i++) { - regData[i] = Bsec::wireObj->read(); - } - } else { - rslt = -1; - } - return rslt; -} - -/** - * @brief Callback function for writing registers over I2C - */ -int8_t Bsec::i2cWrite(uint8_t devId, uint8_t regAddr, uint8_t *regData, - uint16_t length) { - uint16_t i; - int8_t rslt = 0; - if (Bsec::wireObj) { - Bsec::wireObj->beginTransmission(devId); - Bsec::wireObj->write(regAddr); - for (i = 0; i < length; i++) { - Bsec::wireObj->write(regData[i]); - } - rslt = Bsec::wireObj->endTransmission(); - } else { - rslt = -1; - } - - return rslt; -} - -/** - * @brief Callback function for reading and writing registers over SPI - */ -int8_t Bsec::spiTransfer(uint8_t devId, uint8_t regAddr, uint8_t *regData, - uint16_t length) { - int8_t rslt = 0; - if (Bsec::spiObj) { - Bsec::spiObj->beginTransaction( - SPISettings(4000000, MSBFIRST, SPI_MODE0)); // Can be upto 10MHz - - digitalWrite(devId, LOW); - - Bsec::spiObj->transfer( - regAddr); // Write the register address, ignore the return - for (uint16_t i = 0; i < length; i++) - regData[i] = Bsec::spiObj->transfer(regData[i]); - - digitalWrite(devId, HIGH); - Bsec::spiObj->endTransaction(); - } else { - rslt = -1; - } - - return rslt; - ; -} \ No newline at end of file diff --git a/lib/Bosch-BSEC/src/bsec.h b/lib/Bosch-BSEC/src/bsec.h deleted file mode 100644 index bf2c0a61..00000000 --- a/lib/Bosch-BSEC/src/bsec.h +++ /dev/null @@ -1,230 +0,0 @@ -/** - * Copyright (C) 2017 - 2018 Bosch Sensortec GmbH - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of the copyright holder nor the names of the - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND - * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER - * OR CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - * OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE - * - * The information provided is believed to be accurate and reliable. - * The copyright holder assumes no responsibility - * for the consequences of use - * of such information nor for any infringement of patents or - * other rights of third parties which may result from its use. - * No license is granted by implication or otherwise under any patent or - * patent rights of the copyright holder. - * - * @file bsec.h - * @date 31 Jan 2018 - * @version 1.0 - * - */ - -#ifndef BSEC_CLASS_H -#define BSEC_CLASS_H - -/* Includes */ -#include "Arduino.h" -#include "Wire.h" -#include "SPI.h" -#include "inc/bsec_datatypes.h" -#include "inc/bsec_interface.h" -#include "bme680/bme680.h" - -/* BSEC class definition */ -class Bsec -{ -public: - /* Public variables */ - bsec_version_t version; // Stores the version of the BSEC algorithm - int64_t nextCall; // Stores the time when the algorithm has to be called next in ms - int8_t bme680Status; // Placeholder for the BME680 driver's error codes - bsec_library_return_t status; - float iaqEstimate, rawTemperature, pressure, rawHumidity, gasResistance, stabStatus, runInStatus, temperature, humidity, - staticIaq, co2Equivalent, breathVocEquivalent, compGasValue, gasPercentage; - uint8_t iaqAccuracy, staticIaqAccuracy, co2Accuracy, breathVocAccuracy, compGasAccuracy, gasPercentageAcccuracy; - int64_t outputTimestamp; // Timestamp in ms of the output - static TwoWire *wireObj; - static SPIClass *spiObj; - - /* Public APIs */ - /** - * @brief Constructor - */ - Bsec(); - - /** - * @brief Function to initialize the BSEC library and the BME680 sensor - * @param devId : Device identifier parameter for the read/write interface functions - * @param intf : Physical communication interface - * @param read : Pointer to the read function - * @param write : Pointer to the write function - * @param idleTask : Pointer to the idling task - */ - void begin(uint8_t devId, enum bme680_intf intf, bme680_com_fptr_t read, bme680_com_fptr_t write, bme680_delay_fptr_t idleTask); - - /** - * @brief Function to initialize the BSEC library and the BME680 sensor - * @param i2cAddr : I2C address - * @param i2c : Pointer to the TwoWire object - */ - void begin(uint8_t i2cAddr, TwoWire &i2c); - - /** - * @brief Function to initialize the BSEC library and the BME680 sensor - * @param chipSelect : SPI chip select - * @param spi : Pointer to the SPIClass object - */ - void begin(uint8_t chipSelect, SPIClass &spi); - - /** - * @brief Function that sets the desired sensors and the sample rates - * @param sensorList : The list of output sensors - * @param nSensors : Number of outputs requested - * @param sampleRate : The sample rate of requested sensors - */ - void updateSubscription(bsec_virtual_sensor_t sensorList[], uint8_t nSensors, float sampleRate = BSEC_SAMPLE_RATE_ULP); - - /** - * @brief Callback from the user to trigger reading of data from the BME680, process and store outputs - * @return true if there are new outputs. false otherwise - */ - bool run(void); - - /** - * @brief Function to get the state of the algorithm to save to non-volatile memory - * @param state : Pointer to a memory location that contains the state - */ - void getState(uint8_t *state); - - /** - * @brief Function to set the state of the algorithm from non-volatile memory - * @param state : Pointer to a memory location that contains the state - */ - void setState(uint8_t *state); - - /** - * @brief Function to set the configuration of the algorithm from memory - * @param state : Pointer to a memory location that contains the configuration - */ - void setConfig(const uint8_t *config); - - /** - * @brief Function to set the temperature offset - * @param tempOffset : Temperature offset in degree Celsius - */ - void setTemperatureOffset(float tempOffset) - { - _tempOffset = tempOffset; - } - - - /** - * @brief Function to calculate an int64_t timestamp in milliseconds - */ - int64_t getTimeMs(void); - - /** - * @brief Task that delays for a ms period of time - * @param period : Period of time in ms - */ - static void delay_ms(uint32_t period); - - /** - * @brief Callback function for reading registers over I2C - * @param devId : Library agnostic parameter to identify the device to communicate with - * @param regAddr : Register address - * @param regData : Pointer to the array containing the data to be read - * @param length : Length of the array of data - * @return Zero for success, non-zero otherwise - */ - static int8_t i2cRead(uint8_t devId, uint8_t regAddr, uint8_t *regData, uint16_t length); - - /** - * @brief Callback function for writing registers over I2C - * @param devId : Library agnostic parameter to identify the device to communicate with - * @param regAddr : Register address - * @param regData : Pointer to the array containing the data to be written - * @param length : Length of the array of data - * @return Zero for success, non-zero otherwise - */ - static int8_t i2cWrite(uint8_t devId, uint8_t regAddr, uint8_t *regData, uint16_t length); - - /** - * @brief Callback function for reading and writing registers over SPI - * @param devId : Library agnostic parameter to identify the device to communicate with - * @param regAddr : Register address - * @param regData : Pointer to the array containing the data to be read or written - * @param length : Length of the array of data - * @return Zero for success, non-zero otherwise - */ - static int8_t spiTransfer(uint8_t devId, uint8_t regAddr, uint8_t *regData, uint16_t length); - -private: - /* Private variables */ - struct bme680_dev _bme680; - struct bme680_field_data _data; - float _tempOffset; - // Global variables to help create a millisecond timestamp that doesn't overflow every 51 days. - // If it overflows, it will have a negative value. Something that should never happen. - uint32_t millisOverflowCounter; - uint32_t lastTime; - - /* Private APIs */ - /** - * @brief Get the version of the BSEC library - */ - void getVersion(void); - - /** - * @brief Read data from the BME680 and process it - * @param currTimeNs: Current time in ns - * @param bme680Settings: BME680 sensor's settings - * @return true if there are new outputs. false otherwise - */ - bool readProcessData(int64_t currTimeNs, bsec_bme_settings_t bme680Settings); - - /** - * @brief Set the BME680 sensor's configuration - * @param bme680Settings: Settings to configure the BME680 - * @return BME680 return code. BME680_OK for success, failure otherwise - */ - int8_t setBme680Config(bsec_bme_settings_t bme680Settings); - - /** - * @brief Common code for the begin function - */ - void beginCommon(void); - - /** - * @brief Function to zero the outputs - */ - void zeroOutputs(void); -}; - -#endif diff --git a/lib/Bosch-BSEC/src/inc/bsec_datatypes.h b/lib/Bosch-BSEC/src/inc/bsec_datatypes.h deleted file mode 100644 index adc5a031..00000000 --- a/lib/Bosch-BSEC/src/inc/bsec_datatypes.h +++ /dev/null @@ -1,488 +0,0 @@ -/* - * Copyright (C) 2015, 2016, 2017 Robert Bosch. All Rights Reserved. - * - * Disclaimer - * - * Common: - * Bosch Sensortec products are developed for the consumer goods industry. They may only be used - * within the parameters of the respective valid product data sheet. Bosch Sensortec products are - * provided with the express understanding that there is no warranty of fitness for a particular purpose. - * They are not fit for use in life-sustaining, safety or security sensitive systems or any system or device - * that may lead to bodily harm or property damage if the system or device malfunctions. In addition, - * Bosch Sensortec products are not fit for use in products which interact with motor vehicle systems. - * The resale and/or use of products are at the purchasers own risk and his own responsibility. The - * examination of fitness for the intended use is the sole responsibility of the Purchaser. - * - * The purchaser shall indemnify Bosch Sensortec from all third party claims, including any claims for - * incidental, or consequential damages, arising from any product use not covered by the parameters of - * the respective valid product data sheet or not approved by Bosch Sensortec and reimburse Bosch - * Sensortec for all costs in connection with such claims. - * - * The purchaser must monitor the market for the purchased products, particularly with regard to - * product safety and inform Bosch Sensortec without delay of all security relevant incidents. - * - * Engineering Samples are marked with an asterisk (*) or (e). Samples may vary from the valid - * technical specifications of the product series. They are therefore not intended or fit for resale to third - * parties or for use in end products. Their sole purpose is internal client testing. The testing of an - * engineering sample may in no way replace the testing of a product series. Bosch Sensortec - * assumes no liability for the use of engineering samples. By accepting the engineering samples, the - * Purchaser agrees to indemnify Bosch Sensortec from all claims arising from the use of engineering - * samples. - * - * Special: - * This software module (hereinafter called "Software") and any information on application-sheets - * (hereinafter called "Information") is provided free of charge for the sole purpose to support your - * application work. The Software and Information is subject to the following terms and conditions: - * - * The Software is specifically designed for the exclusive use for Bosch Sensortec products by - * personnel who have special experience and training. Do not use this Software if you do not have the - * proper experience or training. - * - * This Software package is provided `` as is `` and without any expressed or implied warranties, - * including without limitation, the implied warranties of merchantability and fitness for a particular - * purpose. - * - * Bosch Sensortec and their representatives and agents deny any liability for the functional impairment - * of this Software in terms of fitness, performance and safety. Bosch Sensortec and their - * representatives and agents shall not be liable for any direct or indirect damages or injury, except as - * otherwise stipulated in mandatory applicable law. - * - * The Information provided is believed to be accurate and reliable. Bosch Sensortec assumes no - * responsibility for the consequences of use of such Information nor for any infringement of patents or - * other rights of third parties which may result from its use. No license is granted by implication or - * otherwise under any patent or patent rights of Bosch. Specifications mentioned in the Information are - * subject to change without notice. - * - * It is not allowed to deliver the source code of the Software to any third party without permission of - * Bosch Sensortec. - * - */ - - /** - * @file bsec_datatypes.h - * - * @brief - * Contains the data types used by BSEC - * - */ - -#ifndef __BSEC_DATATYPES_H__ -#define __BSEC_DATATYPES_H__ - -#ifdef __cplusplus -extern "C" -{ -#endif - -/*! - * @addtogroup bsec_interface BSEC C Interface - * @{*/ - -#ifdef __KERNEL__ -#include -#endif -#include -#include - -#define BSEC_MAX_WORKBUFFER_SIZE (2048) /*!< Maximum size (in bytes) of the work buffer */ -#define BSEC_MAX_PHYSICAL_SENSOR (8) /*!< Number of physical sensors that need allocated space before calling bsec_update_subscription() */ -#define BSEC_MAX_PROPERTY_BLOB_SIZE (454) /*!< Maximum size (in bytes) of the data blobs returned by bsec_get_configuration() */ -#define BSEC_MAX_STATE_BLOB_SIZE (139) /*!< Maximum size (in bytes) of the data blobs returned by bsec_get_state()*/ -#define BSEC_SAMPLE_RATE_DISABLED (65535.0f) /*!< Sample rate of a disabled sensor */ -#define BSEC_SAMPLE_RATE_ULP (0.0033333f) /*!< Sample rate in case of Ultra Low Power Mode */ -#define BSEC_SAMPLE_RATE_LP (0.33333f) /*!< Sample rate in case of Low Power Mode */ -#define BSEC_SAMPLE_RATE_ULP_MEASUREMENT_ON_DEMAND (0.0f) /*!< Input value used to trigger an extra measurment (ULP plus) */ - -#define BSEC_PROCESS_PRESSURE (1 << (BSEC_INPUT_PRESSURE-1)) /*!< process_data bitfield constant for pressure @sa bsec_bme_settings_t */ -#define BSEC_PROCESS_TEMPERATURE (1 << (BSEC_INPUT_TEMPERATURE-1)) /*!< process_data bitfield constant for temperature @sa bsec_bme_settings_t */ -#define BSEC_PROCESS_HUMIDITY (1 << (BSEC_INPUT_HUMIDITY-1)) /*!< process_data bitfield constant for humidity @sa bsec_bme_settings_t */ -#define BSEC_PROCESS_GAS (1 << (BSEC_INPUT_GASRESISTOR-1)) /*!< process_data bitfield constant for gas sensor @sa bsec_bme_settings_t */ -#define BSEC_NUMBER_OUTPUTS (14) /*!< Number of outputs, depending on solution */ -#define BSEC_OUTPUT_INCLUDED (1210863) /*!< bitfield that indicates which outputs are included in the solution */ - -/*! - * @brief Enumeration for input (physical) sensors. - * - * Used to populate bsec_input_t::sensor_id. It is also used in bsec_sensor_configuration_t::sensor_id structs - * returned in the parameter required_sensor_settings of bsec_update_subscription(). - * - * @sa bsec_sensor_configuration_t @sa bsec_input_t - */ -typedef enum -{ - /** - * @brief Pressure sensor output of BMExxx [Pa] - */ - BSEC_INPUT_PRESSURE = 1, - - /** - * @brief Humidity sensor output of BMExxx [%] - * - * @note Relative humidity strongly depends on the temperature (it is measured at). It may require a conversion to - * the temperature outside of the device. - * - * @sa bsec_virtual_sensor_t - */ - BSEC_INPUT_HUMIDITY = 2, - - /** - * @brief Temperature sensor output of BMExxx [degrees Celsius] - * - * @note The BME680 is factory trimmed, thus the temperature sensor of the BME680 is very accurate. - * The temperature value is a very local measurement value and can be influenced by external heat sources. - * - * @sa bsec_virtual_sensor_t - */ - BSEC_INPUT_TEMPERATURE = 3, - - /** - * @brief Gas sensor resistance output of BMExxx [Ohm] - * - * The resistance value changes due to varying VOC concentrations (the higher the concentration of reducing VOCs, - * the lower the resistance and vice versa). - */ - BSEC_INPUT_GASRESISTOR = 4, /*!< */ - - /** - * @brief Additional input for device heat compensation - * - * IAQ solution: The value is subtracted from ::BSEC_INPUT_TEMPERATURE to compute - * ::BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE. - * - * ALL solution: Generic heat source 1 - * - * @sa bsec_virtual_sensor_t - */ - BSEC_INPUT_HEATSOURCE = 14, - - /** - * @brief Additional input for device heat compensation 8 - * - * Generic heat source 8 - */ - - - /** - * @brief Additional input that disables baseline tracker - * - * 0 - Normal - * 1 - Event 1 - * 2 - Event 2 - */ - BSEC_INPUT_DISABLE_BASELINE_TRACKER = 23, - -} bsec_physical_sensor_t; - -/*! - * @brief Enumeration for output (virtual) sensors - * - * Used to populate bsec_output_t::sensor_id. It is also used in bsec_sensor_configuration_t::sensor_id structs - * passed in the parameter requested_virtual_sensors of bsec_update_subscription(). - * - * @sa bsec_sensor_configuration_t @sa bsec_output_t - */ -typedef enum -{ - /** - * @brief Indoor-air-quality estimate [0-500] - * - * Indoor-air-quality (IAQ) gives an indication of the relative change in ambient TVOCs detected by BME680. - * - * @note The IAQ scale ranges from 0 (clean air) to 500 (heavily polluted air). During operation, algorithms - * automatically calibrate and adapt themselves to the typical environments where the sensor is operated - * (e.g., home, workplace, inside a car, etc.).This automatic background calibration ensures that users experience - * consistent IAQ performance. The calibration process considers the recent measurement history (typ. up to four - * days) to ensure that IAQ=25 corresponds to typical good air and IAQ=250 indicates typical polluted air. - */ - BSEC_OUTPUT_IAQ = 1, - BSEC_OUTPUT_STATIC_IAQ = 2, /*!< Unscaled indoor-air-quality estimate */ - BSEC_OUTPUT_CO2_EQUIVALENT = 3, /*!< co2 equivalent estimate [ppm] */ - BSEC_OUTPUT_BREATH_VOC_EQUIVALENT = 4, /*!< breath VOC concentration estimate [ppm] */ - - /** - * @brief Temperature sensor signal [degrees Celsius] - * - * Temperature directly measured by BME680 in degree Celsius. - * - * @note This value is cross-influenced by the sensor heating and device specific heating. - */ - BSEC_OUTPUT_RAW_TEMPERATURE = 6, - - /** - * @brief Pressure sensor signal [Pa] - * - * Pressure directly measured by the BME680 in Pa. - */ - BSEC_OUTPUT_RAW_PRESSURE = 7, - - /** - * @brief Relative humidity sensor signal [%] - * - * Relative humidity directly measured by the BME680 in %. - * - * @note This value is cross-influenced by the sensor heating and device specific heating. - */ - BSEC_OUTPUT_RAW_HUMIDITY = 8, - - /** - * @brief Gas sensor signal [Ohm] - * - * Gas resistance measured directly by the BME680 in Ohm.The resistance value changes due to varying VOC - * concentrations (the higher the concentration of reducing VOCs, the lower the resistance and vice versa). - */ - BSEC_OUTPUT_RAW_GAS = 9, - - /** - * @brief Gas sensor stabilization status [boolean] - * - * Indicates initial stabilization status of the gas sensor element: stabilization is ongoing (0) or stabilization - * is finished (1). - */ - BSEC_OUTPUT_STABILIZATION_STATUS = 12, - - /** - * @brief Gas sensor run-in status [boolean] - * - * Indicates power-on stabilization status of the gas sensor element: stabilization is ongoing (0) or stabilization - * is finished (1). - */ - BSEC_OUTPUT_RUN_IN_STATUS = 13, - - /** - * @brief Sensor heat compensated temperature [degrees Celsius] - * - * Temperature measured by BME680 which is compensated for the influence of sensor (heater) in degree Celsius. - * The self heating introduced by the heater is depending on the sensor operation mode and the sensor supply voltage. - * - * - * @note IAQ solution: In addition, the temperature output can be compensated by an user defined value - * (::BSEC_INPUT_HEATSOURCE in degrees Celsius), which represents the device specific self-heating. - * - * Thus, the value is calculated as follows: - * * IAQ solution: ```BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE = ::BSEC_INPUT_TEMPERATURE - function(sensor operation mode, sensor supply voltage) - ::BSEC_INPUT_HEATSOURCE``` - * * other solutions: ```::BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE = ::BSEC_INPUT_TEMPERATURE - function(sensor operation mode, sensor supply voltage)``` - * - * The self-heating in operation mode BSEC_SAMPLE_RATE_ULP is negligible. - * The self-heating in operation mode BSEC_SAMPLE_RATE_LP is supported for 1.8V by default (no config file required). If the BME680 sensor supply voltage is 3.3V, the IoT_LP_3_3V.config shall be used. - */ - BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE = 14, - - /** - * @brief Sensor heat compensated humidity [%] - * - * Relative measured by BME680 which is compensated for the influence of sensor (heater) in %. - * - * It converts the ::BSEC_INPUT_HUMIDITY from temperature ::BSEC_INPUT_TEMPERATURE to temperature - * ::BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE. - * - * @note IAQ solution: If ::BSEC_INPUT_HEATSOURCE is used for device specific temperature compensation, it will be - * effective for ::BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY too. - */ - BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY = 15, - - BSEC_OUTPUT_COMPENSATED_GAS = 18, /*!< Reserved internal debug output */ - BSEC_OUTPUT_GAS_PERCENTAGE = 21 /*!< percentage of min and max filtered gas value [%] */ -} bsec_virtual_sensor_t; - -/*! - * @brief Enumeration for function return codes - */ -typedef enum -{ - BSEC_OK = 0, /*!< Function execution successful */ - BSEC_E_DOSTEPS_INVALIDINPUT = -1, /*!< Input (physical) sensor id passed to bsec_do_steps() is not in the valid range or not valid for requested virtual sensor */ - BSEC_E_DOSTEPS_VALUELIMITS = -2, /*!< Value of input (physical) sensor signal passed to bsec_do_steps() is not in the valid range */ - BSEC_E_DOSTEPS_DUPLICATEINPUT = -6, /*!< Duplicate input (physical) sensor ids passed as input to bsec_do_steps() */ - BSEC_I_DOSTEPS_NOOUTPUTSRETURNABLE = 2, /*!< No memory allocated to hold return values from bsec_do_steps(), i.e., n_outputs == 0 */ - BSEC_W_DOSTEPS_EXCESSOUTPUTS = 3, /*!< Not enough memory allocated to hold return values from bsec_do_steps(), i.e., n_outputs < maximum number of requested output (virtual) sensors */ - BSEC_W_DOSTEPS_TSINTRADIFFOUTOFRANGE = 4, /*!< Duplicate timestamps passed to bsec_do_steps() */ - BSEC_E_SU_WRONGDATARATE = -10, /*!< The sample_rate of the requested output (virtual) sensor passed to bsec_update_subscription() is zero */ - BSEC_E_SU_SAMPLERATELIMITS = -12, /*!< The sample_rate of the requested output (virtual) sensor passed to bsec_update_subscription() does not match with the sampling rate allowed for that sensor */ - BSEC_E_SU_DUPLICATEGATE = -13, /*!< Duplicate output (virtual) sensor ids requested through bsec_update_subscription() */ - BSEC_E_SU_INVALIDSAMPLERATE = -14, /*!< The sample_rate of the requested output (virtual) sensor passed to bsec_update_subscription() does not fall within the global minimum and maximum sampling rates */ - BSEC_E_SU_GATECOUNTEXCEEDSARRAY = -15, /*!< Not enough memory allocated to hold returned input (physical) sensor data from bsec_update_subscription(), i.e., n_required_sensor_settings < #BSEC_MAX_PHYSICAL_SENSOR */ - BSEC_E_SU_SAMPLINTVLINTEGERMULT = -16, /*!< The sample_rate of the requested output (virtual) sensor passed to bsec_update_subscription() is not correct */ - BSEC_E_SU_MULTGASSAMPLINTVL = -17, /*!< The sample_rate of the requested output (virtual), which requires the gas sensor, is not equal to the sample_rate that the gas sensor is being operated */ - BSEC_E_SU_HIGHHEATERONDURATION = -18, /*!< The duration of one measurement is longer than the requested sampling interval */ - BSEC_W_SU_UNKNOWNOUTPUTGATE = 10, /*!< Output (virtual) sensor id passed to bsec_update_subscription() is not in the valid range; e.g., n_requested_virtual_sensors > actual number of output (virtual) sensors requested */ - BSEC_W_SU_MODINNOULP = 11, /*!< ULP plus can not be requested in non-ulp mode */ /*MOD_ONLY*/ - BSEC_I_SU_SUBSCRIBEDOUTPUTGATES = 12, /*!< No output (virtual) sensor data were requested via bsec_update_subscription() */ - BSEC_E_PARSE_SECTIONEXCEEDSWORKBUFFER = -32, /*!< n_work_buffer_size passed to bsec_set_[configuration/state]() not sufficient */ - BSEC_E_CONFIG_FAIL = -33, /*!< Configuration failed */ - BSEC_E_CONFIG_VERSIONMISMATCH = -34, /*!< Version encoded in serialized_[settings/state] passed to bsec_set_[configuration/state]() does not match with current version */ - BSEC_E_CONFIG_FEATUREMISMATCH = -35, /*!< Enabled features encoded in serialized_[settings/state] passed to bsec_set_[configuration/state]() does not match with current library implementation */ - BSEC_E_CONFIG_CRCMISMATCH = -36, /*!< serialized_[settings/state] passed to bsec_set_[configuration/state]() is corrupted */ - BSEC_E_CONFIG_EMPTY = -37, /*!< n_serialized_[settings/state] passed to bsec_set_[configuration/state]() is to short to be valid */ - BSEC_E_CONFIG_INSUFFICIENTWORKBUFFER = -38, /*!< Provided work_buffer is not large enough to hold the desired string */ - BSEC_E_CONFIG_INVALIDSTRINGSIZE = -40, /*!< String size encoded in configuration/state strings passed to bsec_set_[configuration/state]() does not match with the actual string size n_serialized_[settings/state] passed to these functions */ - BSEC_E_CONFIG_INSUFFICIENTBUFFER = -41, /*!< String buffer insufficient to hold serialized data from BSEC library */ - BSEC_E_SET_INVALIDCHANNELIDENTIFIER = -100, /*!< Internal error code, size of work buffer in setConfig must be set to BSEC_MAX_WORKBUFFER_SIZE */ - BSEC_E_SET_INVALIDLENGTH = -104, /*!< Internal error code */ - BSEC_W_SC_CALL_TIMING_VIOLATION = 100, /*!< Difference between actual and defined sampling intervals of bsec_sensor_control() greater than allowed */ - BSEC_W_SC_MODEXCEEDULPTIMELIMIT = 101, /*!< ULP plus is not allowed because an ULP measurement just took or will take place */ /*MOD_ONLY*/ - BSEC_W_SC_MODINSUFFICIENTWAITTIME = 102 /*!< ULP plus is not allowed because not sufficient time passed since last ULP plus */ /*MOD_ONLY*/ -} bsec_library_return_t; - -/*! - * @brief Structure containing the version information - * - * Please note that configuration and state strings are coded to a specific version and will not be accepted by other - * versions of BSEC. - * - */ -typedef struct -{ - uint8_t major; /**< @brief Major version */ - uint8_t minor; /**< @brief Minor version */ - uint8_t major_bugfix; /**< @brief Major bug fix version */ - uint8_t minor_bugfix; /**< @brief Minor bug fix version */ -} bsec_version_t; - -/*! - * @brief Structure describing an input sample to the library - * - * Each input sample is provided to BSEC as an element in a struct array of this type. Timestamps must be provided - * in nanosecond resolution. Moreover, duplicate timestamps for subsequent samples are not allowed and will results in - * an error code being returned from bsec_do_steps(). - * - * The meaning unit of the signal field are determined by the bsec_input_t::sensor_id field content. Possible - * bsec_input_t::sensor_id values and and their meaning are described in ::bsec_physical_sensor_t. - * - * @sa bsec_physical_sensor_t - * - */ -typedef struct -{ - /** - * @brief Time stamp in nanosecond resolution [ns] - * - * Timestamps must be provided as non-repeating and increasing values. They can have their 0-points at system start or - * at a defined wall-clock time (e.g., 01-Jan-1970 00:00:00) - */ - int64_t time_stamp; - float signal; /*!< @brief Signal sample in the unit defined for the respective sensor_id @sa bsec_physical_sensor_t */ - uint8_t signal_dimensions; /*!< @brief Signal dimensions (reserved for future use, shall be set to 1) */ - uint8_t sensor_id; /*!< @brief Identifier of physical sensor @sa bsec_physical_sensor_t */ -} bsec_input_t; - -/*! - * @brief Structure describing an output sample of the library - * - * Each output sample is returned from BSEC by populating the element of a struct array of this type. The contents of - * the signal field is defined by the supplied bsec_output_t::sensor_id. Possible output - * bsec_output_t::sensor_id values are defined in ::bsec_virtual_sensor_t. - * - * @sa bsec_virtual_sensor_t - */ -typedef struct -{ - int64_t time_stamp; /*!< @brief Time stamp in nanosecond resolution as provided as input [ns] */ - float signal; /*!< @brief Signal sample in the unit defined for the respective bsec_output_t::sensor_id @sa bsec_virtual_sensor_t */ - uint8_t signal_dimensions; /*!< @brief Signal dimensions (reserved for future use, shall be set to 1) */ - uint8_t sensor_id; /*!< @brief Identifier of virtual sensor @sa bsec_virtual_sensor_t */ - - /** - * @brief Accuracy status 0-3 - * - * Some virtual sensors provide a value in the accuracy field. If this is the case, the meaning of the field is as - * follows: - * - * | Name | Value | Accuracy description | - * |----------------------------|-------|-------------------------------------------------------------| - * | UNRELIABLE | 0 | Sensor data is unreliable, the sensor must be calibrated | - * | LOW_ACCURACY | 1 | Low accuracy, sensor should be calibrated | - * | MEDIUM_ACCURACY | 2 | Medium accuracy, sensor calibration may improve performance | - * | HIGH_ACCURACY | 3 | High accuracy | - * - * For example: - * - * - Ambient temperature accuracy is derived from change in the temperature in 1 minute. - * - * | Virtual sensor | Value | Accuracy description | - * |--------------------- |-------|------------------------------------------------------------------------------| - * | Ambient temperature | 0 | The difference in ambient temperature is greater than 4 degree in one minute | - * | | 1 | The difference in ambient temperature is less than 4 degree in one minute | - * | | 2 | The difference in ambient temperature is less than 3 degree in one minute | - * | | 3 | The difference in ambient temperature is less than 2 degree in one minute | - * - * - IAQ accuracy indicator will notify the user when she/he should initiate a calibration process. Calibration is - * performed automatically in the background if the sensor is exposed to clean and polluted air for approximately - * 30 minutes each. - * - * | Virtual sensor | Value | Accuracy description | - * |----------------------------|-------|-----------------------------------------------------------------| - * | IAQ | 0 | The sensor is not yet stabilized or in a run-in status | - * | | 1 | Calibration required | - * | | 2 | Calibration on-going | - * | | 3 | Calibration is done, now IAQ estimate achieves best performance | - */ - uint8_t accuracy; -} bsec_output_t; - -/*! - * @brief Structure describing sample rate of physical/virtual sensors - * - * This structure is used together with bsec_update_subscription() to enable BSEC outputs and to retrieve information - * about the sample rates used for BSEC inputs. - */ -typedef struct -{ - /** - * @brief Sample rate of the virtual or physical sensor in Hertz [Hz] - * - * Only supported sample rates are allowed. - */ - float sample_rate; - - /** - * @brief Identifier of the virtual or physical sensor - * - * The meaning of this field changes depending on whether the structs are as the requested_virtual_sensors argument - * to bsec_update_subscription() or as the required_sensor_settings argument. - * - * | bsec_update_subscription() argument | sensor_id field interpretation | - * |-------------------------------------|--------------------------------| - * | requested_virtual_sensors | ::bsec_virtual_sensor_t | - * | required_sensor_settings | ::bsec_physical_sensor_t | - * - * @sa bsec_physical_sensor_t - * @sa bsec_virtual_sensor_t - */ - uint8_t sensor_id; -} bsec_sensor_configuration_t; - -/*! - * @brief Structure returned by bsec_sensor_control() to configure BMExxx sensor - * - * This structure contains settings that must be used to configure the BMExxx to perform a forced-mode measurement. - * A measurement should only be executed if bsec_bme_settings_t::trigger_measurement is 1. If so, the oversampling - * settings for temperature, humidity, and pressure should be set to the provided settings provided in - * bsec_bme_settings_t::temperature_oversampling, bsec_bme_settings_t::humidity_oversampling, and - * bsec_bme_settings_t::pressure_oversampling, respectively. - * - * In case of bsec_bme_settings_t::run_gas = 1, the gas sensor must be enabled with the provided - * bsec_bme_settings_t::heater_temperature and bsec_bme_settings_t::heating_duration settings. - */ -typedef struct -{ - int64_t next_call; /*!< @brief Time stamp of the next call of the sensor_control*/ - uint32_t process_data; /*!< @brief Bit field describing which data is to be passed to bsec_do_steps() @sa BSEC_PROCESS_* */ - uint16_t heater_temperature; /*!< @brief Heating temperature [degrees Celsius] */ - uint16_t heating_duration; /*!< @brief Heating duration [ms] */ - uint8_t run_gas; /*!< @brief Enable gas measurements [0/1] */ - uint8_t pressure_oversampling; /*!< @brief Pressure oversampling settings [0-5] */ - uint8_t temperature_oversampling; /*!< @brief Temperature oversampling settings [0-5] */ - uint8_t humidity_oversampling; /*!< @brief Humidity oversampling settings [0-5] */ - uint8_t trigger_measurement; /*!< @brief Trigger a forced measurement with these settings now [0/1] */ -} bsec_bme_settings_t; - -/* internal defines and backward compatibility */ -#define BSEC_STRUCT_NAME Bsec /*!< Internal struct name */ - -/*@}*/ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/lib/Bosch-BSEC/src/inc/bsec_interface.h b/lib/Bosch-BSEC/src/inc/bsec_interface.h deleted file mode 100644 index ef68eb15..00000000 --- a/lib/Bosch-BSEC/src/inc/bsec_interface.h +++ /dev/null @@ -1,564 +0,0 @@ -/* - * Copyright (C) 2015, 2016, 2017 Robert Bosch. All Rights Reserved. - * - * Disclaimer - * - * Common: - * Bosch Sensortec products are developed for the consumer goods industry. They may only be used - * within the parameters of the respective valid product data sheet. Bosch Sensortec products are - * provided with the express understanding that there is no warranty of fitness for a particular purpose. - * They are not fit for use in life-sustaining, safety or security sensitive systems or any system or device - * that may lead to bodily harm or property damage if the system or device malfunctions. In addition, - * Bosch Sensortec products are not fit for use in products which interact with motor vehicle systems. - * The resale and/or use of products are at the purchasers own risk and his own responsibility. The - * examination of fitness for the intended use is the sole responsibility of the Purchaser. - * - * The purchaser shall indemnify Bosch Sensortec from all third party claims, including any claims for - * incidental, or consequential damages, arising from any product use not covered by the parameters of - * the respective valid product data sheet or not approved by Bosch Sensortec and reimburse Bosch - * Sensortec for all costs in connection with such claims. - * - * The purchaser must monitor the market for the purchased products, particularly with regard to - * product safety and inform Bosch Sensortec without delay of all security relevant incidents. - * - * Engineering Samples are marked with an asterisk (*) or (e). Samples may vary from the valid - * technical specifications of the product series. They are therefore not intended or fit for resale to third - * parties or for use in end products. Their sole purpose is internal client testing. The testing of an - * engineering sample may in no way replace the testing of a product series. Bosch Sensortec - * assumes no liability for the use of engineering samples. By accepting the engineering samples, the - * Purchaser agrees to indemnify Bosch Sensortec from all claims arising from the use of engineering - * samples. - * - * Special: - * This software module (hereinafter called "Software") and any information on application-sheets - * (hereinafter called "Information") is provided free of charge for the sole purpose to support your - * application work. The Software and Information is subject to the following terms and conditions: - * - * The Software is specifically designed for the exclusive use for Bosch Sensortec products by - * personnel who have special experience and training. Do not use this Software if you do not have the - * proper experience or training. - * - * This Software package is provided `` as is `` and without any expressed or implied warranties, - * including without limitation, the implied warranties of merchantability and fitness for a particular - * purpose. - * - * Bosch Sensortec and their representatives and agents deny any liability for the functional impairment - * of this Software in terms of fitness, performance and safety. Bosch Sensortec and their - * representatives and agents shall not be liable for any direct or indirect damages or injury, except as - * otherwise stipulated in mandatory applicable law. - * - * The Information provided is believed to be accurate and reliable. Bosch Sensortec assumes no - * responsibility for the consequences of use of such Information nor for any infringement of patents or - * other rights of third parties which may result from its use. No license is granted by implication or - * otherwise under any patent or patent rights of Bosch. Specifications mentioned in the Information are - * subject to change without notice. - * - * It is not allowed to deliver the source code of the Software to any third party without permission of - * Bosch Sensortec. - * - */ - /*! - * - * @file bsec_interface.h - * - * @brief - * Contains the API for BSEC - * - */ - - -#ifndef __BSEC_INTERFACE_H__ -#define __BSEC_INTERFACE_H__ - -#include "bsec_datatypes.h" - -#ifdef __cplusplus - extern "C" { -#endif - - - /*! @addtogroup bsec_interface BSEC C Interface - * @brief Interfaces of BSEC signal processing library - * - * ### Interface usage - * - * The following provides a short overview on the typical operation sequence for BSEC. - * - * - Initialization of the library - * - * | Steps | Function | - * |---------------------------------------------------------------------|--------------------------| - * | Initialization of library | bsec_init() | - * | Update configuration settings (optional) | bsec_set_configuration() | - * | Restore the state of the library (optional) | bsec_set_state() | - * - * - * - The following function is called to enable output signals and define their sampling rate / operation mode. - * - * | Steps | Function | - * |---------------------------------------------|----------------------------| - * | Enable library outputs with specified mode | bsec_update_subscription() | - * - * - * - This table describes the main processing loop. - * - * | Steps | Function | - * |-------------------------------------------|----------------------------------| - * | Retrieve sensor settings to be used | bsec_sensor_control() | - * | Configure sensor and trigger measurement | See BME680 API and example codes | - * | Read results from sensor | See BME680 API and example codes | - * | Perform signal processing | bsec_do_steps() | - * - * - * - Before shutting down the system, the current state of BSEC can be retrieved and can then be used during - * re-initialization to continue processing. - * - * | Steps | Function | - * |----------------------------------------|-------------------| - * | To retrieve the current library state | bsec_get_state() | - * - * - * - * ### Configuration and state - * - * Values of variables belonging to a BSEC instance are divided into two groups: - * - Values **not updated by processing** of signals belong to the **configuration group**. If available, BSEC can be - * configured before use with a customer specific configuration string. - * - Values **updated during processing** are member of the **state group**. Saving and restoring of the state of BSEC - * is necessary to maintain previously estimated sensor models and baseline information which is important for best - * performance of the gas sensor outputs. - * - * @note BSEC library consists of adaptive algorithms which models the gas sensor which improves its performance over - * the time. These will be lost if library is initialized due to system reset. In order to avoid this situation - * library state shall be stored in non volatile memory so that it can be loaded after system reset. - * - * - * @{ - */ - - -/*! - * @brief Return the version information of BSEC library - * - * @param [out] bsec_version_p pointer to struct which is to be populated with the version information - * - * @return Zero if successful, otherwise an error code - * - * See also: bsec_version_t - * - \code{.c} - // Example // - bsec_version_t version; - bsec_get_version(&version); - printf("BSEC version: %d.%d.%d.%d",version.major, version.minor, version.major_bugfix, version.minor_bugfix); - - \endcode -*/ - -bsec_library_return_t bsec_get_version(bsec_version_t * bsec_version_p); - - -/*! - * @brief Initialize the library - * - * Initialization and reset of BSEC is performed by calling bsec_init(). Calling this function sets up the relation - * among all internal modules, initializes run-time dependent library states and resets the configuration and state - * of all BSEC signal processing modules to defaults. - * - * Before any further use, the library must be initialized. This ensure that all memory and states are in defined - * conditions prior to processing any data. - * - * @return Zero if successful, otherwise an error code - * - \code{.c} - - // Initialize BSEC library before further use - bsec_init(); - - \endcode -*/ - -bsec_library_return_t bsec_init(void); - -/*! - * @brief Subscribe to library virtual sensors outputs - * - * Use bsec_update_subscription() to instruct BSEC which of the processed output signals are requested at which sample rates. - * See ::bsec_virtual_sensor_t for available library outputs. - * - * Based on the requested virtual sensors outputs, BSEC will provide information about the required physical sensor input signals - * (see ::bsec_physical_sensor_t) with corresponding sample rates. This information is purely informational as bsec_sensor_control() - * will ensure the sensor is operated in the required manner. To disable a virtual sensor, set the sample rate to BSEC_SAMPLE_RATE_DISABLED. - * - * The subscription update using bsec_update_subscription() is apart from the signal processing one of the the most - * important functions. It allows to enable the desired library outputs. The function determines which physical input - * sensor signals are required at which sample rate to produce the virtual output sensor signals requested by the user. - * When this function returns with success, the requested outputs are called subscribed. A very important feature is the - * retaining of already subscribed outputs. Further outputs can be requested or disabled both individually and - * group-wise in addition to already subscribed outputs without changing them unless a change of already subscribed - * outputs is requested. - * - * @note The state of the library concerning the subscribed outputs cannot be retained among reboots. - * - * The interface of bsec_update_subscription() requires the usage of arrays of sensor configuration structures. - * Such a structure has the fields sensor identifier and sample rate. These fields have the properties: - * - Output signals of virtual sensors must be requested using unique identifiers (Member of ::bsec_virtual_sensor_t) - * - Different sets of identifiers are available for inputs of physical sensors and outputs of virtual sensors - * - Identifiers are unique values defined by the library, not from external - * - Sample rates must be provided as value of - * - An allowed sample rate for continuously sampled signals - * - 65535.0f (BSEC_SAMPLE_RATE_DISABLED) to turn off outputs and identify disabled inputs - * - * @note The same sensor identifiers are also used within the functions bsec_do_steps(). - * - * The usage principles of bsec_update_subscription() are: - * - Differential updates (i.e., only asking for outputs that the user would like to change) is supported. - * - Invalid requests of outputs are ignored. Also if one of the requested outputs is unavailable, all the requests - * are ignored. At the same time, a warning is returned. - * - To disable BSEC, all outputs shall be turned off. Only enabled (subscribed) outputs have to be disabled while - * already disabled outputs do not have to be disabled explicitly. - * - * @param[in] requested_virtual_sensors Pointer to array of requested virtual sensor (output) configurations for the library - * @param[in] n_requested_virtual_sensors Number of virtual sensor structs pointed by requested_virtual_sensors - * @param[out] required_sensor_settings Pointer to array of required physical sensor configurations for the library - * @param[in,out] n_required_sensor_settings [in] Size of allocated required_sensor_settings array, [out] number of sensor configurations returned - * - * @return Zero when successful, otherwise an error code - * - * @sa bsec_sensor_configuration_t - * @sa bsec_physical_sensor_t - * @sa bsec_virtual_sensor_t - * - \code{.c} - // Example // - - // Change 3 virtual sensors (switch IAQ and raw temperature -> on / pressure -> off) - bsec_sensor_configuration_t requested_virtual_sensors[3]; - uint8_t n_requested_virtual_sensors = 3; - - requested_virtual_sensors[0].sensor_id = BSEC_OUTPUT_IAQ; - requested_virtual_sensors[0].sample_rate = BSEC_SAMPLE_RATE_ULP; - requested_virtual_sensors[1].sensor_id = BSEC_OUTPUT_RAW_TEMPERATURE; - requested_virtual_sensors[1].sample_rate = BSEC_SAMPLE_RATE_ULP; - requested_virtual_sensors[2].sensor_id = BSEC_OUTPUT_RAW_PRESSURE; - requested_virtual_sensors[2].sample_rate = BSEC_SAMPLE_RATE_DISABLED; - - // Allocate a struct for the returned physical sensor settings - bsec_sensor_configuration_t required_sensor_settings[BSEC_MAX_PHYSICAL_SENSOR]; - uint8_t n_required_sensor_settings = BSEC_MAX_PHYSICAL_SENSOR; - - // Call bsec_update_subscription() to enable/disable the requested virtual sensors - bsec_update_subscription(requested_virtual_sensors, n_requested_virtual_sensors, required_sensor_settings, &n_required_sensor_settings); - \endcode - * - */ -bsec_library_return_t bsec_update_subscription(const bsec_sensor_configuration_t * const requested_virtual_sensors, - const uint8_t n_requested_virtual_sensors, bsec_sensor_configuration_t * required_sensor_settings, - uint8_t * n_required_sensor_settings); - - -/*! - * @brief Main signal processing function of BSEC - * - * - * Processing of the input signals and returning of output samples is performed by bsec_do_steps(). - * - The samples of all library inputs must be passed with unique identifiers representing the input signals from - * physical sensors where the order of these inputs can be chosen arbitrary. However, all input have to be provided - * within the same time period as they are read. A sequential provision to the library might result in undefined - * behavior. - * - The samples of all library outputs are returned with unique identifiers corresponding to the output signals of - * virtual sensors where the order of the returned outputs may be arbitrary. - * - The samples of all input as well as output signals of physical as well as virtual sensors use the same - * representation in memory with the following fields: - * - Sensor identifier: - * - For inputs: required to identify the input signal from a physical sensor - * - For output: overwritten by bsec_do_steps() to identify the returned signal from a virtual sensor - * - Time stamp of the sample - * - * Calling bsec_do_steps() requires the samples of the input signals to be provided along with their time stamp when - * they are recorded and only when they are acquired. Repetition of samples with the same time stamp are ignored and - * result in a warning. Repetition of values of samples which are not acquired anew by a sensor result in deviations - * of the computed output signals. Concerning the returned output samples, an important feature is, that a value is - * returned for an output only when a new occurrence has been computed. A sample of an output signal is returned only - * once. - * - * - * @param[in] inputs Array of input data samples. Each array element represents a sample of a different physical sensor. - * @param[in] n_inputs Number of passed input data structs. - * @param[out] outputs Array of output data samples. Each array element represents a sample of a different virtual sensor. - * @param[in,out] n_outputs [in] Number of allocated output structs, [out] number of outputs returned - * - * @return Zero when successful, otherwise an error code - * - - \code{.c} - // Example // - - // Allocate input and output memory - bsec_input_t input[3]; - uint8_t n_input = 3; - bsec_output_t output[2]; - uint8_t n_output=2; - - bsec_library_return_t status; - - // Populate the input structs, assuming the we have timestamp (ts), - // gas sensor resistance (R), temperature (T), and humidity (rH) available - // as input variables - input[0].sensor_id = BSEC_INPUT_GASRESISTOR; - input[0].signal = R; - input[0].time_stamp= ts; - input[1].sensor_id = BSEC_INPUT_TEMPERATURE; - input[1].signal = T; - input[1].time_stamp= ts; - input[2].sensor_id = BSEC_INPUT_HUMIDITY; - input[2].signal = rH; - input[2].time_stamp= ts; - - - // Invoke main processing BSEC function - status = bsec_do_steps( input, n_input, output, &n_output ); - - // Iterate through the BSEC output data, if the call succeeded - if(status == BSEC_OK) - { - for(int i = 0; i < n_output; i++) - { - switch(output[i].sensor_id) - { - case BSEC_OUTPUT_IAQ: - // Retrieve the IAQ results from output[i].signal - // and do something with the data - break; - case BSEC_OUTPUT_AMBIENT_TEMPERATURE: - // Retrieve the ambient temperature results from output[i].signal - // and do something with the data - break; - - } - } - } - - \endcode - */ - -bsec_library_return_t bsec_do_steps(const bsec_input_t * const inputs, const uint8_t n_inputs, bsec_output_t * outputs, uint8_t * n_outputs); - - -/*! - * @brief Reset a particular virtual sensor output - * - * This function allows specific virtual sensor outputs to be reset. The meaning of "reset" depends on the specific - * output. In case of the IAQ output, reset means zeroing the output to the current ambient conditions. - * - * @param[in] sensor_id Virtual sensor to be reset - * - * @return Zero when successful, otherwise an error code - * - * - \code{.c} - // Example // - bsec_reset_output(BSEC_OUTPUT_IAQ); - - \endcode - */ - -bsec_library_return_t bsec_reset_output(uint8_t sensor_id); - - -/*! - * @brief Update algorithm configuration parameters - * - * BSEC uses a default configuration for the modules and common settings. The initial configuration can be customized - * by bsec_set_configuration(). This is an optional step. - * - * @note A work buffer with sufficient size is required and has to be provided by the function caller to decompose - * the serialization and apply it to the library and its modules. Please use #BSEC_MAX_PROPERTY_BLOB_SIZE for allotting - * the required size. - * - * @param[in] serialized_settings Settings serialized to a binary blob - * @param[in] n_serialized_settings Size of the settings blob - * @param[in,out] work_buffer Work buffer used to parse the blob - * @param[in] n_work_buffer_size Length of the work buffer available for parsing the blob - * - * @return Zero when successful, otherwise an error code - * - \code{.c} - // Example // - - // Allocate variables - uint8_t serialized_settings[BSEC_MAX_PROPERTY_BLOB_SIZE]; - uint32_t n_serialized_settings_max = BSEC_MAX_PROPERTY_BLOB_SIZE; - uint8_t work_buffer[BSEC_MAX_PROPERTY_BLOB_SIZE]; - uint32_t n_work_buffer = BSEC_MAX_PROPERTY_BLOB_SIZE; - - // Here we will load a provided config string into serialized_settings - - // Apply the configuration - bsec_set_configuration(serialized_settings, n_serialized_settings_max, work_buffer, n_work_buffer); - - \endcode - */ - -bsec_library_return_t bsec_set_configuration(const uint8_t * const serialized_settings, - const uint32_t n_serialized_settings, uint8_t * work_buffer, - const uint32_t n_work_buffer_size); - - -/*! - * @brief Restore the internal state of the library - * - * BSEC uses a default state for all signal processing modules and the BSEC module. To ensure optimal performance, - * especially of the gas sensor functionality, it is recommended to retrieve the state using bsec_get_state() - * before unloading the library, storing it in some form of non-volatile memory, and setting it using bsec_set_state() - * before resuming further operation of the library. - * - * @note A work buffer with sufficient size is required and has to be provided by the function caller to decompose the - * serialization and apply it to the library and its modules. Please use #BSEC_MAX_PROPERTY_BLOB_SIZE for allotting the - * required size. - * - * @param[in] serialized_state States serialized to a binary blob - * @param[in] n_serialized_state Size of the state blob - * @param[in,out] work_buffer Work buffer used to parse the blob - * @param[in] n_work_buffer_size Length of the work buffer available for parsing the blob - * - * @return Zero when successful, otherwise an error code - * - \code{.c} - // Example // - - // Allocate variables - uint8_t serialized_state[BSEC_MAX_PROPERTY_BLOB_SIZE]; - uint32_t n_serialized_state = BSEC_MAX_PROPERTY_BLOB_SIZE; - uint8_t work_buffer_state[BSEC_MAX_PROPERTY_BLOB_SIZE]; - uint32_t n_work_buffer_size = BSEC_MAX_PROPERTY_BLOB_SIZE; - - // Here we will load a state string from a previous use of BSEC - - // Apply the previous state to the current BSEC session - bsec_set_state(serialized_state, n_serialized_state, work_buffer_state, n_work_buffer_size); - - \endcode -*/ - -bsec_library_return_t bsec_set_state(const uint8_t * const serialized_state, const uint32_t n_serialized_state, - uint8_t * work_buffer, const uint32_t n_work_buffer_size); - - -/*! - * @brief Retrieve the current library configuration - * - * BSEC allows to retrieve the current configuration using bsec_get_configuration(). Returns a binary blob encoding - * the current configuration parameters of the library in a format compatible with bsec_set_configuration(). - * - * @note The function bsec_get_configuration() is required to be used for debugging purposes only. - * @note A work buffer with sufficient size is required and has to be provided by the function caller to decompose the - * serialization and apply it to the library and its modules. Please use #BSEC_MAX_PROPERTY_BLOB_SIZE for allotting the - * required size. - * - * - * @param[in] config_id Identifier for a specific set of configuration settings to be returned; - * shall be zero to retrieve all configuration settings. - * @param[out] serialized_settings Buffer to hold the serialized config blob - * @param[in] n_serialized_settings_max Maximum available size for the serialized settings - * @param[in,out] work_buffer Work buffer used to parse the binary blob - * @param[in] n_work_buffer Length of the work buffer available for parsing the blob - * @param[out] n_serialized_settings Actual size of the returned serialized configuration blob - * - * @return Zero when successful, otherwise an error code - * - \code{.c} - // Example // - - // Allocate variables - uint8_t serialized_settings[BSEC_MAX_PROPERTY_BLOB_SIZE]; - uint32_t n_serialized_settings_max = BSEC_MAX_PROPERTY_BLOB_SIZE; - uint8_t work_buffer[BSEC_MAX_PROPERTY_BLOB_SIZE]; - uint32_t n_work_buffer = BSEC_MAX_PROPERTY_BLOB_SIZE; - uint32_t n_serialized_settings = 0; - - // Configuration of BSEC algorithm is stored in 'serialized_settings' - bsec_get_configuration(0, serialized_settings, n_serialized_settings_max, work_buffer, n_work_buffer, &n_serialized_settings); - - \endcode - */ - -bsec_library_return_t bsec_get_configuration(const uint8_t config_id, uint8_t * serialized_settings, const uint32_t n_serialized_settings_max, - uint8_t * work_buffer, const uint32_t n_work_buffer, uint32_t * n_serialized_settings); - - -/*! - *@brief Retrieve the current internal library state - * - * BSEC allows to retrieve the current states of all signal processing modules and the BSEC module using - * bsec_get_state(). This allows a restart of the processing after a reboot of the system by calling bsec_set_state(). - * - * @note A work buffer with sufficient size is required and has to be provided by the function caller to decompose the - * serialization and apply it to the library and its modules. Please use #BSEC_MAX_STATE_BLOB_SIZE for allotting the - * required size. - * - * - * @param[in] state_set_id Identifier for a specific set of states to be returned; shall be - * zero to retrieve all states. - * @param[out] serialized_state Buffer to hold the serialized config blob - * @param[in] n_serialized_state_max Maximum available size for the serialized states - * @param[in,out] work_buffer Work buffer used to parse the blob - * @param[in] n_work_buffer Length of the work buffer available for parsing the blob - * @param[out] n_serialized_state Actual size of the returned serialized blob - * - * @return Zero when successful, otherwise an error code - * - \code{.c} - // Example // - - // Allocate variables - uint8_t serialized_state[BSEC_MAX_STATE_BLOB_SIZE]; - uint32_t n_serialized_state_max = BSEC_MAX_STATE_BLOB_SIZE; - uint32_t n_serialized_state = BSEC_MAX_STATE_BLOB_SIZE; - uint8_t work_buffer_state[BSEC_MAX_STATE_BLOB_SIZE]; - uint32_t n_work_buffer_size = BSEC_MAX_STATE_BLOB_SIZE; - - // Algorithm state is stored in 'serialized_state' - bsec_get_state(0, serialized_state, n_serialized_state_max, work_buffer_state, n_work_buffer_size, &n_serialized_state); - - \endcode - */ - -bsec_library_return_t bsec_get_state(const uint8_t state_set_id, uint8_t * serialized_state, - const uint32_t n_serialized_state_max, uint8_t * work_buffer, const uint32_t n_work_buffer, - uint32_t * n_serialized_state); - -/*! - * @brief Retrieve BMExxx sensor instructions - * - * The bsec_sensor_control() interface is a key feature of BSEC, as it allows an easy way for the signal processing - * library to control the operation of the BME sensor. This is important since gas sensor behaviour is mainly - * determined by how the integrated heater is configured. To ensure an easy integration of BSEC into any system, - * bsec_sensor_control() will provide the caller with information about the current sensor configuration that is - * necessary to fulfill the input requirements derived from the current outputs requested via - * bsec_update_subscription(). - * - * In practice the use of this function shall be as follows: - * - Call bsec_sensor_control() which returns a bsec_bme_settings_t struct. - * - Based on the information contained in this struct, the sensor is configured and a forced-mode measurement is - * triggered if requested by bsec_sensor_control(). - * - Once this forced-mode measurement is complete, the signals specified in this struct shall be passed to - * bsec_do_steps() to perform the signal processing. - * - After processing, the process should sleep until the bsec_bme_settings_t::next_call timestamp is reached. - * - * - * @param [in] time_stamp Current timestamp in [ns] - * @param[out] sensor_settings Settings to be passed to API to operate sensor at this time instance - * - * @return Zero when successful, otherwise an error code - */ - -bsec_library_return_t bsec_sensor_control(const int64_t time_stamp, bsec_bme_settings_t *sensor_settings); - -/*@}*/ //BSEC Interface - -#ifdef __cplusplus - } -#endif - -#endif /* __BSEC_INTERFACE_H__ */ diff --git a/lib/EspSoftwareSerial/LICENSE b/lib/EspSoftwareSerial/LICENSE deleted file mode 100644 index f166cc57..00000000 --- a/lib/EspSoftwareSerial/LICENSE +++ /dev/null @@ -1,502 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! \ No newline at end of file diff --git a/lib/EspSoftwareSerial/README.md b/lib/EspSoftwareSerial/README.md deleted file mode 100644 index 2d14c9e6..00000000 --- a/lib/EspSoftwareSerial/README.md +++ /dev/null @@ -1,124 +0,0 @@ -# EspSoftwareSerial - -## Implementation of the Arduino software serial library for the ESP8266 / ESP32 - -This fork implements interrupt service routine best practice. -In the receive interrupt, instead of blocking for whole bytes -at a time - voiding any near-realtime behavior of the CPU - only level -change and timestamp are recorded. The more time consuming phase -detection and byte assembly are done in the main code. - -Except at high bitrates, depending on other ongoing activity, -interrupts in particular, this software serial adapter -supports full duplex receive and send. At high bitrates (115200bps) -send bit timing can be improved at the expense of blocking concurrent -full duplex receives, with the ``SoftwareSerial::enableIntTx(false)`` function call. - -The same functionality is given as the corresponding AVR library but -several instances can be active at the same time. Speed up to 115200 baud -is supported. Besides a constructor compatible to the AVR SoftwareSerial class, -and updated constructor that takes no arguments exists, instead the ``begin()`` -function can handle the pin assignments and logic inversion. -It also has optional input buffer capacity arguments for byte buffer and ISR bit buffer. -This way, it is a better drop-in replacement for the hardware serial APIs on the ESP MCUs. - -Please note that due to the fact that the ESPs always have other activities -ongoing, there will be some inexactness in interrupt timings. This may -lead to inevitable, but few, bit errors when having heavy data traffic -at high baud rates. - -## Resource optimization - -The memory footprint can be optimized to just fit the amount of expected -incoming asynchronous data. -For this, the ``SoftwareSerial`` constructor provides two arguments. First, the -octet buffer capacity for assembled received octets can be set. Read calls are -satisfied from this buffer, freeing it in return. -Second, the signal edge detection buffer of 32bit fields can be resized. -One octet may require up to to 10 fields, but fewer may be needed, -depending on the bit pattern. Any read or write calls check this buffer -to assemble received octets, thus promoting completed octets to the octet -buffer, freeing fields in the edge detection buffer. - -Look at the swsertest.ino example. There, on reset, ASCII characters ' ' to 'z' -are sent. This happens not as a block write, but in a single write call per -character. As the example uses a local loopback wire, every outgoing bit is -immediately received back. Therefore, any single write call causes up to -10 fields - depending on the exact bit pattern - to be occupied in the signal -edge detection buffer. In turn, as explained before, each single write call -also causes received bit assembly to be performed, promoting these bits from -the signal edge detection buffer to the octet buffer as soon as possible. -Explaining by way of contrast, if during a a single write call, perhaps because -of using block writing, more than a single octet is received, there will be a -need for more than 10 fields in the signal edge detection buffer. -The necessary capacity of the octet buffer only depends on the amount of incoming -data until the next read call. - -For the swsertest.ino example, this results in the following optimized -constructor arguments to spend only the minimum RAM on buffers required: - -The octet buffer capacity (``bufCapacity``) is 93 (91 characters net plus two tolerance). -The signal edge detection buffer capacity (``isrBufCapacity``) is 10, as each octet has -10 bits on the wire, which are immediately received during the write, and each -write call causes the signal edge detection to promote the previously sent and -received bits to the octet buffer. - -In a more generalized scenario, calculate the bits (use message size in octets -times 10) that may be asynchronously received to determine the value for -``isrBufCapacity`` in the constructor. Also use the number of received octets -that must be buffered for reading as the value of ``bufCapacity``. -The more frequently your code calls write or read functions, the greater the -chances are that you can reduce the ``isrBufCapacity`` footprint without losing data, -and each time you call read to fetch from the octet buffer, you reduce the -need for space there. - -## SoftwareSerialConfig and parity -The configuration of the data stream is done via a ``SoftwareSerialConfig`` -argument to ``begin()``. Word lengths can be set to between 5 and 8 bits, parity -can be N(one), O(dd) or E(ven) and 1 or 2 stop bits can be used. The default is -``SWSERIAL_8N1`` using 8 bits, no parity and 1 stop bit but any combination can -be used, e.g. ``SWSERIAL_7E2``. If using EVEN or ODD parity, any parity errors -can be detected with the ``peekParityError()`` function. Note that parity -checking must be done before ``read()``, as the parity information is removed -from the buffer when reading the corresponding byte. - -To allow flexible 9-bit and data/addressing protocols, the additional parity -modes MARK and SPACE are also available. Furthermore, the parity mode can be -individually set in each call to ``write()``. - -This allows a simple implementation of protocols where the parity bit is used to -distinguish between data and addresses/commands ("9-bit" protocols). First set -up SoftwareSerial with parity mode SPACE, e.g. ``SWSERIAL_8S1``. This will add a -parity bit to every byte sent, setting it to logical zero (SPACE parity). - -To detect incoming bytes with the parity bit set (MARK parity), use the -``peekParityError()`` function. To send a byte with the parity bit set, just add -``MARK`` as the second argument when writing, e.g. ``write(ch, MARK)``. - -## Using and updating EspSoftwareSerial in the esp8266com/esp8266 Arduino build environment - -EspSoftwareSerial is both part of the BSP download for ESP8266 in Arduino, -and it is set up as a Git submodule in the esp8266 source tree, -specifically in ``.../esp8266/libraries/SoftwareSerial`` when using a Github -repository clone in your Arduino sketchbook hardware directory. -This supersedes any version of EspSoftwareSerial installed for instance via -the Arduino library manager, it is not required to install EspSoftwareSerial -for the ESP8266 separately at all, but doing so has ill effect. - -The responsible maintainer of the esp8266 repository has kindly shared the -following command line instructions to use, if one wishes to manually -update EspSoftwareSerial to a newer release than pulled in via the ESP8266 Arduino BSP: - -To update esp8266/arduino SoftwareSerial submodule to lastest master: - -Clean it (optional): -```shell -$ rm -rf libraries/SoftwareSerial -$ git submodule update --init -``` -Now update it: -```shell -$ cd libraries/SoftwareSerial -$ git checkout master -$ git pull -``` diff --git a/lib/EspSoftwareSerial/examples/loopback/loopback.ino b/lib/EspSoftwareSerial/examples/loopback/loopback.ino deleted file mode 100644 index b612bdec..00000000 --- a/lib/EspSoftwareSerial/examples/loopback/loopback.ino +++ /dev/null @@ -1,263 +0,0 @@ -#include - -// On ESP8266: -// Local SoftwareSerial loopback, connect D5 (rx) and D6 (tx). -// For local hardware loopback, connect D5 to D8 (tx), D6 to D7 (rx). -// For hardware send/sink, connect D7 (rx) and D8 (tx). -// Hint: The logger is run at 9600bps such that enableIntTx(true) can remain unchanged. Blocking -// interrupts severely impacts the ability of the SoftwareSerial devices to operate concurrently -// and/or in duplex mode. -// Operating in software serial full duplex mode, runs at 19200bps and few errors (~2.5%). -// Operating in software serial half duplex mode (both loopback and repeater), -// runs at 57600bps with nearly no errors. -// Operating loopback in full duplex, and repeater in half duplex, runs at 38400bps with nearly no errors. -// On ESP32: -// For SoftwareSerial or hardware send/sink, connect D5 (rx) and D6 (tx). -// Hardware Serial2 defaults to D4 (rx), D3 (tx). -// For local hardware loopback, connect D5 (rx) to D3 (tx), D6 (tx) to D4 (rx). - -#if defined(ESP8266) && !defined(D5) -#define D5 (14) -#define D6 (12) -#define D7 (13) -#define D8 (15) -#define TX (1) -#endif - -// Pick only one of HWLOOPBACK, HWSOURCESWSINK, or HWSOURCESINK -//#define HWLOOPBACK 1 -//#define HWSOURCESWSINK 1 -//#define HWSOURCESINK 1 -#define HALFDUPLEX 1 - -#ifdef ESP32 -constexpr int IUTBITRATE = 19200; -#else -constexpr int IUTBITRATE = 19200; -#endif - -#if defined(ESP8266) -constexpr SoftwareSerialConfig swSerialConfig = SWSERIAL_8E1; -constexpr SerialConfig hwSerialConfig = SERIAL_8E1; -#elif defined(ESP32) -constexpr SoftwareSerialConfig swSerialConfig = SWSERIAL_8E1; -constexpr uint32_t hwSerialConfig = SERIAL_8E1; -#else -constexpr unsigned swSerialConfig = 3; -#endif -constexpr bool invert = false; - -constexpr int BLOCKSIZE = 16; // use fractions of 256 - -unsigned long start; -String effTxTxt("eff. tx: "); -String effRxTxt("eff. rx: "); -int txCount; -int rxCount; -int expected; -int rxErrors; -int rxParityErrors; -constexpr int ReportInterval = IUTBITRATE / 8; - -#if defined(ESP8266) -#if defined(HWLOOPBACK) || defined(HWSOURCESWSINK) -HardwareSerial& hwSerial(Serial); -SoftwareSerial serialIUT; -SoftwareSerial logger; -#elif defined(HWSOURCESINK) -HardwareSerial& serialIUT(Serial); -SoftwareSerial logger; -#else -SoftwareSerial serialIUT; -HardwareSerial& logger(Serial); -#endif -#elif defined(ESP32) -#if defined(HWLOOPBACK) || defined (HWSOURCESWSINK) -HardwareSerial& hwSerial(Serial2); -SoftwareSerial serialIUT; -#elif defined(HWSOURCESINK) -HardwareSerial& serialIUT(Serial2); -#else -SoftwareSerial serialIUT; -#endif -HardwareSerial& logger(Serial); -#else -SoftwareSerial serialIUT(14, 12); -HardwareSerial& logger(Serial); -#endif - -void setup() { -#if defined(ESP8266) -#if defined(HWLOOPBACK) || defined(HWSOURCESINK) || defined(HWSOURCESWSINK) - Serial.begin(IUTBITRATE, hwSerialConfig, SERIAL_FULL, 1, invert); - Serial.swap(); - Serial.setRxBufferSize(2 * BLOCKSIZE); - logger.begin(9600, SWSERIAL_8N1, -1, TX); -#else - logger.begin(9600); -#endif -#if !defined(HWSOURCESINK) - serialIUT.begin(IUTBITRATE, swSerialConfig, D5, D6, invert, 2 * BLOCKSIZE); -#ifdef HALFDUPLEX - serialIUT.enableIntTx(false); -#endif -#endif -#elif defined(ESP32) -#if defined(HWLOOPBACK) || defined(HWSOURCESWSINK) - Serial2.begin(IUTBITRATE, hwSerialConfig, D4, D3, invert); - Serial2.setRxBufferSize(2 * BLOCKSIZE); -#elif defined(HWSOURCESINK) - serialIUT.begin(IUTBITRATE, hwSerialConfig, D5, D6, invert); - serialIUT.setRxBufferSize(2 * BLOCKSIZE); -#endif -#if !defined(HWSOURCESINK) - serialIUT.begin(IUTBITRATE, swSerialConfig, D5, D6, invert, 2 * BLOCKSIZE); -#ifdef HALFDUPLEX - serialIUT.enableIntTx(false); -#endif -#endif - logger.begin(9600); -#else -#if !defined(HWSOURCESINK) - serialIUT.begin(IUTBITRATE); -#endif - logger.begin(9600); -#endif - - logger.println("Loopback example for EspSoftwareSerial"); - - start = micros(); - txCount = 0; - rxCount = 0; - rxErrors = 0; - rxParityErrors = 0; - expected = -1; -} - -unsigned char c = 0; - -void loop() { -#ifdef HALFDUPLEX - char block[BLOCKSIZE]; -#endif - char inBuf[BLOCKSIZE]; - for (int i = 0; i < BLOCKSIZE; ++i) { -#ifndef HALFDUPLEX -#ifdef HWSOURCESWSINK - hwSerial.write(c); -#else - serialIUT.write(c); -#endif -#ifdef HWLOOPBACK - int avail = hwSerial.available(); - while ((0 == (i % 8)) && avail > 0) { - int inCnt = hwSerial.read(inBuf, min(avail, min(BLOCKSIZE, hwSerial.availableForWrite()))); - hwSerial.write(inBuf, inCnt); - avail -= inCnt; - } -#endif -#else - block[i] = c; -#endif - c = (c + 1) % 256; - ++txCount; - } -#ifdef HALFDUPLEX -#ifdef HWSOURCESWSINK - hwSerial.write(block, BLOCKSIZE); -#else - serialIUT.write(block, BLOCKSIZE); -#endif -#endif -#ifdef HWSOURCESINK -#if defined(ESP8266) - if (serialIUT.hasOverrun()) { logger.println("serialIUT.overrun"); } -#endif -#else - if (serialIUT.overflow()) { logger.println("serialIUT.overflow"); } -#endif - - int inCnt; - uint32_t deadlineStart; - -#ifdef HWLOOPBACK - // starting deadline for the first bytes to become readable - deadlineStart = ESP.getCycleCount(); - inCnt = 0; - while ((ESP.getCycleCount() - deadlineStart) < (1000000UL * 12 * BLOCKSIZE) / IUTBITRATE * 24 * ESP.getCpuFreqMHz()) { - int avail = hwSerial.available(); - inCnt += hwSerial.read(&inBuf[inCnt], min(avail, min(BLOCKSIZE - inCnt, hwSerial.availableForWrite()))); - if (inCnt >= BLOCKSIZE) { break; } - // wait for more outstanding bytes to trickle in - if (avail) deadlineStart = ESP.getCycleCount(); - } - hwSerial.write(inBuf, inCnt); -#endif - - // starting deadline for the first bytes to come in - deadlineStart = ESP.getCycleCount(); - inCnt = 0; - while ((ESP.getCycleCount() - deadlineStart) < (1000000UL * 12 * BLOCKSIZE) / IUTBITRATE * 8 * ESP.getCpuFreqMHz()) { - int avail; - if (0 != (swSerialConfig & 070)) - avail = serialIUT.available(); - else - avail = serialIUT.read(inBuf, BLOCKSIZE); - for (int i = 0; i < avail; ++i) - { - unsigned char r; - if (0 != (swSerialConfig & 070)) - r = serialIUT.read(); - else - r = inBuf[i]; - if (expected == -1) { expected = r; } - else { - expected = (expected + 1) % (1UL << (5 + swSerialConfig % 4)); - } - if (r != expected) { - ++rxErrors; - expected = -1; - } -#ifndef HWSOURCESINK - if (serialIUT.readParity() != (static_cast(swSerialConfig & 010) ? serialIUT.parityOdd(r) : serialIUT.parityEven(r))) - { - ++rxParityErrors; - } -#endif - ++rxCount; - ++inCnt; - } - - if (inCnt >= BLOCKSIZE) { break; } - // wait for more outstanding bytes to trickle in - if (avail) deadlineStart = ESP.getCycleCount(); - } - - const uint32_t interval = micros() - start; - if (txCount >= ReportInterval && interval) { - uint8_t wordBits = (5 + swSerialConfig % 4) + static_cast(swSerialConfig & 070) + 1 + ((swSerialConfig & 0300) ? 1 : 0); - logger.println(String("tx/rx: ") + txCount + "/" + rxCount); - const long txCps = txCount * (1000000.0 / interval); - const long rxCps = rxCount * (1000000.0 / interval); - logger.print(effTxTxt + wordBits * txCps + "bps, " - + effRxTxt + wordBits * rxCps + "bps, " - + rxErrors + " errors (" + 100.0 * rxErrors / (!rxErrors ? 1 : rxCount) + "%)"); - if (0 != (swSerialConfig & 070)) - { - logger.print(" ("); logger.print(rxParityErrors); logger.println(" parity errors)"); - } - else - { - logger.println(); - } - txCount = 0; - rxCount = 0; - rxErrors = 0; - rxParityErrors = 0; - expected = -1; - // resync - delay(1000UL * 12 * BLOCKSIZE / IUTBITRATE * 16); - serialIUT.flush(); - start = micros(); - } -} diff --git a/lib/EspSoftwareSerial/examples/onewiretest/onewiretest.ino b/lib/EspSoftwareSerial/examples/onewiretest/onewiretest.ino deleted file mode 100644 index 3e96401b..00000000 --- a/lib/EspSoftwareSerial/examples/onewiretest/onewiretest.ino +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include "SoftwareSerial.h" - -SoftwareSerial swSer1; -SoftwareSerial swSer2; - -void setup() { - delay(2000); - Serial.begin(115200); - Serial.println("\nOne Wire Half Duplex Serial Tester"); - swSer1.begin(115200, SWSERIAL_8N1, 12, 12, false, 256); - swSer1.enableIntTx(true); - swSer2.begin(115200, SWSERIAL_8N1, 14, 14, false, 256); - swSer2.enableIntTx(true); -} - -void loop() { - Serial.println("\n\nTesting on swSer1"); - Serial.print("Enter something to send using swSer1."); - checkSwSerial(&swSer1); - - Serial.println("\n\nTesting on swSer2"); - Serial.print("Enter something to send using swSer2."); - checkSwSerial(&swSer2); - -} - -void checkSwSerial(SoftwareSerial* ss) { - byte ch; - while (!Serial.available()); - ss->enableTx(true); - while (Serial.available()) { - ch = Serial.read(); - ss->write(ch); - } - ss->enableTx(false); - // wait 1 second for the reply from SOftwareSerial if any - delay(1000); - if (ss->available()) { - Serial.print("\nResult:"); - while (ss->available()) { - ch = (byte)ss->read(); - Serial.print(ch < 0x01 ? " 0" : " "); - Serial.print(ch, HEX); - } - Serial.println(); - } -} diff --git a/lib/EspSoftwareSerial/examples/repeater/repeater.ino b/lib/EspSoftwareSerial/examples/repeater/repeater.ino deleted file mode 100644 index fa5566de..00000000 --- a/lib/EspSoftwareSerial/examples/repeater/repeater.ino +++ /dev/null @@ -1,183 +0,0 @@ -#include - -// On ESP8266: -// SoftwareSerial loopback for remote source (loopback.ino), or hardware loopback. -// Connect source D5 (rx) to local D8 (tx), source D6 (tx) to local D7 (rx). -// Hint: The logger is run at 9600bps such that enableIntTx(true) can remain unchanged. Blocking -// interrupts severely impacts the ability of the SoftwareSerial devices to operate concurrently -// and/or in duplex mode. -// On ESP32: -// For software or hardware loopback, connect source rx to local D8 (tx), source tx to local D7 (rx). - -#if defined(ESP8266) && !defined(D5) -#define D5 (14) -#define D6 (12) -#define D7 (13) -#define D8 (15) -#define TX (1) -#endif - -#define HWLOOPBACK 1 -#define HALFDUPLEX 1 - -#ifdef ESP32 -constexpr int IUTBITRATE = 19200; -#else -constexpr int IUTBITRATE = 19200; -#endif - -#if defined(ESP8266) -constexpr SoftwareSerialConfig swSerialConfig = SWSERIAL_8E1; -constexpr SerialConfig hwSerialConfig = SERIAL_8E1; -#elif defined(ESP32) -constexpr SoftwareSerialConfig swSerialConfig = SWSERIAL_8E1; -constexpr uint32_t hwSerialConfig = SERIAL_8E1; -#else -constexpr unsigned swSerialConfig = 3; -#endif -constexpr bool invert = false; - -constexpr int BLOCKSIZE = 16; // use fractions of 256 - -unsigned long start; -String bitRateTxt("Effective data rate: "); -int rxCount; -int seqErrors; -int parityErrors; -int expected; -constexpr int ReportInterval = IUTBITRATE / 8; - -#if defined(ESP8266) -#if defined(HWLOOPBACK) -HardwareSerial& repeater(Serial); -SoftwareSerial logger; -#else -SoftwareSerial repeater; -HardwareSerial& logger(Serial); -#endif -#elif defined(ESP32) -#if defined(HWLOOPBACK) -HardwareSerial& repeater(Serial2); -#else -SoftwareSerial repeater; -#endif -HardwareSerial& logger(Serial); -#else -SoftwareSerial repeater(14, 12); -HardwareSerial& logger(Serial); -#endif - -void setup() { -#if defined(ESP8266) -#if defined(HWLOOPBACK) - repeater.begin(IUTBITRATE, hwSerialConfig, SERIAL_FULL, 1, invert); - repeater.swap(); - repeater.setRxBufferSize(2 * BLOCKSIZE); - logger.begin(9600, SWSERIAL_8N1, -1, TX); -#else - repeater.begin(IUTBITRATE, swSerialConfig, D7, D8, invert, 4 * BLOCKSIZE); -#ifdef HALFDUPLEX - repeater.enableIntTx(false); -#endif - logger.begin(9600); -#endif -#elif defined(ESP32) -#if defined(HWLOOPBACK) - repeater.begin(IUTBITRATE, hwSerialConfig, D7, D8, invert); - repeater.setRxBufferSize(2 * BLOCKSIZE); -#else - repeater.begin(IUTBITRATE, swSerialConfig, D7, D8, invert, 4 * BLOCKSIZE); -#ifdef HALFDUPLEX - repeater.enableIntTx(false); -#endif -#endif - logger.begin(9600); -#else - repeater.begin(IUTBITRATE); - logger.begin(9600); -#endif - - logger.println("Repeater example for EspSoftwareSerial"); - start = micros(); - rxCount = 0; - seqErrors = 0; - parityErrors = 0; - expected = -1; -} - -void loop() { -#ifdef HWLOOPBACK -#if defined(ESP8266) - if (repeater.hasOverrun()) { logger.println("repeater.overrun"); } -#endif -#else - if (repeater.overflow()) { logger.println("repeater.overflow"); } -#endif - -#ifdef HALFDUPLEX - char block[BLOCKSIZE]; -#endif - // starting deadline for the first bytes to come in - uint32_t deadlineStart = ESP.getCycleCount(); - int inCnt = 0; - while ((ESP.getCycleCount() - deadlineStart) < (1000000UL * 12 * BLOCKSIZE) / IUTBITRATE * 24 * ESP.getCpuFreqMHz()) { - int avail = repeater.available(); - for (int i = 0; i < avail; ++i) - { - int r = repeater.read(); - if (r == -1) { logger.println("read() == -1"); } - if (expected == -1) { expected = r; } - else { - expected = (expected + 1) % (1UL << (5 + swSerialConfig % 4)); - } - if (r != expected) { - ++seqErrors; - expected = -1; - } -#ifndef HWLOOPBACK - if (repeater.readParity() != (static_cast(swSerialConfig & 010) ? repeater.parityOdd(r) : repeater.parityEven(r))) - { - ++parityErrors; - } -#endif - ++rxCount; -#ifdef HALFDUPLEX - block[inCnt] = r; -#else - repeater.write(r); -#endif - if (++inCnt >= BLOCKSIZE) { break; } - } - if (inCnt >= BLOCKSIZE) { break; } - // wait for more outstanding bytes to trickle in - if (avail) deadlineStart = ESP.getCycleCount(); - } - -#ifdef HALFDUPLEX - repeater.write(block, inCnt); -#endif - - if (rxCount >= ReportInterval) { - auto end = micros(); - unsigned long interval = end - start; - long cps = rxCount * (1000000.0 / interval); - long seqErrorsps = seqErrors * (1000000.0 / interval); - logger.print(bitRateTxt + 10 * cps + "bps, " - + seqErrorsps + "cps seq. errors (" + 100.0 * seqErrors / rxCount + "%)"); -#ifndef HWLOOPBACK - if (0 != (swSerialConfig & 070)) - { - logger.print(" ("); logger.print(parityErrors); logger.print(" parity errors)"); - } - else -#endif - { - logger.println(); - } - start = end; - rxCount = 0; - seqErrors = 0; - parityErrors = 0; - expected = -1; - } -} diff --git a/lib/EspSoftwareSerial/examples/servoTester/servoTester.ino b/lib/EspSoftwareSerial/examples/servoTester/servoTester.ino deleted file mode 100644 index cbc784d8..00000000 --- a/lib/EspSoftwareSerial/examples/servoTester/servoTester.ino +++ /dev/null @@ -1,115 +0,0 @@ -#include -#include - -SoftwareSerial swSer; - -byte buf[10] = { 0xFA, 0xAF,0x00,0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0xED }; -byte cmd[10] = { 0xFA, 0xAF,0x00,0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0xED }; -byte ver[10] = { 0xFC, 0xCF,0x00,0xAA,0x41, 0x16, 0x51, 0x01, 0x00, 0xED }; - - -void setup() { - delay(2000); - Serial.begin(115200); - Serial.println("\nAlpha 1S Servo Tester"); - swSer.begin(115200, SWSERIAL_8N1, 12, 12, false, 256); -} - -void loop() { - for (int i = 1; i <= 32; i++) { - GetVersion(i); - delay(100); - } - SetLED(1, 0); - GoPos(1, 0, 50); - delay(1000); - GoPos(1, 90, 50); - delay(1000); - GoPos(1, 100, 50); - delay(1000); - SetLED(1, 1); - delay(2000); -} - - - - -void GetVersion(byte id) { - memcpy(buf, cmd, 10); - buf[0] = 0xFC; - buf[1] = 0xCF; - buf[2] = id; - buf[3] = 0x01; - SendCommand(); -} - - -void GoPos(byte id, byte Pos, byte Time) { - memcpy(buf, cmd, 10); - buf[2] = id; - buf[3] = 0x01; - buf[4] = Pos; - buf[5] = Time; - buf[6] = 0x00; - buf[7] = Time; - SendCommand(); -} - -void GetPos(byte id) { - memcpy(buf, cmd, 10); - buf[2] = id; - buf[3] = 0x02; - SendCommand(); -} - - -void SetLED(byte id, byte mode) { - memcpy(buf, cmd, 10); - buf[2] = id; - buf[3] = 0x04; - buf[4] = mode; - SendCommand(); -} - -void SendCommand() { - SendCommand(true); -} - -void SendCommand(bool checkResult) { - byte sum = 0; - for (int i = 2; i < 8; i++) { - sum += buf[i]; - } - buf[8] = sum; - ShowCommand(); - swSer.flush(); - swSer.enableTx(true); - swSer.write(buf, 10); - swSer.enableTx(false); - if (checkResult) checkReturn(); -} - -void ShowCommand() { - Serial.print(millis()); - Serial.print(" OUT>>"); - for (int i = 0; i < 10; i++) { - Serial.print((buf[i] < 0x10 ? " 0" : " ")); - Serial.print(buf[i], HEX); - } - Serial.println(); -} - -void checkReturn() { - unsigned long startMs = millis(); - while (((millis() - startMs) < 500) && (!swSer.available())); - if (swSer.available()) { - Serial.print(millis()); - Serial.print(" IN>>>"); - while (swSer.available()) { - byte ch = (byte)swSer.read(); - Serial.print((ch < 0x10 ? " 0" : " ")); - Serial.print(ch, HEX); - } - Serial.println(); - } -} diff --git a/lib/EspSoftwareSerial/examples/swsertest/swsertest.ino b/lib/EspSoftwareSerial/examples/swsertest/swsertest.ino deleted file mode 100644 index a047c1be..00000000 --- a/lib/EspSoftwareSerial/examples/swsertest/swsertest.ino +++ /dev/null @@ -1,47 +0,0 @@ -// On ESP8266: -// At 80MHz runs up 57600ps, and at 160MHz CPU frequency up to 115200bps with only negligible errors. -// Connect pin 12 to 14. - -#include - -#if defined(ESP8266) && !defined(D5) -#define D5 (14) -#define D6 (12) -#define D7 (13) -#define D8 (15) -#endif - -#ifdef ESP32 -#define BAUD_RATE 57600 -#else -#define BAUD_RATE 57600 -#endif - -// Reminder: the buffer size optimizations here, in particular the isrBufSize that only accommodates -// a single 8N1 word, are on the basis that any char written to the loopback SoftwareSerial adapter gets read -// before another write is performed. Block writes with a size greater than 1 would usually fail. -SoftwareSerial swSer; - -void setup() { - Serial.begin(115200); - swSer.begin(BAUD_RATE, SWSERIAL_8N1, D5, D6, false, 95, 11); - - Serial.println("\nSoftware serial test started"); - - for (char ch = ' '; ch <= 'z'; ch++) { - swSer.write(ch); - } - swSer.println(""); -} - -void loop() { - while (swSer.available() > 0) { - Serial.write(swSer.read()); - yield(); - } - while (Serial.available() > 0) { - swSer.write(Serial.read()); - yield(); - } - -} diff --git a/lib/EspSoftwareSerial/keywords.txt b/lib/EspSoftwareSerial/keywords.txt deleted file mode 100644 index 52d48ab3..00000000 --- a/lib/EspSoftwareSerial/keywords.txt +++ /dev/null @@ -1,43 +0,0 @@ -####################################### -# Syntax Coloring Map for SoftwareSerial -# (esp8266) -####################################### - -####################################### -# Datatypes (KEYWORD1) -####################################### - -SoftwareSerial KEYWORD1 - -####################################### -# Methods and Functions (KEYWORD2) -####################################### - -begin KEYWORD2 -baudRate KEYWORD2 -setTransmitEnablePin KEYWORD2 -enableIntTx KEYWORD2 -overflow KEYWORD2 -available KEYWORD2 -peek KEYWORD2 -read KEYWORD2 -flush KEYWORD2 -write KEYWORD2 -enableRx KEYWORD2 -enableTx KEYWORD2 -listen KEYWORD2 -end KEYWORD2 -isListening KEYWORD2 -stopListening KEYWORD2 -onReceive KEYWORD2 -perform_work KEYWORD2 - -####################################### -# Constants (LITERAL1) -####################################### - -SW_SERIAL_UNUSED_PIN LITERAL1 -SWSERIAL_5N1 LITERAL1 -SWSERIAL_6N1 LITERAL1 -SWSERIAL_7N1 LITERAL1 -SWSERIAL_8N1 LITERAL1 diff --git a/lib/EspSoftwareSerial/library.json b/lib/EspSoftwareSerial/library.json deleted file mode 100644 index 3415b056..00000000 --- a/lib/EspSoftwareSerial/library.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "EspSoftwareSerial", - "version": "6.6.1", - "keywords": [ - "serial", "io", "softwareserial" - ], - "description": "Implementation of the Arduino software serial for ESP8266/ESP32.", - "repository": - { - "type": "git", - "url": "https://github.com/plerup/espsoftwareserial" - }, - "frameworks": "arduino", - "platforms": "*" -} diff --git a/lib/EspSoftwareSerial/library.properties b/lib/EspSoftwareSerial/library.properties deleted file mode 100644 index bd052153..00000000 --- a/lib/EspSoftwareSerial/library.properties +++ /dev/null @@ -1,9 +0,0 @@ -name=EspSoftwareSerial -version=6.6.1 -author=Peter Lerup, Dirk Kaar -maintainer=Peter Lerup -sentence=Implementation of the Arduino software serial for ESP8266/ESP32. -paragraph= -category=Signal Input/Output -url=https://github.com/plerup/espsoftwareserial/ -architectures=esp8266,esp32 diff --git a/lib/EspSoftwareSerial/src/SoftwareSerial.cpp b/lib/EspSoftwareSerial/src/SoftwareSerial.cpp deleted file mode 100644 index 0e7b8e08..00000000 --- a/lib/EspSoftwareSerial/src/SoftwareSerial.cpp +++ /dev/null @@ -1,542 +0,0 @@ -/* - -SoftwareSerial.cpp - Implementation of the Arduino software serial for ESP8266/ESP32. -Copyright (c) 2015-2016 Peter Lerup. All rights reserved. -Copyright (c) 2018-2019 Dirk O. Kaar. All rights reserved. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#include "SoftwareSerial.h" -#include - -#ifdef ESP32 -#define xt_rsil(a) (a) -#define xt_wsr_ps(a) -#endif - -constexpr uint8_t BYTE_ALL_BITS_SET = ~static_cast(0); - -SoftwareSerial::SoftwareSerial() { - m_isrOverflow = false; -} - -SoftwareSerial::SoftwareSerial(int8_t rxPin, int8_t txPin, bool invert) -{ - m_isrOverflow = false; - m_rxPin = rxPin; - m_txPin = txPin; - m_invert = invert; -} - -SoftwareSerial::~SoftwareSerial() { - end(); -} - -bool SoftwareSerial::isValidGPIOpin(int8_t pin) { -#if defined(ESP8266) - return (pin >= 0 && pin <= 5) || (pin >= 12 && pin <= 15); -#elif defined(ESP32) - return pin == 0 || pin == 2 || (pin >= 4 && pin <= 5) || (pin >= 12 && pin <= 19) || - (pin >= 21 && pin <= 23) || (pin >= 25 && pin <= 27) || (pin >= 32 && pin <= 35); -#else - return true; -#endif -} - -void SoftwareSerial::begin(uint32_t baud, SoftwareSerialConfig config, - int8_t rxPin, int8_t txPin, - bool invert, int bufCapacity, int isrBufCapacity) { - if (-1 != rxPin) m_rxPin = rxPin; - if (-1 != txPin) m_txPin = txPin; - m_oneWire = (m_rxPin == m_txPin); - m_invert = invert; - m_dataBits = 5 + (config & 07); - m_parityMode = static_cast(config & 070); - m_stopBits = 1 + ((config & 0300) ? 1 : 0); - m_pduBits = m_dataBits + static_cast(m_parityMode) + m_stopBits; - m_bitCycles = (ESP.getCpuFreqMHz() * 1000000UL + baud / 2) / baud; - m_intTxEnabled = true; - if (isValidGPIOpin(m_rxPin)) { - std::unique_ptr > buffer(new circular_queue((bufCapacity > 0) ? bufCapacity : 64)); - m_buffer = move(buffer); - if (m_parityMode) - { - std::unique_ptr > parityBuffer(new circular_queue((bufCapacity > 0) ? (bufCapacity + 7) / 8 : 8)); - m_parityBuffer = move(parityBuffer); - m_parityInPos = m_parityOutPos = 1; - } - std::unique_ptr > isrBuffer(new circular_queue((isrBufCapacity > 0) ? isrBufCapacity : (sizeof(uint8_t) * 8 + 2) * bufCapacity)); - m_isrBuffer = move(isrBuffer); - if (m_buffer && (!m_parityMode || m_parityBuffer) && m_isrBuffer) { - m_rxValid = true; - pinMode(m_rxPin, INPUT_PULLUP); - } - } - if (isValidGPIOpin(m_txPin) -#ifdef ESP8266 - || ((m_txPin == 16) && !m_oneWire)) { -#else - ) { -#endif - m_txValid = true; - if (!m_oneWire) { - pinMode(m_txPin, OUTPUT); - digitalWrite(m_txPin, !m_invert); - } - } - if (!m_rxEnabled) { enableRx(true); } -} - -void SoftwareSerial::end() -{ - enableRx(false); - m_txValid = false; - if (m_buffer) { - m_buffer.reset(); - } - m_parityBuffer.reset(); - if (m_isrBuffer) { - m_isrBuffer.reset(); - } -} - -uint32_t SoftwareSerial::baudRate() { - return ESP.getCpuFreqMHz() * 1000000UL / m_bitCycles; -} - -void SoftwareSerial::setTransmitEnablePin(int8_t txEnablePin) { - if (isValidGPIOpin(txEnablePin)) { - m_txEnableValid = true; - m_txEnablePin = txEnablePin; - pinMode(m_txEnablePin, OUTPUT); - digitalWrite(m_txEnablePin, LOW); - } - else { - m_txEnableValid = false; - } -} - -void SoftwareSerial::enableIntTx(bool on) { - m_intTxEnabled = on; -} - -void SoftwareSerial::enableTx(bool on) { - if (m_txValid && m_oneWire) { - if (on) { - enableRx(false); - pinMode(m_txPin, OUTPUT); - digitalWrite(m_txPin, !m_invert); - } - else { - pinMode(m_rxPin, INPUT_PULLUP); - enableRx(true); - } - } -} - -void SoftwareSerial::enableRx(bool on) { - if (m_rxValid) { - if (on) { - m_rxCurBit = m_pduBits - 1; - // Init to stop bit level and current cycle - m_isrLastCycle = (ESP.getCycleCount() | 1) ^ m_invert; - if (m_bitCycles >= (ESP.getCpuFreqMHz() * 1000000UL) / 74880UL) - attachInterruptArg(digitalPinToInterrupt(m_rxPin), reinterpret_cast(rxBitISR), this, CHANGE); - else - attachInterruptArg(digitalPinToInterrupt(m_rxPin), reinterpret_cast(rxBitSyncISR), this, m_invert ? RISING : FALLING); - } - else { - detachInterrupt(digitalPinToInterrupt(m_rxPin)); - } - m_rxEnabled = on; - } -} - -int SoftwareSerial::read() { - if (!m_rxValid) { return -1; } - if (!m_buffer->available()) { - rxBits(); - if (!m_buffer->available()) { return -1; } - } - auto val = m_buffer->pop(); - if (m_parityBuffer) - { - m_lastReadParity = m_parityBuffer->peek() & m_parityOutPos; - m_parityOutPos <<= 1; - if (!m_parityOutPos) - { - m_parityOutPos = 1; - m_parityBuffer->pop(); - } - } - return val; -} - -size_t SoftwareSerial::read(uint8_t * buffer, size_t size) { - if (!m_rxValid) { return 0; } - size_t avail; - if (0 == (avail = m_buffer->pop_n(buffer, size))) { - rxBits(); - avail = m_buffer->pop_n(buffer, size); - } - if (!avail) return 0; - if (m_parityBuffer) { - uint32_t parityBits = avail; - while (m_parityOutPos >>= 1) ++parityBits; - m_parityOutPos = (1 << (parityBits % 8)); - m_parityBuffer->pop_n(nullptr, parityBits / 8); - } - return avail; -} - -size_t SoftwareSerial::readBytes(uint8_t * buffer, size_t size) { - if (!m_rxValid || !size) { return 0; } - size_t count = 0; - const auto start = millis(); - do { - count += read(&buffer[count], size - count); - if (count >= size) break; - yield(); - } while (millis() - start < _timeout); - return count; -} - -int SoftwareSerial::available() { - if (!m_rxValid) { return 0; } - rxBits(); - int avail = m_buffer->available(); - if (!avail) { - optimistic_yield(10000UL); - } - return avail; -} - -void ICACHE_RAM_ATTR SoftwareSerial::preciseDelay(bool sync) { - if (!sync) - { - // Reenable interrupts while delaying to avoid other tasks piling up - if (!m_intTxEnabled) { xt_wsr_ps(m_savedPS); } - auto expired = ESP.getCycleCount() - m_periodStart; - if (expired < m_periodDuration) - { - auto ms = (m_periodDuration - expired) / ESP.getCpuFreqMHz() / 1000UL; - if (ms) delay(ms); - } - while ((ESP.getCycleCount() - m_periodStart) < m_periodDuration) { optimistic_yield(10000); } - // Disable interrupts again - if (!m_intTxEnabled) { m_savedPS = xt_rsil(15); } - } - else - { - while ((ESP.getCycleCount() - m_periodStart) < m_periodDuration) {} - } - m_periodDuration = 0; - m_periodStart = ESP.getCycleCount(); -} - -void ICACHE_RAM_ATTR SoftwareSerial::writePeriod( - uint32_t dutyCycle, uint32_t offCycle, bool withStopBit) { - preciseDelay(true); - if (dutyCycle) - { - digitalWrite(m_txPin, HIGH); - m_periodDuration += dutyCycle; - if (offCycle || (withStopBit && !m_invert)) preciseDelay(!withStopBit || m_invert); - } - if (offCycle) - { - digitalWrite(m_txPin, LOW); - m_periodDuration += offCycle; - if (withStopBit && m_invert) preciseDelay(false); - } -} - -size_t SoftwareSerial::write(uint8_t byte) { - return write(&byte, 1); -} - -size_t SoftwareSerial::write(uint8_t byte, SoftwareSerialParity parity) { - return write(&byte, 1, parity); -} - -size_t SoftwareSerial::write(const uint8_t * buffer, size_t size) { - return write(buffer, size, m_parityMode); -} - -size_t ICACHE_RAM_ATTR SoftwareSerial::write(const uint8_t * buffer, size_t size, SoftwareSerialParity parity) { - if (m_rxValid) { rxBits(); } - if (!m_txValid) { return -1; } - - if (m_txEnableValid) { - digitalWrite(m_txEnablePin, HIGH); - } - // Stop bit: if inverted, LOW, otherwise HIGH - bool b = !m_invert; - uint32_t dutyCycle = 0; - uint32_t offCycle = 0; - if (!m_intTxEnabled) { - // Disable interrupts in order to get a clean transmit timing - m_savedPS = xt_rsil(15); - } - const uint32_t dataMask = ((1UL << m_dataBits) - 1); - bool withStopBit = true; - m_periodDuration = 0; - m_periodStart = ESP.getCycleCount(); - for (size_t cnt = 0; cnt < size; ++cnt) { - uint8_t byte = ~buffer[cnt] & dataMask; - // push LSB start-data-parity-stop bit pattern into uint32_t - // Stop bits: HIGH - uint32_t word = ~0UL; - // parity bit, if any - if (parity && m_parityMode) - { - uint32_t parityBit; - switch (parity) - { - case SWSERIAL_PARITY_EVEN: - // from inverted, so use odd parity - parityBit = byte; - parityBit ^= parityBit >> 4; - parityBit &= 0xf; - parityBit = (0x9669 >> parityBit) & 1; - break; - case SWSERIAL_PARITY_ODD: - // from inverted, so use even parity - parityBit = byte; - parityBit ^= parityBit >> 4; - parityBit &= 0xf; - parityBit = (0x6996 >> parityBit) & 1; - break; - case SWSERIAL_PARITY_MARK: - parityBit = false; - break; - case SWSERIAL_PARITY_SPACE: - // suppresses warning parityBit uninitialized - default: - parityBit = true; - break; - } - word ^= parityBit << m_dataBits; - } - word ^= byte; - // Stop bit: LOW - word <<= 1; - if (m_invert) word = ~word; - for (int i = 0; i <= m_pduBits; ++i) { - bool pb = b; - b = word & (1UL << i); - if (!pb && b) { - writePeriod(dutyCycle, offCycle, withStopBit); - withStopBit = false; - dutyCycle = offCycle = 0; - } - if (b) { - dutyCycle += m_bitCycles; - } - else { - offCycle += m_bitCycles; - } - } - withStopBit = true; - } - writePeriod(dutyCycle, offCycle, true); - if (!m_intTxEnabled) { - // restore the interrupt state - xt_wsr_ps(m_savedPS); - } - if (m_txEnableValid) { - digitalWrite(m_txEnablePin, LOW); - } - return size; -} - -void SoftwareSerial::flush() { - if (!m_rxValid) { return; } - m_buffer->flush(); - if (m_parityBuffer) - { - m_parityInPos = m_parityOutPos = 1; - m_parityBuffer->flush(); - } -} - -bool SoftwareSerial::overflow() { - bool res = m_overflow; - m_overflow = false; - return res; -} - -int SoftwareSerial::peek() { - if (!m_rxValid) { return -1; } - if (!m_buffer->available()) { - rxBits(); - if (!m_buffer->available()) return -1; - } - auto val = m_buffer->peek(); - if (m_parityBuffer) m_lastReadParity = m_parityBuffer->peek() & m_parityOutPos; - return val; -} - -void SoftwareSerial::rxBits() { - int isrAvail = m_isrBuffer->available(); -#ifdef ESP8266 - if (m_isrOverflow.load()) { - m_overflow = true; - m_isrOverflow.store(false); - } -#else - if (m_isrOverflow.exchange(false)) { - m_overflow = true; - } -#endif - - // stop bit can go undetected if leading data bits are at same level - // and there was also no next start bit yet, so one byte may be pending. - // low-cost check first - if (!isrAvail && m_rxCurBit >= -1 && m_rxCurBit < m_pduBits - m_stopBits) { - uint32_t detectionCycles = (m_pduBits - m_stopBits - m_rxCurBit) * m_bitCycles; - if (ESP.getCycleCount() - m_isrLastCycle > detectionCycles) { - // Produce faux stop bit level, prevents start bit maldetection - // cycle's LSB is repurposed for the level bit - rxBits(((m_isrLastCycle + detectionCycles) | 1) ^ m_invert); - } - } - - m_isrBuffer->for_each([this](const uint32_t& isrCycle) { rxBits(isrCycle); }); -} - -void SoftwareSerial::rxBits(const uint32_t & isrCycle) { - bool level = (m_isrLastCycle & 1) ^ m_invert; - - // error introduced by edge value in LSB of isrCycle is negligible - int32_t cycles = isrCycle - m_isrLastCycle; - m_isrLastCycle = isrCycle; - - uint8_t bits = cycles / m_bitCycles; - if (cycles % m_bitCycles > (m_bitCycles >> 1)) ++bits; - while (bits > 0) { - // start bit detection - if (m_rxCurBit >= (m_pduBits - 1)) { - // leading edge of start bit - if (level) break; - m_rxCurBit = -1; - --bits; - continue; - } - // data bits - if (m_rxCurBit >= -1 && m_rxCurBit < (m_dataBits - 1)) { - int8_t dataBits = min(bits, static_cast(m_dataBits - 1 - m_rxCurBit)); - m_rxCurBit += dataBits; - bits -= dataBits; - m_rxCurByte >>= dataBits; - if (level) { m_rxCurByte |= (BYTE_ALL_BITS_SET << (8 - dataBits)); } - continue; - } - // parity bit - if (m_parityMode && m_rxCurBit == (m_dataBits - 1)) { - ++m_rxCurBit; - --bits; - m_rxCurParity = level; - continue; - } - // stop bits - if (m_rxCurBit < (m_pduBits - m_stopBits - 1)) { - ++m_rxCurBit; - --bits; - continue; - } - if (m_rxCurBit == (m_pduBits - m_stopBits - 1)) { - // Store the received value in the buffer unless we have an overflow - // if not high stop bit level, discard word - if (level) - { - m_rxCurByte >>= (sizeof(uint8_t) * 8 - m_dataBits); - if (!m_buffer->push(m_rxCurByte)) { - m_overflow = true; - } - else { - if (m_parityBuffer) - { - if (m_rxCurParity) { - m_parityBuffer->pushpeek() |= m_parityInPos; - } - else { - m_parityBuffer->pushpeek() &= ~m_parityInPos; - } - m_parityInPos <<= 1; - if (!m_parityInPos) - { - m_parityBuffer->push(); - m_parityInPos = 1; - } - } - } - } - m_rxCurBit = m_pduBits; - // reset to 0 is important for masked bit logic - m_rxCurByte = 0; - m_rxCurParity = false; - break; - } - break; - } -} - -void ICACHE_RAM_ATTR SoftwareSerial::rxBitISR(SoftwareSerial * self) { - uint32_t curCycle = ESP.getCycleCount(); - bool level = digitalRead(self->m_rxPin); - - // Store level and cycle in the buffer unless we have an overflow - // cycle's LSB is repurposed for the level bit - if (!self->m_isrBuffer->push((curCycle | 1U) ^ !level)) self->m_isrOverflow.store(true); -} - -void ICACHE_RAM_ATTR SoftwareSerial::rxBitSyncISR(SoftwareSerial * self) { - uint32_t start = ESP.getCycleCount(); - uint32_t wait = self->m_bitCycles - 172U; - - bool level = self->m_invert; - // Store level and cycle in the buffer unless we have an overflow - // cycle's LSB is repurposed for the level bit - if (!self->m_isrBuffer->push(((start + wait) | 1U) ^ !level)) self->m_isrOverflow.store(true); - - for (uint32_t i = 0; i < self->m_pduBits; ++i) { - while (ESP.getCycleCount() - start < wait) {}; - wait += self->m_bitCycles; - - // Store level and cycle in the buffer unless we have an overflow - // cycle's LSB is repurposed for the level bit - if (digitalRead(self->m_rxPin) != level) - { - if (!self->m_isrBuffer->push(((start + wait) | 1U) ^ level)) self->m_isrOverflow.store(true); - level = !level; - } - } -} - -void SoftwareSerial::onReceive(Delegate handler) { - receiveHandler = handler; -} - -void SoftwareSerial::perform_work() { - if (!m_rxValid) { return; } - rxBits(); - if (receiveHandler) { - int avail = m_buffer->available(); - if (avail) { receiveHandler(avail); } - } -} diff --git a/lib/EspSoftwareSerial/src/SoftwareSerial.h b/lib/EspSoftwareSerial/src/SoftwareSerial.h deleted file mode 100644 index 371e3731..00000000 --- a/lib/EspSoftwareSerial/src/SoftwareSerial.h +++ /dev/null @@ -1,255 +0,0 @@ -/* -SoftwareSerial.h - -SoftwareSerial.cpp - Implementation of the Arduino software serial for ESP8266/ESP32. -Copyright (c) 2015-2016 Peter Lerup. All rights reserved. -Copyright (c) 2018-2019 Dirk O. Kaar. All rights reserved. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - -#ifndef __SoftwareSerial_h -#define __SoftwareSerial_h - -#include "circular_queue/circular_queue.h" -#include - -enum SoftwareSerialParity : uint8_t { - SWSERIAL_PARITY_NONE = 000, - SWSERIAL_PARITY_EVEN = 020, - SWSERIAL_PARITY_ODD = 030, - SWSERIAL_PARITY_MARK = 040, - SWSERIAL_PARITY_SPACE = 070, -}; - -enum SoftwareSerialConfig { - SWSERIAL_5N1 = SWSERIAL_PARITY_NONE, - SWSERIAL_6N1, - SWSERIAL_7N1, - SWSERIAL_8N1, - SWSERIAL_5E1 = SWSERIAL_PARITY_EVEN, - SWSERIAL_6E1, - SWSERIAL_7E1, - SWSERIAL_8E1, - SWSERIAL_5O1 = SWSERIAL_PARITY_ODD, - SWSERIAL_6O1, - SWSERIAL_7O1, - SWSERIAL_8O1, - SWSERIAL_5M1 = SWSERIAL_PARITY_MARK, - SWSERIAL_6M1, - SWSERIAL_7M1, - SWSERIAL_8M1, - SWSERIAL_5S1 = SWSERIAL_PARITY_SPACE, - SWSERIAL_6S1, - SWSERIAL_7S1, - SWSERIAL_8S1, - SWSERIAL_5N2 = 0200 | SWSERIAL_PARITY_NONE, - SWSERIAL_6N2, - SWSERIAL_7N2, - SWSERIAL_8N2, - SWSERIAL_5E2 = 0200 | SWSERIAL_PARITY_EVEN, - SWSERIAL_6E2, - SWSERIAL_7E2, - SWSERIAL_8E2, - SWSERIAL_5O2 = 0200 | SWSERIAL_PARITY_ODD, - SWSERIAL_6O2, - SWSERIAL_7O2, - SWSERIAL_8O2, - SWSERIAL_5M2 = 0200 | SWSERIAL_PARITY_MARK, - SWSERIAL_6M2, - SWSERIAL_7M2, - SWSERIAL_8M2, - SWSERIAL_5S2 = 0200 | SWSERIAL_PARITY_SPACE, - SWSERIAL_6S2, - SWSERIAL_7S2, - SWSERIAL_8S2, -}; - -/// This class is compatible with the corresponding AVR one, however, -/// the constructor takes no arguments, for compatibility with the -/// HardwareSerial class. -/// Instead, the begin() function handles pin assignments and logic inversion. -/// It also has optional input buffer capacity arguments for byte buffer and ISR bit buffer. -/// Bitrates up to at least 115200 can be used. -class SoftwareSerial : public Stream { -public: - SoftwareSerial(); - /// Ctor to set defaults for pins. - /// @param rxPin the GPIO pin used for RX - /// @param txPin -1 for onewire protocol, GPIO pin used for twowire TX - SoftwareSerial(int8_t rxPin, int8_t txPin = -1, bool invert = false); - SoftwareSerial(const SoftwareSerial&) = delete; - SoftwareSerial& operator= (const SoftwareSerial&) = delete; - virtual ~SoftwareSerial(); - /// Configure the SoftwareSerial object for use. - /// @param baud the TX/RX bitrate - /// @param config sets databits, parity, and stop bit count - /// @param rxPin -1 or default: either no RX pin, or keeps the rxPin set in the ctor - /// @param txPin -1 or default: either no TX pin (onewire), or keeps the txPin set in the ctor - /// @param invert true: uses invert line level logic - /// @param bufCapacity the capacity for the received bytes buffer - /// @param isrBufCapacity 0: derived from bufCapacity. The capacity of the internal asynchronous - /// bit receive buffer, a suggested size is bufCapacity times the sum of - /// start, data, parity and stop bit count. - void begin(uint32_t baud, SoftwareSerialConfig config, - int8_t rxPin, int8_t txPin, bool invert, - int bufCapacity = 64, int isrBufCapacity = 0); - void begin(uint32_t baud, SoftwareSerialConfig config, - int8_t rxPin, int8_t txPin) { - begin(baud, config, rxPin, txPin, m_invert); - } - void begin(uint32_t baud, SoftwareSerialConfig config, - int8_t rxPin) { - begin(baud, config, rxPin, m_txPin, m_invert); - } - void begin(uint32_t baud, SoftwareSerialConfig config = SWSERIAL_8N1) { - begin(baud, config, m_rxPin, m_txPin, m_invert); - } - - uint32_t baudRate(); - /// Transmit control pin. - void setTransmitEnablePin(int8_t txEnablePin); - /// Enable or disable interrupts during tx. - void enableIntTx(bool on); - - bool overflow(); - - int available() override; - int availableForWrite() { - if (!m_txValid) return 0; - return 1; - } - int peek() override; - int read() override; - /// @returns The verbatim parity bit associated with the last read() or peek() call - bool readParity() - { - return m_lastReadParity; - } - /// @returns The calculated bit for even parity of the parameter byte - static bool parityEven(uint8_t byte) { - byte ^= byte >> 4; - byte &= 0xf; - return (0x6996 >> byte) & 1; - } - /// @returns The calculated bit for odd parity of the parameter byte - static bool parityOdd(uint8_t byte) { - byte ^= byte >> 4; - byte &= 0xf; - return (0x9669 >> byte) & 1; - } - /// The read(buffer, size) functions are non-blocking, the same as readBytes but without timeout - size_t read(uint8_t* buffer, size_t size); - /// The read(buffer, size) functions are non-blocking, the same as readBytes but without timeout - size_t read(char* buffer, size_t size) { - return read(reinterpret_cast(buffer), size); - } - /// @returns The number of bytes read into buffer, up to size. Times out if the limit set through - /// Stream::setTimeout() is reached. - size_t readBytes(uint8_t* buffer, size_t size) override; - /// @returns The number of bytes read into buffer, up to size. Times out if the limit set through - /// Stream::setTimeout() is reached. - size_t readBytes(char* buffer, size_t size) override { - return readBytes(reinterpret_cast(buffer), size); - } - void flush() override; - size_t write(uint8_t byte) override; - size_t write(uint8_t byte, SoftwareSerialParity parity); - size_t write(const uint8_t* buffer, size_t size) override; - size_t write(const char* buffer, size_t size) { - return write(reinterpret_cast(buffer), size); - } - size_t write(const uint8_t* buffer, size_t size, SoftwareSerialParity parity); - size_t write(const char* buffer, size_t size, SoftwareSerialParity parity) { - return write(reinterpret_cast(buffer), size, parity); - } - operator bool() const { return m_rxValid || m_txValid; } - - /// Disable or enable interrupts on the rx pin. - void enableRx(bool on); - /// One wire control. - void enableTx(bool on); - - // AVR compatibility methods. - bool listen() { enableRx(true); return true; } - void end(); - bool isListening() { return m_rxEnabled; } - bool stopListening() { enableRx(false); return true; } - - /// Set an event handler for received data. - void onReceive(Delegate handler); - - /// Run the internal processing and event engine. Can be iteratively called - /// from loop, or otherwise scheduled. - void perform_work(); - - using Print::write; - -private: - // If sync is false, it's legal to exceed the deadline, for instance, - // by enabling interrupts. - void preciseDelay(bool sync); - // If withStopBit is set, either cycle contains a stop bit. - // If dutyCycle == 0, the level is not forced to HIGH. - // If offCycle == 0, the level remains unchanged from dutyCycle. - void writePeriod( - uint32_t dutyCycle, uint32_t offCycle, bool withStopBit); - bool isValidGPIOpin(int8_t pin); - /* check m_rxValid that calling is safe */ - void rxBits(); - void rxBits(const uint32_t& isrCycle); - - static void rxBitISR(SoftwareSerial* self); - static void rxBitSyncISR(SoftwareSerial* self); - - // Member variables - int8_t m_rxPin = -1; - int8_t m_txPin = -1; - int8_t m_txEnablePin = -1; - uint8_t m_dataBits; - bool m_oneWire; - bool m_rxValid = false; - bool m_rxEnabled = false; - bool m_txValid = false; - bool m_txEnableValid = false; - bool m_invert; - /// PDU bits include data, parity and stop bits; the start bit is not counted. - uint8_t m_pduBits; - bool m_intTxEnabled; - SoftwareSerialParity m_parityMode; - uint8_t m_stopBits; - bool m_lastReadParity; - bool m_overflow = false; - uint32_t m_bitCycles; - uint8_t m_parityInPos; - uint8_t m_parityOutPos; - int8_t m_rxCurBit; // 0 thru (m_pduBits - m_stopBits - 1): data/parity bits. -1: start bit. (m_pduBits - 1): stop bit. - uint8_t m_rxCurByte = 0; - std::unique_ptr > m_buffer; - std::unique_ptr > m_parityBuffer; - uint32_t m_periodStart; - uint32_t m_periodDuration; - uint32_t m_savedPS = 0; - // the ISR stores the relative bit times in the buffer. The inversion corrected level is used as sign bit (2's complement): - // 1 = positive including 0, 0 = negative. - std::unique_ptr > m_isrBuffer; - std::atomic m_isrOverflow; - uint32_t m_isrLastCycle; - bool m_rxCurParity = false; - Delegate receiveHandler; -}; - -#endif // __SoftwareSerial_h diff --git a/lib/EspSoftwareSerial/src/circular_queue/Delegate.h b/lib/EspSoftwareSerial/src/circular_queue/Delegate.h deleted file mode 100644 index bd19c66e..00000000 --- a/lib/EspSoftwareSerial/src/circular_queue/Delegate.h +++ /dev/null @@ -1,1786 +0,0 @@ -/* -Delegate.h - An efficient interchangeable C function ptr and C++ std::function delegate -Copyright (c) 2019 Dirk O. Kaar. All rights reserved. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef __Delegate_h -#define __Delegate_h - -#if defined(ESP8266) -#include -#elif defined(ESP32) -#include -#else -#define ICACHE_RAM_ATTR -#define IRAM_ATTR -#endif - -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) -#include -#include -#else -#include "circular_queue/ghostl.h" -#endif - -namespace detail -{ - template - static R IRAM_ATTR vPtrToFunPtrExec(void* fn, P... args) - { - using target_type = R(P...); - return reinterpret_cast(fn)(std::forward(args...)); - } - -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - template - class DelegatePImpl { - public: - using target_type = R(P...); - protected: - using FunPtr = target_type*; - using FunAPtr = R(*)(A, P...); - using FunVPPtr = R(*)(void*, P...); - using FunctionType = std::function; - public: - DelegatePImpl() - { - kind = FP; - fn = nullptr; - } - - DelegatePImpl(std::nullptr_t) - { - kind = FP; - fn = nullptr; - } - - ~DelegatePImpl() - { - if (FUNC == kind) - functional.~FunctionType(); - else if (FPA == kind) - obj.~A(); - } - - DelegatePImpl(const DelegatePImpl& del) - { - kind = del.kind; - if (FUNC == del.kind) - { - new (&functional) FunctionType(del.functional); - } - else if (FPA == del.kind) - { - fnA = del.fnA; - new (&obj) A(del.obj); - } - else - { - fn = del.fn; - } - } - - DelegatePImpl(DelegatePImpl&& del) - { - kind = del.kind; - if (FUNC == del.kind) - { - new (&functional) FunctionType(std::move(del.functional)); - } - else if (FPA == del.kind) - { - fnA = del.fnA; - new (&obj) A(std::move(del.obj)); - } - else - { - fn = del.fn; - } - } - - DelegatePImpl(FunAPtr fnA, const A& obj) - { - kind = FPA; - DelegatePImpl::fnA = fnA; - new (&this->obj) A(obj); - } - - DelegatePImpl(FunAPtr fnA, A&& obj) - { - kind = FPA; - DelegatePImpl::fnA = fnA; - new (&this->obj) A(std::move(obj)); - } - - DelegatePImpl(FunPtr fn) - { - kind = FP; - DelegatePImpl::fn = fn; - } - - template DelegatePImpl(F functional) - { - kind = FUNC; - new (&this->functional) FunctionType(std::forward(functional)); - } - - DelegatePImpl& operator=(const DelegatePImpl& del) - { - if (this == &del) return *this; - if (kind != del.kind) - { - if (FUNC == kind) - { - functional.~FunctionType(); - } - else if (FPA == kind) - { - obj.~A(); - } - if (FUNC == del.kind) - { - new (&this->functional) FunctionType(); - } - else if (FPA == del.kind) - { - new (&obj) A; - } - kind = del.kind; - } - if (FUNC == del.kind) - { - functional = del.functional; - } - else if (FPA == del.kind) - { - fnA = del.fnA; - obj = del.obj; - } - else - { - fn = del.fn; - } - return *this; - } - - DelegatePImpl& operator=(DelegatePImpl&& del) - { - if (this == &del) return *this; - if (kind != del.kind) - { - if (FUNC == kind) - { - functional.~FunctionType(); - } - else if (FPA == kind) - { - obj.~A(); - } - if (FUNC == del.kind) - { - new (&this->functional) FunctionType(); - } - else if (FPA == del.kind) - { - new (&obj) A; - } - kind = del.kind; - } - if (FUNC == del.kind) - { - functional = std::move(del.functional); - } - else if (FPA == del.kind) - { - fnA = del.fnA; - obj = std::move(del.obj); - } - else - { - fn = del.fn; - } - return *this; - } - - DelegatePImpl& operator=(FunPtr fn) - { - if (FUNC == kind) - { - functional.~FunctionType(); - } - else if (FPA == kind) - { - obj.~A(); - } - kind = FP; - this->fn = fn; - return *this; - } - - DelegatePImpl& IRAM_ATTR operator=(std::nullptr_t) - { - if (FUNC == kind) - { - functional.~FunctionType(); - } - else if (FPA == kind) - { - obj.~A(); - } - kind = FP; - fn = nullptr; - return *this; - } - - operator bool() const - { - if (FP == kind) - { - return fn; - } - else if (FPA == kind) - { - return fnA; - } - else - { - return functional ? true : false; - } - } - - static R IRAM_ATTR vPtrToFunAPtrExec(void* self, P... args) - { - return static_cast(self)->fnA( - static_cast(self)->obj, - std::forward(args...)); - }; - - operator FunVPPtr() const - { - if (FP == kind) - { - return vPtrToFunPtrExec; - } - else if (FPA == kind) - { - return vPtrToFunAPtrExec; - } - else - { - return [](void* self, P... args) -> R - { - return static_cast(self)->functional(std::forward(args...)); - }; - } - } - - void* arg() const - { - if (FP == kind) - { - return reinterpret_cast(fn); - } - else - { - return const_cast(this); - } - } - - operator FunctionType() const - { - if (FP == kind) - { - return fn; - } - else if (FPA == kind) - { - return [this](P... args) { return fnA(obj, std::forward(args...)); }; - } - else - { - return functional; - } - } - - R IRAM_ATTR operator()(P... args) const - { - if (FP == kind) - { - return fn(std::forward(args...)); - } - else if (FPA == kind) - { - return fnA(obj, std::forward(args...)); - } - else - { - return functional(std::forward(args...)); - } - } - - protected: - enum { FUNC, FP, FPA } kind; - union { - FunctionType functional; - FunPtr fn; - struct { - FunAPtr fnA; - A obj; - }; - }; - }; -#else - template - class DelegatePImpl { - public: - using target_type = R(P...); - protected: - using FunPtr = target_type*; - using FunAPtr = R(*)(A, P...); - using FunVPPtr = R(*)(void*, P...); - public: - DelegatePImpl() - { - kind = FP; - fn = nullptr; - } - - DelegatePImpl(std::nullptr_t) - { - kind = FP; - fn = nullptr; - } - - DelegatePImpl(const DelegatePImpl& del) - { - kind = del.kind; - if (FPA == del.kind) - { - fnA = del.fnA; - obj = del.obj; - } - else - { - fn = del.fn; - } - } - - DelegatePImpl(DelegatePImpl&& del) - { - kind = del.kind; - if (FPA == del.kind) - { - fnA = del.fnA; - obj = std::move(del.obj); - } - else - { - fn = del.fn; - } - } - - DelegatePImpl(FunAPtr fnA, const A& obj) - { - kind = FPA; - DelegatePImpl::fnA = fnA; - this->obj = obj; - } - - DelegatePImpl(FunAPtr fnA, A&& obj) - { - kind = FPA; - DelegatePImpl::fnA = fnA; - this->obj = std::move(obj); - } - - DelegatePImpl(FunPtr fn) - { - kind = FP; - DelegatePImpl::fn = fn; - } - - template DelegatePImpl(F fn) - { - kind = FP; - DelegatePImpl::fn = std::forward(fn); - } - - DelegatePImpl& operator=(const DelegatePImpl& del) - { - if (this == &del) return *this; - if (kind != del.kind) - { - if (FPA == kind) - { - obj = {}; - } - kind = del.kind; - } - if (FPA == del.kind) - { - fnA = del.fnA; - obj = del.obj; - } - else - { - fn = del.fn; - } - return *this; - } - - DelegatePImpl& operator=(DelegatePImpl&& del) - { - if (this == &del) return *this; - if (kind != del.kind) - { - if (FPA == kind) - { - obj = {}; - } - kind = del.kind; - } - if (FPA == del.kind) - { - fnA = del.fnA; - obj = std::move(del.obj); - } - else - { - fn = del.fn; - } - return *this; - } - - DelegatePImpl& operator=(FunPtr fn) - { - if (FPA == kind) - { - obj = {}; - } - kind = FP; - this->fn = fn; - return *this; - } - - DelegatePImpl& IRAM_ATTR operator=(std::nullptr_t) - { - if (FPA == kind) - { - obj = {}; - } - kind = FP; - fn = nullptr; - return *this; - } - - operator bool() const - { - if (FP == kind) - { - return fn; - } - else - { - return fnA; - } - } - - static R IRAM_ATTR vPtrToFunAPtrExec(void* self, P... args) - { - return static_cast(self)->fnA( - static_cast(self)->obj, - std::forward(args...)); - }; - - operator FunVPPtr() const - { - if (FP == kind) - { - return vPtrToFunPtrExec; - } - else - { - return vPtrToFunAPtrExec; - } - } - - void* arg() const - { - if (FP == kind) - { - return reinterpret_cast(fn); - } - else - { - return const_cast(this); - } - } - - R IRAM_ATTR operator()(P... args) const - { - if (FP == kind) - { - return fn(std::forward(args...)); - } - else - { - return fnA(obj, std::forward(args...)); - } - } - - protected: - enum { FP, FPA } kind; - union { - FunPtr fn; - FunAPtr fnA; - }; - A obj; - }; -#endif - -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - template - class DelegatePImpl { - public: - using target_type = R(P...); - protected: - using FunPtr = target_type*; - using FunctionType = std::function; - using FunVPPtr = R(*)(void*, P...); - public: - DelegatePImpl() - { - kind = FP; - fn = nullptr; - } - - DelegatePImpl(std::nullptr_t) - { - kind = FP; - fn = nullptr; - } - - ~DelegatePImpl() - { - if (FUNC == kind) - functional.~FunctionType(); - } - - DelegatePImpl(const DelegatePImpl& del) - { - kind = del.kind; - if (FUNC == del.kind) - { - new (&functional) FunctionType(del.functional); - } - else - { - fn = del.fn; - } - } - - DelegatePImpl(DelegatePImpl&& del) - { - kind = del.kind; - if (FUNC == del.kind) - { - new (&functional) FunctionType(std::move(del.functional)); - } - else - { - fn = del.fn; - } - } - - DelegatePImpl(FunPtr fn) - { - kind = FP; - DelegatePImpl::fn = fn; - } - - template DelegatePImpl(F functional) - { - kind = FUNC; - new (&this->functional) FunctionType(std::forward(functional)); - } - - DelegatePImpl& operator=(const DelegatePImpl& del) - { - if (this == &del) return *this; - if (FUNC == kind && FUNC != del.kind) - { - functional.~FunctionType(); - } - else if (FUNC != kind && FUNC == del.kind) - { - new (&this->functional) FunctionType(); - } - kind = del.kind; - if (FUNC == del.kind) - { - functional = del.functional; - } - else - { - fn = del.fn; - } - return *this; - } - - DelegatePImpl& operator=(DelegatePImpl&& del) - { - if (this == &del) return *this; - if (FUNC == kind && FUNC != del.kind) - { - functional.~FunctionType(); - } - else if (FUNC != kind && FUNC == del.kind) - { - new (&this->functional) FunctionType(); - } - kind = del.kind; - if (FUNC == del.kind) - { - functional = std::move(del.functional); - } - else - { - fn = del.fn; - } - return *this; - } - - DelegatePImpl& operator=(FunPtr fn) - { - if (FUNC == kind) - { - functional.~FunctionType(); - kind = FP; - } - DelegatePImpl::fn = fn; - return *this; - } - - DelegatePImpl& IRAM_ATTR operator=(std::nullptr_t) - { - if (FUNC == kind) - { - functional.~FunctionType(); - } - kind = FP; - fn = nullptr; - return *this; - } - - operator bool() const - { - if (FP == kind) - { - return fn; - } - else - { - return functional ? true : false; - } - } - - operator FunVPPtr() const - { - if (FP == kind) - { - return vPtrToFunPtrExec; - } - else - { - return [](void* self, P... args) -> R - { - return static_cast(self)->functional(std::forward(args...)); - }; - } - } - - void* arg() const - { - if (FP == kind) - { - return reinterpret_cast(fn); - } - else - { - return const_cast(this); - } - } - - operator FunctionType() const - { - if (FP == kind) - { - return fn; - } - else - { - return functional; - } - } - - R IRAM_ATTR operator()(P... args) const - { - if (FP == kind) - { - return fn(std::forward(args...)); - } - else - { - return functional(std::forward(args...)); - } - } - - protected: - enum { FUNC, FP } kind; - union { - FunctionType functional; - FunPtr fn; - }; - }; -#else - template - class DelegatePImpl { - public: - using target_type = R(P...); - protected: - using FunPtr = target_type*; - using FunVPPtr = R(*)(void*, P...); - public: - DelegatePImpl() - { - fn = nullptr; - } - - DelegatePImpl(std::nullptr_t) - { - fn = nullptr; - } - - DelegatePImpl(const DelegatePImpl& del) - { - fn = del.fn; - } - - DelegatePImpl(DelegatePImpl&& del) - { - fn = std::move(del.fn); - } - - DelegatePImpl(FunPtr fn) - { - DelegatePImpl::fn = fn; - } - - template DelegatePImpl(F fn) - { - DelegatePImpl::fn = std::forward(fn); - } - - DelegatePImpl& operator=(const DelegatePImpl& del) - { - if (this == &del) return *this; - fn = del.fn; - return *this; - } - - DelegatePImpl& operator=(DelegatePImpl&& del) - { - if (this == &del) return *this; - fn = std::move(del.fn); - return *this; - } - - DelegatePImpl& operator=(FunPtr fn) - { - DelegatePImpl::fn = fn; - return *this; - } - - DelegatePImpl& IRAM_ATTR operator=(std::nullptr_t) - { - fn = nullptr; - return *this; - } - - operator bool() const - { - return fn; - } - - operator FunVPPtr() const - { - return vPtrToFunPtrExec; - } - - void* arg() const - { - return reinterpret_cast(fn); - } - - R IRAM_ATTR operator()(P... args) const - { - return fn(std::forward(args...)); - } - - protected: - FunPtr fn; - }; -#endif - -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - template - class DelegateImpl { - public: - using target_type = R(); - protected: - using FunPtr = target_type*; - using FunAPtr = R(*)(A); - using FunctionType = std::function; - using FunVPPtr = R(*)(void*); - public: - DelegateImpl() - { - kind = FP; - fn = nullptr; - } - - DelegateImpl(std::nullptr_t) - { - kind = FP; - fn = nullptr; - } - - ~DelegateImpl() - { - if (FUNC == kind) - functional.~FunctionType(); - else if (FPA == kind) - obj.~A(); - } - - DelegateImpl(const DelegateImpl& del) - { - kind = del.kind; - if (FUNC == del.kind) - { - new (&functional) FunctionType(del.functional); - } - else if (FPA == del.kind) - { - fnA = del.fnA; - new (&obj) A(del.obj); - } - else - { - fn = del.fn; - } - } - - DelegateImpl(DelegateImpl&& del) - { - kind = del.kind; - if (FUNC == del.kind) - { - new (&functional) FunctionType(std::move(del.functional)); - } - else if (FPA == del.kind) - { - fnA = del.fnA; - new (&obj) A(std::move(del.obj)); - } - else - { - fn = del.fn; - } - } - - DelegateImpl(FunAPtr fnA, const A& obj) - { - kind = FPA; - DelegateImpl::fnA = fnA; - new (&this->obj) A(obj); - } - - DelegateImpl(FunAPtr fnA, A&& obj) - { - kind = FPA; - DelegateImpl::fnA = fnA; - new (&this->obj) A(std::move(obj)); - } - - DelegateImpl(FunPtr fn) - { - kind = FP; - DelegateImpl::fn = fn; - } - - template DelegateImpl(F functional) - { - kind = FUNC; - new (&this->functional) FunctionType(std::forward(functional)); - } - - DelegateImpl& operator=(const DelegateImpl& del) - { - if (this == &del) return *this; - if (kind != del.kind) - { - if (FUNC == kind) - { - functional.~FunctionType(); - } - else if (FPA == kind) - { - obj.~A(); - } - if (FUNC == del.kind) - { - new (&this->functional) FunctionType(); - } - else if (FPA == del.kind) - { - new (&obj) A; - } - kind = del.kind; - } - if (FUNC == del.kind) - { - functional = del.functional; - } - else if (FPA == del.kind) - { - fnA = del.fnA; - obj = del.obj; - } - else - { - fn = del.fn; - } - return *this; - } - - DelegateImpl& operator=(DelegateImpl&& del) - { - if (this == &del) return *this; - if (kind != del.kind) - { - if (FUNC == kind) - { - functional.~FunctionType(); - } - else if (FPA == kind) - { - obj.~A(); - } - if (FUNC == del.kind) - { - new (&this->functional) FunctionType(); - } - else if (FPA == del.kind) - { - new (&obj) A; - } - kind = del.kind; - } - if (FUNC == del.kind) - { - functional = std::move(del.functional); - } - else if (FPA == del.kind) - { - fnA = del.fnA; - obj = std::move(del.obj); - } - else - { - fn = del.fn; - } - return *this; - } - - DelegateImpl& operator=(FunPtr fn) - { - if (FUNC == kind) - { - functional.~FunctionType(); - } - else if (FPA == kind) - { - obj.~A(); - } - kind = FP; - this->fn = fn; - return *this; - } - - DelegateImpl& IRAM_ATTR operator=(std::nullptr_t) - { - if (FUNC == kind) - { - functional.~FunctionType(); - } - else if (FPA == kind) - { - obj.~A(); - } - kind = FP; - fn = nullptr; - return *this; - } - - operator bool() const - { - if (FP == kind) - { - return fn; - } - else if (FPA == kind) - { - return fnA; - } - else - { - return functional ? true : false; - } - } - - static R IRAM_ATTR vPtrToFunAPtrExec(void* self) - { - return static_cast(self)->fnA( - static_cast(self)->obj); - }; - - operator FunVPPtr() const - { - if (FP == kind) - { - return reinterpret_cast(fn); - } - else if (FPA == kind) - { - return vPtrToFunAPtrExec; - } - else - { - return [](void* self) -> R - { - return static_cast(self)->functional(); - }; - } - } - - void* arg() const - { - if (FP == kind) - { - return nullptr; - } - else - { - return const_cast(this); - } - } - - operator FunctionType() const - { - if (FP == kind) - { - return fn; - } - else if (FPA == kind) - { - return [this]() { return fnA(obj); }; - } - else - { - return functional; - } - } - - R IRAM_ATTR operator()() const - { - if (FP == kind) - { - return fn(); - } - else if (FPA == kind) - { - return fnA(obj); - } - else - { - return functional(); - } - } - - protected: - enum { FUNC, FP, FPA } kind; - union { - FunctionType functional; - FunPtr fn; - struct { - FunAPtr fnA; - A obj; - }; - }; - }; -#else - template - class DelegateImpl { - public: - using target_type = R(); - protected: - using FunPtr = target_type*; - using FunAPtr = R(*)(A); - using FunVPPtr = R(*)(void*); - public: - DelegateImpl() - { - kind = FP; - fn = nullptr; - } - - DelegateImpl(std::nullptr_t) - { - kind = FP; - fn = nullptr; - } - - DelegateImpl(const DelegateImpl& del) - { - kind = del.kind; - if (FPA == del.kind) - { - fnA = del.fnA; - obj = del.obj; - } - else - { - fn = del.fn; - } - } - - DelegateImpl(DelegateImpl&& del) - { - kind = del.kind; - if (FPA == del.kind) - { - fnA = del.fnA; - obj = std::move(del.obj); - } - else - { - fn = del.fn; - } - } - - DelegateImpl(FunAPtr fnA, const A& obj) - { - kind = FPA; - DelegateImpl::fnA = fnA; - this->obj = obj; - } - - DelegateImpl(FunAPtr fnA, A&& obj) - { - kind = FPA; - DelegateImpl::fnA = fnA; - this->obj = std::move(obj); - } - - DelegateImpl(FunPtr fn) - { - kind = FP; - DelegateImpl::fn = fn; - } - - template DelegateImpl(F fn) - { - kind = FP; - DelegateImpl::fn = std::forward(fn); - } - - DelegateImpl& operator=(const DelegateImpl& del) - { - if (this == &del) return *this; - if (kind != del.kind) - { - if (FPA == kind) - { - obj = {}; - } - kind = del.kind; - } - if (FPA == del.kind) - { - fnA = del.fnA; - obj = del.obj; - } - else - { - fn = del.fn; - } - return *this; - } - - DelegateImpl& operator=(DelegateImpl&& del) - { - if (this == &del) return *this; - if (kind != del.kind) - { - if (FPA == kind) - { - obj = {}; - } - kind = del.kind; - } - if (FPA == del.kind) - { - fnA = del.fnA; - obj = std::move(del.obj); - } - else - { - fn = del.fn; - } - return *this; - } - - DelegateImpl& operator=(FunPtr fn) - { - if (FPA == kind) - { - obj = {}; - } - kind = FP; - this->fn = fn; - return *this; - } - - DelegateImpl& IRAM_ATTR operator=(std::nullptr_t) - { - if (FPA == kind) - { - obj = {}; - } - kind = FP; - fn = nullptr; - return *this; - } - - operator bool() const - { - if (FP == kind) - { - return fn; - } - else - { - return fnA; - } - } - - static R IRAM_ATTR vPtrToFunAPtrExec(void* self) - { - return static_cast(self)->fnA( - static_cast(self)->obj); - }; - - operator FunVPPtr() const - { - if (FP == kind) - { - return reinterpret_cast(fn); - } - else - { - return vPtrToFunAPtrExec; - } - } - - void* arg() const - { - if (FP == kind) - { - return nullptr; - } - else - { - return const_cast(this); - } - } - - R IRAM_ATTR operator()() const - { - if (FP == kind) - { - return fn(); - } - else - { - return fnA(obj); - } - } - - protected: - enum { FP, FPA } kind; - union { - FunPtr fn; - FunAPtr fnA; - }; - A obj; - }; -#endif - -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - template - class DelegateImpl { - public: - using target_type = R(); - protected: - using FunPtr = target_type*; - using FunctionType = std::function; - using FunVPPtr = R(*)(void*); - public: - DelegateImpl() - { - kind = FP; - fn = nullptr; - } - - DelegateImpl(std::nullptr_t) - { - kind = FP; - fn = nullptr; - } - - ~DelegateImpl() - { - if (FUNC == kind) - functional.~FunctionType(); - } - - DelegateImpl(const DelegateImpl& del) - { - kind = del.kind; - if (FUNC == del.kind) - { - new (&functional) FunctionType(del.functional); - } - else - { - fn = del.fn; - } - } - - DelegateImpl(DelegateImpl&& del) - { - kind = del.kind; - if (FUNC == del.kind) - { - new (&functional) FunctionType(std::move(del.functional)); - } - else - { - fn = del.fn; - } - } - - DelegateImpl(FunPtr fn) - { - kind = FP; - DelegateImpl::fn = fn; - } - - template DelegateImpl(F functional) - { - kind = FUNC; - new (&this->functional) FunctionType(std::forward(functional)); - } - - DelegateImpl& operator=(const DelegateImpl& del) - { - if (this == &del) return *this; - if (FUNC == kind && FUNC != del.kind) - { - functional.~FunctionType(); - } - else if (FUNC != kind && FUNC == del.kind) - { - new (&this->functional) FunctionType(); - } - kind = del.kind; - if (FUNC == del.kind) - { - functional = del.functional; - } - else - { - fn = del.fn; - } - return *this; - } - - DelegateImpl& operator=(DelegateImpl&& del) - { - if (this == &del) return *this; - if (FUNC == kind && FUNC != del.kind) - { - functional.~FunctionType(); - } - else if (FUNC != kind && FUNC == del.kind) - { - new (&this->functional) FunctionType(); - } - kind = del.kind; - if (FUNC == del.kind) - { - functional = std::move(del.functional); - } - else - { - fn = del.fn; - } - return *this; - } - - DelegateImpl& operator=(FunPtr fn) - { - if (FUNC == kind) - { - functional.~FunctionType(); - kind = FP; - } - DelegateImpl::fn = fn; - return *this; - } - - DelegateImpl& IRAM_ATTR operator=(std::nullptr_t) - { - if (FUNC == kind) - { - functional.~FunctionType(); - } - kind = FP; - fn = nullptr; - return *this; - } - - operator bool() const - { - if (FP == kind) - { - return fn; - } - else - { - return functional ? true : false; - } - } - - operator FunVPPtr() const - { - if (FP == kind) - { - return reinterpret_cast(fn); - } - else - { - return [](void* self) -> R - { - return static_cast(self)->functional(); - }; - } - } - - void* arg() const - { - if (FP == kind) - { - return nullptr; - } - else - { - return const_cast(this); - } - } - - operator FunctionType() const - { - if (FP == kind) - { - return fn; - } - else - { - return functional; - } - } - - R IRAM_ATTR operator()() const - { - if (FP == kind) - { - return fn(); - } - else - { - return functional(); - } - } - - protected: - enum { FUNC, FP } kind; - union { - FunctionType functional; - FunPtr fn; - }; - }; -#else - template - class DelegateImpl { - public: - using target_type = R(); - protected: - using FunPtr = target_type*; - using FunVPPtr = R(*)(void*); - public: - DelegateImpl() - { - fn = nullptr; - } - - DelegateImpl(std::nullptr_t) - { - fn = nullptr; - } - - DelegateImpl(const DelegateImpl& del) - { - fn = del.fn; - } - - DelegateImpl(DelegateImpl&& del) - { - fn = std::move(del.fn); - } - - DelegateImpl(FunPtr fn) - { - DelegateImpl::fn = fn; - } - - template DelegateImpl(F fn) - { - DelegateImpl::fn = std::forward(fn); - } - - DelegateImpl& operator=(const DelegateImpl& del) - { - if (this == &del) return *this; - fn = del.fn; - return *this; - } - - DelegateImpl& operator=(DelegateImpl&& del) - { - if (this == &del) return *this; - fn = std::move(del.fn); - return *this; - } - - DelegateImpl& operator=(FunPtr fn) - { - DelegateImpl::fn = fn; - return *this; - } - - DelegateImpl& IRAM_ATTR operator=(std::nullptr_t) - { - fn = nullptr; - return *this; - } - - operator bool() const - { - return fn; - } - - operator FunVPPtr() const - { - return reinterpret_cast(fn); - } - - void* arg() const - { - return nullptr; - } - - R IRAM_ATTR operator()() const - { - return fn(); - } - - protected: - FunPtr fn; - }; -#endif - - template - class Delegate : private detail::DelegatePImpl - { - private: - using typename detail::DelegatePImpl::FunVPPtr; -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - using typename detail::DelegatePImpl::FunctionType; -#endif - public: - using detail::DelegatePImpl::target_type; - using detail::DelegatePImpl::DelegatePImpl; - using detail::DelegatePImpl::operator=; - using detail::DelegatePImpl::operator bool; - using detail::DelegatePImpl::operator FunVPPtr; - using detail::DelegatePImpl::arg; -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - using detail::DelegatePImpl::operator FunctionType; -#endif - using detail::DelegatePImpl::operator(); - }; - - template - class Delegate : private detail::DelegatePImpl - { - private: - using typename detail::DelegatePImpl::FunVPPtr; -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - using typename detail::DelegatePImpl::FunctionType; -#endif - public: - using detail::DelegatePImpl::target_type; - using detail::DelegatePImpl::DelegatePImpl; - using detail::DelegatePImpl::operator=; - using detail::DelegatePImpl::operator bool; -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - using detail::DelegatePImpl::operator FunctionType; -#endif - using detail::DelegatePImpl::operator(); - operator FunVPPtr() const - { - if (detail::DelegatePImpl::FPA == detail::DelegatePImpl::kind) - { - return reinterpret_cast(detail::DelegatePImpl::fnA); - } - else - { - return detail::DelegatePImpl::operator FunVPPtr(); - } - } - void* arg() const - { - if (detail::DelegatePImpl::FPA == detail::DelegatePImpl::kind) - { - return detail::DelegatePImpl::obj; - } - else - { - return detail::DelegatePImpl::arg(); - } - } - }; - - template - class Delegate : private detail::DelegateImpl - { - private: - using typename detail::DelegateImpl::FunVPPtr; -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - using typename detail::DelegateImpl::FunctionType; -#endif - public: - using detail::DelegateImpl::target_type; - using detail::DelegateImpl::DelegateImpl; - using detail::DelegateImpl::operator=; - using detail::DelegateImpl::operator bool; - using detail::DelegateImpl::operator FunVPPtr; - using detail::DelegateImpl::arg; -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - using detail::DelegateImpl::operator FunctionType; -#endif - using detail::DelegateImpl::operator(); - }; - - template - class Delegate : private detail::DelegateImpl - { - private: - using typename detail::DelegateImpl::FunVPPtr; -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - using typename detail::DelegateImpl::FunctionType; -#endif - public: - using detail::DelegateImpl::target_type; - using detail::DelegateImpl::DelegateImpl; - using detail::DelegateImpl::operator=; - using detail::DelegateImpl::operator bool; -#if !defined(ARDUINO) || defined(ESP8266) || defined(ESP32) - using detail::DelegateImpl::operator FunctionType; -#endif - using detail::DelegateImpl::operator(); - operator FunVPPtr() const - { - if (detail::DelegateImpl::FPA == detail::DelegateImpl::kind) - { - return reinterpret_cast(detail::DelegateImpl::fnA); - } - else - { - return detail::DelegateImpl::operator FunVPPtr(); - } - } - void* arg() const - { - if (detail::DelegateImpl::FPA == detail::DelegateImpl::kind) - { - return detail::DelegateImpl::obj; - } - else - { - return detail::DelegateImpl::arg(); - } - } - }; - -} - -template class Delegate; -template class Delegate : public detail::Delegate -{ -public: - using detail::Delegate::Delegate; -}; -template class Delegate : public detail::Delegate -{ -public: - using detail::Delegate::Delegate; -}; - -#endif // __Delegate_h diff --git a/lib/EspSoftwareSerial/src/circular_queue/MultiDelegate.h b/lib/EspSoftwareSerial/src/circular_queue/MultiDelegate.h deleted file mode 100644 index 1fd4188d..00000000 --- a/lib/EspSoftwareSerial/src/circular_queue/MultiDelegate.h +++ /dev/null @@ -1,503 +0,0 @@ -/* -MultiDelegate.h - A queue or event multiplexer based on the efficient Delegate -class -Copyright (c) 2019 Dirk O. Kaar. All rights reserved. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef __MULTIDELEGATE_H -#define __MULTIDELEGATE_H - -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) -#include -#else -#include "circular_queue/ghostl.h" -#endif - -#if defined(ESP8266) -#include -using esp8266::InterruptLock; -#elif defined(ARDUINO) -class InterruptLock { -public: - InterruptLock() { - noInterrupts(); - } - ~InterruptLock() { - interrupts(); - } -}; -#else -#include -#endif - -namespace detail -{ - namespace - { - template< typename Delegate, typename R, bool ISQUEUE = false, typename... P> - struct CallP - { - static R execute(Delegate& del, P... args) - { - return del(std::forward(args...)) ? !ISQUEUE : ISQUEUE; - } - }; - - template< typename Delegate, bool ISQUEUE, typename... P> - struct CallP - { - static bool execute(Delegate& del, P... args) - { - del(std::forward(args...)); - return !ISQUEUE; - } - }; - - template< typename Delegate, typename R, bool ISQUEUE = false> - struct Call - { - static R execute(Delegate& del) - { - return del() ? !ISQUEUE : ISQUEUE; - } - }; - - template< typename Delegate, bool ISQUEUE> - struct Call - { - static bool execute(Delegate& del) - { - del(); - return !ISQUEUE; - } - }; - }; - - template< typename Delegate, typename R = void, bool ISQUEUE = false, uint32_t QUEUE_CAPACITY = 32, typename... P> - class MultiDelegatePImpl - { - public: - MultiDelegatePImpl() = default; - ~MultiDelegatePImpl() - { - *this = nullptr; - } - - MultiDelegatePImpl(const MultiDelegatePImpl&) = delete; - MultiDelegatePImpl& operator=(const MultiDelegatePImpl&) = delete; - - MultiDelegatePImpl(MultiDelegatePImpl&& md) - { - first = md.first; - last = md.last; - unused = md.unused; - nodeCount = md.nodeCount; - md.first = nullptr; - md.last = nullptr; - md.unused = nullptr; - md.nodeCount = 0; - } - - MultiDelegatePImpl(const Delegate& del) - { - add(del); - } - - MultiDelegatePImpl(Delegate&& del) - { - add(std::move(del)); - } - - MultiDelegatePImpl& operator=(MultiDelegatePImpl&& md) - { - first = md.first; - last = md.last; - unused = md.unused; - nodeCount = md.nodeCount; - md.first = nullptr; - md.last = nullptr; - md.unused = nullptr; - md.nodeCount = 0; - return *this; - } - - MultiDelegatePImpl& operator=(std::nullptr_t) - { - if (last) - last->mNext = unused; - if (first) - unused = first; - while (unused) - { - auto to_delete = unused; - unused = unused->mNext; - delete(to_delete); - } - return *this; - } - - MultiDelegatePImpl& operator+=(const Delegate& del) - { - add(del); - return *this; - } - - MultiDelegatePImpl& operator+=(Delegate&& del) - { - add(std::move(del)); - return *this; - } - - protected: - struct Node_t - { - ~Node_t() - { - mDelegate = nullptr; // special overload in Delegate - } - Node_t* mNext = nullptr; - Delegate mDelegate; - }; - - Node_t* first = nullptr; - Node_t* last = nullptr; - Node_t* unused = nullptr; - uint32_t nodeCount = 0; - - // Returns a pointer to an unused Node_t, - // or if none are available allocates a new one, - // or nullptr if limit is reached - Node_t* IRAM_ATTR get_node_unsafe() - { - Node_t* result = nullptr; - // try to get an item from unused items list - if (unused) - { - result = unused; - unused = unused->mNext; - } - // if no unused items, and count not too high, allocate a new one - else if (nodeCount < QUEUE_CAPACITY) - { -#if defined(ESP8266) || defined(ESP32) - result = new (std::nothrow) Node_t; -#else - result = new Node_t; -#endif - if (result) - ++nodeCount; - } - return result; - } - - void recycle_node_unsafe(Node_t* node) - { - node->mDelegate = nullptr; // special overload in Delegate - node->mNext = unused; - unused = node; - } - -#ifndef ARDUINO - std::mutex mutex_unused; -#endif - public: - const Delegate* IRAM_ATTR add(const Delegate& del) - { - return add(Delegate(del)); - } - - const Delegate* IRAM_ATTR add(Delegate&& del) - { - if (!del) - return nullptr; - -#ifdef ARDUINO - InterruptLock lockAllInterruptsInThisScope; -#else - std::lock_guard lock(mutex_unused); -#endif - - Node_t* item = ISQUEUE ? get_node_unsafe() : -#if defined(ESP8266) || defined(ESP32) - new (std::nothrow) Node_t; -#else - new Node_t; -#endif - if (!item) - return nullptr; - - item->mDelegate = std::move(del); - item->mNext = nullptr; - - if (last) - last->mNext = item; - else - first = item; - last = item; - - return &item->mDelegate; - } - - bool remove(const Delegate* del) - { - auto current = first; - if (!current) - return false; - - Node_t* prev = nullptr; - do - { - if (del == ¤t->mDelegate) - { - // remove callback from stack -#ifdef ARDUINO - InterruptLock lockAllInterruptsInThisScope; -#else - std::lock_guard lock(mutex_unused); -#endif - - auto to_recycle = current; - - // removing rLast - if (last == current) - last = prev; - - current = current->mNext; - if (prev) - { - prev->mNext = current; - } - else - { - first = current; - } - - if (ISQUEUE) - recycle_node_unsafe(to_recycle); - else - delete to_recycle; - return true; - } - else - { - prev = current; - current = current->mNext; - } - } while (current); - return false; - } - - void operator()(P... args) - { - auto current = first; - if (!current) - return; - - static std::atomic fence(false); - // prevent recursive calls -#if defined(ARDUINO) && !defined(ESP32) - if (fence.load()) return; - fence.store(true); -#else - if (fence.exchange(true)) return; -#endif - - Node_t* prev = nullptr; - // prevent execution of new callbacks during this run - auto stop = last; - - bool done; - do - { - done = current == stop; - if (!CallP::execute(current->mDelegate, args...)) - { - // remove callback from stack -#ifdef ARDUINO - InterruptLock lockAllInterruptsInThisScope; -#else - std::lock_guard lock(mutex_unused); -#endif - - auto to_recycle = current; - - // removing rLast - if (last == current) - last = prev; - - current = current->mNext; - if (prev) - { - prev->mNext = current; - } - else - { - first = current; - } - - if (ISQUEUE) - recycle_node_unsafe(to_recycle); - else - delete to_recycle; - } - else - { - prev = current; - current = current->mNext; - } - -#if defined(ESP8266) || defined(ESP32) - // running callbacks might last too long for watchdog etc. - optimistic_yield(10000); -#endif - } while (current && !done); - - fence.store(false); - } - }; - - template< typename Delegate, typename R = void, bool ISQUEUE = false, uint32_t QUEUE_CAPACITY = 32> - class MultiDelegateImpl : public MultiDelegatePImpl - { - protected: - using typename MultiDelegatePImpl::Node_t; - using MultiDelegatePImpl::first; - using MultiDelegatePImpl::last; - using MultiDelegatePImpl::unused; - using MultiDelegatePImpl::nodeCount; - using MultiDelegatePImpl::recycle_node_unsafe; -#ifndef ARDUINO - using MultiDelegatePImpl::mutex_unused; -#endif - - public: - using MultiDelegatePImpl::MultiDelegatePImpl; - - void operator()() - { - auto current = first; - if (!current) - return; - - static std::atomic fence(false); - // prevent recursive calls -#if defined(ARDUINO) && !defined(ESP32) - if (fence.load()) return; - fence.store(true); -#else - if (fence.exchange(true)) return; -#endif - - Node_t* prev = nullptr; - // prevent execution of new callbacks during this run - auto stop = last; - - bool done; - do - { - done = current == stop; - if (!Call::execute(current->mDelegate)) - { - // remove callback from stack -#ifdef ARDUINO - InterruptLock lockAllInterruptsInThisScope; -#else - std::lock_guard lock(mutex_unused); -#endif - - auto to_recycle = current; - - // removing rLast - if (last == current) - last = prev; - - current = current->mNext; - if (prev) - { - prev->mNext = current; - } - else - { - first = current; - } - - if (ISQUEUE) - recycle_node_unsafe(to_recycle); - else - delete to_recycle; - } - else - { - prev = current; - current = current->mNext; - } - -#if defined(ESP8266) || defined(ESP32) - // running callbacks might last too long for watchdog etc. - optimistic_yield(10000); -#endif - } while (current && !done); - - fence.store(false); - } - }; - - template< typename Delegate, typename R, bool ISQUEUE, uint32_t QUEUE_CAPACITY, typename... P> class MultiDelegate; - - template< typename Delegate, typename R, bool ISQUEUE, uint32_t QUEUE_CAPACITY, typename... P> - class MultiDelegate : public MultiDelegatePImpl - { - public: - using MultiDelegatePImpl::MultiDelegatePImpl; - }; - - template< typename Delegate, typename R, bool ISQUEUE, uint32_t QUEUE_CAPACITY> - class MultiDelegate : public MultiDelegateImpl - { - public: - using MultiDelegateImpl::MultiDelegateImpl; - }; -}; - -/** -The MultiDelegate class template can be specialized to either a queue or an event multiplexer. -It is designed to be used with Delegate, the efficient runtime wrapper for C function ptr and C++ std::function. -@tparam Delegate specifies the concrete type that MultiDelegate bases the queue or event multiplexer on. -@tparam ISQUEUE modifies the generated MultiDelegate class in subtle ways. In queue mode (ISQUEUE == true), - the value of QUEUE_CAPACITY enforces the maximum number of simultaneous items the queue can contain. - This is exploited to minimize the use of new and delete by reusing already allocated items, thus - reducing heap fragmentation. In event multiplexer mode (ISQUEUE = false), new and delete are - used for allocation of the event handler items. - If the result type of the function call operator of Delegate is void, calling a MultiDelegate queue - removes each item after calling it; a Multidelegate event multiplexer keeps event handlers until - explicitly removed. - If the result type of the function call operator of Delegate is non-void, the type-conversion to bool - of that result determines if the item is immediately removed or kept after each call: a Multidelegate - queue removes an item only if true is returned, but a Multidelegate event multiplexer removes event - handlers that return false. -@tparam QUEUE_CAPACITY is only used if ISQUEUE == true. Then, it sets the maximum capacity that the queue dynamically - allocates from the heap. Unused items are not returned to the heap, but are managed by the MultiDelegate - instance during its own lifetime for efficiency. -*/ -template< typename Delegate, bool ISQUEUE = false, uint32_t QUEUE_CAPACITY = 32> -class MultiDelegate : public detail::MultiDelegate -{ -public: - using detail::MultiDelegate::MultiDelegate; -}; - -#endif // __MULTIDELEGATE_H diff --git a/lib/EspSoftwareSerial/src/circular_queue/circular_queue.h b/lib/EspSoftwareSerial/src/circular_queue/circular_queue.h deleted file mode 100644 index 46e3f66e..00000000 --- a/lib/EspSoftwareSerial/src/circular_queue/circular_queue.h +++ /dev/null @@ -1,399 +0,0 @@ -/* -circular_queue.h - Implementation of a lock-free circular queue for EspSoftwareSerial. -Copyright (c) 2019 Dirk O. Kaar. All rights reserved. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef __circular_queue_h -#define __circular_queue_h - -#ifdef ARDUINO -#include -#endif - -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) -#include -#include -#include -#include "Delegate.h" -using std::min; -#else -#include "ghostl.h" -#endif - -#if !defined(ESP32) && !defined(ESP8266) -#define ICACHE_RAM_ATTR -#define IRAM_ATTR -#endif - -/*! - @brief Instance class for a single-producer, single-consumer circular queue / ring buffer (FIFO). - This implementation is lock-free between producer and consumer for the available(), peek(), - pop(), and push() type functions. -*/ -template< typename T, typename ForEachArg = void > -class circular_queue -{ -public: - /*! - @brief Constructs a valid, but zero-capacity dummy queue. - */ - circular_queue() : m_bufSize(1) - { - m_inPos.store(0); - m_outPos.store(0); - } - /*! - @brief Constructs a queue of the given maximum capacity. - */ - circular_queue(const size_t capacity) : m_bufSize(capacity + 1), m_buffer(new T[m_bufSize]) - { - m_inPos.store(0); - m_outPos.store(0); - } - circular_queue(circular_queue&& cq) : - m_bufSize(cq.m_bufSize), m_buffer(cq.m_buffer), m_inPos(cq.m_inPos.load()), m_outPos(cq.m_outPos.load()) - {} - ~circular_queue() - { - m_buffer.reset(); - } - circular_queue(const circular_queue&) = delete; - circular_queue& operator=(circular_queue&& cq) - { - m_bufSize = cq.m_bufSize; - m_buffer = cq.m_buffer; - m_inPos.store(cq.m_inPos.load()); - m_outPos.store(cq.m_outPos.load()); - } - circular_queue& operator=(const circular_queue&) = delete; - - /*! - @brief Get the numer of elements the queue can hold at most. - */ - size_t capacity() const - { - return m_bufSize - 1; - } - - /*! - @brief Resize the queue. The available elements in the queue are preserved. - This is not lock-free and concurrent producer or consumer access - will lead to corruption. - @return True if the new capacity could accommodate the present elements in - the queue, otherwise nothing is done and false is returned. - */ - bool capacity(const size_t cap); - - /*! - @brief Discard all data in the queue. - */ - void flush() - { - m_outPos.store(m_inPos.load()); - } - - /*! - @brief Get a snapshot number of elements that can be retrieved by pop. - */ - size_t available() const - { - int avail = static_cast(m_inPos.load() - m_outPos.load()); - if (avail < 0) avail += m_bufSize; - return avail; - } - - /*! - @brief Get the remaining free elementes for pushing. - */ - size_t available_for_push() const - { - int avail = static_cast(m_outPos.load() - m_inPos.load()) - 1; - if (avail < 0) avail += m_bufSize; - return avail; - } - - /*! - @brief Peek at the next element pop will return without removing it from the queue. - @return An rvalue copy of the next element that can be popped. If the queue is empty, - return an rvalue copy of the element that is pending the next push. - */ - T peek() const - { - const auto outPos = m_outPos.load(std::memory_order_relaxed); - std::atomic_thread_fence(std::memory_order_acquire); - return m_buffer[outPos]; - } - - /*! - @brief Peek at the next pending input value. - @return A reference to the next element that can be pushed. - */ - T& IRAM_ATTR pushpeek() - { - const auto inPos = m_inPos.load(std::memory_order_relaxed); - std::atomic_thread_fence(std::memory_order_acquire); - return m_buffer[inPos]; - } - - /*! - @brief Release the next pending input value, accessible by pushpeek(), into the queue. - @return true if the queue accepted the value, false if the queue - was full. - */ - bool IRAM_ATTR push(); - - /*! - @brief Move the rvalue parameter into the queue. - @return true if the queue accepted the value, false if the queue - was full. - */ - bool IRAM_ATTR push(T&& val); - - /*! - @brief Push a copy of the parameter into the queue. - @return true if the queue accepted the value, false if the queue - was full. - */ - bool IRAM_ATTR push(const T& val) - { - return push(T(val)); - } - -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) - /*! - @brief Push copies of multiple elements from a buffer into the queue, - in order, beginning at buffer's head. - @return The number of elements actually copied into the queue, counted - from the buffer head. - */ - size_t push_n(const T* buffer, size_t size); -#endif - - /*! - @brief Pop the next available element from the queue. - @return An rvalue copy of the popped element, or a default - value of type T if the queue is empty. - */ - T pop(); - -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) - /*! - @brief Pop multiple elements in ordered sequence from the queue to a buffer. - If buffer is nullptr, simply discards up to size elements from the queue. - @return The number of elements actually popped from the queue to - buffer. - */ - size_t pop_n(T* buffer, size_t size); -#endif - - /*! - @brief Iterate over and remove each available element from queue, - calling back fun with an rvalue reference of every single element. - */ -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) - void for_each(const Delegate& fun); -#else - void for_each(Delegate fun); -#endif - - /*! - @brief In reverse order, iterate over, pop and optionally requeue each available element from the queue, - calling back fun with a reference of every single element. - Requeuing is dependent on the return boolean of the callback function. If it - returns true, the requeue occurs. - */ -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) - bool for_each_rev_requeue(const Delegate& fun); -#else - bool for_each_rev_requeue(Delegate fun); -#endif - -protected: - const T defaultValue = {}; - unsigned m_bufSize; -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) - std::unique_ptr m_buffer; -#else - std::unique_ptr m_buffer; -#endif - std::atomic m_inPos; - std::atomic m_outPos; -}; - -template< typename T, typename ForEachArg > -bool circular_queue::capacity(const size_t cap) -{ - if (cap + 1 == m_bufSize) return true; - else if (available() > cap) return false; - std::unique_ptr buffer(new T[cap + 1]); - const auto available = pop_n(buffer, cap); - m_buffer.reset(buffer); - m_bufSize = cap + 1; - std::atomic_thread_fence(std::memory_order_release); - m_inPos.store(available, std::memory_order_relaxed); - m_outPos.store(0, std::memory_order_release); - return true; -} - -template< typename T, typename ForEachArg > -bool IRAM_ATTR circular_queue::push() -{ - const auto inPos = m_inPos.load(std::memory_order_acquire); - const unsigned next = (inPos + 1) % m_bufSize; - if (next == m_outPos.load(std::memory_order_relaxed)) { - return false; - } - - std::atomic_thread_fence(std::memory_order_acquire); - - m_inPos.store(next, std::memory_order_release); - return true; -} - -template< typename T, typename ForEachArg > -bool IRAM_ATTR circular_queue::push(T&& val) -{ - const auto inPos = m_inPos.load(std::memory_order_acquire); - const unsigned next = (inPos + 1) % m_bufSize; - if (next == m_outPos.load(std::memory_order_relaxed)) { - return false; - } - - std::atomic_thread_fence(std::memory_order_acquire); - - m_buffer[inPos] = std::move(val); - - std::atomic_thread_fence(std::memory_order_release); - - m_inPos.store(next, std::memory_order_release); - return true; -} - -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) -template< typename T, typename ForEachArg > -size_t circular_queue::push_n(const T* buffer, size_t size) -{ - const auto inPos = m_inPos.load(std::memory_order_acquire); - const auto outPos = m_outPos.load(std::memory_order_relaxed); - - size_t blockSize = (outPos > inPos) ? outPos - 1 - inPos : (outPos == 0) ? m_bufSize - 1 - inPos : m_bufSize - inPos; - blockSize = min(size, blockSize); - if (!blockSize) return 0; - int next = (inPos + blockSize) % m_bufSize; - - std::atomic_thread_fence(std::memory_order_acquire); - - auto dest = m_buffer.get() + inPos; - std::copy_n(std::make_move_iterator(buffer), blockSize, dest); - size = min(size - blockSize, outPos > 1 ? static_cast(outPos - next - 1) : 0); - next += size; - dest = m_buffer.get(); - std::copy_n(std::make_move_iterator(buffer + blockSize), size, dest); - - std::atomic_thread_fence(std::memory_order_release); - - m_inPos.store(next, std::memory_order_release); - return blockSize + size; -} -#endif - -template< typename T, typename ForEachArg > -T circular_queue::pop() -{ - const auto outPos = m_outPos.load(std::memory_order_acquire); - if (m_inPos.load(std::memory_order_relaxed) == outPos) return defaultValue; - - std::atomic_thread_fence(std::memory_order_acquire); - - auto val = std::move(m_buffer[outPos]); - - std::atomic_thread_fence(std::memory_order_release); - - m_outPos.store((outPos + 1) % m_bufSize, std::memory_order_release); - return val; -} - -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) -template< typename T, typename ForEachArg > -size_t circular_queue::pop_n(T* buffer, size_t size) { - size_t avail = size = min(size, available()); - if (!avail) return 0; - const auto outPos = m_outPos.load(std::memory_order_acquire); - size_t n = min(avail, static_cast(m_bufSize - outPos)); - - std::atomic_thread_fence(std::memory_order_acquire); - - if (buffer) { - buffer = std::copy_n(std::make_move_iterator(m_buffer.get() + outPos), n, buffer); - avail -= n; - std::copy_n(std::make_move_iterator(m_buffer.get()), avail, buffer); - } - - std::atomic_thread_fence(std::memory_order_release); - - m_outPos.store((outPos + size) % m_bufSize, std::memory_order_release); - return size; -} -#endif - -template< typename T, typename ForEachArg > -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) -void circular_queue::for_each(const Delegate& fun) -#else -void circular_queue::for_each(Delegate fun) -#endif -{ - auto outPos = m_outPos.load(std::memory_order_acquire); - const auto inPos = m_inPos.load(std::memory_order_relaxed); - std::atomic_thread_fence(std::memory_order_acquire); - while (outPos != inPos) - { - fun(std::move(m_buffer[outPos])); - std::atomic_thread_fence(std::memory_order_release); - outPos = (outPos + 1) % m_bufSize; - m_outPos.store(outPos, std::memory_order_release); - } -} - -template< typename T, typename ForEachArg > -#if defined(ESP8266) || defined(ESP32) || !defined(ARDUINO) -bool circular_queue::for_each_rev_requeue(const Delegate& fun) -#else -bool circular_queue::for_each_rev_requeue(Delegate fun) -#endif -{ - auto inPos0 = circular_queue::m_inPos.load(std::memory_order_acquire); - auto outPos = circular_queue::m_outPos.load(std::memory_order_relaxed); - std::atomic_thread_fence(std::memory_order_acquire); - if (outPos == inPos0) return false; - auto pos = inPos0; - auto outPos1 = inPos0; - const auto posDecr = circular_queue::m_bufSize - 1; - do { - pos = (pos + posDecr) % circular_queue::m_bufSize; - T&& val = std::move(circular_queue::m_buffer[pos]); - if (fun(val)) - { - outPos1 = (outPos1 + posDecr) % circular_queue::m_bufSize; - if (outPos1 != pos) circular_queue::m_buffer[outPos1] = std::move(val); - } - } while (pos != outPos); - circular_queue::m_outPos.store(outPos1, std::memory_order_release); - return true; -} - -#endif // __circular_queue_h diff --git a/lib/EspSoftwareSerial/src/circular_queue/circular_queue_mp.h b/lib/EspSoftwareSerial/src/circular_queue/circular_queue_mp.h deleted file mode 100644 index 7024247a..00000000 --- a/lib/EspSoftwareSerial/src/circular_queue/circular_queue_mp.h +++ /dev/null @@ -1,200 +0,0 @@ -/* -circular_queue_mp.h - Implementation of a lock-free circular queue for EspSoftwareSerial. -Copyright (c) 2019 Dirk O. Kaar. All rights reserved. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef __circular_queue_mp_h -#define __circular_queue_mp_h - -#include "circular_queue.h" - -#ifdef ESP8266 -#include "interrupts.h" -#else -#include -#endif - -/*! - @brief Instance class for a multi-producer, single-consumer circular queue / ring buffer (FIFO). - This implementation is lock-free between producers and consumer for the available(), peek(), - pop(), and push() type functions, but is guarded to safely allow only a single producer - at any instant. -*/ -template< typename T, typename ForEachArg = void > -class circular_queue_mp : protected circular_queue -{ -public: - circular_queue_mp() = default; - circular_queue_mp(const size_t capacity) : circular_queue(capacity) - {} - circular_queue_mp(circular_queue&& cq) : circular_queue(std::move(cq)) - {} - using circular_queue::operator=; - using circular_queue::capacity; - using circular_queue::flush; - using circular_queue::available; - using circular_queue::available_for_push; - using circular_queue::peek; - using circular_queue::pop; - using circular_queue::pop_n; - using circular_queue::for_each; - using circular_queue::for_each_rev_requeue; - - /*! - @brief Resize the queue. The available elements in the queue are preserved. - This is not lock-free, but safe, concurrent producer or consumer access - is guarded. - @return True if the new capacity could accommodate the present elements in - the queue, otherwise nothing is done and false is returned. - */ - bool capacity(const size_t cap) - { -#ifdef ESP8266 - esp8266::InterruptLock lock; -#else - std::lock_guard lock(m_pushMtx); -#endif - return circular_queue::capacity(cap); - } - - bool IRAM_ATTR push() = delete; - - /*! - @brief Move the rvalue parameter into the queue, guarded - for multiple concurrent producers. - @return true if the queue accepted the value, false if the queue - was full. - */ - bool IRAM_ATTR push(T&& val) - { -#ifdef ESP8266 - esp8266::InterruptLock lock; -#else - std::lock_guard lock(m_pushMtx); -#endif - return circular_queue::push(std::move(val)); - } - - /*! - @brief Push a copy of the parameter into the queue, guarded - for multiple concurrent producers. - @return true if the queue accepted the value, false if the queue - was full. - */ - bool IRAM_ATTR push(const T& val) - { -#ifdef ESP8266 - esp8266::InterruptLock lock; -#else - std::lock_guard lock(m_pushMtx); -#endif - return circular_queue::push(val); - } - - /*! - @brief Push copies of multiple elements from a buffer into the queue, - in order, beginning at buffer's head. This is guarded for - multiple producers, push_n() is atomic. - @return The number of elements actually copied into the queue, counted - from the buffer head. - */ - size_t push_n(const T* buffer, size_t size) - { -#ifdef ESP8266 - esp8266::InterruptLock lock; -#else - std::lock_guard lock(m_pushMtx); -#endif - return circular_queue::push_n(buffer, size); - } - - /*! - @brief Pops the next available element from the queue, requeues - it immediately. - @return A reference to the just requeued element, or the default - value of type T if the queue is empty. - */ - T& pop_requeue(); - - /*! - @brief Iterate over, pop and optionally requeue each available element from the queue, - calling back fun with a reference of every single element. - Requeuing is dependent on the return boolean of the callback function. If it - returns true, the requeue occurs. - */ - bool for_each_requeue(const Delegate& fun); - -#ifndef ESP8266 -protected: - std::mutex m_pushMtx; -#endif -}; - -template< typename T, typename ForEachArg > -T& circular_queue_mp::pop_requeue() -{ -#ifdef ESP8266 - esp8266::InterruptLock lock; -#else - std::lock_guard lock(m_pushMtx); -#endif - const auto outPos = circular_queue::m_outPos.load(std::memory_order_acquire); - const auto inPos = circular_queue::m_inPos.load(std::memory_order_relaxed); - std::atomic_thread_fence(std::memory_order_acquire); - if (inPos == outPos) return circular_queue::defaultValue; - T& val = circular_queue::m_buffer[inPos] = std::move(circular_queue::m_buffer[outPos]); - const auto bufSize = circular_queue::m_bufSize; - std::atomic_thread_fence(std::memory_order_release); - circular_queue::m_outPos.store((outPos + 1) % bufSize, std::memory_order_relaxed); - circular_queue::m_inPos.store((inPos + 1) % bufSize, std::memory_order_release); - return val; -} - -template< typename T, typename ForEachArg > -bool circular_queue_mp::for_each_requeue(const Delegate& fun) -{ - auto inPos0 = circular_queue::m_inPos.load(std::memory_order_acquire); - auto outPos = circular_queue::m_outPos.load(std::memory_order_relaxed); - std::atomic_thread_fence(std::memory_order_acquire); - if (outPos == inPos0) return false; - do { - T&& val = std::move(circular_queue::m_buffer[outPos]); - if (fun(val)) - { -#ifdef ESP8266 - esp8266::InterruptLock lock; -#else - std::lock_guard lock(m_pushMtx); -#endif - std::atomic_thread_fence(std::memory_order_release); - auto inPos = circular_queue::m_inPos.load(std::memory_order_relaxed); - std::atomic_thread_fence(std::memory_order_acquire); - circular_queue::m_buffer[inPos] = std::move(val); - std::atomic_thread_fence(std::memory_order_release); - circular_queue::m_inPos.store((inPos + 1) % circular_queue::m_bufSize, std::memory_order_release); - } - else - { - std::atomic_thread_fence(std::memory_order_release); - } - outPos = (outPos + 1) % circular_queue::m_bufSize; - circular_queue::m_outPos.store(outPos, std::memory_order_release); - } while (outPos != inPos0); - return true; -} - -#endif // __circular_queue_mp_h diff --git a/lib/EspSoftwareSerial/src/circular_queue/ghostl.h b/lib/EspSoftwareSerial/src/circular_queue/ghostl.h deleted file mode 100644 index 11683805..00000000 --- a/lib/EspSoftwareSerial/src/circular_queue/ghostl.h +++ /dev/null @@ -1,92 +0,0 @@ -/* -ghostl.h - Implementation of a bare-bones, mostly no-op, C++ STL shell - that allows building some Arduino ESP8266/ESP32 - libraries on Aruduino AVR. -Copyright (c) 2019 Dirk O. Kaar. All rights reserved. - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -#ifndef __ghostl_h -#define __ghostl_h - -#if defined(ARDUINO_ARCH_SAMD) -#include -#endif - -namespace std -{ -#if !defined(ARDUINO_ARCH_SAMD) - typedef enum memory_order { - memory_order_relaxed, - memory_order_acquire, - memory_order_release, - memory_order_seq_cst - } memory_order; - template< typename T > class atomic { - private: - T value; - public: - atomic() {} - atomic(T desired) { value = desired; } - void store(T desired, std::memory_order = std::memory_order_seq_cst) volatile noexcept { value = desired; } - T load(std::memory_order = std::memory_order_seq_cst) const volatile noexcept { return value; } - }; - inline void atomic_thread_fence(std::memory_order order) noexcept {} - template< typename T > T&& move(T& t) noexcept { return static_cast(t); } -#endif - - template< typename T, unsigned long N > struct array - { - T _M_elems[N]; - decltype(sizeof(0)) size() const { return N; } - T& operator[](decltype(sizeof(0)) i) { return _M_elems[i]; } - const T& operator[](decltype(sizeof(0)) i) const { return _M_elems[i]; } - }; - - template< typename T > class unique_ptr - { - public: - using pointer = T*; - unique_ptr() noexcept : ptr(nullptr) {} - unique_ptr(pointer p) : ptr(p) {} - pointer operator->() const noexcept { return ptr; } - T& operator[](decltype(sizeof(0)) i) const { return ptr[i]; } - void reset(pointer p = pointer()) noexcept - { - delete ptr; - ptr = p; - } - T& operator*() const { return *ptr; } - private: - pointer ptr; - }; - - template< typename T > using function = T*; - using nullptr_t = decltype(nullptr); - - template - struct identity { - typedef T type; - }; - - template - inline T&& forward(typename identity::type& t) noexcept - { - return static_cast::type&&>(t); - } -} - -#endif // __ghostl_h diff --git a/lib/SDS011/src/SDS011.cpp b/lib/SDS011/src/SDS011.cpp deleted file mode 100644 index 31efdea4..00000000 --- a/lib/SDS011/src/SDS011.cpp +++ /dev/null @@ -1,191 +0,0 @@ -// SDS011 dust sensor PM2.5 and PM10 -// --------------------- -// -// By R. Zschiegner (rz@madavi.de) -// April 2016 -// -// Documentation: -// - The iNovaFitness SDS011 datasheet -// -// modified by AQ - 2018-11-18 -// - -#include "SDS011.h" - -static const byte SDS_SLEEP[] = { - 0xAA, // head - 0xB4, // command id - 0x06, // data byte 1 - 0x01, // data byte 2 (set mode) - 0x00, // data byte 3 (sleep) - 0x00, // data byte 4 - 0x00, // data byte 5 - 0x00, // data byte 6 - 0x00, // data byte 7 - 0x00, // data byte 8 - 0x00, // data byte 9 - 0x00, // data byte 10 - 0x00, // data byte 11 - 0x00, // data byte 12 - 0x00, // data byte 13 - 0xFF, // data byte 14 (device id byte 1) - 0xFF, // data byte 15 (device id byte 2) - 0x05, // checksum - 0xAB // tail -}; - -static const byte SDS_START[] = { - 0xAA, 0xB4, 0x06, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x06, 0xAB}; - -static const byte SDS_CONT_MODE[] = { - 0xAA, 0xB4, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x07, 0xAB}; - -static const byte SDS_VERSION[] = { - 0xAA, 0xB4, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x05, 0xAB}; - -const uint8_t SDS_cmd_len = 19; - -SDS011::SDS011(void) { - -} - -// -------------------------------------------------------- -// SDS011:read -// -------------------------------------------------------- -int SDS011::read(float *p25, float *p10) { - byte buffer; - int value; - int len = 0; - int pm10_serial = 0; - int pm25_serial = 0; - int checksum_is; - int checksum_ok = 0; - int error = 1; - - while ((sds_data->available() > 0) && (sds_data->available() >= (10-len))) { - buffer = sds_data->read(); - value = int(buffer); - switch (len) { - case (0): if (value != 170) { len = -1; }; break; - case (1): if (value != 192) { len = -1; }; break; - case (2): pm25_serial = value; checksum_is = value; break; - case (3): pm25_serial += (value << 8); checksum_is += value; break; - case (4): pm10_serial = value; checksum_is += value; break; - case (5): pm10_serial += (value << 8); checksum_is += value; break; - case (6): checksum_is += value; break; - case (7): checksum_is += value; break; - case (8): if (value == (checksum_is % 256)) { checksum_ok = 1; } else { len = -1; }; break; - case (9): if (value != 171) { len = -1; }; break; - } - len++; - if (len == 10 && checksum_ok == 1) { - *p10 = (float)pm10_serial/10.0; - *p25 = (float)pm25_serial/10.0; - len = 0; checksum_ok = 0; pm10_serial = 0.0; pm25_serial = 0.0; checksum_is = 0; - error = 0; - } - yield(); - } - return error; -} - -// -------------------------------------------------------- -// SDS011:sleep -// -------------------------------------------------------- -void SDS011::sleep() { - SDS_cmd(SDS_STOP_CMD); -} - -// -------------------------------------------------------- -// SDS011:wakeup -// -------------------------------------------------------- -void SDS011::wakeup() { - SDS_cmd(SDS_START_CMD); -} - -// -------------------------------------------------------- -// SDS011:continous mode -// -------------------------------------------------------- -void SDS011::contmode(int noOfMinutes) -{ - byte buffer[SDS_cmd_len]; - memcpy(buffer, SDS_CONT_MODE, SDS_cmd_len); - buffer[4] = (byte) noOfMinutes; - buffer[17] = calcChecksum( buffer ); - for (uint8_t i = 0; i < SDS_cmd_len; i++) { - sds_data->write(buffer[i]); - } - sds_data->flush(); - while (sds_data->available() > 0) { - sds_data->read(); - } -// SDS_cmd(SDS_CONTINUOUS_MODE_CMD); -} - -/***************************************************************** - * send SDS011 command (start, stop, continuous mode, version * - *****************************************************************/ -void SDS011::SDS_cmd(const uint8_t cmd) -{ - byte buf[SDS_cmd_len]; - switch (cmd) { - case SDS_START_CMD: - memcpy(buf, SDS_START, SDS_cmd_len); - break; - case SDS_STOP_CMD: - memcpy(buf, SDS_SLEEP, SDS_cmd_len); - break; - case SDS_CONTINUOUS_MODE_CMD: - memcpy(buf, SDS_CONT_MODE, SDS_cmd_len); - break; - case SDS_VERSION_DATE_CMD: - memcpy(buf, SDS_VERSION, SDS_cmd_len); - break; - default: - return; - } - for (uint8_t i = 0; i < SDS_cmd_len; i++) { - sds_data->write(buf[i]); - } - sds_data->flush(); - while (sds_data->available() > 0) { - sds_data->read(); - } - -} - -// -------------------------------------------------------- -// SDS011: calculate checksum -// -------------------------------------------------------- -uint8_t SDS011::calcChecksum( byte *buffer ) -{ - uint8_t value = 0; - - for (uint8_t i = 2; i < 17; i++ ) - { - value += buffer[i]; - value &= 0xff; - } - return value; -} - -void SDS011::begin(uint8_t pin_rx, uint8_t pin_tx) { - _pin_rx = pin_rx; - _pin_tx = pin_tx; - - SoftwareSerial *softSerial = new SoftwareSerial(_pin_rx, _pin_tx); - softSerial->begin(9600); - - sds_data = softSerial; -} - -void SDS011::begin(HardwareSerial* serial) { - Serial.println("SDS011::begin"); -// serial->begin(9600); // why do I have to remove this line? - sds_data = serial; -} - -void SDS011::begin(SoftwareSerial* serial) { - serial->begin(9600); - sds_data = serial; -} diff --git a/lib/SDS011/src/SDS011.h b/lib/SDS011/src/SDS011.h deleted file mode 100644 index f8a013d5..00000000 --- a/lib/SDS011/src/SDS011.h +++ /dev/null @@ -1,40 +0,0 @@ -// SDS011 dust sensor PM2.5 and PM10 -// --------------------------------- -// -// By R. Zschiegner (rz@madavi.de) -// April 2016 -// -// Documentation: -// - The iNovaFitness SDS011 datasheet -// - -#if ARDUINO >= 100 - #include "Arduino.h" -#else - #include "WProgram.h" -#endif - -#include - -// Definition SDS011 sensor 'commands' -#define SDS_START_CMD 1 -#define SDS_STOP_CMD 2 -#define SDS_CONTINUOUS_MODE_CMD 3 -#define SDS_VERSION_DATE_CMD 4 - -class SDS011 { - public: - SDS011(void); - void begin(uint8_t pin_rx, uint8_t pin_tx); - void begin(HardwareSerial* serial); - void begin(SoftwareSerial* serial); - int read(float *p25, float *p10); - void sleep(); - void wakeup(); - void contmode( int ); - private: - void SDS_cmd(const uint8_t); - uint8_t calcChecksum( byte *); - uint8_t _pin_rx, _pin_tx; - Stream *sds_data; -}; diff --git a/platformio.ini b/platformio.ini index a2640cfd..eeabdfbd 100644 --- a/platformio.ini +++ b/platformio.ini @@ -48,7 +48,7 @@ description = Paxcounter is a device for metering passenger flows in realtime. I release_version = 1.9.90 ; DEBUG LEVEL: For production run set to 0, otherwise device will leak RAM while running! ; 0=None, 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Verbose -debug_level = 5 +debug_level = 2 extra_scripts = pre:build.py otakeyfile = ota.conf lorakeyfile = loraconf.h diff --git a/src/bmesensor.cpp b/src/bmesensor.cpp index 1e5e65e5..8e3f57ba 100644 --- a/src/bmesensor.cpp +++ b/src/bmesensor.cpp @@ -180,7 +180,7 @@ void bme_storedata(bmeStatus_t *bme_store) { iaqSensor.humidity; // humidity in % relative humidity x1000 bme_store->pressure = // pressure in Pascal (iaqSensor.pressure / 100.0); // conversion Pa -> hPa - bme_store->iaq = iaqSensor.iaqEstimate; + bme_store->iaq = iaqSensor.iaq; bme_store->iaq_accuracy = iaqSensor.iaqAccuracy; bme_store->gas = iaqSensor.gasResistance; // gas resistance in ohms updateState(); diff --git a/src/display.cpp b/src/display.cpp index 2ea84393..9c986f99 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -68,19 +68,11 @@ void init_display(bool verbose) { ESP_LOGV(TAG, "[%0.3f] i2c mutex lock failed", millis() / 1000.0); else { - // is we have display RST line we toggle it to re-initialize display -#ifdef MY_OLED_RST - pinMode(MY_OLED_RST, OUTPUT); - digitalWrite(MY_OLED_RST, 0); // initialization of SSD1306 chip is executed - delay(1); // keep RES low for at least 3us according to SSD1306 datasheet - digitalWrite(MY_OLED_RST, 1); // normal operation -#endif - // init display #ifndef DISPLAY_FLIP - oledInit(OLED_128x64, false, false, -1, -1, 400000L); + oledInit(OLED_128x64, false, false, -1, -1, MY_OLED_RST, 400000L); #else - oledInit(OLED_128x64, true, false, -1, -1, 400000L); + oledInit(OLED_128x64, true, false, -1, -1, MY_OLED_RST, 400000L); #endif // set display buffer @@ -151,9 +143,11 @@ void init_display(bool verbose) { void refreshTheDisplay(bool nextPage) { - static uint8_t DisplayPage = 0; +#ifndef HAS_BUTTON + static uint32_t framecounter = 0; +#endif - // update histogram if we have a display + // update histogram oledPlotCurve(macs.size(), false); // if display is switched off we don't refresh it to relax cpu @@ -173,12 +167,15 @@ void refreshTheDisplay(bool nextPage) { oledPower(cfg.screenon); } - if (nextPage) { - DisplayPage = (DisplayPage >= DISPLAY_PAGES - 1) ? 0 : (DisplayPage + 1); - oledFill(0, 1); +#ifndef HAS_BUTTON + // auto flip page if we are in unattended mode + if ((++framecounter) > (DISPLAYCYCLE * 1000 / DISPLAYREFRESH_MS)) { + framecounter = 0; + nextPage = true; } +#endif - draw_page(t, DisplayPage); + draw_page(t, nextPage); oledDumpBuffer(displaybuf); I2C_MUTEX_UNLOCK(); // release i2c bus access @@ -198,8 +195,12 @@ void shutdown_display(void) { } } -void draw_page(time_t t, uint8_t page) { +void draw_page(time_t t, bool nextpage) { + // write display content to display buffer + // nextpage = true -> flip 1 page + + static uint8_t DisplayPage = 0; char timeState; #if (HAS_GPS) static bool wasnofix = true; @@ -209,7 +210,14 @@ void draw_page(time_t t, uint8_t page) { dp_printf(0, 0, FONT_STRETCHED, 0, "PAX:%-4d", macs.size()); // display number of unique macs total Wifi + BLE - switch (page % DISPLAY_PAGES) { +start: + + if (nextpage) { + DisplayPage = (DisplayPage >= DISPLAY_PAGES - 1) ? 0 : (DisplayPage + 1); + oledFill(0, 1); + } + + switch (DisplayPage) { // page 0: parameters overview // page 1: pax graph @@ -293,8 +301,7 @@ void draw_page(time_t t, uint8_t page) { // LORA datarate, display inverse if ADR disabled dp_printf(102, 7, FONT_SMALL, !cfg.adrmode, "%-4s", getSfName(updr2rps(LMIC.datarate))); -#endif // HAS_LORA - +#endif // HAS_LORA break; // page0 // page 1: pax graph @@ -323,16 +330,13 @@ void draw_page(time_t t, uint8_t page) { dp_printf(16, 5, FONT_STRETCHED, 1, "No fix"); wasnofix = true; } - -#else - dp_printf(16, 5, FONT_STRETCHED, 1, "No GPS"); -#endif - break; // page2 +#else + DisplayPage++; // next page +#endif // page 3: BME280/680 case 3: - #if (HAS_BME) // line 2-3: Temp dp_printf(0, 2, FONT_STRETCHED, 0, "TMP:%-2.1f", bme_status.temperature); @@ -343,32 +347,32 @@ void draw_page(time_t t, uint8_t page) { #ifdef HAS_BME680 // line 6-7: IAQ dp_printf(0, 6, FONT_STRETCHED, 0, "IAQ:%-3.0f", bme_status.iaq); -#else // is BME280 or BMP180 +#else // is BME280 or BMP180 // line 6-7: Pre dp_printf(0, 6, FONT_STRETCHED, 0, "PRE:%-2.1f", bme_status.pressure); -#endif // HAS_BME - +#endif // HAS_BME680 + break; // page 3 #else - dp_printf(16, 5, FONT_STRETCHED, 1, "No BME"); -#endif - - break; // page3 + DisplayPage++; // next page +#endif // HAS_BME // page 4: time case 4: - dp_printf(0, 4, FONT_LARGE, 0, "%02d:%02d:%02d", hour(t), minute(t), second(t)); break; // page 5: blank screen case 5: - +#ifdef HAS_BUTTON oledFill(0, 1); break; +#else // don't show blank page if we are unattended + DisplayPage++; // next page +#endif default: - break; // default + goto start; // start over } // switch diff --git a/src/hal/generic.h b/src/hal/generic.h index 658eb7bc..fa1d14c7 100644 --- a/src/hal/generic.h +++ b/src/hal/generic.h @@ -10,10 +10,6 @@ // Hardware related definitions for generic ESP32 boards // generic.h is kitchensink with all available options -// SDS011 dust sensor settings -// #define HAS_SDS011 1 // use SDS011 -// #define SDS011_SERIAL 9600, SERIAL_8N1, GPIO_NUM_19, GPIO_NUM_23 // SDS011 RX, TX - #define HAS_LORA 1 // comment out if device shall not send data via LoRa or has no LoRa #define HAS_SPI 1 // comment out if device shall not send data via SPI // pin definitions for SPI slave interface diff --git a/src/hal/heltecv2.h b/src/hal/heltecv2.h index efbb9526..3c9f51f3 100644 --- a/src/hal/heltecv2.h +++ b/src/hal/heltecv2.h @@ -43,7 +43,7 @@ #define LORA_IRQ DIO0 #define LORA_IO1 DIO1 #define LORA_IO2 DIO2 -#define LORA_SCK SCK +#define LORA_SCK GPIO_NUM_5 #define LORA_MISO MISO #define LORA_MOSI MOSI #define LORA_RST RST_LoRa diff --git a/src/hal/m5core.h b/src/hal/m5core.h new file mode 100644 index 00000000..1f3371ce --- /dev/null +++ b/src/hal/m5core.h @@ -0,0 +1,62 @@ +// clang-format off +// upload_speed 921600 +// board m5stack-core-esp32 + +// EXPERIMENTAL VERSION - NOT TESTED ON M5 HARDWARE YET + +#ifndef _M5CORE_H +#define _M5CORE_H + +#include + +#define HAS_LORA 1 // comment out if device shall not send data via LoRa or has no M5 RA01 LoRa module + +// Pins for LORA chip SPI interface, reset line and interrupt lines +#define LORA_SCK SCK +#define LORA_CS SS +#define LORA_MISO MISO +#define LORA_MOSI MOSI +#define LORA_RST GPIO_NUM_36 +#define LORA_IRQ GPIO_NUM_26 +#define LORA_IO1 GPIO_NUM_34 // must be externally wired on PCB! +#define LORA_IO2 LMIC_UNUSED_PIN + + +// enable only if you want to store a local paxcount table on the device +#define HAS_SDCARD 1 // this board has an SD-card-reader/writer +// Pins for SD-card +#define SDCARD_CS GPIO_NUM_4 +#define SDCARD_MOSI MOSI +#define SDCARD_MISO MISO +#define SDCARD_SCLK SCK + +// user defined sensors +//#define HAS_SENSORS 1 // comment out if device has user defined sensors + +#define CFG_sx1276_radio 1 // select LoRa chip +#define BOARD_HAS_PSRAM // use if board has external PSRAM +#define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature + +//#define HAS_DISPLAY 1 +//#define DISPLAY_FLIP 1 // use if display is rotated +//#define BAT_MEASURE_ADC ADC1_GPIO35_CHANNEL // battery probe GPIO pin -> ADC1_CHANNEL_7 +//#define BAT_VOLTAGE_DIVIDER 2 // voltage divider 100k/100k on board + +#define HAS_LED NOT_A_PIN // no on board LED (?) +#define HAS_BUTTON (39) // on board button A + +// GPS settings +#define HAS_GPS 1 // use on board GPS +#define GPS_SERIAL 9600, SERIAL_8N1, RXD2, TXD2 // UBlox NEO 6M RX, TX +#define GPS_INT GPIO_NUM_35 // 30ns accurary timepulse, to be external wired on pcb: shorten R12! + +// Pins for interface of LC Display +#define MY_OLED_CS GPIO_NUM_14 +#define MY_OLED_DC GPIO_NUM_27 +#define MY_OLED_CLK GPIO_NUM_18 +#define MY_OLED_RST GPIO_NUM_33 +#define MY_OLED_BL GPIO_NUM_32 +#define MY_OLED_MOSI GPIO_NUM_23 +#define MY_OLED_MISO GPIO_NUM_19 + +#endif \ No newline at end of file diff --git a/src/hal/m5fire.h b/src/hal/m5fire.h new file mode 100644 index 00000000..0064799c --- /dev/null +++ b/src/hal/m5fire.h @@ -0,0 +1,64 @@ +// clang-format off +// upload_speed 921600 +// board m5stack-fire + +// EXPERIMENTAL VERSION - NOT TESTED ON M5 HARDWARE YET + +#ifndef _M5FIRE_H +#define _M5FIRE_H + +#include + +// #define HAS_LORA 1 // comment out if device shall not send data via LoRa or has no M5 RA01 LoRa module + +// Pins for LORA chip SPI interface, reset line and interrupt lines +#define LORA_SCK SCK +#define LORA_CS SS +#define LORA_MISO MISO +#define LORA_MOSI MOSI +#define LORA_RST GPIO_NUM_36 +#define LORA_IRQ GPIO_NUM_26 +#define LORA_IO1 GPIO_NUM_34 // must be externally wired on PCB! +#define LORA_IO2 LMIC_UNUSED_PIN + + +// enable only if you want to store a local paxcount table on the device +#define HAS_SDCARD 1 // this board has an SD-card-reader/writer +// Pins for SD-card +#define SDCARD_CS GPIO_NUM_4 +#define SDCARD_MOSI MOSI +#define SDCARD_MISO MISO +#define SDCARD_SCLK SCK + +// user defined sensors +//#define HAS_SENSORS 1 // comment out if device has user defined sensors + +#define CFG_sx1276_radio 1 // select LoRa chip +#define BOARD_HAS_PSRAM // use if board has external PSRAM +#define DISABLE_BROWNOUT 1 // comment out if you want to keep brownout feature + +//#define HAS_DISPLAY 1 +#define HAS_TFT 1 +//#define DISPLAY_FLIP 1 // use if display is rotated +//#define BAT_MEASURE_ADC ADC1_GPIO35_CHANNEL // battery probe GPIO pin -> ADC1_CHANNEL_7 +//#define BAT_VOLTAGE_DIVIDER 2 // voltage divider 100k/100k on board + +#define HAS_LED NOT_A_PIN // no on board LED (?) +#define HAS_RGB_LED SmartLed rgb_led(LED_SK6812, 10, GPIO_NUM_15) // LED_SK6812 RGB LED on GPIO15 +#define HAS_BUTTON (39) // on board button A + +// GPS settings +#define HAS_GPS 0 // use on board GPS +#define GPS_SERIAL 9600, SERIAL_8N1, RXD2, TXD2 // UBlox NEO 6M RX, TX +// #define GPS_INT GPIO_NUM_35 // 30ns accurary timepulse, to be external wired on pcb: shorten R12! + +// Pins for interface of LC Display +#define MY_OLED_CS GPIO_NUM_14 +#define MY_OLED_DC GPIO_NUM_27 +#define MY_OLED_CLK GPIO_NUM_18 +#define MY_OLED_RST GPIO_NUM_33 +#define MY_OLED_BL GPIO_NUM_32 +#define MY_OLED_MOSI GPIO_NUM_23 +#define MY_OLED_MISO GPIO_NUM_19 + +#endif \ No newline at end of file diff --git a/src/ota.cpp b/src/ota.cpp index 10a9ed43..fb2161ee 100644 --- a/src/ota.cpp +++ b/src/ota.cpp @@ -44,10 +44,11 @@ void start_ota_update() { // init display #ifdef HAS_DISPLAY + #ifndef DISPLAY_FLIP - oledInit(OLED_128x64, ANGLE_0, false, -1, -1, 400000L); + oledInit(OLED_128x64, false, false, -1, -1, MY_OLED_RST, 400000L); #else - oledInit(OLED_128x64, ANGLE_FLIPY, false, -1, -1, 400000L); + oledInit(OLED_128x64, true, false, -1, -1, MY_OLED_RST, 400000L); #endif // set display buffer diff --git a/src/paxcounter.conf b/src/paxcounter.conf index 0c936ed8..ac392f24 100644 --- a/src/paxcounter.conf +++ b/src/paxcounter.conf @@ -57,6 +57,7 @@ #define RGBLUMINOSITY 30 // RGB LED luminosity [default = 30%] #define DISPLAYREFRESH_MS 40 // OLED refresh cycle in ms [default = 40] -> 1000/40 = 25 frames per second #define DISPLAYCONTRAST 80 // 0 .. 255, OLED display contrast [default = 80] +#define DISPLAYCYCLE 3 // Auto page flip delay in sec [default = 2] for devices without button #define HOMECYCLE 30 // house keeping cycle in seconds [default = 30 secs] // Settings for BME680 environmental sensor @@ -93,7 +94,7 @@ #define RCMDPORT 2 // remote commands #define STATUSPORT 2 // remote command results #define CONFIGPORT 3 // config query results -#define GPSPORT 4 // gps - set to 1 to send combined GPS+COUNTERPORT payload +#define GPSPORT 1 // gps - set to 1 to send combined GPS+COUNTERPORT payload #define BUTTONPORT 5 // button pressed signal #define BEACONPORT 6 // beacon alarms #define BMEPORT 7 // BME680 sensor diff --git a/src/sds011read.cpp b/src/sds011read.cpp index c29a9a77..f5a781d5 100644 --- a/src/sds011read.cpp +++ b/src/sds011read.cpp @@ -20,10 +20,9 @@ boolean isSDS011Active; // init bool sds011_init() { pm25 = pm10 = 0.0; +#if (HAS_SDS011) sdsSensor.begin (&sdsSerial, ESP_PIN_RX, ESP_PIN_TX); - delay(100); -// sdsSerial.begin(SDS011_SERIAL); - //sdsSensor.contmode(0); // for safety: no wakeup/sleep by the sensor +#endif sds011_sleep(); // we do sleep/wakup by ourselves return true; } @@ -57,3 +56,5 @@ void sds011_wakeup() { isSDS011Active = true; } } + +#endif // HAS_SDS \ No newline at end of file