From 585945591561bd3fc979b20d2a1537282f62f897 Mon Sep 17 00:00:00 2001 From: Jim Porzak Date: Sun, 21 Jun 2015 07:25:27 -0700 Subject: [PATCH] test_that on fc_reorder --- DESCRIPTION | 8 +++-- R/fc_rclust.R | 8 +++-- man/fc_rclust.Rd | 51 ++++++++++++++++++++++++++++++++ man/fc_reorder.Rd | 31 ++++++++++++++++++++ tests/testthat.R | 4 +++ tests/testthat/VolClBre.rds | Bin 0 -> 43017 bytes tests/testthat/test-reorder.r | 53 ++++++++++++++++++++++++++++++++++ 7 files changed, 149 insertions(+), 6 deletions(-) create mode 100644 man/fc_rclust.Rd create mode 100644 man/fc_reorder.Rd create mode 100644 tests/testthat.R create mode 100644 tests/testthat/VolClBre.rds create mode 100644 tests/testthat/test-reorder.r diff --git a/DESCRIPTION b/DESCRIPTION index a31cfef..9a3d39c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -5,15 +5,17 @@ Version: 0.1 Date: 2015-06-13 Author: Jim Porzak Maintainer: Jim Porzak -Description: A set of tools for doing customer segmentatio with R. Initially focused on using flexclust package. +Description: A set of tools for doing customer segmentatio with R. Initially focused on + using flexclust package. License: GPL-2 LazyData: TRUE -Imports: +Imports: dplyr, flexclust, grid, ggplot2, MASS, tidyr -Suggests: knitr +Suggests: knitr, + testthat VignetteBuilder: knitr diff --git a/R/fc_rclust.R b/R/fc_rclust.R index 837e146..d9d7eab 100644 --- a/R/fc_rclust.R +++ b/R/fc_rclust.R @@ -1,7 +1,8 @@ #' Generate a List of Random kcca Objects. #' #' For a given number of clusters, \code{k}, \code{nrep} kcca objects are generated. -#' Each is re-ordered so clusters are in decending size order. Cluster summary information is +#' +#' Each is kcca object is re-ordered so clusters are in decending size order. Cluster summary information is #' pulled out of each object from the \code{clusinfo} slot. This includes the sizes of the clusters. #' #' To look for stable cluster solutions, each random run is characterized by the sizes of the first @@ -15,10 +16,11 @@ #' @param k Integer. Number of clusters for this run. #' @param fc_contol The flexclust control object for this run. #' @param nrep Integer. Number of repititions to run. -#' @param verbose Logical. Override for fc_control@verbose. +#' @param verbose Logical. Override for fc_control slot verbose. #' @param FUN flexclust function. #' @param seed Integer. Starting set.seed value for this run. #' @param plotme Logical. Should plot be produced as side-effect? +#' @return A list(best, sizes, peak_at, tries) fc_rclust <- function(x, k, fc_cont, nrep=100, verbose=FALSE, FUN = kcca, seed=1234, plotme=TRUE){ fc_seed = seed fc_tries <- NULL @@ -27,7 +29,7 @@ fc_rclust <- function(x, k, fc_cont, nrep=100, verbose=FALSE, FUN = kcca, seed=1 set.seed(fc_seed) cli <- flexclust::kcca(x, k, save.data = TRUE, control = fc_cont, family = kccaFamily(fc_family)) - cli.re <- fc_reorder(cli, orderby = "decending size") + cli.re <- CustSegs::fc_reorder(cli, orderby = "decending size") cli_info <- cli.re@clusinfo %>% dplyr::mutate(clust_num = row_number(), clust_rank = min_rank(desc(size))) %>% diff --git a/man/fc_rclust.Rd b/man/fc_rclust.Rd new file mode 100644 index 0000000..120d5be --- /dev/null +++ b/man/fc_rclust.Rd @@ -0,0 +1,51 @@ +% Generated by roxygen2 (4.1.1): do not edit by hand +% Please edit documentation in R/fc_rclust.R, R/fc_stable.R +\name{fc_rclust} +\alias{fc_rclust} +\title{Generate a List of Random kcca Objects.} +\usage{ +fc_rclust(x, k, fc_cont, nrep = 100, verbose = FALSE, FUN = kcca, + seed = 1234, plotme = TRUE) + +fc_rclust(x, k, fc_cont, nrep = 100, verbose = FALSE, FUN = kcca, + seed = 1234, plotme = TRUE) +} +\arguments{ +\item{x}{Integer. matrix. Input to kcca.} + +\item{k}{Integer. Number of clusters for this run.} + +\item{nrep}{Integer. Number of repititions to run.} + +\item{verbose}{Logical. Override for fc_control slot verbose.} + +\item{FUN}{flexclust function.} + +\item{seed}{Integer. Starting set.seed value for this run.} + +\item{plotme}{Logical. Should plot be produced as side-effect?} + +\item{fc_contol}{The flexclust control object for this run.} +} +\value{ +A list(best, sizes, peak_at, tries) + +tbl_df of k * nrep rows with cluster summary for k, seed, cluster # +} +\description{ +For a given number of clusters, \code{k}, \code{nrep} kcca objects are generated. + +Repeat flexclust runs +} +\details{ +Each is kcca object is re-ordered so clusters are in decending size order. Cluster summary information is +pulled out of each object from the \code{clusinfo} slot. This includes the sizes of the clusters. + +To look for stable cluster solutions, each random run is characterized by the sizes of the first +two clusters; which will be the largest after reording. \code{kde2d()} from the MASS package is +used to find density contours. The highest peak is determined and the distance of each solution +to the peak is retained for each cluster. + +Optionally, the scatter plot of the sizes and corresponding coutour in plotted. +} + diff --git a/man/fc_reorder.Rd b/man/fc_reorder.Rd new file mode 100644 index 0000000..5169167 --- /dev/null +++ b/man/fc_reorder.Rd @@ -0,0 +1,31 @@ +% Generated by roxygen2 (4.1.1): do not edit by hand +% Please edit documentation in R/fc_reorder.R +\name{fc_reorder} +\alias{fc_reorder} +\title{Reorder clusters in a kcca object.} +\usage{ +fc_reorder(x, orderby = "decending size") +} +\arguments{ +\item{x}{A kcca object.} + +\item{orderby}{A string. Specifying the method to order by. Currently only "decending size".} +} +\value{ +The kcca object with clusters reordered. +} +\description{ +Since running kcca with different seeds will result, at least, in equivalent +clusters having different cluster sequence numbers which makes interpretation +of repeated runs difficult. +} +\details{ +\code{fc_reorder} simply rearranges the clusters within the kcca object according +to the requested method. +} +\examples{ +\dontrun{ +fc_reorder(kcca(x, k, save.data = TRUE, control = fc_cont, family = kccaFamily(fc_family))) +} +} + diff --git a/tests/testthat.R b/tests/testthat.R new file mode 100644 index 0000000..8de3878 --- /dev/null +++ b/tests/testthat.R @@ -0,0 +1,4 @@ +library(testthat) +library(CustSegs) + +test_check("CustSegs") diff --git a/tests/testthat/VolClBre.rds b/tests/testthat/VolClBre.rds new file mode 100644 index 0000000000000000000000000000000000000000..30831e011877c0d404a65cc53106c10f746de279 GIT binary patch literal 43017 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

