From 2cd16898cca3709bc5a5cbdf38078c93c8c9d254 Mon Sep 17 00:00:00 2001 From: Chery <376067609@qq.com> Date: Mon, 31 Aug 2020 14:29:49 +0800 Subject: [PATCH 1/2] fix url --- .../source_en/quick_start/quick_start.md | 338 +++++++++++++++++- .../images/lite_quick_start_app_result.jpg | Bin 0 -> 128768 bytes .../source_zh_cn/quick_start/quick_start.md | 74 ++-- 3 files changed, 375 insertions(+), 37 deletions(-) create mode 100644 lite/tutorials/source_zh_cn/images/lite_quick_start_app_result.jpg diff --git a/lite/tutorials/source_en/quick_start/quick_start.md b/lite/tutorials/source_en/quick_start/quick_start.md index 16ec6f5ff3..c917c389d6 100644 --- a/lite/tutorials/source_en/quick_start/quick_start.md +++ b/lite/tutorials/source_en/quick_start/quick_start.md @@ -1,3 +1,337 @@ -# Quick Start (Lite) +# Quick Start - + + +- [Quick Start](#quick-start) + - [Overview](#overview) + - [Selecting a Model](#selecting-a-model) + - [Converting a Model](#converting-a-model) + - [Deploying an Application](#deploying-an-application) + - [Running Dependencies](#running-dependencies) + - [Building and Running](#building-and-running) + - [Detailed Description of the Sample Program](#detailed-description-of-the-sample-program) + - [Sample Program Structure](#sample-program-structure) + - [Configuring MindSpore Lite Dependencies](#configuring-mindspore-lite-dependencies) + - [Downloading and Deploying a Model File](#downloading-and-deploying-a-model-file) + - [Compiling On-Device Inference Code](#compiling-on-device-inference-code) + + + + + +## Overview + +It is recommended that you start from the image classification demo on the Android device to understand how to build the MindSpore Lite application project, configure dependencies, and use related APIs. + +This tutorial demonstrates the on-device deployment process based on the image classification sample program on the Android device provided by the MindSpore team. + +1. Select an image classification model. +2. Convert the model into a MindSpore Lite model. +3. Use the MindSpore Lite inference model on the device. The following describes how to use the MindSpore Lite C++ APIs (Android JNIs) and MindSpore Lite image classification models to perform on-device inference, classify the content captured by a device camera, and display the most possible classification result on the application's image preview screen. + +> Click to find [Android image classification models](https://download.mindspore.cn/model_zoo/official/lite/mobilenetv2_openimage_lite) and [sample code](https://gitee.com/mindspore/mindspore/tree/r0.7/model_zoo/official/lite/image_classification). + +## Selecting a Model + +The MindSpore team provides a series of preset device models that you can use in your application. +Click [here](https://download.mindspore.cn/model_zoo/official/lite/mobilenetv2_openimage_lite/mobilenetv2.ms) to download image classification models in MindSpore ModelZoo. +In addition, you can use the preset model to perform migration learning to implement your image classification tasks. + +## Converting a Model + +After you retrain a model provided by MindSpore, export the model in the [.mindir format](https://www.mindspore.cn/tutorial/en/r0.7/use/saving_and_loading_model_parameters.html#mindir). Use the MindSpore Lite [model conversion tool](https://www.mindspore.cn/lite/tutorial/en/r0.7/use/converter_tool.html) to convert the .mindir model to a .ms model. + +Take the mobilenetv2 model as an example. Execute the following script to convert a model into a MindSpore Lite model for on-device inference. +```bash +./converter_lite --fmk=MS --modelFile=mobilenetv2.mindir --outputFile=mobilenetv2.ms +``` + +## Deploying an Application + +The following section describes how to build and execute an on-device image classification task on MindSpore Lite. + +### Running Dependencies + +- Android Studio 3.2 or later (Android 4.0 or later is recommended.) +- Native development kit (NDK) 21.3 +- CMake 3.10.2 +- Android software development kit (SDK) 26 or later +- OpenCV 4.0.0 or later (included in the sample code) + +### Building and Running + +1. Load the sample source code to Android Studio and install the corresponding SDK. (After the SDK version is specified, Android Studio automatically installs the SDK.) + + ![start_home](../images/lite_quick_start_home.png) + + Start Android Studio, click `File > Settings > System Settings > Android SDK`, and select the corresponding SDK. As shown in the following figure, select an SDK and click `OK`. Android Studio automatically installs the SDK. + + ![start_sdk](../images/lite_quick_start_sdk.png) + + (Optional) If an NDK version issue occurs during the installation, manually download the corresponding [NDK version](https://developer.android.com/ndk/downloads) (the version used in the sample code is 21.3). Specify the SDK location in `Android NDK location` of `Project Structure`. + + ![project_structure](../images/lite_quick_start_project_structure.png) + +2. Connect to an Android device and runs the image classification application. + + Connect to the Android device through a USB cable for debugging. Click `Run 'app'` to run the sample project on your device. + + ![run_app](../images/lite_quick_start_run_app.PNG) + + For details about how to connect the Android Studio to a device for debugging, see . + +3. Continue the installation on the Android device. After the installation is complete, you can view the content captured by a camera and the inference result. + + ![result](../images/lite_quick_start_app_result.jpg) + + +## Detailed Description of the Sample Program + +This image classification sample program on the Android device includes a Java layer and a JNI layer. At the Java layer, the Android Camera 2 API is used to enable a camera to obtain image frames and process images. At the JNI layer, the model inference process is completed in [Runtime](https://www.mindspore.cn/lite/tutorial/en/r0.7/use/runtime.html). + +> This following describes the JNI layer implementation of the sample program. At the Java layer, the Android Camera 2 API is used to enable a device camera and process image frames. Readers are expected to have the basic Android development knowledge. + +### Sample Program Structure + +``` +app +| +├── libs # library files that store MindSpore Lite dependencies +│ └── arm64-v8a +│ ├── libopencv_java4.so +│ └── libmindspore-lite.so +│ +├── opencv # dependency files related to OpenCV +│ └── ... +| +├── src/main +│ ├── assets # resource files +| | └── model.ms # model file +│ | +│ ├── cpp # main logic encapsulation classes for model loading and prediction +| | ├── include # header files related to MindSpore calling +| | | └── ... +│ | | +| | ├── MindSporeNetnative.cpp # JNI methods related to MindSpore calling +│ | └── MindSporeNetnative.h # header file +│ | +│ ├── java # application code at the Java layer +│ │ └── com.huawei.himindsporedemo +│ │ ├── gallery.classify # implementation related to image processing and MindSpore JNI calling +│ │ │ └── ... +│ │ └── obejctdetect # implementation related to camera enabling and drawing +│ │ └── ... +│ │ +│ ├── res # resource files related to Android +│ └── AndroidManifest.xml # Android configuration file +│ +├── CMakeList.txt # CMake compilation entry file +│ +├── build.gradle # Other Android configuration file +└── ... +``` + +### Configuring MindSpore Lite Dependencies + +When MindSpore C++ APIs are called at the Android JNI layer, related library files are required. You can use MindSpore Lite [source code compilation](https://www.mindspore.cn/lite/tutorial/en/r0.7/build.html) to generate the `libmindspore-lite.so` library file. + +In Android Studio, place the compiled `libmindspore-lite.so` library file (which can contain multiple compatible architectures) in the `app/libs/ARM64-V8a` (Arm64) or `app/libs/armeabi-v7a` (Arm32) directory of the application project. In the `build.gradle` file of the application, configure the compilation support of CMake, `arm64-v8a`, and `armeabi-v7a`.   + +``` +android{ + defaultConfig{ + externalNativeBuild{ + cmake{ + arguments "-DANDROID_STL=c++_shared" + } + } + + ndk{ + abiFilters'armeabi-v7a', 'arm64-v8a' + } + } +} +``` + +Create a link to the `.so` library file in the `app/CMakeLists.txt` file: + +``` +# Set MindSpore Lite Dependencies. +include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include/MindSpore) +add_library(mindspore-lite SHARED IMPORTED ) +set_target_properties(mindspore-lite PROPERTIES + IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/libs/libmindspore-lite.so") + +# Set OpenCV Dependecies. +include_directories(${CMAKE_SOURCE_DIR}/opencv/sdk/native/jni/include) +add_library(lib-opencv SHARED IMPORTED ) +set_target_properties(lib-opencv PROPERTIES + IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/libs/libopencv_java4.so") + +# Link target library. +target_link_libraries( + ... + mindspore-lite + lib-opencv + ... +) +``` + + + +In this example, the download.gradle File configuration auto download ` libmindspot-lite.so `and `libopencv_ Java4.so` library file, placed in the 'app / libs / arm64-v8a' directory. + +Note: if the automatic download fails, please manually download the relevant library files and put them in the corresponding location. + +libmindspore-lite.so [libmindspore-lite.so]( https://download.mindspore.cn/model_zoo/official/lite/lib/mindspore%20version%200.7/libmindspore-lite.so) + +libmindspore-lite include [libmindspore-lite include]( https://download.mindspore.cn/model_zoo/official/lite/lib/mindspore%20version%200.7/include.zip) + +libopencv_java4.so [libopencv_java4.so](https://download.mindspore.cn/model_zoo/official/lite/lib/opencv%204.4.0/libopencv_java4.so) + +libopencv include [libopencv include]( https://download.mindspore.cn/model_zoo/official/lite/lib/opencv%204.4.0/include.zip) + + + +### Downloading and Deploying a Model File + +In this example, the download.gradle File configuration auto download `mobilenetv2.ms `and placed in the 'app / libs / arm64-v8a' directory. + +Note: if the automatic download fails, please manually download the relevant library files and put them in the corresponding location. + +mobilenetv2.ms [mobilenetv2.ms]( https://download.mindspore.cn/model_zoo/official/lite/mobilenetv2_openimage_lite/mobilenetv2.ms) + + + +### Compiling On-Device Inference Code + +Call MindSpore Lite C++ APIs at the JNI layer to implement on-device inference. + +The inference code process is as follows. For details about the complete code, see `src/cpp/MindSporeNetnative.cpp`. + +1. Load the MindSpore Lite model file and build the context, session, and computational graph for inference. + + - Load a model file. Create and configure the context for model inference. + ```cpp + // Buffer is the model data passed in by the Java layer + jlong bufferLen = env->GetDirectBufferCapacity(buffer); + char *modelBuffer = CreateLocalModelBuffer(env, buffer); + ``` + + - Create a session. + ```cpp + void **labelEnv = new void *; + MSNetWork *labelNet = new MSNetWork; + *labelEnv = labelNet; + + // Create context. + lite::Context *context = new lite::Context; + + context->device_ctx_.type = lite::DT_CPU; + context->thread_num_ = numThread; //Specify the number of threads to run inference + + // Create the mindspore session. + labelNet->CreateSessionMS(modelBuffer, bufferLen, "device label", context); + delete(context); + + ``` + + - Load the model file and build a computational graph for inference. + ```cpp + void MSNetWork::CreateSessionMS(char* modelBuffer, size_t bufferLen, std::string name, mindspore::lite::Context* ctx) + { + CreateSession(modelBuffer, bufferLen, ctx); + session = mindspore::session::LiteSession::CreateSession(ctx); + auto model = mindspore::lite::Model::Import(modelBuffer, bufferLen); + int ret = session->CompileGraph(model); + } + ``` + +2. Convert the input image into the Tensor format of the MindSpore model. + + Convert the image data to be detected into the Tensor format of the MindSpore model. + + ```cpp + // Convert the Bitmap image passed in from the JAVA layer to Mat for OpenCV processing + BitmapToMat(env, srcBitmap, matImageSrc); + // Processing such as zooming the picture size. + matImgPreprocessed = PreProcessImageData(matImageSrc); + + ImgDims inputDims; + inputDims.channel = matImgPreprocessed.channels(); + inputDims.width = matImgPreprocessed.cols; + inputDims.height = matImgPreprocessed.rows; + float *dataHWC = new float[inputDims.channel * inputDims.width * inputDims.height] + + // Copy the image data to be detected to the dataHWC array. + // The dataHWC[image_size] array here is the intermediate variable of the input MindSpore model tensor. + float *ptrTmp = reinterpret_cast(matImgPreprocessed.data); + for(int i = 0; i < inputDims.channel * inputDims.width * inputDims.height; i++){ + dataHWC[i] = ptrTmp[i]; + } + + // Assign dataHWC[image_size] to the input tensor variable. + auto msInputs = mSession->GetInputs(); + auto inTensor = msInputs.front(); + memcpy(inTensor->MutableData(), dataHWC, + inputDims.channel * inputDims.width * inputDims.height * sizeof(float)); + delete[] (dataHWC); + ``` + +3. Perform inference on the input tensor based on the model, obtain the output tensor, and perform post-processing. + + - Perform graph execution and on-device inference. + + ```cpp + // After the model and image tensor data is loaded, run inference. + auto status = mSession->RunGraph(); + ``` + + - Obtain the output data. + ```cpp + auto msOutputs = mSession->GetOutputMapByNode(); + std::string retStr = ProcessRunnetResult(msOutputs, ret); + ``` + + - Perform post-processing of the output data. + ```cpp + std::string ProcessRunnetResult(std::unordered_map> msOutputs, + int runnetRet) { + + // Get model output results. + std::unordered_map>::iterator iter; + iter = msOutputs.begin(); + auto brach1_string = iter->first; + auto branch1_tensor = iter->second; + + int OUTPUTS_LEN = branch1_tensor[0]->ElementsNum(); + + float *temp_scores = static_cast(branch1_tensor[0]->MutableData()); + + float scores[RET_CATEGORY_SUM]; + for (int i = 0; i < RET_CATEGORY_SUM; ++i) { + scores[i] = temp_scores[i]; + } + + // Converted to text information that needs to be displayed in the APP. + std::string retStr = ""; + if (runnetRet == 0) { + for (int i = 0; i < RET_CATEGORY_SUM; ++i) { + if (scores[i] > 0.3){ + retStr += g_labels_name_map[i]; + retStr += ":"; + std::string score_str = std::to_string(scores[i]); + retStr += score_str; + retStr += ";"; + } + } + else { + MS_PRINT("MindSpore run net failed!"); + for (int i = 0; i < RET_CATEGORY_SUM; ++i) { + retStr += " :0.0;"; + } + } + return retStr; + } + ``` \ No newline at end of file diff --git a/lite/tutorials/source_zh_cn/images/lite_quick_start_app_result.jpg b/lite/tutorials/source_zh_cn/images/lite_quick_start_app_result.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9287aad111992c39145c70f6a473818e31402bc7 GIT binary patch literal 128768 zcmb@t2RPf``!F0uDN3!{qV`sMOI1--lp3{bZ>qME6s3@wdA@;w#```I_!_mplflv`e z$o?-0gA*p~NPrn!{sj|o12EYC3r_qCzce<|Ak_IpfCXLt2WPR z@$xS`Pk>dtJOloY^*8;c36+z#$y37LXN1fS@B_sZ0{}FQy|8;}_s?WV2;bM73EVv_1pscE0|4|t0RRfi z|C;E3+WvyK}khOWH+d3Zc`qifOvDYiMoUCYOLWx_0225|N|61(;{WeNbd8vV^g3Zm z6qJMtjkgHXCnml|m@Fv?fp|pWg!cdvT2i_@lIqv#4eiLdeHo-8Qa_XP+^_9nG#W?o zO54ATyg_lBiJ66!k6%DgNLWTzPF_J#N#lX0mi9xPM^BASOw9;{c5rlZc5!uc_wx@3 z3KhuHnp;}idi(kZ2I1d^hJQ^= zPEF7Jo<$&6R@c@y{%me-qYsacPcWz0v-7`r5dnz*h1P##_P^joOTgoZ>dG43ZE17qx#d``<$> z^8X66|3>UTcp(5(#6$$<5z_)d09^W)c#+F{YCi?P!~+DO!C31HvTYy(%)tN{=G2HD zi@4K>qB0x}LZ*fudF;_I^tkf}Gs^YRtE_q`uVd7h5+}iOmoX(+(1pTQmlAp@MTG~c z`f7mHk##Iug^{bZZKg3tsOXyV$J>J6ozx7%s1~hSU=ZTJ(kCEL(TCy-LtnpU<^*iF1y=iNxSP)mEz8q zYuTNJ0wZAOF9-`sU0OY5xv)~rSK50{7wmc$vcZrZHKB2w9r6kgyF{bLGiR-bJfPb| z&0A^)@D+Vws|@klH{_3Y%}W>FiL4VM!S#gMbgED*MN7p)V}cUeW=s7MZYAk@G820I z+4WlQveP>5#|u{1MaBz$y7qsSg~O#Ew@sgjyb=-dNEjIzGNpVK%p;|%l6b#@yNvJS zht~j-w0jJ4Y3AT9uK+zVYBFK>(c#r80#QCHk}`{2zi_h3*tgNy(@fcEEMg=z zpmVL6M5g)FyTmL#T);=D0~}qvhryfd=6DtLmA!fkoFW>Ow6}Y_!#!NTi6{yUnqAAh zFU_93dyzpzbZ<~!du*kpQus3;%S?h-vFin*0fE4@nazAotn5`aNO6VUzx;3oaIOl% zRA4`Z$$wsQWxbDhHdg5#THRX4mz-Dl`yNsLb_iQuEHm9LX}|7n-tfHT6fCbnAM94J zoT`Ri3Z@vFVJCC{Ax;koiZR86iVdgcVSX;@XPFtEt9Zn)L#>QPTM8vcDqe{`UXsh^ zU4S+&4qws-h0{}fh*h60$U8Rs327|d@pfpLQ1@V87+lM;!PQs)Jt{ z{XV4R(0<&a7DktmeE+L_A^Gq1m!H2}z9-DwfE0Uyl!ya!hiOmYY~7IIOqLTkNrw`w z=?_HsQ`1RrWLpby`1d#}N$s0OU%$_aJ|t%T138HzK|yTZJe_Fa&KF=9!PIo1vXi)@!=4S7ntx^bjSZ}u(7k_9)?SbnjU z1`9kZPWnzy@?IpWJ{!FXH}|i&ASoVuWifne(dg~5ARY~}e!JM3!5S-&vCk0^oq z4z35w!><5055i1VB%<+3zr1A?_@-qhV+?;H7B9c@#~*!jiSfz5#rrwKcGRTX?kLzR zT#k%Gmq~ZdFx0vYm*FW-UO z4yZh`+uY9o^wUsnv4SJqz1H7t)AvdG1_Gr znB1s)kU(aHf+gZ0OjWFQyk+Q|b!gbnEFX=Dx@IiUt z!?W8nOg}Z9Ud(tnbLABovVEM*ut)R*B|qMG@a3YK_F|My@O2~peWB3xpK3cMlr+j!Pl7%6oH6^^KF{7AX@kp-5FlB77 z@F&=~1^N!!$6WD4{8_$nu5}^#fNOSBGA5{Nf4X*5R5@H%NgN7_IjI!8KUHYiskWkA z#`-YL#GE!tNN~9la1R+l_L;=jHWVj%*@R<3w<9slt10mo+Hb?mR}ClzI8I|FR2)`2 z?PvP)1w*PGDVbup>x`RfZ)w-lRv>lQYMI@bmRUunf4pQ@b6~#E9W)GmBvx*5KDbrt z+!j>7z`Z^GR4w_kUKD4D&gx!d$2P7&S*tq`(FHCJUuNB<;Nf5UN>nk8j16XHHC&eE z%hn2Kbz^l7nAjQbTW>c(_Mf_8RRuYVm8e6eB9jN&PGqTowwBcEj}k{(zm*fPV75ts`G~%Gc_d<1kaa*LSG=pql^ycn~!JY`Y=u}Dmg9|<2V4p9=Tmcql zB(DIreT3ux6S!xI27M~Kgrf%HG+$|mBOeR;+WzsuJxCU~0(?4$VcFC?c4Q$R^QB-l zKCju|K0End3xJf;;JG_?!9Tz>=m1Q)2XaBc>{-KHR+CcFMsXWkw2?Y3w|48?R`-Ez z5d7jM&H`J2in?&=RZ@L(1(?hHSd*!zPj2ZUH|QyStw?-DdYzv-6=^Tss3VWXP2!B$~SCv#vWG-G!p4xH+$alX1Oi`QqOoO8zbn7y#cC**o ztf<#1fD@mY{o>@B@d}eH)(H>U2yySBQ%Db+kpi|ecueJDh_{0oM=XPV1~`?PT9oi# z7TG8EVN+Y7reh6XLiJv#pVdxEZ2fA1tZ@0NUIEtZEUy5>saxUp&?8XCS!I7gJ^U@0 zbKAhD+{4A9?KN_*q3L%#r0uZf4mkcs^~;NHFq_w}5Gll9$FenDh3ae!$co||Y&%QS zE7jJVv%=@3sL=Tow*ANv%veg(110c|N@hq_xk^MYn$3viKvsu!>pg~YgHE2aN6RBJ z3^M3#8tq^rfgbw!sEMzWf9yjT&4qGlzvWwNp#G$fy}(VsjkCboR}Dp8xa&H{P#aJU zO_V=~>a1?E)8<~9NO+mf?C+iB>#mHwRwMmc;xrNFh^W7F5k2TcHWwNRVjca3=fJ8) z!Ykaek0}Z_+9poO*T!0tjhU|iU6qqzb{B%U2Pm3&oiW4@!)Cd;l9MG5zDidlv_Cof&E)+1{Veh3rb~l_HLT`xdxP^tKxw<*9S>%8$o%HSWG06;!lEKX8m*;6kd(I~m z+kS`w+yimp+<@;M0(d#u*snAF_@mWntYXQWl@1kp5zgxvNx28g6yA7?g7l^@bXXLf zujhJx8c?k$LO$H)p#J4INKs&Mni2~l!-<3-FSU;P+TfO3E3psyqaiaO>#IfQ3L*ZS6%aEt_qDuaDDY_l}SY-pK7(ISAg&t^A*cHsky!& zy=vLqP?0;9Z##VE>sCuuGLPY-1);|kzGF;}R7Rw$mKB)#A5&PnNK%_2!9J3 z)pwpT4JC_}`RFf5_v)vtY?`7;^7wjQPMsw{h-HLY&o|Vp&xd$`>V*z+)Xxz1aq)iK z*AS;$xfQ~qqWV+aqM^Ackq-2qelL03ahWl4S5~iq>70_K(HCh0lp?l+(ra-JhOP6` zE&|ovzWE~6SlbGmPD8_OP8Jk6=M!S+^gzOslL@q^!<)#GG7h2mLpTaP57fPPgG*K{ zndas#t+|{G&(x)>c%LGhBTaq_ybZ8)PKnWJEOjBbqHIc^r_OGkmwfbx zW_~;|P~~_LOj+~%5Bu7&>~Uu6g^YW?Y_f8aM?WHT`;{-xtgCB9c*4FZq>^e{?c)Wf zUWuix*uZ6evuuA()w)OAF{a*j|MhK6AKUB_XslHb#80x^M^Og!)n20L+l3j;( zP2-j{MP}~0A98E&uInqX9~v+=uF}kA_w`tWCk;$36m5m%^-kk-`MPcZJJ__OOll+j z5|c$X4QRq{j33)l4U}Nh6pwA`!l8S&Lx<9T)VXMXfB2PLulNP4;&786L2Mk^6-fFmqT3 z7C(oCy$%y{@o|9$yA0B~CwBR@yX!cy4Z=^oSQ{McQkObi-P9bKrHRYpeoMz$NhpMDs`!QM(gVNGRueBFavQ%rN z+?%7+0Iq8EbFT$vM4h^*L8jq5UDcg@+0 zr=Q7C!jSs2H=p6&hL$nj-9reQK8Ox_Hai4K`aD7(Yf)l24tYNI2G7^v)-X4!YxEX; zgz%vK&a~4QjB}sCDZ`MhSAa|~7v>5O_xcL3B0{%>F-4z7$tnbhUDuQ2xX=IH&ti%B z_hry0QiA}+>z%M}8`*;XrXzFr>4YL|x~?&6Mta+u5o-Rp`sg^+3-#r-!0KFycy=>T zV71g&TkOKeB1se5{@HZ_{0$^(8F&KbB3NU8hY}jO0+1YFy&>xbu^`lQ5H=oTjx#Tu z(_0^@a`k=K!4R&+XovN##8fxG2ze(HM0>JCmB78aT{L4$(3beOQYxRT;%&(38`$2#L4j!1TGk^i#H z8D*O!%OUUtH7_bNo2ZX+r>c7>nehV3DOaP&KF!#nzw*d%qx^%3F3$6#eTAm=(1!xl zJ|z0=3ShPZ#4!_eIf6r=M@fx!|018@yZVP3BIQ3}9tITK>7qeym0MIxaNlbqv%Z#HZ{VTT+%q4t5x*=Slng$!6Yp#gMm#at#5@NZ0*{n5O z3+{tmcLs^qN;_1mXpmt|-)7_iNakQ4|Nc#KSZ+7S-T@4%Q`dt1ymB%cUlrzSbM~Y!#^vZN%=!gfr`5? zC9PkgMG~GG>@->&=7{W=z&<7tEDgUfS%NkU<|gntmLTzQPd1*8>evvh@!m$^qaMp|Cy_jInw?gW72#z!8-@r;*_(HW&f^9M5tJ?#HgoUG#t#cp zd}Dma{w30Q$5u{R^bww|yeSUK4rm$+XjlD%k-N;oiJ)I;%&2It&9NOhl$-?_X>cT}S=4(` z+*`bea8Wsa@hQaE6wYP@ zgxkpXyvA^^BMYEn?8;Yt`nX(oV=%lRbr8R;XMveD-#IN1wq6R4m*tkrcVlzBTj?d$ zBs~NQxW^(;1AUIwBUtH>0Wjr6zyY(x6~NPj{&xOv7EWak!7*~41cf0$6NdDg_owGH zawvmnM>H(n|59AE(&qcE7WTnBYZxgBp78{jAW=Ae?9|+B5`Q<6+z=807$p1Ys~wF4 zX|owsOEZxQYMS#`=jKDf!%HD2Rw4PuJ-^;ksmwcGZcNnIjZ5UpGQ4bHYaVR2Nwt*=N2c0niOkPlEYj@W*ukahRq8*Ms2rW1UBo$BhxpYtGw9SrUc z3z`n_$&a*~O;7vSv~kP~egywS1mkyfuK;x>;cQRpe<7{gnm>A%k!5h5y}t+oKJpnb zSJ@IJ*!OOV1WU#v7238^Em-*u?Je9%@#v*{Ud~I?1|D3UPU)0#spE@v7GvL5O<})u z9Y4=>SjR=F%j}n_lU{4vQC^QGMfSQx2V&W+wwPVt)hZCir5@WLy6YXr7W~^Ka=CM~ z?rfCoBkwCM`tMeB%&RZc2Ol05GoHs?$m4&iabn2`hus=hyz6dbQ!6SZNmdt1<$h>I zHQ+(o=PtIPpu&9mpyF&ZdGyCTa1hOy=U!K(x;7U$Zr#3_Qk$sA^`*%I_(2jk+_!!f zJx${DEQrLPXU7cYGKLi}NCCO}u^Y-3oQ+&10K&?M^ z_#)X2R~x!81NSX*VTmpb=CDkf1ow$3&g4aDZ(8_9SG+a_x69VX1GqCZiQqMVKu6Gq-SuUutJ{Uaq5>45I7jAE< zpJ=FsR1WaosvJ(^+f4Lyh>SUXvu{Lwui6KHW0gSb!zqvlh!ki1%ctWBVgMF>Ji_w{ zv3S2LU@hy~f!yiK{MzzJu{yzpquT9H%QDHBIT4 zR(HUc{fnuk+b>98hBECgTz1@EgQ9}BMMNJ*5d5MpC8sGx{{4j*~^9q><~6))>g zD2Z6^pNIufc)DcJ#EdVMN?%Gdb-@CA08|eJ!O>O{Tw>+OxsWckFm+1_Mr`y`h)1dA z{kFG*1-GX(&79){vq-6($m3e-%AbEu>A;RHm%arP^rs%aE+IEOJ=!^Cb&SeGX}!A8 zBgDsxwL-+oZTthj=I~jp{hvDqA{kEygkO|%Fs4y<#q>dH34S*(7tB6d50inK9zHO| z4;hDRVYX*?cl}So-W>7!Hv2tCGWox`e&?Yn&!$f-45eL=WJ7`anssiH^)}4u6*Gxj zws$?oBM!9is%#|zbfAPa)`iy#z^!bPQfa7W7^|n(4u-;iq3+Z2HeZciR)z zLhg9&@Is_QY6iI$75G&X@27dJy~i4&b1-z+2(?BxrdSoeDl2QU%!4QO!ME|6z@WW% z#8lh&3>)9X-&rOf!r;}**VKft6UA7bex=fAoMmBfRA2UVj);Z3gY79)k&$fH3{rWqB-Q$$nY*FIr)w~!Z%B|%bZFMiA_JnsxiG|Us*!rN3kce;gk=svh{wV9-Q+wjjXj~&)O8sN_-ebFz zFHJHVmIVbcf{yNP%Mfgj_FP5fU<0*Zk|5qmOB!A-#^s-p#K#~F_T-`NU3Y71W~v*W z7SBt6JaB0~wBe<&ypz7Z3m9I_*8^t;SK@C>pb9X#D9)-<937TmI^2**kZE~)S(31# zU<7K?r57o?Zx^>}bnhuwvL@SWg&!Upw!c&GH@0ZtAcPP8RthIUM>Pr+1xn>K<}3$A@n;zFM|yR&6@DM zQ^jk?;BVAks1R1POWaqS@9KgSL7jBYaq&kur+!vnA7C%5_S&oFl<|D{ zJMpf=?SGjP-@`>tuG?Y-2umB1jHjOx?;^qJx1qIK3oS28tZ6LY zSk5m9T(HF7e!M0q#-i6RBIUxf=Emb%kj+HhM7f!{a^nGb&0G3w5jn z*I6!gw|gBd6aR>X_}2H8UI>)hi$~Yb&CWRT=b(d%)iAwfTUs2~Br^YS@kl#0_STZc z*hQ(2x-h%T@8t`#R&4ufS22?2gkX$@S&i2!^HL=iy*hKpstwkR?fEWuzIvRaH{%}; zo@VQpw6@UmV&7^&|6rHrP@j9}v4J+%rxt5_`XX!DLGZ!EWe#4--IjK}V?5w_vr=?{ zr+8tfl~BG|kK8vUACjn+0G6@GIc)_=VajM4Yo{sMJl3V&P}RZPA~_A3)B6+H5A>rQ z+MhOerGHYP!MA7p7d((1U`iDG-LCR#J=vzhG6rFX+NY!Q-St5JS^RK3zHGwUDV(Cc>5or1I;Qu@ z=WHLwV6f&%^5$dsW_kL#u~N|B*!Ar+lBfX-=9e#Sn?EKgz%pB`p7^8yDZ?Dx#R3!x zvloJGl{H;)uv2q2r}OwfIK^d}X!_tw@AQG}+r?kzEtJGl%B(m>q-mq+B%d}=p+ZPb zsyK!9-Hd!as@p#M1*&cj`!vEgEJoS46(vX_)z8Xh*`H|pw2ve!oN~bJ_ejo{eG5Vd zeyOowz2Vx?s>%;0y!LqdG{xeCx7EMdNpbXFKAWBt93N;bNn0hO_$AIuJRXbeY9X6Z z_4q0J?r=$Rl&4VpG$TtTF}Y!=KgCP9PpJ80p;Nqd1TKr~ZFp&PPfyQIJn9N?drJ+3 z6=BHw861BFF!{CSb+i!iM_BSe)ad$Q&)DMA=B)w06-mw^KN-X!Ltdlmgg2SHtGAzx z^s)hBP^AhM?=?kvi@U2fL3rt)pBln2_Ny~Wb4n~s+rHVtYoYqHdpE6EM~yNV2|0r)zM6vZ7L-GV)2(c8Qn+xI$n>T z8E?m>#3XBoPB|N7Ep2Q>=NT6rpIC&A*=lHVmz2?|6IdhcT zf09DD0@JI5_IuKhbZW8HR6@eC{EZ{5?<^07qS#V-ini58!J@=@Yp49@M!wmr89$ll zO+3se0~``5s`YkgBQppVNSFnux#Wf>cYS++KyLa${E08~F27l9&$RG!oy82 zE$|59Z#WgxZGS}7PM-qTJQ~bS^v*}?G-JaLol6HL+wi>x#{Rfi&~z&sVQ1Hgg*1Wk z0$_~Z+#QYeu4~B}?1^foHxnc9jNcGf0QfxQ0D8oTQgPFlToG#7&WXAL3^|+^`1VxW z{x&Y;bAF!*TX8W%^WvJodjj|otKQ@4f)z7L2mEoth1knWEsy$vB!yD?Et*St`u4Yt z!&|s3z;TIc2(%93YFB{e0re2*@^eA}A602KSaDBwzknX(eklPjsA=xI0=%hlQ+m%@ z8g&vlSqe)nypZip4VC*u28R5~DkEO^amVeRvsphorJ2>mQ}`BzDO`T67FBU7o%6_7 z!uk;zkXTuDJEm>%KP8VHNrbP9*v-AndIOM`$~_`D6Lbui-19*MnR~tDkv+ABh_3qT zdY-hf{=Fd7&E}ylyFYP_VK;#2H2|9Ob9tpR2g7(-e7rO(y^6rXOeSP+S`avuKvO?k zC)!@*`pqXdBBJJWOopWJ_cj*H72l`t)!OX^F_TpFDFISR!%A zDCtCXWS-0JjcWvz*6mFMs21HaXX1SPDe-H0B>8oi0mQ>6)`p{*K!=?$AnHfMPsF^z z=ifF6nf{QVm*Is*v;=3Xm(#;S0tF10BvbCHaQ3-mYM0b7KUtx?-E#v){m7Hj#$F3)&=Rpp^;SfE8KHnMT zu@Nu4NLnEMta)+Q)<Q3 zPzNu>8P@praEQ?K!cb2kZ($9{Cc>R1K2)hm7q%Q}`5;-o4=0@;6_+wNRB4Nvnu-EhLyX zTSm&U&q`JsbXe?SST3Go3<+dy#XXt=%LaQ8B9lIpL#rt_u&bsGsN)!OU6Yn*<&Q>0 z{3a^xZ%kj<$V({;5<;-71W&{aj)8Ry`KPb)AR0uc#=Z%b!TPyB&m8#DoUA;MX&_nR zVs<(I{i|{1hP*XgeBPnnXD$m9a+zNxfEMT-i|FF+K=<=G{F=t`(Ke5-r=>}7UrR9G2 z9zNtf7wD%!1Yvy9Gy{6zBRGt-v3_L~WZD`Ta;*GG^n@wi#a8XX#baW>)Yb@X-t0B`%pgK<~hUK^!Os)ySM{--en=$4DA||^s6_CmhI7Zt61or#H zD4kSpa~eO5Jx~F$U8k;XG7EHeF{VJbrQe}xAf@?e`@Y(=QGw=npqK6dtSP2X)kE6@ z$`9{vs&NydR?p`V)SYWO(Q20dbOk5@J3wwhn`KDq46x$hLJUv>= z5uvZ}jfx1)!nj#*9p){fDxl#L31L(N&V?Ccb;8LfIY{BD;m8nq$us5*>N+}eMjORj z4KQUMQmb`wLtTeynDf}&1O|jPK=bIKnFyC9;+i;l4;`bKtHq6MWgU$;rEbn?-s!&C zaJ%P8X#ANO<}LOVX-kJ6&*$oB%+zHAGP!4ESG`HA2)SD{(OzU!CoTL?U4TVoP9^@_ zqtCXHAU_vEeDK&VN*rDLM3}jg*9*@BoQAlUf5+flQPS-d`x{o3o`-oEAA?>$gucez zKt-RzZK=f@C2lRvyMejU*;clTaK}n7CrYc^gypA|DC!nDi->0+ZU6wjx*Jzy>sayl zhc11uYN(#xnJL4Rl6F^9F6-qNe|D92Q-aTlHL7xIFih_cTACMvwl|sr*R<|ke0oQ% zMH)2K5TKI@u+Pxfn$WqoV=SX2H7>tD`;M@u^qZ(c`Vh8pc23ix{ui5aK*@cindGOn zJa|U;&^PXCqDc63E5YIK9-t>Tb3bX;8O<;_eZTd4V7&Z%*Q>DC0@LbG1GZGYvKEQgxU&8@p|@y7D|RaDRS5_IAo z3i$~EeT~b0cUn~g1|LSwL1yE+NaD}!{8?v}Ip zD@jDkD{)4w#K9U>EGvWUf8C{`bG!KL5_VYU5LyPW-RR0gtxslIQ2p8jb2XwpUEhAW zu(ksE zYf<9G?70J8q~CuI(KKNI@+)qOblC6W0pE^646cX423BnvYkh&p-4oJ%I*r4EQ+>Z3 zMDvMHESPhAvhz=@45i7K@(FnhjtF`eTY%o_?vii8_q0tGcA_rZMVspo51g}4u-ue> zDXF1M={yPu#Xt`Dj-M8=6-4htz_|Jc?@jbBdL+3-DhI4dTrpoh+51*j*$bKgLPN>*n;PIVbvARo~YP1~zV_zBISIEH*<%VC;^oS1qv_ zsHK(CH>_|Y^z{U_g5Y*sPC0(e*LxvPgQ^e;Jz~HYKC;2z_LibHK8fo@K?f7i#NC+C zMqD7mb4IsCo3Zy>b!RShWj^?6n&fmmI$U7IdZwqv@h1+n;zNo}&`#FMoL<@A=gZ{t zIdfLG`?-cDTyS}A24x-P&6&&(nml>LRvcuD`VP8Pe+A%9Cb&?;O0NKn>X#qDcWD1- zi8YhVF!!55Ab@U{Z(scKKZ=%lI<=$1=Fn%tTRol?Xe&s1bI3PK^sH*?&8$10H3u9 z0md#uj)#8g_ob?|>w+4+=lJra*e8TJMeue z*6gsGkQ~UJHJnw@bghme*6gif2h!VY;MH zf?pmM;7ox3FB<5oSLUh#fMNlm{%RbSmVv3Ck1`lw2f*m=v9N&3or}A;`#eBY><;jB z_zHkFMqbJea3DIFs@vM4O9_UlRWVY}_* z5PG`SqoTNUcEh}*?xG3vV;;iuOy|_28CXXMigH2Lo=k%d2;u#e@~sPru=}=W?`2ai z)2rZ>5~kpZsg2REQHSw%}Oc zFP6RpQ{`#P%XuUNy*@GHqQGu5`WDT9*9^i*E%g&<{GV8zbE8d-dD(y&=p|7Bz<^{4O@shG~n3EtlyduDGg57%-XY1J;fcS zcNpw2;1=EGjHdTRQ-HLbQCMG*g!r$6IQ#;{J1SUBEs z?_UVFNW??xBnD`Rw(D^B#&PsjqjCkF+OeL6Njg)ax15S7Xrvz$zEFJ>scc`O#}{a% zk4RqV-YB5Q!JD)cs_T1g0Ud6uV-#C$8*#`^U8C{Fgn-t%_BVHQV^e&O0@x#!BFU>5 zFEhG$)*u5MUw!ceaW?Tydv$#cQV)f9T4J2AwGOK{sb>s2Cq22d8KTcPK0BpS$laG} zx~JkdGu@)oVIH&sVa7(BNJw1V_tI$HmyDB=so_H2Sq548F$^B_VA@7B|a%nA4 z!^Yu4Gb}WHx$`vIzWHW=9Q4J5Cg1+AhyB%2FPj&Qp6zy%-ATDm8h)b!|3gjT=U27y zvf!5o`pw^LrM91awtA;8^+W0*S;VHtMgcHb7(|Dk=wh4UZR~=@^o_qJp$&B-}FCDc2jl{B{M%ikoBMxy)cT;mFYR1xsV&%H7liEx&~cK;4_# z9MwG!6MSe}-fZh^G9JJP9D{W|16sr zJ!go%J>{kR2%MPOqL6L3S@gC7Pew4Qo&+cKp1Ti}2Wt=5@PAC+vcMRK&(0|d44L)( z5%?pPJ1t(6n^scYR;%2Z><)}oqr}?z$mVwO)wRI#HN|~+=z;;;S$>}zTM&dAOU{$&DzBQEZ2tkZ-{Zttu2ul% zy|IzRBo0;EI~j3xj^^K9E9Frsu@&a76n#=!s3fQJUtEO{0|LYqv^-FXRel87^G zT1R;|d@beL)d!)st4i^3*e(B9-uSt0L}$lKJ>K2;%H~&j-|sC98Yr-viLsMXNO@<^ zXXwxIj8uU+2{+>sMLF3~$I79M6L#Nlk2V^=?yWXx#xt)pr|_)D%O+_r1E7RpSM-y= z=Kp=?#(xW>HckrCUr0DCZ2qgnn!U2-%=~N=y)?iifiCU0M>^^h80X7bc^yt!I);UM zny8(PI#8B8FufQ}HqLd1-NW-hdSn9*;aIbL|VW!|jrR(U@n>oP)0jz*PI@D!Q^U;B{kVw7LXi#lviQvl9Z zVj>E3CqJPUTLVW+7o`SD=XH+QbmF>`a-f+DM5@%vtfy5T59-mRu=FyEKHr*kohNk< zmKL?yD`^aErNhK8Gt{`S1*`cv%LAyADxVed6X}}+?>BGjnl`I>_C!P8@;Dp}D$UFj z&Uk2lT(yPza;Jx9qUC<+eZR|XOr7viWy~ePjuVbbHw~xZ&W6ys9;{hzp1Z_~O@jBg zb<6hn;iry9Z*Bt@t*((Tvya;lEH$cfG%w_PRuyFF24Nu@+DxUwgfL?A?7!lb2-n3j zK6Ez;Nxw7L(#@9lyGP}%U5b3*TriQX`6u=G6LApt`(z=al`NGf*Wfc}@$bS91`975 zmgi!QJ_Ye__7-VGJ&DwJe~8~B<{N!<-C)a*IHR0+HT$|Qn_r5J`@=S4k3Qp6lq(Cb zL#Gb&2$+#s*`V=ZN>c?luX1!L&pld6a#W8biKLR(tLfp~%Yx7d9ftP9 z(4bE=H=7O#HWMhJ(&rF?yMs+F!z1G^XQCR1q#i?d5!S%=Szt1mbqXRKGl6Q}Eu(`! z(UFDHKhC#zlbaBQxIE2O?Jte(+5L3e`;$ZVUe{eLCompHBWp`Oui+#Mi>peinr%xQ z;%HzwE1@9&9{<8&Eo_OgNT8c_(qc>7?N*% zsJr#1w3N1}!Yp?p?dwoKE7{g^sEe-d$t#JS&r;(SO3V;yyh@n=B^3H8OC1G$t0I7W z_3C|F!qX}LdS5C!@xT$bAJV+>H+qtk(!cH4oQ0#z%x65s@64!i@7M^YJZY3WZDJkF z@)6HcR5&Y)mJoj!%X23xO=K8M(1&`SsWD>djaw#;hhz)bt)30uA1Z{ihk{WGv3fib z;9`b|IoZR5B*JC65)i!_?{?iNFo6ekJA3#xY9bt}b0j?r7QpvO0%_e5P9<5qhyiG7rAB}YSN`J8<21c=ucr4QDPmpJ zfvo~BU--eb{Vuq%5*UB%TY?e7YLIyHVb{Auo8x_!muhE`56N_WhG)bfd_$Z0#R3u6 z^33-Hg0qhWn{;if7QVU_p!ZbAqo8iPnbrT=vj^k5uH#LSs{r}$McxloD|` zOH-A_6Hjt%B1UV6QQ5fU2NBbB>F!h5O@q&7et62U|HcdXvX5q<}ahn*?k6REm)c6Wtm)3z3?F1y@`5)pXg?O zM)~qma={HS6;7|NcDm~}mT+PusL1;@c~sGzl~5HO)|V^hGXZzIj8PuVH1WM{l9=NR zg%J-Zmdw*#YbLEuRTLJiG6_IU$i z{eL(*3%4ftuZ@GCC=!Ao%@C08?ukK&FhS`UT@yw#V1yza6Ob;EZt3ol?(U6{7;NN_ zc;5Zqe_$8m+I7zNocnX%rw$E9YVHQXoi=e2*$fW<3}$m$r)^Ga+q{;2`=@%oGfI&S zky3SWdNH6|`H{E$16hDD{fTpaMXPtsJN)VD(mCVuAWw@d-5`#sMsW0BH>VHLr~!=Q926iqOK9nT}LErA(jiOwr`84)jhL(a#y=h!_*F$ zMce65r~*-K;wxHXG7*<8A|o(y`vWk{s%LuD7%q?V!^95Fsk7J4wt{JVcf&oo$X=Vg zJ7#A;zFw(1=K_iI1q&P1L#^gkRWE2gMvL)M$BxPzV?;zaPkf*pnbnCnW$#i=h z?%zUYpZFaC-$m)%7Am-7+fO&g(oy9swZPCj#hKjdxK?S7MX6>+C>#IC$l-Ithl13J zb|zUVlE}d7j!q3gl%985Y>pjL^R;SC$JhS#R})FXXvC8TdOqB?aX(%=wsa7`6h<#N_B*gJB!Af^MYt*9)SZ~>|#h_Z?s)=9h1GY?qlD0YZ5PUM+lCV4GNn) zQn8f%({J!J4Xt2-IYJGrv89o_e>jCRT)c_#U^1N~*U=k{H*Qj4$Ymyupy$0F%_8`> z@5weVAjdKpFMA8V7{TfP!VTO}T`73xtw4-#Dyt3pBoC5VKKbx;gsK}mKxGKi@g3qaxF8GGB*tDx%UQ?`7 zy>#vQ*u9d_AEAH6UMkgLchTB;xSoqm+_VpJJnW7X+t-(sS~%cT)Ky$^cRXYg8ly%0 z`NNT@O-jE${VtwM^qn0SK*T+pU-fTP|D+NFqZCVuW!lkee@N&oT4H>0 z{OycqOC>dU&y2DDWOTbQTzI>+?pw{nnJ)38G-(0Vp~t1Z6u(TLUc}%6k+5UV=^LMo z>mm z5Iz4;ucXz|{Lj28f@exHQ0uh6>G*XSc=`LH$;up7RVAiUXui~AKk)(-117-t@fKaQ zCuSX`7yIQGLMQAc*7P^1jeJTmPd}Gse)N;GY&UCvd-zFf-1a&D$(>J{<)jLYff*lE?73;4 zDyIaO3%}O%T7ngPxOX%#JrxvSRw!Y`9v?)u`yau)md;rU7C^r3pFir zzUb_^AWl#_-zSBc*F}XnyH^uBT(1HNbyP0{86%a9@>F_|Un9B(B<|`++bQd0B%hfZ z_LFSBs~nXC#M)DItTF4pd6ZCfyq0&eFvlIM;GcUVj>%h^Yb#PN*mH5QO?Z*-JjjSh zUAZ8ARGHR_?=Sa1W1wM@yzDg?M1&;0m5lmMd+5mU5l2tle+2is${?11r|vk*?BuG# zddJHWA1Q*2VD!xM(E%fX2K}HwM?>r1lTgknxVp2ndd_}q)v8+KAk6q^B)G{;)rB8$ zM@o2Yu@W%MO58AA`!HY@OVnG0(){+yR?eDe+pix%;!bqZU-)$;BSgaAF}dcV#E7Im z7$N5S4CoA6&ept*z5x~tuqH#0P#VW6kthwPm&X1{_X$#M`55LogL0t?S+f|>0AQJW z0Nl_Kb4E@9ATcO2@*SHqVvTYV%JFgIe3_7(%rs)-LK;N#&4Z^mv%} zI;L5{qR2=cVyAc(^`auKN%Y0Y?{CU9LDEC?;?@|IM-?CMNC7CyFuY{|(Z}FPP9bQt z#9;Z&u^Nx~$<59%JXxXl+2*iCxX1LG2R$6bkORB^L0XqSyFV?~Z@w9l~UeB{c83*}l{bdlx7l8`+dLj622 zOGP1QOklyA|D#SQ20f`4aeVzp54_~l_WjaB64zrzXsKMY`WqF!wQA=Sl=Bt_kxZ3j z>BD~tO>O1fhOM(~2diqge}CKZD|h=;3V{AOH-a=2?W^z_anEK~siLu^FrYrZfA(aD zYxi&^QYPja>>ppZluKZ~3-)Vqe#2v_Hh(yO?_Gd0}o&!EDS9;(bkzOWwc>x|B3cFfb$V5BHka2QYKp4b zphPyZxIWLoN3|EY%8g}t#KV1~f$m$Hu>z6{%Vw zZVTEeVBo$xyB@&fzYSojc0TZ%>NUqTwi)XVrDyd5kFxe{l}z62KWBfGOI0?=OUN;=u8}`zL;{InGcoQ0O!;rsf zu$RR&DTs!4(M4W#`v|+wkHu?_bAf>3tUd=|eO19?(vs5jK(F?~&pbn7Eq2)sclW|R z;nIs>%Xr>}^ej`jcd2U?7zMXAlN}%+x}UY1LO{@Y`)7dJqd4qvy3BE|nvx1`fUWzt zvN~L3YUGfVR4*m{RBbukO{}FkmO$T9q(rpOw=c8IOK-A=GIhJV<%2@VqN+v07>RP$ z*D`}&gMQAHL$xJLiVsJ9se5{i)7=UJpm(cxWSFpSaI_KNo5$l+&h}WDa~4PAVLzFl z)6ZVQ!z~Rgm6?9uqO6!dj~i{_Gon~D)N$olyc^OT*>bCKN5x|M5B8b!_mkJ0`s0_@ zVzr+SM4TrCv^J;B3gZ1e?e8{Y^(fe4~Z;>=reOy8B}@*C@5B3Gv+(jpZ-T+*JibG+*gX9 zZ*y`?RYr2^<7ICC93#Kq9eFDLh)!5}qPz#L)K|TggQf#TNmw3@bF~g!B;Tf=;Zu5~ zm8S)E5TNOEepy6frHGYxzH*m!1Rblx_nSsH+6OyZ8~W>Z%s>rVS{b;;yzas|#9}59 z)pWIuFU3esKs9&YEueP}Xf-3rLcx%Rlnw1md-T1uczJ015r^y+Q83snV0OJBIWo}B z3D|x47;`Z;MoIP3`OUxjJll{)9d?yqLKEIW%0GWL&MWDF7}fFs%FuSUjyCMu_F`mT zsDnVQpG@np{~KNzLvA;wkvL_x``z&mH2o#7nPGK-czfj{N%tkI&~(}PL5p|ev?ss6 z-k5AhAVj=3KQ8$(Ta>LD!Ks1RlGi(-}%e$`}1rQ+j|=sO^6?D4co$E?9ZCPM8Mf z+lN<4%8rQ!t%$1b$v0XGn5`*fmRHqRlF;uRedt9NPwn)-DAc`ERaKaQitlr6{L`_E zJcTayT;$>jJ>Hx_t`yE`&(b&4W_Xe6LEMx72!;)o5n>$s5AaXLDZ-UjKz|#lq?Hb- zi}(8}aUK0v=wG><{}K3||ElFVrGr8On9oc~Ni_9c>8)On zd>!#ewVf{~cc#2Sc{(N7V@<(06`p(VcW)eqTxMouS8PNuT3Li<>vl?kg zdr%6fxiS@>^Afqx9B7V1H5hENv|#vpcxCnd@9yB$^m~npPcPbW5G3GPdxR5mS+_M> zmU_i_7;1a1qP4j7AuJk|<=XFPqeF#T{rWL-<*WG+sRqhL6j{7Q~wTF1-4dm>{FRLqMoa`%kmTwi0 z|5%PAbxr#7=Q+J=pVe(n*vAW#p&gw{3TNYePe5G*y4d1cTAcz>xUhU+#@8HTCo;|< zSdq=-KbP!4cDVYAm)TA2&-hT5626opU?&3~LJeCDJ?5!Ztdlh-(YZBsHGuBN8#PL@ z{EZt{+}yOscWfBpkQ+#eDJ~apqXWk{d0eZX%baOaYB9z(6r04=g1jZnQ&6Z!_Y!rP z2>(J(*HOaVAX>QO+^+_#b67FX_a8=Z#KD^`sevkks;XIJ3r|+VWF(P0=c1zU2`@zQ z>jXNTGSj(%BG`Wf7p*PW%2BKR>}>s0-K8>$IcCcmCA^)>H-9`#NP+4n zaLi6uc zfIb~<&snGfEJ=uHGp}JVv-K_jpp_dF*m-dgz=O35^H?kwww*%f#X9U{TrJy@jpDai z!{QG}OI%zdPh4stNMT*oq|7tZTZ(rkQznCk;&i?L5imUM&Z2FeEz6oacz5mL^<@2J zijN_3y-}HqOSJg@`*f+JfpRxdxLPx|zSPNlDflQA6G?R{@Xd9?I)fr{f9=_A2>dM) zx>-dL@KLHb$G8{72AO^unA(u!bEk`FvG|(?cUW>RGEK`_8uu zGB=M&P1at!Ix*{rWI0%TA*9ajSB}}ItAIbaPOshC9cKfGYJpkyl4u z97I|2Y1dX4GdPy~8`0aeJ9g<_+o--d?>Uk?s!B%5UlpY}Yb7f6bK-nkA^2!d!w=s( zs~edaaZfh}dJcrq_UB+)Q%6SDub+3W`HkK(G|mWnS@O(}K3B-MY8o75yHCW;p%C!? z_xUG|`9{5NKfWZ@ck8u^{n-M;n@vIzO^o8s(6 zv$1KWR_)y9^5HCL?>uohN`T?(mo7K)AbwCckPhyYgL6am+%e6zs{gW=KB*gN)=T9W zcz}xj9+9N`S0s_Pvww?8Og)}Dqn8&@MZEMLdTB}8)^GBSR zUE5vM6(3NVIVMLb@jCb}R>_%6k#lQATD_Pl(S8xH^8U)vhyR3(nQW)cudDq&mK$+i zScO5y)|9Rrzp+bN8+w+CjB?Q#$^Eq*BzpuI3lO;*X`VwM4UAQ%*LD~_^?B!)zGY7H z>^^z79mKP7Mx1D_`bxCt-Me4jQQCh;w$1}%&g+Pp5mo_Ill+eNu}*D zD;5AfU%tL8!}+K`)yDW!`}#YE>4I$SImz`i>t%st!JUCAB|R|{#+j1IWtc3 zi&@uhB>YrINoPD@17-jF53uxOLw&2Zbo^4;9WmC9Cvd(x->_f+QFW`nU}{*P`n&>& zSbJ>`0`IU75mX%(Rb#reNgSf?Q}6lG=MKi`fI>US@TsRp;+rku9+gz@#gQyhV=Gbo zTnjN|kw5RNvlu*!k?Eh?NXS-^HP!uMFsS)r0ll4;j}~$V)<~mEu^gKv71_Badvc-a zl2guAvx!@EhD?u7{#cWf{!28^Wnjnah)ePVfz<7sunQ0!F0FT^r!198BmVK5_!*;P z3&#FGM78D=ELRqPWY}9TU;eJ0l$1i~U@5Y1qc|z)7UyPTdUc#0NIidTCz!E?Xq%2) zYneV<<=ZQ$F(@nVWO`q7l^{d(RTpM*K44+y^uD|N9c#CnlW(d@**24U#`ulEa=I)d z1KaP0W@3bZaSC(XLg*M|rNbPIxMRl!VyhhlJy;-p&zjp)1$;vhd2iy)OxU07NtmO! zIGVzVtwjNvlwZKa@WOT2{SjTx#yGEdxh9>B(6lRc~Ei-sOvDe_=6CV@ zHpLV86-f(`Blr_bxB;mZ9Ure2F@ZR+ZW?8$`V*CC~o?jlJa~M4Y{rfWxTMk|(A%>6V1WW*_@CiGB zzKwBK!TBh-K+i~(J8!&$Q?t*Uc*jVW>RQA1_`>K4W#CW!K0gLw`?mS{n{hpz?Un1# z8B@Dn$IbzXnH$G+djUX9R(6GbGG;$bsFW_#!JGBfANjA8e4Ut2ClA@?qR2A5(5AkU zZsYjH9^@Fu)we!S86zFQk6Fvl{X6Nn z@aF9|1>Ft6k`BrU7xAmdg8PerMO$sd^(zw&@G8F#w;N`Z*-}+z(-abSSzxt$pkFK#9e0Ny))o-S8SpPLIq&)&JG-e7<^nb}r~~+3o^<4l zpWC~io=beS@Ik9)B8*I2HHnfc?f$o$Q`M91 zQFk`o_*ZiGmT5A)cgj(bujjt3NHgQXz=Ij1f>gT-2WdU&x%$gF>500!+463Z$Q^Ea zYl~Ginc@IT9&S7_67M+T`xy>F;dg#`GU0HVs|i&Z(k|43x5a$(UGoQPO&(h~yr?~y z%;;er3WTLAn^wr0JyL}1LxTfp4g;j&+?d^{v#Aa%ELSG&-w&eOO-$DB18dk^ar)ZM zQG$n5gN%dBV;phxHl|G5=Bhcw^Ko~*0r=r3#Q$2#p_%mbSyxh1oRKSn;`nv4 z3i2%vvX+3F*>@^8-a&54>F0gDMbMbTk4&C>%3b;E=wt0;nL=y3s|llpIAiYE?6E2Z z^UbrO+ae`->0l+kbps<<@F#r8NbR86ls`l-f}?6W&!jXz zCVoePf9Tk0AUZk=(hCP+3r>ye5}kKjTavwxkL;|Tr)2fW0$=h^1keO@u?pixQTQAK z2d~Q{U)`_}JB`PyI{$cc3@a9>8%AvmMd(4Djs+5m?dOPJG)i`>KO4XZ&-}uq>WHT?~ zI5xSz-aJJqN_Vd@)HF{|395dWYn7+nzDSfW_S6M<&c-EPwi_wp%w04!F*O&TaD@m0mfZr%`lm<+!*Ni1rg5O{K>&rXYlZy*Fj77q{5V9|? zTV@l(neS=(%Brx(vImT5&+)&mA(#0Suj%xAoeHjrx$7uUx7q}vZ-q{^x#ZhEs$*>a zwtpoWE+bwpI%Nu?&tTiS_p+ZZ;)Vg!eyrST3f%pWeOSv4!%4Q3N3yQkF2l73uXcP-R7v-PxCPWU4d1H9ry88 zw{aE+C0+z*J`Y0?XXlr<_DdR{GQPb$oWkMZ64^tZK}+manKUBSTnABMDx9y{n(Kb2 zOJg>W8_=80gf9ae7vc~Wt(|oZtaR|_b45GD$;wR#(?Ky+ejLT(z1rm;?4b+_UzXan z@qeE-4r+!wz1F(1#6Bx`eGF^qGb5a{m5VMtS#YGg6zMM$5fjP(VU_ta@|O9w;Eq!D zTJ?q$s~Y0WQP(_E=OkudyLd!pq+wj%@{4cF#;uc=EtY;Bk1Ar+I|w05;IMXfM^>g8 z34iHcFWNNN%_p7`Qt#5a;}dfy2Ol^*XiCaE=yk*MMCCh+ad3H9J)q%n|LSqS1xQom=f=s z#YF_#2@Ybo66J-mH(=Xw`3*rN&=-lX#n2l?gh3Xg0igjiS^V{QVPD(;`(_U90%1?R%^eDiO1e| zn_Ftz?#qZO3~Q)O(+&1xmN;5nxOQ`0YKe$x2!cQ2l!N%_&#Ng-7rz6}^vhZXSAf_E zrz=hLcL&GvR`m`qp*IL}U1yVS16YY+oor5n!RHG4sJ(W*mdyIzSNkmDOpaT=K zEYarKESrXwI15`|`tZZ&gd0L~MCb$Uo42i@^Xhfehj$ZmbOP~mMeG{KafYvjO>9D+ z&bTM&sBR9AQcuk}Q176O;?0$YKet{*{;#|K7*)v-ra6o^f)NF*e6yZKqEKxFVx)Tjd2rNwv^%YpR3 z-Lug9nEgGu?F?@^#!u9cXTuCIixy8ZZKnIfWN1$g(jk}LC--0^ol6bh;O-PTp1=Ms zCB;|$&SEhT>vEwGBV{QMj?MWIJYMHDnX481oUc9}v^5lM;wV%&*-;Dqa>slFm{$Oz zj=u(o%;jPAdsbh9T(>2blJKD&OD`JI{_^$b%-k0ZwOnMjCNix=KfjiNYu%QxB_L@F zzj?5Tdh!V7*GxE_zfJ#`v_8bd9T#qp_9|WJ!xbrwIkHv%9c~n|*+I9w-_F3wGNIGI zcjN?@nHO_3;@S;*HNyV6dPL<=tvvD1fL1^sj^x@EE;|?S%%Q${tO>HIsL_+=RF}D0 zQ84iN7pIz@8jJF2usQrElwlh->YoMJH(1c15Kg znu1&(hqd#C(n6&itf!6CK4v5N)cVYE`dtZ->?cBH=Y9<6om%Sh*@h%1qdDErPW-c8 zo1trM{Ku400L;hZ`#4SO8caW;2sY$}xSTS1F#Xwz7zOc(w1&sR-ak=Q%I3IvjXTMv z3gA9i6KYC$I|02>7EYB+%y_y|k{Mps6+4;4-x$B{gP=Wa9O)431}%11iW}#~)-j4C z{v2i{yv-I0;JeYP!yrN|@WI}HIh)1IwASsaA|*J7`8N`E7Km1Z%4FcODCoC#v8F1& zHjVB(_DN?lH+AOY$9-ZaB75@+PqdVYy(IsFYr@clcvcb(DK0>4pr4vG&zWkj6?*zf zcwFhk+EYZmtD;RA?JUso}r5)?w^MoTHP6py(%Rr zJo-ZnrWL$-d_!~Hm&Giyh#T&1)@s^fFT1Sw7A#no z{cF&8oxvUQ{{zR)tsnL;E}y;<)ehWTjN# ztiUHXo&|W$Hg*STUr~FDT#;~7nSbUc^%CeO6wFNZZw{|gRno(vHh{6^H=s?wVflWl zD}4e2!E+|t=h1W`U*Fjglva>tz1*j42p%n&&aSDrLg6Y;<^Cd#;59S<#=$te-G+>N z1D_@|y}8<6Rbf9DDSW>E$ZYLuP_e{W3}h#?iXCT+U$E?&eV65;S`T|VAP4RpC$?YX zoH%M<{Du44&!W-|H*XcI*#2|alfx1&IdDUCo1>t3t$~v}f;?Or`?tmcE&JO*O_KHJ zU0D;cE2ofnz4Cz7*M}7en}I!<+#8oYP)Zy~IaEy|kbGgFa4`?jc2mn@aA~Q|y)wV> z@y82VK0nqUHgrtAe-TC;^6r}JktSri;XclaRcW*}*62W-gm| z_EUZI)i`1-L_XHnvg}b5c0eLjOK~rx-Yt;Q_atzM>7oZutzH-P<*o>hhbx%E2!mfu zt2yM7(EEk$kpkdVhveKm<jIaVSns&w^SPM z49C3SIX%4Tg~1taX~%)~5n0#EO|imVw<6abDl>1qGS$+*Udz>3h}11pV!+t^FfP9V z=C44xqhv@<&|X0#h*p!xG1c_jbn8b1DFJj6ooZH1kN&*j!+}y+&;v- zC#B-7K~*vU<#WU#$F;m8_%WPUI-=DS!mK2OW$$A*8m5+LmaN_?*(J`aY!M*5dilZU zPbL5D*H%SLVb>bzSpgxPkZjGszvy za6lf;_tc;f>m9l^eYkaUBqVtL@F+a4=^-tBjcivZQHFl<*MgPyDkFV=Ix7Sv-OW41 z$H3QFI`c*Xn*J^87sv((#|P?x(i-15B=jxCri)<4@-X)Q z-cFbg!Am_8=vkyilNpW*+GA(&#%Ib10P_udL&pOJ0JD+FR9h344u2e?{^gKY0<(My z#ywsa!Av&)7`cw)p6`W5rmcqNqJ*R7{>{XV(#(62Te!a{Ey<{Tr}u{7iJ|v>;s>01 z3;X=EZ@V9y7hf9~0%&g7amL(z+2Ov+wp4zX`o=I`CAV70-$LHIJIMX;$pUcmU34KmXZB0E z`JLoG1pc3j@N8o@j*&O0opiQ}PKU@pRO+v8S2A66cwvF3iHPcJp7xG^?k?qvM;U|lhI=~JcE8PNp-cf0}q8t^m{)t}bu z6$AB$_&XFD3ol7BHEkr?##nuETS?ripC#Ce153k5?npV1fbjJv&{|N)`h9O$R9|wo zz2B{$ftQ0+v`+(RRfxeat;lM$_C5$mxu4CXpd#5ass$NVX=?OJ+eZ(^BdzA$)%sF9 zj4n(`^l;c~SzMF`wjh18O>YNKRr`CL{OPr-R$E;bn?~91ucTrk&#NE)`^q1DZRu$T zbD(WcmJMj(9l|bLcWgqtvSS$Ep7$L`wacj%Y5MT~*js{r`@A&Nn|)pi~H%4H&h zlXVi$=5NR{qvESkv-Eeg#}?Qh{BX*T6NTZ0AJuARA`Htp8{(|e)@&99#D2!}s^)T7 zQyso_8O6xoJ!uJT#rc&<2itx>N>)!~#7~8a0T4Ium!QiW4i>L0)4d!s^sCA3ju3hcBh-){6uzLWi)UzKR^Kf z2^&(7H2oie&3>9{kOI$lq8&4n$Egi!z5cs4p`Z`c)@P&s>erI^R;hFhv^LI^?lV$I zvx`=6XNd^YtLb2U#}5>0_8+*Zic|S0b`QYvQ4%Y2Q_wEXIKOzj=yk4Ow4gp$w!DB* z1l>JqKvo8KkiEbnV(M5}$3Yl0`bS!5T%l}h(=(7Kv$swJELK`=HO1vW0*_t#iiA7T zmW{yBz?#A?7Wu9$mWlHJ2sUNrD}S}s&e%2kMYU+id-seS4SY*Z>EQMB6(l0EpE#jhj zn|*H_Z}Sx1KAEZwB+V}!FTknrOF^^+XH1U1OK2g*y9CrbUzASuZhMH}yh%m%{mnY& z|LiBRX37{nyz1y&TFZfPWSs!2%dEVYZ1|=`iR{&MRow3;I|)1`r-dV|YZ{ix++II* zy{>9jz5Ck6j}PF>@IZvGQ``x_4*HE|@6rq5!Zm3Z|JH`+=OD}3LOw=p>t3SmiaDPG zpAa$Y&t>DMYV+}sfJe7!H;PDT#1i;Mi(^u-4*0}uvpDqIXf1k5lbN zLp@7OUgz$)Qd7?vDovIgxKU-EDh0eng)sa69`$!XfpITF!UiZq|7{;7x|ZQz*^<`O zFk`Kx?cM8p6d%!>5%N1Ip2AB$RRMSKLl|^(8pd}4t1A~lKQ)in#Xqe20A@>&ef@70d#1PML_M7nUG`p~cVF zT>G2d^DadtJiNwu+5T1W%sc&eyHi<$*z92Zy4TRj15AfY=(zwt!DklMC!pFC$$UYP zKmUF=%ONb^Rw@%I(-NVWJ_Ys)KQM(WVzY97?yEEVCZ)?SuPBoZx>PlvGfgBa`p!>w zRF5C3A`y`_fe_rz`UgyQu+ydk7o^tMxb*CCJhe2SIa*jyAjsTfu;MY2A_fz-dE6^# z{C2`q^L5|aqjufXx@8zc9pz)w2OJ(^7CIL~ZhH+ce3@hY#L1drX&O{UeAH0y{A<&I z4xd@0s5G6Vuv8dbw+QZ+MltmmplT^dsIal|*#-9Lw2;~r!d&*EA_+hNlj5bdm_s&n zUH{(Sxsd!9q}-=HbH`w~{#LLqIkFtCRzGipO3-8~v$=Yyx^&C($2!XFD!fajru5sC&^Xadmiw2TDfX46WQIR!u5p|SdDDWh-eW+tu?!B`` zyr1s%8^Iv)6H#hjrqFlP%4jo(A{dboMsp;sA?%nV+5Ry?B3G#o*t~Af;KDrMwx+u1(E~!+PzmVflAAW-nzRd*M%a4Zza8I>5`^YN8er)T=drQJ8{W|c4UKh8>Yl<6_j$Yqd>DqCRkMmV#GM9t*)0CpRF(}|8Kt=t z)!u?sACJ@8`U~(mmww1uQQRB4hOEh}%LShA<(caUWV*kzF6$Ic!#lT*2lK{(Q-z<1 zdMJ$`?SbP)&JGLtY;+@C`QyV`wId%WS@sCZxj-h`>WFe0!tLeXJi_RI(j8zECy^+L>EcLe)y)M}Motb4FwwtB(izlHhUP?xH_b(5TMGB#s z+9RC)m>K_VWve@u_0EZDld|W!-1tMR1SINK1<5n5sXsQ&Ccv&DBco?)Nyw%L=nq_i zptujqF@D`Au&B2fubdJ`onZ^Ef`57cVmdSU-3ok1P=$YDrSUpE;O|v>G|_f8A^iCU<>K`# zykNKw8Fe2(7m*vHowlx3lZFZ{O;?zU-L~Wj)bHyD|EZ*gK4}Q8g&^uojMw)YKDPC( zL~6~)YvnJ*Pl+ldaVBJV&}`pk+zG)wF?H?bn?SNvGnk)uGQ{oDWvR6*DN>g`!&FwN|9(mxma##ar2f?kb|Oc;o7pz z`vR{bDsW$O-SwV;%?w9Tl;Mo{IMr;u*7#PD{{2vyca;-a*$jLUCxe-`nWZKwF%l3vGVKkfs3Iy%U^9^? zR|DQlH?SE<@s@eX!`<|~v_u?jL<(ydfd^}153WYf;YEYq(hvoEM5yiqA4~bFJKba? z_(`AxgwoZO)3w5jYv(V?Tx+x255obpk1oRHHlke)mfV?LyZg-ovpTvZb;mO=C^4!5 zT5Tp*d1U>VJ0;try1)=jm<%;>1^)!rU7|ZS!HXoSHXRLZ^Q~{)A}{15v-Dluy15%u zzW!EOrr+95;c)s01_bnht5$cz+aIZ89eYf%QV5iyuwL4Fw}^v-^RTO2Q3I>xNHoQs zwdbGySydUC%FkHuLn`cJFlMaKsRUMvfA7V53P0ITV(hO|swrGqG94AHtx|I`Z;EbK zbzTD}xzb-zDuYcEb;?N@&zJvP{B|uWhRkf9147noNzkX8X#NjailzdbMh|1%Kz9C~ z*h|cS3r%2!0S(lCQeEjYI{4)KBlbKj_aXUaWl;9-%NTrg;UnQZ?2Ol_U}|-%yhl@( zb>!5G4_<0x%kM*Kf(~;FAbSpXQt+2}mGQ-RM8E@Fq|;AeB zbqFYwWf&MnJ?6Xnrha5qtZMRUU$R_QUA22Hm|mq@K_ckk*WONh38QblY0Kwo=PqA+ zaIo39hY|&&LD(137s}9QN=pBD0Ujt0;5)yiQQ_DMhAQri{w>#9@h42ou4Ary;75l> zUUnnn?jPXna|*gxRb@;-6n(lemMU~=j7}B-UtG8X^wjKdPpVfggF=-aBQ`-j;}kgO zp?!zvn7L#~KIeWPe3O`$^~Nue8(aCMW8(+-A)F2ch!{p{8n!A^_6k27l)Q*mxUFZ5 z&EC3AoZ;tPnVV8`ul-6qn8kmlr1bP&dkcGKiN`8<=LQidoI4CkJ(t1XS_!Q2#GY4>UEqTEg#suP&$@Z=D%jbHVs#6np*MOT?v95u$?CnX=QDeTSk3o_gTdlJ;8szHumFz6Dn$QMXx)Qil8D{#V|;r4j0QW$ipZ6XSbh(EM3*d)EA1?d|Kg|$ zx0rvB45nxmTiUJ<;aeW|tT;$o5^SB45-DP?X)wdFULo6E>hYX__VpXMTVvH+D+xXf z{XYU0TmYCtl_I~wKWR+0I&)Wjc33>(g9eYvmA7j{zKfM8O)kW7Z8g?6@mH+^Y9lPB z_8cdT5`M5hKe0E5clz?|Ng4f^R_a5%Z*ZuDYOwYUHQ4<7&2n(2(ap$mi6%nI16U#d zJV(PqKHFaF<5}U93n+AR=4b+sSib7mx8%5V^ai9v2Uy(o8U+LgVs}Ba3c9)b?d+I= zpwCdas<(}mvooW^2xfWt`2EdbW0S1Rb1nQT8Q-PIIk2WPObvW;0+^=ip#AD|= zO8SEYb-NrAIH&ED;`g6h_rq-vcu->yn>9|6X;!}IJmPX*&Q!ApUG_$WMYl7;C1M9Q z+oSxDASPJa=3#DQ^<$T28hQ5@D~0m3SET8G2qUaA8-a8O9T-qH4Gg;RtPQD=O$T#6 z=ri&FL&2m*tB)6tewozvs|UlU36n_)iHjKqQ5E6bK|n?RPM+AsK9&Ev}tgEzd;1I@S5=Jy<;4A_MtcC7-e^ux(TL-G?VWX zmqKjOg^gi4O$~_8-eUbJ1}TImKP!urm~Wn7z+H8#n+VdsX^Op85BAtjp${*!G^YYl zvsd$&r<>>5cyCcyv+4~O_*pv-oE1_!oRhz>ymxs(*g)-kO6N@F2F{43tg6KCV(grl zdZ`^;)*b#Mpf3v$fC;Ik0i`Y`8Si98NWUn&F+czFBQVA{^}W5HOrNrfy3qW&{O{I? z7dGyAF>nK)c2P^*4w!5OZansj$OS*CylAf<+Vw~Z-?j+K+CSkJWqBA))KwYt8Gq1} z+mW38%F8GqOZ0xpb9?kWvopuB8eUo2u>5~|Demr%nJ6v{%K~@Z%#=d)8o`%r+G4gd z3rD@pCmt{*DOEBNwQP@3z$%j!0Cqml(wg6ktvFmvjObc`Ry75-HkT|_j^vzB^cR(J zW5q}as*p6I=cFBfz7`NCLSczNE6n|%Fdc)9pRwi~M$g`Ft?3}d9 zFzFJ=I#6J6*PqRtu38;`*`1)_Ss3$O{aL=9Ad*Y8>WBJiVbv(~ZWPF@@cLTlM!$Iq zZdkCN#+q3CzOvLoI%!9euwB`oK#@U>DKfs|=Q*2I2BzbNHW(Qe-um40HXHv-q=3*F zk!fdwJ_f&SYEtXj;vce#vqH$Awg`~9`2D`q>POUZ_rWK4olHo9yUf%C3~SlI=N<`%DRG&@ zSB=#pVZC!Y{}D{9by58u2ez0KZ0rX7PhtKDBE~UoK1<&02-jcgPbm6(I%r3``P(l_ z8`2^wfnc!AaZ`OALNwL>X9f-^g!Q99GeQ!7&sC~J-`1wzN1ha(WQGrrm2c+|V9{V@ z)u-=D+N4rfwSGZfTWK$|7JATF=)HQ$Qqlyk%vTq9`o>5-H_@B9Ml4JHvdEj~?nOne z?(aJi`Qm}Ja192ae;}zBx-eL0Vqh0=>ud7KuV!T$KIVH?d{3(&b1mo8MUi(oaz^bD zFD2le<=_EmOtp@U!2Lgh{a?xWi_kw3S_2V|5Ww}WA`g&fypmae99$QO_A7+}`{&ll z0_gGiH&FPe+3<)+g2}%xqqmz862c?BH&wzTD;s)HO~cf`fm8v~D-LG73EgI7lk@$o zGM~s@KiiztqVF^1HB6s@><7ly@DI)83yuWjiBK{2@j&}?EJ+lHryr!00RM1gcpNMs zRo^DnOdhH_e8xe-_D{MK5S)Zxm@3g3!o1`w(fk*-t#guMK%dfe*^!zih2P^tO@Dvt zn-9dPzL;+X74LS`93M{R+>I_l!v)VwUmMMIY_iWh`{&>(8?SEl31RJeFY;%|FmqhI zaoQPikW#LdypJ$#@sCzFA#`6i!6$P>Gc)srqb%^Q*^Q;{-6MWB)!jfe=$g(9E?9#R z%7%J0_|C_+dKd47BG>fo`|^ADFTlK;tTLHj2)vxN2rDPbg;lCC^{LPThu<#>((_*> z>ACca{O+M&`WZlUD#@Ckv#@{pOl-|?d3CtJwEQ+*tx2kZw5*hmb%Zv>pWKK%JJ2W% z22*Z&>&!D9Z917R6-6CHIdfG&jaEA-CsZ_UnyW%i7=IVdRA z!fo!SruGKo(E3oDKQ+4WlA`D!96(esOQxI>#{=v%{df_2n<^;?=(#8@g8b7xWbDtj zNz`u_JythYv7|Lc#$Cj_7}BuT9et@TJ*oXaiq1Qp>i>`8GO~&6b!C>BO}Hvq3E8su z3?W=x_ZDT35DJm(tn76W*T~N1;^G=*-)ml7*Z24N{eK_#aqr{td5_O|o%1{%&gn_o zf3J-*l{W;-cmk|`k9e7u?^^X{F|cfIy5p7B(a~6f_Eh5-rGCTY>o4?vU}V_~ZNcWZ z+rAV0eBJWEQBo6&YHkVhXqoz!1nvHl5LRm<`a#JZo z7D4)zh($Z;v6CI%vkg=;J?A0DDNLYXsJ;G42hVoD*sr4>UMM!W2ybOIy+$Ay(tf3G zeM@VLj@&km9tTemJFl6pG>OG9j>Riwtfp5EI2E%q3-rK?FMZW$sB#X53*2S7Odk>_ zF(k38h|=CqeU9hG20bAbbg_8C=&}1II>mn#ug(0W=;lpiBqfgFErMAt3$8bQ*7DVu z8wP(oDEu??(=^jC^a3P}pYPGQ)$Imcr^Z_|_Wh0*wk4~< zdiidR!_F(S(!hS zrXT+nr-Lk@e(gS^29zp?Q+zA@z}=ClCrskHpQ@VokK!gGi)3Ssv*;A9yL}Vs797wdgorbjzt9M;Qw%gdpLOfY4$YG za%I_hFBJIOL{3d1RA2PnNa!R%Kg z*xH^i@IF**%ySeWtA8CM~h_>AEk^q#HB0 zPxm2|fXRcw2UW1Y;j-Qx+b$h-+SVARIp$P45pez`MDU_03**=^POMS#INT5b)=3Li zuz&R?!egDNH28oH&5@5ezBd(S?D1~t@OUd2GDOE@BjmyFh;sl|R^$A^Wa$+-j`B*d zUE_Vz1TVfKX0?8yB4r$Hn*0ONWA&MeKT}JHp|zG705QY4AanDU(=aep{WnymaMd&C z{Y0#ORe-IRrTgqGY0D?KG}m7yPZ>W+Jv`WU|3t%_?$soX{If84`*AJ|{`M!lha2kT zvhJSN+c|G+gWQt!tud{8jx3kI%)@mf>SKZC)UJ2|x4w z@2rs8r`4Pm?@PLOy{vO987yG_S7O~bodZc67l`~y71&zOXHNr$!sO@cBlD*Q6qJ49 zSMjDocZWu9zbW4CB=kC9wLnae%DzDFd@$f&*HIlJ?=p<_kzZ;a&Ucpkb?ff2=C=bL zIZ_A*7?_@rL-0C2|Nm0;miewRn%(>dvrw&-T;5Q?p6zz=w{+z1?YFT1-iZl~Fhd|t zN@4^Ie~sLIzF+y~g&C<<1pJCc@cdKi`8x4iV*$g}gXuHr+g@n)7$16xo!=wDQcXfB z)#}4fiZ){d$u0T)snY|Re}DlhXOBEs0_qBkc-9vhb+43yOFtFO9-Y;$^p}Li3F%%n zj;0FUp>NV5iRypEi3@U5GcY%N7rC%gI1!guB4zFKBupzdNgh&N{6f+-&#`hu{5?Os zzHLB#;SZ`K5{_9->=NuLt7*e%+|u))5n>B)*loFqR({j_=6gUAyum(|zynkW-mNEA z0)vKqqUa;sT<#ieo5a4tNb}0NP2#en?I=?6)g4L!l;qg9qny-eK>+a^d@VgErmkcK zQqbFVuN|k9d?*xAZ8&gF)ku)k8<&;%mP+k+^L|~M3de{?#*opyzJchx+oww|%IkZr zCoiFsYZ^&lc|6@J3Jt<33?zJL{u{MwI5`o0^;|COC4&lmUebK2cQ@9;Kk?r#vUG8m zk8|3;%-pV8=fdQ)X8z@ao0N^EtGQYA4*dbBYTC zDEeb`#WoXSx>QUO>9;@JxaK#Mu?xLoDLaQm_@f@L4svPDe(8>Z33__B!%Cc)e5cMF z7nYu`8-2>vAIeo%&;PrjxG)9FX_%W8Waz2eWi9t0mA% z+R!*2NQifV@I}GvVO>0b|GB5n?Nu+>6ql;L(qAg4slP0KMXM^M#Al>X>x5Y)`@-nF zgNlu9%B5oUUG@rNF<#t}BSckngBhFtG)Y;SE<`Qur zq+uLr(($VALQW{rN7YyUtl&@BKR>}<+;Rf1#yA_>G*1I zdr5LicK}1J=e%MRdQEI;IabG{X6+q6vz{&M@O&La^O}}Zxb~fU+q@dcsnT9}nm<>k z^Fd_k=v@+O#3Ik1fC(O^{zwIh<5;B4O14e@teUH9=b3xtU_Q(`u)z{QIRIDJQHcAl zh_BI4uvm-jRkBNkjUD4)_<+uyeZ?9h{+@I%BhSvB@L+rmLJsH*wBE~Nez^KBj!*H5 z8$3I&BilQN7bzH>QjSyqd_?!^-iU|}tSJ`QBrtr@ILlt_UOxAngu;P<7ng8HLk84Y zi|}iaq>@3|k%7U-^L5QkhNbq-a?pePF)jI_=&1x1ZHPu+#247v=?Wu~{nk!L|-Vq|JE-{qsA1I?mcJykc{YMYT*w7%NB30yq^scC$Cwi zhlGfr=>6B^m!s;wB_<= z|2ojX*P1kFz<2iQ7QDGYeMZ#8B2w<$l{@~`#iDgS+G*K&beRLXL%co;NktJs0ry(@MM^>D;DI&V1mNXZGC(};ZBxVpY)X=7tNAQ zD>&V*Z<^=z5Sc>%9-KS)h>t3m@fLo1z_N=!M!o2H*KBDTH!&0SFfI_bTTl{KKmKFf zwk|wx0%Ulu^BX2J6+D5z=W&3H^escLdOcvsrfO=jvsgeaL;Pk*Bfp8XyaY9Iw%juv zx&wb_`B%DUB08TFe`8JGffjFL#O0ptxwINK*1tIzlOL*vNKPsHy5>l8WsvNemSKyS z5qe(>f>tULhNNRdq}vQ5d5&d1_^hbiAwZyx*ny00BYYudBvD+|Ushb7ph|lr!Xm5^ z(jp69Y1Kdoxq8(2O!RD&PgXw2G~YyD+a=w@6yDsDoR}-eoaoC|-nX|(Njy`h25#53gpQ-Zjp{0%fMY*eqwrDeo8z$i`^k4+vpi(_Yr|eG~Ma_Dqw9 zMfwN&7VW^D_QcTPrOdw4P356Gx+J%5?q}Gu6O8egKPLFXa_wvW4xDg){vV@;*&4Uj zEW5|b-J$1SMY0~3J}&uD=E?E1Kin#5UAsVyjljz)lmAEFs1yOHycA~b_;{SLAfWlc zDIhodOAvOnNFlhF_kQ%N1e*^xg+I4SW}1^6htE$Gu)w|aHIlm|fVm=XE8wy)Il#nf zx9R5&-Dx_;R-X^_HoOWfj&99o@adhiXvn!I3ENY|{0$4rZ>woRa)AMqC>3Lz0%3w> zVQCM=yV9s=&zG~(KTypwULk}X`w~06nw6SOwmpFM`LkzHX~G~Ix*KLvZBkTsp>uT$ zm+zlwFIkrqHsrDnS@=0AUK!hNd8iBm!(zIA&3Ah<#&(nXOJ2!g7`Z${LSyjABCk5# zmTZ%OK6%|Voz@ENAP)DXD3V{b1KsaX1@TSzV4nzjYl7yKbhTsSOwQOCA{#rPmvXy> z0V$aAf#GJ*RFw~yX&T0`m!me9q(Gay8G8T4x3C>>`P@t-WetWadwf8(3>2 zpHJVj2c?>%>v5^q#nVVM4E&B#>6v(xHcs#1#dd2<>G1ql`I;Npk#Vj~#%gFTRie7{ zd~f%a*?^(7+`iGf0<3LqoIPU{dcHrO7dw&6AOASFph>^X;e!TZ-CD^%Fsf@AFnO$f zg#&X_uYxG+?1bVrBl;!J6XBTdl09yBUxgBWZQF7IU7=s328DrCcXazv;} zHyK4eG(xs;e$?}abzOlb^)uYg5CI13p`H;ZuqmBI_^!bNd)}@o1s@dwE$I?l9SJ9P zVeN%+_9MQp7I|`Eaz(zTTg^{fH1~aQ4!vO6c?4snk$*5;(7;_Uy3d+t!X5R|soj9b zRX)(sLvRcH=IkQ%EgWl+$_LRg%GE{u-o(d)(vQmQd@SLM8Cor(^eWmBZwE*ZmIE#- zQ6>4tu>DhYF38^&FHn&NJs7l8K&y7U1n==EO82yrPb6keKvT9NZBs>XWkTU({$PY) z00rSFkw>>6l>PQ%xCkrax4UQMYQpSC(vy$ee<+D=Q5`hu{rE#;DJaq^Z{!?H$J$fPT;JOR>UBf4<`BM>67HJx z<>@<)Mt1SX-~V**aGl^j|3|Wb)IR$6*Td$1$5v@gWF40Kng))QI}gVP2bBO|tCY@l zkdz3d$`^$WnJF>91W#&w-p>1QE5iN6bx)L4E=`3$+rpfJmNPJ{d4;2lZkmWf<;{Ub(*5c7Lgr-#g9?|l zqjtFi-(D^9a*rg(@e44I2BotEzuU{Ps4i>J;~~t!Wr9@?^zt9^{ZlhVDUH z%GoCTr88z9Xq-`jwJEgyQ^7V|(@3v_Kwtc;onJFTi3 zA67n{M?|WM4vv`^g!n%7U+muCLA{?XI1lazwrjNpThyjZO9;W;T2?zGFX1wVo{>Ol z0!$5SZSZoq&j`>4!5x7WDF`S-8I?o4At%DaHvf?nXIimY#Q(HddGp9be82WhHwY?2 z(8kL&)iUTQF1;XEnzIyR+cWx*^!@|sBl18FX2uyNySjKQoy_DM5$W5qQO?dZ>1B95 zlShK(%C+8RF4hm!IhRH_D+?yZHg-{x=t4I*??3^xUOlVmB}|V^cZu;fk=IbCyb{fl z;Lo%oRY1`4fq)ft@psIViz<*bz6%@QLSL^JR1LbH18C|FN{3|5&bp zAtTSr5AA9CD$|cL7x5bo>E1`O@=Ov7TGeh>ii~q zJoNU4#yce#s0$Yw9ZUon&2Fsv^EG%#gtYj!NWK?!d5{v)!q0>0kjta53~G8kM@$?v zt)LE)jDe{3W-D2j%uol=tu7wRavX<_e?5MF%*aEekI>n_AZWmQ@iW0+81=fF8gW`* z61^Y53W7fg%xpX+PiPbQ{syqkziGiX)ndC{+Q_LYs?t)>`AeFN4a z+k^~}N8Qv8SW?&lGZyq|Ff72hjp!sSbyW`I7ZSDE7=Vetx0XNJ0 zT%p-?be}dU<6@HvFeY-Rd4Zg!lC(CX4D<21A=C4By5kKYYL**HDP4E)MVQ!l1x99k z)~>pbdHd(G_AY|_tJrl*nm7^~R72&obzRAb?W}Q}IF@5Iq>)>#Ii;|xEo}jWi$15axxUqvik2zaSao5SDfx_$OvJG^%dr$d3 zPOas5u(WPhjeLTI&?vc@-t%NI?rBclGVoY2a0kNdq4?*|H{PO?4gtiIyKVC6+GziaGSmcOD(Wy zPOLoKkEDQF0{i$i%^jRRCi2T%UYAf4Rx&rQIzRd)bdU^hzn(j)9>!k|&P;yxm+{;`(0ZjrL2H?QZ34a z6XCdz1@dV~v2+;DMIT=xxn1C2;u8RW>G{|}kxED_tjdbG9S5>sW9sPgscXf_K@|US zBK{+hGwL8&L@&x0z4nN1ytB+16!TavUp49Su)Fl}0Eh1;s*dkbmS9~ff2Fu9k!mco zo3ZOIB=KiBxXgc@Fp_9f9XOyYJ%-TDcfL8|4+TlE|5Q~x`bnu=C3f5$mN5}IzSIw+ zz$wMNHh573ec|Iq7l+MYCxJ<7CXYmf*z?}L+G6(4Xa zqjYKvgRCt>E!nK=QMK_3^lV-#F;lZ64{8g2SEXQi^8#DZ2=he-Lut(~?f6a{_dwu) zyfhUcN-ZvvxU_dQN(v=B;GL@fdX+j?hrt#k$ctY#t(a^WT~D>O(JQAwM(cSfF5iWj zv~Ku8cq^wQ)Sja{o0k@X>4U>HRafLqbgt)K*o6L0s0CnTs=3M`E1DkE=p%)nz6b{P zw|n_IK{ii|ORLi4GSXFz7H(fr1z8s@IgPY^JS1(w6C>`&=!6o}MTt*XhlaB*m&u|85dM=}t**)>%o)cTkZba4{AtAsHjaDT=k$hkZ_7+R>R0vO^w} z7=Cnt=$meJGw(b|=?D(s0SjkQl{u2LaRo#VKZEn^E}axSqd{U<-%4DGOMIW_^8KA5 zq<}EtbZ8mXzZG^Bl(Qp$;yr1H6v`Nqld($C2x@88W)waB-k$$Cv>cp1Y11b-UClQ+ z`c!+pwbh-kO(txOp!*)OQ?#=mS!nhFF@jxp4!$!U_DRBb)<%;AN89^ zq#>Gt<`Kfv%eoB4tn`|vM-Crva+)a7B~|cNGWMekqsu-Wp84uqHKnhgXZSO0(Whwt ze)l%jG{ep{Uwrz?a;=u}ulNRsp9ECHdoIWIK~8&^?$NfacH4xUz~kNgtaWbAE($`wxFm=Byh*V=QPJjX2reglNF5(AbTQ|}C$UROP4$fWj>topln zrl6!XQphgs_Vq9z)5)i@KstWHZ>v$4d$#1uwX&fo6Q!%~M3`1Twzra;I(P)unhHy! z5R!TtkT&>HasY71_gS>ep|U#H4T7`~s#1a<8pB`Xy6)rBKBCqtS(STK$Zy-{ZQLzC z5tr7N>pamCnJ5I`wuji98{?-d8RH6Q;OmkZ#?A4kmrcnsua`2Hm!9;Z4-lCt+RL=v zqowzQW-L)m_!dlR%;~-CpFm6XQS_DCJc(|dJ*0VHTqOl;@w(w%46m}}6e4!rtsu60 z?R!2W_PTImwefG4I6m-r0g|$$D<(K!?S~Pe#(emXq%yfAb@V5FjHNx9d#Cid*vypy zc3{F3Z@S?&BPEQ@FH`)yZU@^HNdYmx5Qx2{J$6y@-so9g&BJk|!=rbF6pTTBf68Ls zh54n90g$ciUI!)#u=t*(19O#s)s@kAhvAFt(v`X4b1hUc>X(^B8b2yQ#|>n?mfbUN zJrNTe*639Yn=Jh)+S-Z`qJ8~GRhz+8Syji#nwU?l08D3S4>D`bIaL7t`OkrUFNOCw9LiRYfU)SpkV8hw(t`}r8LOWs+`gH?%R&-IE{ z4kUi}9g_{)YLoeK9vAN{Sat&COl@H9tEX>WGJvfh3zjK3z1n8~Wd#|nRm`z3fd{{}XT z=A8r_NJdGh>^BF8hYEXNM2Bv#PB=Qfx7J0*DIU5C-89ktBg$L3+~*>;&R;?$~KJJ6}&-pDE&cMXSVEK$^xA(8FssMtFP53NV%i-XTgD3$O6%u zj<(mUf06Oy3GBdTwzIFQC7XJ@IcUx{Vc`^e^&|Fom4;ybt)TSs3<~vck#^l zrlSrOa^}3~t8$+kmT^kHQ4-7BC{jGoA- z<4ap^!US?S{O)|=x>uN~siXFi%GFH`AjI7YkG68V4F6Y@h}J)p>0M_oKI+gA zgWfJxiUR}9?QTO9?M4)db`E2y==O|v?~NS8B=>$+a)FTCtiP+TIyB2x!eqt>&7m>D zPMJ=K^y-B-0R>M1l<^YfIRMOzah?~PRZ|TJ7LC5r6D$sBBW`Ekz3dtuyV5mFPYUb( z5XPyZLD9tn$=Hx;p96E7cja(D?D5ESiWz3@r3_Ugq2?fy=;I+9s#R2Z9X2bLHtQL7 zm{+9XK34*;h9}M+VG9l@*H`?lW)XyuO7$1}p_0p!9(1Gq+` zz|43fr!cRte?zh+9hPZ3nqTm;ZLevvNJ_0N*o`nVQ*sXN8n7Oi4p-bQ#-ti@*l39a zz9|SN|Ev}%rl|2pzNGc&wAO0>2k{SYHy0TQTS|$E76CW1iFeCSOHn8kNNT_MMN{%Q zh4k%^f*#3Q$d~T0R1${b`9Te=i8TK1LF!K;r4`oby~xRxsgQ%m%-O9+EmML{@dDc8 z)`4Yy>wT`k+2v>o{L;7Z9!)7gUR;4{;De!pbH>SC4b{Dxk!k-FsykkzHBug37!8-H z2<8HxwYvUgZIsMVhZFC&mIy!1Qu6UBBzBU|Va&N}q=s7~^n zlPPs60QCdr)Lan2_s9*RfDEG)lP%^(y;@#ocpQG@Gx_sMFpsd^nbFr>-`q)1*t4g` zWe+k^k40k9UeP`Qe?u#Sg3F${ghtIBFmOnuiwVAz06TZQ-TNnug9DI=f?f@3eAGW9 zW*dC88TN__{zE?5KuUpjDc)9#;=A^{gD^L-=oDGQ`}8m;*m8Fh<6vq+c+1tDZr0bW zSCp=$^xhzv9w*ZGc2iWsVGTm{x6B9h?+OPsTGB&$KiV#}^;_q84d(pIk0j{BrXTz{ zaKR}cw5l|3X1h2sHT-@pZcD4dV3kA>b6*+VW7ffl&{j5ouB>`j0HGzTC$J>{*41<1 z4+^5H6O@nvkjpx=7dN^xYenCHgztCEgUfyswi_CgwSjI@7K?gs;~lYaYoE;Id{vIR zjN{tTNafA+2Q)YpHw)YS6CT@=kO){4?gH74wF&cYN|rrW_1tfq44@m9a7+@bJ-R;( zHvjoNBq;|26S#Ul72IjzStD>g)kwv}rMLNbpT*B}e9q5Cv>f!_4+!XbM5~z>4vOTU zV4e4w<#xln%E0;cviXnume_gUsQk+*#3TzK^{}ToPY2gK92#}g#ZcBx9!NL^@=FzD zaHK;8+*GysEm_D7!VVD7%j(mhs#V@7eJf|hbV+A*FveBmzNYl2_iuXtkb96R0Qrsj zKl{Xr>*;*(ygX2pjGxxS4m3qLws5Hvx4*VWIoMNwP_s0oz5OY4Encp}Uz7uEw+^Sn z!}=ZV^bONzI7SB5Gmp~!WoE6FEG(RMJB)Y(tl2e@{v|r(mZ&e&_uW>4Xk_2!r?Uu> zQIe5yu*S~uUbbj6RruPkr0U~)07uF(ehlkNC4bq@!=d*VtuF({c=ScnM^|5_(K`JSI>}Z$1=PNSn(=Jm5HK$X7{PhYIV)(M)1caqdwX~tB=g3YKZIu{f9sCE^kseP^~e?#S} zy#Mi4`xblO+6P$js_Ze-X0EoXg~}Fi%%6-IS300xde9ei4#%gugrnJ}5y6#K{62Pk zxP-;3x3B8Q>nc@W_WrPS%gs^?swL$5*7fd`UiCpQ8S=2%mNKhfHOmyL5V-941~}eDi=mFL+2&3b=5x z_akbL#rs!m)O-GbV^P&tT-eojFwv3F^;%{;irayGcYZDauW!+q@Isy-zS<lb7t0ntqp169;KzL~^ zAfU;SJ0$PZqz+GhG_KkUK{E%s9qdoPi%PDEmC8^jmh_LFHwJh z{2br5=FbOV96ZJw*-Qn~EA_Lru$}+*6kBNPKG|gIYi8=J$)KE|i{&8S{GjCuU_!vm zb6udFfSvR9Mwmp-wO;TiQEA?S*l($?jdvz*s%~e8PRJjVjBe1Bf0c}UL5PGctulh; z7a)v%`IL1yc{nqe6Q4C=J=w%f1npNSR0UDCHhQ4-bU^n_?sG=C&X0GuWG5pSaf9c% zvubv0kx#GD6aBw+f-CLNJE>mh-1F_3+!t1tS>pbJ5^d<``Fh_6jFAKM#yP$_0IJDL zc{0J9dHF=r!?<BNJ8R5>FPnqdQTPo6n3o;RZ6>(<%y&0>rM$w0FAhYo&6 z+W-upIcX;ETG}DP!WA;@;=|^HRNt~R^ViZ0ngI$cRZ|>SpH_a?$VjakABuxqMl;@y zpN9P3pBLo`11|pf2Fd<`lJEG?fp(h5mL`)~5i4?5Sc2oHLnm5(y>HGT&DwG)?{!r* z0EKBS>j(o($(69FiKiUQdO)j+{k&nxlZcFYo> zWbLAS0XlFZx#&HE|%4ZLvd0OvKs^*r#x zjCm*^vuwm0XQ(-o~8S#Rwf zlKjV}z6HDWu}~22>V4&a-&u2Dg^j{lU8l~<{Z8R55c|Ceoutgw=udy%1C}L4{s;HZ z52-*c1(aO^nmDEP>=-puk1*E#@a;^Wa>+i8;FTh~&2Z<3NZvSsR@pYNrJ=q{HYxf? zBt7E|{FFuwLfwfk`}J;<lWf+S$+7L}e z*ow5I8*$Mqu*pBuBSkHR`L|w3-&y&OYWkqM~X*XoQRNiN+%O_~E!x1M}m?+(-Kqu#oG;)q1}Qf*Rff*(HXvXj4i=xNV5< zE!E!I6MMSY9}@Dw=4UL&^O7!S*^o6y67kca&CAL$xcAXw4f4DiZ`j4wHS5=CByHR> z>FX9y){8w2M^VdQos)E6x^(w8vjP&M0^cWoDauKL% zS>!;B#gxTM9Z9nLWf!BUT1ZJpHzeQUU5;y?5nH;~zGQVbXuJ`^Wyd140xBROw22Y= ziFVH!n~_3g-amqGaO&~impQTz!ltfC_Zw)eKgKUT#M+nCKs0S7x2kg_=9w>jx8f~s zoV*KhE_}nkmhp28Dg`2oD~UU2EsQwwHOj4iU&$F*QjxeOO=bIHk9#vmpL-;f{noOL z%*xB2`Xspp9?RK$E@B~!8lQ4vGy@ZXu({!)f4*L^@Zo)+^19konRM&7?8gkAt()t= zM(Aix91?-Hdl#(0;mVb9(FC1RT$lMNXot<|6TCd^qp#kL4IdYwfSluG0E;4i9nG9d2a z(6H<@UA4_2)Q`1O%G&AQ^RopF0F-dohz=5AFm(kl-L;PS;=vJ*c=Qq-JX?RWH}_Lr zwmCVOK>9LWlutKho>te>z07OM+Sq{sYjs8&V3*CK0M&)Y*KkPf@#^U1C}|w`=img~ zL0D>zNRHVFyeJ%LhGpDuDcqH_iEHxb;-9PKr~wT-Yc;}#>zwMQUnfP(7vl$eu33qN z*X+DXW-;@9XeJ!;LRWtc;gO_X768Z zl5*RerT##`{y)OE6ptaz@lR!dx?`KOt6$)Cp4%DqN()`{0bqD}=7kk|Lu1%%FrCy=7R$5Zmya7%mIHdm zt33y`M|~`lEI+TKN%6Yv9#QfWfRbv23nq5Q--k-B^WGH6u*ZcT-l)+Bs*62Z-}rI( z1rGXGhld_0t=A^yMBzgX@Fij2t_1P0_6YjhKd+f)`=(6E3(w} zOcV3qYeih_KUd#dwiCx=F||BUZ=8uoAJ<%25V<15^B*xNcFi_PrdLml2X5*OVY;00 ziMZ*0IPdjc@0^w-g*NG?NCVC}TiGQmfyf1yBv&n}H4@e1Ks|*&W|dUcd}ReDRVMAr z2VJ-D^L?uggUP2v%^n!jboKthk*@;vl6|+q3;*rr4~+nH=ea^H<6U7TKeR^2Sn878 zh7<97mvRqgk0=GA8}li)`8zPqy?VgfXJR1wX`+cy#ARSQxhNlUqJvKhQ}2U&%$K&O zFH@Do(1kJk@?Z>F!5dAcxyGrcUy7}=RO6Z6(7ZKo-4F_$2w$(YHc6G%OfLz&d;H}( zbAyo@Fy^#Q%17!Wjir=;UY#>UXwKU;*2`ZWF2DIV8A$dDl<=n5%f^n&+Oxf|J8xsQ zn_Zf{^mYoK@NIe|{M$Q^BUY&?MG_?Ov^_AgAF*0f1;}$be9DewkQ zP8iPzU78yJn+=tk=#&-6{W8Z#5y?~MyL4~Ubu;-74{6XK={MueN!7nv{-ICwDqf(x zE%mpo|7N|aP_^pN6G49x6@t+^XyI+nt7glHvCv1@?tu};c!W|o8?sj^U|H+DQ*8SN z&j?RlGj-E5DIsO2FGa5iU1U|D?G_j6}r!a*`QbM1%Khdnn7M!A*HZcXuZzMmJ9% z&~`I`7_B9;X@x?3#b5NxBd@`{>=Knk45cj{T@t1iDvpK6cgaAyc*%OKgSYD{c0!oZ zL+-*)bS3Yg?Dcp*n}?SZdQ#RC0KNYm*NW7E-{xd-tQkQrj9t!JkGJo~577&!-b2ft z8?lu6;q$!G{hymw$4*2t zT-a4R7XBvJ9)X;o|2L0ELH+PRlKKZ!60e1Y6Bx$zz=IU?@z9mPOZ_^>1V4fN4f@s_ zb)VKqY!WUf`ZO9-Q@TA9|07}Y23kW|w+n=cN7>~smRAg1%KCx|gnGF7&6D0J)^Dbz z>$}cp0MP-N@AfY=>E}`d6uzq*KVhP6)e~|VfrO?YIn;Gnclp@xk8q5bf~3N!CVFXG zI~#(4Z$R06wf!7MU6B;JG?b%t`)M4@8;77D&nwds&hBAK%*6t9o@_n%u%!hYSyo=n z`jNaB(M@-6T$bq_I=Wtv|I&nU{j_vs6UY<{Y+ZhLE8M-KlAg>6n_MZG zL{GEXN->(U|8PW(&*svC^Szs1V83_RtE6?2V&kUi6_I?x^Y*s3uGUv4wzi|LUaHK8 zed*!B>fbj5jLIKvp?s6AFnR-4Vt}dX=-~Ov%2;{Xhq~|kjswu3={FQUkWge!OPqp_ zI(R6U8!+L1maIPbmU;4e{~<*h1SOZ{eE%!+D+=g-r6}0W#w`f!lG)vyt`kEG@jDVA z*gk*IPj=`$$T?{LU=w@ON68kOd7dpd$f1n{WdgZEflkf7AjMo4LDWt~SlL8C0BcsU zKycFx1!96cmGkJN@F;DtTmiZFFU3q8cCf|WdT=^sVCZ&eCFZ#wXsRDk{Bv^G!eofN z>>h&E4T#$YGBEz$uCVtyzwm5$ftF9}3QVW3f2iZKcgDKN3)3rH~m0rBRFFThSkaw_K05jBg z^LRBtMbA<>SUv3Y>}Kc2n#aLB=I9N8BzKt%t~Rp3wIDkmeVaO4rP*WmFMokv9D65D zGprk-Takf#?;aU4< z*WAa_qWJ_Hve$CAs)W~M2X6FOunyUJ!s}NL>~QesvxWZe^Of;Yb?Oa;v({64&(jse z63h@j_tvC8vHnm^v+oiVFEfsKD*N<5lF(o0G8|mN>}tH9F9X&knWb6#`Lgd^kIoc< z-7-;R?}Ilzx^#|fJK<}os~~woq-FnqB#a8F4LfMjS!tJ<>LMZOCD9ZnmLC;|A>V&R z<1=%4>7k*xG5|GGN#MuBb!HGj zwl+DK{xRX{G}Ozz!D`o{rf#KCx(So6$Sq>QgBzeeV~t^MKn_o@@W_`)0A`Pse2#xg zuOdt?a~Zh0rLRc=mCUn?AHtY{9aL$ue5%mY{U=YdR$P-4Wk>?4CmuOy>2N>&c41%k zd$QlOywM{W-UGW*@bDpkA#wu_9?4Cvah) z8AUWH#Z^^RyXR~zO+Il=DtP`N&B4?jJundvB-l?U(Z5)n=JJF*&+XG2jRz{u#hb~e zode~n|B+>@)o)(x?eFK~5E>LIxwOl6hQYd=z8eqq<$MEQk%*R9VY7k% z8VBQSnmeU8HJWd<>0hNdFL;&BcFgEu@(}!WEqbnE=(X72S;hifS@!Vh_P5(NLH9uK zML$^-Q*#_1oqgpCGLBu@Gi0!A(svA-I8Y)e+g#6d@%)A=ReL9UtPy;T6%71_SBy}> zX;ff?AF#B+w)mitS0sbhr@r8EdcJY=+%U(!KV}PSwqd0mmDI{JFX)v8W9T7G?`Ak0=sFt95`Kq}7_M+MRH;56^ zIuuzgA}NiWYyM|n;K35|s~IQZZXW;mP9TX?NJ@3an03m|#^dk(k9Y{~xqu&2ESohV zG1LCfU_s->zFIdkz#gfkfO`x^mg05#+2)o0ZCKO)SX6J5R5nyBGWdl1JKFcUM*62l zeRf>-`5W9|EJ8sT;k%}gqet;)f>_}r(`WJCi2l#xKIUa;+Zv|p^2BD?bvdNPcwr6{ z3j=w<*l-^4XL|twij|nX@|s}kKaQ_{3<$)qkdO!_1A`@@bfbrAms^c_ZB>E#lt#Iq zK|I&vtGvOC3qc$9by(y;j2RZbr2n|@=z35VI%(U#N1k9Ao)Rlsu5cmnv_ZS7CS7}% zPlc&PB2HWL9?vapD)1R_!#^Mrq~X1nc+Yx)_FQn+@IN8siAGqD0 zC4?tesm?P3`r}{XcfnTO>)ZHzjJ{o{0X;G9qM#$5JYaXPoj+**0Qf17fq!T39A0={3oT2=9wgH+FYW9k zjw?+*QZgZyX3k{jSz}f!o^W`s1NQF!0D`3H9}2WBPs0BI47E#rSH{`$XVzgwn@`Z! zBtMqq;%lBZfB{7(B$5EH&W{L3eRmvYAGKfJYSI^2qK&REFRmmd%V9xgW+a{lPIJ<^ zE8=;5*zR*y#B%$vJHL(p037u%ieC~ne;8}O>6+%bC~qb_tT7^uvA~3rvKZF`9Z4kh zCcM7#HJxsrMvf+S4=aK4sn0zrV?`L} zceQzS6x_Y-+2z#da`%X?td4=<8&rpHmvV$bC?k7;jm?A8gV)}%trklwZ#fKUHSjiW z04&TK9GvvY#c1ePw;m(#WD{LRvCXDhMQ#)~4#jfV9=XL*irV5GJ!P6UjzKAVcjIHC zp8dlHACau8N2)ng?pK;N)AVn!G=5z6x{J$zFw2D4%6+mcOT*d?_OYt0HX44RsoW$o z-82?(G|~uSUGmAba!R5C#{+;3Rq=%W+g~0^y#mz^s6(mg|tz`rPn2s&5^Jf%Anv;OAqa5%Y8bX z6ezj9c0PC2z8zeAcm18eWUq$48@0E!*S;cZ9w5|iH6(xyw$NQXLgHKu$>qZC%eeml z2m`3EVEv)~F#Her4e$$6_!IEWY;~spK8f4nEw;ID3*2dmJZ4fQFjtEw4dT!4quypMbM!$bDHuB`R zGHxHi(`)@W$Kzc~_?A6m;cl+lbg{HndQ_LfIY%={s9jgrCAl8;T{VlFp%UB0GRbdg zC5*B8V34evSy&N{J9~g@%EVHKH!?nQrjJvX_~qm41;5d57WMS0G_~^WrAxmraom7VxJf3qz#<8x zNYPz#3G0m3KkW134~Y6_iSNE1{1f#F}bfX}%S- zyA~&$C`L73;(x&(1%AfA8uXn@O8Aqjc%$Q2gLScgs#@uK1+JfW@ngMMesv*yaBK;HdsN*L7dpTjC^=HS1qk>joIgdXnJxE?Nk^s$nSB~}QJ~epC z^IGxVrTw|$jYXB7;{N&Uq?>38yIK&a00RJUI{KR6J}3AZ^TPgB)|;izbE3>MH}B2F zwroAmFBu%}=Lb2!#dA4EQo13|GMh2{3F6yrCsT)1vA)z{x3#&9-btojHlKIph6TdD zK36H7tU(#CvHl=@D)^&i@DEh@#iHw%ekkxw&VZKp8i$EwI!}#k^vQQdVUF%S%X10y zO0LqS_wbnj*Ma;P{g!-d;xB|3-xWMLZ>Q*b7l!`ds70Y!SegRjLS98g zT&pSEaxvHMzxXJ}?NOlXf3Vkw8tYro?z~CjsdP<3^GwsO6^unB{tLCtY!=AnORQMjx&Gc}oD&gp4iH z2I6IQQ{^|yk}+Of@NT2KXPfNXcWnAQ;a|fYOX4rXy+g%XR-bA-C#8osdi~7dH2BJJ z$cLAfO~fcvQ_BI7%~;ZWQD@|w6{$-V`=@jUw0kK)e^ zu`5J=N%vaO%0zqya61g( zuPi+4HO8e9P2~GP5S^PnQ*W%ZV8Y|rn*5Z48 z3qbqPUrh{-lHA>c!$z(MNVyC~=E%UR!r^(VuVcS+rWj>a@=vRT$?2y*uJ3{1bb{9|*r? zpAmSQ#-1ebt6phS2Yo)$c6(E4@~GKyA|Y#&A;^zz7<{1TligPfRo%#6+4Ugr(D|Ri z9}K=LNvQanPtk34y(dp!D^Bq)qXwjHEnu~EGesrXg^RtLrd=f1(XluOCl%*fZOxvt zmNvK7Ryuy3$_rgxMJvT;fJ&XPqe#4f0af6TP6kN&gZ6UxU8ww9(6y`CJUgm{Qdw-Tk zjuu%RyuY0rliUI5Jn9X2_-j?vtp3j2m!{pM0-C>w4MP*uCvdGNpXlJO*e4VS_< zmr&|D0_oCd@JD-V70lLlj^aaa6wanZMUxJjNGd=BfCXi0e+B$mt>|7L@#cr4j}drp z!`9;K#8*}>80e`U5F3cwYXV~d{{VO9e1NgW2o5rg-JyG#PCU-=IBieG&3mEP>Elw= zn@7{`9(XLC@=q$w%-w6CuqlSpK(ae4l%zx;GAbaomLu*g469bsU7XDrP;E%ltH#9 zb_Mn`0f8pdoM(~hEA$Kg319m{o4*Td9}Mq2S@t{Yh~8fZomGC({huR7;o?%{2_si2 zBE-#%2Ll6v?BQ`vZqq$XE-}hnvK#TY{s_h3T|eQS)#rjdTd8{0&!1vl{L?I^ZB z9Pw0k{tftzF)<4#B{cnE!P}c@82qvm))(hLbg-|fKK}s9*;ZZ%Bamy>jN>(Uo`hti zu8BO=#T{xBBB}e-^?a`%c7llqPPnIzd(5e`aqHLHj~@KgM1S)7y85wYw-y%pk0KZlGmRzEVEwz5|BnPT|)8 z{lrf-hw($g68u2;ZLVl``i#0g)~Rdd+h0bWV_D9uvPCZ6;tL`vBe>0TVz98U9$EC% z%B48XS)CR8slS_UHu;T@&Wf&{Z;=n3Fu1r8AevQ=%M(Zx25`T^8M1NPIHIqVe8-kM z1q^H8@AxZs?d3Ot7U$t7g>Ks4QoOZEd{KW4g(S6tKpHz3$mBGO^GHWK7%%Z0eaEls z_I?%7FEvd@MUPI>ZRNhaa&Qs|qiG!H{na)2FXL@%U;U=OEb5*qk~#0ZLF2t?t|GII zH%UC#5(R?VF`lZXIKVsrqnrwyMNU}Txyy*C(zJS&z8v@?T=>cH2TAbmn` znb#e{M0p;y(tp7}e_(Al_BilR)HP+Z)qW)EknGg;Bmtw+;viIAat>r{{{RS3 zJ>E|SX%qOy*ThYx+P1xEV6Yg|TCJ>WcD^0auQd%q?$*ao)8KoXyQ`T*P+G!+EhD>dssPC* zx+N6%H*rsM@$1C@002Bi`!jq?)Vw3&>u>m)M`&Irj25%iVIYX^?cch#FhRp3Wltiy z57}q-LGdT;Y4JkePqp)GyeXlJW3FnZJ<-}i64p)V?=;C%`@v)T6i5B=X~mHJ1Bc){3iTPS!OpZt)lEsRv zNf;>^M3CfUvbzogWP?<+4PHGq{LOJ=Z>wppN`030a??hf{l{IaxMw`32^|Gyoenra zRbAUjC6C^6d1hnWlafi~nik9;&fT@aE?FxavXW=3vC~__k!s!>hs3gIu--12sU*5I zv0B)(gm{!(g3&X|zGfm~74Q!>$odz&I>4J!6P6s$6DC%+&X`U{B378qh#8q znQ3^Bb!`;84a7l#V5j@oB;z0wFit8IBO4=@q$6{4!@n53UEq72N=*+~*8D8GlpkQb zn!@f&d9?_R35|%sE1Z$(*z#(JfqX4AnuK@OcUpSQ3$)8;a`FV!N;^m)q+} z@dLrv9|^o8Hlb^M3c+tFjyov>%qL@$g;qHTaC68tl|5 zu3UJd#2e$gur{e>qS!|hY*}4_FLQF~fN&EES8+Q)K5M6ZM7{B)&E@6O?w|fViGQ33 z3}E1H`>HZ<9uOU{{Xay0OSFT zYj4?yNwl%JNPJyuY4(YCy0wgxC}HTTN&E*D(5uo>-l6cfN4)TN z+P~p2O*h0=k$tO4g)ENClb@OgV9d#t`@4Ztj1%0H{EZ)l0A7f=pH$NE_81S={vTq#o3j@FU;REM!%2DO?iL7 zsIRR?tlE~Ewi3u-V)6d~skz(c4aw>E`3Ait>hara`d#MLjdXi-`MPdnD=|M@aa?NB zZZE0kRJxO8-yZn#Z-qK+dLFZ<%^bQcV{OW?Wu7t#O`vzd!RL%u$v+&tW8%*iO%AzZ zb$h62T5K&GCrq2oT^u_Xkz|N`>6ZD65LEHaeR<({z8w5x_`9cRpA$7}%_G73#5We7 zY_^r5@~CZW@+)wx>?}nt%{{Ue>g?9TIN$+%r)LUZbEp>4;{k^0E>MQY$ zuCJid^xb1p(c-X|T!HUw@7B>FI;0CTz|w*MECjJSd;_@aCD~ zpNUpJ9MdCohfcKd6uM=cL7koOAR)*s>~LGYJ*!L(E7?|*+;>N-hOVi%CXavdAMH^$ z?D_uy1s?sTd`)YuL!|5arlz_MkPU<0OLrVs7V*g(KqE%376{Mp00l!}K zTl+`q_L_%?b*t|bTiLvhw#M-wTOFrv{49PibVb)@M(5t1miRMIa^ly-94KAp%035slC&Wz`Q%K&*?a30ftlrTvuMI=&W zb@`QtaBx1t_{IB5{>xvpww)w0e#>^cZ;Bc*C5D-jQ}OLZ6xE0 z?x#jGp~+P1r^z~2nem^&y*AN&RcCLkUVmk1x7RQw&E$-rSfemkl;q=T1D5T8Ywv&9 z^Y*LwL;EZIGhHWM*S;IvY8RG58~tO#7b~kBOh9B*hW6Sb>|`kCY`EJXd^XZBeg^o} z@t?!~I{2@B;>`!a`VWKt-F0ttbUSDT&Y5WO1Q}J@pDUQbbpQ@q9cz&I!|^`r;^&Sv z4-|N!`%i1lNaQA+r=^Xhv|~FVg54BtMacs>W1N;Jn(}b7AtdFa$yDm60I2fMjGh~^_*1Fd z=w1`?W|QKLL9~TB*1e^9R~9kNINWWt_avX)M}&EpZZ1yHxE0}-H@n@KLdvX3UEl&o zZZlm5lVPRBp=tV*I@EX9l5bnhH~T8$2C+GCKYGB!ARr;(fy?yZnwr$yuRCf)rOkG0 zd_L8+F9YkihwW{q%(=U=YnDhZiX#YJhakE$WHA}RVV-NC@fV7G7#PJ*1N<$y__L=qj*p~Aai(eMyHJ+q(|iGwPb<<^9&Vt6yD9E%nXg{{W?2Tru43BOdJB=Dl~v-VyNLl_kB+ zsPN6@tiycvnnmD-@f7pCM9y>WybvqFZtv%@z1JD6?CtIKKnMbIMY^n;l!K3$mHAF_ z*0RRdoTqB9Q?6LKRowLN5NbLt?9l1mHz+)-~F)v0O6p#5g&zoO{lcKHt^lLv)sSm)@)RS7asD)O00va%C~c0n;)>B zj{F;{j}&}A_?!O#35oEJi5AOMg8u-+I$P=*j-Pj7BW(F&j#ez@jKBY1nn*H)rWvKE1%yJ!vsme=-Dsz`;D0L4HD8-~&`UWNv=pt;-A z@;wYKX(i0hME$q_0Bt|oi{Q`2X|A<9d#{C_8~aN^p~YcsYpCgW=&ajXOQ%QkWOc!1 zK3+Nn7|HrK{t4Ot00kYl{jP1K@W+ZRtaLw#8gvHZ%CU%;k|sv@vTzRN z;~;w1!9R*V8U3`r1Al0LW7z6iW}>FoT+lCKTgdEg7w^R)5OTl7kAamS_04><`$_)* z!85!k`#b7(e;0llc*@`5b^ic_?-x?H)Ag&9CYd~_a$&cTkD7)>+=f4$O1T&Ux~fLB zDtlUT=8N4vo`+PuqN&dpc=kT>GH(05C=OP(2QALU7N5g;cR&N&EcvJQa@w|4jG;?dySZI5Z zwzrpYa~PCo(8Q7{9m5e{JpTZ}A3tVWtvBK&*NwbM;eArt8(j_y?+RaDShCs9Ze?_m z;u#OhWLVS%957i+0gh|w5BMop!%03c{?6J@hS7@0ta$IkmUFNf^5L5FLhboU`q#ci zr`u?-$75v-c9u3Mw)W6O0>=bMHlnB;02BdP%9?Ub^fPh0yAQe)dJ1myO8nxZEr!SE zS`<$h^9rs)?&IlSJb%GMJ`3M`b^V@iqrUOYm&5-64QP|ct7?&7+j-WP7SSBH+Swa( zu;HVL2vXreEOC#2n&LR4X(W<3V^uEl$lF#W11!vY00AWS#ePoy-(R=psrzB;R~{Ge z-rFCA+HLyDZlnG_JVzu%?Yfz}L%ZgVA=oQ1$-u_FXw!w{V_Kq&bv)blS^b}NPulC^ z%pMcb^&K}zo@*PeNZx98@(9)#KqL1_mJZvK<@3SZ)UtBrqiux1&3Jvg6MflPCEclhRYkTX9j|JIX_^V4xNxY_e%WEn2 z#&|hL3{-*1&syWd;koJa$yxL{VFGl9rXISM=X ztDYS2_O0;~#QJ@$y|kBFhPi(YmAWn$?Gw!Ek)R~tWta?;Ti*cw0(h(Ti1>$R;ok}A zLsQf*qVwJ4K2@chSR1FFPKg-j)Un_KYxMW_V*dbwW_&ySpX_`)scKej;_n@3cT1@a zc4_8d_=+7Bk~^Z4!*9M< zrQ}A};JqJ*@x_j>s_>N0NlHyzYnM?ha)JmmQ zBaB9^DNz~rg;eG5Jr6E#gt6#ambneh-Mc@BZsxJNo)fy=3{pHy z5ReNqx{#v-g(k7I%_?i{QaB-paFK$he)dV=4}WU)%bx~j-&TtHa$W}LHla^qBvPcG`l>ItGn7$^6tKS7%F=NroBiz<#yjJ@!~ zY99>u#+&Xmc`o(>zc&hIDo4H?W7Jnc`zU_V9su|P(|F@lk5BP;jP%Dbcw56aF-`U~ zoP}Y1G>8aozd9;)1cvt=W~(e(pN#xXG-45Nb$1=iNaOcqngPG3uHp~YxPJ?HIv<7D zj>AXOY;4;r=GevzgN`?|W=;+{B#c%b(lLD7v?$ha-0MGRFWO_`x5ph+c!S3m`lX(d z(yTG*8dMhR29~dd32hN9;fYlR+~l55rE~hU-W~BJ(#xo6{{Y$AR4~UJI%cJ-OMh`I zg~XFg%8SdK9g3=}gMb0WbpHSnr_;~C&kXBYe$~0XwTc}<skl`75bGf36f#4t&wT9{VOILFyy zg*>Zxl}<=i0DXE@*!&YUt>W9V?wL;09B5=>bI>Z}ll<#H#{MSJ{v1zrWY)UQv94Q6 zV4B_-j47wM;k?pDLn#<5$p@}0o*x&lue6OuZ8l9}&%_rKMGdr87cSpvkE-^D_2r>d#L;2yF+$^J^X=M$>frT(dTy;>3`=kg(&-ke+}6&3PV)@g5T`)t<3y zd8FM#a_oViZ}ey!31V3X-xyW|HVE2B*1a>}?}YyV;TrJ1p57(C5^8$RulC98t|fcx zZ3Z5ExZ_Nn&(=rB1@YHySJt#WGsb>9o5Whho$Zc~u1)@faRCxvTEvJWTbTm%C6Kq4 zN%>9>JXftx3rm-kJxFu5k|gkUqa+vhtZrkuw76UbNrZ?;XIyYbMmY7aL((O&gT>cB zZrF6|NMULB0kuO!Pd|yTpS~yQUN-%oG%Z6))2=kTj}4tlFAxiuY-5;6Jf@6E9Jt>c z5+g5|fZ#GI;EbM<-{SShjs6(iUwCrP+VfNK6!!L?XPE9-SyjZGWlIoK3IQ41K7?3z z38Y)6do)Awr}mK0bw3RqaSXLKnqIB2qjoxj^KOdnd86P2jT~b zv@1UVx5WPd5$fIy8duqEwD_(PC7Q!-!wtbj4=WdTWh-3 zlWk|KSjDyp?VBlkY(8@wiIe5Xgpx4FAd%M<=Drp9tu~$GX*Aqh-C5ldlj+H9vQElJ z4vZAYtTU0cfOrj@40;iSqIO~9$o_N zQN6i}4>3Mgc;a+N?ipJ->t0i#K;I60IR}fiI~BUruNa>VX}1FryASz)xF7S$I-;Ik zfIftKf5Kmdkmw#9lf*aLYTQ}gd4*1~U^hn)V5mH&$llBkxg9vGzB>4SapT+1?X4k< z(8`K$GkyXMXub6-jLi$L)I0E+YoF0?xxKTFnC{Ib^e-b6ca zRh89F7;f4}0I45Z@u!~qUDNdiztC-Fx6@`zd;6Pt(Hh;IomcN2#1k7~fFKYuMn-#M zi*nM!P05^W8oup0bnEM-ip_~77A@vM*9<`Zb+r$IEUj%VZX>gfYdfGOid7hj?K6Xi z9avz34=P6>Q5S%8{b0=6ZoOxHd5lGGG*53Q)4DP3kly$e$=PbUje<#Pmp3+X#Uqxs zP@p4|hV7j3*F4qA^N+gh%{gze=-Qvd9Y@1I5A|;mSxC_A^z~#6oHfTjMq0~s$Oc+$!jK~Ge*GWWXI3#oNnjSI5ql>{{RHp{{Vtw zcsIqr0DKkk3s=`QZx`NpkVURNww_iUDl`mnWg@a~a;&9gB&jS27#OYS(4Aj(8qmYe zrk6e?@c#hAt9=&RQn>M@uCbxqX}2@j$)?`LKA&=r<&Q4mdKnR9AQAUS=O=+&euu0> zu3p1$b^Ey4a+0qAsW~}e$?AS@LG53&THcwecrW(6_-CeT5zT#L{ej{QFG{?+j7#>L zc8=ENZRIREmLqIe{j@pjn*99#0D_?Y&t3ujo_-tN;=s#o6+wwozufg6R@TRqAdEyTP_@deT*et$VtuFAU&$PxIsAX&d z%aB1uDtgxM?6>1jgTEY2%Y01LJW1eRiLyje9~kL3?*^ZG7A>e`wn62q;0?%7i3(?T z&0Q2R5pj$Y`5cun^yd`f?IX`M{{Y$k!r#Pe=4tm#%NY^c=@xG?G?@p?mip-efCp>> zYtQ^`Z)4!Se#SvIk9A`+F>kZoLve9ww;A8Fl*T~^fN*hM&8m2nJU^l8nu6+|6TESx zE3!pAT6}OyVjUgTIEN#WN!$Sg0E+VsQ{k-t01$8dNvk%7-VIwH4@0YHwipj_da+#m z(@GmBd0hSRk^smfuMTB}r#)${P6{elvpYWn{7Kh5D}QCH*lSv*k*jH_(rNnsnIrE= z$iq9jxdlidACRdZcy~WV_%HVQ(Ed2-S6>f*XiX0YP% zEqr&6;9ti34RUP)+f>pdj(aP(?U7o}`oeHL(HU=+Hv|Uq+vPh*$j=jnlwy=q)2ZEu z#5hlu`WfFAJ`QTXvW~T&L#%7ds9$)OMUw8(yeZRu%A*NSxwLeAN(ZLTjh3GOZ+jEpiyLv8@%f;*16tiOqu_IH00 zd`WR*r>>W4cd6V-Yi7A0W47}Nf+5KuEPFs1!0lV#1LBVQ_glTV$hPp+taF(-P=Zq6 z<+_Xn&VB2FVqJQ^&N?Gn_@=%ck?NljKWm+5<5%qSW8goCk-vx+Ly+J2bHozcqG~#G z#F$tLjl1DsHfM%ht7Pr3ZvOy+c>e&wP#aCwY!O4ZCyCZ(h|IY&YXU`@hzsXXi8l^B?>bgZ6}n z;V<3MfgwP-BK35(C6^n zH;He6YZBN0zCf2+=aWs*= z!V8mi1^7X=jjNIlOEKn%R94W=IH;t4mVVV=@K8?z{?DHe8Y8_T~ux0Cpys8HvF>4Ckk~ zu6?yBJR9O2OGvuW(@fMXcE>-N7>%)w%2a>>QaK0Si|tBXNPhG8DykR&IU$D(e!ab` z3YVz$IIC6mk5lP?4E%Y}J}dYl^5gq8V3IK-#T2jR{g&%#AG`nzI0Q113b5#SBC$2C zCQk?aH_|P23)rkIR@yyY{%e<50L4!LP5VRqSGc*=n(I#RmWL`uWT_?&rL`4)Me3jdg80bX zLY(A}9~B-+ILPrTQ{|c1cyS@t{2BI(3;QehCy=?iwUA97Kwp<5p$Z2Fk(z0;WD4Rq z#?l$LjmqG2hW4$G2Y4n86T@*>Y4&nydOE)Jw^j1iV~@T-<+JMCoK}vh;j4Q{)@zkF z5-*wlJ_pFR$aoSdf+LesfD|K;iWjx|}Ue~CQcSC{|h~qw=g-7Eb zhQ1rpn(J8p)4r1W+$5He&eFMQRE%xG+NX?$z`^FbeNN=rTSsQC8oqe|aHsIEGx*J} z$NvBce0pw~GT$zep|52@@(Gv%5O?`UUv|f1Ql{@=C)kN$p6XdHrIujVG8rA++2xu> zB(oFAW+#$QB-cUV-742ZxRU8rE$*E#9H-3wqk+b2Gs8D6KA-1^WNW6zFof(}a(nyL z+g(-!ZP#9OiWo<>Kb6jNmKhj0^dxnyDcEXS8#;x@_N*-$M;gh3@*TJgJx(~QIz{9$ zNoi@K$u;J=rpT8@+2N1~UwDyl0+Y0iAMma=^Tc{)r{a&W$0FXzrpF+-f+ls6D~$Yr zu=z+_g32?{f_*w&GfcCN-W%Pzl-?k_1@$}m?@M{@pOs@#jj9&|1fH0pQ}$1tJx+R> z?shunt8sI1(l(c-X>q)S`4<j6Y@=$cBU^zv=o-h0TUlnj6vk@^u`zly#l$Kor=BW*uT zj%Jl*9z+3Sjn^ey1N=jtM@-i-ajp$t?Mo%oO430p{G|N9DI?n%!Tc+^W)&a0dX({8 zv9sLltRTD|0nu))HEDcl;r%h@oQYix(n`+E%Ra%i+A>Op1EP*O%~Olx{{V&VHG61o z7g+GCLGzhowvO@%k7j2MuAqA%0=*Od2=i_5ms{{ZjJ!GH%iS)|U)S&KVbP7`@>#ir zTO9qK;NlgZ&13R2ZeTv^0bW)6X#UUl9|(Rb_`Ab53+3v13p`<2cKx#6W#4UZgQm$; zjDh!DFzhR`SbCJ>8m-+kdbDJ%KIe1s8{u1gLyP-cM7Xnu#F45>9e;NYs)a);$fxc| zMhZxHJsTk8e9Pk>gkC7|t+nmFu9om?4R*#z=XJK0Q@odqXB$pW`@C>*&3*a%cld)v zvH00z;aeMs?9<`ifnnkKC$$18F0KR-y9p#8c*dqQ89ym3IOe=J{t?Y1N4vGS)HO-2 zmT5?yXs+We89fUx-aYbpIj1U|wRvICiq)e^e7%pAU&DH*!W*4GPS$MYvDPC-nrm5r z-vX0_B!WX^9tgx^7E!2b4n)6J%& zmF>B`I4qJ9?mN5h^i&~9ki*O%%EuFmYHRh+q+QzS_E~L`K zVI?rrYGn{{|J>8>XVJcyEO zjHc#q;p#v*uJz4Pa;+|OMalUdr=@&Zo5QW7YJL^C@m2TsHOpRD&uemFv$VJ|v|-1Z z<8D=mJ5=NxR!8kM`(f!{9`zW1w6y(Yr;fpGu5|5VS&LG&Tdl0GHMz%_faDR}5G$Ac zrMw6}7XHwlD6!J?pA&dy8wu9hO+MpQhg6vvB0(b=5q!2%+~XNiNYAGRo;``Kzj1Zp z`^ho2taUv$Bj)F>8-@+^IIdq|Jz(Xh`4=u^oNjWnY7%IR8rw|LDu5VF8xmuVM;(8y zb{`3TFGHtlu-LwvrrWlqdj++`(ptxH95IIt8$et4kWJ$J3v>he+39x?4FX z(e)+ymruPuWCzqmH($Z?$8%Km4F$AI{VPdbYSQQJg>@T)8QW`RaDG@rKk+b8$>1*R zdYaapS~%qw)b_nIUDEA*ZkoouBVX9)FD1pUnD)dg-L5>eCpcx#&C~csYTkqKqgt@l zZ#-eF#mjW9oQ0#ttiwlg1NG;k#WFd4FeLGFBUTcais&KH~}ppcRY6REN7Gk}z@6 z9XEk|M-PSmA^3*s&rQ;%vbu~(3>SzPTgD~F?%xEXVoU-!AbVG(LE$eCc;myD(`Ykj z{uz=O4dl^Yd9zEXzTg@tc7i<4cMREMqEO@!3v|<92!H#V>_7 z9}eKNXj=PHw#Bi?OaA}_ z_x+3fFZ)2~-ZIv{AZy+t@cxJ3jW*j+mJK;l8LuE^n7g!&tja%h01BX;!=6QXwJ?(Q z*2C`q004~%P4c6~JRR_|PmEgSzL#}*aU6QQ<{4%@m4!y>WIsW|fyVAD(604;7vZ+2 zYoqvgOT4@AkASrS{iAz-aMz|7=5$FTXLF8X40bOHF~H4po;&eHzk$4Aczi9VTXJa%s8iL&)Hho6q zxoMri``d{i4&wu$71M`|V@=ai&4|IMhx0a`-ydlSm2C~0qO__ zz5f8m-Y&fHm&H#Qc&hpxKI=~LQ(Mk;8wgq(OZ$|ziaD~a%yVr4q==GLn4UqcC~``h zf!i9Eq<3HNPY>I2_cM4#=?B>^P_)tL(t>_qoV;V0($Cr&6*5g|2=gaWGB&rr zL7p>;`g{HfyZdEW+h51<`&hZSwz1T%aibg5G0CRgw_8V3%A}{2>>nfe>(#R@rHu1OzoH2l#_^9Uz${J`LkLq&R=$E|dEp=_FCHhBL4BA8{z@l##53X%si(?6}<4(rkwG;#onO<-9<2#D54D`Y%1yZaD2|W;=XhJxc>m)sal1V zzMG@`EV|V^KWldxpHT4?{+Mm=Ny!UsYXs^{XMoQuu5eT+&PekA0NbnLZ-)Lp{?b>T zF7W=LeSM_ZX*QY^Q(CW+{h+Y4(z7g*E@DFSu;EJ`fq?+mpV?h_cK1!Uj#ks|b% zI-*RGF*zU-H?9P0b{- zlY&{Y4^PNqn=HCMx20OzTTOYXe`iPKEU-f%3Nl!+2WS~5J?ig@?qP;&8+ooHw6~H* zpUT`xoPsmglaEh&q5l90n@g-s_InF>tmiu=jRwYb9Q7E%%}+AwahWrCb4PD6M6fLH zmCUiovMzo175ysL!VeM8@UP+|Gc3%yKCDHKrZc%z6Z^UL`o_d^e}u5Em}>eCzOm`E zSwp2w7}*`v?XuD_{pa$~ypDP0+$|9NA-Hd}tWR&KZiR$1TO7vc2N;x>hCD9b+;fldruY|J);vdZs9kDS zk={dRZ|B=fAo(nI3qW>wr#pAEYQA2tsiabGuI z85+~(=y=nuDwELVyfv;*H;HepUPxop;S$D?&9zxdumQ7yf^gX#Flxr5;$14sOl?-; z>J`#$U>C1)zcRFBWHRIL1I7UANUt;ThuS<-;^A#KnGC)nmT6*$Nrn-pFZIImed_m( zG&$Gdex0P++O%-m#}%`nA1X%>3m6~X&H?-@ix~=VY4z$=epsZsoOg-7EbHG9Ww?(| zW2D<(N&AJjk7d+RV;c;aJhxKA9@wk~@ZHbB>#aWONLy6XE{i1b6SbL#ECD@FIRy3R zKDFq-2z(J8kBId3)ECKyONA0j!#-M*)Q?K&e`-$(N#M;ROOD3-NfX*?H&fe3eHeH( z7}hoUdl8jzK^*iQ>x&On)ss;8Ole8U+9B|_#aevUvFchpjWjn)nD@ZZNPr%jTZ7zi zNUbd!!dCjmxh}G)s*n*w~9Z3r#cS zwG4XB@)rBUpi-Dzo~N47xA?bpXK86Ii(Xtv(0`;pq4OltZpdUH?%{B`&u*31^?6fi zbUHnYi?cL7D|`y^2f>XmMe+Xt*;@Na@g?=vn{gqvk~p;8Neel(d2$v;k|E})UI)w% zBc7w--Tk+UJQ-Eh(U zBI;V)(dg?u@V%;C&WVA#6EeyqIV0X^6>sev4t3=-f%?whU7F=#%Il=VJWJqO= zt}dq9cCUWJpg)HOy3K#X&k%cvY~;7Mk%5hNvB*6JO=a5OU3gDWS(YYAfWsrG`IPWR z53P7LB`8YF^7*XHTU|alY-CW8&2xFdk-6GEtIj?wd{2wv&E(oHn6|eXmD~>n?ZE}t zPe%npCJ)U!XQxFN$jRf={9799Hw@ZM)~%w)It943h`_Nq3>dPpMv*gsFsuh&ImJ=Z zJ_P7CpBW+XHjg%-+I757a+Z3n%y)NDUYS_N%IJt0Rx+a{bGb90n**~4Dtz4YdvrUn z+@BPUZ`s54Z}G0b@as^~wT(-}9v$$WywNtL;mrUzLC3x|p^ooXSn^^w4=Oxx?an|c zBVeDDX1cG5zXw<0<-%J1g5uXlzF6b6hf&o(wC-#qMhqD)B!(tcBoB~=LC=I;VyFd#h^G_=8;5blp*I9(_jlQMUV3 zW_EnElQNYc7Rf9W;~ZzDZ0KJP?k$AcmY)uvtZ6oL{e|xq*`=|Oi7cQo0O5xtq5OER zdB0{|TT_lpoi|W{KGhVDZ6qy*+=OKu{{RmFk(}VD1Yp)axA8B>pR{j^?6n5c;=0x~ z3q_1er0CX`3#pDAO(^+emSc^=^{q*qoy32yw43hDP6Mcv$X15uJUllwYX`GamJ2_vY&;~h?O z(Dy$Nyj`nnY}zl4ygwd;tlQkfBwC)4ZkBq5>`G6YZ6&OXZ40;{2^2;_YV1Qv#zBMC*rV1% z9aQ56o4N3vkHZT!RodI`0Lw_@YVP*O^EFQMOPb#KZPk3qo>hr_znK?5#7O9)sXeh> zB;F)Xvqn{0%Tx$Fdk(QFCV6lyXQc(V~h(llSSlnVH?V zX&95sF(&|eRzrA8PKI@k>c()>0U}E=V`x_Lz+at788y=IYNS1@eQw!rXUKjZ zkHEeyy12RV3^$ro7kVJK)9*BS<=JDYM2E|`xrS3Ak|_vOkx;JEODG)%Z|wW1>pI`W z4L3&9w42RKQ}G1x$8Tw;#?sxqnE91adZ^@+&;Uv4T$I<^zMDLnef7jGG&7GfEUcwi z9zbt#!5r7rzwk=mj~W;3(ee8B<6P2aT{p(j!J)z85?Oz-KYG{z5r&3IilnZmDp5NI z6|EX+wH=DX%bD`CkMRbLd8B+pw$=r#aNTM51{;XwhXz3ufI7;D{#q#vx$lALUrGMQ z9u3q!D$DV^N3omz4_NR~j!97bk13zbfq3r9vkZM}lm7sMqJj~@&*FC2VZ(CmCWV{aTk*b4VE&pJbIYNFy&9zssz z!5{@zB=PTFRpK8GUwk+5Wt>;a#%N`Z_S#5Xq<3fzq1 ze$ydPWsqkl21hs@#w*3eQ01u7TAoE}E)`r@-+^8g*M2GdZt%8|qu5?*TDA7EX(TY) zjqa%&=_Ilr_EI%>W7sJ*_uu>!bM`#3@XUJG#E%Z@*B07+_OP>Rx;?=E07H&hgCM$$ zf;Q!_rz&`J&uZxZ0N|HDu`E9Ud7plMEsY{{TH?0a?l9 z3@FDr`j5r_6Vp6@;Vnx+)-6{1NY<^M&i38E<*ZIHaC;Hd9>fauFu8rGT3-{_(DpFc zAKf)A+4!k{tZQ0diDc7sOMCA-OXlLv83n|`-H16*d1b-l9G)sq8{cY?>hfJfCF03z zZynrogfQGi8n9%Mx)o(&r=C=b`fK7J{1T_d-weEMB%T$}{{Z1S(Z~FG-$OJ){usw9 zlSd;d+`Ts;A+er1SCi{r6O+Mz5azVkEHAXlq=w?dP_?^8j%Y-Y5JLv%1Z0lhmE_cg zXr`u`XP@;s(t4j@{>?w|Ri6s@hv62Q-w6T3TsQGc#=DJ9SSm=Ju z7r>+^J?V`36v-vnGoF?82e@%xv=8kO;h)*3zyriSC%C*@dF}^dRRJWB9 zWDXTeGcgLFWS*J){{a20KWr^)_NkuM#_}1wGvJ#!46tYsTzQk~a*mT-$h7Ojyu1_E-9qYk7Ar0oQ zrcHefj-hvN00wKTdpTuDK+gr#5Tm~)x$0Ecl^k`d>&jZx{6_|beI3@d2brg-FxzRc z!@eS&4&XQ$2dOzH@u}=Bv^%H;=7*)+Y0=w~uN%pjP~$%+$;ao4((v7s8iUQJ+*`@z z$fI;pMptknsLww6u5-p-E`#9qgl+WXwZ7Cf6S^e0UH0)r8x1P}L1J)J07ghYm5QH6 za?81i@xxft^#1@AXf}7(7eZ@GPqr)Bs?D%UbB<=ZfQXn@wBdCG%?+klC%w@uYD?iS~HXH5_eHP6tzxPD!dur`%~ei(A}B z^DjcDa<{lYjX2bV-L6V$qprI6ucz9(eTPrK)F1oOy4ys4yfYulrO^KXXiMz^=}dY| zmdf0}*>w_6AMCVYPveT@X0=y8FCN{iCslT~R_&e!d)3OC9BlMEkJ?MbzYl&SXx2U? z@a@*2XX8mOQrlM3rLky|@*<7<<{%jS#44aVx6G}AG65ZD>@)DiwQVECULx{cu9|o> zTPFi1ACONm1O1@U4Eh6J9im&Avvuk_-A9`8$C->wH_h8 zms7a6vXRznvQ=S3!hFR*i=g0<&2i&ndQOe^GQ>vka6ZQI9rl;uO(Rm$TUJ|nCV~q& z(gkT6;uDrT_5xR_1aY0-l^>6OCVy!|Z$J7I%`{6PiZs};-~a&xl3N3*IP|X@_(kv| z#Qqu4e%WzrZ)>H@sx6_qxCtbsNi5rX;B>(1bLn06zJU&*7Ml7@J|LT0h28I-;M=yI z2x4PsNCHJ{U=?sj84PoQ^L06B#i%>K>toAuj5aFxdqZol7enF`WdxUt8z-GAGUgWh z$iA5esQqiXlFfA|xVOBwwbJb2jLQ|p$dce(KLA9cG$mN%;hW{-oK_~CrTCunQ41uH z-+4n1zvYQP;CujoJmR}U0=!Fz*X31JL}J-E896_VdHnqD^$tB``I+akgC3;9J9~Gv zjzhL$%&j0D4$?UMYjfgnhdev+ui;jSqsb1TYp7}Zfx5cXB$C=`7%DO>R_*0)g$R7Q zF<`|bIpU+$w7AZs(Ytwr8|DfCSjVT-^{lOXSh3M8wHx{3`#qkY16@uc8+WRX0QX~o z^);OeZj){r6;IrH9y#OhgdQLGQ{o*nN?mKkmsegS-j-JOmJm%j3P55`0+Ey1bAWv_ zT~3|wF5c?e%`cN!wY9TRwiz!X^LSmmh>cDO2ar!5g1R4q`c|XjEk^6bn#72gx`aPv zwksYyi+tzHkGjX(kGyhDNv+Qk+{14pBpaV^87HalS6dZ3Xv+G;p2wT`v-Ww>Sm*4wXkoMz`7|R{iD+dt=}8u7Bb;jWur#*;>bE_Go5n z^m&rzA2lbo+DoDUL00L8Q`Ga3#cxj$Rnt*4jaK7kb-pw4cBkSc#m=F0_Wf2r^>JWu zFrWea>ykFITu!QhyD{S@^{oW)2Z?6W;2Nfxc^$NPXszeBc;RL018roGuTBFGPL+*w zsLkd`%6yr6;Q>Wc>^lnOsfTlw!)YSg~vpH0heuT={!pnF_l3VMiHF;EbGrE1dYEt#zh< zXk1&H;pUkxZh=_gbhiE=k!PM;DU}OMyEl1ce*s)|;~!C5-U`?4b?+5i z>YB7L&f0=H$>#!8DHvWlh6AA;2(LczDt~SG!&mVYyfZ^%aVk#g2GI#^q=IwTaXb!d ztJj~wx}E*Kw}!k~ESkex`HgRNYa}+eQUUWv9PAV z@b|+)31Dk)?2B2Pvtn4)Vp2AY@^OKI$u;R^^)BMEU3N5dY^=;5_-G5C0LM3m{w!Eu zT>Xi*E~?9mn{&q2^D(uT9D}=>)cAqmOCK26f5J_p?eS90Z{e zA`tl_t}*ByKN9%I!Z!XQ@cyJA*0h+6kVwO9cd?JX6C?1-c?C}#k;fIl_y!C4DI&OS}@mItVc)v}K zHB)7Er`#}UF^I|gu8yY-8-h6=x#`=R(!LmYgTw(vos55Ff4gyUI>iHzRXmpb0k5$> zA%4!*emMAn{{RU!ymsp}kOOsNEJJn8%493KBWd|?7`G&%``0I^_;y`4Q&hXwG+Rl) zIY{pkX`)bZ^CA*guLBk4!lda(mMGR$+!c~MCfD|1@dl|jv+LLFgjpi z6rZhQd_(=7d`IDdycsoUR0aYQ<;cUXe6rs+`~64H0Ds;lu{>MhODHX-x?2lhv;wAAwvFSl)Z@=0SR8{Cqo{cPhddFotu*f12-cg` zv*FDu!fV+-c++i!6jYRwV#gamKX>WHY*}8%pceCBo@HeOD1R+``yRfcy<7H*@FaFO zmU^CtrnDuutD#aq6t&qi7^#xR(xvp2?=feAciSla~8lqiXO=@lQ`x_Wt z)r+#0cN+*Ki~t8tNv_YVLQ&>tYMfjyQ}B z+oAR~(CR)8xzfBdXRXL=?lil}e$LWEF6XqHoJTU?6=DG(jDkDW+b`L^+u_c&9CsdE zHM?0DYkG#GuE*gWG-=vm z-%4iw&$LEoSd+fRW1e}y12|EN9uTpc#}?4XVjAv9(`0HNE)$X!M{oh@*n3r*zX;!W zK5gr|&fyz!i3o0e7z5CZkH)G}X;}_3(#I_&{mzl5LwKk@%Xe~0-L+Om;4n!_H6JEh`dSTJyO%eUk~Kfd^ECK!y8F*Nr~-# z)Xm7-wl^h4TppmD*Q9^JDZEX0rTi`Nmw<#TV{t4Nk-~QQ} zZ;S7AD|>$e{5{g5w$SXaF3sfLBh?=gJ@o3t;y5y>p|QS1-M452{Xnvl8sxKW=nrZE z!T0Z0=);?u#*(83`I^+7q-JJjV$A0x`qM<1Kh~J7PR|vgt;sU7b+0e@^ZPj3{8adr z;6E5gV`-@Bo)gs|`*o$lsZC16whni2&jUA@pywbk>x%T`I9grYb*Yq7(T{!4BK@TQ z0A))rkKQz~)$XkHo5}3#7R9ByICcv(&Oe0li3JtwhF@{`(OJALHtyoS;E9CFk=k{HX_LBJ1s7eIrPm3Nh@V|gOFAE6EMCVb|FJH7a&_~0+Y-O?6ZY$;w zh}Q9$udei)eMNLQ?dzR&$Pu&CJx8roI*OFOX|3VA`%DcIdAR}tafe)g5a${7tox;uF*31f zSn_*R&`8f@+55n*58^AcrOV|tEUhKeG?>~r_gzbbh-0fB2Oa*E^tZxYH&5`(>Gpm| zQw^a@ol0b1woCvm@6SZ=9-H!hNjd}k7!>xDz z60ZzcUrlaf`)tmO2{|eiif$xhjlkEXct69?*lJQGyDh}fx8Fq1+87?guGJm8lU@v~ zNmS)$lg!+#dKQV{T~oz6TIy0W$70!ANYsUE#vB*NWCRiZ);Qyu!aAc{*^;FTu=z;& zfgOmfkBy(S(|jTLZw`WCn$KF)B5O+-2qIqK-1`eCu1yW=&Co-OXz29PpwdWFp9~ z6K>pcq;##1jeoQLt>gayh&NWcUZJDKW#PEujcsq8qB@k)$L2{YNsXLjM}x;+Mrth| z!#*_E{52h~iY^7j+GV7AR+yIy0^Gr87;TZfv5nGg-L*W%Vyd7500NKP!Vj719_O>w z>U&&%8Mk$1k!H7&6%j)WJ61UHz!<^fr%L0kJUMyeeP-!wRTbAM7-Nm+*Ek}&T`GIc zTf#b4(qYwapjaeVY_x2vwcP&z-#PqhKZsuvJUQ?i!|+2Up=}-OI_$SaGF@IbL$yaI zCmfy!6;$xFr4-rDmsDKReihy>ng0M2DHa(aOeje{Se1IavFrwa4r{`EP?CH?@lE~p zsP@+WH`ZHPh zBg6XSDjQDKEfFrnM4z%;qNsmUwDrO0ax0YA{4Z~Ck^Qo1t?aK($TbL4FK+nY`+?n0 zQJVBWftu>;UKYLZ{lszIM|C5{u%2J$8BzzKJBO}z`&Dm+f7$l_BERsSyn^RNyl*J( zC0a6m>jop`VaGnAw5f-T)F%hO=40)eX`{onUkz)X6Tgp7@ifZPMvo<}-J-7DLIxoG zu6Qex(Sa+w9l@@n!T$gTqw)8JS>y1%teIdIYYWzn@o~>A2nRlZes$ddxQIxMcjBm~KHazZnc%dlQOGm?G0itFMX z=ZQ7gQJd`cbI2o(2$yq5o`jy~)YsNO7Jp}f@i)P6+F$55S`M$Lu5B-^u`GG?bp)Iq zhu5zMn(z+_cnekVb*7@15!l%3@K5AgWs#R?#_90b&tH{&j%(43VFj+|Z8=$JX6pJS zj24?@xQ;m#@YfP~d$G;{9dqhy+`nf8pIGpPotBdK8inVFU>;|Zxs_uMNM%8iRBj8A zo`W^>R;R354-;Qo!tLSzV_4EPzk-_1-9t^0EN>LUE24Rp_bNyChX)}2d9DXJ z!Y-Xl$~_-camp6gpo!xH5Z-Hj^dYo2|poJaQu-US#tTijj;HgI+DC_}{^{ zw`nG!d2?^2;Tlm4Z*1+Js!38urdK1J=DPm?i2fS9zW8I~4KGP%lJZ?5X0TN|T0}T) zp!$Fa_vv3PSjc>HYYvxvI#}vYfn|2zEHg1b>ZTvUPXIXM)OziMgsU%mpy|`+SA7q> zyf-I+{8QkoYyAVkI)%oUlN49l2Bid^a}J^Ya#{U%{MBv`3}`lPvoD8!F=(==^99P< zBSg68EOJ$s)Eo}g@L$3&7u(F`I&^_zlkJ*B*D*@i$t03O=aMqG_pfT53VX?Z1xlY(bXxC+ z{2TEPzQLHS z>X!E_Gw<@-ayr-5dPl{tgC7)B4G&oOdfJpLnPsulE*Qa{bLijw}z zUe_+K3d04jn{VdLDtyshbA=#`hR-F+73Z3Vh4lL$4e0jMD#NKY#HK;gOEixP>Q7QtvPt%@ zdGTL|taWyh-&h~n`jH_m?p1_x@9YC{yYc7Jyr<$x1bI*P*jYTJ^*G5-IvV11}g>{dLKe2a;J|k%Qn_l>b!aA(B_c~Bes`ik? zvPrS}`M8lJOrMwr7|9snwZDcswBHZBALCs@-c33m62WyYm8!(pTfehR@l1q|yCB*h z2dcJ4c>^NvOws--{5powWSP8ApxGp=5?uivr0SqD6enqH0ul3)aJ~4>@ZXE(@I90| zKDDk*{hDrLxs$__%`NqftlPM0<4078;hS)cmA+$|nw*iJGDee1_gkM?{{X=zHQgHX zK^-@31D{4c1$|ZfBY(k6d}rZ}6H?NCA!(9$ zw#UOZv0OFfrW0CAFxwtqFYa8dKOvCiSSyCf0kQ93u~BhQk?7#@aknJ5KS4aqdQ+o0 zu5;m+#a|EnX7F9Nh`cMS+H0CE=L>NIa~oqmT#9~Z+;>*T;yJDMd>(nPM^1;S&2&r- zKf;`>F^(#~n}JK`W{`>ZW7?Fq>Z~RdzJE0A%I2{->qS>HQBReJG3PQ!4MQvZ-qZ#J z`_o((l~q-lnBi0m?lqKmF-ML5-`Dd&`zrW?-U!Un>erffo+2G(-Exn#d$EiU#<^WT z;wOUt0N|Tnv;P2vyeY3qb*T8F_8GM~w9PUUYt2^jR`V`rJBr5?O6(#JBMgKAcVO3j z@xRAj8}VPl4;_s&R`9Qhb&mw;(`(76TIz9KO=*2#t#NK;iYYgZvcxi{8Nmm=eq8)Y z_@S%#`^Q?Ay|3#x8rHk56qf4#a-pVOza(gj^2ZVbg+&2IN$N>BVk>fOxs__F8y`=6 zOaB0ZqWI&*?e>2M==v{$<88_3%`|$o^Jj&8vMf;%*8o2!sTK0K#&3xC*M2Fuyw$a< z?R&&`@+s8ruH@Zt_!wNU;{ad?)GDap0aY~bh@bF@rNq$16xTAq(Z{(JytX|U6VQ)Q zT%G>_ge|1-Tsow87oTj7MQhLYZf^qoT((9q}L>B%6}2XQnP!M?)+xXj*B7v@ebEZhf|h07fCX=pB_=KOMn59LBT2)w_Khot<{f`pLgc| ze$|uqT-_?OGOD*l?_0((Pe6>5L#=J()$aDMJ6Cfb?u=FIEd}poVYnr|viY*HJu%RI zNv^9z@Rgmdp6kn`j4%X41|P3Y$JVKMk4_Okmmd+HRxmKYc4nz{73_rM_d9>t@s-Dj zCi}{fTgSH_aq`4|nXNC19xnSemF304$#o{1Xue!=A$eU#%8EUK>+Q{1_%~%8hr*R; z)mBUWQfSP z;wblHEJyKU9XtApgW)}`=Z`#NZ>FqK+v%{YT;5&s(kcKr9f3R!dU9$X728?rJ|Mn* zKX=%fu!Nn%Xyb7D;=D&qx%0CK#@_K=JSA`9omT5wx>>c|PDw}FFYiy89K-|B2g!xw z3xWq6SD|=2!+s#~J@UyOsVr%*mU*M|1fXMtT!ZV-V~*7C3P)nP1+~C!_R%iOTUAUA z%6Z+-e*U?xi^7_X*1O_+w28L0m9ogQA=+asc9dLn2YukGZK#Elzm>-THEZwp3aR+>%}{lIwqYn<`dh?eEn$4!Z1w}cSV1OBnG z*Xf$)sfUwX^JaCT(ML_zA=6*VzK&C3#Q3H*=eUSFa|W$<_7ZN{4E z9ln;*ATkl3DmhRzPm}yA&4cJO>0XWTCq{EJ2*?f1&9y8<<*ByvFk@c@ipEO}R z{iC{G^ek|;UKbiA?uB=B@gOXz_$Wn7&@eR?A`a7E#+RFMs0}E5N zC4cX2=n3zR4RL=IwCM-M8;i|a)HK%#6qm4{+>3=Nu#LbUEsn)IfXMu7zK%8GT8!4K zsn-owr$6yC_ME(3I^N$|@PCLj&0(Vt6c?I{LYB&UI2%K_9AFSS^NR5A75r1xd}}0; z-rr5AM{tCBl13NEW08o+=Kyy(&3z;BQ^68^R`4#LWA@97&$CP;(RB;FHRY7};>zW~ z#EQcqWEd<6&ng9c!nbzuX{!tn;ykuTm$i|B!5s1k#w*&RP7Yd~l%%9oGQ(-6$7gQ4 zRx!&T<20HTyw;L$-L(~oRo)5D)AFqSLsWK`YO3+qj@6~5+!A)qjy93CkbqogkV)v? zooi~kBWdla*j(tgekqF;4NpBvNr|Q=F zwuAR0(zTdH)DevE5s4BY_6$JmD~N9se`nmYX|c&_FhiuT<}BmUhfHF+?*x2G@bANG z=x#LqFF}(~A~__FQL{^>5)7Y_xO5!zf;taM^W#llQ;(IWq4Y0?{{U#qUyYGl+{vQb z_-Dn|AHIs-H{WHd#D4s0SOTP}KP!F&*USF^5cKFZpBHO*uzeM-B$DRd*;v2XKqPG} zdxA6dHS0IO8*O}ke9K!KcSG<~MS#B;jk+Fkq zE$Di8>s1KG6K*|1k2gN2b>klZ&GCQW?}I)dX{8rjk4J_(_Kkjf#*B!YC#FQI_$T|= z=~Da}@Qv5)5u)5$-$NvpHu8Blw+g#a8~9;Q`e}}%_(vzOJO2Q&2EA>0@KgH^@+X!% zJws5^biagN9q=T2PlS9MZFQ~d(g5GtmI|wHXxJHPCC1bv_?^oz_vuk; z{t90md>gp&9haF8i992(-cFOOrg<7Gb`Z}HZ~ zKNaTYvMqUeV`%fdX^gYWAjg&%o>{$X55PK<-vgINx4Bk_!@m+V==I1%jq_=mt1A7f zFnalNhF1Wd2|cQvJUyFzwSAewfa!l*I(s7|eH2^=B6>`kLqliZtWi&__tf}u8nfKe~Jf)CYMc@aJ1D) zceRrk%DDxI+Q%O;QV1fwm%;x42z*cRm*D-bw{PLyIOvlFSBF%+@|N%e#L(_JT%Lro z@-n>HUC*BM>$zZvVZ+-KG_FAVs3;I+Hg zbt|oTZLOk?4Gvpof3cN7f-w%}OpIU0w`^*&|hvnS;DBn9dH|rde;;2 zi^5Ovd|B$6jjg@qo%OVjsY?Z??-`?I0!Am6d^sU=k`=LBc#JJ-D$4HN$&MmYT8+_s zIxRG#s`WmRW%ToT9(`hoJ1Lzjidry6r6GgZ7=LQHj+JK!n(4_b)>fB zxv`m+;?R+ez&Ouyl^~-6MhM6`-V>8lveJ`K@Rp^hM`?JzVo#+MXk}i+hEf;MjtD#) zR{j3~#a&KGt>N)Dff;B>2U555p}CDtGUhU@B=sR12e1{fqeZ~?;c^ryiO zjhZjV?}qk1D9~3?x3j&ClBL{#h=xO3&(z*1Qd|YJ}srOiy4c?SZwzRHTKg8$IV1GL8QcqL6SFye4d(&Fy2C-LK zy1WDIx^>LoMP@&a1xhVEL2yA$H_871X~xm`KF~yc5FJxz~V`P`2it*Y?boQjX$@~ivIv;O=j}eM_VlhHpF@y8A~WvKPy}? z`R*k8uuSw(itsOqclQ$BTiwXe+ukrK8^E4k6mm9^*mNG1!#dZ}2L((;{n(n8eizX` z5NY>U%Ol3*%%)8wmf*6DAU6+NW)Vx=r-DvVjd8=CZ zRuqC51U%b`q-+utastN3ap&&WGp5=(T(q(0*V??lX;rxL*Jvq#xGnB$w)k1E_;K`| zM@{i0`t7}(){-r`)8SdX*$y^|0U(7K?Vg>hnU?vqEqYc|`$e3s8ED*X^U)meayaKA zy(2^Td*Q!~IwjTDhNiXf--)bL%C-|eE$?yGGoBY9aO=?Z7@{%kbKRap6cfNqR~X$G z1a{mA$Zw&ldaa{0Yb1Mv#&AIHE1>ahq_#8L%+UEFKw*+L7`@~-#7mij)c;vGLrOF0(bS-XnH zd#i#ZX-te1y82_1I&;NyUj>4{f;C{fvf7X43`h_7{xz*EYocnJZNrH?sApNERN=6! z4p-l=HP0!#vsq~yo8BI4kA?aMvEl7PGPj-|)@2b65oKu=Hoi|lLW5gS{36yoH+deV ztVwY98s7WMca_$5x+kj_2RI(}hw*bo(dN*ko5Q-K+M>-YR}%fAP1igwPVVQN^{&76 zaPX$F@eko@-N!U-Bp3G<7RFh2ZAI920(c*I{-x{o)^ zE7T8>fX}UX?!V$>@MWxvGRJ*+3StXr?46BbqImk78#48=`(UvgEvSf_* zuW3RRp?;>7J>_$qpTpwI!+JiW9HuQw)<)eVY!*c1;Qc#u`Bm=+>aoYIH=ete@mRSW za(du?Ijt>r2>$@#0MLPdpUk)opW?%?{{RZ)_03Yxz}h^T#-%esX9>b849Rf)ql|ZB z`3|Q7qZLot&MF;|oMP{x;eWOl#7%QV{i0{L)5WdMlMb0=8abiPWMn12ae}`oQ;wY0 z$HL#*HrnFBY;}fP7_HY4yptACzJQQAc3!@ju0O|ZapTQjQq}I7IPbM7OvN{Ru?z)7 z2hmgkpK6ogN5V}P#X42g`lQ<9Us~N5UK?Aup|-&rkb~tH&fdQ_P=60g*uu3gS!mBz zjTJw2ZhM#ZL^{r!7Oke;t@V_HaF*G;$mAb~IUT{|Qy{hl)v@z->}$(>0jWvw{{Z8* zzhmLq@2vEn4(ag0dlZ*#G*>sX{_~vmD;_^Ddi0$G_KEP`yW=?gE#mDoX!?!%BI(-Y zoX5%Yn4O6{ZJnTzfY~FF(!9B4vx{jktAm^s%s<*k#n+z?egJD4g`A#U)~h@^EKM0J zG)7~VkqE&AMvsC!kzCKh4;D%B7sE`tl#)rP+W~K=ERJ49IKs#abB4xq*n%lPY6nsPH!R>|mHp~FbU%8xz8U`0G3y>R(^pp0X1AET#PP!3WH&Id zJCRS`R|Do;@ws~QS|7CzgAai`Md4Prx{m4{LMx|8*pMcMIU*_v9gmn#{0h6HQc7l2 z+fuRPKk%*Z5@wSy-Z(i?3*k@Dn%X)+i$|U}vR^rNy1$vZlhpCjw>6K6R@3P^g|(iG z4W0h5w$UVvq5j4qmw)b?fTj3WBxHaFM>#wzbj_=!_3}-547b9<;4VD3G7!6Vj=Y}T zE2>z9ZBCzN-mK)j>l+Yc)Gg*HryG-!zkoGD!p;v7%{12V&akVTFv%Mqc`Trn6ol97m z;?QoU+Pbt6#TZ152?3opNI)Fm;=WSw$B(c68GKD$YeVvW)1}KaaYt~4;gS{`S~mcK zRPoS)2nRLk8jiJV@k0AW_>G|N()Eb0Bac{u)r!fbY7yY1>D((|5P8VPbIorkwv1&; z?&s8h5Pl%*OYpB)@Pg@a=+;*;yjL*VTbMr3$ATXumOjVQqSSm~+TVrjygPiSR@3zL zj!QXyXk>|_Ty6|=jDo;}!35KFpNnz)W6-qSQufTluCk!Mb^icYEQ`Tq9m8;J_Xb!DVDuS1c&{c^Do(4X2XmHKcI9MX z{?+=a@PCgyI=Vigb)8#77p6e_%x))@3X|IbKg+F-P*;#B!;lC2Eh(0By=CySv_C406X{hR!rcn$R>1x2JD~tvz zyK*paNbg?N;?LX9Ow)X0J>HGs{XX^V@QXIn(tPD-R_Esnsk1o{g3$5DZ-QJy&# zW&1>n8*RXrHDUu`@-i@a^{R@?ah?MI04n8IzJ_i$KDWF5qhZu-H4R%*@ve{Hiz%To z*;-E`85eT$!{stOm^k@I9Ff@9&%P(|tiC8khT3VbbUS$%B)1#K+nv7qs*(z?OcV1G zGI7$lzYq8(Zx`#)+Qz9IDg?Jvu>Sy65bKWnk3c<5dIi>isEa1wE-1&B1Yvps#(yq9 zI>!}RyGBmzrAac2ag2k;O?>Aqfn2hVM@scyf?gB1_>u7YTGRBlxc>lz z+rqCdw{Kv_d|JkkRxvupr=+&>W_^DkinKfoV9r?xl9&GyDyY z;IEz&;pc?>UpR+F`yGsWlDfxksj;o@5N(nNL&`S?k5ysLE7QbKl4?+PL0XHXlZMRb zzh$4=n&aUw#29r;h$fRmyp}k1T|F0hNb`n$r@L$I59_sVK zI_{UOLt^_b;)Oh`t2WL*eG35T^&(2uT#*=@seKS*!?7SX)sxxxa*pQ)6^f%yg&9a{kwEe+MOlPZ{fG__ry&$ zA2#zwVpVTrU%frBZc2`rY%VK-ypU%Aa$s@((vpoL*!&9`KRh^>DQc>e%V@b`+YFYP9p2z5(kx4n%Vk2o(({Rj2+sQw~&Qp(Fx zH@bXn4Z86#0|;BQ0o&6RfpamoMPZ%Yy(>j4>^@V|_3sYH;?IQ<_=4Ybx0ZMJ3em6L z`y^_Bl0BTa;aGkX(&N=;j%_CT;@?tU7AcejJZB-tKbSphZ{Q!qEhED^50kAd%?y&t zM$OEpem5&B@^f67wQmh;@>^L>-dt_I(pFN1;wR-eY-6TB3eH>TM6Iz0i0|&N-In0U zw-DTyk!1VZ`Zj*ObM&hD*t>J@nz`aD$@MF@n(GZQ0bAwTPCb47>b#1nqscNyBg+c2 zm0ouMGk`sKsg$%cj+-4v!0lCEPuDD%g_G?Gbc%YBw_^eH+P|H39yPU@ygR4dE1kCY zU^olWSRSYAjw_9@@XPoQ#@DgUJ&nxvIE`M);7e}%6JF&)2+ zY-F-&kz=|;6A*W_PuTtjxvFU^oi|Q4IJxI*NM^WJ@=Rd1{{ZgeoY&Kz0(?BSehsma zp_@&zykG4RWib8dmOu-*7~m7rBcbVDW#Es5vFSI9b*`*;D{Cn7ZAUTPN)OAs)kg#Ai z6Q20(;#-|#UemlErAGJKge)#4(=5=ZR}0XE+{7GUV4PP8dGLEy@aNkm)+|!e z>J|#(M@DeR2eCe*n(6-lXYUPMd>io$K04Gcu2=pO4Mt5dBxc;wwC8k>j-?di=02Qs zuT=P-;OFt5g0&51-ZuMH#mdHze-Quxc=y3I=gyzF`FA;LMWou?`C4rPTdi(5qT3gk z2>Y~B+1 zd*Qt=!|=;)CDv@LEs`!IeD8P3>Pv+?v)4YA(`(ukei@qP%I9d75+sPL3`(cC{IF}E z@ehtx(_HXgTF&e28r*jtWxT>cCg`Mvc>WR#=lm+S#LpK=d#j|=7LAw~Lbu*fJ8|!t z_iERmqU9ack=4t4*o($KDATn600`Mhe$qz{pZ1rO#y2olaKi)C^!nG!J~sH1sCe(< z1p1BFnH8)FdMJ(!#FZX$K?4(I5|8Dz`n6vZ(2)OJjHojEPb}*{#Dob_u(C)SlixctaSZT zPJ}KNLb2)y7c3tKhw4Lq2eBTO9ye!x6U{zQ6v(v(zS! zO`1O>+D|TRA{pPi82L`_bJwkC=^qZC#2W0DbLu*LYik=^J6lcWG@Egqt$~icde-$R zYh!Fgr8Q)F=f(|QUx?od<+Hq-cBN+|cWE<@WHD#2`$b6^uPBS*jl=0s+({(O9Jt4n zzj=A@&Oa*j4+;3SbVX}jQNGa%h1+*9UEeXlMhBPoJaz9{_WuA6ZBK}7+SXgmKSyaK zTc|Ch-6Ubl6C``i7^@IMHv|l1S3NmKgXEdT%;TdxUPiz8b>oXm%QpKp#k&ciV!Qme z>Bu}XkVwJxHRu|@j5UvqUK-GpMWn6YhgxVaR&^d+u}QGUBxHi>GNcs;gYAmV_?@8W z_nsfRypO~dH#+W`%N50z$Jb!=derGP#0RQ?WX(A#*r-ri4^ElM*1&-c2g z{yoRzTGY41hf9^zNt+XRJ`D>>xVVv1%(aE4k*(!)iwZJ84U^CSN

