From d3e511e4b1c6d49a124f23b45e90d3c550ebc405 Mon Sep 17 00:00:00 2001 From: supperthomas <78900636@qq.com> Date: Mon, 12 Oct 2020 21:40:05 +0800 Subject: [PATCH 1/2] [bsp/nrf5x] rebuild the readme and doc --- bsp/nrf5x/README.md | 117 +++++++++++++++++- bsp/nrf5x/docs/images/faq1.png | Bin 0 -> 5388 bytes .../docs/images/image-20201017190301705.png | Bin 0 -> 36795 bytes .../docs/images/image-20201017191936859.png | Bin 0 -> 44497 bytes .../docs/images/image-20201017192453525.png | Bin 0 -> 42370 bytes .../docs/images/image-20201017192639096.png | Bin 0 -> 11679 bytes .../docs/images/image-20201017192807997.png | Bin 0 -> 18194 bytes .../docs/images/image-20201017193633608.png | Bin 0 -> 73740 bytes .../docs/images/image-20201017194305048.png | Bin 0 -> 54991 bytes .../docs/images/image-20201017194935643.png | Bin 0 -> 26054 bytes bsp/nrf5x/docs/images/nimble.png | Bin 0 -> 54991 bytes bsp/nrf5x/docs/images/nrf52840.png | Bin 0 -> 70347 bytes bsp/nrf5x/docs/images/nrf_connect.jpg | Bin 0 -> 73740 bytes bsp/nrf5x/docs/images/softdevice_2.png | Bin 0 -> 36795 bytes bsp/nrf5x/docs/images/softdevice_erase.png | Bin 0 -> 26054 bytes .../docs/images/softdevice_menuconfig.png | Bin 0 -> 54403 bytes bsp/nrf5x/nrf52840/README.md | 77 ++++++++++++ 17 files changed, 191 insertions(+), 3 deletions(-) create mode 100644 bsp/nrf5x/docs/images/faq1.png create mode 100644 bsp/nrf5x/docs/images/image-20201017190301705.png create mode 100644 bsp/nrf5x/docs/images/image-20201017191936859.png create mode 100644 bsp/nrf5x/docs/images/image-20201017192453525.png create mode 100644 bsp/nrf5x/docs/images/image-20201017192639096.png create mode 100644 bsp/nrf5x/docs/images/image-20201017192807997.png create mode 100644 bsp/nrf5x/docs/images/image-20201017193633608.png create mode 100644 bsp/nrf5x/docs/images/image-20201017194305048.png create mode 100644 bsp/nrf5x/docs/images/image-20201017194935643.png create mode 100644 bsp/nrf5x/docs/images/nimble.png create mode 100644 bsp/nrf5x/docs/images/nrf52840.png create mode 100644 bsp/nrf5x/docs/images/nrf_connect.jpg create mode 100644 bsp/nrf5x/docs/images/softdevice_2.png create mode 100644 bsp/nrf5x/docs/images/softdevice_erase.png create mode 100644 bsp/nrf5x/docs/images/softdevice_menuconfig.png create mode 100644 bsp/nrf5x/nrf52840/README.md diff --git a/bsp/nrf5x/README.md b/bsp/nrf5x/README.md index 6a590f4e09..a39c017e2c 100644 --- a/bsp/nrf5x/README.md +++ b/bsp/nrf5x/README.md @@ -1,6 +1,32 @@ -# nRF5x BSP 框架 +# nRF5x BSP 说明 -## 1. 目录结构 +## 简介 + + Nordic nRF5x 系列 MCU 应用广泛,且功能齐全、灵活性高,非常适用于 Bluetooth 低功耗蓝牙和 2.4 GHz 超低功耗无线应用。 + + 基于官方[sdk16.0](http://developer.nordicsemi.com/nRF5_SDK/nRF5_SDK_v16.x.x/nRF5_SDK_16.0.0_98a08e2.zip)版本的基础上,该BSP将官方的SDK和RT-THREAD生态结合,让开发者可以既可以基于官方的sdk开发自己的应用,也可以使用RT-Thread生态的软件包。 + + 目前支持硬件平台:`nrf52832(pca10040)`、`nrf52840`(pca10056) + + 在搭建bsp的时候,通过参考STM32的架构,预留出支持多种nordic芯片的框架,理论上可以支持更多的nordic的平台,限于目前社区小伙伴手上的开发板有限,如果您手上有相关nordic的开发板,欢迎添加对应的nordic的芯片的bsp。 + +Nordic nRF5x系列BSP 目前支持情况如下: + +| nordic主芯片 | 开发板名称 | bsp所在文件夹 | 备注 | +| ------------ | ------------------------------------------------------------ | ------------- | ---- | +| nrf52840 | 官方pca10056 | nrf52840 | | +| nrf52832 | 官方pca10040 | nrf52832 | | +| nrf52840 | [青风52840](https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-15118192232.5.46a15d490SURQ9&id=581711815379) | nrf52840 | | + +### 主要支持功能 + +- 支持官方softdevice的sample: ble_app_uart、ble_app_blinky、ble_app_hrs(softdevice是官方nordic的协议栈名称) +- 支持nimble的软件包及对应的sample +- 官方softdevice的sample和RT-THREAD驱动框架结合。 + + + +### 目录结构 ``` nrf5x @@ -22,4 +48,89 @@ nrf5x │ └───rtconfig.h ├───nrf52840 // nrf52840 BSP 工程 └───README.md -``` \ No newline at end of file +``` + +### 如何使用 + +#### RT-THREAD的使用 + + 默认的RT-THREAD工程是不带有蓝牙协议栈功能的,方便客户先搭建对应的bsp平台,后续可以选择任意协议栈运行蓝牙。 + + 默认的BSP是支持UART和GPIO的,烧入即可亮灯。 + +**准备工作** + +需要env环境和keil环境,并且对RT-THREAD使用稍微熟悉一些即可。 + +- 首先下载代码,`git clone https://github.com/RT-Thread/rt-thread.git` +- 进入到目录`rt-thread/bsp/nrf5x/nrf52840` +- 右击进入env命令行模式 +- menuconfig 选择需要加载的BSP配置并且保存 +- 执行`pkgs --update` 下载对应的硬件软件包(这里的HAL库采用软件包的方式,需要客户自行下载) +- 执行`scons --target=mdk5` 生成keil工程,烧入即可看到LED小灯闪烁 +- 需要注意的是,如果之前板子上已经烧入softdevice的话,烧入可能会出现烧不进的情况,需要将整颗芯片擦除之后再运行rt-thread裸工程 + +#### Softdevice 的使用 + +首先可以熟悉上述工程的运行,在上述运行的基础上,我们可以试着跑一下ble_app_beacon(这个在SDK16.0中的peripheral 的sample中) + +- menuconfig 进入Hardware Drivers Config, BLE STACK 选择Nordic softdevice + + + +- menuconfig 进入peripheral libraries and drivers目录中选中nrf5x_sdk + + + +- 进入目录选择对应的sample + + + +- 保存配置,然后`pkgs --update`, 执行`scons --target=mdk5` +- 打开keil 工程,softdevice的工程需要烧入官方的协议栈,所以先要烧入softdevice(如果之前已经烧入SDK16.0的softdevice,可以不用执行这一步,点击softdevice工程,烧入即可 + + + +- 重新选择rtthread工程,进行编译,烧入,通过串口看到如下的输出即代表成功 + + + +- 这个时候我们执行命令 `ble_app_beacon` 不同的sample对应不同的命令,看到如下log代表beacon已经跑起来了 + + + +- 这个时候用nrf connect 来测试可以搜索到对应的beacon + + + +#### nimble的使用 + +如果使用nimble就不能选择softdevice了,所以要清空之前的配置,为了防止误操作,可以选择将nrf52840的目录下面的内容全部执行`git reset --hard` 之后重复上述操作,然后执行`git clean -xfd`清理掉无效的文件 + +- menuconfig进入BLE STACK 选择nimble + +- menuconfig选择nimble + + + +- 进入Controller Configuration 选择nrf52840 +- 进入Bluetooth Samples 选择ble beacon sample +- 执行`pkgs --update` 下载需要的软件包 +- 执行`scons --target=mdk5` +- 打开keil工程烧入代码,这个时候需要注意的是,如果之前有softdevice存在flash中,需要擦除芯片中的softdevice。 +- 烧入之后执行cmd `ble_ibeacon` +- 之后用nrf connect 软件可以搜索到对应的beacon设备。 + + + +## FAQ: + +#### 1. 如果烧入的时候出现如下状况: + + + +说明板子上已经烧入了softdevice,需要擦除掉,才能烧入不带有softdevice的程序。 + +下面提供一种擦写softdevice的方法。在keil中选择softdevice Erase的FLASH算法,这个时候就烧写之前可以擦除之前的softdevice。 + + \ No newline at end of file diff --git a/bsp/nrf5x/docs/images/faq1.png b/bsp/nrf5x/docs/images/faq1.png new file mode 100644 index 0000000000000000000000000000000000000000..dad533cdf58f4b59dcff3c5aed9eb0cc85e7f5ea GIT binary patch literal 5388 zcma)AcT`i&zNJX-(z^x)1*G>9K)O`vNGKAj5P_g1Kq%4!@*yHk2%vz7N|W9NfuJ;{ zLx9kG@1fq{U2lDF-Sxe@-an_!{ATvd+54QeH`3Tpn}(8ul7N7KMps9}gn)q17=K+t zPKrN%wuyR2K)^JhtD$BF&)k@Vc$$=O6ttwU6d<91LCWPWw zerTkRei$Q>FkQ!J$JhM8!^m4UEGcE8TGtP^By$sko^L5Hb
OG`^HPQtL7
z8X6rga~<)XqostFO^N^jR5TVnM`_H!Ai$IZ0MOo5)zskn3b7#+1k6SdnQ64$1i!pG
zQJ7z~E))|%FdY&e?3nRQZ*B$#GU2Y-&O|R#L6+7??~Vj
zeDGp_VGIrWNC{Al7uNtV@C2=U>>pjcjb6MY1W&w4KAeS4etS>#-5g}4)ZiBSLg=!+
zm82ZE+R9v4AIM)SV0Zs O`t1A`$WP4{rDM
z9?gb~CBQDq^Pr7D2L@^~ih>IlgVJ{nQ~M2YcSrTbu7Y4<1Ne?h@f4_iSmz`x5e@3Z
zW9rLR>FWW;amp%ek73~ZYs5A8SpB}Fa!x9Pw(1OBmzXEoZpxtAjWQRyTV!z^l6vyb
zSLY`;K)%ci7NM#)
S{k6^SUqQ2d$K0t{y}m zKEs^;-GyJG)cK!6GoJ32lT`U7vJD+u3g^p__0}ciRjmQR3Jh5j((Ji^X$@ zj6fnGHHVSOycUc-VQ=$k@A~YXejK!AMS6cs==h5UCb)%opg|8|vjL4VfN}dm6WG24 zYKNC7{-7Xv2ipqr#9g^KUwL+ ~>QF8&O htDG|G4@DT<$eDTLOC0H8rOx7EA3ni+UcWEYUHHwJEA#(0_Y8d3E%VAP1QIY z1Y&|Na?0(&`X6qs2)|jB84s3j#^^26`}&iZw+Hj(W$+PelGoi%#Jeapo|9PF@}{y8 zK|GOhQCySZ $vAnoSX)oqKe`vsR_#aS412{;~Ba?87tnszEf z5VkYuy!6=+hcw#G>%a`Bs^zMUo5;~Sb= _d)aoX)L!nsy>LD)m${^$mXJR!>y?JvGcyqQq=TT`Fue{ zwCK|i+5>z#HmvES%pPBMpZ4YY+#YILuK1`T1{-_aZX+jP#%0^Mg(+r=#Wgz-IZDMq zsAV !*%96oMSpu3o9VSLRjiv~LQ&nO}#KJZ?*ZU|8VkXrc!N=3u zg{_=pby4igr=3mD26Eda7hsPT5wL5{AfhG51>wOV*Ib!f&f;e=h0Oll+j~^UC!G|C z18VMbJ+LL*uBbDCj{?^L|DA@3c;PCx2gnge?Os0844{GOXDmYYweaS^lY5EwdGd7A znFD4P$mHD~sEO5<(QPEMZU-rx1C6&++Wx7v7eb!77Su-|6KfQNd0y4)1&UrwauzLw z01BUIqFQ|?qMr~V>iv{M_&11--Y$Mmq#EnnUYfh|YOya2{5aftoS&!FCgH~=L*00y z@A%Eh7*QatpVv#d9W`whCU?xw_#W+pepEXmGbJRiU9LU+fWzWmX-jfBNzI{LlsJSv zh+|l9e=5m@>Ynr~^nv^6sl;9H(R$B=%6u`0E;m^!X9ZkQ#`*1p#`R9Gy2aOKfj!GW z37G?G2e8W|_($@%UUcvku?Pkw;T;f!0Nr{T@w vH7U%tYu z8jzAqjK_Q{;_uE?r~&pSM46e5%z7A(+@OkYn3)X~7}%c5@W#dnNE@WaMf`H1yjlJD z75U;Kw#kK*c9WsB%KHy)KCSDWG?LMvE?8oE+x%m!hE7R|+G6szUtSEf6Q6(dU)dU- z;WObv_`MzPyun@Q6F`4nyVOD6z1^|?Cl+LlXQ9~)Ia;Gtt07sus!h`Dhhw*AxYl;W zrq JMZ_78ee=A<{#~79R5X;#>Q!-?RSw zLuq|}k5^dv-iSn%jJ-Tj2A>;o@-Ec-pTDJE)+ubWEG0+N5?-2h;|U!@CV?uZN5Wj3 z_V@0N1j0dAi|iW`rs+diue=@<`cKz|Eqz7Ij!v(48@=I#K?euXyU?ZK1}R)Kjz3VQ z9u7e+)Z0X0hd_mgZkhL(T~F^akEhdCZw_Q!*fac@Bd?j9=S1daDZ89N$mF}5&Yr>g zscFMEOPY_;29~LTzq$<8Dt_JsY24rIh#Is5!F*=C3nhmW-$igQ6IH8r9p#`$z)-}$ z4g`z8_na^&d;h$y_!#_EacW}1I6;*L+O-;AUB#@P|Axz`vPLQSOk+r6A4oco%!T~` z+X5|4*p)gE?kfUb-jPMKh=aePr8y+oH{7a15$M)lZHNU_i%}FB9W85MK=#73K$QS< zb9$Dw3u~C`v?SU~-`rGEg(#5s#4UP|Uj9aEt0eR9HzeN*mE9=12!rJbLqi9UPK^B6 zHZM`l!z{Ut0n*rIsC~Dzwo9$Fk7!ce>J3A@OOK4%6U;TIMl{(mk&=Ja2%(|>&wc-} z|NkTe|Iemu8@T@As_>XSA0N(@buottScc(ru5K`Cco+~lE1$+?tcm|sG068th4tU% zI)+9>NJ>b++BK{rLb)s&2Izg9oMc^pHC0l%1pjyHhyOEmbtq_b-w0!LINy*CLGbbM zx!a0U?TTmpTO(u-bW{9asVaV31Mo>n1-0(~sWHOc7obGjH*!G&TU*<^oBDR!5983z z<>;siV6!_(@SicLuQq_A8;7PznPFklT1s!Y7xXN%YrEPDEvfx}3VZPwdG6B--EYMa z34VD4SX*{mm3DG^J5IDi`)?gXGb &(LidA)@!|^RsXA$fs03N19ZRzbY}BaHiCt zf5d)rX2dmJ2aZJv|M?Cbt2t~NenGA90yiHY({nWqgYj3NSI|bv3omBLEAp9a!+t!w zKf5=Xla~sGMC$XeJsSujE?4+}(iHjPc8-lnd@j2mx0vo`)85{SxIskLyw9f@Uvg%O zp~v9myhzbaSY~78Rc04lqOhfkM#GmNPVDtgkJ?fF?)p#Ja?x&=g6u5IMRFLu5xpBl zt&jur%g?;yTVPS`e-atGRTsBzn>sN#fX?GLZ*_gvCib-TH~$irvFxMivWM3cmfR!- z^dwR_8UH<^RL(>La{AGK6E5np$YlC;Q=U$7@&*gqfD3$Ixogl+Ew+X2_5V@gX#5d{ zT#B0BUu-wHpPMvXN=QkG&p0uYi t~U!p>vL(li#S$;8bEZimj z`YvgB|KYRyg@%p8WpL%4b8ih6`J*1Vkp{mYAe{}$zJ}jGRU>`%ZP% K0phcR62q_sqI`KJGr7S8!Ocz8ok6 z_KfA<^TKFX!BbZ00;MYSoqjSz6`#k!R -Qg%MGaAJ zM)zC{wykiCBuRaD>m18nyt}Y!Ro8az=$1M8P8qfn75C@d)k&g~qB4wJl4Sdz;5x2; zzm7h&daaWdWa^tH61UrFJ0H3TzWU|kzIFBcV&yIVHtNSuo}??K3SIm1ZK=?+ih^|9 z6@;p;rsjuE%0tD#&}Y29J(Sc94HeljS=$<~jT9|AS*n+~TVQGo6kzT6qjfi6iYi%8 z!zzBpj=KzbfG-ZXg}i3I0e5OMt7wo5Jj=pb#Vg%QUn7hD#-HRf6h$AKaci{SYj$iB zF-#OShNv376}$>eZ4)4va*4DHN%9aCq3*CwT?*A@_+h&bk!>aRvTzYVkn7;Wm%ySy zAf7yvw3oaiyJRmbxw-3eTgS-FzOX|56y6GC6|VFv8zJan!tihT8LkcWkB=uF^{viU zgM xn#M `48J$`sY3o4w4m>tEH0QuhYyr|Qzng|oISuTS9 ziJ;ozj7ywB2H_RSj+|oe<4K%hzSU9@zm3+|V6NSdMedjR9NU2dZVN9|6{gS`0FVjQ z7mW#BqCusK>E0LefByUl Ruft-aQ{g6LY6vB3G3_dE2)!rrouLRvs!Y+fls@ zBZA19cE?*TEc$5=*N=gn* yKA- zrn9|bE5>w6NFvI!MQpD^PkUMdE8S-fAF~3p%p--ZF1B5~H=7-h`Zf#~y?*3U+uMqu zPb(^NY_@# %Aeky1g|$oGE=tS4>o8Ts@y%Sm&&* zb5Y0EY=i_ycmh^b8B!cq`Y8%kdyZjFxjJBq?uwYTd2mySgWpGX6uE$Fx+t9ZF}qXv z+i=IyU3n!_FV2PIk-&{zpAm&A3l3D${(Q|yo~*2-`JLYPO@;dDL*H6~#{Is2g{>3L zm-#v^H}9gjh3`f&;j_?@53lc1hg6BW?gVp9O?$a{_e&N<0htzWqTFOJv`${K+LF)h z^33Y iy#pBlgiBaL4)!rX?1oM8n-5`HxFmPV`zJs#(xWG`*~mXh z^TDeFzVA6=sy0Sa$kHS9D|b_qYQrR~6ZgrXt;EIW8B1;q2xYD9B9GAX-6mA4h}jhb zmHCIecO7{&B!^d}JM5ZoeSTT%=EaJ{PF(DXip;dP<|sy>Cs$}j5l}K!k&-gQ1);aM z(Ib|OGMFY_MmR77Ow~Onpi!$*DJ(P?^&jl^{I;9J`qgd?>FU>3ZyCk`f%EVEw|daL zNcXQE72ABUF$s2|&G=y~ARd=SSABgH@DDt2==?8tzo=4;&ASTNZMwwUSUcddywgQL zX&5EIs)Yok@Mhfw dEu-?{bby!owGzr=YOwXeANOaoj<5f&|V8=O*8Tu5s9))F6m4hX;P zt`ss9(G-BB7YVkf56SjYob98Q!zvPHxrPirP^$ua&jrZ>7Mr%?LB@<6zkneK0;i9< zx+3eXZSm2okcX`NXRpkrUMCi3E(rJ!7^-Ma;X^z;k}ym?lY z%IW}w%Lq?Z>Z&I;k D_jV_(>f}?q4YO?(uv;- zyc&wer;;?_{r-g7uZ!_!IUMJ`>1{{ln~>v_!8&8F6RUWe-*|0Tq9WmfZ;v9W#)g#d zu7ZRuIc=om+eQ H-qhzq(1#cDJ!JC8^3_I8`E9d>i^sjSyIy zAa-K)9&X|B{#NE5?8#2)`ctj0+xh9t(|4JyeP4m=d-K2-@FZt))N#*^&TK0w=COFf zA4@Ls-b+D+m?jC7^p;bg@)PFmb)E|tW*QU!8u%Hau)A6b?y0KS73rBRXnH7h0iCP( zg1gR-1> 8kRs41U)lF&Gy0n>2j&0fk+@~PXJCB3Ms{CTDdpC5-6 zA3tMXnRpy9 aX z 2&5LlI#u^vyS^Wofn(J@s+H7!y7=kKSI(XQ{zchY z457HR7YKI>xp2lgIMlR#(rIdE8c0AmB7R@(pQz({%UFA@xDO6Kc&0+xe#!`y2oP4| zKG?sQH8wwFI9fD728<7p?&s^&Wa4OVye0LS7&l`hdL;Bh|GAa1EkK`?W)69$SC7>` zx6$q7^K%y%>-u>-A~KCDIa2FGH`Pc1qM7D<=AW4%)Ki~n@wan^QW1RKzxx)!6=VEM zM*D=OvR=yI vXz=ZBY6rN%^QNKkd1$7gDQ z_(z9^*ZRlM>y E^qEFl5`9R`UEo25|uUuI+?;A;>9~uT#=`S z$#X(Qq%QW8o8#*5rR6 jfGN;w&6yV z-slJzz`Igizau4b7v>Q@=Ne+=B4&}>!M&HgwxhrKy_x{U6oJO<+LWhK9*Wo}XA3xv z0uZaqoqcfen+!1z(e|#2%tRK~yKDw!o+Sl@&!KaPrA*k6Mr*#;)6h0H?#bbh#q)IZ z$3LL@)D!!BQ^87Akww|U@-gb-)i17m4XcY!i(z9g?uK~(oY`RPP=-l^BJu(Ak0N_( z;7bQVr)2u(6x!9quviKGN` w5vkhhp5RcB!ycRPz`JFh;*D(J%nEAsB z1C=x|tm-F?%>ZF=Ty1=Uggw)lwLNhJZ`WBDkIkyLLMnoa`Muc|l^cj&A8oXiU11kU zKDMh{ AX2i88`YKcI%6)#G3 z?IBAGl5kT_hpVVFEK{lV+*nfC=>U(kH6-cj6WrvBT5NMYG~1M=)gC`;UwDe?zmpN# zCH=xJ)#|;OtF UH+Y8N$W zQ9J0^j )^TC{G=Uuiqvb=M7 `0_Ve8NVR81j3ZZ~93eXaO%NN=K4Q2uUt< FjN>OqgZN%C|ro#4<=xsLzd zX-(eT+&~E%hNXKdlo&PD0G3=}oG{wTkg<^8#?z!3!1G*K!Jk1uYYJ_4eQig$5E^*9 zb5H{=aVFJ!S1(BKr{q$gnc>U6v}p0_7%rl(QM*Dv;pcvPp&I0EW~ %lK~f`ntg`GmI7)-t 3ymC#*!gY3o=%$m4b!E;m&M8Vi4 z{F(yI{a)iHbD=owFcHF;IG)4dnEZ(9`AwRB#_!PH$({v$&XOF 9+j>u`FB?PMo`tK)j;5t!P%kn z$Dc?Aw$t0HSzzm_kCx2R@8c+f@vGIUSBKauN43&K?RWcKUwt3Pt&r0uZiJXGaVl?9 z>#J;U-UzF%jFwv*j7En)9Qv@M+++TFE?QVwC-n3Rn7n-qDR|@F> cuG=v#HT?3r{ysYkZMNSE1b>>Y{lFSp6Tp-`RJoOtFbx^)RWZ6s;6lVw$U0N zQ6KfGz(0aq=gUX5d} NiA2$UjP9uLWl?bHN_u}^32U}>xb}dWUg7 7a&g&env|hlepr+^N9 zki#2}7dL0dv66;tNHC<8v=I zV9=&+=OPyEyL-(gkT$cvu1)XYg7RFwC^}31uf886W$ispdG60G85v^x8dsK9t+4K& z*;vpg-jaK1>xi6q2(}wt7P$MuvQy@Pk@O*W^}G~f=g*(!*{|Bj+9xZS4coIyf#J8Z z_}8jMV6vnL^KDbM<7-VajW0~He9!+ZAubL!tV P#Sf-um&>`Q7M`wYAtBc)F`CTms4B)L}h pM`!_rMXN-%04T>S%^E*l9-sfxS21y&LJ#>WEaJpe#_o(_$PO7}rBR5b; zpK=D~#Pwsbw4J2wP3nu6@D<8f1t64o3zbn?K4~tj1geUb1+JWZ#9}aW%yWMVZt!JZ z0pcBINZkL3%3d;V1RY)D4h;NcEy09Y0s5?f&Q3wl#AOT9ba-js6%ou! H2FqWD2sy!kme>0DJ*_XfrP zkPkDxCX2pWSn)_gRK{V14W#4+1^wX5?b3@ZUXo@yr @3>fOSeufi zle)#A^@e9C1k0I!w#dAl6@!QNmd*skPF-1x3Y3U;>d|{kqiE5JZ|tkkJ6&4Zg07%i zhMAF`(nc?}6OM1H#2NnC6QMA8>Y7|i-_a$`H$A9ZjcF6twQW`%0nBWshxqBl*dfNL zoNRDbEHNpy!}V!M)R3&a=N~_yOPTl2+{LXl-zoKds>#L6%oJ%sfBH`gP)jDGNuq!C zxuHA6?CrleEVv1M%=8thlsFUR={@EZ*lW=jR^v)ckFgx}`uddBNBi17v>c?#^>a%c z2z?$u1ShZr<`nEE4BqKnpibU xnlC z<$cDWt&w7?^-4d{cBXne2z>LqBL0UO^2cD*L0MgVLHMW>BW(TgH`%Zu^8> z^Za@nxDRGYh<19K*e>rzJnFd_Nm*jM^#%KDycPwHwO=~rT_qf3Xxu~LT=+awqNkXX zu4%yfD~vlml=P6oFmPLYxGZ+vV}?*s&|PmL9@!H3wa5rwMx)cur-}L&WL&GgYF>fF zusKs*T8zyhy%u~HV@ev9RwRWsWz8SIeDA!xrLcEq?xpV@+JSv6GPuvzs~KWGn;70c zwL^6V{{k~2GP0Uhq~iZWLyNWz7r-#PK#Bd6v)jo$#q*sM`(S3?^)0Y3CW(>zb0`gA z`Pe#?YG8=BnLjvlqaw+N2#vp)V7lqS{B`$mw`*B#8FLQV%Gw-{n6t-Azue;9k;3kB zx5O-V(#2fv9>LQR0!hV0%rau%7lSe}(RU9g{^WGNHzoI6DC2))0g%R%fri0APRIj| z&DjM7MYz)czW-1o2k|qnvW%=LY4)4e29qxaqkwRxZ%5T36AnF>vUrW|J~%P$quS&F z3=Akx5trnZ7 }e@WID7159QGUrmYYFHcJiI{{p?8u?)(cBkYL*T_`Ven~6g03kvNP)V$j8 zYLcif5hKF1mGB7Pb#iDocq8e9%_Gz_9__Xa-_#0G>i@C;q&T{LjQRQ c0DBfCKQWkAP3-s)?ch&@n?7*l+yJqzI6;Bo@<@wV1%FWLY7oWa% z*o|QV-1Id@Hp~3nXG&jHf8CO>ypB5F9U%~Kfur bL6jZ8;N)fOiO#$h>N$ (5AhUN8dFgc`d4E!bf5GLTgva{JN6>RILL#DFG~Ap3bnV);UnBAiZ}{A0 zzP@y!x_Y7a>yz%V*ph9^=LV$GgV+6E7;WtJ*X$p{`k{^=h%`*nZjNSmwFlnMek{&w z62jubSv&AO7A X*gbBx z7u!8UWTYHBA6~y(%=6-PxA_C+d$Q!UJraE^K}#!6ECDZA!dw7jFf_$7V@|rVtYY~E zhuq|DwWqzddaT^6&6%o9p6Jdw<5)ghO+sCoRK|F?hlgXLw_*X-YWuA0>Ze%Ur$S}n>=(sub(-8SatBE5Jw@dfR>{>AFdJqlr$RSQ7XYrXcw zG<1?~RQMX2xd#XqTsK$6Q8Z)lpnsZ|%1B9bGC%x9=aca*@9oV)6Y-c=xcFir=$@!x zQB}M|_kE9N>Z=a`jHaV2ZsuO;2Zo*KbDZCslX%OLYa56zGhYfk-#P#A^{dp@d>gG_ z8~wsL?g-#nz#g=<-@SxzEmVr$LRVLLYqQ&@hMH%2DoBrY*F9YY+b*WqYmQyYpJz2M z?Fg1{c(6Lm uJ`{Fx-K- 1g>gj~-~z4G$8PzZMHlUu)i`jq3&=AoW= zjO*`?)WsGYbSBNv_wAPWi)m_$fBi9^83^CgEDe-u3cR8D{Vf|iduN9C{M+E*i+2TG zK`?RblkK)6Gso%Lt72keOG6Br8ak+jP(W+eX!QjeLM}|gz%!BYOxrnXm<9F+KfT!d zbQY!EW40rHr3Wy{v?PN+8hn|>`I ^T*<_)lhJI2{qHJGalWV z&!dx6*Zn>L;@i^4&Qg1-Hk6)S(;Wc0X|_VC3CUNP$~`DyF7u(wbOk|UCo#v`?aim2 zEK`8Dd~7X!yy{){t3ijp%PpR7Q0{fbQhrBpf$XpdLsj>lZd|xk^~%Un%ak8)o!MtP z@1~BESGl#K<2s4z+t=(A3deS(mX5
g3YWDXV5&AQ&Sl zH|dBylW{r;GrYG-a4#Fnd|j5wNmKJW31LVQJ&W1{sgA6E9+`?m^JFM6^|mv#2>5O` ztZhp*jXf2A0e&$ A?$?Tv`5p1aXC~V{Q@*U&v=K^)P zmlKL(0}LCSG%T^^ra0kp$2m(ZdQJ!ejDxGI#2X3vx?;7DdsfTTwP%ZfhDoPp%is(v zIjKo_Zmq6Nun6KJDj8m9N<3;`GfyIH^S4wk-oIo08b3d@>}F 0-Ihd6veaAETgDX{m3BnhSD7 z@N5He{lGbF_W}hI@34OEY4Xaml^oR{aIH|%%!{||BBqJub;-}JUBfGU2|v7x)m90= zF;e3=kM3DeD^1?Xu{viG4IHSu1bC_3AN|9koqK3~K()Rvk@fP-m1mrdqU7fHuGmc$ zvL2g|;XeQ`YKMz%<}GAT!OX5nshP43`AL;8SVx>bT4MA~OF+ao2r%;`plV0v2`3Is z4>$zqU45)om%UFe*@4lgt@v3tf mJXci0m#Bh@1)V`+Od8)W}QVT%Z)xO7q+DH#Tm;1( w~vhVh Fcplcv6S08v>QHKa2FNz>7 i0o+xZw98(fs>cMS-<`i_q@U}R!?*@5*ZeD}=epY< $}}rKA|UR*9?D1aq2t`)LiVRm6oercfL#;7ACQ2`pvmo# zTDsr`V7mU+rx+uyc@zH8rNW5+WDWVVSq*bO({glN+y{<6TIhWfY2p;l_})ZE<0b*) zcVeYSSD(NA(8509sMX{|i4>9-;|zUwmt3 ldd;KhAIv*xc91XC-KGgll=09nzbey!uHG2#*gC?&}r+2u!}(6wY%Fr zxVO$~A1&XFM$-qF V%u7)XD0-Uq=K_J&D?A90kibSW`MlO;VP)78nYe^ZGPl!9{fYv3|CH9Wy zE5?1JygGbB^^FMse8QMNjgsP`rlyX~f3?!J38X;LP$9{~;J^NomK+; UxI9QZ=X@&7H-@yLOK$hG1A z^EpU!0SjA$hUlnU8|%cNM&72dUv2wCB1=)fyW# (FmsX%*z zt|v0K@ii4qR+Wv5cRv8{ahtibJEKSC>I}SOs+^G}t=Ts@Ee@SnwGeS>e2|$ 3&u&X)&(K&31+2oYZpN>bG>HhA;RR715u{vBu^*8`U*e)l)mq$h&9Jl(D{wYPi)B z-;7b9m~kFycZL?8cTEw)f$y4ijT+2D)@Msw7=itF=lSjo1PQc!l2xrg%OKfj`*)zy z(=4cz*#-3BuX+^bGtvgtj(UE?0CHueNf%WT5E$P)?yaGT5mXB_IcJ7I)`H8@=~+Nm z?lBiY$&&QJW*#kfN6Kc@kd?hR6O#Omki-y1=81`EO}Kf={aILC>?@=0d4=KliK|AQ zzgn%MutPpu z)t(El)vgEWxW23}ZEr!5eR1KXdyw8 xBs*qKI zc}3Sj9CmOrR3)Tyr?~b&4B}VWGKxJsWMO`N5d_6-GzW}+O`U90SHsqC!NIXQpBF4P zGK=CcrDing6sMi&`5QHp^bOGYLzwgEq6^=UM*oFA74brU{pbNjcE6)!Lb4jFb_R!q z#0+Pwht`|bBEF~XN%C|@_aiTZqZQBme9I*?eD76EGn=m@$3OgqJBfxyug%YyhZ~a& zdMGN7$2VGFLLTP`m&hUyk)Ir}>?`{Lz}}6d#LPL2{j9p%!G6}dz3aH5p@k^4(eerd z=y*aoWaSjz<2%gd|M*0&E!ImW8ch9-S&_&-;|{z%?sJgZ_fkF5E`*Vv-6zcBor1T0 z?&fCReaDAS6#X2ARB1Na%O6OlHO@C{?u}U3WY1=$Y70N<7I-ap2y;0-%&LI?H1I6) zxEC*Y0hCm3?~sRUs!?FL`$;KQg$dS@t&k1+QZ*)Qz)X6mo6g@S?&0z(roAt GB6v_M*cz8uVbU? z86RD3;~UOvgPsvn1_otSj0;aGZ=h1%UjT84+zLF`D3M67Jjm)~JDk-#JFHW!&J^BZ zv%z=6s>? KdZ zX2$IX#CJG!aDf&33Ym<4*`Ryb!EN2~0!?TVKOy|!ZM5h+|FBP={?P9<8g2{w`Pr|) zx@KKNJW_V^RrdiALkIR$vA1{xLxM$4L(X{D<80*>BdOOs$_`sS%4SqNnCmtKW(tbB zrjtZ`hPc;Z*V~#=Ol|zWxrZu=`4&b{RBd7H#_Q&O-EGL+>pp_rIq_lK<*2}g#0RQy zpSCrAlHs CHmSdM<%hJi}T#g z&)_1s-GF=bmUM40vMFM68h*2O(&j{w9W!XnzSlzb(9?gWp+KR;STw251P%_I-P&*G ze7M?P2RVQLeWyaL2570G`B?i*!<@Zoz{+Ki2?FmIE=<{&k2M +LyPp NMI!=mnx$!s 5AwLXur-1v2i?qtou=b zGc+p$g6&rhakva>Y?ZaLw6y&id|5bfe*bDqZ*Olis($7h$ zC+828(^QaRmglJUlMRhNLN#h?o+X=~al01m0HH lR0z$C-mbMv*6g@a3`i z<-!@TlV?0mUA*M#O(xrejS-_}54%PSf}kD^-TY@(4u{FZoY0#*)w;E{3c40<2~-}) zOrx_SAEzYCQR+cz(=y5qr;6#%FJrEi(YeSE4F_Z6f`52L9ws^tdOdoehcftVmdY#T zsSGbxiH$F`I~jtI=s4>XT-$r*;KFWN_-JU+7zO^cE41P|UNW71g8XT?FvAV{V)aNV zwz6rB<^zL-Ss-?1;Ts(}NG84X-CQ+^y0h`l8zI9E_7+|GZ-W}0*s4UUpLhJ64(_B{ zY?pKr`O!EV*V)BfTd}c~!aZZ}$to+K=98KmvtVbBWny>y?I 2H7d3c71etDgK!NkhYtE>mP` p9WcTtu^9wD7~CA-4%d z6}32fr066=vFJxVRR7@{L00)}G 3=hJ0Vmhgoiw5|V0`e{P->p0ID| z+w%f*G+5FuWY)>_CppJ-->0I^R`vW)zE_j fh@88N6> zQcbz7J#nU}R6bo)9dolbh_(W>SbbaD6ou_uL^UiVdg!mq5`eB3Wi3C^G8HNBHPUBS zHi6bx{4^ 8<`20O>{CY%$;_$a@)TNGTC!(_KYVqWAC*bWtTX;^T=#Y zT1&qGXWN_^i1Y2lr`kK;WjJ3Nv0eP~+7CUUj|NDtBF08=nJ_3KCON&Z4*4uY3ij0~ zN4;!}S3LBV NxO `u;F0QH1=(B?I-XRO}?HaZ^ zUhvsNI7-iHlCn^dD5(F-#H(Gzgl??LJ6it=wS?|s@cHXL)fOd~#8LW7e&<=1w86rz zt}eX~EuP59%?kvQ-xcpxJ?VdND T}L?Is=t 7mc-o1FT{0Ih zgTfxI*-H&ekHp5uF}%G4SM2LGFHYyL$U{>IuB@UypZ!v54a~Vc%dpJ?0-;d-Vj>>6 zS%G(4y0%kTQeiOSJ&i@K=d4kc`^aCa<+gjO2st@fuRLOkQ?wVXgguV#x8#2Hht5&S z0>20pJYfpb)TQNxPK4+Xl;}v!6Y9RH{mQ{M%Og_;Jv8kA=Ewg2+SGa7?&~ICsqX0w zz+-+h%3Vd;$MdoNm^z4!Ptnb*lVUdOO70#Q4L*I7nqjpWRA)|I%0D=^HyU-k2?BA* z<6ZtoT@ij@+7*T#lrsQsCiON{mbOuW2(%d6{lp(cp`aUcEumt{$%n%ErCj~H#M>qI zDwV;RS53w0Fgv@`9KHEGsXWbktYI@obrziuZt0246Q21O+(xlarK0@E5&=h8p2Vc8 zF{ic8lQGK6zR(o?y6=Nii}UQWRY4j9 `Bxl0X@Uw5+Fyh~V|E8XhMl(dMQ1<;EPx11ZzQbM*=Yf&8 z-OlU#M*fTCIM)?wX{R!NcC8nuB }2l;Ts8UohYV3x#^Q z{Zv38eSUx?2bt?lOepQ1P5Zra`d@8*LV0q6IEU&)mL9+W`bC-GPCs%D1;`tUn=9w@ zhI&eBOgwMIjpa`ZN27_@T! vx9`5X?Cpr^7xzJ%Cq z#LthQd$9-F>9VB`;e3Y3QmeN}czr^8 `SyRD>o?My(L%cU;w#R zkagmv^IpyDy{IU1P!Rtwp-@f<33DLu-qoh-BIr8HL5_Fkv<1uaJGbb!OYX1nyc5ux zOD|taoHLr~T9 `5p_ @oqG+JZ(Kyit}-QF5 cZc86P2_V)I%jDVh@6uY;# zhljhd@q%WCiLz{LbXDIeZ0yU}K9lnia|AYLmydJCuhz_#AIRTfo7)k7KfXIQ&83~u zl8AIuBi>fdc00dd3A`1OhRf7O6f*vAk2rZ<2WGt91LH4|MbQYziTm!|yIN1Ao*0mC zBQ_tq-J&iXMsn4`6+}S|q?KhesiM38e!n`AV{Cfbag|$@AE1h&(e%YY)(!X*f8bJ0 zRaI4k5Q3nH7em7q+77&d7H^%sz#0zE6WBOZSV5GIfPwjaM!<0G>GNriFr`~RD_)US zI23e*e|`hTf G3NRklbtma+HBUA`@a`b2G)j zVIq2 5Hj}B6S(EFlz6B(hR89UzKVh#_Uo;I3*!^^yP=IQ(KqSd0(9nUi~ zyi7eyyz=r+JGN3Tnx0+JZ+}pr h}Puj%e=~yi-L#A z=mE>$ rjIa*OwHDS >(- zp~55p<5w6}=gQQCq_)AR*4;niT^?f(Q4b)cS&%u-WOqpTNzK%Y*+Ge}ffl3x8fzA@ zP?8=1o)iM8K5UeN{sG`MzHNUy;jBA8&nyM>wW%yX{QH$xs_>?7a*JQ|iU8L`V_D@$ z9X=*~DOhObzX$Ij0qt6N+}@DM3pCGwQ#CcaxnRgfxWLY+{kQtFiW^{o9qOj7{mWWQ zMWr`u2vw5SMo8r2U*7xwYN%-gY}6)Q`)?=cud;FVlpXy?hWh1yY^d`uvyqoOX4JGn zu(Aa!2^+TqJ(nJ^QwvEG@5OCNQ#T~A@Qh^sG*pJSpd>&br*427{pv4mHezizH{LPh ze#~K3T0tH_Wxl2wo-i?o6JEvIFglQ<_{OWXR;}z(*Oc@Ilo*l<5$cag)I(p;$07M0 zN6OQ}jde`*cQkE&jvE4bfqU(=oHDvGfEgW~oyQ(p^-el=i>JnES(Q}ongmX@Q!wuW zdwTc)Dd0=h|AF4S3;zl9{_ybiZWDmKLoBH?XInYk!|3~6ICubzW#_qHJNb&_iD4Ib z0R;LL2K4zUqDU}uoc`wQ|HU@f&+coN1Q!_Rmp2(LDhQJd9@;4W%DQ`*&BX>VDC5D{ zN7y!<$XXLdO;FG<7oe-2UW0686dh7s`yu-#9BdzP@_zY)jsUYmqgBIX{qBiIWpc%% zX^o94kxH%0NH6f=mCL&GBU`;sflihJu*{{8{{hUc?Idw`;DxF<^Po}^a2qCeoeu_K z4rW=qFB}#72C8j;qugKr4dv1mt?tI0{TRkx0@)G(u;&WntJdl#6*hsya=LFJEGDie zW0$Q80&<>Yty&jIG;3@Iz+dD?WlcsAp_?6=IAC@i#>6_?Hb|vFj~7Uv*?H!9=rD}S zX{Mb3v`7lb!}sphj51p(zd_bL42|)h9JMksPOC8S19XPQpLj)GE}7@x$2iU4f FrdO zBL;l%R_)$PE@B1{m2REXzJ5GQ JdO$&sb>SC)P5v4+HZVPH?KsAg&!078 LJQZOP$EaUKaqpF68( zCq6OEUFrz$|1IxtdPA`pc+F*Ee0*b$^BWx-C^QW)ZPN^)Y4pzsE$Mlb#}I3F(stGK zD~1|$LDWDvTE_EV_a2#{-`bGtI6GHb4 {cAstD%^ Csob^Q1 zEo6b>O`V4E6O|%f)qd}7i)^>N*(~bSsd;>J(!cu7HQe4+uC_dRO#Yy~lr+^mCcAu^ zovpl{#lgN*+_XV {hepR7E #cBCR#Da`wjI#T*LRd6*3)#n&AXsiA?t) z0qKi_*+A@Jr0Ahbo4oIEUwyGN;+bk$a#0=f1}}SHSl@m KGfBVK9E^?Kxuz_Auf5Q*n@f_5WAX{V&x-BxWC1 zTNh ;U=QLq@+DVM19yvjP NPQ_kuX@A_#&$2v$wd%JbwKVT zScSfdy?v=8f0~w-7O&%vr}!m7US8Yf?{BB;9FhPOy{MG*pZOK1KYr!&fAcH$|K6|U z5Z9h7_NAm2o(!R)({rW_jqASJfaPbrA~^xclt<@dgTg*>Tg5_v`goBt-RfTwfIKFA zS5+Zl4w7V1DN@U@uby(WcXad+BPz|wk-EcSGF)lea buY}j^w z|IQ-Z_w%zTlgcjWOF?IPPIuv?Ew1av+?F3j>2*BJ{|oJJllwT8bTIVLY@>*7Z0=qF z39Ho-&U0&$NA2WDdw#|o_TO-Na#mCp55SH0N&^$Y+2Og5SeYemaMs4f$3ZoOoQ%Q& zR)wMEMpm_o)i1<65EBPUhQHk`jcMrI?9dM=s#s4I4g00|R}2}IxNmlbIT)ToI!`_w zlbwLz64bg6#?%?ob825h0O=kmUx4*(j&~oTG~x7O;~gGSrg 1=g(=|5H@L=sC zwM`(U@zzgQ{HOQaPPSfSfY2LVeSLV!-{tAZ6h4PU#*&f}MT_pJ2|yI2ymhMpF!;#X zCU?IhRNM=)>-c*gNRL-r^&bFs;4v#}iSCPY+*t?3@AZBermC@I262A_U@!Q4AWJgi z+(hqvd}Ado-!)?pWu`9mE(?`F$bbVNGh(XFF`T5-+>GyY{#^1FF;*1a9lX5!l1|)T zP-O}KTarKDZO$}QwV&=Oo`0`(S% zb^|~mP+X~apBkAnluS0cFCcn4IcTsDSV}MTxA6WUVB%H6v*?c5-p2qJE^6JpIi?FY z@ouZMkC@zqd6lir8p8ITc3$>~0D>CC=3Rg=2bDip>S!;>qU9yVz~{xgMrwbwIa*NzG=Edu3V zkr96;#B&W5;9QvBgC_O>c%xOR{7y!K7Wmf_6hW!2rS;&qG%E)fM&J(uuv|aj3_Xv% zpNfj!Z$#wqPmH*t2?SZt0C}mpq8X}y9QBH^en;CCn`1?ff#ZAzmVWp2Pgk_0(^R!A zaKet;Ek #?cT+1(w9*JeSW=j(Muh;WJ1 z93UQ})&b7Z)>6$ja35bkNy~`c`d`16I`A9DfT8{f;5$J1GK8dPe@#Gyn9w&b04OX_ zW{=ZlUZSS!N=r&wGkme%I*IE7GMF;50xJV8G2R;F!uLO1Uh$HX6+R>4%P8FQ@X_ zX*Eg%H`8r|(N+ |erlsw@`B`d(8z;uBz =+}Gmi zF55i506FxGA3gW19-@SnRAUG~WS%zCr#v0N0x%dTjW;}7O2c2$8EQq(L#!gBw2p9a zM7MzHFeih*hUOCKpI@4J;}W%j; uZQdJM@3^N9;9*Qt z9Q?(-2Nm;>7CFtm-McKHAYM<^83snPbi*xAU+Y)aY4Ev`$w4X_d|z#NsMZr^h=3>Y zqf)Uso2Q7Q$C4XRoh9X2hn^g!u$(*wCSXjY;oo=};AP%>FJ~DIcUbY8TF}|jLLeS4 zkzPR|X1_+GNA#m!+
^HtGS->q>9Rh)@n}gF9x~Fk0|0 $;HmMcsqPVK)^U= z(r}n8j{zhj0QKM(pJTdXvRjY32mSmTX7*O*bi9^pw@*rR{W{9)x{U<}eO=27$9J?4 zE>S%xBy9;0BVilIvG(bfu$6)jqnW*8bpgB9?4^f}$h-6#fmarOFVjQNi!yD8S}v;+ zP1={cp0#-3MJ~@4J~za(RmS?A(u(tA1#>i2;lRv*8 +0trrvhGU5CoM+D=*Z>`dKOq9L1Y^3(oq;8+%BFM;=FLY;2T_S-|HH}{t$n~>v z5CrJO?|bNXlr%(RnH9BaC)+c#%~5gNCw3nuB@FU98-C385wY-`B=4Du$pK*va~3p$ z1G(43>gkIi41;YgP%@X92{zwrdS4NPsqGa-d!k`1W*9&q;|( &%h#SQ$rA%b ze%fE?U)^@lH#JQUYl_V%<2`N`%%~_6NM%rtT@IULvT3)9ii{h|BrR=Yd^C?=N4Kv% zbfe9^0=nLlM}!#8k!E9M9eGd9qob*rQ(euicn0CU9Mo^hU`2|2v{}1glm&S?8L!R= z*(tw$UTcQLnpCjPG%F>V(Ujx*z;?NNv$W$G-1R3xD6pMty2qzNG3M}%0#-wU+KuXD z(&5rTe zu+qTE{yLCTtSpXM9Z`^Ere$SSFz<(CPZ_jUP32X@ GugZL z-}h&y+sQefKdK1e+sJj+(C_|cVHVy=9T--5bm&`ALn&(L*=jr>LN&Z!ZwdWjSKS z8wwL|WpA?&S>wzoY9^!lcIQA$S?*xty2qXlek~*sko|B^fK?7jqR8obr!>YAKvc!R z&QI0bfHYBkJw3w!t^riog{R>}pzF_%)CxG}tG>oDBPzDU1K6fLy0arkd#NByihqK- zd~=4}?tD5^yp@ g={Mm1WL_rZ06A75zxFU3)a)bSL<^!ylJUnX{^L{@QO(q<+qgZ|P z+$kxOrc8`;4pHjnGvn3Gc!S;g$5_RoU!~!me}lK$mCr89F@+ATX703W>t@bXHOk2F z4-*cYbC%|d;>70DEUUdjik(&i0KDE?0r-NMNUSw$n`!g=%F)Fc=Ol5QLTBfoGT3B2 zT_(4a1j45OD#K`STwmX;yjjnQv~)VVE;Z+JG`A%=NI24Nd$vjS41*pUNa4}d(<_AH z&{Z_T9>oEGN45vzGcc$-vjlIVYW^#w=%6HBv_quAX2#nEYYbAvyAUUjBPrPfB}V4A zu1-!NxvhLg#TL2wBwR9Y|KvRIS-4FUj?1mMzjQ6pey*H=h^%owO@%2Mt~pku4zG8b zsrBA5gPiVmPq#x_n!R@_;pTy+0F)(_AHe%QikO## +43EzhJ{5Q!0Otu+ahhJd;M%29FqW0cr-_~MsZ prw)>?Q0QVmO o+}qjhL)R%M8HS0ifwmU~A)p zIl-4f^VqZVqO)!%%t%PI-S`o9V-B%Wxkn}8goh-H?_O>@O^$c3m#{WR0^u;@nRA+2 zp6>s^Ivr#6vQxCauGdC9Bg}5#(O;*`dY)}^G-OuX4ffV-7&G4}IkhUqVbaUe|L}*q zLz%}~CpG7saBL!QL{bJF;EMscQTmta+zb14e_17!w-=4U!yF4d7ztv&!6Fm?fmXn; z)%+v$>2D+os=#ZsKq2`{W `b%biN?LB zf1%pF|M}*xZf6=PU Vpk7Ry}x>ioTi}* UW z1!|LRcDwemlyozy`kUndZ*lJo6_La@Jc2R{b!M=;K$|<0M`pWPEmkVxZZ-!t&(ov^ z$U-?j%oZr=LxJuFfiu2ee#0D__VIIPj22Ve+rMCz@=vY)9T=ym`Lz`5<+=d~lz4<& zdG9an_*?bo6#vWZ|MS-x|Kd0!b?_rzY^T15`?EVJU##xg_6POxMLo5@A>R4(o=Hl2 zL-2>^-RC871l@?W#(DaGC{RczAkGv?6f($rjvQeF&BX}4;PcJemH)7yW6U^w`V@OU ziL2to$79CH|1*I7^>#mSyD>~A6W_VD?^MCx-lV&b-n7Vuk8%Y{xJ6cAek?nY$&T@% zB-j7UTK@la#Q$>l|LLdeH)+dQ;>Le4c6y;o3nNLZ`INX!n@b%WdH?jZ;2frdLD5`) zgP~5d89dGDfk1g;j#a!>1AUrP)eNcs1f%1=A0Wzd1kfWmK8L>pF3Tla*KWjRL3^?) z6CWuG6hS_d_qtVP`j3U#Wb@(%{MMbYdn;g^J`Baq_@{%4V5MZp`S46FwSo0%bOS`# z!9nNrqsm|=)}`9y7W)`*5>P5&^k`^lt!kz$Yo^ABhqHmmP+NGVDdwcF)OF`K!}WNl zgS4g-bp1U-eOuRn&_|&ByZKA5?b16whD-f3x=$mT$MTaYv6eUfvd4eZlM;6r$0iPw zxRyTr=AI9XSDaZfnkD_Nf9CtIvQ5i4j#DGxDC)m5NZx;FP5zC&c=_!&j|9oQ+bK9# zA=pOT*LJ)k+vyd<%A{AgL4^f!oc_7fRk(e{lTPTL##{gC`hPne|J!`JoZjVcCM akvjwH>(KGOGf8+uaF+&!C{*mh J{iUN2zNE zVL-zvMwvUQNp<4tCq~;S6J%Ap4effS6VZ>FeJ o4D5jHqD2;c&nV7VZq$H4 lk@)Rq}!QO(dT=7LnYH_ zTb{`AAC={U&=t8@!iRjV!7Ad49 z +m3u`MCf4MR)uDSSc0uCE zy#?x50jt6dp>pmL9qlo1^C8t;wn+`(g0QoL?&E-r5rH;&giXlI4LCJq3`=NrfHs-V zztGH6Vq>hg^?V}B%oRtMK<{H29NQNE!AQ4&K@gYNKy;qvxs#=7b0S^A(cV_R(7hAH zNUHjDrYep;K+e1NzOOwEuN16E&%V$&cSKlx2QE#I-1U4ys5;EV+5K|=aldXV;>_sL zkF)tx#RNje@8EKaW%jpz=W&P1nMU+C7vL`K(IHikJ?Pw`xCJgzBHpMZC2F-9juRQ> zwGA#T$u^BE5^9nl`@xZWgGHo_jE>Zs1eIfPl$ZNFMGi8mPM#k%lC7S(i(wB^1f#?D z2|SDSh%)-gohG>9L=}4BB>u0TYkf#u70c7CipQ2)oUhi}J4t=uWibnJU_)=;2j3Mr zOy=82U2E=e<1X-4TE%d1Nm1@H*omMhZ5GwYUwVVT zwyj=>Hy !B6o^6;hfvz0p={nLQ({r rv%1 zfGL9{FPx&Zk(elwvw6Qkf1f6@Ifum=mIm_tA|FzvPlznDc9a9Pyd==~&$|`n!VgPy z4kbYB>X%eQm^MyAUk;x1R8(YPKor;g(~H7PEhb}9jr8mG@+S2bm|C(NAd^t{ ?C*R|3U%f;RB z@GjNC#LNsgNJ0t3tHPhT)|$!RSSB!Grv9-bjny%VD?ShrxhF?0!c>VAkoGqhp;<-p ztT{9R!xby0XjHc+i!w=h*w&`o*E^BjAdPHuRNiA0y1`=JtK|S#a0z)M^!sg}&UveI z8Jq=8jZIS-@h~69(G-_(V_#d#xY!gI@^z@2zV|^8xXU5;(0-`nvfsjp?p(Ee!K!eU zc5HX@^PK^|MYByI{f47RKQmg 6}au{3w`?Y%+EIO)GTawIp1+J)WV?&xCV61HsSxOQV8} z>0nGl0`+05L6OhTJ6boS>hpPf!}_l_$@Mpha2L5+c%8+k*>Jj{lP}`=J4g4^L#9(j zf!$Hr>0;{be%W23FV(qCR!E3G3@3-OVL!5ahb;3M42oSTls2xLv`|RY4RpiZ``{%{ z{tmvFss(?|#>wLKq2ORrdS!a3EXsVDybs-8KFC0Egz`EJXv`w9VQS_^3YFy-8RIk$ zH5XXc!=1*NI}UQdE}1K|4+8}xQ^gHjPGwO1@zQSZsRO=ew$AVV;+cLGdG^4{K&`TC zYiiiuzoiQB$(dW`O6alaZ~=wrpGs9U&|Sg!{rDL7ig2;PbxoHe+2gWx o0S>|Y}?&*I90KfQJ;vUrya2~O6VS&8#EC%^m>^SsTv-C}a=vHAE= zLKBUSh3Dgni5!|8c)-_f?-Th1EyR^akEP&DwF^%7F2IP{D;G|$V*DpxGl^%GNLNiW zci0Lk4P VARwihTzjl9Ge)VpOST={DPkf!~EE+mu~w3QfwYk zq`=^DDo_G&C%j>|N1(x-kHw^}tx;~AwI=2YWf|}-Cayt04Bclr93icM)ve06!IK rKP=H~~ycM`VWP0SP2=dC7v%h@{0 zfw1XTZntaG 26}QHuRYfd!=ff`h#Iy41qDe1ietj(Kk(anh_trwRqu;;p)? zN+ZjsSCw$Uksar9zdfwp()nrh!g1a#IPLUE(oh$J;65`Fs_1f5a}fHz2uz_;-zPQz zph=ya1RIe}AfA7t68mYe{wZCBK>GN7WsAj8$BG$8x3IBuneSxG#a@UP6$6^o>1Zha zwg97W`$(gEEB(`7P9Y<};UE?t=b-GY67~~8 L4XrI8&~Om zuYJ{T*^HsXr*+bJXa971yQ3}mxJ!66*+Z){@Z1ElLsf#DO@u&7i=3(FM0>yEhdX-2 zq9XQUoLXt)@_Xkdi(-%b<}s)m2PeyRx}kkrfLsIS^nC)hIgHD-?FF>{T3vTR6H!lo zTl>nsrx;~^p-9ojX6V|8#^H!28q;dkNpUzM4rDTTzLu;P_cF9^f$Q@E( WX~fq6QCBQQwS&z5?e#$$|a-2(Hi zzwvSMJCub8YP$v0j26;Uq9)RHJ8InvAsO=XtP@xz`wp5pxan9EcK2B;zZmk+=}V^8 z8S9JpgwPrjmtwgrXk3Zz$;|`bc|Bd93iIcVr`sbws>Ua|nR@%;>>`Y$Eptx_);2m4 zgeps&z}s3#m**-BmdAI5Laq>R^{FzTP2ep6aB|Oyd z8dhiAHtB-H{>r6ytz788<0Xgmq|93|Xt)!%Vz%IAyzo}(%*860sm1h}KW3f`A|YZL z=T7Hcla4b9oL#nvY6>AbP^>;cx5uGw$7voK_Hx%DVy^lD=jpXu^3v_$sL?|KfvpV= zRHiFu-ix?kpXhbt6LV;mAf00Oegm^@3e;}N--MiRPDoZ{r{V}J8?s*0h^I7j2(vMD z0{cGWI=b7-0ZD;6B@d4nFMCR8&G_s{?RUY&-}s?6kUZA0=der%h1|PPa&RiF7eM@7 zNZ9ALIA%re3~@*^eo1&J5Lgtx!)c}?Egd3$yhxx5-nCkh&%4P-nwqT&I~<$#@(G$< z%@w0Bg=dnl5rAq<88c?m;&VGsb} 2IsNIX1SSU%WDeWs@`fNL$}pMi9j;J zJ%SAaFwl(V`yJ-MntMXqq%(2(y3q{*^l=hS5X-*rK(xWaeJ5LQx{>{#mcs69D%yb7 znVOnvgqCbO$6>FJ5v-=$pI(4hNIGR1;AO=xs|6LkaaHsz>qx5gw8BCreVDe6j?Q {$mibO_OnA{^v1};*%ym9 zEY2ni>(b_jPdcz2bb#g+0m2^b9072ju~QJ74u}t?mxsPFoGubIyDkL-hdX8itDUB; zJ|hXwg^&V#e4fjdAY6v9r_us;{^%PWAqSUg5ywV<^G#u0-CNrlz@jR%ZNF`c-dHkl zXfr;R0XRw!2)Wa8bS!_Y2nYu6qN2P8e=x^L-meDE36KS}c2aMu#_t}RFJoCRhI0^r zf`0w-R$W93;g5p{;?%V~JZc%iu|NHH#Fs*ANFpfl;o*R|Ouzlq_3ftDeWP88^xQJ} zbLB>9ptI+lmcR9rJ(mGjKyEu(`G4|n z`|k^@fNADSh2NCwOD;^U9z~CiaLzpYte_oeOasT$dxcN_+^;pV{az2eJ_hLMu#%FJ z&qm*my#ubRunBwNvmhxcDaKRyq%d%k?7G;iYooVAbzU>-EZSFg&h6bi7t6`&{hlgw zf@f4mFDz!&ZGU@_yVXMkI7f5i#to?IC%VrI>+fz-KV`eJ=wJ3%84dOHOHb^a=YOv6 zT*5g~)66U^c2@~!xdbqZI|}v*X*~b`?*E?dz4iyiy{D_6%Q~loCIF$0 BsT=?R literal 0 HcmV?d00001 diff --git a/bsp/nrf5x/docs/images/image-20201017191936859.png b/bsp/nrf5x/docs/images/image-20201017191936859.png new file mode 100644 index 0000000000000000000000000000000000000000..dd7462050f21d986dac32840360377fe1ed1dc55 GIT binary patch literal 44497 zcmb5WWmuHm7d}cTh=8CdAtln?-O>$$fYcz}14zdVjY^4hw}6y%cXv0;Al;nCqZ0Njsm0L-@rWY}cyO{o2YiaA5@ z@#APY4OnS-CafUhBZ8kNhf=w@EqNO5#B8nGhwArzFU4x1$k%cgS65FF3OtIaPzb~b zIdG^=K@K3^N1`uTwSc0-qD5O=sN2`; uMxQl^vUy}DVjx{Fa~rD#DB2@Q zaglQQOsC~kU{_9k_C#Z5Z73zvcf4;A^V2>5=}8J}ZloFnOBZaXR{*+Y!t 3z#e4$gybT$$ZtB0A<1g98^GH(oskMMVI fx?& zc8J#=tD>T!yow5~sA#hqe%#M$F;obO;w{0yOTPU1+1N;m64t#6=clE89Mvn8%ojr_ ze}k#<-y=AeT-@E6moKK;6vCp=^fKSUvHm`qs>^Y5a&qmUA|W~XH9lqD#re4hHIx1E zm-KXshQ`LcSBn2k;4H3Nb`TO0a%@~iHI>fI%ZrYWm;J_ $@-=Pa|v5u!vKc=%=CM~NT)by!J(x1EjYZY>ieXDsOb46-O2o~&!Kak zB4PA|uQ>TU>xunJ-#1>diZ!5VQhN9mQKp&i5`;1Qc=y*BVlKDCC2OmeIA$F>0s8Uz z`p@*xyG{Oby%MT?;WSmy%^-k|2YP? d2&M+_dZ>C=}iOh&`D`1oStv4zV&=z^i$@Q9V07L#{|Kd?o z=fk_2li@G1gB_T@b%r<6$LL@BHh3?gLi6+UPWi)HY}}kX9?g~-P%+zvpMJ7?9;Qu5 z%P;kBi3*CfnV}wcCt{MZgd)LDi(fFxfaA9xW2!B 5(=Yo#AK;#D|RjpvX z7(>hZ2wyiX2A!7s9YKWM0zSlv^VfxZCR@0nu$)%=h$qsXoo!3D;F(%1m+ySp994&= z?CV0CM`p6+Z3*8bC3Pkr!1-7Xe7Uu%2<2BX97Q+1+0Mz_D4nUeDq$Wn`Z(}%`&MvO z2wv;T6otV;Ak_Rh)a?}Vab;hB|IUgjN-Vnj eL$ zOWW#*Q~Gi=N^Y_>A_bDvN<3H8Ib{$QOy9s>iNq|K)d?BklMs KiUNGxZ#)z4ptYn@w$?0 z`Y5U1oNC==2d+q?>+5wyz9W)>8T{GT7e1kkq1s#c0QG7bT<)GK_H(P?_=uy)merEM z6^2;>S;gB@OyZ&)Id3u-h|iwaykW2-dHN9dICw9JFT@cJ-fd$$9XeO@p2?R8{W)v& zE5QQB*ir+9!la@huQ$p%wYC;NUofIunM(bat-8Tpn~YO!FW~Lxk~A%_TJg=&UhUw! z+g<4W+??W1pQJ(^vFy#%%Wgp%+njyxSxa)ALQ#jz>24O^iO|oX&z#uqUVuuod9@7T zYadI44D )3SD)ZSYLVv-O^L(0G7b( z`U^@R_h-PIC6AeMV{D{$Zs&kqAWlxFM|e!i(F<-E@;4bel+jN_)w~|EHN-c%lu()$ zCev`w!tbzjjKrvaFp3-?(aWjcz~}Cym*r!Hv^y;z9dVKP0@2xy2)7oDmfm_+epVOW z@h@*ee)2;+0vit-!lJ3=xJ &NBPGR7- BeA=-u+3>tGmOfR?N1I z!$<+3tc?%~9^@jwDF*RgYe(9)x1F0z_;Zr}GKJJxlzc6R<${3ra7O%?&&_Ri){mm$ zjEQBZSAOS1<>A%Kof$8Q@pP{a7DER&z6nJ266j(ey~m E#OYFK^MoIn(uD`+K *UB!n>R8cA_N_;>+L( Q0@U zR^HZEu7(bcD!3V8;DvU!pN)!B9xs0$6_qnGGSb>(tj|w8R3%zYYl;89H(Q48*h}vI zXh>hg{+XOO{D}CooxyDh1>Hxvi9frXJP4XS`2`?J$}A2m*v@z7u mL}|8;k==^OvpUU4m4YJ4#pFkoM1t@ z^I5ayxw|V1H=hIF6eN6E89l&u*_ywc5EiLiJ@Eq{)pK_a+5N>J>9Rxfbl;P@qqF^^ zla5moEY-^RwaP&c$pCsOBhbyp_jZCd %$=&5a9f>&?-@W$+3-L};=Y4-Vw6Y2)cQG`wS*q%1XP8A=qM zyk6DA1|S+=quifmSpGRwSsU0G44Iu=TvP%Afn6xbkN9)qaSgd@3GH3WY7} w;gKb5xHJNNJG)_9O*BJoEr~O@Wysp)~Nro?%D}_5~9PkVc4VM~R z2XEuRe(TQlXg~9EbNz%*{1t&fc2Q9Zucc bHneP?eCy}cU`y^hFI zNHmMy^C;tH-k&p9n(8^6VI#^E1O?idlt?a8#McU>83MaVYVOSFnXkO(vY>v9$k?Ni zAa4Z`Q4}Rc@tX}Kjh^0sJ~!R5=&eodA2qj~l1N*X+ia|;frq!;DYmYiNTUju&+cYX zD{mm!GE)>8xFUm<>=-5bG)7UF34<~^Iz(w{X(-47V0>n#2bm9bV=kz*i?|XtHcV?h z5rGtN6ee-;JE`{(5fMEVGmA=5fZy@FZjTJv_^G+y*DoBdD%*zge@W(`J3Z64*w_Pu z&I}jId{pIh@Mg;lX+>G%u4+a5>d)-gLDpoEAwmX*qEm;UASXeBr1Nd&=d<~b)$~Y0 zC#I*ngRltD#P&$EMkQz$lUTc#nrprfr%>jK%_lwAxDM}uipt+F_m6}=Kvhw7@Thf& zcBWd6CNm~juYb#&{kX%qI`3Ca }i0DanwPsDjFw)1g+v z_>2a3Q2-H=UZ L#%(GJH@Gc0xR5?y(Z&Y+{lj_}=lTAP=r{sY*(fuU2&PHni{ z>{5T;Sks+Srq91nmv6?XY2iMx?1?>FfjUN@T^XQ7;Cy?)o)=5Tl=FPpqdrpXlkw?qqyYDvxggdj@}uLR77I z!Ur0F_2+QN`=-aOjGrbn^>Exzg=Zl4Ukf82sGx3RDBq5c41Dr2-S_h0$9#86p#&2V z=zesUUi*Q;vLo%!tZ8EmS>}Zqt~;!n#(MAi(-^~ZWFp;G3CthHhGxC}*y1DT>FFtQ zwe;Edr*)t_F~!KzK~{c#=t#QiNV@3Ya0-8OOjVo0E&8^?5$94cy8r{{>s%{jg4KC> z-DFpW#@p6f9pO;E$;*4)nij 3C;)?+DXmGZIi6+{&1oSm^H_ZLAxc>c2Tl z