From e3348bbc6c66cbe2a9c55450b9304d48e5768a03 Mon Sep 17 00:00:00 2001
From: Susanne <599032@stud.hvl.no>
Date: Mon, 12 May 2025 12:45:41 +0200
Subject: [PATCH 1/2] Added information about messaging service, database and
images
---
README.md | 24 ++++++++++++++++++++++++
images/Architecture.png | Bin 0 -> 52781 bytes
images/ConnectHiveMQ.png | Bin 0 -> 42055 bytes
images/MongoDB.png | Bin 0 -> 26287 bytes
images/subscribeHiveMQ.png | Bin 0 -> 48747 bytes
5 files changed, 24 insertions(+)
create mode 100644 images/Architecture.png
create mode 100644 images/ConnectHiveMQ.png
create mode 100644 images/MongoDB.png
create mode 100644 images/subscribeHiveMQ.png
diff --git a/README.md b/README.md
index 13de0f6..fcc290b 100644
--- a/README.md
+++ b/README.md
@@ -81,11 +81,28 @@ localhost:8000/api
localhost:8000/api/{location}
localhost:8000/api/{location}/trends
+### Messaging service
+To run the messaging service locally you can do the following:
+1. Make an account in HiveMQ and make a free cluster.
+2. In the .env file, fill in the connection values from HiveMQ under "Connection Details"
+3. Make a credential in HiveMQ under "Access Management" and fill these values in the .env file.
+4. Run the Fire risk API
+5. Go into terminal and run the publisher with command "python publisher.py"
+
+You can now go into the Web Client in HiveMQ
+
+
+Fill in with the credentials made earlier or autogenerate credentials in "Connections Settings". When the client is connected you can now use the interface to subscribe to different topics. The topics are "fireguard/updates/{location_name}" and the location has to be in the database to be able to subscribe to it. When it is published to a topic the message will show in the messages window.
+Here is an example of topics:
+
+
## Background
### Overall Architecture
+
+
This project is setup as containerized services orchastrated through tools such as Docker-Compose or Kubernetes. The following services are planned:
- API connectionpoint
- KeyCloak with database for persistent storage
@@ -109,9 +126,16 @@ This project is setup as containerized services orchastrated through tools such
### Databases
+The project uses a single MongoDB database (FireGuardProject) with a collection named location. Each document in the collection represents a location and its associated fire risk data. As well as coordinates and last time the fire risk for the location was calculated.
+
### Messaging System
+The publisher in this project is responsible for fetching fire risk data for various locations and publishing it to a specific MQQTT topics using the HiveMQ Cloud broker.
+
+It connects to the HiveMQ Cloud broker via secure MQTT communication over TLS and publishes fire risk updates to dynamically generated topics based on the location names (e.g., fireguard/updates/{location_name}). Location data is retrieved from the database, and the fire risk information is obtained via HTTP requests to our REST API.
+
+To avoid redundant computations, the REST API checks wether fire risk data has already been calculated for the current day. If so, it returns the existing data from the database. As a result, it is natural that the publisher sends updates only once per day for each location.s
### Authentication and Authorization
diff --git a/images/Architecture.png b/images/Architecture.png
new file mode 100644
index 0000000000000000000000000000000000000000..f0c698abc43277dc283aecdcee78b4fd4fdf53d7
GIT binary patch
literal 52781
zcmdSAcRZKx`#ydnBV=c9B_m{$krk3zMp
=}{@A=x9cMOoR|*_6@u
zywUsf{(gVs@88ek@p|-fyPx;-y07aT$9bH`8K$YObPAsqA3=~)SCkd5A;<|M1i_TR
z!+|T(2~&LV561m#N^;2S4*EIx<%FfInk<48M-l9qV8ibx9h7h0M-ZZV^goPd`&@Gb
zX|KDYAgk?eyg1@zsO@raX@!cX|3-E|Ii3Yh_E{f(hThZ8IyHR_1q}xNv|>GWPOJV@
zB%*~1T`~j>BG~-oB@_h|s*kS5V;dQD-LCCH_=3{0v#OabcJ~gR(y@bM=J*FB{f
z*OjGHw#Dy@TV{(F{Z8sECX>S>AwBxhil|VsV`e@2NtbBu3JN{?$vu6+ndSJpH8!Eq
z@#Ro`40)=5x9isYfA#houCq=Tal8u(Zo51+@Y*;KXsXykzFa0
z6*^~w&7ChDD$cVltkFKF{UwRNfmiylksE!>nUC*tERsy{E`eAhpLps~eJln!e#
zgn1@&cqn|UGr0Xtka9J%o95HF#@ot8Vai{MV!V#`NuNQU3h@)|3G~Z#%U86J#rznH
zSl=)1;$u{7ld;a9rnG*o@8?Kx^bI3CghqBM7+LRVIYa8k@sN#%Op(2PTaUUE<1=xxDk)9P`9?ek>wUWJWhTGAdwV&?dB-ZgQ;I$y
zEXtZGryWtCFEU`UR?jg_Q)2q|-X`y7H$~67m1R_z{dBqtZ}0W{7a8~kacf2u?U!HT
zFxvc4<-W10A8Lwl7=|+H>b`lq_V9pEJi&GVcWY_0-=Y_njVd$!eK(7MFvo~69hUR<
zkB;n7?**G>Z*6Y|;uP5}wV{-R%8{d;Yxxj(R^l{I5`y6#AynQelc0%(>9=yQp=i^s
zuZLk<`LeQ1bJvR?$}XYWWQi+1Vsk)?mrU{QZY4L5p<0M
z!mf^I*c5j{c&kR0u(zKk(FTRJZ^_DH(TDn0@98?_OV}?L
zI0qw13LBhNXQg!rB<37P-Iqx;JtN+$sM(GxmS}3|p2TKO)jY}PTcWvpE>v==-H@oKBVcut{<eR;R)SR#nJ*j&xU@GSUj`j`_6LX3yz$Z-EFYW?E9%vRUjmF}NkMX*ndaX!h)(R<%|<=w%_&*{r?w#%+;M{y=&a_+L|{Sy4f-FTC!9rt!l
zKJvbmVk|!bWgl)*9YnIsl6ClIT3Ixv`ug=~F-933R$cbH*`qw|?Fy%mb9$#^J-@zj
zm20`CA!8EK)7w*ib<qN{V^alfp8Cf^M#t1cV%eLFB>ase
z^=IDBiZCe}d9TnAg{yfwYSt*>zKQ<4$C;v`$Fzts-PF(VuqkbqeHw=-OV*qKGKZUC
z&sTfiX^P1*EMg!WydS=LW9i(oNN-Wcn9lFUo8xhDU6o6%zT-8Ma&Jtock*dWdCQd|
z*^>jJWTeXoGdJb}fpB5_r>I`>mI90}FFfs@-uw9aI2s(c_4Hqf8_kQ9(jD0V4HLwc
z8rR6)_Ovu#uPz*KNw(;l*fMjE-nWlxA~j!CGw)#doqI3^NhdY1EJYMycGIBcMI4+r
z{V-)#dmNv?jEy4Dv)AU%&XU!RXZywUitf>=yvkdAs`U9x8&;<_9_mZi6lK);eR4A3
zz4p`^5v#R)An*8yjB!%fL~%Y%H8m?)$(BfM2QLH>TX_nTO*o5_%_N=n#oK
z0%UQK*4p;DlfFP}TfSDg?E0{|Ym~@_zLmTB`YS5KTK%A~-bEyqbw8S2;qI3A20bP*
zw%^mX3wFA!Yn=;0XBj@mu)oquW+H0m9@<+{R5<);YVMlOrg*ckgt3_*6dQZ4{<_(Xn2Zb8FxRxP$
z%&6pqENgX3R>xI^c8t#%`tlsB2_S067tBKDKbfbR64@!&3?X<*w#I(2Bk@BeDd)OYgnkr
z8#j7C$Ls8@EA0xIRHY$Lw>-XDVkHJMIRvoTCU`MDmKD$aq9GGnnQ^E373bxd?4ajj
zEsRS;+qHG)mk7KJh8`Wo_{c|TZ7*{R^F%k5rK)y^pIbKSpNzXDB%rP%Z|09;=XGjZnHCQ~T_TXQroYt@>`vX1a0X-7Wu_cE9{>Oq={bs>*V%N{B|0
zV`xhS;=JzXsU~nuAVSk8k9NZI?ArSbg@h?{!r+aUkCvKkQfGgKt(@XimeBWKYqbuY
zC(HcUOGTt&{E&TMV>7bRdoPl?1qgdCTfMjPEmh3E=+ryq`eL(e+rRxGdn&FfPIn>)=Ez<9tV4VO2%#`IETt
zFHQZp$Oyggw!!m|JsjeLh!|gOyULTe=LivGDr4vU@OOo>bxC@9;rmYwTa+9FTpBr^
zBrDBj2YoZndeKt4W{4hsecQ-MS0ka-`oeR+s#v_g%1vQ85Vpy?_|WQpn#b;Z`1s9r
z>wX=>;cpe;T7AlTcV&qXnXh`}5hDlQRyVm*owsCa1_@*Js7$g15p&kf{Df!U?T&n_
zZ=Skh_%RXViW9D%^O;|9A?Aq8>C$s|XQ&-%7ceCHnD#xoCeovi-Me=F3<*`z9<#awL^{HF14f9g$hJk-GhLlu>FXGb1}IIi%!VlbXzA
z(Jd4F(yQ_o&U$B^XlDj%IIrlmv|I124(NrO+UDikU`3URFp1xEnmm=~)w2*~_o`iC
zEt?j3yh1H_g;i6xHse&q=!fWH+Le8-&?fWn0dRoHphV7~S`Y04@ezspr
z&BjR{P1YRlShtGC93{Y!|yZ+ANqEDjLv#^S6#XE#V{~eDDOJmBBv;H
zIgOk^Onxr&^c{@WWhBnn%bcyd&uvd}i;t`utHirsC5;vZO(?R-&5z>kH~1ZAKAvS%
z*6UuPSslaP8bl(e9WHc9Vo3nM-81_TEXi=j;^Wm^QAp`21bh&$P-psi;Rc06e#@^Jd$6_Gw!hBpz~jjzWf&BP?C*^6tC&L7pE~I0{)1CDN5wIobA2kMz#l
z;+(jBP8%!EbD?)=R0>NWcy#8|%Uurrj8|UEtq&8HQW=ZL!h=iY@0a~cm;lDdvL7}S
zYWtKJyA!|9m$(pIr{(?yzAS!9g{5IrC5C)~N87c+4-*q#A}yiVcuGj~R`M%KuAovP
z>#F7(JSx)oq>NH73tD(e+axhguay-fGQOup!0x1|kg_bR4{FN1Q?GnDYPzrY=Ze3s
zU`lhlmGLFD=(Lk`9~=J+C*dTAkW3hc<2kzZc@-`NS}VR+meAn|Y$3&fz0@hVlv8#v
zY&D)m6?i#*e(=;UDwQ0%p+ZSncLXyWiE%W#UUbq3@MWG#%)6$mbX&8fZs8nxpBz&z
zwpS5%cO5vtTk0DAmnRi1&IXdK%~A>IL4h-bML?hv%G)j<8ZfMJc=}R5(oy
zZEydbZSW*-$3$Mwu)ZVlGsO$O;BZ{?Rpe7wJU^|Jt1bM&LHabe=xI9RxNI=e`dj`M*O{GcFdzbN-%xt5B)%rCtmJdb?_oDb>#2uNOFl9m
zffrI5a(Sxz&f-jA`IM~eoaBvz`Pkfx+AI3BQ9F7@Y35^cN6T~`;Qz1sGpYCgzjf(t
zI1eYb?sjc$?Xii*h}_&#vd46h)*fq{YZ(%|XR(ozRk*WkiJo_gxzoOGAas6|Fr
z76YGvASNb8%RV+duN#}cqoV_Eyn`oyw6p9%X#{EM>6j9(i!zFe!NV51_iSzXou-r{
z>BZlU-c|i)CQV(9{!8DAvEaVw#G$}X-n$c7@x~Lg$K`*84Ryth)KdD=7RAT(VRw78
z9jA`VSsHLR0&+%1p8@vzDg*T4Zp(&`J&!Fb0|_KeUbR
zk@~JiISLAj8_u(uT3QcZO1QPQAFrk`IE~cNEL{_tjur
z1Zjz?{nx$^4w??Wzw0D;WOiElCbOop&hZ+hLa=Yj%F1IF8DWQe+>-15*@{3LzArM8
zaPeEQ{Id0RSTm1^)zPM=S4O2pVB6%66Vy{4Z!^##c&AUF=HTFvF)?8g5D=KMdzVU}
z5Bu=B_vqY0Th742d46FD><&7Qh@~G}uPPZVPfJtN&u!EL_x{fg+pVmp++17^s}q;O
zI#S=f=^FdhpGjBTQ(~hhCLw`^B)xo@xWAL;eIVhs4DTH{eEI0@`?z59L;d|R14BZv
zJoWgk!+IT@Ya@K{*#4IBuk8;F4%YSeQyNve77n;oa&d93bV&S4g`Z`vV>GSMR0DfG
z8^YU#Ll3tFg@h=L+`VWUWamEy+Ym4olJ?&_$`Zo+X9Mdwm_X?_4sx>|Y@VQ?Ab9=g
zN{nFMqZOH(6B?awXqTgUalk2EA+D{;8QQJ3k)LRmT^xP6=^sxN8I~3iWTigaL*nuJ
z^hiUglh@U*mt>g)x(K}d%HwmtEM|}Wzo`M%H+&bEk3Y3nuLnF2W}mPHn&j9mp2O?o
znFaD@KmN};d!?MPjzbLTi1@!{DJT^B{kw%!i~IJh9A$?6k55iV7Dsw$7A$|ZmTXqj
z0+s~^j%^Fw9RDvbCCaYEJK9CSpCe+}l>W;W<0DHifC0FJ^=fKrGP{-B?9EoIe}A`k
z>dvvz=r+RgEzHfC1qI)!h46XrZk5b-OC3Gl*^S@1*Z~_GyXDIlg+mW~_CFr@#N>G6
zM|8l-x{_U;!8pwC+(}PQuPacjnf0f%w6u&!Isg1ktCufhD^(w{Nip3QoQp}|yV12@aGGivO4in;8lLs1E-ySg
zD;I-)sK38-*?z?8*-%=dMo+Jsr%0rqX-I9{>tc8u#tp*Pb=)
zpsqOHF8&cV(SKZN_e-;XcPjMZ|GR~hv;^~ix3-&+;3)q`oPrf*t0l6F8c+}u6PF)v
zX6{!w3}!Z^$M3(5on>Y9XZvT~xdnkFa(0=ew#|`?@w3SI$CM>NOM=}<({dcdDi)|K
zG#QML>o;zMg2$H+o#D4Sj?mXp+nrTEXWcO;@`ojI`G?z6NHX9B1O^5}cS6pC<-?+I
zXF6VTyB&L62|l{V@O5ygZj#0Kz~Xp~KZb^fhgT%NW{@$ub^Y7mAno1=#5MSz{*r}*
zLYr!aKlcaVH&zxFS>EHXwmuC}B#`&eMjFANz(SP+DoWGS!u)Ceb0pwBBu=yG84?!F
z_4SjbO4ZNtjk=!1#B`5Y(fvCKb5(edf>~OG^hlm0B*6A$!NzaSX)20}IFK9@g?{`W
z=E0eERoKK0XtIOyrh9i01yNOMlpZ*YO
z0&f|es=Qbc=8-5!V}JiYtofl4>$5rYi~dj4T8^PR&JUrp9se@Q2BS$8-Lc%9sOm}3^E*=i$g>4%FEl|m6S9Nm*3~{$voz<
zY2xEZo^_-^BhMkJy%qw^W)FHtA)=Rz=x1NYyqcApP>qu1&5h0G#`J@
zB)YHE;$qmQrgy?2yna-Re`t*_{D1iDp1QQRg4NpA<~Ux5jRLQ=>9(EUKU1`B-VD3t
z^BcSR;1Bm}xac=msH`YLWOkBraGhB8WdrdoC;yHA9j
zTbX*Qu}0k%2q%?6Entr4bpQV9WYnd)(NW`N_CpI12>H)lj87u%>v!@x*!4$KE7t+OM89*cE;zw=C4^J
zw#@6kf46;SAtJ&%;l`;1VPN63SU6LG=VVY{bmnk!a&kD>^N?I?VRI5aJW;I(3Eu-r
z^!m<<3B9<}38g5;#?6I+Q`Q%qXOVN~&TTA@&{cVE$`u(`b!8|Ki(R}p(dm2ePIhU;
zb*|@Z?6YU-nVBcx;Og?O=QylQU7?_&8XzzqEU^iZ4Zty38LM@0bgYeLk?$%r5DlQU
z_68Wu5qyd+7~YHaXUEG)x|fG;s}HyxTR>1SCN3_BuX>N{oJO+HtnXBe(#l4!hJ4nw
zv|H6a=zDo?E#B2Md##=#{Rkjhl9(gr@87?7U_}8;K0CFk*>1l^sihx?4UddKxYV*w
zRt1;KPA7W<*JI{WFeRHA7bI6I}q>*U3E(|i-U_x<5+FL
z_}JL(t{?rd`Qt4yY%T5Wm(|sY9y3Z=cm0}}@aH#c8vAaU5)=^;AE1j7MR)2Ys=Dg*c&+lm}
zb4yD$Zf=63?2@~%Fj^&%?0ewxaixyHeddKF;j@e(=p{zhwYQ(T^*0pQ?@GIf&_Ae!U
zef^Q?LfAYL)nrMU>)ER4VNEsW(ok1KYq`6-Gs9BOo;~Z}>>PUxROUIs@Nk(P_)Sfj
zKUi-UMG)|4)#n#5$k|nE);ljn;WE0*7)RRG|K0WdOPu2KhjVN3dw`VJR%&S}C9=|Y
zU8Afp9>8tb&5%KYag6^;#bKQ$-#m&U>RDX@<(|i)_5MzFYFU
z%xkN@5WwF4;ae>$RZ@WZ2b1>(sr258`~A%hKrR=yPEkN(j?;H8maqo={xTwJp*lcF<9ee3E
zDtqtV`PSA}1TkxV+z4kqK0SRlzSk%=At5|4@WkSeY9?fCY|IZ#3ve*i_VE2ELv>{5
zRkYTPn>R6JMjDRGM1Fq$+5SR0%JVn;-o6#c{c24w;Yv6+H%Dlw8XX@`)zjPSxcH49
zuE)m3nbi7Yqc@wHnoc9{QE@sMjwkF)^{*<8?u3z<{)co<6KYa(|=ON&Ln0
zoD?70lP6DdaB|k7e>66J97I4>S6hqmt7<#h(5@S`gIT%wO9wmh%SYLeAO>)#C{xP|
zK}!;9>QFHCv8A#fGdk++(HR+RqdvQ~0k*%ltN$|i{%*S!{p=ZgyulgNH!9Y5#d;2x
z)v|`J`On6j`*QhDhmBb+cQ3C=*krzmiHWW%FSqifFRBoRNvWtp{vK>suWW5Kb!RB8
z4&U!YKjgB$aRVq~a|+3-!*^^EXl!aq2hUelR}YSeARwX_Lv3?ou2+fotl&V72Gf~y
z=O$|&VnHa9b#fB$++Ke4?c0s=K2tO{>+W>_y?r1jlfMG;y=v03v3d?xPdkmP@_#_7zNGpP`+b{5}tuI#OM
zX5{ALv9Pc>(UdsCKO9_Kb*Ph|{^R$%`E>}$hf`lF5TY#{_5_p>PfJt
z+H)xn{F9};S}n|3ApV7ENdG?Z>*G3+&)LD8f+4&{yicyHtjz
zDiOQkP>5|4@LqUCM9T3Q&L4IHp=*1jlcx|quX5yfJNMNLw&Oy>|hOim|
z-hUEm0cBOy*sGz0XV}?Uxw!Bz?Qf7LdvD$R`1fGf=}IDikVyX=s>5_tBIW4lxU#v4
zjlhwaeSUJ*>7-V`v-3Co;XDz)q9W8lrk;pAOe3IyY6&&R^iqqF3Kw{{CM;q}KP+6L
znxP>BUX}_@dwY9W8bU0&g7^mn6x)qlEN@su_o(ZoafA3#Iq>BN`&1d4_8-1t<{_Tb8hT?pBys{9I}O744r~hly>A!F
z19NYpsZHb3J_Qg>N}8G^rM5%t@y~fs^Eig8UvBB@Qr`LU90U1QU0pqF
z>x#b7%Epmbub(C*eYmmV?C$9a7vz@Nt+n7tRyH;iJUuJE|FTEdbBxwsT1METP<#4$yac`qtYMG!na@TFidnEcs7uJ`J!KSE%BuHI(TUnM
zfID4)U{IbIs$T={&m&4&;vq@G%xcYW_wHRZpsk>B>epzMQ`z@i(38v#OvJczFi}~*
zf24BGT~(LO+!2xV;v%FHV+fG0qD=oLPJ0%c#o=B-`wi>-=*kXU&W^jGjNEP_S~^@0
z7SFN%eMCmVBQT#~uQk~m)eQCT8~Y#9k#wT!%OXbpEqDi8Wz{E<3GlY3m7%#o8^3lA`QSlO!2O3zF?~}a{k+?iC6hBS#IfA*D*gBSI1VW
zti8bJcG%?T=uV%yW2^XNCdZ>-G^JHaP21>T}W{oO~!Ox|q(@8V}lR<@p1s?sXK
zZhv_phzp>b7jhE6>*A8)dj)4ft~mVWD5hp8DW-VSMJx~Yem@trXWVvUP1kjRdO&h#
zEWql=Cn+v&?rFPTy|~BU)hDCfF*MbcWjb_)lP)Ts-NoXs5oF9lBt@RF)&EfMbre-9
z5n}evKHcPvxchQNOByd%1+~rLIWvUp^d?+-+5dc7nF@JRTrBJ2BK+F0+~0L+@bd_J
z7@X~885u<6-Z#JZ?}fm;TSpZ7FrCw`T3DQoRmmDw>$~#+;{EdrCYTUX(skdW+skx`
zu{TEpg*nV_i63Y)JKr{c$mHV4&PshyNkzM>t6gG7fA3>2hC9n|75tA9?_;{MW-tXN
z`&MoyJtpvMw`FmD!Ec5G?jKy`wLMY(Gx=$y8riv?vl(MwBMy_+7kO7#5oGLzWpYfV
z>W|+F1*)$w$HHfYAK~&MsY#_|<5h7EPI{^O6117JIc8nWt@yg$W|~~vUt?KaYLz#N
zi~Zx`P8Sq_)F_&GqWbj{?ilG_d|h2{lKT}$I;5hlL5qUhf-ShKA)C*-M}Lah&XnwX
zs2Qb{%}e=vs!U2=aB{rJTSJs=;}rd_^$IV)L526VvZw^C{|;950L>6YK7=T)Qq_3w
zvHKLJUnMPh<>xAa)4G&;=^TPI^9Rrk)6S}I{)Ef^x=n#!du2mUUTXBDPID=n!}C+Y
z1>Dc#5zVj-aqliO6+)+r?lMb7!Ir*3cWCsKzKj;VTq+A7f3Wv;#i46&PE6%gNj0r>
z$I_|(erB7q+6O0FDzzWKzx?{myJrMn;_XuUmNI65bELuMqdDZN%^B5`#4wYh#XB+w5O}1{>nI^;R0lHCl}B
zq*7#IC-`nUzK@qM(A6b;#(*_O|0q`Hb#M;9%evwOjs~I=daIJ5f?H?c1xZxH$>4L+
z;=hAxu#mR`F_vBOZ_g#WW9q#&tOZoh;r8MXPaS6z)gMp=BFJq2(zBm4&xIr^4WjVM
z$;-XSw6JPE5524X>>9UhoIqls!7h*`{q=$#N2bWP?`3N(Nu}~-_VZgh*U@T1&dn3z
z@L?wC-2{Asg)n-~vXr+KP^5g?418Di3o{&Fcv8>$t?7l`xbK_xMYaR#6^Q|+cb^#N
zB%f*&>eH_9zFt<8a1phhiWuJGu2PHh*FLMdz^$dk3nuxW9Rr`LtQW0a-7I44b9$xa
za%H`!M?Oq>xUY-n-9g;r+{?3DY9pVlp=16(X{oowqK)!HW#wce)vXg>cD#1|Oc)VA
zf{=9~@}5z-WlXPc#Izwn5(zXhR-MFa2ih{Bi6h}8ratSWi9#cv@+6vsT>d+AQ5tob
z0ta#F(j_Rf2HJz1Hs^K9htGd|wB4_+oERFr?o^a1LjL)eaZQlf9LMGR?4vG$*Kf5~
zuW5(~7NkjJ4~a6lk71OzojF8oXO9{k%b$Y%DZL?c;UI<;nNq$@!{73X1(Z)RQxQ<*
zOx!s~bGpbNbcYscMb0M~+FK7Lu2D~8BOIgAp?mt}R5IfN8*i+My_#h*6Ps^dxC5u+
zI%mo_&~WF!%*m~}(4X?|G6Bf;R{*iE;2x(=#;3#|X)kZ)(^xbzZr&0*#()_~eoS7EKp?{f#
zAXL0U)8?FQsqli{8(PONcnl}aB@IgNJ}6amCX9@f0p-abA)P@M**q%c9zHMNW*4$y*|JAc_8_z$4GSorulQ#%Tr
zR~!CJSW|dY5OqFutyy($*9mepPdA)95%v2p%EaDH5Wi=4)m~Vj^=h=h4=nZY2bnel
zx4vG+{`HMsdnULh?**HcdHCm5Pu_}Qm@_RyKaH=
z->9dMkCXFcR#sL^YpXwCS9*H-sVAOLVGC7h{i`w*RiPhQI;)HW;4y1%kG3#+;)imDE&%WgG
z(WEl?+>;!X{-L~{j7cliU7+=JrBNwnK&72*k-loUghsCf%V*C83}Q1bX52d|zJZqenq0DJin;KuRvW)XnS!rlHFiJFJCb
zcI)!Ur@OrWg$=EZEG#VWPM(x?aJb;JGmg7A$@EtSO80|51J$&BU_~gb#Ibz~c+a#i
zS4+%wk$P)s2-rrNuK>avp!SZW6~>2(BeqhF7R9i~1bN|4Adc|x@#_F3byxfPHZ(O&
zJQ5xCD=aKDw07{AO*~0RcmgRfs?=R(72q0?&K)|}eiHqB$J|lzcCo+cR#a*#^Wsn$
zF@O*ySQ8WsEb$nFz2ON?GDk~4kqVl1s!vJ-(
zP3g~E=KDBL;Nr50iBSWWHD2YbIul>|JU5pE?Z9hk
zX#vF&4G-f264m_8uNT~?&Cnlhk+UVVKhPy%6Htx;j8`%@KVxcU#(%p8DSv-iYNJaY
z?ZF|){h2Sdz$UWBla%D5Br5!lfqY!=kZ_+(3z;HA`ERt8&>GTyXT}PQ@NEl=pfCyR
zDZ4gZgP`HECX;cW@(fZhZ=oWKAJnm}-fn6aAE0+l2RN6*%S6sYS*8eO-U0B&C?5w~
zgZc%qxl=v5C}Z^{pwf2`|_?sF@y3+=n4#+F+L|=TR2b|
ziNkN=70s+R4Pc4r)iUPZhQ^by5g^+Bf|~(A89~2tB2Ld3<(SyjlQ`l_D^clPYnXJg4;%d*bSLa?*lW%jqq`>aasM#7D&JXxS}v#;8GHmv5X
zH0rs)qoAae0bKRB3YYw0+h?eYIb_17Uaw$dEJu=pgP3mzv-ue|+&llQ4Y2R5$l_oL
zfvl`7umTOaS{bM%Mn{tjyZ!KX%G3J({ksW7c}=dk8z0^I(c+RUeTWQ-%f<*Q`8;h?
z_!}gGr&qr~zyHwXY}NS5L@BTw0tap=iK(r^H}#YW$*N{REk*Y;07E3f<2HJ-lR{(!
zZgC>+*4Mrctgg_QU)QtwC!c>f@oF;c#%wp%l1s_b694Txl1_YWab?eQ6hzBfztB}>
z*>64su>D}G-&b|X>rq3U6qVh1-@_S*3(HvTDMKj(eVZQnad)iqI4}P(Q1exLNE^GX
z9~x6NXtOYMJPRQEN40%T+RLRx)T1z=oF^)ycyEt{z+c|~nd*X0J`lm-s0FXNNSd}H
zV(#_LG=A@BF**=yvY4c^R5m(UW?LB|)MOtSehYKC|H)5dERt*gtlFSD_fWcMdVz|~
z`6TW}mxXHQqgq
zxpoP!fn=8@R6MV2ULu-Fl-WQ>(Z=3yG1~s$(Z_)i%)>l3J
zL&dmFJa#+6E=h5Zx$3c_X@+s7vKyG!g@lS0-m}!KDyS|_`buZTB_AU7PGkBxJmM*`;f_KDe(Yx=tOKlJ
zuz~V3IWvMc9Z8|(VN|qW=)a;ZgFI&aC}U7Ha`hc=R+(~nrk+=o;hD&R;j+m~;X);I
z)@dhBq>^zHZ2T%mM+ZpoWn}Uw@9H@(-L0b|@hemA&40a~S2pv>a(I^K=49qwtUzm>
znA-Jx)y@9l5LTI~*^-?0u0Ai{R|D>X6}v8vDbG6H3Q$qls8KZTy?U3mMt0YIV7_oE
zA8EHaTm3ptoYkK}Q9d2>)n;$-Wz(eYKd#`8awv$O6_zl`ZOJ6!&*rK96n<9W2;-0eCQKD?7Fx`C1Nn^T#dIF*Z(`{{-{Muid4
zxH8dw|AQ)yb0_2q5zVJzNxhy7g-Z+6=OwZ|R9~#w3^tN4xCPad${h4ioA=ADSA3$3
z;^G*q67F7c(Wx+3!5@5vw%~(BTq`O6-?Ra*yg=F6DlY
z3td9SUN<$^c`}Uj;n7Fooa-z6&1EDw&}OdTKFgG8BVMJ2sde*l(r_qCd#v!pQTkAN;)bf>jhGyPn`LQ!)wM37lrc3+d
zQ9OQh{Bo*^34g}w)z~CZA*mYy=CjSb(?5mRUy5zo
z);-(_a*D=j4O*6B}ooSdxdCPkmDtta4pHj7qS
z?s4+BCJ`e4nViq>ZbV0TcYfaf_06HTar=K3ia<;h^W7afqv$I^qjW5Y${59HGhbe?
z#lLt2l-2|aw(#(3RwtYJt-6>$Lc80E<|f+pCJw+kRR@NEO}#4)@zz3j(wd;bmog>H;lt
zkddLV3pz-?XkJFqAWHgNZSMi@c@^3-<51Gq{P=s|_9aQ2{LWExN
zXv;Z~RGd}Ep#@%s;Q}pE^}!g3J`U53-zIMfD6kvZBGzZ{O$XJziO?OyQQ{OI~%-Wr%x8*oMQ-Jhoxr;hVem#JhSuTD`I-y%3J`
zcIM`ayqLCw^#|SGmGuT~{9~Vrw^VZt+&yijnwviDAz$1jWLtCbx
zslyCKN~PPcrpzl(AyE?mFacL%CyAZATY-SyS8UM4sLECadA2UvJsC10JfEklvKh^qn#syVQ!Fnj=EJtLsq99``d<-
ze_aPwat9I}>0EU^cAoyKyo$~#UXGVzeT`Vg%SiO&sVW_(vwmFnGl&It8q*byac
z0iVKAB>K+ol+%5>ljN$At@l|e5Z*=QyJ8CB&mtS1cBv{aVx|Txm#AEBJ;0fWUVou1
z!7190?v`8W8@rK;+JS+AR31>+E-x>`OW1En$t#$v0#vI9jTJLq=Oyw>966R9qGx
zLx#h+J-Tw9^G`^|%&K@`1S?A*$yZhn|Cv=T%goT$1ySpK0$u#m%!o!zf%oj!p(>#^
z?yAeJS#%}o70Lzlxi_PJx~e(4ROoYHVB|Km`djatYEdkt&0Tkoh^>gv(mxY5P*6Yj
zh&8QR!Qxe!s}afb7~KKmw@p{BS7$2}RlL?ykdQ~zS^xAs>QC26umC!Hfl724W(D^z
zDn$e@XMG|gE%fG@8qhXWA;*v^>2!>{Lx9H;xWgs0zGt^qfk`r&GJmlrP?Q<5cbxoc
zHClS_l-JfGDbn!KV_o6y-8|^~8jP3?j1&|WE*vZ^EO3J&VEQWwX-P%rrN4%#Yyi{G
z{m)#^W!Nc0Q>{^tpA6l_W=a?`(8iXBmR##u^BFR7^2-QYR4fFRP$vZ8=K`I#rrR
zXt`h`t6;KiMhcmy42Oq@6Bs_6zxC;(9YY~)g<&TNsO)7}Fa@SNaFW6))uZRR1?T+{
z4(+<$TReS}I&v6zGMpbTef1rVV`WpO8hug
z<|vk3u7#}_&Ixx15&LOwY#+~to{ZBL{3sl?Pb42-G1fA81%Pa0>xMxfUq#pSGtnv}
zQ$Q_u>HX5C@pZiEKy$6vOiiIGF*BAqMp0WXFK1X53s{gWO|Ge*-I}vK!?xeoHsq;T
z0&jeJ;DJ^2bS9hW6Yw5kP)*}pP%x)}juDBvdct2{)kG1sy@gwUpIklPlXW#7qM+u8
zT>?N!Tf{7UyOAb(;X$zE>EE70#w5O-}`lA_KoRX;PShsoYa{&%g_
zxRmD2?WEJLTxkcn4Y!@c)u;6qg0^KUD{3(CmB#rm$xaEc{oQT#Katjd%T0ri)aT8f
z;%(=Uw1^MJyw~>ZPcW|thVsl;zU;b;$MWi`LhA$KaqaB{ISyRUh}n(cTjy9_UH+`Z
zQkRj#ZjMP&2MXHEByQ_548!-XJ@2lY|-2&RyPn{rCbXYYgiTvq(NbmHH&`07yGq0-M5<`Zc9^8kMDvu%zy_Pm1T
zS>AV6XgxaW`_~&o291YKRHVYDfWhm&ZZ_c&{Z7^DPXIkSrjdIlSvPy~Wg&`+;d}2R
z9;|O}o`ywGUiy*}sy}+LzZ;a3lY=lD8X8iw3e`f0;Q9FR{iS83?(^p>kfg#vOk%`)
zmK^P&M*y8v5o3r1#>dB_(Rcb9nVbWw(GjSbdzGJ0N=_c&=Z8RhA63^mg*mc!WQk-`
z@V^#$_J2W;nuB@)2pSX7I8k$f&NGHBVwA_GptZ=*U!8+3k92`>+
zcz}wH7V@+XpYzR655&P&2?s;%+DW+}10-oQwyHG-$KQWlC^w&kWMXOl*{#v3?u-jzAl~?Evd~|MUI!U*vFnmPDDF(58Hj!s
z%mastipqn(2Skj}g7|FZGk(^37~&a<*`R-E1|bTX?@}nA1Vmr|S5(P@vT|*t!g0<1
zRv+}S8jCh%ca@ate#U)&zTYZF=-!1xekm6dN0H64uw0SXFEP=es+;@a!-wb+L~I8G
z-@Lg1c!X|)oOC1%dUNOzL1B%iA~>Srd*1~>3vh)ui`^5d0(89~9Xz=(P}B^5?>O7V
z@^Npi4SI~VpzCo2nS=+wwFxc}eGU9-0@6j0e$fE?QwKK}`|Nw7p9R?2_*6rhlTY!~
zVd((-HXw+IPkSgo|Ahf1!naSH
zq+y9YS_Rs*5+b;9760mMCG5U+nc-AGfkb<8JScDs@l;weR0Y%QJvSxGOmRU!V_?yyFMN?B&RGcBX
zw^ILH(2_`ccTvzot3oZsdy588cR&b}4>c+!gN$KfYx_w2{><1yQ8g;hLC*{b(zb{m
zwPW_M?+vPQ!N9<{QROL&Dpz)P+)+aT_9FIbOl)l5Y|?23wf@W4n}dWDI`~%S`jlKe
z7@q_frU|XrU=McRwk{bQ`vn?CW&we>%LCnTbPwQE;Pgp_bznTi-{1d@!?+w+6e=r$
zHv=$MZK%S7x>#sbR5RqiND$7O05SaG!Eb?4?`T+l}jO7T6Qfip@fnkKq&k`enUDOx_E5$}!r
zs%e37mHsmOTd}WSzkYjTf`xXPK}NQ-v%}2HjJ$rmsj&p&G5MP}zw;=S=W2677^DXl
z7AP(!QLV&PkQ$lQ1)fB^<6!yc+@SRa9hjs`zN5^G)v#aIh(y0s8(U
zs@B$AAcl#4`SKL-uV?^(XE@Q&$f~KGlKwqKzBp1z1$u__XD7Xhb3eL;fX%C5u3V@)Ku6P`b(IR{El{4j29C-_dd1+}m3875_JdNhV@MZiU%yysJy|hC$iG_59G>#_69w
z*&q`@ih^d80x))9oL#StB+6q|8&H+*;^Msrzo+BTp3gis&&!K0{wi5=)js=Oz^uYN
zQieu~G%C41HUFg%n#P*i+JSX-=)e}*T1Ja3ps`Ige@;yWn$!oI?5vDC+`nHBeHPO$
zjluv_;h>^|smb2uTCj*tQV`+tKguEQ?L*aT=PNC!rI8dU}%hecGhTX;)|sTDMZ
z)9eClK-WOarWUk)q-12QZck|(9UR6myaks)Rf$S{pfi(tE$@P52R$?&40tQe0Bl@?
zxf9H#3h*O`sTNXD%&~zONy>90x-GP&PFqKZ1so;m}Y?BQ)FPKsxC1XX7p^
zF@~9*9W*1Sr?VzWdXRzsFT@ZZu^M=diqpG~1}{)mwBSXzWy1ffs#`uy^N_{`QSNP9
zTU!UM7)Y3g)jkZ>e-9+At*uue*P;q;)T~y)BU9hLB?BHnkk_ap5XMjpKf04nPfvgF
z*{|4(MwWz#AZsb6NPDmRm)3hA{nBFhOa8>J%WfBB72K$ZXA@tGKbS==
z6cB<})Ry1>32nbiV}KCu3B}&!0b?L$1lceuCU@WHR$BdL7F7!;4jU^22G9-dyb8?_
z)u-Qsc=;V%~L3!+0oNL
zK_@$V@IwO95h1FwR4$25{uz{JeETLj&`L3naT+OZBKbGBN$&
z(t~-KNz^Y6R-=3&X+t>y%ip7@*vh&B==gWa~!qvD1}OLS~(AV3y2X=z3i6O%$u
z^vR!4@CN&VlA`Gu8KjWIAd8nr!u~^EL^0C2+gngVWc
z;)DlIfTSe%$_`_n>a$7+-e}tbgmloiz$J_+lUo8Co14)L3&MXMD4ZZn<3a6E9*KuQSP2FkF%DJ;Dt6hs
zcR2yd2B2dx5DuKmwOpW|3_}qdj9!cUFu#%xBQB_Ycy7+4jAnU~Dr$DtWLLe389`wW
zSw!aAH8LR0g8|&$hDWiByG3N#vAvaa6LiM#1JrG{IsX;Z;lWRzl0(Y;oi82}Chq-5
z2o0kE`k^eQfsh0W06Ad5rmww~K?Toi>+7pfL>-TLp(=3u>V5WjOk}XkK1zwvvZ*dCnh=HXo|0msX@xRmU5Aqb@5OK=WYF#Wo*
zG(@E#wMn7Pb^1{M6}yZMVD_DPw!=6Ko`W77%v9cnvJ7I%g}HKr^Nw^e78OHj1PF@4
z!Q;XC0NA2ka81o<2pDd%o}L$BXI5ZP1|6(HJDBJ+ufSVo6mx;_c@;tn9XfUdIcJIt
zO5Taj=Tbm4C;1RG@91FxplUFSlEQ)E{PMlmFyxOyOig|LaBxqwoBqRln*j|bFc;M_
zJ^MAE3aZq=>b+?`bo21Jh&z$8WL0C<&DpG?h_c1R1!>&iN|js_AP_O|O9UC2|Jx
zUIgz(%N2AI2k_jq3
z{V%%SJ0R!wZy&!hA{9bXC`}CwO;Sk<4XHGwfrf^nJwy?e5lTB6+M9;hHem>9he1G4sf9|_=UGM9BpYPW=UdM5qET{r&2;Co>>fLD%8)h&QQ;&Af
zUurSpX(*3;RuLHBtS*RW2a~i_*dRo^2Ymx6p`o&?wcu$$=xAA*S8LaHuFNfT{fZ_p
zmf$MP%*@;No?V5B?q2IQuHrl05k%S->orO9YrOY1S=#J!h-|j)cjN-v(LXd)(=1UZ
z_0h{0)iy~6(EdPrN))VI(`2376K&n_A>c?XpPvu~
z9aSJHmB38-AElCIFbKo8YUSbtwkPfkuoutz2P;^Rj)JnJ&G_SL`y{YkTl5fF4@
zS+?GzX(=L@Gu~kqqXsNa-O$nmzR>`Xfp?YOmCr|xK*Sg!ZoP>|Gv>}=w#)6OnQdY&
zeWB*yP|HP6f`*PHVJxf)iU8mrjY1dMAD1>`PvD-TgI`C0bCR+#$3@ECI)UIq1{8?z
z)D+N7sIiafjJi`1kxUB$Dg<}fbgPgIwiWeIyScfMMu5l{
z`S}%)xybGB=`ljdL3C`}4qlOQ9q-{2R@Hb30HdAD?z^m2_JhH`JNDZn+k}^uvMhk<
z@JO{Or$7!!%C>y#&1lj#;ufPlJ0v8=mnF+_b&rnicYTadRPfYP{FzjfnQ9b6KoFms
z-6ru7{11PE`Ct%IW_7duD^JuByt9H9}q{-m&wiSiOnl#-TKkdcbz
zI0j#5+Y*nu#Ll3k+H6x`NWhyUbFPyoPby^T-A0t|unRx>fafMiadk=U6in0~^H|gV
zc>YWTk8#=JuMdu!wLlx~lPRt<{};s|#S4Ny@(L;ruJFj~oh(7}VOjeZbTO|a48kGl
zWw4DvVem(+V8iUty|?4$(sar}ymRvOVG$}H1Q^Tan81^HmOuGV@O-Kd6?j+XA%<*v
z+`wQhg~%h(=IryBAu!Ejp1rfPrxhOzQiH94N9k`7atm<{`Snh$a<*eV2C!LtCxNJvAi`eooF0XJ_xN0miIA@Lz2r{Wfd%31(r
zCjohU?sfb43R{tiLh6(wN7iC$#vg7db1YF!$u4Heyx6SfPFnPya8$C)g!RF}$=M2J
z*k6*Kfx)&b^CP>9@6>Xj!k3Vq8zH3(87iRx+2{CWEkP}z@S+y7Q!+GUA%s5Sukr%d
z0xjMRv?D8k*`4k`OKsxyQ<*&JL`YdyRz{>~Wz%hHzk&MSf>@xq=P`Qa$C6`cSPgQ`
zX;3*{{PWv^0Coft1g}vT^?N}&@)5~>LPA1BG=|GVO2AP4_UGZ@-BMJP^=xu?Kz1Xv
zS=9f8x<}8yaXKs|arp1pkS{<^fSDA@Pt0o^;-b6`k3}4Z^lc&Rrzf5m+!{uh|ppw>%_P
z96V?$#F@LT>G3-@8
z;QV_G^VfFen7&Te&De;p#WMStl9HV-;24BGq$QFGNmqg72)o2ubdjg8S;cTwj_584)A0e1h5{7l1Q16xdIsDhlmdJ6ESrclTEu(F3(fRtgo_B-
zOOl|?a)dvFG&vwuX@`swsj;
zf~7|mCZ}xj)}e!uvD4Ge(_>v5Zr;4P4Z6PEygY(jqeL$b>E^wma22&b2d1-_RViV0
z(E9r05B?cID_LrI=k{#gee7bc5r^pZ4YJeZQTvHmz$eH-Nvn4Le5R2~dosuc0|=m{=NkN;||gATJkN2n6PZ~Y;Jl9SPx
zH3T%S-`&9d_!$pwD$=R@x2LZsx@~hvn})^+cfHY2F@;fr2Wtj)D!^N_iL+o^?zB%p3sM}xpP_6uuyVb(XY$XL4YDj5-eYAaLeRH#a
zLPA21T~${X6K*QzD%%yeicO&nC-6GO2XO5kgD3Jr>^AK{8v)L(p!|goEb6!Xqq}^}
zQyl%{Iq80@{pblyo^4ur_umfdVd;&4?o5nANDV?J|A1mq9j-%FQk?k;c2AvgA9Chr
ze|+q>R;Dv-G=+#4dhPWT!VKE$G^Ad9{c9K*JCP2aLZB=l)V17}foS<9>UupljQ=+}
zC<2Z!qPf3Q;l?0k(k>#=k+Be|icsqlsLH651AZH}L`epwGQ2DdyK3T+zPGRq6bg7N
z01K_9ZWqv5bS|>I3nuSF(mkPqQVZI(;6_eBHoSt)D0TJ78euYY!QJ8vkKq2>hShle
zpDilF89vP#P@_Tspmdi3S;QK$19>9062SQoNC$Hd;0m#$k3G8BEIWI#(#8xfAw;oC
zz|ViCmX0*7b|1i8`t#>c+zI}l9r~uv-@iX8wD&-nCj&!d2q`sy$Q*%m9_a*8^B&p_
zYQXg(5GU%R85A?;{!NNpk@!VMDLQJBT<#Enfp#S{1^20uWkibk_AZ+~0Wy{wvq6T^-D`Ilz&94Q2f)U8i3nJN2+qU8Tya@UQm#)aO?R{*h{MiL?39^|tiJbpq+
z5{?zz(~Y-hU}mNPwm<+bL_s_9sX`A3CbwSvhb}NM{PE`vy_UfF848Nv1yGz8g9yY9@D1~l7jWyq1(VsD3A{8?
zY0wFgSLf47J`ENliQsyAVMf#x(vc!`ezD|u%tMRk9H07$=Zp>AHW7JtlaE
zpTX0!s}Wb}yQgVUDGP7zSnStd_s$vw%ssn7(@(?c`&$%f%*CW
z+V<@Wj-%t_Z~Bvt?G4*+Q<<_)NbzY;)(>a8`S!~x*1tRZDmJJH9Z_1c@EFj3IXyT_
zFDeY?-x>-Tjyr~*OoQs#qIrYQmxdy0Hw*Mfq=5K*vH0&x*T;?+AJGf4KWaA+0jfMraGCQ}21Y
zCv4Xu9ykgIdAx^Wf4qFwgb;(qMK|ac8w}a3-rjLu>6;++L)rLW`ikFw&@kQ#Dz;{?
znaO=!TXZ(UkuGTI7QNq|V~0If9yF9vpITYg^hEyrLA}+N2%ElR!a4hpgB~5vFUObP
zN`EGJ(UPi)yvMh`@>AoYaGmT9VcBxn^Yjt(3dxInD%XNmhJSKVJpJR*E!yMkGI={X
zLX~UZ#rRwgq&f0t50uXgo%gg?q|j@}6>zir(3C5bsOmt9B5`u}?B
z0@D}en~g8gMBD|^NQBeCnPPkF<_X2$dM(HLmGv|pT8w#im$&vjts`LvMi?%$@x+`HPmt9PA2_$~}x&g26OEG5~=70<>5Gz0CV+(DJN@M+iGCf{1_xB`o}sc7?Z_jU*V`xN@I8
zKvCbeWqFh6wdkF4ttN>_A9(H^}ZnWCn_r_FRniEVqY!(nKE
zClCGUnz_d&?sW9mp~jK_lHYXg%y>tKADt<;$e-Q+KeRf1oGm)H+8SJsSJALmvv>}z
zD=LwuqSR-k4<5^l`>@+(A@$@&%g5f!ODlZ-*1&sI>sWSE$)8p+G(OeJ5}HhZmt)t|
zP)>88AvtRTHqRFZTIr)C4-_29I8|oERb<;;{!D*+w$fU5rJ%KLJ`@=xh2o8$JfkK$
zv!(h4il14xSz3)ZFX$|G5}Km^Y=rK=w8&e2ta&Opj$>qh`d@qIIAhDx`Mf1p5-OfA
z2;SYwFHg>d7-=%qQHx(@-6JT-xPJZm?yh2MDZpUx&f?BNx->kht=%SgFr&Ap2VRG~
zp{nsG_y=|K&(M1{&$XYLDk;ij8gwk)s6YstK9sUoffvruAKh&8eeBZbQstWgu3;a#
zD~87PL25fYH#tbX@EtsuLD7;M=uKc%#X||eNR5WPUq}d7c<%`eIbOkgWtUX+jgrsY
zv)BDTHWWU-lyl(l?cnGF8g?ZMoN8fnP$!gsfN!T;QMO=PPA99|JDPi1cUSxmhG)z8
zlxqC3t}8sDDK|rxYz7A6PKJNx#i1UA==s4@&&Bz*TzUa@^UF+`iK>;4G2L;@gW&$G
z<(HO0m8y$lRY}suf+0RWZE9SxZ-1n1*?*>6MCC_ynpc8$Ha#=RbvZ
z3vdevebHe!6+is6b;7qTc%*WT%Q9!>dyUzHzp*?Xx=KpsN_b!(2Gno{@2&5g
z1ceZtzWJKvx!IRrT)k=w6^G)iV&e=QL!1v~hqC+C6T(ppMuYw|Mg_c-0OG+E^{&C0IpcufOU0=#bNFbS`kx3!F{JNUl#Nm;t{?;;^3
zd%-xv2flRPO%n%7&S1tIxE>798E}|4VNJ-AeqkSnD9qE|WwaFpw7UnFepkn3WeM~$
z+%uxAJ1FdKV7om_wtq0is^)r0aE2~#UnL#qYuh26s#OwR-@b5M>q}E4Y<0|*@aHB!
zN^gL2pPQR+I+6Mws0Iea<}I$kv`cjEfsWOxqIpOfMtKxs=NDSqD9@)#E51DX*-F^$
zS!O1LNz_&QS@<%H=rzqohXP;H$57HYR=QqV%;3}rIQ(f<^;_?Ue-!$uC?_Lp#lBjz
z7rY9H6xkk05xK&>Rk~sI(0_~=UKxGYHLDefOue?w<{%?wSMP_FdjlWcc4wzg^QWq!
z-Tb;Ux^L?fy)!-TO-zB)irw;$eVM#!R#v%kZ8u`7*jC4eJ8`|)-P%}orv$sY+P*Nq
z5a@>bBK930Z>q1izGfZ3l%?dia9q$KQiSd$vog|ByjR
z(N(TJ^|C679UULF_t>?q?5liXZMr%6z}mN~KbJI*q6IN3b=45MP<<2EU
z9`y(c25^1j6Tm*C4Ni^uIZ3FmKMmyT?@YJS$VTs$rj%%Ixw4VGR{W6IV;+IzK8KEP
z`uOCwQDQ57c5G2Qc;~>(dER7e?gFMKmv3?MTsfXpe8>6foVVP_uO^JzQRg0|Gj0sy
zxk%%tN4cm}d)G=s#Nj-R6s|{kC6WVBRu;B@o~bnAt+5q~57-bKluhsC
zoU+wJ<5x*gi!{BDE9?0a67vl$cDdQ%E4%a!?>c@zX#4*<{6wcYI!A4P{bqiO?ol~|
z-vvFk@0}~JVcJbbVnoGB15Dy3cH!^2x#uWGh~2vX`pFz#JN==dZB6&2nK(q`S+mY|
ztYPS;l}@VRk#xMFd?C?#NIAs5gID;C{0k1veSLq%{FIA_Sy}CSG@33iqE9{IVyOi&UK&GQE>H%`)m=<(~O9@m^;&Z+Va-e^Q@C
zV%m(v591@rW;LpI{f|4uR*h_zP&A)ny7%^>X=-yx`B3GXR^GH(?n5PZ9Y#5(QuitW@pq6&?jHck|{#C5&D78v&er|6HEV&=xAbDA&?ErOg;W}%ZG5-LSZ_T$aZrtN3!nWB3KmCB})%(${4?6dyLNU}>F5
zWv6ukX_~ktn_HqC9aGs!IIiF?_#@Q8rz*yh?O|k6w|XLvb%j1}>HFu|&!d0s?yrU+
zO;780{QMFjU2_mGjr?cHf2`huR=N`v=)5RWU3XM$Q?f`-
zgNMrw_yX~SBvGxhc-&&1~a!czpdR^x-U(E}BQ&sZR-7D%O5P$yLYl%zW
z|A?IQs10ApzeOt{drK(lW^S9lppqQr^%I#B!zpJ5GfXCSd|i7WX-Ma3QPEW`dBd0o
z<#GAc54Uo2$kW7KWcK!Xok>=2UY6dyIGQo1pTP9BC_24u
z;H@pkCSgjw77cH`F^#_1!K5Rx_8;57XTZ8$E&A-5na)*B{_46MUPFntmd$G@Yc$=Z
zak$mXA2wF0#`MoFp=GFHjo4joGl`eFsUkR@~ExGB!%o(y7A7hk31=%H@-i`ymZO&h7dX_<*R;o=!
zIp)+J=)LT-v;BG0kNpxy(`K^!kGN&?Q8ms@4G#Se{qA%|FGQY+sA4n|Fh&q)Gj?{pBoRN-Av+M^EUN_zuLYj=wr*U(tjK7NS*1w
zayzX_IWA%7)2^tXKQ{Y%y$sp%5x$YHlj2kb0N38+`C9*aB`6)e#`R@i*x
zLFs77h3O)P#aYb@WhS8?WF@|~U*Pq8YmTM(KR&WhZgZVloY)cC0=um#do6QmnEE?oHm2)>{zGa
z0v!-3${q9OQq?#2sWwd&ZZ9?YVjM)9uB?^m|LgbbiHNlE^6?#lqj$Hl*p$ZXez8-0
zc3@iw5C6=)d+E1d;$#^)i{rkg-hW!znR?9M6qsU)Aeyb(NckawsyLpuBj~dkVnHi@ZvO4?LIqzc$cq
zT=(7amcG~*6WMvT(;JWPTL-kLX_2ms!Ly3n=*tnejtT$cNk^vg-U_8`O#f*E4}>lJ
zH(X^^g@ZDeUyWE5{i0=9RpPPs0*)BGr%#h4v8tbUg-Hjsre}_6^=!u6MO|xCCKu20
z-?g76WREDBcYpEii0=Ke^8FC&j_8C*1O28cx0AwAuvK5Ua$LW;CF%XRc_lwuH$-A4
z6a)ycYU9b#fciEgx6SkoHw_HL&oLA}d2)PQlx_atuN4aWTXgV|6l9we_l@4=KE1o_
znOf{x`qg{rNq^;VZKB2Rz;PV^?Ppy|?b-db)t8i0E<|CX6WSFU5S+_gF
zAhjVJcZU-eAY~=<&;uNcsm=F)7uU4Hd>Qf0TW-dn7Vm&
zUtH3N;qg7YTUsm)4#+~ual(<)=)S1J|0+^|;UxA3X8PB`kI^OLM!
z6xnRPzSV)tKYBm$+;e1bbH8|=_15T>AlJb1I;z_hC2SATI8iBve`x(RoAFFQM#hM;
zarw{i!9k%Z$8tk>JPFCH>9+R1-qEwg)${e5+`mnd^S>InL|Riy{1Y7-*g93W3K#Ah
zx7y>((AA)Pt8%pFY4k@8xvOm*GjdbgOCxQ+PJ+~}L)i!`X{=N(*sOCQod0XSc3v@$
z5*cW;>KWTL_f@-6JY|gr?QN!hvvP5W%0iy~9CVUYSpPW}Gr(*1ziX$#PtWMxSSR5dp>bMBg(lN0d%#gl^`7uB<_E`)lF^%RROeS{bD
zUydgbv$|d-m04U^0%i#A{a4pafX2|!%X3>__;F2#Rm%H{hqoA6CT
z)=$q2vj^;>=3NXsWXGdF2$#8B@sD0p^e?KbgYMt=ITw3*tDKx1_2NIJiSME93|eMo
z<>gcq&`>LSl%4he0|p=eEd5T=nx3*Q^^eZ+vewN_rJk~w$}=m%mK(43)M@w_85HAN
z#MEJIe&>!I#Qnk7A|SvXLQHzhBFGp7EDLtx<3vmjKo!GKwmmw$v3;*|d`;jjl|dIO
z_Vl2_R$A9iM=HEjuicsrtV-_g`=D-G1Kb0iEvKt|sHhVRiTNsd?I;cieJB$k&q5|k
zTti(J68Haeo`!j{wvG-1E9+gn4|DV7T`wgZvF*H(-l`|ffBvb+XYiuFnIJ_E}{{XKf9~4BJv3Zwx+TG3Ej}PEy
z>nU^>Mza6g#|dvKDn?kX_ymNc26@TZj&xmkwI%39FB%%u#wBV0y@=W<3EL;mBie*2f-6|NVFP6Ap+?kJIR;8f&M9a>
zNa1)E_Pu1VReIA<88a5*;!FJZL2!aGDx`2&MssSYFMne4erBXC>1$gOEv{7r_RGbM
z6k!GpCBb<3wYzMNd=n{ln2e}OE`KMcFNCpaPrRG3Ahj>SsG-3FO2&=@-@e_!v&>lmfhj662OFr|}Xv
z)uoECZfrXEiQTA$63+;3ZWWvNA9kq+%%$KkKEXI18JUnJ5GI0P=UWRj{s~wT`0n}M
z5=MfdVn*
z8VYC&)g+|AKPmUptUanNDhl}lXuicS_kh<#HpX6T?UztDKZWTjncf({PZyhUS2#mt
z{-yEaH5hLSqjx~@wFVU%wTK;|6HN^Gv#p?jm)F>TWBeW7W3R`gIi(8h&j1Y7FnGU>
zNhRjBG)FZwl(Fjw#{jAttmwea-7%2eG+u+ctjKx)%7|xX^&x!kp4n}Wqc=ep%OAc`
zq7GYpY(+R!9%t|~5cd8#8pfQ1O!#p&4zWRxkB`TKS3!@0>2G8xqkx{c`vmUSt@qHK+&wxe0rSzhrh3
zll7XKnuHvP!#YT$YE2%x81!>_h!`om9R&^7o2ASwDzxU`Lv@#2tE9>Xrksj6E!hiP8!bvJIf15v98V
zhGHO+;1n~gMyv5fFn!1yk-6vc;>Ts|m=$0-f{mnuq()A3C}#d^=zj(l+#40zZwPA8
zTi1#^e|yJ(B_vZ&;;SdK{AUWhl2G`9-0<`Jgrh=U6G0sA*)DGGR~*L@{yCV++#G;2
zLJ4sUCK_iFW&b{ZTG5~T`&&*If%&OVsM18j9rWmtpxc8;B6Eg09p(rD9U1!Mvk`Y2
z!aE{_K0*V>x2rMPf)Y|guJ?)HzhOrSiZ1e2czQ)F8@G|S0yD{xSu47u#abmMCMH70
zLlj!;jj*l=+%Cm3{a_BR+j#PJ$LVDd*L~bfVhj$teUMsOU^-a$*H+Vlf9!|2d?-tg
z90NjlkZK>qF;m7rm0%EWv3GF@+DfE)d}o!)oo(#lu#N^=O#NI9tYNs_>$|Pafxd+h
z)F8RqYjC%*0aWb(a%w*z=d(
z{g+*ahvZH_XsQM!&U}P2O$ai$wZskr+@st5IEDb6v3i4qka*TW
z$xLW>V&F~@-5bE-8Z=_@dKttD30kt_(8#%gEk|fdkQNU&$G!&l!U4{I>JRs62^DPn
zCtn!82VIcl3qr|8qRi0CdO;M?;S483$dkJ-r*w}lx?Fsl($71DwvT*w?
zLeL-~6s1ZvxQZk;6N$4UbC9x))fFZRQE7pdjMnrj$`JDDv9{IVV+?AGis8XI481M#
zzdx$7PhbYtU{MM4j9d{;Q79s3mf*&UzY7Cat%%32yo2HTXGGIGSglU|J9aA+2QCT54<9|+d+FDCFti&ucAH8l6ANQ7T1eRk
zIYc0%&$bli`
zP!rM_z|N40a(RCGImE9defrsDWkRPx4sIcN6jD?9OE>nSJj2q_qGG&WwpId0k^fxG
zJ&09aL5O*WW;0KO(N}F~VZbds-befCPQv
zZ)D;*!tLv6!$PRqsQ3KWty_m?@-B34XBs2+qJjv0ze-4H=qto73V5VIgk4E7$hTqu
z6^%%sYLnWj3CS91NSHhiU=9|Qlzf7&gm9H0Y;DOgJxHWC=!;E4?8$T)>Hce14jV*D
zz95Janh?Yjgk4TF&Tcp4^^n+e=Uazpj^1qG@sG8RkbHWZ%7R&MK|@~0HvUvRo5PPe
zv-FE=z2(}yS&ioei+gUBX#B|hpCuo~2?j=n=^gGp7Ydy=f6VC`HgeeGHD5uPPX&;W
z*+FyT`3H5e?vWz_pn@es^gR-G%0A7-SZ$W{q+oA%An1oiMy8>f%r22c!VF}UHALCS
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