0S4rXj00wz8 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 O%O?LTP0ROV>OTPW;`|B# literal 0 HcmV?d00001 diff --git a/lite/tutorials/source_zh_cn/quick_start/quick_start.md b/lite/tutorials/source_zh_cn/quick_start/quick_start.md index a4e3c3336e..10179235af 100644 --- a/lite/tutorials/source_zh_cn/quick_start/quick_start.md +++ b/lite/tutorials/source_zh_cn/quick_start/quick_start.md @@ -28,32 +28,32 @@ 2. 将模型转换成MindSpore Lite模型格式。 3. 在端侧使用MindSpore Lite推理模型。详细说明如何在端侧利用MindSpore Lite C++ API(Android JNI)和MindSpore Lite图像分类模型完成端侧推理,实现对设备摄像头捕获的内容进行分类,并在APP图像预览界面中,显示出最可能的分类结果。 -> 你可以在这里找到[Android图像分类模型](https://download.mindspore.cn/model_zoo/official/lite/mobilenetv2_openimage_lite)和[示例代码](https://gitee.com/mindspore/mindspore/blob/r0.7/model_zoo/official/lite/image_classif)。 +> 你可以在这里找到[Android图像分类模型](https://download.mindspore.cn/model_zoo/official/lite/mobilenetv2_openimage_lite)和[示例代码](https://gitee.com/mindspore/mindspore/blob/r0.7/model_zoo/official/lite/image_classification)。 ## 选择模型 MindSpore团队提供了一系列预置终端模型,你可以在应用程序中使用这些预置的终端模型。 -MindSpore Model Zoo中图像分类模型可[在此下载](#TODO)。 -同时,你也可以使用预置模型做迁移学习,以实现自己的图像分类任务,操作流程参见[重训练章节](https://www.mindspore.cn/tutorial/zh-CN/r0.7/use/saving_and_loading_model_parameters.html#id6)。 +MindSpore Model Zoo中图像分类模型可[在此下载](https://download.mindspore.cn/model_zoo/official/lite/mobilenetv2_openimage_lite/mobilenetv2.ms)。 +同时,你也可以使用预置模型做迁移学习,以实现自己的图像分类任务。 ## 转换模型 -如果你需要对MindSpore提供的模型进行重训,重训完成后,需要将模型导出为[.mindir格式](https://www.mindspore.cn/tutorial/zh-CN/r0.7/use/saving_and_loading_model_parameters.html#mindir)。然后使用MindSpore Lite[模型转换工具](https://www.mindspore.cn/lite/tutorial/zh-CN/r0.7/use/converter_tool.html)将.mindir模型转换成.ms格式。 +如果预置模型已经满足你要求,请跳过本章节。 如果你需要对MindSpore提供的模型进行重训,重训完成后,需要将模型导出为[.mindir格式](https://www.mindspore.cn/tutorial/zh-CN/r.07/use/saving_and_loading_model_parameters.html#mindir)。然后使用MindSpore Lite[模型转换工具](https://www.mindspore.cn/lite/tutorial/zh-CN/r0.7/use/converter_tool.html)将.mindir模型转换成.ms格式。 -以MindSpore MobilenetV2模型为例,如下脚本将其转换为MindSpore Lite模型用于端侧推理。 +以mobilenetv2模型为例,如下脚本将其转换为MindSpore Lite模型用于端侧推理。 ```bash -./converter_lite --fmk=MS --modelFile=mobilenet_v2.mindir --outputFile=mobilenet_v2.ms +./converter_lite --fmk=MS --modelFile=mobilenetv2.mindir --outputFile=mobilenetv2.ms ``` ## 部署应用 -接下来介绍如何构建和执行mindspore Lite端侧图像分类任务。 +接下来介绍如何构建和执行MindSpore Lite端侧图像分类任务。 ### 运行依赖 - Android Studio >= 3.2 (推荐4.0以上版本) - NDK 21.3 -- CMake +- CMake 3.10.2 - Android SDK >= 26 - OpenCV >= 4.0.0 (本示例代码已包含) @@ -83,9 +83,9 @@ MindSpore Model Zoo中图像分类模型可[在此下载](#TODO)。 ![install](../images/lite_quick_start_install.png) - 如下图所示,成功识别出图中内容是键盘和鼠标。 + 识别结果如下图所示。 - ![result](../images/lite_quick_start_app_result.png) + ![result](../images/lite_quick_start_app_result.jpg) ## 示例程序详细说明 @@ -112,9 +112,7 @@ app | | └── model.ms # 存放模型文件 │ | │ ├── cpp # 模型加载和预测主要逻辑封装类 -| | ├── include # 存放MindSpore调用相关的头文件 -| | | └── ... -│ | | +| | ├── .. | | ├── MindSporeNetnative.cpp # MindSpore调用相关的JNI方法 │ | └── MindSporeNetnative.h # 头文件 │ | @@ -136,9 +134,21 @@ app ### 配置MindSpore Lite依赖项 -Android JNI层调用MindSpore C++ API时,需要相关库文件支持。可通过MindSpore Lite[源码编译](https://www.mindspore.cn/lite/docs/zh-CN/r0.7/deploy.html)生成`libmindspore-lite.so`库文件,或直接下载MindSpore Lite提供的已编译完成的AMR64、ARM32、x86等[软件包](#TODO)。 +Android JNI层调用MindSpore C++ API时,需要相关库文件支持。可通过MindSpore Lite[源码编译](https://www.mindspore.cn/lite/tutorial/zh-CN/r0.7/build.html)生成`libmindspore-lite.so`库文件。 + +本示例中,bulid过程由download.gradle文件配置自动下载`libmindspore-lite.so`以及OpenCV的`libopencv_java4.so`库文件,并放置在`app/libs/arm64-v8a`目录下。 + +注: 若自动下载失败,请手动下载相关库文件并将其放在对应位置: + +libmindspore-lite.so [下载链接](https://download.mindspore.cn/model_zoo/official/lite/lib/mindspore%20version%200.7/libmindspore-lite.so) + +libmindspore-lite include文件 [下载链接](https://download.mindspore.cn/model_zoo/official/lite/lib/mindspore%20version%200.7/include.zip) + +libopencv_java4.so [下载链接](https://download.mindspore.cn/model_zoo/official/lite/lib/opencv%204.4.0/libopencv_java4.so) + +libopencv include文件 [下载链接](https://download.mindspore.cn/model_zoo/official/lite/lib/opencv%204.4.0/include.zip) + -在Android Studio中将编译完成的`libmindspore-lite.so`库文件(可包含多个兼容架构),分别放置在APP工程的`app/libs/ARM64-V8a`(ARM64)或`app/libs/armeabi-v7a`(ARM32)目录下,并在应用的`build.gradle`文件中配置CMake编译支持,以及`arm64-v8a`和`armeabi-v7a`的编译支持。   ``` android{ @@ -156,7 +166,7 @@ android{ } ``` -在`app/CMakeLists.txt`文件中建立`.so`或`.a`库文件链接,如下所示。 +在`app/CMakeLists.txt`文件中建立`.so`库文件链接,如下所示。 ``` # Set MindSpore Lite Dependencies. @@ -182,7 +192,9 @@ target_link_libraries( ### 下载及部署模型文件 -从MindSpore Model Hub中下载模型文件,本示例程序中使用的终端图像分类模型文件为`mobilenet_v2.ms`,放置在`app/src/main/assets`工程目录下。 +从MindSpore Model Hub中下载模型文件,本示例程序中使用的终端图像分类模型文件为`mobilenetv2.ms`,同样通过`download.gradle`脚本在APP构建时自动下载,并放置在`app/src/main/assets`工程目录下。 + +注:若下载失败请手工下载模型文件,mobilenetv2.ms [下载链接](https://download.mindspore.cn/model_zoo/official/lite/mobilenetv2_openimage_lite/mobilenetv2.ms) ### 编写端侧推理代码 @@ -207,7 +219,6 @@ target_link_libraries( // Create context. lite::Context *context = new lite::Context; - context->cpu_bind_mode_ = lite::NO_BIND; context->device_ctx_.type = lite::DT_CPU; context->thread_num_ = numThread; //Specify the number of threads to run inference @@ -224,7 +235,7 @@ target_link_libraries( CreateSession(modelBuffer, bufferLen, ctx); session = mindspore::session::LiteSession::CreateSession(ctx); auto model = mindspore::lite::Model::Import(modelBuffer, bufferLen); - int ret = session->CompileGraph(model); // Compile Graph + int ret = session->CompileGraph(model); } ``` @@ -257,8 +268,8 @@ target_link_libraries( memcpy(inTensor->MutableData(), dataHWC, inputDims.channel * inputDims.width * inputDims.height * sizeof(float)); delete[] (dataHWC); - ``` - + ``` + 3. 对输入Tensor按照模型进行推理,获取输出Tensor,并进行后处理。 - 图执行,端测推理。 @@ -270,7 +281,7 @@ target_link_libraries( - 获取输出数据。 ```cpp - auto msOutputs = mSession->GetOutputs(); + auto msOutputs = mSession->GetOutputMapByNode(); std::string retStr = ProcessRunnetResult(msOutputs, ret); ``` @@ -288,19 +299,12 @@ target_link_libraries( int OUTPUTS_LEN = branch1_tensor[0]->ElementsNum(); - - MS_PRINT("OUTPUTS_LEN:%d", OUTPUTS_LEN); - float *temp_scores = static_cast(branch1_tensor[0]->MutableData()); - float scores[RET_CATEGORY_SUM]; for (int i = 0; i < RET_CATEGORY_SUM; ++i) { - if (temp_scores[i] > 0.5){ - MS_PRINT("MindSpore scores[%d] : [%f]", i, temp_scores[i]); - } - scores[i] = temp_scores[i]; - } - + scores[i] = temp_scores[i]; + } + // Converted to text information that needs to be displayed in the APP. std::string retStr = ""; if (runnetRet == 0) { @@ -308,12 +312,12 @@ target_link_libraries( if (scores[i] > 0.3){ retStr += g_labels_name_map[i]; retStr += ":"; - std::string score_str = std::to_string(scores[i]); + std::string score_str = std::to_string(scores[i]); retStr += score_str; retStr += ";"; } - } - } else { + } + else { MS_PRINT("MindSpore run net failed!"); for (int i = 0; i < RET_CATEGORY_SUM; ++i) { retStr += " :0.0;"; -- Gitee From a98f58133950de7fd0a2cad421cd8842b7e5a7c8 Mon Sep 17 00:00:00 2001 From: Chery <376067609@qq.com> Date: Mon, 31 Aug 2020 14:52:46 +0800 Subject: [PATCH 2/2] update title --- lite/tutorials/source_en/quick_start/quick_start.md | 4 ++-- lite/tutorials/source_zh_cn/quick_start/quick_start.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lite/tutorials/source_en/quick_start/quick_start.md b/lite/tutorials/source_en/quick_start/quick_start.md index c917c389d6..c16e319b95 100644 --- a/lite/tutorials/source_en/quick_start/quick_start.md +++ b/lite/tutorials/source_en/quick_start/quick_start.md @@ -1,8 +1,8 @@ -# Quick Start +# Implementing an Image Classification Application -- [Quick Start](#quick-start) +- [Implementing an Image Classification Application](#implementing-an-image-classification-application) - [Overview](#overview) - [Selecting a Model](#selecting-a-model) - [Converting a Model](#converting-a-model) diff --git a/lite/tutorials/source_zh_cn/quick_start/quick_start.md b/lite/tutorials/source_zh_cn/quick_start/quick_start.md index 10179235af..891b0165d3 100644 --- a/lite/tutorials/source_zh_cn/quick_start/quick_start.md +++ b/lite/tutorials/source_zh_cn/quick_start/quick_start.md @@ -1,8 +1,8 @@ -# 快速入门 +# 实现一个图像分类应用 -- [快速入门](#快速入门) +- [实现一个图像分类应用](#实现一个图像分类应用) - [概述](#概述) - [选择模型](#选择模型) - [转换模型](#转换模型) -- Gitee