From 0a0105b7dd80c5b9545a54b225eef6b659eb4fa7 Mon Sep 17 00:00:00 2001
From: Gregory Ashton <gregory.ashton@ligo.org>
Date: Sun, 15 Oct 2017 10:26:05 +0200
Subject: [PATCH] Initial commit adding basic idea

---
 README.md                              |  40 ++++++++++
 example.png                            | Bin 0 -> 66709 bytes
 example.py                             |  20 +++++
 projection_matrix/__init__.py          |   1 +
 projection_matrix/projection_matrix.py | 102 +++++++++++++++++++++++++
 setup.py                               |  10 +++
 6 files changed, 173 insertions(+)
 create mode 100644 README.md
 create mode 100644 example.png
 create mode 100644 example.py
 create mode 100644 projection_matrix/__init__.py
 create mode 100644 projection_matrix/projection_matrix.py
 create mode 100644 setup.py

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..4e622e2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,40 @@
+# Projection matrix plot
+
+A `corner` plot for an array of dependent values
+
+Given an `N` dimensional set of data (i.e. some function evaluated over a grid
+of coordinates), plot all possible 1D and 2D projections in the style of a
+[`corner` plot](http://corner.readthedocs.io/en/latest/pages/quickstart.html).
+
+# Example
+
+Generating some fake data and plotting:
+
+```python
+import numpy as np
+import projection_matrix.projection_matrix as pmp
+
+# Generate example data
+x = np.linspace(0, 1, 50)
+y = np.linspace(20, 30, 60)
+z = np.linspace(-2, -1, 70)
+x0, y0, z0 = 0.5, 22, -1.5
+X, Y, Z = np.meshgrid(x, y, z, indexing='ij')
+sigmax = 0.1
+sigmay = 1
+sigmaz = 0.2
+D = (np.exp(-(X-x0)**2/sigmax**2)
+     + np.exp(-(Y-y0)**2/sigmay**2)
+     + np.exp(-(Z-z0)**2/sigmaz**2))
+
+fig, axes = pmp(
+    D, xyz=[x, y, z], labels=['x', 'y', 'z', 'D'], projection=np.max)
+fig.savefig('example')
+```
+![Example plot](example.png)
+
+# Acknowledgements
+
+The code uses both the central idea and some specific code from
+[corner.py](https://github.com/dfm/corner.py)
+
diff --git a/example.png b/example.png
new file mode 100644
index 0000000000000000000000000000000000000000..68fb7df6cea4d138dd451a3a9ba226063fbdf184
GIT binary patch
literal 66709
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%0AjQd+;cIBZSC!n3o@vyb=5YH4e~{(OU7z9wM%
z{kq-n_I&p9ymV%!@zq<mR_%Vb%NsQDr!>90-kq(%V=>6vT`MfFFVm|Jh<usXt9_#D
z*H<mK((_DK_b#mCi+7m$^4*Gf;fBq7_Uwt{l~rGsnf3J4)LUCJC$CzyDkL!Q;`{7d
zw{GcW-r8|DZ{{-1%O>ox#ta7}!8z;5!FdIbJQo)~DRRwk*FJsXP07>rrK>mIU9S9f
z?JT=x|Kn8{kIcLN`s%S>>93zo>uZ~vhnJR?PFnKkPfcoSsd@8s-RNb7kB_xZ%dLG^
zJpc0kzqj|lT>tOY`jV@m;V%y~GFN>#$X@!m*ZkDmWiz=ME;@jVfWj^Nb}uyEsF5DA
zE?uHc%kAllySLb6t(=|NJw&pvubZl(8?j-*^&h)RUvH`TS>zey>+8E-(sFh9`e}(0
zQG2Vl_Q~6?ySUi>b@BY)bN2mxo6jG9lVL&;s5qIRly!cq=cHresr<K1)xVmQoVds+
zblhQ@M`&p1*I!n;y1x9jUna;^y;!Ib%F6J=;L=H<h}6`j&(6$TeCJM#sJM9c%S%gF
zty{-uTmR&Qpk!O(?}~@5;xgxV*ZlnC-50+p<z&GgRR#wU*|(W5d^BYCwe@Yie08BQ
zs6=K^>TL64y1lP<_nx@*W$*5+TpPXp)br1o7Z<r^<-Yy5aOa*qG3x&F-h8e2@vwdB
z<jJ7@@B7Xd>ql-{a{cwZ>UTRIR(LZsXslZKe&#~sIlOZ(_=W2pF7stzXb3qlX*J8X
z)YH@A;@8LTk2`ww=&ilg+n=4EufP5FTEpaHU#vh~fM1uU?^`0M?DnNHum5=Q$!tc3
zPHh2`(l<4`mpqIuN<Dia@g%6;OEGj-?=&$p^P0rP&7C{{{@&{C_iDe#-Yq;X`*+^z
zRja&?9z8nCEO*wvZ(G-|+_&%E#~bI)`I(xUeyw6)c;p=$+`fy+ap`W}sn6W&AqCw1
zXP19oTbH<7kAcBq)8d7bRhkYi2wNMqwDR+_%ws*0+m73Oy%PNEguC6M>~%YroiEmn
z+~gu{mUCfS?(Hu(lKV4%e|x*@->=uA94tBg>({IasjI7d5f~R|_vAY>Lx)cG&d{4D
za(1>So-Xn(bDQP$*;v)Hea2E|1_l8`ot<7naqGi>e|vjbI)6{%@0#lB-DY`rR<O(0
zY`9;1x9GI)!vFTg&wS3#GWDLU?jIH!I@Rv$O8?lRKYzd9Utj%xulbkK;9y~2S%wZ{
z)8|#6uC^K49}hCra#xqOF8PtOI?Z3g^38R21_lqeGZ#FWw8Pe1cy@O7*I%#KuU@m}
z%(ofwe;$cvWoKXBlzRG*-Tx(?lTEU&XvkU=9Qan*e|#}0Gx9Sy)U510$QM41+tP{!
zv?0lb%eX{nM&_)jokdH{a&IkJwMr{AB*a4Q_myD(m&c^@ue`Xp`0&1S8<UTR#K*6{
zbm`K<DclSl3m4mZuT$emR@l^<kix*wa3Z<QkLh#O-l}Ia)3+2pc6<8l*{XHx{7Oqp
zv-0!bm)>b)X5W&0obPVs^SRre&$O!r9e$wVnU$G&(f<Eu`|RiE=2{g!>DZQgdl~2y
zj9EshU1IuiGGD*5Fm&)`xB2Nzi}8JRbJw2>lAsEWVWN|>dgI#I-C@1Gy-^zy8oj)|
zo%`qi|MPrrA85yiY2F<R-KZ@mzS&&8dUc`fraO7tzrDG+SUP`C;PlwCneTQy<~uvj
zHhTa6zwe)ZtXTAK9s|Qg!Kfn9$&yyeDxU7IqD6UT9j>coU}#7=GHEqS+AQYZ3oFjf
zGL71tcDCW%<f&7a-v9H=+<6@@gMhu%?b@u2&z_S`x%1UKFV9Jtb}6RKs>boEX=z5z
z!4J8!`4|``tO3^(lUBc-IoCL=#ocn=!~fgolx+8YTs^I7Be;=ll<|UrVZxI&4o^O|
zZk#QdtowD-v^quxhJ*}=MBlvE^F)moYN)4~Mi`fX#28%IK*i;xIa{A()$o+<*c7ol
z`|7;q3z-=h1UNyt-=j!;TFg;L=XP*wRuJ3@RuMm~ds_F}yC{$X2Bl_D4dJ=wwEUIM
zwldF+^A=u~JyEmo?DA)P@n>E!Ffe$Cfz){<9hbf(YO-`q$#%ErRY_s)d1<@c(w2Kq
z$~wRG_!>S?C_xMlD-KlHlqg}i7Mdg$f~pCj)hplM+qB1~?etn5NP6P~yF0>$MJXE6
zyp;jPsmjKR8=LMVu_|8&wHg^Dj39ymZGJLmE=bCsx}Yc`$-t1X0_67zOMEWB5$%%6
z7T4ct<ZFBkw8&V+46I@0X5HAV*IXwImTa0BxlzwOnS0X{qa}Xz0qL`>lR@VKI5>f8
zuSuKIp7)$RKS}+p?BlE@Jtot=KJS+H&H<?~Fai5I$n^Od-P6hT*2kR;j2IXkQb6uf
z@Qk#M@zprfS*R)=bK;^RxSgv3anqyBc5Uy<hhWb$@W_FE8RA>}=S@NC#w>7Aci;lV
zjH8#QJr&b-etx5J8fe8K4=Y%0Ky|po^6G7D^99<y*ZG-jTYXx-rx3K^u(KN+PbX&0
zojiT!vZgmZ65+)MUkJ*jF58_l>ry9M8fbczM+{<!4V#kpq(lkvvRzjGeS8cI2NFOH
zL<P>H$#s28=YaF7A~*zuHf>|wo_6@i<WCdt9z3!2c?4*n)F1-vcc<f3(~PGc{m3&n
zDh<?o<B<XzKEd?&(OJC0{!YBIMxah4TQAsQ$4t%!Y+ho+m;RzB9VBpI0@%uvbF$wC
zMTa{~GFhikm;Pc-{^ylD4~sv}Vqjnp0{1>A`Mmx4?rE56CCDeqF=v;$Ra^?0F<G$_
z?8<}S_T{9`=d$Z`!nW~8PiJOe;DMwaADidTBi7vA-X{p^;23Ct-E8!6&*7;@x!ls)
z_yp>;w6#ss&&hyFp&dISyr=7hmX?<8U!R?kG2!~_(9F!0M#jdaH&ds-yc!-a+t$UX
zV7m0^F3<^Dk=NEt-()dwVX`iJ@^Wp3e>wN}#m21<FMf7r;{Es6nfYxNxOR)Z{QLcW
zxSwC&+w5Jtc71v2Umtb!=+R$C_3IWEK0fyH#l^*18X6MMUNI_^g5&$7jCKCm3!V4d
z{4!pD`rM+#{4wqHG~K=X;`Z0=?dtB{TKzrm?0ozC-%S1O|86-q*LwN(dsW^qU%s5Q
zq*GYkZFdNRN2bnBCI*F0mgZ%B(Y$jH{fI3}y&6`%&Uabnu^mzhrY4}uu%xVv??q{E
zZ||ffhYmR%PmZg6DtdOVb$HzRa8*^+S%%4N*VaTXc2E$Qc#Dx?Iyi8JEU(^KxXvLU
zQ_p$n&yTk+NJdXkovv8=tJ&(Z&4zd_MjqeF%AKD+e|GLab?Q`Iyf6>j)~u^qXJ?!H
z8>gKquz7c3p)=Um4hjpx<7-1#hp)f(egFU3+TXYD_dSVbV2Ei^4QF6b5!4o_%yFD{
zM^E|KRSWO(-66B)FMZ7Wc9rGzWsmlpiI~o!viH`lsHab#w(k2@Ve@z2vDaU-?(eIu
zdfaRN%SKOvXVs1!5%&K+_CGD#ZCd>;XRbw|6KFHy*R%O`#V58hLxw3DRFYbGj(;xF
z_O47UcV7OjX7;){FZN7fc1U^h^y$~E7hlqkc8T8FQ@Oe9&5ebdHf^%&*VWYxt*Y8}
zC$Bu?jk5gDj#sZ<UAcO7X-`j&<8@w!4aX;GGcZi@$UV;&{!ykQhm%!#zOsa52dFIz
zGHFZZ<hbg$rlBDrUw+T3{QL~mwB%xIUbvCp?uWzDrAtkU85F$01%u0)XC9R@`H^`W
zXZe}t#PS^xU4MOb`n*avY4g00yu5X<UcCwl4`2T68~54ksi&vC{P+7kf9>C`>uY_#
ze*L=Z_q*L+53<X@xW512)@y4bmDgXF?%vM8pxFos+Uz#Jn<sw67n$xmF>9f-Gkb?R
z_U3AD%sTG>W-)Pb>+b*iwjI=uGs(WD(<^Q6SAM^CJ7^{esmbcn*J@PqsJ_kbriYZ3
zgN>2z=KIO3R;|*LoNZmcuI$|%$<{6ghB8or;V|jNC-%}!E1iRqQeVu;c@;3-{>J%>
z3=9lAB)}!ck<PZVnaie3eRpkz;755Ut1OqcO_%N(`M#`RK6rwGf#Kl-P#rO8hlTxd
zgC2?S%l3y2oFeVPqca@*U=v)F-WH^C=El~|0~IX}7T_RNS+mTek_l9>&hiJB*#dIl
z(w{T?W>6#(i&FHOwsRYcQ$R&m3#5`;^li`9Ct8hZFTR{nO9Goz0Wqmh^#RY^kFH>~
zJdi5YA$xiJ*R`>egtSF=?pglx%7tga!R`8xT80m7Ph+y}>9wDXE>D?1Rqk;Xo8Ixs
z%NEVy@q{=9qJ(j^<Rp*H#X70it~~|UdpwX3Inb(mT6q1!WL9Nk(BN9a1F$n#*4)(X
z+yWX*P=tgFB!60z*%eNYi8S3@YRSNG-~hN-<-GE(MM?e9q}3OAWI>K$V0Hs_VOY{<
zE$eG_nkbxqa_ZF<tFnEu2Ny^}3R`ASKnleq@Af}Cx6U&tlIh$9P2CeyZl|ueEPrL@
zv~v-lqIH4**dY(rI6S$y6H*}i{<w5kZ|bvjuO!g;)By*u^#@~bY_j<{Ejn^dYB<DS
zJiK#R!cc}1pu-2%vYQhQGD)^wd<~k)+<N}=tYs_n>psuc($x(O3!5gU7qjB;@9*xP
z*D^4)EqE65=v_hTPJx~~a*w@0RRlBdT$XLMzsoB3#=X6>GdOyC-qiEYFE4WKzH;l<
zt=Bv1f3(+MI5}C}x&OF){hsrm?f(6E{Ociq{fe#G*R!s#i#>Jn<i$rvyRTlnD0p@|
zGlRsE#b598&gJC1b7AA5IWs}cBm;xYjd}{Ay7BvB>i>VQU;p#-bN-h$(c5xfe*OCE
z>+8^%m^F8Imw&e^FDu)2tVhy#LGi3*E7j*!IDyK!OG~{~J*CZZ0z5rC<Emb&g4*`Z
zt0Wl&Dovm7lK%O)yC^B<<b%k~-D{pEGX!}XNL=~#_4U_B-TJRiOjI`FaTXO7{q;zE
z|BBoB`(xV@kL+?`=&(L>p|kPx^YgDS&;Pe&ncv)1rrFnC{P_4-&@w+cd9ljM4I4IG
z|FQYJ-Ri)_ZlHe5uK)jjU%mG1&*4uG54VSghc9pC7H>QD>GS7OP*3;m_WOMva~T>=
zY)X6KqvQ2N(#ke^y0J66hvl-&SD<G7-12)XA0O|}es*T&uN%khmMwPg&-(f4>90fL
z`vhJKF)HX8I;*qA)%{GJYgz1O|NG|oFPG>43juXjK@n&DZih3d!98`}Jh^X{%_tqL
zg&%L{?e-N`^SN+iWAfJY^K!L+U&n`+mTrx!`RIE4^OdVtJtuj2c~$jJpE9Lo-tP_P
z&iR#=#ob8TwsNKBn_r9!&6l6@zjARde|P2wOWunJNh|f)R##r~pO`$YVs|N{#GJ3M
zuY(3GZf(n*ZTIt}|F^1lTd&7mzO>YPYvN%x-RNyPZlX*MHA!uLJw0-^QQz-XufJFQ
z-uCUSt=_@Qd@jD-et+G@<m0dARlno3Zn*)iYySOwUfp}Y^m=U6o{EiW=jN;g?ZUpb
zA+Z_MC2D5pZ!4|4Y$CgSS6En>mc70G7Y%)V{?~UH8V*{Q?eldEK6S1j`wNHvn$wb7
z7R}*FUAj9J)G#x;-4FuW2Kus*U2eycnaZBmW6S66``DZR;%55%UdL1hf%_RRj@&po
zS$%8i>#)Dyw(p;M`|UMe^E(UnR)2rBSpM&dx)06rJTGKWJ9=x*C$Hc2O3U+7BQtx>
z{Oy~{{N`F+&HnS{<>l#TZf(3%|Nn1RP7aT4R(3Xfh&e;Ti@t9<fl~1^=3bB#ZcA)Q
zdnwSvvt*iW^|y?ZlT`c8$JhV;TJ?VK_qL5n3?4itB}oUKe||ZA|DUCxy;NC;S~#m7
zwu+aWxBdR&$;rvTUi#Os0#&}h*8l&dZ~N(la_zk1CcbMUHag8V%e|Dne($obuCBWE
zf8XtX?={KG+dFsu`V}iK%rH#el6!mGg^1wb$z^YEE!|oC{MNo>k3VYY>#x7g%wS-X
z^-ABQL}>2T%b~iwvI<M*SeKvsD9^X_-O~Th&(D`X*2SP;IANhM^U|eDx!9U_eZ3a_
zwcY-YV|YyAQPtx$pC-=_addQ?|NLXs-dj5g7lRV*(`V1xjPgEx{ycT+)TPbr{8^8W
z_3nDuCLIzIvc$If+lzVC?=JrN`Pnr4+L{ZM%lzlBJ9Wyd_91utghYv`tyxp$YQF^f
z&b0~^6%_@I7nzp5xp84#xWj%P<7=WkF-ljtZg8+F^?TisU8j?(TwS(n(L&}WQydf)
zY%zHr?|mn4`=7f124O4=osDgNJbxar+g~_qet*rGGd{<YxwyDWetdXncYbr(+bGXV
zO|0Biz3Zd5`<<SyAMWPXR`-4P{g<8U^8&K7SD!k4y7aQIdFIzwSNHa<U$>6$?F3cN
z?{~}RM@2`MUXLwbxp1N5^|<P_ps~;Ny$lUEIC3NBu^5*e+gxfnVUo|~E1#a8e){po
z^M=?xKiL=_FiBY%7W{s@-TjHpvYX$}G=2J1lzV@l?VHaMZ42GyDwo_>jb~`MVSUNi
zIo*lreL?ERZF=i%uY*csp5^<0@819VyF}RzrUq|tHQ>nFoTlMW;gtADf2Wd&q=)b8
zYiqkpIT<EQ;BaMQP;i`^^)6t#{R)%m3pcWM?$_CtlTxlxl)T%&_w7Cj(C!{k%4cAh
zuwaeDlT8yNy^7WU)n6*M$&@lxaux#DfPX#z%>T#0;1THlx|(TXw^04gsYh?Ud?f*v
ztOZw(O`xL9qe*t1&eJELs-A}fT+v;*SbTEx;i;)f=c_lCy=P)zXs`v<lPW7_&0BW-
zhsvyl#v9Xr-k7*~t>HQr1_p(F8*?oM(tVV#iQecqJ}XI;?|tj#`I3ia?pYb^@wt3u
z;yj+Yor@=_J0GvoZ_fl-^Q9BiqgGkaW;TD8^`A+TvfKPz{hgnuB)8w%&14AL0k2R8
z4kO0MpO&!Bjqj75Gk)Q5Y2R5MEq)FjErQIpaGtoesm3Yslg{=@Du)f6HiL!-85jy6
zRk{e5i{B#IbvoijB{yDjF)$q9TzH~G>T<{BhWjdyOZtEB`EK}YpM>ATy@EdPORc6~
z-nw{Q|7)wdekGBjGxzuZQ~hMSY1`L%Gg^3M)4&ezhd6xJyqcLGT~BU(;<f9-1<M$J
zXZDWPQ>VPn&NO!4xpSwMp5C=fOT9y5V{IQ?xBvg=vk{N8_jJA9q^XdJ4V49pZH-IR
zR4(#`PwR9&bAd4lG+_3rYVWO`#ml$l-PM|Zez|M6*vhS2|L>pd-Y<96{_kb`m%{UZ
z95D#tVp!P=Znw_ZrnleEyxeP&n##jT+S<;~ONy6AS^brI`0%)Bf<^AlO-rv|e|>#@
zcwynjviJAa{`~yhdY_&E$BWbP|2E0h{Yd=#@B996XJ_Xv-mDE%j)4Zwg?xO^PkUN9
zGgIrtxsF29iPPs#U3X~CyYEMJWEH+iNlUAGwzjs`%6&hf+@JB~#l>BZ`>fj*>o9m!
z{+TQ;ke?)ZN$TC!!#rPkr)xJQp6pZlD%bY-x7a(=wuj#o&DJ~(yXG@3#bl#K^z*3Q
zB}?{&8XtRle3y)ZCaCB2>(=9sCmw(N@^e;#!HUq;VW0^IP<QKbVgA0K%jQ+R(%k#|
z-EP5^q6`=8LGdsl!6|y0dSYE)s*-gqqhNSk+`2!1{#;nRY15|r*DLnMy}iBN|GfSG
zJ&z5~o;~~PRQSF{prd1@OtV5%yxADOG=d{>#$sFR7*$Z8ev!Jw&kr}ZNrW@0^uxMQ
z@AAveb%|<ksr;Pw_Qpo%)YR0z<FYmt0q%V=7oXdG-+3XzKw^r@(xppR?%EYKS>0bQ
z=_^A6KX_Q6Y3GK+p+fpQH>JJUP--b)SXo)QSIWxI=kk?PQ?<8dURDbY4PCit(W3K@
zm;29Ox3~KHH>v2oRa<Axp8fUx|9|hb^!4R~?lLe`gZtzLVb19_M(05Ty#mH@>%&3w
zJ*V~eueoz4<|?Qa04bkUJ)^ee%skdBz5LWEuhg`(xJm1S0|FF0YoEPiU}$S=<6Cq*
zAcwh5c#7mogL`&Dn`G8MG|01>d-`R?@z1xHf00V;`+oGJDc@tm-QtsYmKR&@X)Soq
zR{xhxfiZuQzQC1_ZDpP(_dYo_Yhm#HTT73X&HuFdQgV#o1gmT7VzoV^HY7N%|5*C^
zTISDBPbV#zHA`w|%#lJS2OV%0Zk&^m5w4JNYVxxn&%CrXr#oi}&NJyf_w|KO@$$Yo
zxmTY)W!<R9=^?r7=6`#|kkHVtKmYvt`dT@dhv9%=ZYcwU(20xPWjl&?3Ket(N~}pp
zDFO|ffTz_PSc<mT{Vd<H$w%huUpfBCi<uc13OK<9)db~*l2#{oAD)`31TO9Rz%6qJ
zzBzdlReUw&1Rr}XIv-V3x?_1KD+5CVH;1d+l^N^o%2=8fd%P{WdVOzs)wx2OJJ~zl
z92SY?dz^Rt<ATGib1dhcetFAptJ|x%FF$JwPR-#dzw?nPQEq;d&_`pfsZv&;xiE%;
zX$|(Lm>4F^in9K@Q1^83qJ@`@otJOCyZrOoSV+mX4?LpbC}VZmHh8Iqx^t_gq~SWX
zUz?2XNKL-J*YtNHcy9AWE2xXb`RKsRG|x*<L}tuQUil)jtn>#DsDN(h1_!O<lAyXi
z)hUY)gK}>}9LN_ecPAa3zhOl&PvAT4p6jwJ3x8jUJ)C&w?KXbPa|P@<$1lfzdt6%x
zD(L2Bl~(01yZx`Nz52b%^MI7)I?2jsCL|k8{4LJ&zdyp~t^L)@7bNFe@y_iEyg6yf
zVQ^37%OQ|eLPr{n@AA%Fsk-v=g^f)U!Ce8!T(pqGbo&*HzvfN~%03zDn(_LR*-XF7
zw-^{0f&@VB7CLb8R~T#4GPjCLPS*BIn?4=Nk!-ti>E-pCV&KWv4d9?*eDj{uWuA?d
zd)q^ic~fhQF5i`!JzupGJcBN-yh$uDdDm~g7T?mo#A6SOEd1lY+r9W;Za?Fl$vXjo
zInM;T<~$RqoAYkFy#HqT^M0RiieG7O$h^P2Y*$(OtiQ9%s`CB5E4?WH<#vPLyXen7
zNj}HD6Qgp4@^%y%c`rG?g4;Ug>9HM?9)=rgxgVFlRr(`m^)nxx9#HR*p%7AVG=$vQ
zbjN5Sc&1qoJZ{S};S{fI_Uvzem(NO$;bdTN_yg{g&*5hAm9?3?i+65j@+TF~`jw#K
zfgu4rs5{5HZeQ%&e+!H*#c0XT6n$OPcK3_n-JOod&uw45^s*g4Hv@yhRe`Ra6`U0+
zl}WL#OkBn~H#K8+uHO*8{5g~4x5tkC&KjGJEB?8W{GU5~nX^G*Ue)rq6>)CuwT{gf
zCg#c4-FX<0z5Mt;HOp3ccBY5RW2|fC=QvF~%xA3jXGc8WcB^+X7ME>}Q!lNMS-La$
z{rx1jXDKTzt}niPcJ8Wm+1K81DksMZF)%osS$faEm4QJ;LfbyQh)Zw#CZE?cmj<8R
z1X>&FX;Q+#&{6%{|Lc?IJ$`rF&V31RUaom;Dgy(<5q3~UJhGG7w(&%;chL5Q&fp>7
ze6Wt>Wtq#qOnW-*0?*vwvqrv5ix?Ofz^T_}l2LN3>z^VnW4_x8P7|9m`4o>!@;#pU
z?cwovKEE9vt~sN3`{TsO+-;9r<$ix``ciiL<Gv-5-?skp{r#_W`Tc)xKX=PGO_V*<
z-^{l^epcS|{4J*y6K-mXSOzH`Pi)s#-{`{OYIph0%4dB0W7<LtwbZXYJ#uEsBf%oc
zAm`cs%V%4MPC8znz`)>;l?=*$g*o---^}^gdh^qguNPPP7R`K_=ldoz13cjXUW`)s
z_E6F4I}+hS)!^(A1D*=CaH~7VDyCU^k^y>0z-2G+C_N-~_g%cOGofmwsdGEX28M+v
zI%YZaX&O)d5~_ZY-?ePtcfa$NtxCH$y*b=(ym{`S{<nvFx{afAj(ZzRzdb+sUY7N}
z={nnMef_Ndev@yuYv1sstUW*Gzy|yNiO>G@mT^Ux$sFT!?c0+eU+@3uXq}Xm;<ZVu
z|1OVy!p}1G*|Ymg85kU1JyKU>V0aXgJlj7#+Di4}g^5c(O}u&PT*2zo@>eES{l5DV
zlwrXm>W{888sGKq_WEpWdg$<ysOhIKToIZEI;6k@9FNgYp2uWWaatpZ{Pr(3FH!4X
zwlI0-waJSQ`-Owjv0=S*pzsOK6KA-N?CN>)aLVM@Q+B>C;;S~j^k#nX^4s<MjW)k&
zZsT^pksdK6<#xM#|LLp^vhwd&ZkN?Bx;=ln{@1+U4r$Y!g$lwi{7b%&f9w11^OiB&
z4?nD9H-2+?s;cIT@*mGwWe-i7yKm{o`LCt7H@*AuuczvN%6A<RZ5|2ncdlPGL8(z;
zt08Ed$3lc>)~)I_)$BVWQ&|nysntaomt>vWx^nI5I(9qI)GQ<xL5-BNbL%QE#mtI2
zG)de0B1gYl?}rm6OZoj;?YsFI7!)GG#TDP%mow*n-ng;StNio)*WIntV!>nTK@#?g
zObi0;-!|MiHF4{kSLfAFf{vkD*&UGL(mV0(^ohRv9G6J=b?)HXxywy{;fZ%!7QC%U
zYdc?NW4`%v*&WS46*)5=9v3z~ccV{yXH@R--;-VobiG+(d?p~}vSRD5o4NJ=*1Imr
zu9y8_9dlSw<fi7I8!OemoHuy%-8k#~#&`SOH=p{H9OL<CrWklslYwE09;oRgkp8D}
z!MC{^(q3G+@N+|V`7R^hZI#Rn3@bqs-K*EExiZJHc*^YAs~<f|(v95}0-F7Metxd?
z@~PV4S+}-io;r8#+K-QqzxMzC(Vvx*^XBuO)6?~*Cra#<^PZ;D`Rz6%!xxK!Wv;UO
z78DuXnPt-D@PvPM)Ew=@6V7cdd+F2tm&XY-+2!u6-k1xS7O*aVcjemJ=%=55ZppZ)
zv~^pVez0ZXqZYq877O3kzOTNuyL|n%_3`U<qqn{2vwrvD`yKCTIv2r%R?p{E>)py{
zXSk5;pIiR8_SlY^oiREqe{WdBvt3Q>sRww(%_BDDg~|rq=xtwqRsH?-71S_)cXzjG
z{lA*CGYp;g|9PtKeBOVaO(bYU_v_U4HLi90<1;hQ-LLCEzSuDNn9JHShK9|y$9I1&
z*3(xPxOsBRq!?Md+pAvfN~=wJ^#VNVXYeNDg^FOdW@ut!;{4;Fk@A~oCW5AbK?@I_
zoS3-l-LBVPUM%ikwPMAIZ=iYi(z3W2pYC0`vbT4Q`fl%cIcklrvrjAjx$$-r|I4XM
zzHDiDTM@RaR--5|ZT8zA8U26v_w;|Bvt3r-e>=acp8sb4K)r&S*KbaLv*2$vheeCb
zc2?t@<F}c=B_8{?;BVy|r`2=cZB_aCC-3&hhQp>!eu*a~wlwTYifz)(ZeKm~@rm<=
zM!7!gw*6VzH+Nlw#)>s-u5|0~TLB7*Q>RW{0xi}#E?4byd6{o<%~}7tPr|u3HaPzN
z_I9$$*?G3n+1J)wJZ}H*<3lZJh9JKEx$2#$?e({Y>F4KN-M;Uu?%mSsv9<HEPfk(=
zjR1irr9sBt-kyK`>-G5c4hQ~;Up{rp>*@37?Q&0_K6S3MXPB_c>M!HppDE?Ze~Py0
zl&7@1{`c>#WtKef;Oq7^_x(acr{?Yb8n*Y}uh&(--);|$i(3bpM*8vb@!<$dh9zQY
zFH|_8t9yFQ?`^2vw{oTD{GVsizg+CE3;F+R{r_9fcY-#IT=+lVvUpkA*;z|ZPF4pk
zjR5V-*R%Zh@Av!bd%xei{W{8|lp&#D)$3VLxo2pd@C&a@3|n)$GkUXn&lD9|tJ|x7
zP4g4&{cvQ5l0xN|?Q8Cz+kD>c_UqUG|D6ASMZf;1ckb<NzNe?@c1Nvcm~d*w!pSVq
z^+B({UXKrtjJ&CO-rU?A6fUREp1r!vclMNddHbgvIf;Ft!GQ-cd+wYvh)8?BM8VoQ
zxO;aw!|mEBkyZ{SyeX0Y+qZ7rdh+?_)~`|w4iy<MR17YgY)v}Km3wQ8=lZ?hW@%|@
z=~*sYxze*+OgG5QtqnArm712;Ry#NOc;Cu>`{I@^T{=-in&Cpb?eQw6iII6%*K4bn
zoxikjAv2FpaB%SY<3}Ys{Ma_Fxqt5Z{(q&tveseT;(9V(Cm9;-HayX4tlS%yduK<W
z{{BCkii(Rv!^71*Pn|y>9u_uj*6i6^L792$)|WHW=W+f$9zDseUru-XZtDr9zrMU&
zwPwu~@qHgyw{F?;;$ge|HDB|)OAM2by?Ai2dDr`WzfDq4iRi}du~_qKlTF=D+i#3p
z3!aIrdwoQ8c|gkZ&nZiO<{mG;{I-6B_KA$`vie@z<Gt;z&e|>6a^h~1{X2mNHkU-}
zm@n!6{(j+2LGJRX^UI&#=-bZz#(B!zLz7}_YwUN&e3L)O*#6=1f<v>{CeAwZ?uEZX
z!vAu`X->u^r#M{RoqxmGTJ?^9YgKz2pMipWoY4OZ&ir3@i|pT@`nL?Uf#Su_=kvou
zL$5CQXDG;EU|>=rbmP|6Y*kNgF`XBt`||Eufri6D>*v<R?pE;(Ugq<%^vuJ<?WTo~
zTs(tHOG`7f*4}=5ZJup4cr=)omsiTVYz=5VUw-ZD=uZ_V)EOEwvfgvOXb!&X>z4N7
z%llLFWajQYE_L-Gw}$cEy5|-QceApyt95(dzfZT$j{M&zYn?Ow>+PTSzVBQ9zUI00
zue<N-mPc+*<6RlY;BX(DF5XnD9dBag{$=~@@bi<WPF(^`At+vFW8k<y-_JxV!)tM|
zt=7rKo%iN*y50nhAEig{+VZ|)@wz!4VeA*CH>SzXTDB5Y0bE|@yK2>{O|jSVpYOi^
zcO7Vm@9#77{THW($5~z}Vr2NM0IpvXb+_-@)8p`@(SS#J%Wcuq>l#jcgs*Ekc45=M
zUAwHdZjX;>+M9FJ=x+W0zYEvP*Z(P88@D$KG=Hn+H%Fq%*Sq`gq;!S@7r;Fozlg>Y
z#>Y3_$y%^(&IMcT=W~^xC&h41u(`G_cJ;AiZn_a0Kof=wkAqgeTre~>HMOezl=9-W
z`uv)p*w|RmG{KG6rl5@mNgu@+6jV1n;R>Amj!WaLY)7f2=V48qo0=up-wK%Mc*<?B
z7078j{QdOfP4;%T@1|PM%e>K^_}ro=UHaQjaXIC?Wqb5*w$-lnyI!{H>dU>Bce#&O
zi}To*m_HEMAXCC&srIMh!=H6Oe)Zfc-c#LnZcP!>ME0z2uGX<Lmz_MLrohCuDP{kv
zRjaOFckh$w^fP2&a0m4o75Gd_f0VrN`F^f&^RbH;Bv(i#e}3v&{IX`YKl}L`@At4X
zFihwHbzueAzkNM(PBMJL(nW$SO8g;iv%IHIFV_#eT{{KTJ%Y}b^F=hC*nDcnTw%TJ
z-=E6+1VB^#LF}Lo*rNm0TknD-Ib8UzPZfU(8q-?B<up;y)bVnFf`>)w4w=t3bD0Wd
zohJT%WPXVI?$?>$j{o-gZSc6kdHoLWZ^wV9$ot4lDc-PIc>dw+T`BS#-h`~aTwT0N
z-0%Cj_W}hvmhJNG(p_&-7-mk>)W1_LrTfnzAYXRPbd|F&GyM`C{Hv<@Zfjk#E%dAI
zT%AZ}&?Ky+6$8VO8`a09uHJYT9G5n0okn__-wv)##wJ@UT2w#_Ga9adJ6RI9{~eU{
zyrixtz1GD1f2JG{s3F=Aa@fBYWWcvqmnSXRzcZ(#N82-Iv$}}aq<`-P!9D4f;8o~`
zA@?t>w6%?%cKL#&P4@EDwZ~^)dB}YPbX-Nl3sAqzfoE^wgEc<Ev+UHuRV!z1)KgFN
z)i`x+g`ngsE|#s^mpigCFibde<0)6*<%izWZ>R6yEO02@;!WC9lXqp7`GrrmbWb|{
zFh)}Ecm3NupYxk!^Epzid#q*NzuL6kU3S~!+DwjH``M3YTVJ{LV!Qpmqv`*-%e(at
zm+iTm7&B=X6W{I@%Qt-KR&Pth)U8cb7d7brnR`Vkx4N{v?%aK!<g#-C5^W2$)kU&S
z&wush+{Dkbj5iuwQ)Ogea1jM<M(CKBaN$bdUt3<;Y0<nhMSK3VAO30x9-I9IPBzN#
z=jU9yIZf|r%8t^fENN4Cu5Jx>_ndUkCSv_FzW5%{`PPty&PO`7#{M)7cGFbu{jb7*
zb<3m}U#Y2!_38uG|9x7r<}@P%Lx)yf6$^uco6}EAo$Xy5hYhx*9Fy?8G_AH2GQ6=1
z)REh=efjBB3-&|Htd<)*{%}6o{#}uE``$7uo9D$G-er>>e!Jb*Ur>Il@A<A<xyOxp
ze=il3edpMsWZfcj{paW0<Njr$H~QwkJF`{R{`yOSb$1f&?_GQ<!}E^+#{KsT4)2hh
zX>Zh`5wCJXZg;?wV`cNpuFsk7;;cR?Z${)Q_0@c@zP`Gg_4<>xb+dda1A{{mc(U5?
z!?niETr9r6Qgau7a{BG2a_IZUjg?yZXM)=GSFD;R8Nk56aIyo`B{NKT`rN=;eG|{&
z3tx@BR6YNL`??d3fCAFsjL&5r(-JWs?Y=_Olh1$6lbL({UyYaSJ_kq`f+wzdHve57
zU9xGT^E{L3>sBS~{^YTH(H@87&&F48iC%dBeSR-^Fd@(}NMVuMg?W0x=NdP32uybl
z%9CGsdY?&qK+62vWi}54roAcJ;nsHAPRH_cs(js>B?>phu6>+TtWo59UE}u0WLdt2
zC*CUO9DjYgDChX?TW^^U{EhwgJ!Dc-UHiOU!5M`U3?6%MZ#$m$t!?Y>t5+v?O_}-b
zPdZC;vP7HMd5OiP`EnQQ-`lSAuiv5qNk=lEbR?0s|MzE2&nM4aF7q1iE-u;j@8^_V
ze>UDe%frB+5Csl_9=>^*7uOwr{={gBt9<e^k1c29?1PT(lrt^=@%5P_I8Q!t22}%z
zU(TFcJZZ`6Wz$#WsNA0F-hDbX<KyvNhbR88et!}&gHZ|UMM|jU#@78!`fliX>20z4
zksY(1l>a^RuI*g@eS6jT25_;q6EqNF7<I>psioF!uCw2|mm<@2G-ss!kC}e_-)~VK
z;~w*~ssFo!cO}}(8N97N-I}SJ7#lw6+|Rd%d-_Xzw#cr}KEGMk{&H6RylG+mZ+Gm!
ztH`itbN{}b_y6sa^80@KXLOgN(XICH#;=zCw_Ny)Z@-#Y>TBWPH_f{QE#>D&tXMRM
z=j!&d%<Bt_ca>><mtkN~;Rp4l40wDlUuoOk?=fj#(N~t8F>j*8ax?S7HI~1)S_@u)
zaS}X;cR1nu#m~RIV>cUJj@?yRR=MW1r{uM~@b!DDop^JhgM#3N&IUYn*M!?@9zRW<
zI{)nk7k)wW{7)Lb@{?Cj^V>hK?r{Mm|4D$lvMx7gKJ(jqYxCtxn|2B(NBeXY?&P`q
zcjd}SOG@+Q0+VO!9}@)?4s4*|g)L^&V;rm6E<T%}ekWaH)5{O$_AfTu&%Cd=<htgj
zA8WLam)RT^-5^_T*`m6g<qdPk?@Le4Z;`dXIx*Y2Zrjy;VaGo_zQ*&Ld;87y*Sl)Y
zS!%Z3PrUQ6&ialTkK=~q3cJPsUeAsC$+T>phW>?~!k>qWd}B8JNKQ6cs}g>7`K+&B
zX1AA~U#{O>>dC;s;Cw9qHUoppM0<fNn{7|8owhNw(q~6ZTUcFIm&(hR=KQNS&W*HU
zU{Lr7uJya(exJ^qoAD+f(a%j|f%xI~ZIVl8McFu=m96{xWv%i?(Ef~s6QEQnpt>yc
z)l2i;%@zNzPknmIXM6mt_7|_`ExkN<>E|ob?N{#{)RARim~aE4R{!6}9c6M>%XzkY
z$M4IkS##R6a{kQ7RVNo0U%Bxvc^V%BgGWV+l5$pz?4;Y4)5RYaow`;kVIF%fanG{D
zDvb@!_wpUS>3`V$c6(f&-)4Tbb^hD^8U2cHF8^D`cKCls)~D2)@w=68m+jekcVAe2
z`{8Yu_#PgASN8k&+jp;&MQ++D-?IF3<K=td`txk-jjNX1-MzA~z5c7Z=cQHt{-Ko%
z|IT;hk>7s$f_+`qs&{q&V*fsuZr@rH*XmaBBanlEK}8Le^aK)@WoCW#{(a@j!|P`X
zf9`rMJUJ;=sH&#yS_G(sYcm5^oJZV18Ij}mp65&Ie*e>4x|_H5`?E-|;?MJMS3E3}
zjH-<N-WTq_ug>AOzv=NEN(>AQ2Op~YFfb^s*tay8fA6KeS5EytsX5C|P5+qa!^3%d
zYUZq)7qa5ox`ubZZsu(>WM^RD>;x5=f?qCZ*I(LsO%Ie<|L;xkT64OQcl+rJ{dvE$
zd$mtodboM*uHQfZ2P$|-h%zvE=%_F%W!-5}au2()@Wi?0MQ5bUWc{8MtaI4)S2*_N
zH}Q;@UvBhO-}#n!(s6m!uM1aF>v@-FmzP@I>EZkR{n@(`4*N2R^3t30<0i#?%by+a
z<e|vJfG4`YUu~&8@3}L!ZD0B4r>8s~-}ikKdXc05-}$$jzaITx;T?K4{mb9`VXyb8
zUQPy`A#<SN<771k2Eh%#Us%@uonEct8UJ^-=PW}#`(vUD?TwE;eZ6sZn&+f>YphnB
zt@b+t4xUC(OW}Y(ZtedmdB0EUnQr_2<@#gpEuVI++^EON{N<<iv6t(9-rYUn?`Q7n
zFaJ81Nrba7fcppx3=&P^_f}s0|9f-!m6!alcD+1W_3Yg0DKp>ol}2(LuI*m_QaIRs
z<z4X$pGxa5M6;hiwo8S9p#eM#n!q9V@9J-^S(pCr+T>%uuXfue<BsLtCYgED|Lu?d
z?-ktb{-UIK`My8%cYnDtZU2hX??p0LRkmZBj=cN+bzH?mR^Rz{u`_4RoMl<OEUxzJ
z)x;HI3_;@drAk?M>`wZgHpoeQew$B8<fdWC^@lMBO@6EQ=>6_ysr~kNZtORC%iNce
z+aBvF|JiciZ2sS!bJo2DH2{rk_#PhT+by^IH;1d4l4#ePl7Aog{Cx#)t*v@m8eH;z
zx&GwDg6qPej%96eafbf=e_qwv{;$v8y6x41do~4O|Lac2uS^Q@TXUMZ?drF;x1WBk
zGEF}x^Yd?=?S})*QCl)5-mCv#`}E0;|Fspr-)=8`y>|PmO`C#1*B*YoQ+z)2<)x*+
z9?Sn<A!(e(^VyoA;Yz}cWheh>bgWpmOzr9O=dTz4ukO7w?@Yw>$pvkT7baV6DPsO6
z?Rawj(}J45+UEz)Z2qrnseQf9dtuX@vfCd8B_HNHUU{_Pbg1*{zq2#)x7pvz@Y*h0
zzWvty8z#TEE0oLUH@5k`VYRaU@^3Q#ij5lsD=RA#_g?$8=C^(H_ZRD0jTeU~COzE$
zecl!GxI3$lmCfH|eCOA(ub00by_tGupVOgDcI(+bN2+_KpPLg{Sh#Up{{3}7KR>@M
z_j##)t>@acYj5qTEY5iIYW4bSqTw+M|NrR!FH!QAfg%0Od<KRDj=Y~gS|X-5aO|#2
zTe)q`uNF|2+_tV^-_K9;zkJNkzx-GK-PPS&c^}<BG-1W8S+lBat*qI<@v9@2wce}y
zovRzOW5e|ukB)YK{dPN_e_sNF!+cQL$WY^vSvPIo-p^UKUv~CqIR$Quvie)~j^8xu
z*JAUnPde|vKDmmy>h*z0(`~L9cjXLtP_|bg&ED4P&0V#6b+D(W=lYG4CJ9}=dX;x)
z9z%oeGd^Yph8qRDdH&je*7{Ojte$oKVezl^<yl`}-J871?&_N3+haI7boI|%0+niO
zR6tE}DbquXFYdhCzi19m<)xS>+KPHtu3h^URrK_u#hR`AI<CLIy07;4mt)fTEw#3n
zO@40XX9#q0W)DnenPcpvaJ*sihWa;!Tt@G*T^kN($MD_PU;Z)Sz(1F?19hL`6*BDa
ziEg<6Xs5BjKldq@cg|U-+aAT+{$1>ytr63=$F;W4y8_z!l*77PzI^@5sG~Q1;m*n3
zCgnvF|9w5y|1$jjTu@fcy8lt_>YVK0w>!(O&da{Oy83Op(heR??YnE&^q8ck?wB(5
zUD&MCOG~yZZa*C`>-JKU>59`6PZ+37Pdt(8(Uy2(LdnDL58pk1Yd81DT*=y(S@{!H
zo<4orI(6Y@&}h!RJ(1RBZvrACBj+FQlQec)?l<?9Y1ywYFTK;=GB7BCXAurCJWXHv
zT07kTLioCO=lrsAKEL!=m)iQ?Wij8}%&Rx2`OVFISGlF+l(>PY$<k}<8lrZ;P*5^!
znwy&_n?Gw=*t(dNzO&6%u3F_KDk}PSU)sAnJ3%YM!q!HKO5NU7y879<xzc5O85$Zv
zGgk}-9zSos+?94pBi1<eit729%T_+~+i$gtDeE=Yio4hU?w8%y@W(OupF_aDhLsK%
zrr1kN$@FsEyqi(P<ZQr?O_^~sBGRWH&$;EZTY0;rcy@m7wOD_iKNah*ukMvLfAw^F
zd{|yyo(8+Ry?uOS<lWtFdePf_9v|!Fe){1~?f1L0?CbaK`~Ua-YvcJpd*;>utK9qf
zob|7d{q-^*zcVwu0M&O43S2yg1LD$leKNY79Lp6H6C6DG9oOR@TeGiwO%l_IxR70Q
zcUNiDzM7pXE0-;E)4Sf9dir`yaqqn9cb1?b2!5Ln4WPAy)8ndEo>xd^fNVKnU=T>+
zOXva({HP|I->=yWI`2{=goR;)GdQj7mhTW~Kj3{?^TCe(VAi=wGBW$(`|i897hYBj
zxS{ECQ**-&!xKCB{ni)q6_j~R-6qfXJ?@L>uGbQEZ%Xu*&tD%IWtdUp#>l{+5ZL<v
zwh-vN76yhS@IF@1AuLVcpl4uUn2-R@rwpJOIVmg7HJdgC6+b%@n3uN>v<|-HWl(5%
z_;;&iix)e`tq*r~b(JzqYRTL6Qf;nP=_(w{N84lPCw}U9q5R@Qfkj+%g+;9LoyT*t
zjC>D2RJ`r3@Ph02!xFva+3nT)l}q3M`eWzv;ygotqb&miLxYP8?t%PmZGAhR&#V5j
zI{vSh{+<s_pi)j)-S0*I|8M!fZQeibw_hj!??Zdk?y|LIZ*MJ~Ge<@@Zcl`)tn9@)
zZ?NwZ7;bE{X~edWW%b65f&R8%r<mp4S@C+^Zof%e^6pyIK2esxcy6wB>DQ~_@kM@@
zO}-ux_RskG>MCd{txD$MHeM}F&5PdpdzVD#?Nt4h&jYpuv=Yg433Rurh9_tbUX9&+
zF})ZGtF&KVUP{^5?Ew{+w~J-$Y9dNYOZUc2o<D#6>UFzLeKZ9dkWgXhtnSHzvPV_L
zv$VAI)QJ-Tj*gD&lfAvXLc+t-tL3uyELoCrVExNCZ$i@3(_dt--YD`Ssq<Qaf$XhK
z%O3ujwcvK*9YueY2L-(gZvSIF_@&|Pj)~V&>+2R@F1s`T+4lVf@=SHVv)OOI>F3|Z
zo_oBP@Aqtx7aR6(<jZ$l_BZ-n-MM`s$793~?+f8+{A!sx>tXxLi1nFSSzQ^v3<8<g
zo?l6@d(FV`vAfN0(ub<Ox3=fczgO|Nx31sRH@NNM@%-O>>kD_jsb9T*&6+ER`R!{?
z{`f5|$N5@{K|uTL*|Vq4pXYyV`t|GANlQL``jjz+g+VYpK3@J?x-0`|sg@@bbbaO4
z<l}r(r%r7>cDzS&@w#<-rY0s|W-ToS7grBr{z!RRmA;zd<?UU)_gR<rx(&5w|9*$<
z+H-bpR`Z#$VAd?Dx{Md@!NHSHojx5J9ld(bo;?xMg|F`jXFk4H%Hp!g)jN0AY)n4h
z_BSfKGJ93cwWYV_Yv0Q+^4|LW_Kh1WK0ZF)ZnvF*;bdc*ACs|fuy**mE6aRmhlGYM
z?ds}^JAZzjZS>2RFG1xSC|h`5VwbN0*?D%Z_4RLaL`6lVjMI9y<=z&{dSGH|nt6R)
z?5|tb_oe-o>OZdBf4ul)MO|H;*PjU@oRyW8cUCh#isO~}o|V9MyJusX?y_6yv8(>>
zeDqgsdr0+uzs+kI89F=tzp_00TJ`me@%fC$$9hklJsTPuI~TN3;@&;ImA|L=fR+J+
z7TCts|1EucZ*TPJ>H632>@2Q+TVPuIs{}NdKPg3`4Yc{vUA{JC{hm)<-`?F_oqBp&
z=9?QE7sjp!r$UDuL+EzCNm~*QHpM-DeQoXKPft&)dfNXu$p55hXUSz>^Oc)72X~9>
zUz_Z2ck}g+SFc_LOxUP$xBPx>R&MUq*z&te+uGPbo2qYZO6@i>HeURz4s7;;0~aoM
zCNSSzsbFjzZ2#+G|Chz`e=`m|H{@~dxB1i|SD8|<@R(e`J7`_=TO*w>$M#BDyt{g!
zaDAKms=Mj;@{1lr!h>Og7SH6r+>BsDg}6ZDejp}i8>k0?wTwIP|NOnV?Z-p!mH+=g
zCvwZpD4pngtoIDk3=<AWI6HB8a(Hq#3SFAeS`@ov@1gT5jZZR}r>L|}n`O82(Bv&Y
zr>^Uq93OeBMc@-dqrd^Pma}Fz62zo)_Pp;_IlXDgOv~rr+if;I{dw=PWTxBZz46zV
z+Lyf6`5w8?eR1^j8a{?85^SKAMhpxLUOdd8(<~Sm7*yLBWkGIcXb=+CEMX6*tGR!D
zTkh?U_;~&EpSkYJG8Aw%Ik5A|TsYDxEXtMo-JWk<DT5bl?0z02*jj+=Rt!@UG_LOo
zI@-Wjly`euZdPutZizXALh@|${A*86PToALJzKUR=<rrP2UUqPTi1mcE@+;!dj0z8
zDs#UreXkW08vNkilz9rb>+39+@n7Qc`klDjHt=c2`mMJgD>GI9`qgq%PD;}F_G`B<
zv)*nEto~KPcXUx&^>xSU$AA2)e|=!AR(IvQWo=V);+_AEdnTSiC+_)vsyWW{?OoZY
zO>_1MsaEa&daeHM)%v@q+=}J}@2@$t^_+$4npxaEX7_)ronxT4I4rux<yGh7eh=G|
zN~J4HL!)Qk3VXc5el^phW30<pTW{S~#lLhLD|_(mL$NDQb4za(f9LtO`>I&i@@<i&
z(|q6ZuH3i6muIs}{`Pyj>NBqIIy>8Z^}>aU*JGI*=Dd9IA|N~a^@4S!OS>3lpTvAB
zyHgO#%WTzbAj51mZ}lfxW~(9@xBbWdtyWo4%JbsN&1RK{R>u`QL%(hJYO8+BI4d9^
z_xywcANk@hrVn4Ne$0QcVAkWzzY{eL7X))OSN0sJTx%@$G?LlMO?KAS%sIOn11B$x
zdVIt%>*A`z1#1l(gtopue=D>x|BSrX-UTfwJTHE%%vH>;bbA{anzgmH$L;(MAHxOB
zMdnkoW1XFunXMSSoK$V)q9pmJK~nV;K}4GAk6}#Jdb>D!YO#3I!=*Q`uS-7iP%}5u
z-mLS~Vauk6$1K?yQai07NzB1@=lgxXOO8pVe@SmSJKsKj|KGRym(P9fj{oDdIqhta
zuWxVK`FU&A=T#)lsLD<TAMwS&5HjWDWOdLk^NXLJp59vXvj}uW*RM0_c8j;)t2#aB
z-_q%Em$qJyTP>Zp!*Tuof4kQ0dZiUx`E+X3-m0$#-~Vtx-Rj`F^UtT#UqO5DjML9u
zIWyC^^!wfN>?bECR{eZB{p`#7ABW{%Z91)YIsV_%_*YYc{Vsyaip}TkqV4~E>~G)s
z+<n4A<|mSsQtmtMDZF_4;qR?=si7BcbN^1Qe)n<K=R?}RU%T$imuFzm*wNS5$9O+H
zJbd-8T~=>xI$fOh|2V2&^5KCaX!G8jXCMcg@Bew0F?ar-C+c5c$N#U&kd<S42fA>8
zfq@});nuC8y}iAE<GIE4O8kC5o1LHa<ix~P>(*Th-~THVw3OcJ>y_ZMndNV8fVL6x
zW=Nao%_)0xW8&q1>CLd9j=Zs_a<i0_)UW;i<>lv2s?T3DRXcpu+O@v?_J20~dvpGu
zkM}g4LcUir+8j)ktTiGHkSy<TZ|$8s%dSS>X5TW`Ze?KlRx{BR?i%hVw}+)JTD8i{
zIPJ^?mATdLc7oPn)_qwl|1$pn*ZAONvi5a*%HG|vT#$QxU94vLTOM_2s8?PV_J8r)
zf8E9UJs%o>eqLXbvFhKaO_M`qIr)pvH#FAV5BK-)|GD|+=jX3yrq8>0*8KjR``^A?
z_O~`JZ)0Y*Ix+je>V}5%51-ta&U*KFWnB4+37UIZ@2p>!{OV0mUs<r~wQS9t;*DPo
zpO<<{nKMk;TDsf%>sR*p>(RG=HD%e?T#~pN`jz)i$yc>6f2ym$$m`cEm~MY#wR~+|
z-?HsJIw|FWj(Pk4mesxro*$H*y_!$PVgb8cg#)Pi2==#C^#rYIFv+~M<R8yG&=ml?
zUM%YV(k%bSq5g||{gQUMDi2UK20A!GG)Gzj5`RzbD6h}I_;!EPTIY=|ZdYBu?zgXA
zW>@&?!13UDb=AxNy_&vyOI3FJzaR4P7Y^CaT&w-uM=PK|&=Yj*0(dLQzS`YV($b~J
zB-3B4Tt4rTy4^=k&r8dEXNz#jR`y?E6^~f}I(no0PGLL9>2pgidH(vkzJBdxfBU@w
zvkx@zfl6+L?O{20mgoOHul2LB<lvW!yS^8vXVxV9o+_DdQ97sYcW-ye>H76oykCER
zHT(bOptWa9t)3qVWPM?(b+Z27^ZI3fe?B_e9eiuu&Sz4w#b-?`Uj=@v$h8EUoNiV9
zXxGpE;iveQXrG(2;{W@$%4Z3Fmwp_R`g=Y6*~?GH>ZkaZME|Q^YE}K{@QvgJCWZ@`
zA8?%i*!np6e&{-%zRGpydwHfmue=sM;nP%p=SY8}=C>8`JLj28|BO&$n9^-s|9P6(
zd+Q~hzFU9oUhNldQSzrd#p21!_v>t8C(p{-ni)U+-LL)myw3iOmySVwt6ul}S=ryD
zqhgiwzSRHwqGNi+#dzNKjb^K=?aP<h`2U*!H2TYvS8prdXa@X(MibA?bA5Stznz#p
zX^FJGQS5Wy+;dfupO^Js3%56lomBFA{k<#a`rgg?Ca9s#^8(~?hPF4?+V2NMhx;t|
z&$@6{e!k_4r*}SmoN1Mt)O>4K(yp%$&5Le0FW6(SfLUa=(wU@_R?Ukzwjb0yz3-WJ
zf3k;HX8q#$gc{MVspZMf->2C9|4?%0$Ekp2k=Bl4Url3v+A;+6Ov}Hq{Q0#vVJ2^0
zw%1opTcy<eKX|j2(4~I6`e}<2{m-wxxmHyA`_m1}9eyT23P%GK`?`0vo|mqs`(NwX
z_|-Y?UeCs_zb0Ew{ypvQo8QiHashoX|K57F_HERjwCzswetpg_dU&jRx%LxJkdarT
zZx?TiSrB8efEnaZi7o%Xf4FNoeZFO2@Ufl~H;b0{NG`OuOJ1b%a=v)+biM)|Xx482
zbnhH<)u*+xla~B{{z%d?{$Er7H{H+MSC_x|8_Qm_uV%p%SFXE^Qw*CT+uO6{mvetR
z`+e8k%eS-7r8cZ8j=Z@}+5LImuC2S6(&oNCS7shqe|&m>t;v+ssL#_b7H)a9c|zia
zRwo0aHtFXwpI*)vUmq;sG2bS4j-Q<Ump5~g=i2Oxn?BFVZ+~_5@_#>fmhSrQfBw`@
ztA?PXpnLup7#h~(-nzZ?{+e5Ap1WQyR)3mnYaV;4eEPY?tG8udzPE1AT6PUnXvA(R
zyFaPa>qn#BtecB&PL}?>ZJx23`OCxVy@7}Lzvz2kf0}FSurd)6;1j0yy_+FdS=+6W
zdGP4Y>djNVjl7?Sug|^M_%7n!b@nMtMkNhGhC1i>Ki4u>b3c7Dbz7hJxo@uxWaPu+
z+Y`+ddk>s`U~{U_tZ%2?X5Ft(3ewDFm8ZBq3q9d+=;V$%<9pMtEIaf4u)wX9=YLXa
zeys3kNPX35zHPPjv+QFxCR*iZ72msVo}aaO+4i0byY8}oJu>_D*X70jCw^NsCLM=)
z+~!Zz{kxX)ZPPdH@%bNZz%uXo%gxWXd|O+6^xB^F{2HuKZyRk(JnyJ`dqcdU|E{ca
zOA@2shZd`8KJi?icVjtkH6P#Ys>Y<F&<vJ*a(A&^O;GnS(<?l;tB#vrd*Q6U)#KIa
zON?5wl2#{X_Y|p4ungbUoGrin_IJyuux-b$PhI(Nm-qFl4=2{i-duZIHT}0z`|*QY
zHI%H_^wqCx_%rjJn=sAt$eQT~{igfYrbJCo(@mSzJUQ9<)PX|X%MlGbvwzrjBps;i
zkool2fq%WlryW-de!sDtytU+Qp6#DoVR!$0oXOQ{aWHV_4$$sc28Ia}r(b)2b=$YR
ztJht=bOs;i{ryYdwsg*`Y^7Vb$~^Sf-?x7An!Sq?(#CD*`Sa<+UCZz}mVu@hKWtdP
zUrp-T({w+X3*rlc3?cczVjc5c!@p%;%RE~v?`Uc6e5W3kf4%Wt#KB*TB2rLO9#=g&
z`}S4e&sq13oIq9O8u{X=*(PgKTXrSytNZ<|ujwnZhKbX}iT1}?T9Y!0q$1|5e*EZ7
zaNeQ*&Adi_`*n`<tSfy|EwAbOW8>=?Y5Tck{O!u(mL1$L={G$yqhQ(V4X;jFJ-?&)
zZ06bg^Vz0SuO*!<wn&EMl&Nj5ocme&?lV^gjj%bhPfTqO&zY)H`)y8G<;=K0pAUSt
zsr@$R<gfew>n`fY-(Gb7Y_4uZe1p>?@HxK>4pF=LzhvAzRy%2l_PJRR5AJ!)x6GcT
zl6kYO_SWT_!4K{+v>t>;``Yw-H&-f5Nb}FSvSisUr*iknv$9HmEn#DIjKAODbp)nr
z`Mp=CSN(jFdHDaTqUrwgtl}npxf0FuVu8`bh0S|7ZRXuPw^GNrgl+QONu_fB)85`p
zDe`z{GpA%ztoydx6He<Wm#^!umMfOM>D#yX$s?($MQf#<u6ZB(+_vV9<ZGW3I`faM
zG7bNmYL#p8MEdnP6Mgm4T?aH~D86+zHa{^VysY=*YhKk>VKL_`H-)du-@C8vx$Dc8
zkF4*`3QnJA7H3~kwKlGzzTc|)kyPZ_`P*0M+yQOrWnd_X+LX4vN_gM0o^_W!likI3
zS^rJzlU^z8eto6+yX=>@?zX<;Gk60nJuPG_?_||D-p?!5Isf^~$;*@aV?X{X3Xy{r
zh0E^kSpWRqT~*IrTRJ`!Ptvp9y59f%zTMt?3m+H8FX;I=LGjb-3bqg4@zW%AGmArG
zKJRF&m>a3TZqKYY(}at@T)R52uUIa9U4OFUxihlWZEL>Iy(FU?9)GvnNwHGu!+XKi
zYVDK0K8ks+aC^-jY3<}wGjmht?3{TnfBVvPhwrq9^-AVmD|xo(+B3^nH;n(;8T4y5
zhG_()NF`~+MePq~uX-e9yeX<U%3XAqwdS)q242Z-VcGua{c&;o!^O|$XqHTGNIVQF
zJQyy&=d(Wr%08MRTKg^@EI4sl-A`8A^Vi+mHf61+4nbqQ^*wvluebZco5UYK4)dHY
zS6BP<a{l`%?~8Y<Xt6`{hKTm|Et%IF<$Bljy=Z#5nES5ma_+RAYaOdLl$CwSxH@f{
zQ#reY84sjx4f^wL?Y`Z`dUiWquTCsztbQCO%lZ0I<jLdf%EWe<ANZgsB3UWia*5@r
zQu-Xn_RMd!+Zgw)dwKVDS<6Z*r?A6)FJl+3dAVcS)2QvM*Pq+)Qs%9-=ckz8rnkjS
zMD9O+qpB=^eZ>LkihU_k4RbOp@{cv1I<{vfn{a#YwvMSRZ)Vv~v05uyCbQ|)*;QwK
zzCR2&v~2SV>DN1EOc%)#Jla((-2CN?^~vLFkBRS4KVJTF<>N0uq;G%yy}kU^?dfN=
zO3E7&56-_0syZ7Ow{4ZZRK43u^wX05IU#@Y`+l7`Bi3s3a&PS1Ti41~T)4~F#tID{
z#%b&B>Uvsj-s;&~dXee-vmdiwttvV8M9uTk=l5^*3i2BsLNj4P!_szkS3Rx9-Nlpi
zX5GAgeQEZ0ksay>J}5Y||9sq;zU}gfo7|%86YoAcbL8ZvyOlMvm8Ocy>CT%zo2zI(
z%J4tFRp<Jy*xIvJ{u;Myr$0+yr}y;LoP|35lbYui=Ct*FT|cSkbJ3b&rN=LO_Q)(g
zdurpxSH~i~k8w&#B$}nI>zleTIdA?(KI3}z(!G-J!&fiZwDU=ThlXN`lv4D^mi6NI
zUQ3I3@=co3)PF{1aed7*+r1zD$*KNvcqkyAJ;hw_JvdzIR&U#~da?DowpktL=G=*R
z@h;`fnUlV&)_1P>8_;uo`eG$$+vCObGv|L^@JtrroPKV8&%^=``B{c;mnP;ioQixI
zq7E`j;k}okz4}X!K0anEkNk&+T4!08uY2|SwQ1R#2ymxwbK2R$=f5BF*RPoDZx^|B
z>sHXHkM8z6i{8C^m-wPk%cx|6xnoEAw&If=D_$6P@W@^dSXV5kz1t~BVB77pb9g)x
z(|60p1d4iDSUtJ+_{__b>(;N!Eq=#+-S}4Xi3^426U=uTm2ZmiaXod?RBH+2am(vB
zE$VK}GT+=Ic|Ia;S*7JVp4A=GZ@r6_v^v(A`Sg9ov8tvC8!zrWr*>+Qz#1uT4V5VZ
z&(k>$T(~ECdDYq4e(kA2b$&sc&TE@*U%6L1Oep__Q=(4fCKqlooeOt%7K`>DFa7;?
z`|C^I`d4q~?_VpZ>^9@G&4&Zb;H}M*=l^jLk11#btq**?et+D&=P&P7zn6Wc3vC`2
z+~9uyexkgG@v*)uM?eL*diLa5S*CkaTduveTVcQE_G16@^8#MzE%dPc`D8NlzW6N}
z6OZ-Dt`^k}d$Fin&**vO$D`t<4_n1wamW8?Qpr3uMRV7;TiIVvX|I2>cfZ)X`JgCa
z@UZ%{B1qFNZ|afcaEYF8-^x6Lii<ZF&*IkG;Q$&hUA=yvmS@!dy1nx%9&y(Gx;$TQ
znw?xXw4=(^^uVL;+!;gGcV{2OnrwEp|9hBCH+FZlqri#J74J5Ht{LF@v2WL|sH<16
zW<LK|8xNY4(A)FDX>Q%Gm*-yY`_QVNaekiduM6#VOB6Un`j3CTy1p)S`~A9VzhCoo
zp?&HXe`Dv~x_58wDi4p(%lh<6%GuujS-Ch=lruBBdi%Av?{rGa4bDVGM_;{h<HrB3
z1rHBBJ_kCG0z6G(`z7GkOELYpHK0peuY=AYdks27V13<JZClVu61VsNy&Y3(uYG4>
z^BzT!%7RUNdNM8=n_j1%E7P75TExd$-RJOdg7$_R9FbG+AWEs5@49ooXT~qT^yf@W
zMA+HLcGd7jF)@q(Y<MDD8z*6!IoCYx#>UX|X$+eTR~PEFA9A~~@uHY1(}~!HPr^17
zP7PY#+ZKG=DXn1h#@b`sB7Pe@-sYpPy6*MLKyT+&`dPw<d(J1HxH9Q*zsA|wx7OU!
zy3T&!QFyfIwaVaGUl0AR-jecG?yN*~{0qHAiQId8B6)dv|K68>|8CCgyj`CCw%=w<
z(~Dhoa<cmJx!<hs|LoiM=c)c{?f9QvDw*Hj+_b9rumE(1xl{e$>-B2`GAi_U#M}dq
z3{^e+Ydguy+Fo7r=ZPDi-%nf|oGB$G#a6SEt)xle0%!rWyIiHqdAr|hmif)Cx|3R7
zTDp|yR?Fc;R>uVk7}g(n0%@VFDA?GtKHUC>y63I}x0lbJtEg^IyvhDs#QR5A+s^5X
z%%F9!py?~n!rZIZuY-<wn6%{BF}JJNzU_VZcGv55mzQ`>{w05V*Pl<POW*JPo^@`H
z<t+33d7#<#+UM5yFM{Tq3o3rR&w`FIY2A^IzIEm5><cS)tw`(D|LZ=*PxAhPWxH0~
z+Lct5?7jP(Wnsv|-7QMR_iMj<PSV@=;}PRq`@b*!OaFeo?mfvY_m;_nzB!-~?s?B&
z_F2EXaBXe$)k~Kaoz~wU13GlRptPESt;Flf-SYcukIUD`Xos&02@Rck>(;GHe)8Q%
zOODHyzvxt-cj4F9*H>@cSkYhq=P~%)ox(>){=Ho0GjkE>oc0;z4-d71a{cCa$pU_p
z_cAR{Jb9t;>4B8l{EttaGBmPMvEJ=GX;se}-jj15PVCE$TvxjL*Q^tv+x&J(6|~(?
zv8>&8+I@da%;KPRrIKkcc-Ee^*x@GDJ9A<36VJ%f$E%hGw5d;<dRo|UT4w718Io3M
z*Zf{pH3z(6Jn_RKJ-B-2HSy98r323mQywiXtycB?ysR(m#ExmxW(AzMyl3Uvs#k00
zR#pCuV=I}UG}(QLn0}nigWn!1i$I%Oe%<@NZ~F4M)b`)!yh8Hx*MmkC?p8eRmGr%T
z_3F~=an-)}f1WG<b$Q42HIa+8*X>YBy|w$@F7Mmh^WXmm%}Pvr{f?P|fk8t_f9-qe
z3p4HamfX)PUGwwuuWhQ95v)_B-(AoQEWcN|Tm^JqrKIou8#h)gpI=wyaJ#?$Px9RI
zdzGN$MExutw*33{>sM8;yuDp|E$F!WfIU@@ICbxDh!2{{`@-k_>5Gy33g=fn;tX})
z5zG6u)w)D0qPlvw&H3Qq;L8o)s^9H&U+mt0ZH{H}m%s1p<3CpHaj<0pO;zS=n{QpI
z{x18>39Y#%Who1HPc}9_-h1VRVCbv9pHW+P?!9oAv8d0wL@T7cd^_mO&)2uI*M~Yg
zJJ<idzW-n8+}dw9v-0w;fi|ez&fDz^+C8%O`@PpOVgCO8RaI5L_P>AeVuH#~!IO`9
zPFtsk`OSJ5Wq+GT)_q>j)LKPPMfcs>lNYPy@JoeR-nzW9FlUZ2zsl*{;<w!jIriD_
zZe5@BTY$A}O}~x%Ztjb+$DgMQUVgIcn(XX_$=8-#O!Iv%ecflXUhn4%R_TY`;{2|h
zI&JtVZ<SNo-_|`m#wA8)o^ncC+K07Gow+*s%G{Z&CubTyQFdn6U~>F6v1En8$>VF!
z%{Pmh7yj#~rRTioFaNw;{1wzVy0mLAsI$6oH_H=|@)sf#qx1KM&U?P}Z`Jp^<?Vas
zMd&O8U6aVww7~wR^~>4!|18tn_akX;;W5cyufq4QlK=C7{nzsPU&|TmkH};{Jk$!>
zg7rTuH&?buo^ipAg0;*HQ&y)O^Rcwen|fvb;>~sbjnzy~<i7ihOayH%_`BY{c&1tI
ztqIpA%AC2mqi`|k;D5&Q=Mm4&&R$+&vyNBV?8TGG{$|T}zTI~F%h~+8&HsP*_3{0?
zz!*@r;~FEwslalbh1bo$?lm;G{1NCksX1hQZccEy&caz5mR1__JTF8hPMapSb<36~
zxj#=Hob&x&wf}kB?{nPx?f$V=KRq>-tJMj#*P(dUt5;c};o;9Wt!4-)0ULa=tM~WS
z*&j^TEsP32-lI`cUX*uhhM-h*{MuOdsxP;W{oR#tY=%=g=Lt!<omzpQb5fvN=~aa|
z*T(D&0u>zT>FNJXHm9Avq}*?#<k@xn@vk@O_N$+sp8opZ@Au(K6EF11T7wSI{QB*i
z*Cfz^Lw`TC+h17~x_V39-zv~9gk4XkMSlS;!CCCqt97D`iGhLP#QcB9*Pha`S3miA
z&%fOzlOi1*c0S;nEA;j5`?_$@i9Wyf&o@r*Q+c`b`Mk?V#p886qc*4Y-n#w!(w*%&
zHy7Ri^UQqGlFjF=vJY&U^f@Fv{Pn_ixl8x|oV~wd`EvK*<$hOnx8E^(AlRHEBQ4U!
zllrsTq`>DrkM}eY3oZK&3#NM6w?>D2R5c%QC~R{IQnj8CIw|Y0VfEh3FKTaki`U-1
zdOhy=Hdevv<5u72zPDSjt|$3<`pTU42b{UK>tbRSH+?uTYg5*xRqm_#-ad$5eAeRr
zAwgvZ%OqCe<!!Rj2cMYs{o<BhctY`U%4*K#c?m~WXlskyG`_Xw*5+@`qW`3J=uJ89
z_k4w+HoMj11y2_)Xq%|~lId6D69sq6XU|p6&NqwdUw7x4eFf_jZcrh<$hCV*#>GWj
zF0;7T-kM{SdaB{QZu<P%ZE<x!pT?Ac4)u1JXnjNY`l_=h|IGPRE23!`u{Fzk_O7bO
zt5!ccpD=}8ZYL<n8@RUAJgz(X*J1LktgE+TqF=mwa+dRK>8vXut0R;yeB%AheOFc?
z9n$@5;41m@`qXJdQ2f};weOXYog)9v)cGEZqEX4ElLnU_{)myZ%KWx>er{ObV%wCI
zGLN#nc9pAcZ+!Z8d91gs)%eXbH{!^>0#HAoG&g$N?{np>Pd&JH^3A)ubWUnnM5V%1
zt=MZJ%fO9~TalHPZnI1ESTCOWR0JvmR`v9(nB|cMZrN@Se3O*=qNIKCv0cH_C3{1b
zZuu&8TipECnHYiBlY0x#Mb~ey=&RbA)o<mb$r*H7Zi33*PmcE=9Q&F2W7ntTv-9nu
z`1fyf)i++yY;*|H;|xgLRrR>4*!w<r$TQzuy@LEt`a65`^D?h5j5}U`zCq|Pq{|sH
z<GT4)&3EjxE<`Lox%ia1y?W-S6;ZwUD+2HEfBB_WR1zQu3#-qs*ng{dKKISld;MpQ
z%K6VF_a5#piMzXD{eiuVMa?|2PkaTY{<*@z$}`Eh`1sU?!bR*hEPbcSpB~;}RB|ZL
zy5P{Mw-c7k+VEGPKKI7C3zC8_H~yaNc1E!45vX&yF1Prta(MNL@_L6)YZLfA<4%+Y
zynU9l*{0*4h0=+Gvez}QTRr~3ny4&&{6zgmqeQ01F+9>Y{RJP#tm|7g?|Z3RU+>iE
z!Ou@z=&V@zno~9C_YGmsy%(-XR9aqjTjpPGQYzco5qR4zI$_GX(6eDPSwVq$W{q+e
zx9h2|)$&u{zF?f|Re0}8+TXOR+y3RUd&!oAJJ1fSFMEGiz5S5v{@i!v8b(>qs@%(U
zUyohhvy(|f5YoqXV6809-d*)*-z@i#%wsnuw!S;JVdh1npvA8ifvTy!YeCgiTMwfw
zs7=2@;iP-tGe5~t!Jn3%3nwh!+5X<+(MIhl%#Z<(1x<T?9gOpQC4Xmy%HM-0cwQ{v
z5t!Jv=i}l=5miN_^cc&X>*`l6kzBWxDN1!`fB2EQV-`s)o4v{eR;yffee>b*#J+F8
z3bx;!Z}KSYQqHW>-M?Pl+BPFOUL#As<A8rKbKn1tozDte<=Lm)T=27V;rl%bQW_Sk
z%FfI(d3AA(voga?<5!os-mWuhYRT?pcp|0z<_4F7{L2;lR|s~=m?gC*yXjtYT@`$5
zjno#Vd5<Svd8)eRLy`UF|DiwK{#N$gI=$oA3RjVpF)^<L?1btTJeB_asrZ?%Z0v)3
zJo}$CoZH0vd&&pq)>!?;3|<V-&~2?KcW>t_Ic~biYEiJ-74coxhu>Y{<dq5(z1H|{
z$F(;W0WaP$I73HALON30<xQ=A9|`Pg(SCpapohhh&Hgf~E8pwME|?M;#|mo8IJ8!M
z{h)Ac&&sLO=TA22myw;q3F??0f992tF(=Y;-OJ0o*WF?yt;+0rre0U{4DI_PslDBK
zlG_fW5}8QZb>B+X-09m_dVSX0b^CU0TWc<5dRv$?T(0l;ft`ITpLe`044teU&3;_`
zi9-0Hei?iHGi%&e^YuP$>9JAQe!Nm`Qq{R@lFz?)6lBTv@$l<9tEbG_5~eF>a4q-h
zf~o8x#_OExY_^_VW4ZcTk6Cz_-!ao^Z(F4#)EZ^E+qpzo9RDjEs}!|aP<-#<n+4%^
zH<l}KXua}{*U*O!tcgBowq-w^mZJ$<3$S(h=J3#o6VA;5_54N7NKTdx73ItHPwzK-
z^A<FG;s|SnJA8UKXLHo-kla1C8-lL59JX4$)$`KC@Ey!cJD|yu;pCq=pO=NadmQFj
zy!;!h@_wg2J}(JLs}s`pGCMX$O|ZSbc<;Jz6RPjC_dOQs+F?}krv3fuUKxH*Daoyy
zi`*nEWhYs$UTkO5!83P*vh(q+dG7JIWp9_A*r@+!N3Fsi6G^Le&$rIqY2D}i>eSx@
zAAddsB|agZHJYzKM84km>cR>~?Zc-|Rje{S_tZ*x`zpm*QQ=?Rcz3-zf9k@<TS;}V
z+<OEkUa?x!ePzj(t8T%?rB#bpZhfmB^k09f0iQ#{)u<C0#aH4UoY-o#%w*PyRELL8
zA4Ro)+E8=2&hye8u5;%-XIU?eykxcZ#*Y0LVj0<bA${ZpXWqVfacx;`ELY{Fo9ZT_
zyR2EuzjZEtQhDjv-q>4LC;qh;Y)m=;DJQ4wd~(-v^D*-k`;OIRr>kbJ=*+tIgU$0&
z(Ys5Iok@^6j8k_u9sX%qyu3%Nz`x7AC|>0|Z$K8b^fcODlYD={(VZ+x-@V^;Ke_Ae
zuu@S(@~1HGuYC!pBK?-7zfacpWmxn&T~WCvbkeF`hA_`nhE3k8)*Ydf+^m{9V;`>m
z`p`M8+G^tgKG(9fx37j@-xlirHhPM1VRem-NBM%a0b!nwheW&P%$|I#@KngM3O=Wa
ziyNC3uP=2|*qPosMY>dCofofop9JIGFonukm9KMT6X)Cy<ETvDp}lnN$&ATMCQPrI
z+wp7V^^SQ3S!;WGt}NRUX&RB7b6Ronw?~~<{wA<W{5D$0?RJuFpLV6q)^A4ZmAUv_
z6($yLGCviP?jMt%|9XPT+|#mFe<zi{*t2zQ>|EQz-Zjt8Cr=TBj21K)efzcS?<ZzZ
z1>>9HBO9|mL|7`@bmhvhI)$}&u7tgK#}Elkv8Qfqdh+^I<sB_nODm03XgMnxeR2N$
z!;iy`dp&!x=7DdxhNF#2$Dfs-e(y^-WyO2cvRT>r_^CG*IwBkE#X6Tg3-kz@s_dNZ
za^>87Nx^NmrIpLn`m|Rs)=b&H{Bir+!dKrs=H7hwYIXK)KDX6pzTMj~_wHo9@5jE&
z*cYd~w(w^H&8M*M6pFhty}ab#6v1^#R~Lu2hw+AmFTEB&x3Dfs((3EPD|=+LotNLs
z+5Fmc)fKz4%Bz~W8x_7PA8Rb|^@?^^*}Tnp;+4Mw-Ak^;K1eSs{kr!`cI)$1*AHkI
zz2aM{a_;#?FEQ^QRewJ`cDb`~ver)jxZ7LeKenvzc)VF9pvNK_)bn59vv>1e=h(fR
zrq|p|7pJBy+#OuvCuJSPYbsd!Rqe~UZ_KUl_$G)#YY!jQ&&B6#3#T}p+ufiYuJPon
zeVJ<?pBFD=Xf$Biw0w_e&p+&#>TMLA@zag1Bp?cwIz?Cx2IlWj61bU~_g~iPw`j!9
zOoxd|B9fJlTWc!?oqiM@HEs&~UH2fvPq<5_OlEqP`;Wq2K{u_NifbmBC|ye47M-|e
zl6B2i#T5Vfem-Ru8?*0%O3<@g^^*dt_d3oBNReE)CTLbb_;E$w-F!=)wzk*xa=8j|
z$;zhX$ndR}TWhtZYY7`)^z)cpldpf)bT463?dMrO@BUY}*sJY9*&FU{&R%xP`)#s?
z$K7f73bK479-a>4jrv-CA>*~_t8?bBj_;~d>j^S5TfE-(vee^z1`$oW{?K*3)w{PW
z-|QaxaDw0bD-kc=iLAXjSqfA}es7e^y>)%5uzSBo$@GSvf_Cua{*;9&YT#1z@sH=i
zOJ-$6Y*zoyTcP?s!|7-Aj)H~H&dps7>gUQ@hlR&gF1@xUviQ!=Teog)NjS*lJHx=y
z)YKHTC1PI1qfXF(C^SxZbnR^{3i<k@Wy9<H_zs>BO+GnE6?9@g=!`_$zh5qQ9ZlNx
z<&t;lhX;<&ZT9Zn`|F6h-9k`T3UmVGz1r`we}C`)zgx|BmPwDTeUtk-P%~lykE(Os
zd1Zm0JD$zEv8MiNmG1o$vQ|?com8JM^WpCz*KU)tHxX+iHadyNmQ1uf4?2hebf%g9
zz8{MgU0eYkZ~Xagl`v=>NWqsGF`PV|&rh8yOnJTJ^o34~BIiYJb?quwEk32ZI<#`8
z?4-H36>mZd_!NEnx%Uq2n|otxUU+=$?Ps^d?+X4dn)TtXxznz`x!TUhr#^NpyZ@ll
za)(>1(mp5mr@<{fw>H1JxazQ$^6^tv&)4)wYIh$ywPxe3HG5XIO^B5a)Zcnv@v%ye
z<kpO*sgb4`PZ_Vetq!_XCA6}1y1}dE*MIFuo-%p&w>4&)RtGpGrMw7Pw0Ev;)b`!)
z{hEvYp770m?D=l-_wv%L`v>Dp`#t{dZT@ua-aS3fth_S*hJT>F<$r#D-kNZb$@bTa
z#h|+mKnDkaPR9<raf1JhIkd}QwE5A8xoYaYvMZNav8nf^U+K^~D`6dUX<}{rCD3I%
z4^}Tf{!jht#hUxq&zj#~!>zw3VEO#IUB$b;zP|n%6iq^%Eub-2(1jVl4)WJ6*!_N=
z_4L^j454Y@j0(Hzxu=DzdsO4!&Z`OGUAhu!C6diM8_<~atE;QOUU24LI``c7+Fn`f
zu>ark|1T>(XX!rw|DWeyuh;**4m#YR=<44!A5MsZ(!i9NPo&p@O`Thuv{|mEw77nT
ziPz<4XJ=o%aN)xL+S1a}TQBo>y;QUPb|X1zSIJ5>|9NxDZgC2$X-M_*RqO#T#p;u_
zzH<Ba>Q$>A?v?Iilzrl>@km?d;mo%&g-cC$6h*9&=~pQa^UDGyhnBbBZf%&Wo}60Z
zaf!oS?Kp>fnBUxqR|{?K_NDH;_7+r<#{53C_5G#P7dw9R9Z*Sc^ShSquwN!-@uA}}
zuh-1l@~LQz)f%ql+d`$EhxHcL&5ATRR+<0Q^QvTNu>7X;nXh~Jv`hcx>3>yj+d9u`
z@%=ElfLN8Uhi6QUotk;}sPM}3JAX$$2~UkGPkFmQ<3r_|M<vIFs*1DY<xa%ByKpk%
z6W?6(?ORq`PkRvhUUk*Ng^33m`n&~LK;vA?K!c;*;`-OFtPJkAKHn-Hw*s^nY2SNo
zkypRZY%F^l<vYV5@dkUb3N$@z`gCks*-@d!s8_2YUC1dt!n0nRq@`@F60ZB-AaUw?
z6D#)@&<d@p2aW8YOF3k%%QBAl$y$}XIAOnk-R^f*cgt?){=I*{;&CtN2%3E#d-F5i
z-r8FA=i~9OpxY5aXWl8AH9}fn8tNyHuYKkxse1nFs*oigY}WtRoBPDh<tHe@uiU%0
zu3LX!gs_^=i~qks=llK31RaR`_V)Jg_4jYx0v`nnS~Paf;xSL{-`DZiLAN>Gt$Mw-
z^#%*nJ4Kh|J8G2rqf=ks(LDR>?JL<R$3DNC+)a<|9rjjyd^BYnXqDL0>G9{B`!_)s
zI|QiJ*kAaRqVP$CY2xOoJQL&g74EN@zr;zz{M`k|doG6>54j0wu&F=cu$S}E*d)5=
z*7bR@5At(w2&TQ^u`k<F{q2)`%O?5acbqY&H(iIOjYV2{+m9c*+5R$B_>7jP-NMz)
z&sy96IqFJ%6t&ZOU~xGh#hBsd3P<gZ+gxwg8J~;PZn?3lRWR<=r!1N6FWh^-6-?Mw
ztK4+vS}wb)^xuuQlrB!$He-HN@iqGgYt9y5y_az4?B%u65_xj-k87R!z1#ZgMcMG!
z(1_)J7Ig+XY*wX7%~^{Rx5{^A-hJmc*JRzk3$aXdpi3N1xfuO^y5^di>!Ck8r?1Vh
zSh6{4wu<NJiZ@)YeO#a`<{FGP{`sJAWaplBH5VowJaL-S&21vAsdD5~Z~NzBKNb7*
z4d*OvB(~Kkm%muB12jY5*&@tky(uc;xj9dpcC@-sk-dKW(^HLwGWy!PohGev?mIJg
zf^F^G^yimCthX(!5}3XsOPO2c?ylI{(!ANp@gc3N&wQJa9KT%n`<snr;bDH;G;LF=
zWF9_!ASKH8oB7kBLvC+d&&J3qJ0G`*U*)v&a;W6<^sR+@(a+0!1C>kTvgW_G+5OMS
z=$!N7mB+l_md~9&Yhm)&<ExUhXRoalHoYYzX;(C%;L5zIo^G-Wr?e>5$gLK!w%)b1
z^1foLP3AdH-`012C#`<BsI}T;Uf!qo_SK7PH`-=7m2(;tLhH-MCy&FH`(y;v`eqf_
z7zM`*UtRODw(-)PrOiplpv~sS6a}OHXx`XQQ{S(zbLivi5@!Z4h7Mr+#a_bUBDbmd
zcX5ft1;>v{&g_-KmTKWl&cc&qZ#+2lXk(GhBqg`Fwv^|AOJ?7jYAkHJ$yjCOsf%%s
zZ**k2x4B!H&Qq2@u@PJkO?$iVb)k>GXQ#>W6OT^4`LLEjIOWLcgQi+iUK%x5K5qAW
zzGC9^<hkBq(V;g^o%YP#eD0}~vh}G|6SWp!4s@UAbHpR}Q}5)<as3zFm7gEKWw-k5
z8F8a;rAjB>{10DO<ZJP1b)RU8g{;Aw9vO`(^O^4&f?8#hOr|r=RrKEX^3~g1*;j8m
zvr|m#trq`)H70gkH`{uWf629HQN8&pN6J^InOw{Iv?A(f;}<DQD~%v%qqZ};?nj~a
zyK^V!exB4HoBLp+wg_~I=Yk`uhpQzooSd7|cWyP$iv=Fg^)sq#%->}{eP-s#^Ww>+
z%HZEcC1H7a!TED?0z~8|&7EML$jVjS^5Lo1iH-WU?$x^jQm&tmdEH^fR3F=T=;rp@
z$)_(mwkYkMK6UXvt8cB@_m|r8Ic{5cqU?cIs+oxM{YpjsfFCOk1g=(FYxeq1M?|h$
z(E8H4v|D0k+bpwMl%gLVuf4qNT58O-U27|ixr_OvZ|7W%IF@_NEc!C5v(7RF_UFPA
z#50+G1<KvKb8Fqa9qXS7hR(WYwCKWJP3g<gZdoC*A-{JgMeSW1n?C=*>j!}`&@AW`
zVf6Uv9bxyA#e11VBR|``Kk@o><r^+nXa`jz@id3ax!F%%pN{|AU>>{h2Xtav_0)G}
zUHd;#Z+8YuUO2h+iNejU-rrAt+eCFga%$uIbnG)z`Z|tHpvKMH$0fh*Zdb1P!+G-D
z&IwC4#Juf$s!_h3ZTGaNaoZQK?*k3&$H=jV_qA&?HctF`@bl+_Ua6pK-8ZL2ertUl
zb1p;H?QV-~WymulV;k<ZR$G4M=597!Z#p-0@yusZmg_gW&CXAW`Z$HTOLTc!Wp#b|
z@>{!-R`s@(-a69eRKEPp9J7sqrWYrCD?hp=uY9?mRCxRgJ;uL3tU)z7gICC>!qt}Q
zCYn;u&hL&{-PK~UeCzv-t5c;b-f$gl?a~hf-4LO-;{nsvt5;X9T&cOZa^3!aRh9G1
zAH3dlT2I>GENBDcQT@6=US8g;tgK6*^UKejJ6Dqf9uQTG`gZW4L&~S(Piiw4Z|+G*
z5s_poL76a$JX?M<bvoz};lJ_xc0V38%&-609e*V{fA7-e^XsBu^OpO6bnicrdL7g+
zdE)VD-Nerl7f#MjF%x9AlF+*U{VQnFy#CMe`ZbsR?PE8mpT7p04Ft7bxSHN9W{|jW
zve8>_rwi!HWUt@<{{AjKsXF~hDrg#MdEU;aVrS>sTCe`OYV~T<x<5butq)x6_Vxdp
zx#jmRPWHE33EIPYVNd1fFAMo=J^p|3{|{axe0y8&>91;_5R_=j&28VZ_3ea1ivGoZ
zC*G{9P02sUxme`W65ZeYnbp4+I+e4lYH={d79JG^pXa+adV3aV#`W!%%UcQ`yT#W3
z{krSbs@0p~)R?U-H&lE~`upR!{k5s#aVwkI`M+)d{_R`V$w{iLZz5M6?H12|b7P~`
z&nJ^Xci3gUzqj|Vef7(w)302)vZVOD?e_g|AItyW;k0l9=)kP!M%7hS;3gzD!zteD
zRtydsJ?|M7-8#b7yW&}``A?%wR*NpHnRzL>vo~+gxTpj=Gw;03=bpIwzooW69yC|I
zSlGTL>#Ek@f8Y0C2i-gX3eQO0$&7Ple*S%5zh2h5?8TqY=dZW%N^{+ny_`Bdb{R+o
z=nk+i{Qp1jM{P>!1l@0@Inl#oQrVju3pXYo=bND})VX5kPSC#40zJ^|Cu|z%?CUZH
z2Sv~{kjU)t$v-XCKkW$JH@Dit{rOe?Z*u8g2fjUM=706=cK&sD`(GEQ%m-~4*!A^V
zbm{-U-_y7Hu$2_09BSbN*$HZmfUdsj7S}&lCAs}xRkl~g$Bpst_x*mi;P;Q8=j-Fb
zV+vbAn-a9w?+F4YFx}{~JNwui74*;Uj>zBr)@<wc?ceKj@9n9)P|MPgbaX2pLqN_X
zW~<N33>Qq!|GcbkT1m=$=9{1^YJ%dtO1Ajdz6y@oniU#$`pLdMG9G+oA>rYmnVakP
z|K7d-614wd`~JUg*G&7oHow;UdVGEDt;}V<v(0Yg%{mR*vIU;Pev>SJ`Nzk{TeGjP
zW4wIiapBwh`{N%U>n+w>4p}E*`C6PoM0s5)LqpQ0?VH`-zkO9L{WgYa;^%jJ4j(*`
zU0w$1hOE#k=nu&H_V)JlZ|`3fK0cQD|KA(Am&p$5?0vqA_dV{jE;*&S{KffyZ_aOu
z^7HoYj*5yZy18}Bww#-b_Evuf9r!<K$<NQvSFc^`3tHx3`FxJDXVtfx=}&*}dv<pA
z^sk?q4@{Qd@&1itS<Lp!Kl{q`&+aRi6;I#&=9^2xcddsnau02lc^;OcuV^iM@2<N0
z?&RAszm;y+TFt0za$Ljwa_6^~0TIU!uX4|}+O4~Jc4qAJBDdEDSq6ePN+mx9T~9un
zzi}O7*#5P-+n#M*wmIvH)w!A5zOGf@{5eHHe>p=N>+-ZpuV>Ha*sPm(ur=|5%_1-3
z<GojI&7E8IwYhfJn=c<*-wAp7C`}Adc_i1w*?zd|_+v<d{qdlgKZq@9-M(L0XJ?su
zpPsIN{<M{O?yV)YzrST(UgqniA_TetPX%<dhLmN|5|zwrYa*j|6f6X7JSi<Jdv(tG
z{gtcX@oPUmKAwGdSLv_S`+sSJ&S3=Y_E7a)KBuTlZ}%Iczdz^y-}&!p{6E)?5kBU3
zOD5a>|9L+9(UH!|o8Vsl&Fae9`wf1d&IvxbUl}}mYgzj8xSt97%vL9&1Xy<c`}KNm
zdCm7PUsCph(({8O!u}?={jJ}c%q_c>SsD4feE;v*zi-m*U;nQ=H^*|)lIQcP{lw#I
zHmYQvon@MppFjPI`K|BAr1M{-+y9<<>((uk!bdK#RWFzR0xf4@RKEh+uLxQTBLDlw
zaS^W8lCM|8U(5ghDF1mAFQ_16YyUInp?UtRjK9}U&pvVS;DVG-EaywF$4<X$BzZwI
zuv<*`(jwRHOMb;)7AI`oy0z-n%H@5#?>u{!20G}#`K=siSFKIv`>vOBWo0Mra89>4
zYrSXv{d@NoeseZ7z2?S!M|sMm`TxEww~SW<b^cpyI&=Ex6s8(4sb-$(edxr233n_7
z4efKbv+vB>K3}wS>vG}ZCv``dev9W_t1W%QeSM$zk9RS`*U!hiT~~Zy>g(pm#ZRqL
z5A)lo{!u=?G0W)5QaPK~7RT3`DXSl|vNz7%yv;IgPE4Wx#7k-?c^+?grI+S6{ny6B
zZx&DOHJ&1)WL&SldE35!DYF(j>n^g`S@bYq*R<Rl%M~Up>y=!%@vCX;JHMk6w*wZh
zOm=(GY|Fm2=CEDu8<Fw@x&|^kc7cccIV($<`=dp@KIzHI?RGMRF3<8hq5b;1*Q3JK
zP9E<*PnW#lC<v2qN%xOgz5VOc=VxYH?K-e`rOoGMU*CSd8hyKTgZl3Z28HP-E;!yh
zBCN>Dd5kA^Q}4dQC6P03${ZKwzj=J=^@;q+sTCeU{rT}uF+Yv>_I=B9x9~ZyU{n%w
zx@awUM0V#l*KNQ3iqfA(SZYnOzONj;PG_FiloJO{wVt&<l`s8sSW)@7=ESPH3b(gW
z&%N`NzQ$}h=l?q99p9>+ZC5I*n`dmavF_JOY<Y2HidF9Rt-4|If3MVNXa8Pfw)$OF
zZ>_BHtw+Z;mOt%@*y=93aEi>_&#jlXCq1rH{o^p%{c2WHaPGq0!G&t3SF?hG*KXS;
zd#S7Ucj?75)11mVMSJ#d16AA$T=x8Oy#F}t&fH*&lW&xYN&+%qEzye9zu;y9m)g$v
z@s>6_*hILXZFQzy$((C%T~g~bj}Z;}^lnAy?Aupmi&>Q!ejbN5^Bb<4y$#n9%&2kh
z^~+eNT~e-ft#k2flXVND_HxFr&(G2>DGxZv;p%qph;SmSn}90YanZUryKk`zE|BKE
z`9JZ6-;%azUhf_xXg>*=w5z8f%<~oJt~X`rB3q*SlXu6yF8g|QXKr6@BI`!4p!_?v
zGfU4twmziIe0<weEuEc0szn98UMfzP0vUH-`^bH0<-&uC$#-q%3I37x<7Izu>f9WB
z-uLyNcYHy&cQwtMvTfCYb^BLLd~q+AMdSACmFF^c$t^y6D@|L(GHpvF<B4k}>uwdZ
z&PZ?ikRsCTGUt5qQ>C9fu2u%mewzBbjrU2<^GYjF_Pif@`^%?aduQ3twNVyfgHC60
zR%FJ;r=4cyQ4opwB(Z19JQ-OLK4=&|0Zqr&ey;O;)HgxNpg!upVMXobI@wpM?(DE-
z;UYVqO8@#)tY&(3()?f+KbhF&oxP@As!Y1~PrN=ID3S6)A^#Dlf8)gHhJ%H+s&6fg
zN}LwHX_j8Z>7Li4%>FFk(7B~AKLr;Xsk~gU+IGYA__xQ;d@JFTx+(n<HaxTF`o{M$
zmX?!5ic_RgW-oMhIsQOZ$oaf{$5H1`{Z`Y$e0TNT-MFT5cW?3Q2@{`QNu9Gfwk~US
zC^x(FN=YkIw{?9gU!@irgq2-A$a6jS>&DYJ?6mivTIH_2{nV<%J1$Q1eVZCpK2xq*
zVZKm}oHn<<T-}|le_t*>c`m|u{<BH_FA3W}x5W1D$Xjn$6Xd;ccZ-g0%#MKlzpk$T
z@^1J0Rok|Of!199dno_UQGI?*k=tkcFBhD5f!0ONJYVCs|KHd3pYKFVhnIs2N{ynE
zYs5Ykce&U1owF(`@wzxk)f+SryZ6th(^bD-E*I@STJmz~^j8lKHXol`{`gq$ulWD3
z>t7z0|M$V*%N5uJP)BLW@h{J&?Yo{ld490Xq~nizb#q_6=v%q)*uG$yqc5=zrxx#X
zQCg^9_py7|=X2Iy|9n2bdhObR_3NHPme^?|tzUOv-G0KdKFNigy<1z~@$t>R5wcoy
z@#`n-mp1XAxTq;6D=W*qud3?J@e}=5A!C(!e%5zEn<A%86T4e*nAiE;>wv;`zE8*c
z+m~1*x9xmX6>@9p!pG8<;>Rz`7Nxv!iIKGWR<FpXl69smy{&KJLPby0xNrG91-hpp
z!?I~lXL`KLkq!6jQ#mR-lg)9Pq*coco>}vovqO~Rf(ot_t@)#M-=ZvRcIbKAV>?ry
zo-9#YQ#0$zHs-ol@=UyS<zCTK-~8&Xs`HvXHTJ4#%Cwi4Q@{L9xN~FLj;RYL-@2B3
zB_>~|R9@}RmE`y9Y*+XG;hNG1n)QuvfBt;Ijx+P^+@!zdUFv@Q?N##f9_^BHg_T>k
zmLB*HIzRJ^dHrW|EXz&*eQ39T0a^pPwdm=on3B>H(1{79Z;y7_PC9X3(@oq*el2_a
z-7EGl+78`@ZNXf>ZrlHj)mvD(#Xu)DR6T4JpL1EpqQD{k*QM!SK!asc#%Vr&zpO%_
zW!%JDw{I>kFPE91GS|MBac<IN8@2a2?=S3Y-kT+tcwe{g;pGb#3=$lkSAh2RBaNHB
znUi;SS1ITyV!i!;KK(Ph|9*F|rBG+a*;%Hu>}r2Ku(soX*--Vg!0hzN$FEG&o_u_7
za^OSO%JtXI6e@$88Ik+L=g+cTcp=uQtx4g+^?lz=L7PrN_gyXXn>(xQSLEijmuJoI
z%Umb}tz10N$o%VKf8CT%E3Own>#wemPlei_io33}UOt}j_MG3|9es>*gEoQ2w?7<U
zuKIG(Jv2TZ)G6?oBqc2!8hv}ZWyRgn>zS99c!C;ISy@>@pGs%Vnx&$d`_9kKa6$7P
z&m)JplHNH)q#PHm(+Q8*BzR`l6RyuZ?LmkARIMvQChZdXrn@xEVs%RUMz2ea2l&+1
zecH_LS_VsL&u)pY`|!AA;R#N6kEPl(Li?P(EM7nOX}QBqR+=GS)^4@j+Q(u>ulC$t
z;jOK3gG*?e)Bd&F`U0||J-&TiaEe3QK7&P}T*9<mVdAZ{Hp}C|)5|r|SQVDn^%ycw
z=w<lS5;(hY@5!0hB^aM-1hptl-<D#={nPSj_P;L|qrN<9`*+ZMO55*uyZtAXd^{@7
zpYb1bHx_8U_M|PDm(^OGj#l%gLZ)WBF7$oNTYJAYK+%7ed!64!tNK?NmGidbeRl*+
z0q<b@E#IS|=g79cD|Sys;jQ`lQCl?3=SnVlB%1~9LUT>q^Z4<W&fcswTi*-0Jv6=M
zT6*iqK7qJ*mkt&{Cx5#xaKD$Wi~Y&-?wn?s__-I=y<b1SH(b#C@UU|DiP;K*K?jU)
zTR!e9*pM&kGkxLXsEB^$<?2!!H|MO8;Xirq(}X2{%DbI66`QJPu5wIyVFB54u`c(u
znUS^1%Ht>APWZKHNz9)ewK8)gt=1h-DY9nMz2&4A1zQVXuqkxY)8mIPT|9nsh4N;(
zUaL2z&v@H|&+BUYFVmhh%R2e#Wtk7XF|x|<)!y7}G`gs;Rc|+w_Wt9iE_lXn4{Z+n
z8~HOd?C#OtoH;H!UoC!L+gKi(u~usFy8x#jHes`x6fRsk+{`R*xpL`&y$3(WlmvDE
zD?M3d`~RLCtE0ks<;Ma)k6#5ZaOpZ@eVaeSKfOO|apGL#)R2X{n;%=0pVGMM;(V)i
zf&2S+pd}p(oS?%uuFrmcFY}&sZvM43uQ>Aibjz+z+;GlbCT6ZpnZrKlc$aJ1%ZHAQ
z-D#h8gs$B2;=|%X@9UEmH$QZ2<NLJST%}dgxTG-sQOe1Q)r&V+KTv#F<vKt8|M%tQ
zN%2~I$AXNlRbD0>%FFM+{nIS>q19&FCnr95EZ0rchnAGrUY|JCX}zgv&6_@D`;wFw
z7PpE^FYWM~*>%PGOLm9=w`PaTRvB&m;~B=UL2DFluhO1VRafR(9ej)LNU(9Xm9kr#
zpT<^Qo!$S|?0WMp_;c>9-l#Vlib{>nUGQAHH)2_(<*|~mzpU%L`vR-42zq(#y6>vt
z)m|kW_3dDt=cV?O=QSn8&%WVyt1CThC;Q5G#kMZ%)f3`l?t+_Y9eX|<jQgrq<D0eW
z>X&JPt?&4ZO!lTOQ8T-?!u;LqtGvIt?#hNRK<Ah`ROD~|{NR~f5go+&(PsVszEw-J
zPhNEV2Mfg~m7j{e!amIq?CE(3UDF`anVZ}G<=#5KR-2cHUM6$hl}&khNOH00rzKmh
zt+(#|8?bP9vyr=o(I@q1o`QLTr6;S-??@}S+cvvEy^Kxpclti%r<;!pcHNQn=GB|J
zWZe!~jXN_vc<rYyVXn(kSgqnJ%(>ZC_WGun*JWR?Zq2pr3rM*yXd$_TbJ3Sa-!^`(
z3D?+^?AWrIFD~cBbq)PzC#`=)rC(hl8kE<f6rEmkha=>jp;O&jg@?_@e%_twv3BCO
z39@Q=omDIMzTpeHUV9+IfB8lE)oi<ab6=V^9T#?+E!rR>ar~yS)5N)3r`Ov34%B}B
zU7^c?kLiJ7O<cwL_l2vCqi0`<NUxW3{Ft?B^(D#4v$qr#&z@JG-)~o*m%VUzi_tM?
z8g}_q`gG6TRVA?{LHFl|p5K4`_34T6&;nl2<40p$#r}MO2g=5kcUFa{7MH|T<Zl<U
z+a9D`5398{RAui5jsLChd~xQaZ|gfgwwGtFsa*|s-?CqO+12RV+;?TC7=jiiEo@mn
zL0OsQ=4rDwMUI{6A9~*O?W=rKroG&0Q?ZT8O5?QWmt;zw+=!SdH)-zGLYsA|me=3D
zSe*^((0AN^{5WnFkF2F}$(_wJE`RQyf6%xnWYg25w&`*~K?!Ts5C6ZR+EcvZ`iZSp
zDRWMT+4;KbY<0_W-m96bc)T;?YU=d-)UQjf-8op1HGAsc;u9w}bV>dU<y00|F}Stn
zak8B8amAB6j-5E|xbf7%t$c?c?=;=5^0igb{m`HHdqZ3gE5=$R_spxwZWmjBbFFc-
z<Q(U^0?@@R3=K*j&REwnTTP#1wC#ZH!GKt!)$b+jKEFH1^qu7?bQzq+hPkqLtBSLC
z+xY)_agyi7lwJLDau+I-y?2+DmWb~#*9eD(cBAd@y!&@8)BW;-y!ZZHVd3TOU0eEp
zaoEXZ?k7^9<w^R_PI7-fQ?{<6FZN|u&WB4p*R7OFL|Wd=6iTdai&MVrG>K1gro^O@
z3nxBLXw!5)4w)|iHIOFByp7ZGoi<VX@_~s9AD{WC;GBNplI(n+)<^T4+;xwy@&v6)
z;OTMtet6|h-;WiqJTJ-m+orFrnbq8R=2PCGn<+0+cKBplt!At4U8A-7+nP68uV>7X
zv~v4v`FXX`xeF%?tP*BaZgl$2Fw?^>?`xslb}ec7`KDp3&9=XsSzi9~^Ygg@FWxQS
zfzG9f1eEJ66u)<0*K=3OwH-{~*>+Ak<5cx<ukEY8)c^fn4=SKZi>a#cu3YKy8sD5X
z7d3@nao?4Fa$=>hl*z)4ZtY2&d$;7}gEB322dT(~i}~9>#hkyn_({dQ<G0sMfCnp!
z;|2Lyzc&U~+*x&}=FbPi+HZ4Xxndlr9Z(SL>e<72)TWig^_*n-kB!<omQ$XIw<RY!
zp4hmd!}gnW|8lnJUP1lJ0Xt5McD>2y=TQ^6xe>e*t~7Uck3g8`B;}avT*<bdjNNy?
zw_4Hn@@I}gg(Zipof*TuRVNQ{iJ8ALFt{{%ZKbfAZ<OPqum=U@hd8|Yq8Fa{)|q<s
z=|Z0AnXM+#rV{>3^1Acc6r^**7&cuL+w|&uV726RiLD(;Q=7A8KRti@Ru;7J=vGF=
z=jFY6CFK*6KQHeO^EFwL`}S^C`ftX$RvSU>EXjw^X8D9CkHh4xGJCQX_0?-EOu6cE
z_}7IVG0#iJ??2oSE$W6&#7;<`)E|BJQR&mCuacLm6ql5V?oih-ho(iwH&z$chR(jN
zveMp0{Hc0nPIzwS<#)`stnYYFae~vLTI-JND<`LRK7KUkj_CGDYWq)=v)H!CNLuYv
zW>-sm67CVSeqz0%=UvX<lZrJGpWk+|y`KZyM_8IWTjsaYlZ^7GPnOI*E-E`^aSfkQ
zc^^lTbG+NBt>-LCnUrTAHE$AhKDK9Hq28}!x<A9-^-T3oetP3dYw&F)#osPG((<xZ
zHQBZ+x89I7e`b11$W1OFA@xPdtm(;5+9OJz?Rg?$>MXl(3QK04_`(g7`lII>?hH(p
z&f>Zw{p9qHHmS4ouB<TMzU}q*_iwIj1*J~Cg+9>9ERh4k`FYb-V#|L0VEWGTbDGVu
zlgWHfm>^wSgEQac-(2l}{mpBVUG1+HrtfS&zrDO!d;G`I((0}M6Y?9Yn~M%Y#tC>f
z-`~5}nbZCPD9NUt>2NA%uQV$?!!g%rp(CgLh0FP$w`o6NgBd%oqPSh<<>k$lcUA?}
zSpB?lHA`-{Q=ULq&z_HeOdhT~VfEz3QOR|4)HWDDiRgSU^{BMv`!6?-l`2Ocm0kFt
zsN55}>2R>B<|~d=U+7-V(%jkE@ez(|CRzX3kuT@ITX}}*Yk@GQ=>BYhowqfeI`^$#
zav*A1p;csQMvD6B%}tYfKWin<*&Oy_yQt3{*^^2lH!TFKdoC1eckH>n!g)2@+PB7s
z`+D`-dUkEPb>_Z*-z>xIe2Z7zQf_@8D%bqjQhxMH`}gl2R-ZKZPTgOAe#QcMo4sN6
z74`kMb|+=6*=#?bX(n{*xP;sO>gx7KbqgXNzcyV9TISW9XtXzViJx5f`Us^9mqCfN
ztq+n&CEWJM&aJuAwYyl$_tT93)3(PdvO^1p#7lJ=%bwrAt=su$j@J~MXXp2CcbC1p
zk?A|z(mo#9C%w}j%zT^pP-2?z^zDzjct1Mbe0rFLv-)YF@^<G*Nqyhq?oZq~`NY4S
zNsu}_6f`HsUA}v7#mRI3Cp@un*m<J*pu^4`Zk3(MeVYqkMSRVW^;^xh)-LM#?5V#~
zo?iZvHltja^X6A^BQv$jsmFSEc}e6x+p2mvMt1YrTkT=9S0C$nJiT<8Xn+Ib{Nr7x
zjNiWr(Gh&HWTUcaa!&2S-OY(*mv&Tv7T&yn|LThI`!`oYi`B$;d21v>7r-8Va^m*d
ziaV=<RQqc`#W1jSGtLzPoi+5jiCZrqHg@i;S+k609sg|e`StJn|Lgvn1TXXP{Q1-N
z`<=<_&w|Dbw2n2tn=$R1ecsUqzolMwWm{9;=E*+TsLjL3Y^Azt`}T0qF^+kAJ|63N
zesf>#?}qiDf#pv&{^9YpUmIS&+x2=K<K^17+3}}KzcVs0G<1Ew5^a4|`a5XbXIkIm
zw_#IXJt_P;>za|%-op6()!o};6F;1|fV_q3ym8&10~fY}4q}u4`@-Ec_tqB1w_m@0
z)x6B-rlHp=^HHUM`;CT}diXQv328g7eO110{4MU#yD9TitJf>9KX&TYge6+(CwgW>
z_Mk~w+;Z+K3m5a=<y-Ldb;{(&6Zs_NkBcukX>sbx#>&KNAGv!jpEvefI^p8{16E7H
zJCTI<O<bLPrD>||)z`PTiWvF1WY-njy3L-uaPltQu(zpmdV^2!$i5PARfwG@-FE%3
z_BM}6>t-2y&imTUAbRk#O>F5kmA?;OZms&URd?4fnW7Q{i#rR07lKaM0d2oCzf<6R
z>ioN%&*ggMY@>>wow@jZ|Nq*fk88L<q2HEt`k&t3Ep_WvUY@d?%ymavB<hn)MdshQ
z++6FB2lp0)6t?@d{<?X-ZrQJ2Rew*;|8uh8+xq&yudRN+*$g_fPdvURaQoe|*`R|U
ztKaXvzH`mId2(OBeECv;|Ki1o+v}Je7J_E3c#f`*zpv#v%RYCDTK_8Tg8YDtwP#DM
z>Z3Nt#r^-kz5Mydz^Uo~kMEy6fz?T9n~siRj#rB4MAaKiT=pGHLs<e>=Ga|ZyHIqa
zU01)@b*8SX)3m(01Hwf_m+0+KIJlJ2E5bx);s#bG#RU^soSY_E?zhiyb2{gfHfg5M
zxhJ3N_C8y>vv_{-y5IAD&zYe8Jm&M_u)LF@ucqGpBP*oSVO=6MfnBcRK<2|or>?Jy
z-My!1&Gh)XNYKvPLx&Hq-g179W$@v4{_y#BwI$EzmcIg>+|<O%z3Pup@j}buXBt*k
zw?2A#czp2cVYn~><k>6J5+$ngKksZgx8w8<Yxd_oyWiYd9QHoXPUY|e$-BSI($C58
zN*FjyoH((oxA*FejmcA|PJLQ5d;kBx?|=O~U%zgeZuF|u)6+n+EoOOlBK!rz-JO;*
z?)-kQdTa4>zv=6_U*ElQEIht;>6$e<pqpA&ZhXJMu{k6zZr$JC->u&oXJ6A16%nzB
zW9OG!Q{2OF;R4uE*QPbAZ~guw)0CI<+SQs}qW@lt@4c;MqvBEBKlj?TX7#_aev3Ef
z-L+b}Y+2UdUtfQ{*?c}EENofeVz-xHUS9Uw?&<A)`ADbm*0Q%zOP4R#R#bFc?A9BU
zmzQVj_D@)DXO=@!Qj&<U@Z-;qb>j9!{Qdns{Qkb$>^HkhUx%@>vTB-{UCW%mVS_<y
zYinrs{tW>dcb;U{+NA%DRsA_P=kc4rMPV9ODmSKljw#$Zxh$Qv`#f89T<Gna`{u~r
zj$Cu@*s~fvo9yzPysi^p_o`pl*uK6rZ{Fc$TMc|~o#Fm9OT=|sc)oG;{ikZJlg^%-
zz1eToE%uo@I+qunP|JO)cHB_AA;-*a_Q@Y-eurj%$`4F2|IYqH=)c_O{ol>zYq!n0
zq#bwm@DEX*=O+Bwi>A!`7`5~3hI_Z?tge%d{$;(yE%ocGtD*bic9pD5N=}|SapJ;-
z&h4}EKL2{XKK$n|`TsxKLF+-+Ms9WsUgq;La?QDd_CD9APo8AFzP9$%$&-PuuC3eh
z?yg!Jz5UgdmBD>>o}Qjj8<Sk8zUAWP1|9Hrd3W)p%a^}`j=a9TEf=&f4K&YuxA?s6
zER)PhQQMw80*!W5tlF~2>Hn=Vmq{l7jO@;Ggof4~y1FX2Jv7Si+f`{UZtm54Vy5z2
z#ydJTs;mrM9hN7*ddH54)YMeD+{eBuB|5MA>;EkN_4W1go14>LUs)Oa>iYWmAg=Fh
zGs|Bosi~G?sY_E&PdjPA<2%P<<1M?xhYoGYxoN~JZRTTJ{p|{9z8|zFv|CK~)6WXf
zgqFjXqvvWw=V%7kgzT8Kd)v2ii;RS}lHA2VRuqWN(Y$;s_UAu7bp;g_m5`Oy7U}2a
zNNwME`z`4H-*r14aeaMt_4M0h(Ehxv>+9ya^~pp|pOD@A`>#&c%S%h6c9pC=ZI{-%
z6?Ed)-MZgzm;Ke>{l;i*{Qi5=4?%tK3p<;(Pb#^a`c_ot$;-`OIZ6&Xn)SZD9;d(V
z_TqA*qN$g<rMyc)OLtveT`l*SRj2%OTDfxNsWWG;T#v7R`>hbPW;pfqG)-OIwYS=N
zuZjy<eUO}e*VUHE;^`KZzRmepp513X_v%1Jg#59ab!W1YJSN>;Qr4~#D&d#)&f?|!
zuFbWU*4s8m%sn@8d1+hB9A>%v$4lO^Z7s?=FMWN*g0ABAUVhUOzP|ODHZPM?WAiP;
zZ?E!q-A&P*eeHr_rt#|X<S=pfNwa47%!=flXEfPt_sNJeS^rOLS?BjPFD}2h%x~7*
z<T>RV1pe7Rvp?=XRZI8v43*3nd%L?_&yK~G=`EZ*ZR+~R%e}5Ht31oeVIeLm8mhW5
zc=F53%U?J1+g+F*U$>G^_D;1<(Z4@GLB~bd{r^+^_2uQ|+ZJAv?2iEjUjzT1uk)L=
zwoAX7eZfimsOv9l8Iu6<<F2dn+cT!#=H0uu)BoZc{kFu6UteBEZA@z2_u~<F>AO2O
z*S?)s_bU^03_#T0s;zqa{}jo)zm(zxk1&1M^oeWty&DshJ!jciTs(hq!NS>J?wfx4
z^-Csn#+^>?_ujs~SF_jeU1ol-!g=DviKkAV4vvePcW#d5;}^!Mr$o-qGClqAYp}oV
zQqVDTpxei+N?$#>@$3)3`YL}F@Og>{PG5U-D*W9^<E)!HF8kj&$BOLuwtC;&D~lpK
ziu~tYoHf@SRDx|Nc<3Z5B9igr!^5oG+txn*dM!HN^4F6mPhOmusNA<czTzS4T-)j}
z&{Bh`xzEnef8Vbd;LN_ynOF9@&Dq`7x>JL@rL5YPZ;d{a72~nVa;1H8l(2J9>*cb~
zcQ$R7l3QnSd-~>N>+Y*JZ_GK@dU<E@rFTiv%T2rYd^s+4%JAP2?dux5SM53f?%evD
zl^J6G6HZnctaeQ{Uh5xR8@;*s$eOc}yxP0h{wnnOo*DGxbl#=38M4RU)D{-++jCd#
z<d-{-ZJMSAWS_N<^R-v-+?D9ibjaD}zd5he^bZpf?p9Pb#r-N;9~WEiu(;~jZ|fxu
z>E9Hc#J#+|SAY8Y@9*zgVIN&+zqR7xyyWFyO1~A}%(=A0(I$`eyN}cyjoH4xvc4C-
zwS6|<y&^#u8miq|@6Sn26j|L8cJ_}9?;53rp~kUSZNnygdG(9Au8%Fu!3ng~l3~x2
zlFXg=&RVE=&YE-Q<o<&PiqzES?_T_RZjZB7Y}C8w85b^0gq#SdAGuLA+;!>GS66n;
zth=|icmLtWqda>x+~!7^2M2oY49h$FwcH}(fkqe4eZwbPmDV+$h-NjN>$`Dv(t5w{
zk5y4RH*X&F<(ls`>2Bu1q|asPu92~Y+w{|qmx-<3ys<L(T}<uyn;R|X?>Wz1oMpUf
zpZT(*eP_27Z`W9V`|lYpzS$ybW|_s?13v9M95R1P(c!&seY+>j?mNGC(fMUZyIu#0
z+<a+zwt1fe^O5$DEAod8Wcs6hrRJ<ypy0LQu(6|~8Hl59cV}hzW&Rh}nXONyeQIQB
zI0D(c`9L&2T|WHUMWxnumQ1JrEcNZo-Lo#(J3dr&yfrm^N&cq#59Jma2Ry)g6dT0<
zyzS2MyyVMlrL`-vWB%gCP*-#Ai@wZOUX%W9E89MQv7@saBy3-0T>dA&HSvBw7w5K@
zeTlJuWchU7eOnkSB9wFa*Is+A#|QfV@v-xYn3g;+HnTpTQ$4l4|J<yr9}C``x_nFb
z+^fSDFY}|+ohRM(+&ha){V#9&*W8!_P>`9ewpOx~pS}IryE_}_<~+{imCdTWGRu5j
zp!l^5hRIi!UhBTO@9Zs~ZKl@kXKrcv+&c5>kw=j5WagRIP8)V!TvOMdDXVRM{LQyJ
zSC;z9tr0%wY7(;MY}Lo@Tc5u>Cs`lKzO^^+)$@#m(zj72S9jFOez~@+`PXgnn^8rl
z9qQX#*gBvay7=~4hb-8#CYfuKXF2ctSMLi16y8bQ3w1Qh%)Mrq`b_MHwTy`aBsnhN
zoA>|yUCZlVa+e>uCRo?U*0?BmHpkyp`PQEHYYiXNKvhjElh?iU>TTtuCHLcQo;`n2
z;liJ?A3IIAR#ng2^tt<w46l?_){6t%E7ER1pA$B-FtF~}nr*F5Dr+S!-xAmR_CCkH
zO#Pr$cKOklX6Ii0t*|ib&(7Il!9J(=+~X+AIqCmWS9txEntgM=m(M-r%UhqntB!1+
zWsvrD$(^-Zl|9R%-)=Y0UtQOuV4lr4^D6Hu?_4GSbB|}eQe))he0_C$oX2ftPp_Af
z>$@K-{gvTm^8Nn9qxYTUa{q1eSGlvlzc_Cm_v-zG3k}dt{1vCNf0}#un}$!Ca_X+-
zhlwx4<5WDW>Tf5eKA-=o*d)UPlAIiL&-~0-{-(|3(<F<p?*!hyFA!KzRo-#!g!iM6
zM01nxkLQAt2nVz<zHohafA-mRHKv@KGOy`R`XkH7bZ1Sx%1X}(zVqLoxo&>*_+ME*
zDGnj<qTdINT)P*l+uc$0oMmDW7@Iunx1|!xu62fIO*0D?sl4puFJE=YuTUpIMA9zB
zSmV%hUpfD!tCRM~iCzC1HZd;UHEga}d}-K>8?65Q4_`{`F)QC{QMR^^arz#^a`Cv=
zcXZ2gs&dM=Z=Jm+{jzD^we?k#Z|;2d=FjGxH@6?k`(&=Xxpr3H&MN!MO2<lPI`el0
zRbLX%m=Li(?z`VH$G4}ngF-5V@7g|6s&8+0d-Ppd@6zts{F%=uI_;fZ=wZ&|@uA$~
zgE3?$8-w{=J>Bbn{P#~Uc_;p6n&85^K8{}3)g1wU|E((KJo0mX+RKv6o%5BO_Crf5
z^SxX0`ujwuYHchv_Vx4oQf`rvvW&+w<apTGDe)nzrtiD+`hCHJbV!;z!27#@{<THx
z&;1qp>)<u%&@7hUmP#gOiM~x=4_tlTRiOW?sGsjo!L9Rx2j{O?$b8@Mi1F>XCu?T)
zY}PCbl|HiNn0v0p+OLn+^z~Mjr*E~Ib8T<o!Jqr)<UGjCmG%F*d75C>v+kY6o8!7~
z&MMjM*TY%fpI8>R^Y;14Z_jQw%`Vx#uCF>b@4D-!l-pK&*d3e?-1@?|`|gGR`+l$W
zI`u~C($=j(RY!kYtC$3ZfA6|JVcpuV?``d0)ZhOZmVeJI!qIWw|J{<;VA}|q!>`L<
zI96-FDl%ikv)=d0vwPzgJd`(^?fd!I_rT2;5^`^RUmSP4;J|&wgZ_}@*T8LQFOvQ4
z_-++X{+PK-z?Frd)b5tBvnBPXcDk>BR=3C7(q81ZrP2>(NE$47bZ2qc?UH3{oSLn+
zUs~cQ;^cPNpt4{QTUp-HN1H`|-7nvMGVl4%Q^(q*K&`KX#<%Z1*%H>b`QN%{_q<J`
zY-;Q0UVmcn{{0%czSqeWWjX1umhS7Fe~<mo5$)n~$Grxdr#}0Z_$t8q*xSD|OFuvO
zQ}BI{$@=NRdso_BTdyzIwZeO?+=6=>`CdQy%FDi`?tOojl+c>x>)t!B6*7@<bTqTA
zt(EVsd*{9O{_n+c_h&3V+3aayrUo6-P}}sW>&x=~bGBKf^<L$w+xk8fyEue)u2q)l
zkNf-b@Z3|Uv_BQQtbjI59x$<{pDH=NdN#<j_OGwG1y8d6X{~bL%9SU6yB0-f&(&Og
zL3Vv!(7~BT_3bTHPLM+XT=I75SsQb@zx@wb^G$cwtM$UaKdum!TC+f5wwTWzpSRH_
zSO3X(nSNfo_R8f<6-X=`sGJwQIXZiDpXM6R330RT#IIFy`YS8+AZT?*z+RJ``wz`x
z$vnHR=5OlRJdjNePV5^xPAOd$-?!&f!KY6XwkMhL%s#GPfArPboyAMzt})m=yY~BG
zPVJSVy))J^U!K19)@g%~x2ebSZurEfJ)awUH9l|t{CDSiPoDl;`QdRPL&Ujs>%Ld(
z|Nl*`IJe{8tE+am&I>ZWdwJC^s(#nH?J6(zv&&w8mUaItBUsbh0$$bUamu2=$#`1s
zL=|7@OP-JQUO#x=!EnCk{e8#a$>(b?UA=pHTSoCYPJ4HjcqQ;Tg$pj8KBIeKi>h?#
zuQxlDPW(52CRE?fa^;ls{x=Kfmu4@%oUU#1^=a>^GrFLRF9<2Xq_(cvqvRX6$I(^w
zsnm^?Q^kB=uAh)l7usan%EF#`amqib3oDm)d7Uz?{K!^YKc(N8-^KTjECZ9oSLUqa
zmyHb8WtCOD6p)j@omu}``TDYNy_cOW)?R-2&~VR|vRJvTV(;g=Tl~*@)@`}!wB6Zl
zybHcxoc(;))WF|dUwciT-@2E)yyUaJ*$bD#nZMMwTzHf@eRZV9ezk+QX0@7KJbjrh
z<C48u#_fene}BD~{_;(>`Ks!&o%@}e#V3}rF)%P((8#r}2r}1;0yXJNJ#TCL{XC7a
zi--SXc|=3FOI!Pk`TvarJU>pfs#_HTQkBm?_e*)i2PLS_=l1WnUL-BP^mRnw%1Muu
zzrI?_e07neyno+;ON$~`#Qi?2pnBB(RYc&*yb8_O)yDlltaU0lAsMu{Em5LMQ8&7L
z@4iUY)H2@pa*LmqtF89^Y*63M_QPfNv&5*n^i6HCGK(h}?S5C2yIE}6+lh%EY?fV}
zc!5z$>hQ_a{W)zvPp@RNU|Vj}bM^7g75rhd@-1%o#QjT>Fq=HxC;nYtynW;BJ$IhG
zi7~U?f7hn(_HX6~=B=u!yPmIITa{HhZAr1b@4tS{>7QqaGR37-bcp%yz4LM6v(I7g
zFWKhjh9-K>oUiO08}ODJbdkV;-)g^iyo=uF+s^GJk}^5%|ElH7_+CDFzoDV(vWkUA
zf81^F*rZvnFV^Q?Kee`fYvKL=sw$`W*o&YRsI%?_aN|^9!?`(YFWl)be>MLlyNai5
zwCQDI^DkE${MP=Fk$fN@++GsYUlzFQ``g@8KQ~60|4(jSrl$U?akYNn<qHY*?d<%J
zU49J>!HMQy@{TF?R;ZnwcxI-_j>UHSem_?!zVL$g#T764`+tk?+N@Zt@={!)eiLjh
z!2Fl&CXZ&Cfa)#LvU&X5xFEHbfC10p3%lO;XTCeWdyDpZk4abbtYV6ff4_L4JNb`{
z?1ciC7SoH9uYbL^V&2DDU*B!FiV0X$Jw5-j{l0t4+1L49y3l>=MB3-{srFY|tV<aF
zv^?6i_4pmrxOaP=-;0yZdv|`%hQhxh2J222z6y%jv5!kQ_>DwH#VM^fQCr_`SXXZt
zdwJR)_uZemL?rLIfJ%1#e+F|>_#PbD(4G9{sC?V&#?_NSQr7(<S+7n@m;UX3`Rn?&
z!&<91{I+(PKf^e^kBvuS!HE+dM~@xLdUIprsZ*y`74Cj|db+lzrsu<l4`1Egz1{BD
zi^WwP*JL2e@iwecW=-Exb6IikzK0EcV$-}PIW;$%lzJ=*TK{I5*jcB)GKv>Iw6?Rn
zK9?9<`uHhlRbB43I8XZpJ<RG;3LmsQT6C!7^8%N<1(i*Y79ajAyXyLy=<R+hSFV&Y
zNN6~9`t;Wa&HPzcRs`PKnB1<Uq~x>R)8GI4kxpUL^m8(QKTY3%Wp@6)l^c_fXMKKl
z_SMzZ;kNw^kfN&FGN`~!zIOWZ{(aVqdYIK^-sa9~fBDQ&w)FFYzOG)bIq^1)zb+Xm
zh4BB~)Sf4Q%XNMJiHonLi%Pa^2&w<~ruy&C&F`<;Z(MrpOWx|$)yG%omIT+gN2{+6
zU%&3t*Go&iMWv-z_w?}a%3571nGIT>tf{F9+DfPbK7h{d@0Z}eZ}aOfckAza@p*>6
z3%HVSXbvk_<|F<6?}{(B_8PVC`EOM&*>LJRdr8(x&t~D$()HW8a-Bjs7pzNKe5myN
z|J@NQ!^<wa-<Q4kTAJ^L{cnGZceg6vG|TQ<k~?M6?k(3QtXpfk!CTw4wf%?n8!Jr>
zjR`7Sv!3qBsH&>km3D4U<kH+PFD`->d;2FBx3%!qw9R6AUa{7ub#s;AywdM_^72RC
zExsj}_wn(q(yDtuES4Rs*cX*}hF8~Z{ru_wY|b;9ShOX+xUn)Q_4)iueTQ3b)$ItF
zxs&x)@tY~<{y&hN?Yqln<I=i|yVtIJchzix95bWTqzh_}Qn%OdJ@zeo{hlVF+Buaj
z^0nnI|8Leiff5|3mG|eY9qY{{>kQ9cU0u7SYFjrbf4&mC9b<U*@T<KWiV_pAw&X`d
z%s6!DP)uI(_S>e($9O>7N%Z9Bf`%AkVq&Il+p)vq>C>lI?H*VuEM#V2U^wuc=Wsxx
z=T5&lcB|$6rfaQV5K`HydP>`3@nKfgTlIgoe3Q3ddpTX(XZ!m*YECC(qqTQ>XY;<h
z6lFMZUA-gogV>K3AMSeEbq<8B!a`Pktv-L(aQeRI>~F2>qIQ4w&n*9^x%S4S*Eg0`
zMhL5J%UkA`s|3o_A20ff%8Rc1@xowhA4l-%jsVwI^N(4V)D;yMp1Ka&nWNlq^QdU{
zl`A2sX=$%suiyXeM@3uWkGGehJ<1QWwnqM}%6{x9I(6F15YL@mUZ+AMg4RtwnjV_B
z{^z#C3bU{5OAY>-A-y#2?V_uj|L*)BB+Q;+k)(9^%j$h^L0HA}XRGQdo0tV}cea8k
zS$D3f)sK4orcTTLUH^Vt@iNZ|zPhvKdcSdLGY|ayL9L62`=T$iu*sh4HODu~+EfGt
z1_t)6&)#L7{_D%jUk{r3zdW5Dzsk9tPw)4!<HujWxVSj<)~C;(SKr+l91m%+e3*4u
z{d~sPvgiHsE-h@UQ(aa(T69QMUUuEK|9|t7UUQV@UH0KzJ4<toXMwF74<sRnhU{49
z^-FVOU{u_~W_z*h`yZ2Je>~jsiOZ{G$p)87R#mI0h(*H7&%gR|lWXd2URnFlRgaf@
zt$tJd;;7-)E>$h9RbEcVB@Y{X*?s@7pLW=qfT*ZhR^{(v9-Ey!c@lJzSK65w4>Nwh
z*?fM=oH;S8BVKp4@I6SLcWpn%lOmzE$vX}9SY)LCE-HKDaP30Y`UPo>|L3v(`oZ8a
ziLESa>GAb%U;fapPN@)fZEIhV>e3Nq#vNM0aZ+l5AxE~*n!Jq@Ux`V-+~V&U+3F`U
z|7z#uR4pw{(74Crcl#LUM*T9`cjZdR-jBzmtN#D}E-EScaz(SStnAulzUOP3u20bn
zzOt{j`s_?&_emw7>pEUsSXlLJX1Yn*842C!Z9cQjazPsnYNS>hLpmiDXI%>??$S8-
zQ@?;AK+{GgB6soZUr&`Ui0j2@cuLvTR80M*>OC#v)|SjkOXkdxVP*aM<z%IE8_z{h
zDF_;A<G1^<KyTLzrL{3TFQqD`LR(=B3{s+pd!v6`zI18TR^J&0j>2j_9~@ogaj)9R
z4VpA!V2~1mG(Z>_#11QmJ2Vu9#%whd<M<{mUM%~8wLn^P^Y^LSr9w9-1l*4(W)PSF
z-A~AHAPJH#7#JdWAk7d4hHk}$$&SCjzrVhA`@L1?=31}Lyu9qyt*xs;`;a!LpWk(7
z-I66PD_5?}y1Q%ZEc5(zA0I=K8fa86<ID`htZQp#CM74A-mm?>a?hSS(+@X_O8CX~
z3KlaS5RTDjU})$M5V_e@_V$+Q?z`)z$5naW-BlW#mbNT!_gk~McC}HTpPw(^b=UU$
zoyGk2e*#WV*AFi#*|N-k{<^})$6n6P-#1YuG$aIMQCENe_5J_<=F3_Zxdbos3H0#j
z`1fVG{nhIqz=7hx>+vEYz{{&EC@4rKzWn7S*T_ilPMOOsevXcfphHzbqo3iirBhWh
zPfk+Z^<<Ja=#)BMIh%<2b-z}EHiDhE{~uFWSO_|L;_Hvc{ot)q%KbKrE?l@!B`FWK
zrl7aQuR%jYBVcvd+BtRh%F52Esi~m3qQ$zJnx3-OWg%5nyV&^U)_nO=^7Y-_=)%In
zK0DA+j-a*7Z*Om39lyVB*>62v-O$X;%&8G7D<9=}#<pM8kTl~rFSvBS;G@IRy@&Sf
zJ#=z0gQ(xP)cmA<jkZTlGB%w)^F80VK4!zBGkf-Hi>8)+p3yb;NYyc$uxQT>KmU2p
z^{H4{xjDv$Gt*+G+U%bKHgzG*{jTdHpO&67$eO3KeSN8#_mR9!bI#nW-(0-;P)_}_
z<16+Rym7o*p0PdDe!UjY<ZS|<Kc9cYv%+BKgODjRjwBcDlT^#yCbaqQOqrW+_84ax
z`^=Luvp#QQ`TdUFehdDK3>8IdcLzK*Yi(_f>*ZwFv-Xo!=<Mvdp%X7~GTgj*6Lgx#
z>EmlZeflIKCACUSH!38vzq=bW>b&^;&y#aby$`QDKhv`K*^7(r@@uc{`@8k{9XV!(
zAHjiv6BjLB9Q&=XZ0+rjTGy=@u01%n^<0j$Cuok()q~+d>DHasB1JjpvOQ^Jmjms8
zjQMtRXYuk$lP1Z;KY#X2OI6iXSk31`?)JOSJ{s~Ko^Uqov##R0UuR~SdK;&oE2*jd
z^u$wDO-)N(efh;X9$P~rB387tu*gD+*MEG=9h2AHIUcj~yaA7>sOZYr-DRfVo<@aN
zukrkD82&DK-JRzrx4v_Fdu!|EgU#%q66D%`Np03wzlB#kp2Sq1(`coqS#Uh;cHz~h
zQR$&7B~lZr-|r2-yv(=w=5p`pdVT-xYkq84x95`=ucVPnx0r6x&e)ooJ?G}xuAZ#!
zAGXt5-QNCwp}1d7%^uL)W9sfx{s(t`I5+omYip~fj?S8>>XMQYhuDZ3O)agiokhaM
zPwk$avVEtPyyMzc+3ZWTXQuw1q5b`e*+&@>ktKYxR#$%QX#Dk$<<*WQ2V|oc^m%jL
z*?2WAruS`s4#;UUW=I@8a%9I<b93`>(CIC|zQ13u>OD<E<HT3>3*X=0k5^PwjM|*m
zd#qnx-}BeM-|weRp1k<UlN8UOqM}XnYCd^Beg0hA%q(oumz(MHHMO+7Y^%PkID7(}
zPa4d3o?}|zXjSuLLmR*Rx|S9e&>c+2`(%UT;^L-SneW`W)62`N=uRQ1`~{uZ3A!ig
z*4Av$1YhRmWtx_jk<IM<(^Pt;OhLw8cye;`*4*1>wVzI^gZ6(;nKdixS9m7ast59S
z7A8A_^6;k3o2Sm58~ax5#;LA*si~=_PMr!WEZq3G8gvS9Q&W>k-Jgo7)23y8d2tc6
zE?(w7KOf&U&}DVI-|g}~dGcgeN5_RLD}%q@NS-J9hliW{@|&BRJ(+ek?ktiAh4iXA
zgY%#ya6D#b|IVx%Oke+UUMci!wBF_*J6&W)GWV6jpG{{oeCEGo1-natq2dX6mLFHS
z3u+EAFeDhNlsuUBe13i0T&vQcii#a<yi!koSd^qs(~n=bWQj^^d;9A0_xFCiSlqv=
z=Dq>X-;e$EA-A{XUfq%z+$&=lw7dNMx2FQHdew`+e&7E;*8cy`^H(>edT-6S8Kmsq
zx8_>?tu2|GZsvr>X=-ZjlXKhqA!Xe(z1XN+Inea_m&Dk)#x*}aWEH1wzG;$nM#6o*
zLtOY)Lu`}ep-cTeJv)PfgRkx?%{I-y7xVad|MiQD-DBUG3tUg}E&lqr-~Ltk{@-(V
zmA_w?c6Qdv<l}w6KpS$KnwX~l<~?Hi^4u;X>-hJ3KKo7oo!j#|>;J#M%dVTwKD+Gc
z>FL&Y^A*;uZp--p?=NWg?A4vc>8822LSlE9U43(NbLqD?k<)KqeYWcrzrWqjC2c&C
zi$E5*c8lfZ7Qecp={w&pR@SN{;PNuxtBc+F_x^a)ZP$0jc&p@emA7|x249aU?p?Ha
zv8bTnLPlmb4R!V7?GvlkZA)GaIt}?m+GfyEqn{m1wmyHk<J75BCIA0^2ZeZ7M@PW!
zvbQFwr$l7!YIevi`s$N=Z?nUn$`_hKRx2)oc7o3|P6ut7zO|=v^RI7jS6^K0u5E9B
ze@lH;)h;!^IV(WvI(l2q#nS7s%Qq$;*D^M~eDV3p<?}AZ|Nj*Z+UFx}mJ{IO(&E-H
zw|3H`Nx!6~`BzwlXJ%&3vM5{xI%oaMml9PKm5eJZ0#BViyY`a4s;aAdpG@JNdo`cW
z{*vhPue1uEBqAyrnkvU9V-fK5_nOtk_p0CT)%rYT=FF839whkAFj(ld-ytS^>sFj=
z3;OK7-zo0@_jP@J=Fd-0qqgVG<&(EtQ~3DU&O7-E>rT#k_UgmK!=QZp?EL)o@Av)o
z^PaAE_0`qYrLWg+zqaGOL-gc#YqULgz1?<uRnPC0%jXsCynk%RIw2vURc9_vRCfRJ
zVsXEgl9E$+eC^iLwd}WcWpyAm20-TzgSK#k7P5d^L#N+n6~}&U-<*Cv>re~luGi~!
z-?^9e?95EilxJM^TT@VM8mFDP@a5&@tyx#K<lSD)yw#HpI+Go=NM^|rm8DCUzPz2k
z|LS3W`<S==Isd|DZwv)>s?2h3EGT<>>!-q|T^~zgjvhS<iZi*oABmt7$=~n&K5x^e
zO(kbdum7+JI)C+<E%%Z6?Q+HqQamyi7d(7@OKV~S0~5DoUq1)xbZ7pT&f9TN!Z^)m
z>Ndw_Hc8O+ScwvCiQ8}Y{`gVx_~r8XWi|hwoSf_y5i#TAv)TE-5?H<-zr1r-KxO4l
zK}pHXKcDCSFWKTd*XrtyZ@04d%B|jCX%+50O~-K2;>B~{^_M=qv-!MTwu_sa)N;SM
zMO#>3?fNwB&z~CSNgMO-S{*hxw|41-2?EJKKRxZUvo3#Uq9Xb7<;!KiIi8qS?&E%b
z>dfu@{kbh|ZBnVJseZpr+DtRe!VkCc8o%53J8%2<gS&p6Tsl22>(BZBfBH}VHEAoo
z8eseNO0e7Wb93j`?Kis~TEF_`eWmBGZ*E@x@kVlgXy)!Wn@;!q|GoeJXV;9<M<;jW
z?fK}Id})cNUEhgn8_C&;62}%gxA%N|ds}+u%$aUUNsB(d*?j(&!LD1MOJbhi-ch(%
z@uWq;gNEsgKk=0xzZOv^cdf;`<iVwzo6|vM{X}JVt6QL=x#)?<(&fu%=S`kBFK+36
zm0mg9TNmr^@2fp^`t<5c>Q+`!&1}3yyZp6RoQ;WH0a;s-b#+zf)Nfn1m>fNJY*qDl
z&|<XRUk>xzSD1eL6?S_k=vq`EVd1G0CM?Kazc=jm_Wbf1P~bi~+Fg3t*IZLcX^~g;
zg0<TDt7>dke2O`9;soeM=&9coAq}~bUv@07X6?DqTKsg4e@MubStgl}isBphsm(om
z_4WGw>&$X*tq5NqH_J48T32`X+;`2TrG9R1ZQJthzPdIyzH#3=sa2qY?|SR4nDDhJ
zCnhLHZOximR9u`Y(FV%e@Av<YTkO{RsXSwA+V<ODAGXWCdep6d?Zw5#ps@<aX12_y
zr>6enJFESsY`2>KyfvULJ+{@~zLZ<o1qTEu%sv~o+Wn%`q+_2xZ%|Vyd2s3D<Kv-$
zfeUx+*rD~du(0sd>C?t{)%5kxr~W_nziJaC++O_q{XTqm+1phyGlGJGzMRrt58kb1
zo<Hx}+UVu0*YArG6%~!^-EVg_Z5^l(2Q9>UzyJR}P|mygwhYu}Vds~da%5Lg8tC5D
zGiR>k*L|L?^|o=xx;;npwr3yfk=*sDOZ&>|aDC6`*TOS0GPc(Lxl*FL=FQ`GW?{)@
z;o??xe|E^#|0x8mE7AKd`Xc+%&6vNxuJ6AFTAi>p`+C;3HIY?cuZEjuUQ${9J27_d
z=8BI=pd%Hej8ZyI*RuZFm9=8i=FOnf%kCB)m-YL7<=L(*Rc<kzfPOjKD+`_3Tie<|
zO~CW^|M#@<$-a7jAxqcZK7P61+)H<M7EhftX_3GE-;nFE<#UhqN-r;ceeI|99;?~r
z`SWI(WG=e@|KIn2d`Hv0yu3hlK=z{}on2jBpUN#tFG<wN?K=E*{wW4^p2HK)rhU$;
zKWrc(B2r=LR{lKe-JP9L+j3@Jx^!ukO?%B{UvtZU`^(?odv$qv|E{vPtF~-0>6I`%
zq;B}Td-YB)Kfkb|qD_xqD>}EmnB=W@agl5HmmiP&ci%}*jtlP=*AH7Cx7VcL!2zwe
zy_vC<TBfF<GiT2H_3QQe>^HApZrxBc+aYqY>Dkc4#D&LtBp1usR=t?$E?2m7y+i!u
zbI)G=aS4BaZ|~J@xzW86hECPr-UMD>7kl?!eR5QI`nfq5rStbJY?rUwaSRlapSFTd
z{QCUtZ1K(X=jY~vnqxI{XU|?eWr~RJ3<F2dy29hf*PJcgYL;be=C2d6!Qu7w_19O0
zuAVYu#tQxYe}Y!7TzU0h!SmdGGSlyZRzg?5-MZ`fylNFs&^6!x{=Tn&eN;UD%7(<l
zHvBi3_sK-NxwZZKG<|=@=VxcXZu)ob`RlC_E7z>?F~3vL%yam{p;qqKTlCAXUcYfp
z+{2##uA>vX-qy^^ZU+w@ylPjdU~j)a%4|zeP0gOu|2}^FIBCgZ_x@G6x3`7<im7_J
z^d8UtxT|UFv_Or_;^*hCKA&H|&aU>?jyJcLdW(Zhxq0*Ew7<tQVxO%F^6=;YExmg4
zCdYG)w(-%UM?sM%SN&$ARKGCC>r>L8&L_X!4~O`=pG&PuUOdR?@9)2Ub8~v>rza=1
z>V4O}jM8AeH*3w4oON2FqN19rs;(0!P6VygadL99xmB;Q7F1`}G_&zeDtX7pzPZIO
zIX-;Smvh$dLB$qmky^$7#x3h!9p3x>9;mau^UdX@-r~pq%iGmNfLh_8#*J&Y*v>oa
z%&v##e=5nDXHopDN3Q0B<JyRghdy#nuKo4p;<dHWruF}7=Bt&|Sb|F;&&g`9E-rST
z`psK!=aIGcO;@JsAOChWJYLh@K3>+ktYk}QNXUzO)$gwspSNB9_xJbfS^M98c)CL?
zRIQj##$o~J6vTV)&V77(gX!<{g}Xgo99VkcLcrJe_v5p#t+{w(W3uYp)92PlZg#u8
z+~54Jnx$nVNW4eVSSELV?YEha-*ugvYprc(7ngl)P2rrJ*4EZr8xoz@YF#uJ**a6(
z6SVvI>k(o97nA+%E<T+eANRPBPu6OQeBF<Qr&>>EWm$(mU%g^QKw8?e$CrI0!msZA
z`|Y-tu5RhiA8tz>BEm}(CEDt~@4laTv`f^>+dKIAxw)%r_SgUa$HmEcah7Q|s9o=Q
z>HGcq^>gOT(JJqos~-SrkgCp=ehw;6#l)6{t`58U>assmqVF!_aPeEaN>{5`%9ba`
zg--<y3}mm{>1JqXC?~Hja4od9tFyDPdR}pHap}{k;j8NZ|BKp`;@MlTxc+SE)!8<Z
zvzMPbbt)t*EG(C=skvFUeCLlY{o|riQma5sOKt7dUcW&OIda5hzRc&EeKNP7oSf{N
z-QYLRCUX0oqHh1b$dl6_Ppb2J_U7K+=<Mt3LSJ87TU)k<`)5&3<FC&blE22bN?zNX
zbJIxK#N<lEu9B4-laKQ~{&qXxJZeiu;*+OOCEF4uCae3K$yGdHbpM~f@8>ZNK0dQ&
z=jZ3YxwG@~4BP5$f<i(`HQ(=+_t_OcKW7Tkw&(x9-^aG!ugi|9e!CS^)%SwBTfcwo
zIeB>}=&}+)DXFYIpU+tzo2cwAvwqPcrNah1i&v~T@#C=kzl0^rmrMWt_SP7*l<o1R
z(|X3BA*;npmK@Pf{vzi8{MAKwc~iTePlS`t&$D%Nb89QS>}xLh@ZrN_-`?Jqt&Io|
z1)U9I3|d2;^|o=(x~$jhcE2-Pw0LpvmMvSfo+lL+Zd`nRZuz~;k~cRl{&>`_-{U*m
zO!DN(lWs*tMN|KlyuWw1;{D$5GV$z>X06Fw$HmRv3u<)jt^RJdY4hgQUo`dg%ilcz
zvy<zJY2@XY)bw;|(9t;?GcT(p-``hz?DzZq`6Vwe9hI;u$(Z_g!@9an)!*|Dr)`#$
zum7|0Wu4UFU0EGP#l^jOcXvsG28Rk?Tv({}K5?mYJD=p;-R0(HIX50;6hGf}OF+h=
z;J}Sdsofu6Ebf;&JKNlRTh7g-oSU1Detd6wctzbjK54TvFK%vL4mvzB`Tf1U$0n(I
z_k8$J@VHex?!$2bpQ~vxpoS(Wc66e)oVc;Kdi%zNgG|a67B_ypTD|^{A<ObC<89og
zNBnnwDv3!=O+99MJtn#2#f5`6c9mvNE#ACk%a!=U2BEXR>j>1#Rdu!S-2v@#UYvZq
z&n+Wkg<-)1hvdJ%zV^N6l{Pyw!>TlE>c9N`f43EWJSr}|aN$C?^Yd(b`R)H~IQ9K)
z+3t@Y4)aSF78ZiqsD?>LIFz-uSKGBcDxP;HG%0D3;>ugu-`?D8OO$XcEZk_Abwxv2
zP3;&5C#Rv1uyF6~yxnI%cJH}bX%udpcBbG<Z+EwG-N){DiP`4)>o(b6yXwDb(<UCz
zW6S5)MdgB8LRp93*i1>$iQIJL;`1{zjgRHm|BhaqdU~4M=Crdtuh;EfcS>J->Tk>X
z*$y$2P0wDvwKaS0x0~DZ<EQ=&$rE0Yy=mFbQzuUvw(-ekZOOWNii4ZmcvtD`v^(YZ
zYuy|j9k>29`Boa5d2LOkTRWd@PgfV$^52|aO0Np&Ms7OtvN|I3{=V8amE^a#w)UBo
zuUpM~@XE?y-{WQfBJ^U`yZ6Z$F7ut825Q=K@bjDRDu176^ZAT%+ugkN{~0X;XBSGg
zCF;cOx$)xK+S!6~a(Q3g-o75Ovncg1+q<?~eQ#@c4HrIsxkKyx?pfP1IkG;_V|{eq
z+5aZbVFQ~zE5S?m7#QlVRGhMh^z~Vwi+&gw#GJu%Obmp_2Ebzp3_5L)i86+Uqmao|
z28In1@KIoACw7PC(l<8@j~+k%+Q0tS<i)zSwy_HrE(8tV$SX55ysvyZHT()F8BLoO
zmbw4it!&fOQzG`RtPJ<I*Z;4(nX@fx{lmlUzpYIUO!9cakg*{tDe23n)B3L`y31W$
z<~zFt)XAP@;(2+w|Md<*<v+4=3>8OPIE6z30~dy_4zmPJJbe9lT>ka6=)8}~DGU!{
zIXOA4ik@^l-kN$^Y-`@#DCc&*ujLsHs-Up>Bg?|DW74cyt3U&;)8p%Q?)&}D`tNi5
z|A7$^Gxi^5Vp#w4ZGQdgzrVk~UfgdtN#*a)^Yzz0pSNHC=1tDc95Z`&c7}W5K|zZi
z9&XoGQ*#3~QJb1}Txa+o!YRwZdvB(3I;aT>8q<@MlmtzJ?ssNlSbu9%YBy-Ul$o7x
zMeXlzpyrvH&x{4_@^v@vFJx@+zf<%1EU0F<wmyFSi4z|6?aUEEnE?#E_wMbjF8%Q#
z@#fpIxA*tozyFY-;riFt*ZpgMf4i!^e$S$w9-iF$`(iII^Zi^N!SF!X-{xaW*!sA&
zp{v6to?(2|U|qssl97IX-qiz*%%v}vP6u^Ws=nP!|9ZFlzNVhuIgsVx(SY-Izt_0+
zN-e#+yZrTJf4h(6pyAH<`+lzjjV1Kk|C=$Z!$Ef91;z^t?v~%Lt$IGUd`s?aGtfxP
z;Wpmjl9DZUKOQjGx3e+CfkrjA<=$SkXHU%fJ)gQjUAFpm7KXT~GiR=JY-Y=Rc4nrR
zuW#v=_O`ZFp{v8{dU!Ud$?asikO1mFgYI2fy?)=S6)QAYSy^9R4UfMH+V0TGE&j{e
zhT#K9yjR{n?(A&y>o+zg|CQxqsJOe#cXmij%o_E16;8Rgx0UWW)+_z|{RIYZ@LsM4
zwxlB+g0F6FUjFab_5HuBMHm<^900EZ`><J9-A_YT*Y|pS{a(-r{JXome_N}7<V`<<
z&ot?c-Cy^&<k1n%v$M_nQ}`Gd3b-LN*`PTL*NKea+(9sNFfcfutjc0wV7~6@;uyj}
zy<7*j9>=r_B+G+__rR(MXJN3iQNtiZqTs+74KoHBR2AT$9Zu=&Prc8C(}{`~rhWu@
N&C}J-Wt~$(69B`MC#L`a

literal 0
HcmV?d00001

diff --git a/example.py b/example.py
new file mode 100644
index 0000000..4ed9dcd
--- /dev/null
+++ b/example.py
@@ -0,0 +1,20 @@
+import numpy as np
+import projection_matrix.projection_matrix as pmp
+
+# Generate example data
+x = np.linspace(0, 1, 50)
+y = np.linspace(20, 30, 60)
+z = np.linspace(-2, -1, 70)
+x0, y0, z0 = 0.5, 22, -1.5
+X, Y, Z = np.meshgrid(x, y, z, indexing='ij')
+sigmax = 0.1
+sigmay = 1
+sigmaz = 0.2
+D = (np.exp(-(X-x0)**2/sigmax**2)
+     + np.exp(-(Y-y0)**2/sigmay**2)
+     + np.exp(-(Z-z0)**2/sigmaz**2))
+
+fig, axes = pmp(
+    D, xyz=[x, y, z], labels=['x', 'y', 'z', 'D'], projection=np.max)
+fig.savefig('example')
+
diff --git a/projection_matrix/__init__.py b/projection_matrix/__init__.py
new file mode 100644
index 0000000..3a8b37d
--- /dev/null
+++ b/projection_matrix/__init__.py
@@ -0,0 +1 @@
+from .projection_matrix import projection_matrix
diff --git a/projection_matrix/projection_matrix.py b/projection_matrix/projection_matrix.py
new file mode 100644
index 0000000..f40cdd5
--- /dev/null
+++ b/projection_matrix/projection_matrix.py
@@ -0,0 +1,102 @@
+import numpy as np
+import matplotlib.pyplot as plt
+from matplotlib.ticker import MaxNLocator
+
+
+def projection_matrix(D, xyz, labels=None, projection=np.max, max_n_ticks=4,
+                      factor=3):
+    """ Generate a projection matrix plot
+
+    Parameters
+    ----------
+    D: array_like
+        N-dimensional data to plot, `D.shape` should be  `(n1, n2,..., nn)`,
+        where `ni`, is the number of grid points along dimension `i`.
+    xyz: list
+        List of 1-dimensional arrays of coordinates. `xyz[i]` should have
+        length `ni` (see help for `D`).
+    labels: list
+        N+1 length list of labels; the first N correspond to the coordinates
+        labels, the final label is for the dependent variable.
+    projection: func
+        Function to use for projection, must take an `axis` argument. Default
+        is `np.max()`, to project out a slice along the maximum.
+    max_n_ticks: int
+        Number of ticks for x and y axis of the `pcolormesh` plots
+    factor: float
+        Controls the size of one window
+
+    Returns
+    -------
+    fig, axes:
+        The figure and NxN set of axes
+
+    """
+    ndim = D.ndim
+    lbdim = 0.5 * factor   # size of left/bottom margin
+    trdim = 0.2 * factor   # size of top/right margin
+    whspace = 0.05         # w/hspace size
+    plotdim = factor * ndim + factor * (ndim - 1.) * whspace
+    dim = lbdim + plotdim + trdim
+
+    fig, axes = plt.subplots(ndim, ndim, figsize=(dim, dim))
+
+    # Format the figure.
+    lb = lbdim / dim
+    tr = (lbdim + plotdim) / dim
+    fig.subplots_adjust(left=lb, bottom=lb, right=tr, top=tr,
+                        wspace=whspace, hspace=whspace)
+    for i in range(ndim):
+        projection_1D(axes[i, i], xyz[i], D, i, projection=projection)
+        for j in range(ndim):
+            ax = axes[i, j]
+
+            if j > i:
+                ax.set_frame_on(False)
+                ax.set_xticks([])
+                ax.set_yticks([])
+                continue
+
+            ax.get_shared_x_axes().join(axes[ndim-1, j], ax)
+            if i < ndim - 1:
+                ax.set_xticklabels([])
+            if j < i:
+                ax.get_shared_y_axes().join(axes[i, i-1], ax)
+                if j > 0:
+                    ax.set_yticklabels([])
+            if j == i:
+                continue
+
+            ax.xaxis.set_major_locator(MaxNLocator(max_n_ticks, prune="upper"))
+            ax.yaxis.set_major_locator(MaxNLocator(max_n_ticks, prune="upper"))
+
+            ax, pax = projection_2D(ax, xyz[i], xyz[j], D, i, j,
+                                    projection=projection)
+
+    if labels:
+        for i in range(ndim):
+            axes[-1, i].set_xlabel(labels[i])
+            if i > 0:
+                axes[i, 0].set_ylabel(labels[i])
+            axes[i, i].set_ylabel(labels[-1])
+    return fig, axes
+
+
+def projection_2D(ax, x, y, D, xidx, yidx, projection):
+    flat_idxs = range(D.ndim)
+    flat_idxs.remove(xidx)
+    flat_idxs.remove(yidx)
+    D2D = projection(D, axis=tuple(flat_idxs))
+    X, Y = np.meshgrid(x, y, indexing='ij')
+    pax = ax.pcolormesh(Y, X, D2D.T, vmin=D.min(), vmax=D.max())
+    return ax, pax
+
+
+def projection_1D(ax, x, D, xidx, projection):
+    flat_idxs = range(D.ndim)
+    flat_idxs.remove(xidx)
+    D1D = projection(D, axis=tuple(flat_idxs))
+    ax.plot(x, D1D)
+    ax.yaxis.tick_right()
+    ax.yaxis.set_label_position("right")
+    return ax
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..6f6dab0
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,10 @@
+#!/usr/bin/env python
+
+from distutils.core import setup
+
+setup(name='projection_matrix',
+      version='0.1',
+      author='Gregory Ashton',
+      author_email='gregory.ashton@ligo.org',
+      packages=['projection_matrix'],
+      )
-- 
GitLab