@H_65L)q1l-EC4D9%^PVKSq@v+ ztBgzCZ@dFpY*xMi>~J%1QO76)>H}L*Y4Lbt&;srwzlm9T{b@9Te+pjRTsoctAqgcjijm#`+9y z*7A3eFu`V#V9>Zu>|%p)Iq>zVHuEZ)kU*xF6_%kZ`$beSVdM&hpF@dA7=nIt&*3rPupdcK^+?i$8Ps;FV;qgzEI<$$1U5dgL`~ zV)omO7Es{iVu4ii{8=LWeYs$#(yZ<|uk$IA*f6^pt+cf_gxBrVHj%Vs3PuknSDSfy zzMc)K3^sb}!FDu)8J3WL$^^FW-*+;qjzRZ@4+7;`@jnnCu@#pWy$tQX0&cCY^}541jm!XpZ7tnyK0L!W zVp3(a`LxT}?AXv|Gcr=C$#A(Q=b5{r_TBAY8u)1O#Z{K44jZ|0$S1lB!f@7}lKhI! z@F$^Hr8(9`{&HwHg$AzuEs+w1JGu7^e|UlXy4kl&GY}C3pJcUnqc?SKU1OOcm-z{U zB95#xd1{*DaqDx0A2|f}lsWXZol{eTX4S1|0g3V|rynM)hqTckT`(%-?6O%YA2Ve8_@$Ugh=c@4s@4HczxatWeIPKr@23tN9fR`prY^^(rPQ0 z5&u-ulFvnRBh9dpc4cxVBhZ4y0}!xou}0O@ELizbGK{?zkiy9lV9*UH3t{)Vk2Aui zycU28OdVth-9;cH-K(ORm|nq^ zjQ!|z=rXEI%S1d(#(Fo;xFv9O_W*C0c=RiP_S9H%89djZrFH-vJLvdaVjHy5=VRmw zC$=p0nI@V<8Do#tj?5+qUF+xFSz&14IqwvC#juqP&&R*;^Uw@&m8u7C_76jBlcA5+ zs@%2vo1yUnhg6%h+B7zAI|||4t-N?YK5xoD*i$P@O%gE(IFgsP<>r&YO_%`g(wr9_ zqaMX$-}h5H>W@x%{usCky44L`3#t)|6bPz&6X5QlaiD@HN6fj?+oqGZLwbVm9yA2N zy`&WA!)K~6La$;xak0pT9ev#^>vgInt(Oo^6c=?hEpHZjLSkEQcihUmc&1yC7GS(Q zU{-6c^G*iCPAzjV0WH4@KV6Mu6SX(X6!a5W(zvCsD;Hv;pqUig_gJ08i^H*l$)057Etv_UVj}Jo|?1S2qvM*}0wInRRrSwsUF%`Ur!zM+~zPTRoO@ zRAhPy6#NMjV&?Bf8cljH=l_&1pc*E`d+kUZHR!^AARH^){)33oO}z>?6>Hr z)QJkrCvl@Qo_*P#{~iF9UsDYxKeHRF^V3+O5J#z0+6DMxLav%A{Q?KdqSLa*{)>Xw z0eHFXV!>a-TaZ6uNs%%fasGm(ph8Z%7B3DPrNP zOC0j#v+wP*<|JDXe(oXV&}n|gw1*y;?0(8P}$-I`0<%KBQ)O;S%$ zdR{Gfd-Pfsqfmmg+jrg7vb-_Dpk|G}EjB@Hz>iPG*VMe)F=SVOEo3sK%$q7)}=ahEJ`?(L^t;kI(kBdaqIhh zk5{sBdprbo@`d?k%;T`r>(lHbCjf)IJEM8^X4(Fy6)nN^bp^g>1y{M>c-Zh9fFJi0 zIuu3?OmJRCM{{TYn>|>l;t$agv>u4a9hq87a~z)TFA4fkSho%LwfQTxrqV6)>#S`_ zKP~7GC(I$cWYW`Q9%9i^a8}nQbq-uF_Tyx~gX8P(@B)>qPfB#EaP8dXCzr36q?;E) zg7XUG_>CG>IiBo1PFS3tA`Kq8tdTG&1d>1!HdnHZfrfrZvvZ6__xR~;plouz2ud6r zc2+o+!#w`w@@PvUS)Z&nf*6I|5~`KlX|3Q$_<=ql+)4C`59G2#NVfSzJOuq~;)rgh zL>AL^)v8qSZ`-WbRCRjr!*Ybuk4g=G1@K6>C(lk4D=f2b96Zm5XwnklsxF{zU7Z89 zg;l#01;-_Nlhe}T!auP8fO&sP9f=!eMaykReuGYs+3OCq_yB6Ze0o;ZDtgc&(w3pq z-*H`nqH7^!FNkGLWYTs*78K8y6&yi!1h--5-*rfTuiD`-)`r)m?#|WuJzqXsqo#{{ zV{RdQAom@H>duBo4_R_Ndpc`__6*lrYpK1*k-FwjCyaD~!n>*;yC^4Zp-!8!fO$2$ zfwQ{2Z^#`2;st7iHQFowq0|;q^?=mF9l|f2s{3-{V`F;#EMbA&Kj-UfOGn-_xJSGI z@(XJ5?RQ;QKmeRbhB55jKS~6$R&CUM>>5$WT6^C;Z=MQicjC@>2->k;2wl{?MIbc} zzP@u(G%ByJ_t^T;tjHQcLr&r|7=Pi19Vg2c5#PCvJRE5oVq#>`Sj9>k4g=S&Bs_wa zL`(UZjPnI5Ha%68LM!j(aU(2m$w`!xd<__+B$RfZ#3DG%IuLXBDgK}i*mq0v$iNy& ztgKb_8Urmt7p|N9t2UU&DXQ%n)wVLXOf?}ie675+bvf>I%7>M$v(zCPk%cf=toxr| z$|#zFIJM8frdmgMc1zJrQZ#d05$4XSK*v4#G3ECQs3iNNJf?*=Kx7 zoDHYfPb#>@ntBXvA>Wv8NQY7bnFLGdbrq8MR0K+eVq-TF2pahk(6h2IpH}~SeAH!( z{a^k7-EuniWD59;x}kJ@kvj#24|WVrCwCZV+OS)%6qdR*^nKg-vO^$)>FfqVFaKaAwZh@_F~7VzEgSY% zr`V5{Z`H)v7nkXmcXBf>@yd#O=p{u8QH}asSK$RsX-3=eerYbBApNs`b;1#a@FiEo zBn^;Y<(ls;>u$dm@_Q8}*tPIPpUyQ`51#v155pGwn9QvrOs2odM*HTsd=hYAl^roT zyqWNK{{b93=Y;&?TN9LSTHcFB_=ZWkB!%rjI@SyUylM4jQ&#LNt?zgV#gudplX^{g z-qSeJ^Hn@5HR-h+OU@_N9n7%xO<*MCshMPr)gUSm`KKw)Yax%`E(O`rR+t>?76*8C;*-$H^2=W7jM32{#QnXs*vGA1XDBcQ zaOi>oHZgcd)Tpn%MYT4Y1V1~nCWvUM1s4`MFW-X3AGAEHl_xO$3GsSvyg%W3!(_T= zd{SddL*QRwY&tNhT9dIbPJ{jm|*Ia{hny{siPV5ZK#*ve29)tf&^gVpx-Mw zmZr1n2Mzdf!qc;9xBTTAukWpBzQiZI9a0zON!k14-aGNMTgof;xL@sH!KsNo2mn4O zf57`>by>J=+l$r0C_g1>hGymM{#yl9!3|Rj$PN{SuSMczTy1Y3H3?Z~{;3%KM+zd< z(P)&AnDjpz2p4#HTDPujboUilDnSB49{-628c*kgDJeQ#iudttNnmRp&DnBgP9BAm z^5DAF*L37BNODb+Yv3A*%Y$Y2DiUnflX);0vffowV*Kp%ET&Fu_V!WZC3cf_Fm`Df z!XWJtDhod1*&hnoPGsa&=A(mK9uh<7ntkO^tYz(7a+1E~bO<=8gbc1b(X08N72s|U zVY|dPc9G}xG;5BgztoAka{@`l#0|TvF1N!5Bc{64#fuB|rN;%zmrGJFu4ywGO}h-b z{tFN`cLCyqi4k7c(M{@jFzfNga2(%g(pKEAd9I^s^H7StQWob`dRl#iGX+QKAI~6a zC?>!;l7`it=JMOTIYAy%et}BVXCNHUVR6IV^CwG{vGUy)(asdPeE+i`1rdhpgy!mt z(%N-#JXwG8y^Z9Vff1ZwG0*oGV0FtB1B$LeI&lr!;m=U)B@yr?bjI>2uOMIvoGY6X+EH_H+cDD4DmKcG!()EDcEmpc5Q9(86V91yR-nnvV%G>XUq$ z3%SaSaFV4l%dC51M|*S`=vJ-h=Nak5mT{z^kWdHiZctsMwF&WvGXy~V1S z^zL$-kZ=y|vCvmR@6SX*YAP+bzD=<-qSgE6d?NknZ0?vLad?S!{!tP)Y-J%7340`L zga{G_K`qd=Xftsi+SRkiGS+(vO=4`)K}H<8<^58i0q#(-=)3#1F6@gP^a#+Njg#I$ zfJ;xf9G%BVGJQq?8#^zPC9wXv`UbXKH7O|-16OH3g1s-7!w$aNXU!2?$csgUej3(7 zp$jQEG}6CqVwA1Utz@gq@k4}4--OA!=AE)Ur#?oGFHH;Yjao>J(2q{?;k(lNc;pR)l&%1(=h!#0-co(V4; z=CHlW0Z~_ffcg-Qd~&4yazWF4{LXRuOUqG5DcO&wO*Mx`>u0$1&3DsTkp`h6dka65 zlcyM>1o8-9{1#Ni1Q&V`hO9E4I%S*I*2!Knmvanq5&~Oim`8z2x#p6Y)=7ex&D^Vy zG72Yf&1=AV!DRP@Xs!46+ukxQ%AVkLijb_Jo>E4Fy6^V$miu7Dqf z^}!nQm)wtys1HfV$q|QzqMJOhj@M)gsUbYALt}Oj&X{3e<>&X-&czoKyWXk5&eLFA2kq2tgZya{O@wS20(9N`?$L*5G5? zI(E1Jk!onNJAv;QNGGcJ6jaxXJc;6+i>_XnOjSO$)&~)6!`<4&YSKciliz@;eS!<$ z^DLGE($Mdw6N`yPA5;Y=muBp=rPfQ5YPgoP?!N1}gm5E1Q*W3V3aH%OBWUN(>z@Z4 zme&et!*%FtEjIJB7qj zi>pIyv0A!39F(Kmd!@DSasuwaJm-u1YSK0jGwZw3%XkM%|+!tGZ6iyUDj7&T2iJ7B^gq5H=%OT+3P;ND!^vTeDL+AJ$y!SPsaWLg^+|V+WbPo-`|JN! z|MTi>+k9}H+7pooKNobmz(1N&nEIl-S-;sS@%f0sq%p>CqWuM9o$E3xVWeQ zIV_JyX9w>gzTE?zwVlomq@qT4|J!&d-Fzkn-^0hRMW~-HZ3WPm1VJIkl`DH|*V0<) zS%)!X^5M}(8<|Mj&GlkAt&^68?&g0Uw^g)XGON~vW3l|RtQWD>+9eWAu9J*F-Iu`` zBM@P-*%2h7+VFgd-iKH<->y`3N zq%_d;dWhFeYS${A1tL!X%N(xeCnMF`-lF@&g!va{1YPQQUoahL(!E{xeL=hQp%NgQ z-hG^@TgO4PaPih>@xf{J_6xvKtfxd0m2>{DMRMKsXN$^*RgL|P73qI&8qFFJ%t{8o z^-%SxAd4c;g8M9G2Gl*4o(aIMY)@W=7<*1M$98)W7c5!K{QG3pM6nvK-P|!$g~rmm z@dVE~#eI&NY+5DgLo}MW(wX|MzfO2ORoRPfNu;qaP%iOLk#Eeb6t;LtT}9Zv8mu~z`@tnH8^JR#g zan9-fLI&}c9aFTx(Hw(*r>ZR{(CPSV@Q+75^@XO_SweaE#z;XC@6}`7aZSmD92Z5{ z%OAc)8+|PHoieFE>i_HZ-uFvoCpagIeH?CYJ~eDV;Z_~6b3jfZkC0i4mek5k_V|#g zTv$Zeo0Dty)U~+SS=pQp0;qPSqF?k4aPiw;>x`07`tdTzW8;2f=`|KV6~>iZ z(W(N>TteOp6m9GSZ5roDMrXkih&h5R)-i>I>_aJXK+#`^M^6^Tb{ck-O`QI=ezb?f zT+59-{l_K#y3IEm+2e~*;+T6OJvBCZiWA%a&^G|e9Q>rre8#t(G zM`T8j9Kf@9AnlqqJ+~HSIr1_-a8t#)#xOM`o-$9~#`yQH!o6KxXNhVdJ)x8Srz1&@ zkWKAARy$UUrxP`^OM{q;5th~N(bq?+1l?xZd!2M_?v9Df=H3z)wmanjas{-tJ(p)1 z^$^jOv?fc`r%(fpM_V}BO{yI?>Kjxo1#v5r+E$E(&x~~F0o1C-inMKNO<}H_Tq4aw zGCY)+lZi`{dy5%}nH^Yzptpb6Rr8-FlC~HQ#{znM(*YI!(e- z#HQu<%mI)kFrm5=Iosj_A;%V%z{V;R0~lbII5W)L)z{fFb^4^Qes_U+3#i868CKw) z3e~}M-RVABB^(v4BiiTCzhmvpuf8-lzvg&C6m>GAiCIb-XqWL@`s&VZMHZLq#u_cd z7%^;Cc;rtrQK#Df8l8biOI^v~(2P=XY3J)&4$HXPWB7*+41tS3Z)=a8zX4}6dW zwQ^m}e}sed2qxh6S5>f~S|Q0@%$KKKg>iHW6_GRf_LUSe)kT***XP=N;`ceA5RC-4 z%xv3qDPY3(wu8;sBmL%bIYcJw+$H;jrXsmZ#w5oC{#9dC|1{Jsd)+^4$L~C+5cS5= zIvf$9F6GI$a6sJx2kQeP6z^X-WbSs)pnr&TqK|N(b@S(v$@3dnp`pDLJ9+J0%$)OTRt82(#7cWiSkRndWtc(lo+8@ zU4?m_s?}mAAIB>^Zz&933z8N&zeAlq#Ln&uGqDKbk`$}LpDb$E6JZuLNjoXXVglh6n~xXvuC1P{mRV1z>&1~|F`2skPxNq+FU@A_-hZ)YgFV}W|6Qgu`P(rFut7g4MS+%m*oKHbT;3G#O zC)R2hHJH|kD#`4hygGHmu5oY`ZO^Z8BV~tyBk$Z|w%a~d!m*8F;_dPuC^W4vU-{;vSA)YeV%Wr%Nm$VJMdfgh( zV~#aOyIOI@eZ5ILzQxOz$uFXnq6~v zGpzrKNsoEDC9X+NjL%n`UW?AR0UwyQ37k6mv5CHUm@>b-VjTMOF|q#jLBW~r48{Tzsd)jRFy9$lT>3QVuJA~qilkUou z_fP)OT+X;+aa@wd>i_&uFg2$n=w1H0u?8pn405-f-!%HZS!DL^%Rx@GC}HLNZx@TG zMjv!0^Pf41=bq7vrx8b(>r%j(RF)ikBcUSMdibmWzY!pPZT6wduE}xZW3v6&w-TQ5 zye3~U==YBO$P`I)Kj!;)qh{EOxhja2z{*R}pv1r{pO@Xg+iT*saBPus@8HmjPaiM4 zj(s)1!{nC4(5fk(wPlN+q1DAA++gabrw)UbudIVN3xC=b@tjN#4FX*MOoh!fOhY8d+ zX_pe2`4V;xcBjrmkx5rL13J5KYVu`+S+*b5KXGO_$X&6sqtmI;O`8!X+Cl20F8xF4 z@&9qkKwd&Wv9D0tUtJE4vSQ9Xlh=%)H|f^{9H}3WR~P6}>i(p&`J|xP975^aUyq1< z>fKUM7C#$nkOo?hNA@?HYQgL?y?EyrZx?&yO}1mvSMn9&_gyya^QY#2<}bg7?TnCw zdgY$%>2q4TZ+0Y3`aQ}=R;4d**_~TGdGon?W6ASX*U`iU9PZD{jZTA(WZL7KM!k<$o3O;NU5`Cn@4byfBWS`# zqoJ1)PAbI7vy(iQ!pu6QNqO;&xkYI30~>Z(bY_|TInz(e=n4DDrpI4Q^4bR)!HIRC z7sr2@Uy^1u?^yq|a-vOrEK}VkuXCrbndqjG@mE!A0UNWb8Ml<_re8S={HG2-rnX~W zN9@d)Jzt$B#9Mb9xsef?5x6sB?tx_bSJml`-n7>@kK4o<9iR49Fi(YFcL7OWx*Il5q@%BmuvooLLZ_;ai}$__UAnTJwc}gWYwfDI zj2sQwh($c(+KtikB&T~dEg$P4{fN(2LrqJA7}>A&fAHM%4I~Y&nZ#juQ~MsFMXH73 zZ#3o6lgPJ}Jju-=ZhfOm7e18VOJw) zju+llzql*cPh8d`CwGLHY^YyyCKBHl9yt1NVdNTMWXiM9*&E+$}9`-?+Cq zc`5Q*!@9173d+MkS0U0;hVxGGk;__+CgQZ4Srlc@(T3TGeZK z?K72$zt9wWXM$cHZ=CR0!=d7`9vkZOlTPK!eY^8N6sQ%%&XN0y)+<<}^pH{r=v>P? z?&ax*aa!2R(A6tDBQ#gsul(P+uNr$be~9w&N>QE$eX(~q{3vAO!IIdFQwr+3vqXP{ zIQPPJuF7ifcV%Wfz7j5b96p=^v6eqAmFr&}J42;=*-bls?!bW_{sBLLv{)+M92mI} zduslriJ%d5_yF%yz`s6OKgQeL=T?RO7NDB{yvGS&PVXFu{A>_fg6p(n^;HZMTsuvi zshB$7tiwMPeVQ#hb~sk*k??&@5cM>MPyn(RuIa4nC?|HHqrEJxrI{ss6`-p$8FjA$t6fZO{d#59;;im?s073VK`DxukH^1X%FX?CcXYM|7PnWTh(a}rW zGetg=?eSP+EpIxR^vr{3hoz4-vbsf~CC|Q?7Z1PP^FN`oDmZ6c-gbWpq)$BXkr2t+ z9T#N1^Yljk&F2eWYI`MxBbIw*{x1RtXivC(<}E%RosEvVnQJfgjHucSST(e9m(zzQ zt49AuZe)oauO(lUnqPbO(~GCdcO;(vBIoOfI*H@=pI(rN&>K@8SB;$;+9cV35A06f zz{i7k-KCyr`cz*TSoxSsZu>Dvr$gD`;N^JD^r=^^wf_Cw9ZR+<=Cic(Ov@f+j z`h7qxrp=_0OZUm=r!e1jwcGIChJE=^xuOhwC_amg$LD)&*B)%Z{>1Wbc@fnlJD7_2 zcfpTy@v_#09`8d{CZyvnM+N%IbUNtoB>MJ8tsc*N30_RzI->GUWUy$6Cp++ zX~+F1=-l1zHp^8DA4-K4;{|0G^D0$U+V1%*A&Q~Af-A0uE5?JLMdWb_FVDPv|K=sq(=;zWG!Yyys^P%I`y@xpeCG74n2NtFtdLNBR0u203pt2>0N}*nWsb zsL@K$Dr2pIY-(F!vSX<^Xcg0O#h?st^!*TK&D-RNzwT6druEI9}K^ zK+8y+I6XSDZ*)1^Mw_htpOE6KFFcpA(;}in`{kPDWkkzF*@w#O#;?a;`u=dZqXU|W(Z3C=l{w{3S z!i=Y|rJj~wds6T2)7+`>Xpe}n!^R7pK8DBR5 z#YPi`xbfxV!ooQz*80`7%rBG1e)`Y%CJJ8diBD<9s1^!EU&T5ffmCNJtACcth5P2vo@t~9zUabY$#y@c?E%+`C< zKwfgM0(rD|{fh7Bw80rvS|9rN^7*6ofh7i6!pyt0%ghxStA!xnukSkf;R%5-ZS>39 z@0)rIi5Kr(9unP2BOS@s#1GH4cKN@l$P%_!5FlIh_=ke~8)KW^S>D(DUe3Lwkw`9O z5PvM+jydMkVC1vzenhHl*xogfQxWvB>9>uV%MsTsbw}bpfgBdv1u>hiB8r5U^K25& zzkSgx>UuijE6&0LZ7+@Yyx6wRI(JqN2vW4>p4sP~DMmRj1eCUzBuz50Tn zfXaN(Qlh+_+iH3DhNpifqU~EXWa_O-G0(M%H_mqdFuuQnVXkl+re96I4F z`r-A-_8m-zAdj_co}PUzIXmgXq)D4BZkiD_ebCK(u~o6DJ2Alf-jCI-!^D!cZH;tv z)W^VuAYLbj3yH~t9Ji9vHhjOlT)Ou6eW86~m+7vmse^yNO{v?9n=Ie;Y2#nV&f-6+ z_ppA1ku(_i^58(wYKP>vG6T0)lEUR^z3=7pBXRBRzw6s}WN|MhyRns-GdAb^L1{04 zyykq>zMS&*AJ4G9sJ=OnfE;&oZxxFPeWY+RHpH=-Wcl2=@sOHFxy}eAA z#|L)$1R8!KQtUw?b@l6MX^(C!7&ykcgY^=9Hg{CQ3UR#JyYFAun$D8l6W%mo!W#=md1l`gg15F`J#Lwe_G9m*XsEjrVT%A zz%G^nf6X-L8ND0Zu1WoGRw~!mVM~Yit3WsWiLc3Tu7_0}=(E|s;6G%S{@Z~(Y!qg2 z;i1``qjc8bdRgt9x|x_S4k6E7{q|>d<*mU_N@p_?8Yz6xL4e0v*0G+kcd>A)uOGC|!u#gzZBL;B^*}WleqE_Z)bJ*WWe(=01ssSS{;JXb ze+nBjPfZI~<|pU0<-PPu-cxxhZ|O+fnZ7rUbu4d{T&UG1b`ADaB`gs}gsE?rG$Xmg46@mgvv#;vX7_Xz6G^*arF;NDFIXYli`JON~JWXGU!d#Q{u%PBc{Kt zcwyb4LOUmwv7_JqC}PoJl+(s!I+DN5??+WxypzV-d+URXkvyJ9mUhFL{<=EL`({DU zld`Qp9ycAtc*k_1UcG1cJ1Mp;V?T@yIH}QNjArQm;w>RdPiB9Q@GNQZi;Dzq#taX6 zscdW5-?CpEHoGEQHQDa!b(P1_IZthG;1$wuRmry=|2l2|w5>2@(O+z_=cj=mCK)q) z>0o4m_O5-PmOCQf`o-d#^|z+n1uMN65wYu14lZs{Dy5izH}G*SQ@Pc(%=1J3iiwKe*;&_oXCTSc3?k!d4AU390%CV|G9Ku@{>omun2J{HGRDU z`|Tf^w5{IivID(8% zNKLP7_%rKweGlV@Lt?c1S-UrIPF=6);HEAM}SdAtn%v-QoJ`$p;7 z_$%e&O?Jz>_E<7XwpwAkiOU)W{i?P>IO;Cp z3nUUj{u1cf?#J-E>*};kU*BKGy3eLCw(Bp>a84ImknT+FIph%ZYR*n5F`H3+Wn|Pf zXJU18;5EVup+AZ3`YNNqaV-*;c(icc($QmhSa zZyiriix^hl;;Nf(%g?#*Su$Ia4uTAf{nqzBoMRCVBvp0&eTn;i{RjT4T^g*#{?yQm zb(Y?5&9*&|7ODK!tC`*NrcOu8-^dHkFfh`Cykk0#xxwUIXz<7t-)0vf#!s1CXy79SV+4?8$xsB8S8!qi8F zc6OfCNl_7YlbDCwt1a0XS0ntxp>P;-p5JNYQwNTNEwmR76{h*uWTu#RXRy>4{2Z3k zoI5JL7BI|Q!U)3*LRCj|n>ctf{*iw+S`f)r^jg^UFqsa(U{Yu(nolbou20knN|fX?hPiES)llps|_+~_J)rj zF&xUtnBB#=uFF17Y*;KT^z><#dGmj|nf~OR88y`#$udo;oRhPCU19dm6u2Pz)jper zE-$Hc2pFfD1I}a{jbOt%it0y|AhP+Sv{w4~k$>KG-QDAm6+|!s zI}n2(OJh5EFZwqpKkPSyclrqI+3Uc%oZH|m6zclKy)g%1HR=02n?-deJ}l>uv)INP z!CAXJsj}-?LDM)h%g_a1B9SbP0-nrT;k?HrHVBJAjdP-cHHGlGI5~=-OAbcu8U~C( z;K*tx1${XRKDU?}x}eT0MhoIeqRR+j6uc9qtCbQ{+@5rTo)mldG_O&&w7FEgFX;F@ zxW$mRtO-#S4{J7Ju>)XOo5rQBBcpjPPO+&Pn)2DCg>^Va+Lk>ja9daw&BdSy3Z#i^ z_~~UVexXKwFkT&>W4HVWqTg^2lik&5cKA%;I+!lxB%Cjk<+I#4OdE*kn%Ic6O9}P2 z$34+?9+=iGH~LlXZ>_K7&#mh(-ai4NE~cwV4F8li5CmZ`QK>Zc3m( zdsr12W5H~vH!J?H9vcoj;Etcw7d06Wyaf3i??c8)_j+K=C>(|4j@A>3(nnOYoU@B8 zn$E|MIEm(@{!Q4B)^DKuY&gIdZ%hsUe+-TKb0Afbd1#d(*r=#J(@Q+l$1)AZyz^hs zo{c4xVV&EWot`N!a+11jM|3ZyqDWkMb}XDccRj1vSLm;RqNAdgAhGnvOaS|vv#q7pI+}D z#(K$)K&{QJb#S05v)i&$TcEqF7Yx$&gw1zNw6oShi^>?k<1*+A1)EKuC zZ<$Ln;4Yw*dV{$+p3L{t^D(S^nAt36Sg_h1YLoKK8`StQCwN<>{6MiM$G^t28qIRW z19`-hl?@JeO%S~2+q^St=2upf zf9vRAZ_(<_kk=a|WF4>I4cQ6!_e|L8zXCuMX$-|sghoiS0$~!}yam@=?m$LxoVrW! z(R^2l5}sb`^ja(oj33GmOO0@^2*ksaTI=E1w1AwHM(wx#EG@Yt(8Ss#Fr5<6N8ng z;u;oGFtb)zZ&!z~$8yk~C6Pd8dZoWqcQHYOWJn8oYCP*)N*(<|bwz9=l9(YTjCi`h z;2G3YW)h@es55v-5-l<&$@kk!`@f2{ICY5d2t95=m3dFx3)T~?*}9@aU$UVI1bCZ@ z=@;Z)xi+(1;x^bGzif?9+DK5Ik8`UIcjk50!;=rT#8LSevB5$bLRRKojjkF)BSZsC zRsw^W%eRQ1Tk0OanX~nR67gH(_G^ zL(almNL1#C^j@-?13iFVh6wK{^R9FHwSx{{^HMMepSO7W899I`>-$dAl$nIc5sp0r zQboMgi4+WW5}NKL5lO29?(*zAG#AQP2{51mHNs#M-NS@gqpI$hWG*3ti;y{Y?h{IaA45XM zI>eL4-{mkIs=MHm7XY&dk;B=FC*z(q#N&QV^=5S&vJu9X6xzhuYARz(6iwV$Y(t8S zqXobg(Dv4SAW_%9EjYLq)ysrn2759fr)evPq73U1ByGv@y!@ow1Bbr}hTF08qL5E?{Wd#MS_PAQCmGW&Gw|Inc z$TNE5QI1V5KU#b~6^CJLs+Q80x?7A1tZ}T}Y1&+V|9NcsC1QWftqM_d~2->Ek$}oMwLE$olNw}&~J+~gMN)XSq;83Zg z^-$@-(==^v=oD-~lk^$-S%rOhcz|*Px>-?XW(ax9qjyp8)5PnA0&@kGNv?-5&&ykJhzhwc) zp{Xd`8JM^nsw{8CIV<^#RppsQQ2Vs&NY-L&t>#c4i%i^2M5#k2d}GRrEZNl8rV1^)1uRdf}|yym&g5G^HL@SEihE7x1fRZrkzXEZc4F4@#p646ct7OKA`&a>C^RwJn*4QX5T#z7Kmy!W%^B=yPjj#yxACk;fJlp9 zlM>D>R>cq_uM0LPeeTYer=r@FwaG7sF2sN^lsjZrkI%SGjA~1~YX~q`vTix$hvmT;Jwk&^zrWlj4BoTB(-VC59A)J#WB;ifkd=W_| z>CF6*q#YEw%i-!`<4_$lLc2S-D*&3<+WwbGb&{kT>_FA%c8fB$NY)2Cpgn@bacG+> zB2VwyUs})HE z`5p4$)YADJ^n_>3;A{rvG+9Wmi?gv!DJ620h zZb5q1p2o|&u!ub$L+e;JSx9YX>K=zFTWHIl!#fd1C==JN0JyrW{+P7gP8VrQ0y6sI z*Db6hns;@YSBedSOL+;LSQgm0U88T$fsJ74eKoAWxftE@Z!uG3Y7X7Cu;b(GnfmU> zaOD45D-x9IbzkSI{DO|@9O)xT9CBb>?VY7`e@qrx!m%lJuxK${Z5b#=4~w)tY1oa! z$TJI)v)&?uX{Y1~w4gR}LA~NjCWHslsiv7RILJZAJZ0w&N!q|hVeI|mk>m(2wWMoR zlN@%r&UkJ;A_3YztFERr<7KA8AQyA2hNZ(1{Ni4ENNW4V=8h_oP|0BXANP}6( zAIXU|vHws32@$-n-{K(6HmT)LU5oVQ<2f2{Gsog=qEDX*NnF*pZMmHf<#SF0r<@qA z%K^YWT1A*l3wNEXz)-f_bnDf5*BA!VCxQ6xwq@(0`oQ&WY~2+x!J4BhFl7OlMo0>B zn=Lj8&yBUmvS~Izf{vi3`v^91(tXLq;}r#q*K#4X>2MvYHyeaVZcv-lr;n_Ik5{~k z%ns2A*01YwoAWN^Dl2$$nN`3DTKGx6yMxo|`LBM5( z(dmEm?XtHQC~HOce4F(HC3a&Yo@R__xtSQ6Ka39o)mgSFX{#^i6T{NHboWi5-r`5R zLTirVc{zk4g{L>835_1hokhS^a1@4tY+3X6v8*N*)Em}85o)Bs3qbZZf~dY+II@7? z)+UAPYSkD@;ZgeJQ3}nvRsS2pS0nn9358$ z4LjIdkN3pFyj63nGn|u$@F``4Q9D~hWoMa1v-DR#`cBX?8i532Z~1W`B%W5-54PtO z!{+8(=!}d57K~UT`dw)<(M$Iz04jDO@tVfcg0v&DQO;pcnru@Y7LojtZmZ+xz$mqJUeIjRG7)b zVE|<>qwS$UEjr~23Wo;4Y;D=veNl!Yef|)?SmMPuBd1Rz%L!cXZ4lba`CUP-b8{oh z#`RbP=8PY`$ep_Op&!K7+V!zwL0&qqybv9Mz|B`%0n7oaa$Qh?;orSw;Vtm}1YinX zP_}W3o49>u@wx4^=(VY_mqu{kF)x(=HF(-fz}yyFR#XVKH3V8GXaUFD6~@k}>bqA2 zjj}E$l!bH9Z@{d!n8>;NNs)8?4gHX|C{9vU?(<4XH2-Ol1!}FK|2#k)%vbGP_L76@ z-NIE=eu82kSJ+|<@7)3cf<*r}IC99ZTG`C^)?fq|!rM^k!#b)K0H!4W1t+F2EY9tZ z+{8*0X^vkHsy7esDB|Fzovyqyp!FB3%|u;8QoxoyLai$H@NGtg@K4;-9uO4TAT&01 z_!HBO>heTDi>{V7izoqQ&&PYfh?k2Dg>l&A499Mq6`TGExNs33ZOF{^#Ka&2Jn zdGQ^f*=rVAD=NmZL6g#6Y7%HMr+ z8fdJ{Jk5w`{wY7GI2|eQ89aZeqET&AhYbgEMDxyuAwr>@CvD=+gny8xa-G!gttgZ= zsdK}SUkAhD%SQW;vZ)O4@Iz=*J>+l&rti2=+AKr&opi>+dAS!6(%fTl(jgn#yyR`B zYn~$l&3_$gw9v%S!X`^RjfC>|C{9ApVP!{9u)7S0b< z_;yAWdw}te(4UxT=JC$W$UAJ7HzR-OyzBCZdJ{42y6C{9k~&vI9R{=PkNZ`xlWw_P zE@pv3|@gtDmV1b9G zN7+^YoDiujf}!@(Fym?E*FY82d>^Hvt)p{$ELh~O!i$k?^(h|^1WM`$*Wt&B5xK#^ zMB!L{T5-+iF-yv=jA0ief|uwP+_^c`TXkK)%njCrcWY=bZe{qo3iPBKcp_`4`B;dO3jN>h+J);M+6f+Co&8`Fl048mM7wNU+$HTcA-j=8@tlkRGW1C?KTc6r=9bbh z0f3EES_i`-Sa1ZPdKckU*Pfk1KS~T!M; ziO@Fpk}Z2${BP2#Eg)Vx?*(*UJA{h-Q|bI*LRETvd2j*H&H{|U4#iLtaG(kJT5DJm z39c}SfA)@FiTrEaD7+(q=q;YzMJ%qbig1r_@v_&h40%-ch7nilJrlCnxbgbT>++Z6 zVGvxq+&Eo3w}@uAR`ByK#7tM}-~bH*iGqe%*TE75QXcu@;g@&qP(LB zzXSHKYbOTe!S(&%u0t8i^GU2{K~r8#PnWz2y?jJiFAX1JVN}HVkQwoGbolQWC_7xxm-vzD#IWD9^0pxD1-9m-T{!;>n0@52|lRY!%p7FoAwr&R7_ z%a#d7L{>^?U6Cb8(6E@O%y?v-(s1#xD|%u_Oy9O}RN!=>HA0At!c?YW21$b8?6LOD zeYU|wgJ?yYk8wOK(AD8X1pz%+Ws6WaN)$n986hnD+EjY8dT44X9~f#eF}`LW0eN3A zqI!7TzvFY~miP=B|EGm^`?CN^=Ocs!xi6Ox$7;BtlEdTHEyDzW&6DSm2O?ypVZE+; zY_#xNimHndDD(~2EtlZtysFcghlnN_(P+)cK!i|IufTIEk9CC#K2$K!3&OLN!ULrF z4ctc1A7$jZL#HE$oL78R(^<-la?adhQqs5zaZ?qUsztU^$wlcw;q4-q*~P>pH{R*U z?}jnlqtwN;?_21t=UgZ&{YMsPMcE#;dg+FIP?)uf-KNxd!lBNcRFtQZ~7xIIBh-KI?UJC*xi`L~8c}*0uCEnuv0%i?987LLEBCm6s`fUJwE^~lP`Yz1w z0?nztCqM)MU{#w>COv=WU%4jDQ^Hd*!W4UK5dC?s0c!0buOiq@pg{Ohc7m#54a+cq z(4qnL56h+=uEL+_8t5e0khG=$RZakKq*rSGB;y0207u5@F~y+;1_;bwNmFP>w0%Z1 zrffXkTi`ty=u*GJ_UwQGTTn%d&v7EJD`ed*a49~(7>vcJ8p^P6Xb|p_B8{UeR6A4J zPeymr_}|*YATWZde~fW8*1kJ8vJ&~=1Y(qP8XUX~Fr&1&8IEU+acuhe*bI!&JqUKS z*lygv#w3^s$G(mwBC~dKX)E5b0CCD$hcG-{BS)NkN?R-MPpIE>d~1jSkl6Hn<2hi@ z!>Zb({}ZRm@=Tghz*4sXG+d!)DJ4OLq2vH0Q`CsAFtvZ&<}{6$U*_JN8p^MSi|)l5 z#?$*O{`-IUWL*fKWd5Na22b-+VKg9!CPC0Je}tp*?G*0%uYI0ySy{scshTxFeoux0 z;96+Lae4qIB)Qc^0K|#-NsDo?QN0B%!J2_5gC;EDZOth3w!>Xs69l#;Tfv*6tkN)p zfkS@q%YDuiRpHRny2u2<%SEePO>N~Pm~^BkHZnx_=W!r&NGjDBfon@v^YTN}|In}H zn_@<6WN~BWEjOSxsQvSd3D=QBzLtj@*l$p%@Rnh?HbyKV_|f=olJ%M~?7@sU)baZ9 zA-iTiMz|xat+Fyen;1CtmKj-G15QxPEDAFGc!8~j+w00{+B4B*4MP_e&F_LUAE77O zhIKUlL3?6YQXyRQ#>Kd0ac_&ZFc=!(f|KR7(h__`RWTE0F+@pm-i{cd2kHK}q_{o} zy)B*|q@HAw;}QsRsyuC)`gxt#s;|-^>2yQS1GoHZ3qH0$=C});olypBIA0lXO)tPRm@FitUsNRkzxx~AzK&xcH1ie7+ipFt8TStO{`3C$6$!xcUv%;YWlv_Ha=d zlRW*9A60kdx`MwQqVdv%3hWO@)WB;|(*L)qv`w(~u*sS>D(Qr5! zN+_h<>bwt>C71F5h$MZ;hbAu%OD^0lS$`U!w;q4~3f53z5+dJ6ky{^b%fa#M$sEl6 zM`LVqGx6b25`j8bf2t%nBFQpEnf@OQcGO4cftagtAqMMyVX|Bi0OxVimnPXVH{HR+ z7_~;$X|@J4ZEZOj*E&XV%C`#`~i($^A`>SKPVG!C;>}^J=k4tu$1uIYZL@ z3AC#FtJ70lmG+16CQu}!W0BTV0wJxBbye}t`tVOj!$s4q2;SEKdu$=@{H_itC=j(^G5t6P^7yP3K=Dn2B+rHK`xCpF+Fe7XPTo1>YueKO)xc zmLwXBIuF`|>MVSu9|}4?-X>2>$*M-?7S$ya=#fNPm^xa8W}XM$CsrP*&-SfU-6KTu z@=_+&Plef4XHcH3x$yb}gEoW~6Gc#B{t!a}PU*XM=eq7q8z|U#!6^)jIAs=3ACo)P zg@?i3^x?^iN!2d7!MeZ6AZ2GFy@U5#Hqi4;9q(#qW)zl9LJs>i^qY`Yth zI-umHeYmv$ev2gO>v z2yhF|Mwh3IW#{cWWd&Sn*W zRq?KQ&BSB$m0?`WxUmnvB!FU091-p%EpJOu$e`Sp75?E#)7=^KBtkRyF@D^S#LI=N z@F|_oi(uZJ!P)-RGzNLNsDRxr`j>~f zTSmI!Ubi$1M(K~v@BR$_c+(02bE2CG*Ut*3CMH;RAAguZFYnm%h5rfilHhR*;_>Ix*7$$lFpf0+ z&*RI?>r0vW(Ra2^-_H1@CH~35Zm#2N#?hB4lDp#Vz*|U602qZ>W*ibN2yx8y~AUB zyIHSo$+nUe%%$|m61=bU_B8HL*l^K0>lr6t`Zo5fpZGu69W6Y%3yOdAPu@Yuos^ev zz+>lv!xn|RtpcAA{d0Pe-pAn-pP$vg+2)5HTX@h6>a@`dKYra72(xp{S}O6rW+#=M z9K_6MaA`9G`-vFm2!pDKp~tJ8^5JOO4#XcmvY*TGR=utMza&!LU*cK~u10-x;_la* zHs9TID(~u}&4$LG_yzeDZKp4t1X0dW{<1o`Ii5S+^}_@d?6&O;;wz6rOnHCQrH4dH zYw#Dtlins?!v)W78tAre(ivoYkKN?4^^M+Ylhswt>zqp-Z{BwyzS?A9K--Ew>c9K9 zy9s86lk59+ySA&39%!2NF7JODd*f%9!vAxyv7OoM`bjz%SGo3`bk%<`o!<>$9rbWZ;em)a(wNV+)9q2kc2T(Q9NiIbglGwXi zBdcAvhU4tUdt8lXyP|aVc7W(m76GqZr3w0d7x=j*;ksr?sF*SC$pjb`8AO!I%PZvZ zEnp$?vH%z$Qm$C_`Kv3~k%IMTVlNYW1} z9+3TqjoOfKb%+Yxha<_H9YEr)mFz3c*uD~0hytMYY{OKQ$bU{i-_LIi@2sRo<+{RU z7!j$QxD$}^$dQe_{9BQg>uABr5nW%gN33BqtS-WbvBkM#Znd!1Y{qt%n4l?O2<&Q$=c0RT*?xsxn5!3mYc+x-+ZmhA_>YeQ5R`MX=+_t%2hdIE zLmQ4FsPwwBZ~T-fbA#NQZ3Eb0PJt!#t@zqi5{osy)}*$AXuRcCaWF6p(iS6bBI~^E zQLUIZCbk3I_FYsA^Gz{89H}FfN9|Ebowc_z7(O&v>qycOiu`Cb(2BFyS+17vr;Xna zS=olAP2LN)@V`DdC7!!yfKX=CYJG&djpMMnV&Y^*`Q#Kd4Aly#(8LaL4oA4VWgYNz zpek-DlTgRom}+W{MZI+jopEa%Q{<>??c0&UG}+j&JdEkq>Aoc`)2FVLkGIoFf+*XR z&?v;516Q;`DeS1NDuTV&BX&rzDWP`of{Vc;NL2d9;Zvo?;Ym>42*0Xh($G~dT}w-8 zqo2!8;OB-Z=a*3%FCJ+jEqT|bA~~sF1;gq=g%ykh+|Z}nzLhdB@&4jWjpc-;Gt|C~ zDv6%(^?@#E6T}A;QPWsk;5~h}o9;c#4fF(##@i+azPOZY@LvoKEZB(&qkz7uy|c^E zXTqa0d4(61O9rUFTlyC*zJBzw@G$ca>ce7}+3gG1(dDKQ2|#mIBjMUwS>^iNT*Hu1 z02@Xj6+@qF94k)v4gU8L9R4CVmZmLWBZ4;UY^TxZW6DD&a*pSD4-#xz0O72GbNWyw z!2*^1LA|Lyg2ww=;*`VmEUgmUPX^8PgGmIopR;R%VsK$L0yZ;5>a&T1i2yE!5N!T% z^o}o0hsgGiqfI)IWCvm=83KkaTRP0YE@5;cEdVAJKY)s}w=SmKis+Al#8zAr z@NZ@Uc>oFLN9+Cyq=&<9cAhe02$u3w`vq4NuG5$hvD1Iy>FTBHevF1jIO<;Mj2z(SP; zE893|!)iS9v%gE85^7&=jGp)kg+i)GOXp+g7~wUJik}x1VZv_zk5BfDF|Q6E!4wYJ zi0#Io2hfD&3?Pr>M)mEgx1ge~i~rjf*ja<-7q(RNjDzifxDmIntQoMK-hwv(sXmRQ z#*FWvA-lJD(h_VGKUNW%Egz10h&+7+;K?XB28F^1yaA%CTAe+CMqq!vX!nqJ_gGi{ z{8kPU&KkaJMkvbrT*=2wd`0aw^+yT{Wzy~~u^A_8@Du2ki91Pdl=a>kq7p05lT=~| zfsmW#zrSNNOUspM_Rt{nnKgNhqrmHMXT2p0aHzCf1RGPRHhrEh@g%w1&5S-Ku6US9 zO%2igQk_vaVpkOzQwC4^j-u!R#3xTb`eYhO);5+#N_gW+Z0g_ToIzt}rIbY};)7K6 zd5*&@n&>LL&1YOlMI~swCkg?r8+Mas^9}-Jri-|j?88(Ym5(0$ef)V)`8%_!TC7iO z=Exd<&3D1398?Vrf0nDHq6E`mfwEbVIf5xDLi7J@F|sc9^`$Ku0dl;k8@%DWO@tj9 zB#qz6F`0JaU9%%w!qWg#Ud7cZ$CP|VJC3S3=vWa@Z!Sdy+q)KpIRehWwcD%i5X^98 z0PRAI8zpH@5Jd$TGijb9DtUJCjfJNg;DjFlC*L88cO1f&)}qR@TFaaHfM(Jb37Bw< z#Ojq-#AKY8_|`lD5LnlLb+se_J(eE?aD`L`nLnM1v`?#43+6s>Z0rEJAUOS@^|Ypk z35gaL@d=~;?bB4*+%)skn|2mF72q5CP9j8S+biI*>&O?k(yxs3-$ImU$gIcLb;K0& zVlz*2rej>Rz**_*E^qX;FO&6KL0l8E9J{;)E^?+jSWNI?_(x&wRn+uaWLAnBq3J?3 z`kk*sw3c8qE&a|!SgW_U1&kd<_&^6y>ib2Tah7RS=tM3Xhgsm?bDb8w2$&z1nXmhh&1ZxDkxXB=x0>{2HWq5JrvP6XHE&;(= z|E&Xxk_pxU%&JJ4&vCde8<`=SO zG>*Va!Q#P$6AmM5%t3~QT@{f)FW^)syY)xd36Yg7AO3$>p&WRciqWBb-i09uQo+o< z@SSmUaznqfeP^W_Fw=?O6f?JMRH{Sx24Etfsj6r^FxUZ*RqNB?87OUYIyHHP19R>K zax%Ke8lfLJL>M|55c`KB~mF0wOKOf`Ra6k&C@hz(@ zon5^J_PZG4k06egfIZL-oOeBo0L$n3#kti3hcAS`SE8^kCLdd_^txHrv<#tS^o=uP z?8NAx&KMPbXT#!ul*O`)0|HF5vJmm5|JUA`hoyD(`#!TtO|%)TNt|j@W0Y5Eo52~9 zn8c}(mP9dVpl^pGYSn;oKm}86ViI39&TXQi2{u&(+6Yl$tC^IjuVRcsOBAC>I7-m~ zK~x6M@|@>B_x#nj|J>(3_n!X62G+BH#ol}U*7y7Q?meE2Gw1qQw-ZU)vP_U!Xt2g0 zk^|aE!PnEA$V*5V;L65yrr~QNIpxEO_^Cweq?peNqKJ1NjJJ`)XFDY3e`fj5lMgze z$V~YBatQ~YNb>4B=eMFAhPf0!FqbORE4s9=%j^{HEA#-=&DjWd6hEQ%UVv@MY{`BM z8<1_eXzv5Mvs@vZqgfG8)!P3u*8-?tzbLsIw-^#X8ddzgVRk#$c%{{$SsyqTsrS2f zSjY>bFgYHV$#EoFD3KTiEyg!!ihDlBzn(tRJ3 zU+#-Pc*Pc%kun#{#WeDsUAT6sCPQ!ti-t)xr6^eb$i&ElXq9de@7yq-H!_&D0y8j1 zmU;b4k4C4H7JfPfDfe@y-*k%ajA|z$TLDWkfKnMEM8swVd>9;#F@B>w#TOOq2lg1* zw|ZmO+r=Mu;fMma)UJa^q!;uBmjVDn`w0`I{q%_}9NeP4zya^>MhVB<$`~&*vrC6{ z`C#BB3STLGB!JG}&Ys6afg@H?VKGk08Si$A>zeptRN+qIQq%Wy=OV_sCu({x{C@EO zX7ZCp@5|Aswk(RVq54H|?}hp9jQ;diZ$N|4pBid`2xslq#TU^yX>OF_rZj&=s(CV? zYo*fr$G7?)>AJPa_WT5hBmyqkV#8<{s|g=d7|89iEw>XGfFBSrz0!N+=`HpsD>>#2 zewpG2v{(z0k>yK!M!}!P=JXYU6$@L}Z3=-+wBv8!Z=gc0*?PJTRO7EMb}&<3t)!bq5^fLXPmM0dZ(HWJZD1+Y|lZF1G@HVS28a;nryNkWJU-wB^^HRZKtCCqvW(QHAZF0JJy~-cAbjz#u zyr~8gaH6TIBAEEpF1c-b)^|%4LHRydcP+74aKcgpFu(02i@kf(i7H?QXQ85#CkIiX zRtYu7c&xV7vUX;YiI0cSy35r#fK6Of8f!6*lMZ_NVw8S+x;+yp<^_hc;qZjchVG4? z&j-uWXbp?OI)G}#v^T4*0FYtBME=~f$IXWhzHJe@4cJ>!C8{7$l>K-wia!0EwLdZD zgH@4mAdEw_1nmJN2x+XDR5wH;kxt403o>-h7jgl2eH9H8Bd7o-w>s}IqGjqvdATM_ zq zG18l*VfIn#a8VqnVsa)=-H&qi>mi4 z1b&14Gi9ZD2Hc>PB*Xb0eieFPw}E|6|Iel>FKLLZVwbwliA1WIkRi&7WLy;V`V1dM zr-r%H(yGzw^RodkY8-HhD)-}-awCy&zbF-`czilS#nyD?>DzEJ6UJ~rgY^e5b zV9s0Q|NEFQ%qjtL9S}g;`jJCS2hwsJjof`Ib|2F+Sb_4jN{4pQsu4bSYOFn-7_`zI z3Dlbafn5oftNYUF>cR-beA{6EJpGz2E=v0j!+}JK(_3JWZ2trI@O_Rk27=5w!CW>4 zSPDAzgP>+}fB$^22`Di!KERU}Lc|liBD$vG_p*IbDy%!-uQu(%Mcwlq^QoT~S^!+_ zshyyim}`?v*T}CO3GeHzD9!5+vU3Vi(Q5$c`eN!tDD6x;dRj?S8%e%|*8EcPU+C7Hr_By282z6XuG zQvp9k2UgpgB0ti?5X+8*12K`sGkrn8K{quM3yvm-fP(67AqpbybETzqwgDpLpbhH0 zsU#A~^2d>}H=^YIy@2;sK2o|eD69MgeK}<5yy-O4JC{N88jO?eNf?va#0JyOi>uxf zLQ}W28CZZQ*4ZP04DZ2SJiWIyL%toSO@IBw0mOzN;;X;qzdf%q^~hr{z}+ZxA*66= zC{FWF&UwNu23~zuc@KXqYna$f{jMMd4e;KwIZGCzVPU5j5t$9v5)SNhF^{=Ct@e_(<4Oe`xJExY z=n3M2G#n>&=Uf(WzGD;>it@ep&Kc3Zj=%JM%~S;IeknTp5+O2%y3;CY80b}^HEeEl zFs1pVT~M&_3~vjGtNP8y9LhL&(%dy6q=7p!wjos*rRt8ZW&SdorD4)EK| ziukcNMPiaRGTz**TML}S*>7;VtBfgorO$Vf)@^gG^CKe@aBdvRQ!Tf+lr;{qGrgQ z(O)ouJGsB@q_Qhs9LOR68lkXu1ENxLBqIP(xszXj5B_gLbO@>;1 zfNT80wkTM(iw#^L^6k+i(XtJ=$^tjOY&fkgvlb%e_0K2KN61$zVhXKA+0*WRWPt}@ z20#=m#>Q#X*Y)6;X2YXQ)}xAhk>e=$Ah#Tu4ZZ@AuI0sk#z>;e_XFB)g*=lY&hP|q zy)kq~O_G&s;8>r~$-;=PYNw&)jY;N*qk(;{x_^X07mHt__*QLCZ;8ua$5sHumE|k^ zc`7KhcH|JtA+!W*o-=|-heRo3J>^RyLyLzsQMz^mBCLe}E3?u8Qf}c+ZT4(;pAXs2 z*0#0yqdTDKVGZn5{CMEaQikwb&T>pcek-lXp^6|3gQj2XU@za+XEHhv&5B)-9e6B7 zp0x0+g#S_*ZzyNk5<+IOpWV7Qu99A9MM#O?Um7nz07SY5tu4bbeE=0dI^V3Xj0Zkr z7;c(H7DP;YE}ik1a>(i8Xz%m0CuB`p7Zx>r07;^s>-@SxSkQSGqQp(JwCUpIphWau zkS8Gszl2tOu9PygcBLx^c4#nyRB;C`w_j|?o_}iS3{NEKc)Zzc_5&k4z}yx+77>bo zd5)*nT-3GuI;!u$H!7g{Ju$j~tCET6gEg28+4q-lq211rD~l^j)7q1nUDphz{Xi!N z=|8%jM?!|kVX64A0_(A*UNsCvUyvSZEZk>_Lj|ssGDNATF9i2~JsQM^lTPyBKoFO0 z2lY9*%66{d?VB6cBokc;VpL0jK$_z{f9;AkWC*g{Iv_277m_jYyl1UXRxnWrtJP$} z?_q8fkIKPW+)&#cazpx{6ZQyz{A+-X1~Q~kXV32D}{ z{U7m?AQ`6|A@LuaZKZ4I)9wzK4CUQ%C-4)DoV0@~I46@liEUgAYRb3if{an&t0@rV z&&vTSV~D95GhWBRN!8z#)2e7;g|6KEb6p@A2Osu6ZO4vN-Kl`-fij9CT~zJo<{trR zkWNVJ$Z)#fS2pW9TEIZLAzyKYZ6|Le;}+>$Ae<%|t7L$Njk9kUh(Y>^Ye0tUy*q$uGeY81Kx8^JV-5+B&6e!Lse=a{u^r7s z0HcEwdg}x*7r^HQ@u|&fbP+-3)EGcFLZ;#>N}DE1yIW;!kZNy$<@4hNhYSOfku5QS z^E=-OlmyysiS|7e{l2v#PavG64N3B07Gf)$cZp0eTAX0r7=!hJuDyq+E5j13m6_@} zOr{i?cK_Pd?U$))u`xtGB!ah*qI5TVD3R!XTE@&I7v4;LxXLx8qruExBLR?oaN%n8 zTl}g|#$|{87U)|G<_43iAU}-bEeFPNl=5>Q9~L&&jmllnhq+3LwdvUr@yK$7SNmRZ zynLrb4QaP9W6)@Kb9+^-07OAOLj{)=vDPt5= zDY3j9Kw=?{y3cF!vATa?&Al)u_ZlQw5RLP00Bc<3Hm*<~D%ir+)}x=!>O;i=(6v@P zj4~&W@M`NPk1YixkNqrCuvjpFMYro-$y*`OS*F&`qYDeZAf+%YeiT3VUhDK?i0qw4 zM+_|)%x!Jw+>^>`1HoED)G;_8BI8%vqxTKCLdq1J!g)+jqQCVy@3!(14x3Pq#ulETt{Y*!o*H z!}C!E2;gDNJxr(3zI)BYDiIF7@)@J(eHW=ZBor~1B_e{oXPK82B5oTcsy z%4qPn30*h}n+9#0`1F6<@Uz<7Wi&v+j;J7hV*}99-q1pc!q+uEx|sc|`Ivb&KdD z&NA_O6@_kU)|6MmN7;w1Mh3kA#co0;0$33P4eo)2c64pzOC))ok6m)Y0O8UP33OnP zkMzxH7?g!hR$qbuy37k^YX6qt59pB-Ai$)sQV>~vT1dP$-QTS-f(D=p9_}famTJPA zs?rf(yGWP9J@_Hl(~Y0H=akHT_L3GQv}`8d6q8FT$GW?S;s}-h$*_23gaj2V=Y_?P zF#84=EZ<^&R_Ce=wx>bs3@1g@2pQBmxx#@x!qeBeNc9^@^W$>={FiJI;2GqlJ5-(b zrG7tM`4X3T(J;!hC~bKX0WjQOYUkzCFqfdBkp)Z9V)Fv!$6@NRux4`UxlVqKp}bOH zNo$i`NR|G5pbDKGKk-6+ph11-Fu+I@p2S?B9v3a(u0#T+9W#ErF_nEh6fjEW)}6^Y zXO;f*Ng(}=lXaPJ$7dkrY)T1Q2KvjSmX-#E0Ul;dSNr_}wLssVufvs>7lSO~A_3?T z4@Z?rOK0Oqsg!{P{}~^ghl!I7$$u(L5gB%4x?P5ikNe?70Y4#oAG2(v6Z2`715xJA zSkV?Ggwlk;a@lePf9mmZj``JCF(dzyy$2G0r?3@2ORkReWYS(u2_kg7b2U8->XXr8 zgS36(0&#ygipQGUiyxPFhJ?>my>~B4R)Ah6?~F6uJ=X!x4@&2IJqEk%X8@Wmyz3H) zBvD^ibPdoAn~H0T%KeX3y!@Uwpp zU1IWYGK9&H;CXF-2H4}%BPet6OOUWEerCVRu-21>lVr0Z!R>xQi1rpfLxJSZS~L*P zG+~NRGunTk^_$x=$+YAsp)1Qbc@m)=4wKCPQxFe=c&8hU0>1RKJ{nyL>%MnRDvO8> z?UmK6M1{Czm$F)hbx!cENno|fE>67AJTH}`7GRf3^wg#+(cD?e*z)BE(nl^cYF}o4 z{<{`V!-09iWv9tlQSp2#(FrN&(q~wEyvUEO35s9*K{WCCX5H40H*8wkW6xfDOp9fM_0~7rQZFexIyT+lz3u484m2F_r@!;j25XJ( zs5j?F&74xH*!j)oi~jm8Ti>dGxBa!>nOEifaOkDi$Sc|R=Px^7y7>9ePo8leZJK|G zsFQeox@!_#)k3!CSH4~_+P{Wz{xH?$$QIL{+-=Uszg_Em^);^kQD@+k$0tz=y^|O} z{mJ%^f5u#Mek=2&{OWw>F>A9r`uh(*J_SXnGi3u;Di28iMwr===Cz*lk1hP~_h2i( z8z0!@;m5HbBAw{p=;6ijAJUvKyn{s$mg;RTN4|@7CS0kv`8IMF_9H?!7zgGCPU%qS zal@3|L~}1nE$A-JZJc`4lGtrGDvz(t?RRj3k(c*41r1VVQe$ z4faFMy9Bkt_g%^RguMFhtjC`cp44s2Ke|p5Ot@QDc=hNeNfbd=SD1fvt>h%3tghS8 z^A+K2-I*&#w@EG$4%H2Ox3H6Qe(2uo01@{T%5))6f0J#ruHmh2#e)qCVU zu$RDxB9BFHNwndN4vCIMTP8YibVEmvz1*C*lQS^%;F!Ti5=nSjmze)xy(FB#uTx!p zU?IT~40Wpfv^A3Bg#0>(t7#h~pAiIg4*6;8Bq4-*bv0MhHc8GC6m>QEX=^3PL!Kx2 z8&v6ps`?AxrrAi25OR+3tyG&hw}+CB^S7z2IQ*fx<9ut?T2B6uVK#^6?iDHe4BsoKIp)(2c!*eXdO!0SvKRmlW+eMj!XUWpwc zxxOQBp;#bz_O5>W^4`Uqy$`!Kyg?$96i_1`|s&En5@ zEBW)?#%=ub-PZp3ZnxxaS`@D_AGw^f?G=9gA8ropCj5z3|JBVu|9rRq@^k-3G$1;? z=zQ-D`-(O8VHbGZXiQkU^4I2HB8@jn2Owo$iTudMMEBi}hxmx|Mr5C*T#{8m{}V$3-!C^?z*&ChXSz?`Qw* zjsNd9^*6fkS3%usH^r{1U;BUNHy3x=nWu|N1Cd~KDeK7prYn!(5CMG zZ|jcy&GWht!U$sbdNXqd>GM0Kg(=yC*@mFmA`rcbErVyP&PH+)>$>Xea_Wj7u|NOG`Bx~d-)uBAMIR^{PN@IA4VK5)|Z#;2+gbc{aTJ!$@=C}$<$Wv zVyClue&@b4V@g7X=)kz}+<>h0KJ{T;u_s!mEbDFLXW|p(EvO