From 27b248df6e279f64f7cf692b5f02367ff3b31812 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Thu, 3 Oct 2019 09:09:00 +0200
Subject: [PATCH] Fix #661: Support for M4A/AAC files

---
 api/funkwhale_api/music/metadata.py         |  66 ++++++++++++++++++++
 api/funkwhale_api/music/utils.py            |   2 +
 api/tests/music/test.m4a                    | Bin 0 -> 51512 bytes
 api/tests/music/test_metadata.py            |  30 +++++++++
 changes/changelog.d/661.enhancement         |   1 +
 front/src/components/library/FileUpload.vue |   2 +-
 6 files changed, 100 insertions(+), 1 deletion(-)
 create mode 100644 api/tests/music/test.m4a
 create mode 100644 changes/changelog.d/661.enhancement

diff --git a/api/funkwhale_api/music/metadata.py b/api/funkwhale_api/music/metadata.py
index feec90cc7..801ea6a9b 100644
--- a/api/funkwhale_api/music/metadata.py
+++ b/api/funkwhale_api/music/metadata.py
@@ -70,6 +70,45 @@ def clean_id3_pictures(apic):
     return pictures
 
 
+def get_mp4_tag(f, k):
+    if k == "pictures":
+        return f.get("covr")
+    raw_value = f.get(k, None)
+
+    if not raw_value:
+        raise TagNotFound(k)
+
+    value = raw_value[0]
+    try:
+        return value.decode()
+    except AttributeError:
+        return value
+
+
+def get_mp4_position(raw_value):
+    return raw_value[0]
+
+
+def clean_mp4_pictures(raw_pictures):
+    pictures = []
+    for p in list(raw_pictures):
+        if p.imageformat == p.FORMAT_JPEG:
+            mimetype = "image/jpeg"
+        elif p.imageformat == p.FORMAT_PNG:
+            mimetype = "image/png"
+        else:
+            continue
+        pictures.append(
+            {
+                "mimetype": mimetype,
+                "content": bytes(p),
+                "description": "",
+                "type": mutagen.id3.PictureType.COVER_FRONT,
+            }
+        )
+    return pictures
+
+
 def get_flac_tag(f, k):
     if k == "pictures":
         return f.pictures
@@ -216,6 +255,33 @@ CONF = {
             "copyright": {"field": "TCOP"},
         },
     },
+    "MP4": {
+        "getter": get_mp4_tag,
+        "clean_pictures": clean_mp4_pictures,
+        "fields": {
+            "position": {"field": "trkn", "to_application": get_mp4_position},
+            "disc_number": {"field": "disk", "to_application": get_mp4_position},
+            "title": {"field": "©nam"},
+            "artist": {"field": "©ART"},
+            "album_artist": {"field": "aART"},
+            "album": {"field": "©alb"},
+            "date": {"field": "©day"},
+            "musicbrainz_albumid": {
+                "field": "----:com.apple.iTunes:MusicBrainz Album Id"
+            },
+            "musicbrainz_artistid": {
+                "field": "----:com.apple.iTunes:MusicBrainz Artist Id"
+            },
+            "genre": {"field": "©gen"},
+            "musicbrainz_albumartistid": {
+                "field": "----:com.apple.iTunes:MusicBrainz Album Artist Id"
+            },
+            "mbid": {"field": "----:com.apple.iTunes:MusicBrainz Track Id"},
+            "pictures": {},
+            "license": {"field": "----:com.apple.iTunes:LICENSE"},
+            "copyright": {"field": "cprt"},
+        },
+    },
     "FLAC": {
         "getter": get_flac_tag,
         "clean_pictures": clean_flac_pictures,
diff --git a/api/funkwhale_api/music/utils.py b/api/funkwhale_api/music/utils.py
index bf3a0daf6..09c8cbd12 100644
--- a/api/funkwhale_api/music/utils.py
+++ b/api/funkwhale_api/music/utils.py
@@ -34,6 +34,8 @@ AUDIO_EXTENSIONS_AND_MIMETYPE = [
     ("ogg", "audio/ogg"),
     ("opus", "audio/opus"),
     ("mp3", "audio/mpeg"),
+    ("aac", "audio/x-m4a"),
+    ("m4a", "audio/x-m4a"),
     ("flac", "audio/x-flac"),
     ("flac", "audio/flac"),
 ]
diff --git a/api/tests/music/test.m4a b/api/tests/music/test.m4a
new file mode 100644
index 0000000000000000000000000000000000000000..57b65b7b53489c85cb7a9e5ca5fa92fa976c35ea
GIT binary patch
literal 51512
zcmY&eRZtyGx1DovcXua1aEIU!+!EZKpursu8r(eucXxLQ?(PuWJ;C|;?%SQJnV0FR
z>Dj$|?X}i!008jKojtxQaEg)x02uh@WN-U^vjYGCZ|-Pj1_0v0wx&kT8(=`*$kl|4
zmzjf$nT?ed5F>~0!RMtwhc=8P{(n!Lz*tS;;2#wDp<sX&*hRqm*6m5Qj6vIwebX^X
zs4M{hzl1-Mv8;f}-$Vu8-=Tvq;^lVK`CPjQp|{b2x5=lvm+t_S(z$S#pp-Wb6oi6M
zIuWJi?dALg(MZ`)5f>xu_9d&?cT+pFweIZS`$R<y=Q49nI+Kz#PJF8VJ@1Q1rit6Q
z{<!25&-ME%B32ILj2?ir5DgFe6>amA)8FXyV#v5FT$N7HD>DC3T+LSD{lOtec5%Sq
z)W!+NJr=V0c@(j|r?9#__tGHeMX}9b@RzX6lNn>wDBVunj}OtPlWu+Mt8wxs%TKOP
z!Zzh$zXnVrL}%6X2IICQ2U#;L<OZ?(D3p6*iz#)(Vl=J6slTW&vmwekYuaBWqdY7B
z<m_RHh3sG{wXLoewGGB7iqa5FWdD9P{2i(T<X}uq+Osg78Uvusc?I>iix)Pw<rx|P
zr2{m|LlIkk=Np0%Hi#j~LrR8Po?Y=F+W52$aR{E^XzzE;By|5OPR8G(`FjtPjeuu9
z7>m>-K{`#;7l@YGo*cCZ=t7QK?3eG&ZA{*7_N8Dd+CK(?Q288=_M0CUH+N4$Z(L7%
zH-oF^?=cPd(P7@sA*DpivELq+#~Q=F#1|+f^^b;E1Y^jMEuWpY7MI{BKY9^kw)6K-
zWN`hPr#_^$OVO?NZ*MyXpGqbo6BEFPnF-6+Xh{P>jGw5D!g`^k$T493=65;+|IiSn
z)Qf#e!L$ZLpz|t%DB#GA_^wd!5%iafDUwq6*mV6;wm!3@T)w<!;=@55ASwd@GX(JO
zLAm?;+!^w?+xcT~NKqMp-+G@ZKukd>dofz^_VRl2<vRp`YYM;F`FF*r(>yN%O%t6T
zRi~?umMYWwjSjUbLkT65ZsN&ENGq;<mhbho_0LA*vj(vi(x<H$$R#g4-(1nB?eTkk
zt>;X~hiHPtW3YuN57+)(fN?&do~2W^+wSED3+!~#<>rAvv4LI`jUlrrMF>D~j?VW_
zajYv^G$nc4r5Qe2BertVgxzGcsS%wGir2xlXsW`iG4eh)oC$5m&nhGyH5E@M{<8Wm
z*9LiuR&&ZiHLvevc|iZkf{wGg;~N^zNdCNa*2RodT|m4L$}5rMro-dQ)<1P9_kZ<<
zoD#zy4o;Qxn6l%RE>z8LAq7fJ<}sk=Vl8k#Rivv3<8rx*prQt2J6zjxt@e3K-P(!3
zyz8hz*4M}5LEA<*#qm;CfdI%~^6xikpTn-aTvsM`cVhO_Hoxw1S-7>HQ<gpfNn@f)
zBRvai1EBA2I-BgjW^MAPs2!z{jVbAmkMf%vCw1XOeoNX2^h+=7HbrKK3}11}hAhFP
zql~FYFf+UPzU7|#$pe0^(~(0ItN>um@BVbI-sDgUp+1sehJAW!ffc9Z75Gf|gRweR
zSq$K+vY51XZf!Jq9wV9UBA{7JdN^6eT))|sXG2@y6ZD^tYfPl$v+dzSTR|8Va_q2v
zC0K^VrK~3$;!l(zwVJBm(H;`H98d;+TZ=(T`})n8c+(>!NI4T{pDS>-DrpCK%@5SW
zumU7UJM^5jZ9#B)fzzBS^1)4KpyAlS(wEEa%&;}h6bHn9=;DqPIkSrF&>9|@PZvX1
z>(X92-Z*EY;xB{ORybBsHZWiZ9F5<!NPP)-K6u=n&!BD!LPeK^j;EK`GjQCOd~yJE
zbuR3exKMU>ubquBHb2erJ<1?S(zw6k>Lwq7E1%N=-m7fAzpYbt22((?u2MPZ_jy_1
zqiKy0i0;oMRKl>z-)2&`5Byr;%xEg%ZeFn=G18aT2zLFt)>J&7viR8s$+dJAkBp&y
zt#Q$zxNKCz71HmHIk_uuk!V&!VZhgKkjN|~uq;wzI^Om1_#NBfGBJgC_%QWeZ@%*E
zT%p4<75~&FFVD1TTi4!J(5vMs7aB6C=#_5zsa7X9Sz%RhxKp5IdZ;J7n!V$y?*!_o
zs+^d$N@^a6qo4`TyfiJmjCY8xXsF$3_c6aXe1^T5;Sq!Gc6t$qBiziPuX3@>m7Iph
zt>~pd?3lrzUiMO&`oqS@M~mRDo-6<toOQKoPo>vv^~)k~V5WY5T}~t@NZL*K+j#ba
zMU_g%wLNiJx>vGJg6CsL8Bxv^*VCl2vVuo*#v;e5V01;faPQ~qD4Cs@W4MUHgqufF
z*-s`quzkAoOi_u4<-7sLZg#(_V-sApunKBjzc~rj9lUZ_f?iLgFsh3gFn9sL+bd=;
zf1wn&82MC7Unve>o{44vQ4yCZAY19uH(u`JfQ?Kv(4!W6@a8p;#mAp1dO*#+RvgT|
z6ZG(jx>uTx?}B(nifFjuRf^5s17L)YZ2C-Gq`jKh*IKM>6{&0J$jv%7a}<v!QhG1%
z&o+B=YG<ve45#4u@nPNydN&#`Jt)LWJYzOF5J1idzj2VLhRO{?|54mQcHtQ|(LqSM
zgYHM-`Lr*eo@lJuig8GS!(m>S{Uxet<~unrCSgXE%iWZgi|fbu5#zLY?IfsVkG8sE
zp{|zO>3I$Bu3v<taTxs8vkWDRf12{E5f8?9mW{Fw;5!0hxz<O;uHtCSQ7H%&S|4Kn
zb-W(Y<+9p@5)uaifUw_^?^{!?QdZ|<R?|61kXfnO&20*Un4KV!`ouY;m0K-eR+xq6
z^n6M@lNRDfJ!eWu<TBOyNWnTrS940;<~y_4zw+BN2~%8wDFKH7*XV%|?Y7Hg`px#F
zCwR5zOm?WI2&Dk?%CniW<KJr30XF2%q`aM?dsZHQ$o|xVL9;s)nbF?q!CfZQb-l&Z
zV-}G=p&_cl(5o6TK41!a@rp*WCY@RM$aEXE+e*Cu#IeKI5Mg`3VpB)3BnuBax1_Vp
z{WxKyTA@pHiz>)UU;-2O3`)-mxgDQ(*3>%v%AGaxw#B?ynO#7giUb0n^sj&X*{YP;
z(Ujto)N(qJvx*}YQ*$2M+b3On{kAtqweuCf4UsEwhLv_h=l36l<I>0&)xFFTeszK>
zHxqTT^lx2geRVJ#awlT~%&TqUhN>OR3j1C-172Ky9|p}OD49~=nUySmdZ4Vn5_}rq
z$+gmM()so&)T7CaEd{W+<-!>$?0-qLsp5IT2hjdC(ggPgW~TuFROPzc(@V3=?|*YZ
zYwm*FJR=_zTEe*YU@?L@cCzmksnSo{fA=rKNB4|YTJ5b>+8J5MR}L&i>-fp5P>f<m
zm#XYFxPrW%+yX<9d*(P-8^@HpD-hYU<6f>(qhlUv9(&wb>u-*_RK_B(j_&HWL51-i
zgFli&>j7Z>g2xm!+NEtH-vj3GzRL4o!iJpZE?>zuNg#%%`HNzyCSiuB_9E0<*($m9
z1}e!0p9o;xXIsFeEmuH3fzF9sZH!3?@1)XZNJ$uxfR06!QJf1)OP?)mY6o7*wo6)F
z=Nu0t3{g$r=2aGR&=@Mf``e`?RlOcfeLg*i>F^M8(K5y^oD`0~PtsKs3Y*}H$97}S
z)xfkO)p??$M$x+HGCTU0WFamv!p!>kGMp*Xjr_k%COOIY_wagcRHMAa=?@P8zHimf
zzP@~A=a0wv!iGwC;WY)fWPa*%2!j(Ca?(zS)Z%eeCCg@dqPWWw+b$X(C+;0R$Zzo|
z<5Y*1Zimr4J%d8zU?jjWF|l$6`d<fbZM{xy%W4F}YAwkzp$<hqm$qPsrYlCKkCmIz
zTPxam{;qd8=j}*fY9_f_zqcUZHOiK7e`hMNicN=541AusSnJDE#;9qazbmt1Y~$!N
z<HQaz4pXXwg71SsQ4<kj?_+VlN%pp^6swG#H}|hagJJW%GZ0$}&nyhbe;EKph??tb
z%e9h+?%LJ0Fv&+^fvA1N1%kipQh!+@X5(?YC}GI7q-Am2e8|=t31bYD9^fwXJH#2*
zX<UzrG8O;BPoEpk0<|E*E9a}_@aD$gdeT!Qxv~Ecw!Uw>RQ%de=a8IfFPgBTRW^Yj
zRuD08^9ix$iq}%p{_|ik-;kj$M2U-|^ib``BAb1!4Z+|JL%Vt_eu`T(W<zN4@{yw(
zA%h!oEqgKAzXtU10LyporBCe0znN+E(z))U3QGE^6_OMjFJbH+N-PeVj`N3)>X0GB
zd1jy+<q@`w^uuBrr?b?S{Zrxaz|oGec72USb$(E!K|G9(NuKUHRR3o#*7arJ5;ye`
zbIF2Iv4<v>PKtHHoDanAuCkXwvEl=ZCEZ_jOjs8!ag8epf&MHb#qs%TpJ9$w5RHZe
zb8JrcH5KAcR6oN|5NM3P2U=|1=@_#L+)dD8;&L|F7iCl-;IQ4Arrv`M01hwfJe!qE
zgISW8>8v%wa#BXt4}0@<NY>8NV(@l<ZS!PS=MQ3>Q9ge2{yg2y&)`M&Pu`Y!(q;Te
z)9n{G!sptXr5Tb|m*q0*qK2r++2Pof_Seq5BLI$qP_DmW{hga0{;3&CouI`;eP4C5
zuG4qW1$h*$VM45B>b61=_+X7bHmHj9$ITB7|An_A6(3QN`Bpd)@-m1*MauV4)5<}3
z2=@buMsn!0_az@GnRrkj_f{E||F-(0r9|-wk-{uJ_J`MxSunT1q-ihf;l)kZRiP}O
z8a-n_#>g-KTAsR-Px@T2%;)oWqKi@%Ta)GaF3>;%>95kQ^b&RVXK)F`SmC!q@?Ta_
z{1kAw=-{G&C~7EZ@jNPB^P8h^bOwuyay*3D*P_*?3vTplLNLipQ2&lRpKe=Oojpt_
zY%Za?a!IB&ysJBg{%nH@fy7Sox79euDaU@@5psfSa{Wx4r!_qsqs;b{Ca5n2)*epP
zNr)ebf`Q!hpj8NrBdfn2lEDQ$JIlZ{=DvN8kHDs{PRA};RpyH@O3$ayyS|Jc0Jx{o
z(6#@I9RRbR^<5Sz^n>0L>U}RL?t@~kQ|(EpoueuH>jlk-8^Q9N$VUP`VgG4Ym#9WD
zra#0Q5R506G3o2;(I}OP13JtGByIyZ)j1LBUfEiK6ztQAU~7b3GcwB|RX^%DSdz`K
z%Va{aZ9nN5Y-S-#?3%w^ib_e)hTzClSk<Du!}XEtCEaPD31fOkFwmhuZJRwJQB={t
zLM+{-t6Ghh@`1Eucly}X#&&8@OvpJ2i3dOVU8XSLizvsW&#+a-Y5%8MfSajz;evG5
zvvvtBIo;nEqTCI<b-e_}RIN_N+&*8GpSXJ@&5?{Z3OZ!IQ?GpTKk)rbxvTX-HwZO)
z|GZ-O4pc@bXB~E*F(v*$Uq9)df8E!_-6=3^1f4&f4(EubH*(&PX6}SkE-R!1a~=h3
z(FgYdkcfWtfoRt8gXq3FC_jVI!B={z8)?hD)fPLsW9sawZsxhirz;){N6)B%qf1OE
zrV$r8#Se=W*^;9KRN45==y@(g@IQ;J=4CT|!qFm?S~TL?+A(6kt`yab`*Udp=#A_2
z`(maBZ!H=?rB@@H8m8EITzn>?=az6pC$N&@pR=HXK6Z&qcA3YZR#eE}u-VI%9mxNI
zpThq;q(4Ki<L<bsAl{57N5}1Ni1zy5i#@x8;;fz`lU!fp6&wK>2T5#AY3b<NJ=E*O
zwlxNNB~#4pa<oRpFY>qw$9Plo#^JPEeNL=FnTd$u!O-6iCSy7kEY#G{16>@%e?7kj
zPDYh~nTsEzRNr<@a8!ZnD##^WzOW85{U^ITLQFRv=T!1i$pxi$mXk`-EKVR|xH^CJ
zFe7T1Ws6;CA+6Bx<MoqwQZ^T5bIaYcE}PL!ZAp0&o0l=PsX7buNPA1%!Ez$Kt)T+u
zqq8L3Z<?p;LW0$IdKF`{MnQ;7VX%A&ZPp7v5lAnKS@3zVWxuY{^CszILc~TnU*nK!
zjK?FAve6Jk-_N*@!ar>wv7Tg}P{q<oNc+rLevLAm<CLyzTYwZ;v!!gt-elMU4xYal
zRnqTp0$^6mymAw*nX^!I*!C<c9WwW9c)(s9FIgJPh%W~oG^$rZr?~{w@ed2Qu$ULT
z7QdO?EH$k!z_4IWE;rC+x!m?le>AWlJfu6al}LX2l!87kxasB9U*ya2tnJm-_Ixdr
zIiZ(}>xG!Bl)|7>HL2pznnhVJ2U3=X1aBFjF_+LM1bbL)vL3hftaPSHOi?Y{_1fxM
z%QjLb9`HF$?4K2@A-b~aA<<(%zFUk$o|Z-*gkf)r{oSbC_S8L*H1kk3RkG9PbKxDB
zZa9;<%4)X1;>b804Il}nzJ<I~_DpZ<@|*G!XMl*ysfbbos$0%ddoZVddsKw-@JS&)
zEP91Rmq*2-WZ@gV^{Nz?!G+Tj#A+2JpIpVU1&Vrcf?5B0(rxV2vaGSo(Xklg!^Hi0
zmYK`Rq(Q#lc+a$j^VeV=G0*TAR4bH#QQEWaGXI{9W;lc%T;jGxK`3v5NU{Y+Jlyu@
z$hO199Y|$ifk`uFjJ)C6iJ_EFW3L<DJ6JuSfefyY?1t8O!0F4@hW)EF{VcS;d>p@H
zE4BVa;J(;kkDvamDJQd8c^HAR=|Wk7z=23P$-c|!I&iNgU+cj)uG{=$6@DiIc8ZB{
zZ1;NKuAJ<LgD!d@EtY{yj<aU1*j5*evO_`ooP%{Lhfmav;M((mGR*Uan707fQ_Gz9
zJ3ujK1C7OAukjIffzTfxySkZPM`wtY1CvBXZ&w<6>mQbMV_ks+R%*kH`su8e_}4Gx
ze=hyiq#|3fha-%d=W2-$aTa?PZ5y@gGeWp^t-kcid9&i7Zjk&uI<FnPSh~-Vd$GSe
zfdHNP*C%>NYbFA4MRG!CVd^}Ql=u`i6Bzl4Ga^wrs?hnY^^A@s9Cim#!>=*EAQ)%=
z>aon~cerDPC|CC7ku2!p8teRvw>P5lA5~9nhhi07V+znw@M4AqGlqR+VGuHN3yn+2
zqu6lEr%o=m*ltES(T@=YSsTRZW>+!ExibxfPDSqOvoUM#+r=T~B4J4#eV0tHy6VU2
zUf+7eOVnu%4Vz!zQ%<6f=3!{0_(3#3sA^B@k{y5LnM7Zqq(6LL9ta);Zsj}%t~B4L
z^}fW?u>jN-81{Nt9A5;0diGP+QwD($Fxf2`Kylr0q@f{sBrfjHzfcGW&=F?lFv@l*
zy~;N9=vXd;*!Z;!!s9D|2%M*QqEiC0)aEn|HzpLWPBEZR#-UJzyM}ZwS9G1!KCpE<
zL9$a=!2r`s=J?z&w{YTQv)+kRb-I;XV$iY0K&nG(3T`Hg1cM7~gySGd7>3R&rcR=g
zKw9X)tG41wyP`?t5Z#U<!J1d<Umk_8z8jKK)q}&`^@*#y0<$LGvg)S}16J@nXxv)r
z8~-%ss!#dI#8`rqEgfraV_+vm4sp_lLQmMGl3xoZUO}~;fAJ~I9cshVW79*lu6ZI<
zjo4^fJj`Bt?VaO3+aq=O?y0&(QS#z9$o8Y?K=DRFn;4ZU98_ogGDl_Oqq`)(&LQ}2
zOc9w`bN}2$77Hw#4a$|4ipb(_@fa<^SYZObC_ftV);Z}pWBbF+!w&y-Va;H+eKJUF
zJ7CxjHM71Gfvk@7{>g*<i>QS%jb5S$MjjJvR`ctuSb_^ff${<7Wd_2EgW|cRVeTh;
z-&W+0f)Bn}9`4Ief`Gwh{Q8)*Je2%9|Ci1f((49O9_EWyE00;c^M7lT(i3)!l2RW;
zTsY4UdSeM#ZXxn(ST!)=+L7XNjWlN35gb0+YZcbx)vc|niYR?U{TtJax{OT>6=u9)
zF2BB*4hvDyCnzY$ky-8b4Mj#uoVoCe5H$Tkzk&b+uXZOs$#^HFr-Yj>10J*TstoaB
ze9hcfs8BOu_vUaPx4j_9&gpS7R(4InA70?x&!0MZ5>Vk-@lgZ#<SU!YCn+sLm*BA!
z$fPJ?Do0MXrY=sG;$pIgh-6cSCxbZ%AYa7gG;wi%!URBHS?d`u`qF4Q?-zOB?<lB;
zy44$e;hE_Hx_+$H9W6W0B++rzHt`g`Xeqz&p#EO(7l9IvIQI41JA`2H;9{38(NIX|
z=M1tsEPMc<hr$y*j9Z|?m?U4hTWJMzKAh78mlba0cMZv+J5t|&bI%eHnWP#uVD9lI
zh&<^s1>p;Lepf{fV-^J9YNfH$zgKmK`CADHU`obWZaer)&i?anB4+>1ZGB{xv1p6I
z%b6WCuV&05{Snh@UtV|JNwS-|ytcpOKU-Elwc8&8M%~(};ln7WLu%4%b#*=^aV2cB
zE8JTvI~hvSup+i@xW$)|Q4~Acy(ej}q;&U>U$_XhiczIxl0k=uvp#cE{`=AnRw>ec
zfwh2CsuSo4ByE~BtXq0RJUhQ!xW&(?2lbe~+VSI)8~l63A7b}9Tdn3B#we&${1sB&
zzE@hBe$}>S;j4|OC54c|!1^V)kcD)+-@uO9XYDd4N89EeeEv#v&ElMlZrVl{l$(T8
zNyLuqVL=$4W>lh-`+K5{qRjsi3)eT@hRCi!pT#M(#C~z^uNzK>?1K041=;Q&v@ZYo
zA6IXLo$|^-eDF-72^v_(-us=<&K}g*e1=|GIrTtb>(pH46ac&lFF}JL+T`)hrxmPm
znz9c9yutXpCob_SRIyWMp_V(>Z^bLUBlBf~SKLb3h3W~RRBaf`4mO_6cbMh5-;z>_
zm9$!s9eEQI#B^g|p@ldYCIdBQJu}hUiO=~WjOCHhlx}3j)&g$DYp5uIFBs&N$sa-_
zzgNg6Z92Ys{6JR=7($4Y2#eU8g(JH;UEvXRzgBH(cY*x3Rti;@!S8FeLs`QcYlCeP
zHi_zf03pumnxu+sVh#+~dqKkGS-z-MMoBO-Jw=(G7(Ta|;~GBNO4xa=r4#47Z;>z!
zqf}k>$}CCF-`T=UO(&|Gnx#C(-5Qcliu8kO3fB&bXKs2MTw-xZZ7oh5BIJEG{ff=^
zW^yI~z{<7r`D0c?wJ@lC<6a>6Q?Y4KF^XZB&*a4r1Gis#_=D_&1Z{Wn`HCUjeAZMw
z^YlyhyZ5Bc9+9Ng|FD|meXB1rM0@@y&N)x+(U>vlBtok4?Y7|Q!eC(7WhzTOvHd$N
zN+{#Wy1T;*H>QTpgF*TyH7af13xb?HfN1I)D$N6W_LSl;d5=<#N&a3Gi`VB90A3(3
z9Nfp|^<PPNGei)<Ci9Az7>-6;eXUxQV2_m<y7XY$k=|)Z<Go~>{)~Aw+)87_?EPbn
z-D@Z>BX;hx+#L>##5`TovTnKM7=GBJb2rL-Pl^%S^VaLo!(CIR#b5K)l~`?*$7Qsy
zmKcCim_6L2|3s1srR`<VQ3sF6ldsC{@{gD3nYuUI$X(ps>Rg%^$o4GDnR_Gt&vceO
z?<oObX}773K48f6paTHR-IxWU-m%%sAod~WSSfrMY_9h(R{5$QyR7DrlYY8vey8bP
zR?RyjFoP>Jwr($rqEPYVl+Zqm|1w3NgyPcywRUb#$ywXK8|KQ8?<zpoDjMUnKh;uv
zxw&r&valLW(-XW!x{eg?l4P53VOTL#8#95$-2QTr{x#J7*4Y}OoIA9b&#<;%EOXf-
z-oH>^N*y{$P3`6#wT6-U>30U{oR&$WJThOE?<-Di^VE2(QO@>AUBcg?vE1rNgu@+6
zZ1xUoNeGJV4Th0zXqAx5cSG4kc@Z-6@#=+4B}O55;p<p{vJ#n&4Q+)&Hdrh-KzQ@T
z>PxV4*aw4azD0$+hm0r&+^J7S!nCSsTc*fSHlbL!)(M|8=!|olWs+^9hG<MX$K+z+
z^bsp3opT6;r>Czh;>Y-wP^4bi|2`EtT=%NsRb9Pta5v~ZU4-@?(6`|9uZ+dE!Rvim
zt}-fW*3ft-G4Ff<wM)nlfHvz1jWuc(0RX|Pjg`5Y18-;Ukbu=q-5N8cq_A!R3<a84
zkdUZpRNOYdftj9kvRWID51H~Z1+7k~p<)bgX$;>Lw@8sdyf|w$yWKN?*oeAdHr^AH
zGQj00v>to)<b}+k4N%1x4Ymh<V^T-jhWP9j-$5rCbB^sYwW$|Wo{T$}tVX~i=(?<s
zsh-}gk*^K5ax96gp$MDHLQ8oj96492CIUDE=EDdZ<{!(_Yk1sIJ*US18IDq${#8>T
zK>3cjsjPvq0e#5n!IVH>F4k(*=@|NNDNs0u&f<7z)RaQ$?42JaW}`#3TG|tRw@*n-
zv7&StSei%3)eDy{N5xq~!J6$4b5@|@YX@>NnR|?VJl1ovouk_%(?&)v7i#-0b2(BN
z9*msHsl&TM&l%_hxLTCIAL$=#nfCfuY(szWvVkw@eh(;`#qk?8v_jACesOr^F`oBI
z4z;uS#hY&tcm5f1O4&Rdnz&IGWEW+`(?=;-C{+2mkyfVzEm0#?hCF`vVn(?qlI_pF
zK1nb9c6zNZ3ILDknx$v@b>Bw;7qto8S8_~IoB!y`qHVGGq#O4I@6Nf*$7v=xprsGQ
z3-3we(4)RBIV?yPv!s2g1@lL%<APO<DZBvcyN=?e*wiN%Soesu9_z3aEzb77OT5{!
zmxGe^^_d?;19LKUGcJ71Q>1a3eBFcNkMQnXqIEDGOwjbf@Mpz`<Ve(_NPh~=6AA#w
z^}Av~plS|fBe3jcqxqo=%Zm2TKD(EsBss&^Vzd}fu~1Nqh@B~V3l&oCH-6~hXgWT}
zTbT&amtS{(Px^FJxiKg=={yB?4=dLKA~%D}$#&)jK76?-Tmrj>2Dbc8BC^-Oiuh%+
zEqN%Z<jkVYP<dObI*H#&t!rR5b5dpc5X0cLkqaC5jv8p|EHBW|dIK{dUjcw{iN7yQ
zzj<z<YADZHz#!1=2t-@omk>1S24!&&=9tb2?Nn<?&2Grq1}EspVxo;N#%3$_nS;`>
zd#?||L;zB<%R=&E0Y@)TDVF*`F3?gwzQK+X+`S1LN`BMjp|6z}Tka1NLGiN_;V~ah
zXy|m+9_UDlGCV2EP{PL5oF2EaDhr&=hgZXZUGvbf+NYai0ASM!%g9N%M*g8Am6#Qn
zFqsH^t!a3^{T(H1I|wQFHgkvpf66E;Y`-8%je22!eKW{;Q@Oq!qWoBSVQrkF8lO`U
z`0vSVUHyy_On=vQHbNw;7?JOO{acGUB9h`eJL%_C?_Z-!52f;SI9r;uxskijy`|7r
z1u<QhKfatkIX=Ia#n}qoCW|z$vAf->t+`;CK=`lvxav);i7<dZ#tOjF2g-<kH}!sX
zwUfh=9v<WHzC!@n%^S#_F4OaoV6C1{S+k%5i$Q|i4p4%jj%0Eb-lF!x4H*0pHc@uf
zRs@o$Tocx?$^CMeaEi~UxAF^5=J>&=g&Kv~vRMzKmLI{LAiCJOC@*7-ou6|QA_uA`
zr<QL=uiw48_#BG0UWm+|I$<Ao$V|L48*Lr>GtOu7kI9O(K39P!xe)D|h?)s3lUW5`
zD4RKO%nkK9j(CYBj$XBewsG9U$@#wRZJ>tb1v^9{Q>=8ROp2C0j=OK#8Ph`iQD>eQ
z;_3Sez<cGTL7lO_chO(`4q13yT)>|npr;;FU3<`xYOk)Wtq73&jZP5^9LV_G@iTw7
z;dx&xw1KrzcatUU@k7mH!xWz%xN)=sL}yEX*p-AP_b5Y2&7X8H7qZQf4^d+mB}GXj
z>E07wHv@9gg2h+6SrI+IzV>ADE;tEKZfr|$s5>EBfgiXGVf)1j@1Z9y1^xqE+2ulF
zFqri4fcqV9LGFH&&v02#K_}--#Ty6R5oKZeA3)z7JqS!qbOzV5Q+OmQr8iXM9VHwu
zsb0Op%W4*${wVW(nyQlwo#QP1(%KFBN{8Wy$X%)q?O~Ce3>#jPZC)HJT94yW+YP|R
z*TV0K&BwAG=f4{$qkTuK8JATG+RXzBfu#04Ww8MA+h#d}Hx-8;YUY}QVu*c=oUncZ
z!e;i-+ZNi<4v7uq!hO(<vDn$7>IuCwi6mWRHwt~zvhmlq@g}1D7pjB`GKFk`ER}j7
zyp`{z61S=F`NEc`qJH)D?eBCI$z6G3sa)16m)+m6cmyHB-(mK0Ie{NI1UOT4&Zs|*
zZ8+V32gmYj^M4s6ud8<IBu_(}LLFXvv5@MNa{7pTr$Uqxjg9=bGbpBhmyT4cf-p*O
z#hPL=93BVFN(NrIP71IOot;hHyz_pL^5`whC7@<KW3dE{AP&-l*8ar<-`{EAq+lul
zCOo1O<y8(ae23z9qx#MM;!XGxfE%^8d6ps;Bt@0)6w$TJY-B?K(ewp~8;lI;g}xLU
zbB-3|247td{|!UZVi)2bi*t99^-Y*_W`8-d)3+8xeam}pVkQQeYQ;vPr?y&n_NwI%
zSErR>7y@C|S`&TQ<W>q0Wj+D+k(aLBReMtAO3Te6?bJ1^-nQ|dg1<$Oy9dXfO$;vz
zyOIofX<lGKXyJQ@vjq5$`q=ZPYUzKIbLf%Ux)76?WBd#lh@OrX@rvjB)m`aX4ucBv
zylvy6B4~1pst`?x<XPHHe}BA2^Hz5IEc9cE!U<7Sdg15;&WCw9hR~`9vX_^an&EbH
zQBXaRGBkwtz@y)bEWK3VO({WD6f&}4BdG$F9Obih57r`HWD-LgPikAMqKpxW{4N|j
zB??Xt1qL2{ZFL9;gNGj3Nq5KU6V})o+tI6ka?9q}bi<y1hN5+gdWmVb9Vp-+FmX49
zC9A6jz(r9@4yLled$z;B3C)p1yVPp;XaE3->)YrX;pWMsUrZLMRoM=I8v=85<eOeA
z&A=S?=|d_tl28wm!@7UDqRO}<<6Uv=cEY4i>ZZunYe7={r|!+alUBFrm4TD(A%z;P
zgh;y%PHHK0o^FTj=oM)3BJ}#iP$c~FJBT1%+sM+E=#|(TR$^Zf(BR{9r?7|a?jo{i
zEEF-o!nbyO*E);coZ#9dm6Nz}g_s&}rul1H1*iVjF-fuGeg?1n0Wk9UguSTSaB_L_
ziPdei>RtbKRgHU{R@}jD3AOH=k_k_q-Mcy+vfMvB2|OA`H_3hK1{S)7KD}KVmt%{<
z4I&}Tco&IT%3PX)9T`@4IX>jg3totUt<@xiF;w+y)uc#@Z{4FRu_GIVk{;Y*1B9jL
zezS0|3#2VrfUmFgg<0_>yAh`uWocC0AsktKu}}~SLX-}ZDFE7~SH4)Rc<UWI{O;Zc
z4i+cpo;>1z@&1AH*-ANWf4RQdJ+d-uaaQH)of`c*RH?oq5PV0i!6Ac(^N+IU&I0j{
zGcS54+aBU1WJ`~1?^7jz#S2H~O2ni1+g)wKw`#kCwzt7oE(DLxKDYT^PN$cpiUL>u
zZqg2agtUAK&h4QZc+BlYI=}l?nYsx8Zu?MO-ig~MoD)wyI8Jho>Lh29l0}xe2nS3j
zHd>9?RV(W~InO&)mHJkzmDZ(%t{3a8i_4dc5Z*WD;lV}=-%d0?s9($(-N~h}PQPG2
ze~AjA*PstNb|Q7k?ss<Sfunmr69+Tz<@q*Jf*GQVFnoX<`}5a<ksGaZkgOv-lFv6%
z5mM2F*%EBRCIwsQj1P+OqvrR{xY~DSdl^^o{k=T`T`}6Li$aEH47*k0Xb8tTrg%jm
z>`+2%nI7X4`vAT(AzA1Q!22HF*We6tXrCT9kTd?=7(G0o4|)^cr19;tzj@}}*{B-(
z+m6wt|M{;iiyNYMn50D3M|BIDUpdTdA3ZzF*6V}<wQtATgbgcAyf*BTwgA9O-1FN^
zH>w83mlvm7)A?uIb0iKg1>wTCzoUeET$H<#)tkBc4m3;9it8jF(~TSM$q_ao0II=~
zwX=l+IojecK@aG+*Gc%3q!aNN1$#H0pJCIgqV9Rhb68lVx|o$EjV9ChojdgD7g5G-
zZG7(60mmXtjK!Tw+ct}=q((mv209YSW){%x3I=H5=3rw)s|kk1ET8mnLJR*f03~8y
zRb}5kxk<0fP=Y>dnfzXx%|1)xl^_Q)J_)H&@7f{-MDL5Y-&}FUMt4G&@&RXpyQcY*
z(VNI@wapcSIeZ(QG#7xH7n4^$G&)Zf->s!#G?P3RG-KHjE)vl4+2BrSvnlq!u!ca;
z$)WY;%>lB5C(xVU6N>%CUs)Di-I_)3BXmkO=N9<#A-rLw545N7C+On27BWo7#7(!o
zPzV&!n-$gyC85&1;dBBLAg3OfXgQHrd6=Nh-%d|uDxXKTcJICFIr-S=$3?0EQWjXD
zV0PXJ%x}Lx-;)j6N=XAfFy2*}$C~<11R+QG$P6CW2dnpM|3m;h1GG^9FleOVTdD@^
zcVdeH3@CNu0P{-Adt=JVT{<QtYwNQ7D#u~ybC-f`<D-xEZcIHD-OJ04rxk5dP0=lt
zCOqLO`aU|X{b?~7(0aY_J8Vyxg6(K5q~3twO%~?Qd370d)Cwpu0@DU)=9Xfbr9LVs
z0X=_avn4+`NwT&wFoV)W@t>DOcOe!6`&bDNy{Ua7cnFm$!C2GGtfFXdd{9$FGgd}^
zIC^^r3$JMO&=CG|bk=P0)@E=AX~IPIf3@utF%|$*?!kzr$J)`}@)Y(|oOrJ4Si5;2
zJ1q)&*++R0(wZS72_UWoNuCa;)oPkyX7%sOKQMm^Po>?6SXn9hgg$oooyz*!21C%*
z{U`d{B*~soCJG_c0{x_va=}E<)_1tLicV}2R><YMc1n|~7NW{%BSG{@iPJhkm~b2g
zNHJ&4Y}Me?IXeD9aVGUr=@UuCkQdpAWh)WC?iX%ZTI9(_Hm;j<9MYFbnpf$BT+!rd
z6Xc0G2GOlix0$w6E{s;SS;jQlmGwn8<JAVF%_bt_G)5Q4=qn2snV@QrKpBK(PJI&g
z1KxXz17H=eZUDgJ`KDDdqz3+JOGX!>z134VoIQ9>QIetLHWfM=ep;bnj3*#Bkw?c6
z$K)<kgOfL8SoIybltnZF&NWu@`g5$|_NV8hu)S;zaUFLH=m}`pWBS)s6wYkG;^IgK
z$Ob@bI%IKX*^J$L?)-qVwuh&|G&y$c#BMcATyMS)=^H$1@p~6shPPx50JHCXz$%`y
z!@M%bOG$}fALB}>)L%Yp5eil*{SbNlspz9t1?xSD@t57WZ3c=uZ_=AY(Xx+&3;vH9
zEm$DC4vLR<+7mxKG&YDu7^Z$2qU6WO1U_{Mx&&myFedut)y*$gKn@W_E9o&E4H?BN
zUb1o!r|u(pweihb1Q6zr85n;A>kwPf7?ll)41a+YL*Fb?hs_(#`Ov3XKfEuh;o)-Y
zTg7r8p7pzbR6VXoY9CMU+mTGt+<HxGgqo-loU{6XlCx;?-(`JAtk&&@yHGDKw^kW{
zxV#xML8C#ZV{QnB1_es6!Ub0~0C?>0P1CFXcqJpOStel&gk7uf*P?EJK(MDsTa6E*
z-0-el8Jw0;-=d}yzX01sD!%ZKu{7>qkh@Jm+@otpgH_Sk%#3afL|Qkt=Avvo0!Gpy
z0LZhg{+w{H)?t!P!O*KKF-3>}+x6h1{MApZwCd~wBkwlQyT((B2zh;br9JNB#vrB$
z-b?+MjL`Vgn%B8$&2-?(26h6+8jb&J1qbzY1)bG4D*m<S*cDE~@@vz<>~5ECjkJ^z
zKX&9A0ZJpoA-X6+Xpjbva}L0wFVPjBr;g<b;Gk#joD7@ky4Dvj&fc&^BLe_BeOA<L
z002rI@`gsK#qQ<W)M&V1`4WI%i&?&cPKT-gqh~9WZM~?y=A)x$%b)3>-=?xD1W){u
z7@zXh3`#<9J$`A~*1dMz;d8RCza5EX!l&cjXW9QN`fK`6Z%ODz0)YRS`!n->M`b*e
zNXpU^j!(0#_BFDC6yu#*WMuo|(&M%H*J->wD<6))W<~-TsJ|Pmki#kCwzhI4IRgj6
zB0EY|0tp8P@E;`LI79oosIHDT7RW&=B1S?}#-9=4DAzaC$pL^3W+&4_;TCJg${O|6
z^7l(zmy#+?yCMV~=J-8>6+18%05I(lHAftJC6?z#$X%Tdr@hXs(+?ksKMhLVBS9xb
zhM_%nNT6^L4@}P%=)>colQr>xKWF`H8ip}43^d>wb{0E>8J#FP9!c$NqNhT0?0WSn
z{L}E;8^0cbMPg83iS0DiB0d1{P|cvB|A7GDNP&?x%7~-RWEZv%Iu7Z5O7JeT9Gba1
zeRa0<)KRFiz?UMono0cdWf!kp@KKVrrhTX^6G19N$F0Y_mZ-FLRycz#-ycCPZk?!V
zH2843o~s1`+Q+-oBfYWTM6x36FUVl@@lu7wP0Rb|j}S2JVc|ar03f#@D=Tm1{wkI`
zj30lHW#gfoNO9dcka1<da9yj_h7e4d{%lUZ)T%tLl%I1WIC>G@o0!r)F$C0g9x)xL
z<H?gWz)Z~bC=Hp;e=pAy#+L)6UK!#<0H6RoB1~M)Vt_n9VCR#C{F~R?=<ZxxE?}``
z8@7+N=^Z9E8(z`D+`GG6l*H5w;M@Wc!e5?~JYzT3RgktMg9mty?BRCY-C7SUtl(@4
zS!N`q2xGyfM$=3AoTe-{RE)sXL>uZ;JYAm^fl)<##0YGMI#sg71zE0*hgWM#JJxCd
zREO)v0*$gscjwcBV&L&5!NaGZse@-{Dy>?$`FjER^u}e-gYS=|t{)kmX<6X>`}kE5
z6NmkSuL;bRa&1~inFq8%fmq){h7nO)2%^!S3;YbCWUyZdgI5MW*-YEDEB_M*>zl)c
z%*$r%H-kRa1EtE6Z+kz5=`4ZBW*Ov-_rd@+{Ys-E3gnwNt}*M&XLt#w3b6))m1q(Y
zCkgqSVwz5ogd`DEdJff+VJ$Ed`(T?88bb@nKL#Ln1v9BVsucF_YNEOu627e7SKcCR
zd-=I0zJAI`r25PM7ES$k{9hfzJBN^8^3@FjGwhyG)(|u4d<^J`80Eix_8NDejj6n=
z3})kNu2!8qqt=j#4LjMw@<X9z?7t7Mys4PXD+h}pKFaWV3e@}M7)O6yQHFf)IPLw6
zCWVTmmYQw*DN*`TAU2!JtYz}d70Fgt1Q1tzq}u^5y9S>{)~_7GzSgE2jn0%Uu0a$)
zZ3}1OB=jYqbRH3aD}NigLB#4HR16^y`*29b31*(#=wzH6Arc@TM2ZAW@U$_{PTMiS
z|9seqw|{~_Bm-?n{GoRt3xZ%MIh?f=LO_pVrW#bf-zaAW?glrAxTj|YL;e%e9a{i^
zw&B*R&?AXl_!9W=`%ihnqEy}Npi^yqnUj??V}ZfTtYvcmOn_!xvEmQ%GHB;zm~n5d
z@lPuSq|kWeV53O&p=2CALTsxFf*+2?|KR@sVB{N1wiN&XA)Ou}GHE*c1}BaDY?ltW
zbIr#Ed3h=ShqSVZ3GL8e+C6&CIO6y0MtknMe0uS(;JOPqqmuA>V+M;eTMgv@JEww5
zkMFPkk=%+Ssno&m8_F$2W5OH6{&gvwAV2DR<`*K>NT1D1oK@!yX(&na`?xZZM>~P{
z;||lui{SO&)s|p^mrh~1SewU-zk1RLZzn4glH1A2Aw}4O0ra{cz2wOTGo0kg==wjK
zRWWFKzga7G3GFARp5IE65G>^|f<_S|(tNrjsR|heye_KILjfzA`+-JzI&PdfD^<JU
z6llo-;mNE3Qs!=`y!m&C+dcdb1Q65;henid!)3I6KZ-G>BB4Wf2UyRbn}G!xiJo<*
zXSt5}r)0vQ6^e7=0+}*$;{PBtECySXP3}3FFPEr?I^0~DzjT7l$ICCoAh^=djT)%K
z(&@-hu=BI+WJh2>#`UKM#?LYL%O`tClL8|LuGU9eNO%B`Ed*)uy}65;TKfD>Vn&p$
zD0m~=b&y8iFSzHo<+J09RB!XnKXR$JQli8K#9=vcOzA%ZF-i((Mk*4n=^&w#RhPBl
z@cEdT$YI@*Ni?Usoe12Z54Aq&PK%@|%A(hYx7ZFY)PzAntr<)8nsE3Ix1dTc69AY!
za9D_bi6F1yoALZ8>VCgj@$GaqtZ-_A_i;6$z!88YnGs@B2H9l6dIV!0$YIgn2(cnK
zLhQQF($Oa|XnW^Ns#uG@!rf-3y><T6t5vv&yo9mrDM1P!W$_;a;3E?A-cPRqW=+2l
z)cjM`4RH`!68Hn6D}E&0<yX@VuA_#b)KRt|d``M^^dy{9KpB#B8~VnU<twxQYM&q}
z8I^4*gP9}$R+mucoIq5X;@|N3YXbvn6E48Hyat_wRsz$Rv+<-pQ<QQ^I5J$O616cj
z6LI;B4}em53}I^CeFfy$Ul|bSPa{(O-_w<&aaUG#2v?<US3f_$ZTooM-znLDxJ2m1
zOI!2Mn!S?Q4wcYE_UV^aq4@Nw`NQ@isQT;SsPpwGe0<C(dJC?`w2ExPDY{9O3b)3b
z3_?965zJ@7%Kjokt2L0e;kLL%MOLcO6^*992%-Rbl)0}_F5avk+5v3mPqJ^yU{S47
zG0bcAx3p!6IWUR@EbiMA*-14Nbz2LhDLR0v$oI|`OPn|t7A>adgCo+JtPVpOyS&6N
z!^EWVL8x0-KIZdBj~M$UgRZh|2i#N8E?Tj#>zY6o>KoRqXDlGT{<ZTR51`!ioIIq}
zQ5!?cWVdT&2GpA0)G3j-1^Gg+#yBSp&ael-W5v1O2nc>nWv;MsL&qIqD6$VQxeT=E
z_EXBgS|G^Bpw`Qf(^N&vT5|D;aDCM0B!c}xzn`O^?5B>hTJ-KFAo8sBYXU?xBR#L8
zev|8!IMZdJk4E2N<TMI7hH#rx-W5kZ_VYXI-94tjpL%bAe@q_jZg1BVUcJBgQx`Qz
z>Tx0%@!SaNbp0YqjoJ_^2MdPliyxe#ORg~Pi~8E4-Vf)7UKEv_D|&C!A|Q{=%<V(l
zzz@4hOWsEh`PXKe&Bd68Fgw-_5RA_e+{9WvDhk02T)l}K27==f1e6iLT=haCfE+{W
z7}!5_ID)4TO&Do1K&hw?Ewp_0^A(<1W+&(CZ0#x<hW_=#fxp>ucT~$jF>M)63UkAY
z$?nJ_+bCz(7E?a*qMI#RAt2E_@UYK4KLSBKW-O9qir;<jefcSDNP`Hz$ECfzha4>|
zUP@KAAI2bLLg>{O`aUzDNm}tL?1!O*x!jhPbL#w`{=D(z+xfT#0`f{(`d9ZlrR-!>
zyF+)mWolF1OBhGUP_H3TbccGri#N-!XKLuTCOXugzu@)KdHTUZ6a^I#@0N~2T|~y)
zEBo#tW$DjZPuo26raW7+ou_eY9SyDDg<hzyH*~tED1F9?6LknWW;uy;6sFjo#I`|%
zSZytuiAhtco}*nHrTfzodd;^2LjXANf(*-)D-l+ah)R%<z7UrI4h7KaC$`_av~0im
zbLlDu#brcu@|zssy!Anb&{K|yAd|b}UiQ&5nZHf_*rizP@6mTppA)<0G9=tumWB5B
zBEfNjIS!Tcnh^C|Kh@yh0>=e3EvGFqG`Q@<%+FH!p$cvt9a`~Oxn<sm`4@Zm#YjLf
zQV2dIWCHKH!Kv6^405ebyqPP&o-JvLT%6`<#JD`nt2}Xj6HlEhliSodM?-J_$%W|h
zcUb2-?BAGyFo*EHk01Dr_}rDD^vSJ%Ax&mUbkN-^!BBX*gS^j$v;E_LCOqN8Q8oW}
zXnusS9RPFh(TT%PmE$2X4eV_->g#LXjMwjJcX7FOAM&hvod|wkVr11aEy{x(@-dA1
zXQMt*yWb0hX$Pg=^q<9KOv;T5YX5+3g;RR>hqGzY(b!76!45Kr<;4KNpNIs9cIYK`
zeeY|J+-Lscdr`|8(Veu-tNN%#&qU#V!g?;a<uzX_yMocj-(Ta#zWis~#OZ7DV~uN~
z*iXy&56Q1Fa=vAZ|56;2I<U8?4!(Qv2H=5On*vEg{`z`J3#6WR<?^Uc4q#3ny^=kk
zL~m4W(a7#PoiCQkbQ^)w8SHYAX0{mrIDxr$KKxh42uj0CLs{u74Z|t3d$e)Gxy6di
z+vBgH5qTVgR9+axs4X#jNV2lpa#dxnxR}r*P{A8@P#m_o-|3psk^#f9FT{raTjhKP
zzn?`|P)HQ`klTf9<QLTC9Tl^yvy%*$YX0+VrGIduLW@c5?r_H@=IIb}&w4I#x^#7Q
zw%MNuP7tEH-H`cPJ*3rUc>7?-Tdv2Kx;2kBm!L&2Q(MvwPAT_Z#iNT1DM#%&?$2fe
zQ1pKlwY8Z56y54-hD*Q<DG~HEgEyPMhx1V%X4+OJs{@wx+dsfZxa@ba%VnbX3rklM
z!R5k&j1ua@?T6&`j%>bOoeT!`(3uYu9AXiZe*;y5qUV&lAb^Hq17h{riTZ2hC-ebl
zp99kIiH6CQ&QCg(I4rJB&rnZ}8g(o1Ckc_G7w?sdF`SWIn%>-v16Outi5Nke{n7RV
z7H`<*oat2oVKg=ED|YBdxk(q@jfF-t4vhqI(=VcAIKZl%u!Tq&1Pm43Eu_5#YYlqb
z)JQc*soerDegEtkSA47@OAfAvZW4L-V`LSZ-gA-kxHm2rTT1!;lK|RdOx<<aqk<ih
zVenJFq3N(~v>cLq3~aTS0elJLs8M~2gnwTEeF#|!=4n-3(bfR%eb*P^xU=~Yi?m5J
zCXn=)?$2+o1={3*Wd}|2dKHHX1nbn%go?%x08y=wpGZLfC>EIYQe)h(*3jgYNUp1`
zHB(BF$-Eah2|(-YlE2QCB<xtc#^wA<ppUuZOaGmTd()4wIOhbDkkh2#0E_bxaV<bI
zX1!h+ZQFfa$aIpSS^A=#!Lf{@e!_{9xPDKM2x&PF_~j3^9GUz6XDUz5Lg?>|Up7fi
z?Yoz9TT&Lmx?SQ<eCWfb0i8UZzHV6>#pZL3o!*0V96AzQf+i3(f{pvA<F+ys^41vn
zZ_}ln`P;B~i*%3`1CLDT!Vp#vJjEru^ntU*I)Zrsg#B2IA$Z65T`7jspBe(NZtLbs
z>Ky2`;&DuF20RxpFAew@<Qi_7G#z;V`Qh+6S;YW!RIRS5cy%|F4ydB);>3^SVRTi0
z7BV#wF61$rig=>#?Z7tF_5mv*<Q`A$gZ#L_J>=5yFH%xt)q1LbRN)j-f;6dL&t0cc
z7HNZr3Tyj1+FulM4aO2s7LPQ1Dg$gJ1PI*%SQG+lPl{nlyqRvky|N&~V1V~ay%<I=
zq7W9gY0Im5X&s`}y4m{|S+uunEHLVrH{cj%TXLLKE)j(lz5Lp8pfn*c9Odi_>@0X)
zA^>H19rorg$5$SH>&tR*j|dRgEZfly0E<nl=cS?9q13cP=QLWT4*8XezI(a2MhhZd
zIC4Mu8BAn*%YIf^ASx#K4jzCK(PuImO1<A_7lw)ar@ss~<yC_oacT%v$r#idtJV#m
z=%JwSnnjjci*~;groyaec4(IoWqPsqhA5Co>TOxsnz9eSe;X;}cM#Ug`NlIe9K$39
zhF2KDWYwFAZ9}aWyr)FSV_X<k99B-FQTz5K{T}gsM{{Qu8wFNGyL_YUS&)pR<YZDi
z&_47py0-1M+V~~Pn5Ns4nIG1Tyr<)8gJ(#RMMaeF%gTPR-t@BVkC91kQZJ+KvCZU5
znezaRlmEQ|Wqcd&BG9o{5j9C37qsL&4QmkjO%Zu=nGK0C10>KU_EJykNrcKX0*W`t
z76J3`?yx^4CcXE!0NHOr4ALT$X5mdWMOVD1caIMEAiA6|iIO1>vda^4Oj3@O5>&w&
z4J4QXnR{g#<<F0_WYeZ&s4+Gb(d8u=`sLr`etcw`DVTmtg*n=S@i{0~oyD4ALaX?*
zi|qX#u!6j3bZFbw&>eQfSR1_e;s9b?t@g2c?s>p#OrL7f9F~R7lI!`ncK(}=5#~;V
zWu_y&(E)}viR2~iv!y+=WC$6Cq8~^5A)-LVFb?H!PkfzHRfh05g8UzaoQ}MoVtS5_
zuF2c|rgtIhTdv-jGE1YMBfM!xe{5VB_3n&`UE)^yD%XEJxpzH+72U2E$vVSdkea`i
z<}GN}BDtshA7^g?7RS=93lHw@?!nzXxVyW%Gq@81Bn0;m+y)N>cX#(7A-D$jgpk|p
zZ-3|RbI<+%=bXEkx2n2ity-niJ-rH1J!$yRtCe1jXD@fo)9*Y1_xkY$<+8lD(*pPk
zWLLP)WM&a$&9WVGZ-M=hmMbu`qr=pQ9fjjdiH6Jo{FWP5eV3hVef=_p-G_QBZZ4Vb
z?G&meC?=O%v~0+rz`QhnbhjGrw?nNWA6^NVqA&WRXts0x`5gp!l}6wwyH?><jvij`
zHa1#<^ypHLO1h*`$<~;N)7QZEf$@{q4FoH?^2SN)WffEi@t!vA>+3Gprlvl$Hhja$
zoYZX{tA%AF0`1S-f^8mQD3OuJs9s;0H24E?_go!yxc8dfU^81UM?pF&AYq|m?lnEX
z-HJeQfn0l@z=Yb<<I?O0JQBYr0t0iZP7kKfLisW8>x%p%sibnTJRIqju~0rv4}C%2
z1Rmk}S)%bBe=5B)&{?JW6bK?+=Z+$}F?%p^Y;dpl=ugwO&c>w|;SNh7&=JC_lyy0x
z0$xYJAq4r3GkqAS{PIh}3_U328`(o^D;~VksYe7>sG#rNANq{rFenT!tzWO1H1L?T
zwTWzC<&hmNKN!BEzS|5R+ohqit~h<~AzCibz@%WEU;51gpCR3dU1E)f!8I#WkH@pZ
zsX3|c!r@^_c#RHIDU3E_;($8RFl=U-i3iaXJ3pb5pej*K$>2m7Wkxdxvq%Y%>8*Z%
zp55J_sk0udbe)TXalu#u2_l^AeO5mZcOoej(RlOk<Dlp{QZj6|Swt^q;4yig4(9@T
z-ysg?sw3a9QRg=?Dk)9)u7L5F(5w^oN9~82$eD`J{p7;!ZpX?e&M<_`p}s!jRKlKD
z#ct`K;fOxYh=))_Yt$BwP59UT5x+hra{-JcfyLkW+P^Q~Te_!1VTiY-`vbIN+hFFU
z9ABxm2ZU4~>f7|g+9<`Q%`?U(ygE6S{LVFK&{^Np>XIC%?`1Fm-(b)|pvV*#H#Z;P
z!r8^g-ukcT|8QUqK_FOE5EL-o{v!?u{HKfmdj0yJdH-t|8rZasygV(OfFxrtr@v&v
z{3F}n+yS}&o1p%R{GZ9CwXyaB11v~woWWjyvjRB4JOT*&mk!VtF4hhfKpLfs_5Z1R
zdl(4R_gZJ*uad0x*3O=P^8kU}yj}kte(|+{YioH6S8HdRmpss@E)K4?KmZf$@}HQ}
zTK_Aa)Y{YLCH;k7R6_Okbf)}Q7-|OWWeE%!kR#X&{O`_q$z$l^&ht{y7kat=7eRx7
zK>z~1R23jT8?g0@!hm{VVRS$?SimQEjrS4-jYRhXI3NZND^Yh31P_FufUW>hg1!D~
zroVCl4hPWXFJV9m^lQK;1!@93!}yC{B)@?3Z~rTh7VuZfznqtN0s!#;0I*hr6aijT
z073v%0~iAU0YC<@1BMt>D}WsUEdUAuQ~{_30Pu#=000aXD0u)b0D#tkdILZifEfTi
z0D!p#R1kodd@t8F02KcAjR0R005AlgfHe?G9DptWJ^(;>L9qe=>J23b;HC9G1Hc7)
zS-AoJ3%%&e0Du^5=WhLS;pyi5(nBw82leL<;F5wZ?c4$X-zooSp*MWq)?OCCnI~*6
zHZT5PMD@?X1Pnk=3wQSyj{m0MM~8onSc!613qWO%AaF{~OW_yBAaxrXPf9s|S1(E}
zZwD_MN>?{FN=_C^H+MEl9zG#T1vW|*H&0gwS34jtZMlS|HsF)~lYxx2kA<f-rJSdO
z%}XBMatmimz-Rqup8sDVKxT?^JDZm|K=98((%zO}FPoQ^p!D)|dPyeyI~fT6MSm#(
zgvhNOz%SDu|NlsTX;To0y4>2rAMlC)$()OWlZ%x@fR&RMNTDnDa(n3?vVZ0P4iT~i
z4iVzw`0EfM;Ab*cfPhS-E;bf_%~vZo7q*wCwqbM7_I9;->1-;Xfq}sS0;za|9jqih
zEgW0}C?!0-9Kc?b3NQ1I=bsWdIJvC^Y<MkMt@*huSb40hxmg9QZERTitoV4W`8c_F
z1-Q6@GJgLJ!Ib}3!OoW6F8>#~7W{mC))oSmtODHJe5^eD78a})+<;teeoiYZ9spMS
zFRk+bELYpp!piCYBG=NIi_^l2M}U=w&l+%S_yt%6xp-|^tp%;DxGcB?dH8sNSp+Kn
zZ|F<^|E=#oo7>=j+T6mtmOR${)?C)C+<exytUQ+7KplB)xLGX(`FOavd2D&PI9}G;
zxBrbg;{3ag$_i34s#-EYF_nMTN7~!P#h=pI!OF%JY$HTz@8#t##LjNzX=CB#;9~=f
zE*CdfFq@mF9sA#T!0eX(tY8av9yShkU_AC)x%mJqj(_{#Owj-Vpg&*#Y=STqWff#W
zPyn$&u>f&fT(mNN4nVyX6qrCS3n(0j7z*yM`423mAd<hsz_JEnfP(oe{$=WL0t-4S
z;2Q$q0>Zd}|DycM63qh4y_f0tZ(mM9MV*ohm?~@nAYg6@3UP7>ad1%rE)RzgH{Xj?
zDA>PByf{#QhhLUEXh7o2e!U3*=5OhLE%^Tk<NY0e$p;1fFFyM~82axp-^)$`5aM5d
z|EUdLstHK^vj&m^A;QBWz{4RTARr(iAtIyVqM@Ropb}x@VBnGwQ;?Gplaf->ve8pg
zv(S)|GVn99aB%YQ@KDeTiVARvuyONny)c17LPA1CK_x^(BjlnYrQ-S@)1Mv?79!{m
zaJ&Z;H3%9D3I+@6&j5%5s3+V@kNxYb$%`^j&@ixY@Cb-V$S6RDM$DI%f`NvGfrEnu
zc2uZfARPpY1&2+=DFKh8VSzyHfy))1RDeh$S=WoFIeS6NZRz<22^pV&kcgP>6+HtZ
z6Av#Rzkr~Sl(dYjoV<dfmbQ+rp1y&hm9>qnoxKC_9l_hj*Uvv7;%#J9^t<;l$tkI6
z=^2?HvkHrfOG+VS<rQD*8ycIMTUy)t`UeJwhDS!n=H?d`mzKY-tZr@Z?C$L!93CBC
zUR~eZ-rYYu{(RBvMbCfJi&p<dFDyVWXjoVnScDh7prCzU6vu*vqvC|eme4@3@W7$w
z3P;41Oe(1BMWW%>yuh>coJGc`<=LXUd{ON$&Hj6ez4?FA>^~Iy-+HZrP+_2e&V#`M
ziG!l{rAXfN3y2_>)6HZ1@{5KQcV;#er)ZD=^b~c98`nCbLgQuqD3>nk@u<mCY(<|{
zMImr=F1ypdnl`R(M3Cz$QG$JNwn)Q>6030+)*>9J;eKbc(8^G(U3$35w{<gV%gqff
zCuu*5j3H1mK|V^H^sSQ5AHFbIWy&YJ{Mj2<UfU*dGrplNJFJkj_ITlp4z^K}Zx7sl
zT|%1-FSOXr#z>3A4NIw=09OXJI5a5WYOlDxA9MKHv)zx@YAN@$Gh-ZK9;CI~UaSAC
zLA68k>f`S+XeiKXu!rhlj%hh|b#~3$NAZU<NBL7atGxzkU)pL-6HUL=G9RMd<V6&-
zu}4;B?wz{ALqXed%MFKD;%)S~`P$Vs!f+%cS5;rn_8&c%-2-4$gJnHeHe`jaWo85>
zvdbgf&HcpEP?Lvd)B3G{sq+%?W#2yEIlOmIKA4Ebr+K5w&@vaSKDm`Zbn-pMH=7^?
zoG5^sC};mG_DklpMea?vwK<Y3_VtMA0@CWwIPO~W3cpFt66Z+vY~%zQ4^d9#brgJr
zM&`OJsv~X&L4ir(34c<Hu2V^P$=_gkaA)1x>W4akQic6os1eu$o+w$nRSbkqS=>!@
z2C4h^G!Zdua!eF=Z;)u4FvtRZA^o2|M3Z~U76goZozzL!age;gMfE;;O%(w=ScNIL
zFWlTTN+q;HyL*@COG~r6_>R}9GEkT53M+!W4lj2TI>OD>-s+Peh_KXlC(yXwXUDJK
zL+4}k&WV<>VCW|(y+)mL4c4g<Rs{H-UWhA97Zc01qH3Tfk9=YsO}qo{?zP5l0>shN
zt|h+``;5}XI7xF5XRJV{{pWnukKGog*N+NA!H3CPn^rJr1qwtk)v$tIGQafRMdK(A
zlT{GWV{yZ>;0SK!I`J78sw&)VCkj%&QP^3^8PWcBHm>Hix%oyrp4;dd`%6R1FP+ox
z>7$OV$WLYWG@YJ%pJ-^q<C(RjvNR5Q;eNP__Wii}$Yo8wnC7TejbVpSN!_kd`t66W
z@7;wG#27bbRW=ZN%<^5(`X3M)cmuylDYFrc>zK|U*74W`WJ442o6$1bAW}z5H%YN(
z5Gv$&ff?fH@m=)znEsSKan5CTzcxzeeWajP*Dq460Zk2$gYOH+yeNSre)J2Ph{#ps
z@^H9uYnP9=6p`AOWN+PyOc7a=O3(<+*r?iJQE&EZZN4m8H(${%7!<O1JDBp@2|gXR
zwlA}=mb4OQ$I2q<7~}I|jd^f5>UDO?5Z9^%{sDcgw@xy(=jg}F=6s|@NzM9>I-09k
zw_hcqz`9Xj=M7maiR@syRM-P~27otOF&a+@@Jm;fjs{SD@GLz>4|siS7IRl9KWV`u
zUiRCOdLgV9*fbva;x}K<+uh$V6>kw#C3lz4e=|5@6@AdRG|D`!9c_kz#U}Z>j8Rmb
z)_9x!GeSzVAuQ^(FRti^_{FmE3KJ6*Z+r+=y8VFL9(rXgl<~HsPZsa`-D*wzva;9~
z_9@KGelsNOv+O6$cC~4B$h+dgWzng#6Xh>M#rNuly`W|-+?m0lIfZqE8qP=U?YX|W
z{!_m6Sz{5tH}buv#uVGsEhbvqu=TxnN`ahkm3=hGBpxu`yo%yPW<#^ebihsYQ_B>>
zx10MKeREFD_?iv9=Vtm<nQH3*7M~{m#I@ojzDpA`BLXG@68WPW$TtTen+{Ktl9Hx1
zKNH2%&2Cs2Q-6nT6FIHLuGLq}EX>!+yKu2qrJ~1v9SUXZzbgpOr0YJ4j1tvW49A1N
zdMrHaRE*c5ReL=?jou|bgG(-+Bkg}W>osFaiKK`v8hp2`IGAs(rpZ72ygPIuhcfEk
zD^HIq@vC*Z(Okwi*uw(Wqp_U@>_0nJM9cr60p@FTzvP}o!csY)2U)cJ0U1_&bmh|W
zRJlDlahoB3h4wvrxn<s~#g*04gjz6ivR~RKC5^m0((0&b)!@>2ReMPZj3ci@Ye$(6
zBS7A8<SmZHqe(rDd~P{V80HzUT~}S*s6=wp9yWYHFF7n4`rB(OeS1-m(e%`z@_VcL
zfM$KC%zX}BTKs#kU9i_rowwvF!%4p$Gv$UoooF=b>JsGUYbf9F{!$sQ{KCmJo)R0V
z#qyc=n~-2SZj%L1l-@@E(@?RAmFX|;z7wa$4}3v&iK+ns-epl{ac>`!UCi3QLf%2<
z9G=EZ=^Eek8>b^;Qp0M(2g^B5_6H}$Gpp$@+>)%lX4`JoXd#;|Lk%hYl3CYGBcd0~
zpdHCeTro+km6fffx_h0{PKMAZp{W|`w{nu32LGdpK@_nXfmk_9R_q4dFTX()+=9s!
z%(PlOo9~YW&duA=*<8V~Sx-;~OV_8fjr~wUSFoCdZCd+6=ky-`wMO4B#xh9So}j4k
z?rj-A*7^(yJ?=-181mL3gcCJ&Rlnbkukt+^NMy>hBp=+{!^p%^ds6%>SzD}l{J`O}
z!4hSjY5|8&yyo`?A8i=wCI~CyjrMM<83)G{Xi|vikkRTxRZ>oggSa@yzg(Z{HtB?g
zW3mYp!OV3=7S>%|<$N3a<wP@Jkf5Smb2`t^BS5Qrhmc<rI+zUG*sS>}LfB{8F{Wn5
zxlQa=I%-WZzE1knLc2A3{!WVCnR8KRc)sTv$;=L3T+vAB^D3QMDotX6I|AP9x*Yc!
z*V_2*nBJb}r?4mHPskbde1pO&<Q_Hlp9|&b64c%DQZ;?Lj|{j>O&mF^_%(SZ@{U)c
z<evhT^(y?prroIx_v!b9gqlaq_IEomeG46&6%I|MTLW&yK@*q!%(oTE!Ei*cY9{nz
zBs0y$R2l2BTjGo;DVDNK(pDZH+jcsIczw_)AL9eB4NexSM-BI7n(&h@$$jO)al3b7
zea&8W_4-M~s|T7ns=9=-G-jcp)q3*{enmOfOH?_!G83G!mTH#Z;T<C|@P3#|Ji=Ul
zlz>UBFJ>ClV(P7cc(n_hi$Utz3USjtfiF6>ebxxp)oFsqPi#MmG^b%gZR81SnsV{q
zj)RLqGFbCJmZqfkH@G6PVpEOdhEH-4mYRu=R~i0*f`x{TEA$0-?F2?{Ysz@*?eLTi
z=juo(zxC~8#SZY3Gp(3>71+GOsOC)Bue{;zij*S88R12J*UlH4qPx54p^>`UfF$Z_
zaeN6^J4!ZuT_tN-%UKg)LOA~^;(icZ1$JHBw|wS4<T_~+=NjBKHR)%7A=+HDEGFHq
zGU0HFc;k*H`SmDk$F33nN0fF_8IzJ1Zcp*NQ9QT&jAl=EJR=ulX^bB50;BOfqa1t+
zv&F)uU+KZC7#z$WF{dJA*ADlD2lxGdK)@ThsP_~(zG6sf59!89qu0Y~_fC~4Pf}A8
ze?Z^zMh>;HR&#2-%lU9#O9m{LfcG_U7;3-+u)n+J#8YdA=!_r&HEAiJ?bhHRJHs$;
z4((`q*m%gz(Hh?LJD<|2Y_3k}5gyMSgE+28zHTPb_GPUG;_VJz!Mwo~*~tO?;RMsy
z&xP%Y9WnYgjsXb-%nOu^gK{iLEGnc)=dzpShmJ=Y^VFGo&~4~e?=N$5QVk`y@eHzL
z<VSjj_m*1G_|)o+2dUl?KJ^R|fs=BbW}mc**~$wi_;Hg#wsHssFuWs&LOjiCq?(GT
zc_&21WU*b@VB@r#Wckzn6M~Rvm2x?j)92XqjKtK(&17djjC)l9@q*9%3#Xfn9ijCZ
z`lI`d2-8>;eQHv-=O&R8V8>)-su`BtRW`Kmlkgnw?%)(-(S<Vlv~2~E^s$1ZX0M%y
z-%g70hhs>PayP~H=dn&47KwvZUFw5(qZEF>g_b33{H-8m?deB$Icxq|79AOfigLZD
z3rWT$9bXe4V{sJ{vTtEl8~1{#ncY~OS3VAtXc#A*bauIo)yGyDZwH`fl*^TsE^-m+
z!L90dbR0m&QxYZ?mlUrnO?;RcHt~IZ)yD)ZxDgWU57A|v%A*H$uSfR=QATi~&x&2l
zAP;)l%!8GpQ^={bIXiVVm)Y@5{3Ox5cE}g+xpdU-hvpxNtxBDoGS{?V22kQSyT9X&
zr98*qE<ePDZfoxPcs!jXtjaXxog-g+m=WC&*<FO#9Q8p%$LCbkX$DvH=aV5hhvIXf
zaf5DaWCJ;Tq?r@tCuv?`7=qpXcvfX2gtudS1SbiL$8g*_VKEH7VPRGi(Lm%4XAig=
zIgAp5lOTBv8JfLm-c>)1vout`rME`%zjj+bfj$FwfVabjTdVf-d$ypYnXH>`)bA^y
zHr*L45;SYA9X+8Dx!>Zvwo(pS_iWR!A!9COf=6nU;Axs{t88s0up84pQQ^lXgs(MR
zatFpu&1K(-c3S68n=+?}CG&|yaj{14x7*jN{4`4U>K0PzPmYY`-b0Y8759m(k+7i}
z{b6@^Zfo)s7vY|$4WMPups=8oFih1<Jyu&fowVcG@l0eyHZ-fk5Y*)<8OQ`{0?xB?
zqh-nYatj}*vDjl8iDsI5UExVSvxq-r-H>%H9*E&DoO*>~n!O*GU`vw@)UFdbn9*|r
zS3k-!oK~^9+NEyMs1t~Ij~?kMD!k5`b#<QMd}Gh#acW%f5NXebPw``A93x%l8W-1j
z=d!x&_G68fclBG%&z`P5!<)E&Kti)BqOqjJ>mgOj0Wv3_H}pwkZ+?}wR+3pNi848T
zloT$8Ei42nc?{2!E)7+Rm9QoGRXaGon`sg6wx!t<i(#JrU?!IKg>s%qyGoIO{v3|}
zYFb23)GeO9ZZW!<Hs#nSJ*y<+9Z!)>nRBC4+V7Rvi{Ms5*d>g(sx2dZ)+$OLC6>oh
zf%rwOk#S#MO*O=acqb!7S4#)hq)}@*k|Koi(YwmzhmQ>o7Im|q@wcpWwLV!<rKH5B
zQ{sd#w;si4luweKX>U2$d*~TS%e!xV<dA}T{LLh6GP2=ljoCty5b$HnVS`mE+S^IE
zF0NHZKO>t$Q}BSO#+xTt63wL{5qC=1j`A{ZK{F<(M5V@(@FUGTN(q*gbtQCeLwuoc
zi$$34F+(@$#I|lpy{kT+)|fBQH|c;yP<8Im)+4@Zou1R{j!(&=gLwIzw3X^bar!g(
zGbUVV(IWbVi=dy!23vocBY(FU6>%3gybjdA#YmPvdljkYz^ynC?~ed7$B-~ha%nTt
zFAlOUJM`qft!d+SarD0}U)7VPe-F=NAZM=kxJ<OPVOFv1vHkWB=snPBI?t9ZGSe%2
zJ8jE+bQ^N@>3={7`=++vmh*-pRk^+n3ii2LoNHi%6BPGF{eH;4rVoFZa~F!yBFUWi
z@CK@v=v>9Elt~2#^L9IiA-@<mI$YxBTxB0(5pG_@@)~BTzQ$X$RbTM5twxa_m(*KS
zR!&M&dP>1!FD@Sw)+u4<?ylNAWidB|tz-L<rXZX&dUE|>f7n=Sv#q5uTg8nfsYQe<
z?>cLtRfoHtL)UUpp$8_)VkVfuoF-nfEP5XXQm-eOVKuSWT36uL`QtNc27ZOLH}aJ<
zUp<Dq0Pm`tKjfsI8cp$x$T+B6s0Qf<0VZ$c_A_4sg`-IYKayUzTDEpNedq`3QD>4`
z2&x=Og`LJ#Hx&czv|iKfInN`~`%UolBsJzn7o^iYYdGvl!q=N_%B7S=fl`rsl)m7z
zJmwF=7z1s)=YZxbK}eEEJ%v+HXfvVP#k2PTORrIAPq(eV;zQto?j+*#m~9d|KU3wU
z+9mVxyzu~B+6@vho4!%vU>ijy>du<LXJzYF`aLKA&<!~8BuCh0`w)A=&}BxLKOoUY
zW{%{;>SKNt(P<QW+VC%yiB>hcG~ziv0SNE+5|lYQmS$O0;^vq~CLf?V6RHC!a&RMl
zQzK!bm+VZ1GF5`Nev?1*!>>{sTX}9FQA{;OSyca!K9V_{5?8-WwNp(;qKYyoiA&~t
z-<~U|HFkSj>Sw#vU|{r1=A$tbG>tjeL2_`*iJ_htdY(+o?or~JS=FIVVVgjbtPmra
zqZyjM9BbNyP+Z5A;uh4k6;)IC^yJrr*Z|#I=JMX}mJYpA(&Wrbyf$B&O)y*r^h)M~
z>`ASNc0`e2ub(G9@I$Z{&Rm^;WUVS0W!QdWDU%Fe06#8!J9(phf4^HF`_B0X4HBs%
zXL3NEN4z-kSBEWsn@G|RA53B~Z)r&R#D!wO?s3Vy9%{Pa0JX^T2H{U@b~d?F8WEI3
z3OAJ3F(p=okETKjuyf;tu?qWEQNoBlPnAu%HpE_^Y}R+YEHZDMPoKR9jh*h6vP$D4
zZHx}r<vdVc;i+%=iC60g@@g%-%Ba7=U+tThTfS{i;VIcd?e_qYo#g)Z=N(3|zu(__
z8i>c>fD;`h3l%!wpF3^L0qZrk!;INUq`~-(MJz*>H(FJc)MD0@V)P?E(nqF{v@nsq
z-t^vXPO<f<Q&R5EB57G#PmbwrdPV3;cA<(y_Jw)QOGWCJ>@0=T>9AfBVZ@>2jd-L#
zV^Y;l0{VkBOOMBs+-*&BAMwtoLvy~hqztFgH}X&Ifq6p>5as~V#r(YT`G;bx0<~My
zP~z*0P!IM+r<o_6KOjn!T=Dkl9aAsyMI{40U%QfwO3lYCT72huS{m}Mo3e)xS%+Wm
zANkn8u~4H`Y6|?GWfZ(-z-rk@{|6-Z_VoFhtgwv?r(d3L-8A1)Ra!3p=du|pVg)Yy
z_zYAJUcVN8dZHe8E|r|L$5I!()wS^k)+sh{Z`hR!KR+@)?iGCh`40%kBw(mQ@LBu2
zF*zJ~tW))Xd0-(}mF>Pa%cRQG>KJ>i#vLUQ{NT+S`;4EpMb@y^9=M(7k9lfyGs63I
zh=u)C^1eT<e>1MkaasOO__=;SPS>QaV8eLkW~&UH$pfjUM%Z5X{cq+{?A#2ic<PE1
za8mM;ll~dpfC|ZQ?0W)OYhLXz0*iPBm|IqpyU!$!>Gs~tk?%7>8l((bx1ym!ds;GC
z8ynl(3f!ogOhuQ!`cyfGLo);QREawrS^2p?)6-AfaI#4e^u1A1mLCqyo*Q=ole+B7
zTCK0FhosH>*@}u$F1IB&)D<R?ntM?tyaG<8P0uKEjYr&jA2!zRMgFz2T%$TE+cNin
z3>VIIc_O%azeZq0oa0=tflO%sdSF|g=9(tzBq(79M6%R);{tEgWG2R=%YwoTtym_A
zDh#dSd&kFN(7R_OT~{thC8xE%B#^Ca-m3e9bs-0)PH;zL8-f+oA`&C5>^rI4?bESW
z`-w(BEr5-2;$5KDwMIMCM#Y`<w?qX(v-Z4Fr<lv(_Xo45MPKU0Ox8E+KDjEgH+L)k
z$kJVxr>^Z#D;)mp;3+wRzXyL<JWRQH`E+crU2>|G%sSZM&-=zPV5$<Xihx^mV7i~k
zC;>bfh@MfnVV{T+_~E`wmWXXLf+PSYSNqqsY2fA^F|FZH&E@m+6el)38CkqQ%|UP5
z$;nUUsI6-c5{uz0-XGhP6<Qv$m>njAmq>i8M(eUazDSStwxtn0cB?M#x22uPRg4BZ
z1b#|OtXDu1*7i2ZzdPgz238jo`Ol}jwP`VrbxmqPq{zFcK?smx*1@Wa$E7a}el;+b
z^3&dKW@9b280qYphiRwQ4o4xc>K9M3g`F6)bSOs(IV3`gf1;}$86(6(a<2zGqr+Zb
z4isn!io_o99uliGHoZp_3JP&)r}$naI8Evw9vn^TLm#sn<V*K{@kb5o?(d`6s-(;n
z5;ye$Oi>k|Ij2<<qESP9YcZlrEvc%;p%URoE@@w`*z8SED3z|}o^qCVtC)rS`^T28
z9FMG>GhA638<^77tnH&M&OBaz#2!@i03V8YW(Vd&J6ByV;?gwStU37;!scFN0thxg
z-Uqb3se~XyYAe^)o4X1vM*^G<n__bufrEvE$EE#@%2k#-PZP;6{+{M<TBl2x6~!!G
z6~`awxBN1DtJ06THmkph-g;MqLOIL`Y%or3%QfaH{nvEe>17^$Nxjp`dPuX@<c+-K
z5L={>)1O(wVIc@RMy8}+_z7&cUn8ouCvDV4Pw-WQCk;7O&uCaQ>ueAn5Si|`aHf$m
z9xa@H`Z9A=s3~-%V&8W}e8r{aI2OOpFl3X?W4y!G8=7Mhv%k`!lxcKCop)mD^6FkL
zN8?y^%BYz<bwBozq`r4M6||Y^?d-kUvvb8u$u#RiQ=%EU)=D6l1bJ|r+SopJGO)&S
zb>Qdh5p~L0VCO+luzfS=lKUO?7p<+UyueOG(nh0*^1YC>uO8phb8zPv;ThF5^YfB$
z!k(#bxf8u^Qw*mA@f4!wj7+TyOnA6yHNmL^<jNvMH$b<*DgQWxqNPLLCgVPEqExay
zxaTO($~54PyPs)g?J-3jTJbpYeGh$eND-t&t7%asHwUe%>8c~d$^YGtUZVn#`9W+*
zBSZ{>Uqskm`-ShGN|9?#jH4*oUCi}2c(nnds%|Rp+c_1{*F`#ec9Y^=@v&pks#VM!
zUSZIA-9CgU87(U$`JOE_R#6+n(`mdRC*VNo<6ZkGO5R7Z(Zi6=;FCqK&$tpbNA1ql
zXl<2nN%j2{XV<EoYBmJ)bsQbJkvSwPAJo3+TOzbt>NlTkG~tBnSh|8L?coJKBPr#q
z&q<dR-#|7a_mio)vu_~A6D0W{%eDnQ8eeXgjREv0b6uZ;V6wD!6+Xpy=(16(qXfg+
ztJtKC`t#d3X1SL4pU-ekS)Z#B*VO}dmN&kXC@kf)c{6sI#KV{_2N_}iE<c6T)=!VV
zg*i%=aefdVOsJM!;$JtF=BJ4l86=$EW^PDh<;~%o?Nf0R^289Ay8Vpzp7vroR`-=9
zT4#@Du=XF&ZCpT_djmvah-s3jyx}pvawxIis!-Lk2WSpovwU8HzR?x$51EquX>{GR
zs9`;^b|;h0e(fsHvop3|+l${3$#rr6W=7Zwl>fPKiTJH(^$R{3Zp2WikiKG#m&k01
zevO+}YfBzEol(%`oo(n-=pRtEsmu0hpk{(mXI*n=y0G7xy>`#<fMo;nini#4(yviG
z&F|K@g`rx<ISHSjYG4Lu8%!A&=KXE4Z)p}VE-U)xcW3jnKjT@|UEmF**eg!}CRJO$
z;O6l8>l&kBY>_VJRDoY*nWCP2G4l_BL0E3AL<yS5;!t^e2DyT64;9us&-z1hzpt3}
zD|M|!9STd+3-{INwyq_1hz1=;^QC8HzeurZQ92_Oh(7GsdW}cGEpSCyL?1X%Znx{U
zTed1y7HdseOZHzg*;jhqFd7u$1@T*Qx0cF0AB_ykdYN!oXd3tlj(R**8jthDA|Eqt
zhWfDsTXVG0@UE%Eu=4QoZP`JFhbP+*c(vEfaUVafzSk=5n`4py>}|Ev?H|zV^<&sf
zBH*aAgQMS0gn3Dwbu#CzYmvGM6AN!VGe|z*9V4O4uQv0bZ0$7w&zI&!ubh%wbLC5*
zaF}HEf6Y@Z>>5=y#35t784<+et=(9~XDacNX=(7<;LThgc5p2ARL<c(HLhPPw(u>s
zPI==F)>XN&^~P>(mDY&1RL|4MtET-7o5GzhKihhB@7nuwS4X{w$z5Gw?Zd*-1s7fO
zJA-fiX%Txm;{KoViOx+Sq|2~dWBJe9HxydG;rz}%h^EDt<KDCF^Cog$&2SD0oSTLd
z#CdUt&9_n9ZPDcQwbZ3Lwq+>1*^@skd2a(}4Js$3yrHh_FLcnYnloCX<>J?k^T;Y9
zh~ZJl+|h~*&P;o@Eb6>;jWf4`Kbf{WthMMiO&cZV#am|EEOGgektJFJm;_G}T3cmD
zyb&iZf;>nm&X+jgBa!C9$gkDiRHJe0ep%eUcHT#eFI&elq%#gfzQ5r`n#$U1H<d9t
zvoW?0P%fJj&34vnr#xt4>dYzjsjK3Yts8D>THHkL_TZW@WLTq8r6A+h;9Dd-H*R!n
zKC72M^|UdszRF%~`A(BHbu_6)nyrDf663fZ<wsaL@|~R*lojzxj<>r(mwS)0wKZmG
z!{{SAHZ9BI*3VK1Us3sFAPw1-*w(bfk?F^s_IjtS1a_Z!Zw9USb_BC!yxj_<9oXzm
zz2-2;xZ-&^jwth1Q|%m4!>Ab;s!QY-DaC<)DE8@O^LtJ2oyoU+!OMR@%Q_thj1fb8
zq!b&jYLhB1LHY><hE5pUF*3hpyy<ME)8dB~-d9`N9t1?(ZdW`Azji@9zIXNMr_KD3
z{S=WL%B}0{_a)q8j`vxz`Z48$V1A4ms|_JGRC4Zi2MZgOM%iPNos4{|oYZLH0!><D
zJr7#jvHHbGKM99XVjw98&56G6d`7Fk>E<+Ti>;^d(jU+VFZ-KVl~+~wdR$|^eLXO-
z-U2lt2kH&UeZql(bOs#K$tmOf)qy-&$p`V%KaXwbaa&FIm&5;nc6mL>g?a`s0y2i{
zPM4`t+Sgu%q9z=vKOjS~za#C=EbbfPdnUc7NHe&66ki*~?7cdjaR;BMISvdP+OfQS
zl%g;^^E$_L&@}AH(8KEIc#VD$n&Un`;gO&z<4ukiKXx@27+C3*ROHf=Ml`5no$cDk
z-x*&j{0XTC)7VfcW!`W4L{q^HN-8sP(+fngXMpoyB%SH1U;Or#B`&5fPgb9f(W1iS
zvjC9*d~2)u&$M%I+5IA1$-d1h3B{d6ffM8PXsG8#hlX#8t1DS1G8+`zk{IG~+9B$>
zU1<um4Zgze%X@6KXt{zFSACK0{etC&l18)`d&;)37fkV$^hMmR8e5h$w8&NLbUmaY
z)D7$xl;2ZY$QP56%|zSvq{)^bDKQE4Wpl57$r|m)sdWlZOWhajtW?yU$nhGN9cbBx
zx4$dxDZ%xH$(yQixZfWKODBy{kaP^J%gxn>Kh`M{WfWoEl#Cdb*OazRw0~fDZ=C&9
zrJb-;^`SB|%sO{Ztzw-QywxpktVyJQz_K2=(9-+|gsNHAPNqz}QRzx3S7rj4&<CwW
z8{bzZJydGh4Ng^aj8bq!A`b5vYqX?>j>}R=Dcy~>jOQ|uA$D$eZFg2&3#V*Xre!!R
zS|h7%{1VCzA*?LlmZJ<Ec)Ys@o>fyU=w&yq52Wl<j3t^V<(eeyXx%!RjdX3BnDGT@
zKGa+7{Ic}dD>JJrj1tTH9Wc5OLhYClGh-x2R_yGPuJ&={(4Tkcu}W2m!qp)^QDPcd
zyqZF%@Y}j>*umGE=@<fbTw<FpPmtiWR%~db|A_nRY31uF=9y=vJ_DZ7Fgn$}>2ADz
ze^D-ky6VCPbf5Tp<(9fn16i-<&F$$GcGmf=@yI+LY#X{5f4G>*zN-aAO{pn=iHY74
zabx@Jb&4%ih$_sc*yPcBsvSb#kkQ55+!#iXEC5;+6r>lQD`AHHwzBGIxRg_{M%CV;
zLkML>!OcG#I#R=|emPWGEx*)8SKkLo;FL9^F#TZAL{6BjaaXPK?NcODvf8$aSNduY
z-{sr)(D|+)5_$69U{f!S8wcShwF};cy{>mX^%vPGc@2)-L}c+E-9K+9`3`z#1tvRt
zwGO}YF_&vVt4<_jqmm2$R#8mg65GO|$c~62f>}nWb~%LvmWtb<7!D&iL5{Qd%D(i`
z8(?C8=|h6`+Wx$8m^D-q(mXeQR~bEY6I3p?u4l35Kf4vdNcI&gVXTyGW)+gEm`>>9
zDl6Iwi%d@KvTi!XSJyYWg=Ued@ce-UTRu!7C(pE{8V#X;Im>3=*hD##vSwsTV!G3-
zA}srig>#zz=X^F3aI5N~yIB}7)-iK3rP$}Lq*>gmORb<ywG*M8{MC5<y}|1^?rSfE
zneFOt(xpf!2^)O=D6t893J^>eO+lqspkwijMwy<<N`DQ9t5-Lpr085u>4{<R7+WT;
z^{`GB-0ZZdyTC3P1b0y5VJKzQj8bRQil?|O*m2Iqq1NPNlizG#<hQ$)OJopk9+IXj
zeYJ*s{CtwNBBtvgP!ThASa25`s{#XezVRi`abgYJEJ#%SWYt<`$YU$09*SHx$ri=y
zK3CDj-ZOMEQlf2pi1ZUUKdWlfA})K5uDvhR1I!ZAlhy55<=KHIvu};{YpUy}W#q}p
zB<ot7qbV=eW`|;~avhEm22#;|Uu2aqmR0sKwe~vxa0($SHm_3?QwnnhmV9$zDV_RE
zvUGm~>f3$_ba_Lgt%C5^GXJ7ZCxrr13L5o>)P%Dx?#Bf#`+zqB8ra-edFe7DA>K??
z6q-4L-m<R8>i*@fEUqpbu2lBDN68phyl^J-U#D$VF>qsFliw0Ip)*QZAI!|?+=!+O
zwE15WggKv?KbFJ@92oodCCc4CF^?o8_`i9y$@2jX)BZ%h{T@Z!_x+H)bVMR+wChOJ
z$~E)$Am;eAL$F99^zLiJiFeDC@9B~H4I{6M@^=`&;11Dz#vE<qb<8u2i$5SQiW2b8
z*hG^PoONk<vUjKgN8!sCyekjU+9u-4!N9r8;nJfA^s&!6y+dJz<x^WDEMoW7p3A{#
zhm{-3e$nXovMj>M>oFhiDD@W!U5F_74TCry^D(tKrbrw{$y4{DJvrT2jU4W1E>Dc_
z_?#mrJZpB11vl9?Fj_^Kygr4E#6VwY$f|9fs3I04>5QYg96Rcd#M-<!?^GBjZ_t;~
z%`zFl9VR^uGJmGY$~@)BsUm6_0gpT}8p^om3&panW4pKBmF=plyY@2otgQ#k)v-n$
z=se;ai2GTI1Zp#L&>-UTJ=59j&OGG0u{Lwn{wjzblT%HtzLGDwC-oRPe>y5wvO&UK
zUnktPLZ+I67Xuqg_%bk!5xPU);i)=gRwBe>b;D5FAuPwdVSK6`v81YtVo=Z&jni8A
zl(1L?-M2N)&X|oe=@IYA{XAQfp$@yU-nNcl0DsypzbeZ7(JE=4G;4`z<h1XH!?+uZ
zpJz9_%9y9P;=4T4+=jTT*h+KqMNA)}Y2G4!Q>*%9zb8lT`|_1(p82JuLaRusS8p&%
z=wQ%O@uvjORm1~QYKwUYQQcpQEU-JF<XRc#(a>ax+PA;nA+n#<sG^*frMO^Po_`Xw
z@^v~8%<$Ppyna1BzgH2Yr<E^xpccNPk)D)6U#)zsz)Cc28b?P`_Hp)sYxK+OyuFjw
zUeag0w9w6ycYCj9)0V%~gCF$rRgjd0#VO6h<kcVryt+H61+njN%B*^;76aa&c?h`&
zV=%SPpH+P#z?6R*Py>GS(COWYxz!A7fgSMVg5Qb_TqNQdCxWc;7ORrl7>$n%Kb{*^
z>3P}RhD>aERqI~MEYNh;Wmt~{UKNw)FP9kvX|{BR$&p8y9-`tKbbH?(WsMV~C-aGa
z&8LNFK+PHc-soUtxVBpGYF#?tu9oQMd^(kAVj7yaHJWc=C_~$VZQPkb_hR|4h+2)K
zGsnKL2~ga6!RUBW!(!%raegL-NZc?j2Jj;)4|1%cysGvMeQxgUI3wSgbF$*#XLeUi
zoT$gNdR0s$!d$MRbX^)e?RLqxUu>?YQ4tC8=(CgYLD?K6Z?ny3!c!8%Q1NJU<tT}(
zX_HXjbfUv!Q2ttQ<IuC#VOmE`pOTSuZ5nOW!RAF-1g~Z`vC6P`xS~#8Q=}69?lz3m
zuV_(!n35NvD3QUfbQkHTzT!+6o^KRs)uc%>GKb|PLpqgUMN>)Y8`uIJ2PTYtyo;^y
zm$Nth6y;E&J=zE}@}tOhXo&HP<cP_uI8<r#bQtE_9XwsCcXI{n`dkdK)>dUVr9`uQ
zOpKJI>6AN!J2A?S4DxD;IpNb|C7q(>(o>1qE!rCCuW^$eW9Oio$`I?a-D1m$R-tw-
zMV&q--aI)KEuiogPm;LBE!fBl5R%_cj>(OQb=Yk*#+Lyj*<Qr8xU$?#IVL<cd{TJI
zebBe*yYi*{^L_&#(d(0J+Zg4A)M$*1Cq^Wq;z_FfVyY8)dFnTzX>@RrL_FSwDTI1D
zTbF-8*xv@V!w%jEiYx9R4Z0i|F8Jv75xkE_qDqNx%#mK5nd&euu=a8xRp;Ba?MILG
zh`ldinyvX3J6qOE3R0*_+E$|Ash8s8?Clx(?GQ1Lp8p3_mNXO?hAu8No^~hjJ5F^d
zZ9s+eT^y2Eub{?#a3td)HlZZ?TdXN&AvIhhw^ssm$g1x0e?Y{MPZDml?Gs>T@+!`}
z138v<jIRqnTw%wsWpVkxsmkrhWx><zW#>wf<?Ft_WUYuq!L2}m^NGcJoDorR-3uBi
z0a0uXD>|~M0wOo9IzK?jq`WH1NgfA_A2G9QJpG^3WS+Dfb()P@Ej>BIe*(As6`b2j
zd_xbmlzEw?6c>=O!5@x3ylD!S<MD`^XPu0DL|>AV`8_c}wzX>mP2oDqT;$-fgiFZe
zcA%{JZ1K8}wW&Di?8v~8_78^%%2>w4_V8YY{G{9tV&`VK)U>q*oHqxF!n(>`^x?Jp
zf-5~kV(N@v9@00q&`)ep1Nlfp6@#iw$AaUOL8$Swd7pq+sTh-{?-B_a?R%#vKoKW5
zRih$Ot`m?SgR&eRJ!bhgWjo6(eXusEAU`Gqni>oq&o3rKcf8bckDok1jF0+ckVB^K
z954&#$EK&#crITIsX<*6pII2L;36MCW3=w6{O9Fn9VTL}Tz7SI3X80U_T(eAx&jYk
zSv^$W8bpCdxw2dMf_PpWS=N;_;a&6Rw4C4Nm|9VuKm1wp!$hMT#ZO_eq1)3u8e?Kf
zLqc=JG=y}7iL+Abjn?1v$&%u<CtN=)i&BYL|Gd<zX=FH~^jl`q2Zt};R^1Kt1WyW7
z(tJiEAR}^>h|g)C_qDdZEuqh=<}NaS#w(~GTS{rfeY+Dw%;-wyUpxs_w_HL+U7TM`
zk6UyWA^(kmX%mA7CqkZkN|bTHll$oPO#f&;Dd__6PZDm6k+PEFXmf9XFX!!yeAo;u
z3FJ3c8zopc5(&6a_@YM+&jv*{AdbzS&tB2-X|E=*894udnCz9`U2nwNbuyzOBS<MH
zMQ14oeGAZ>5nrNEgk?BUp%;&Q^#_zW2hI69j9f+7M@S1@SW7#5Mu~Rvm3?7O?AQDm
zPrV~~hn}F)PhYW|o6bZX-fnJ3Z9O*tXYkp>)wT*2w9msFKnx|pug{3+JL!aYQArlG
zofc*^$tju~`cpJ2PQ~K{Zj8xqDMc<A)iiEOn>ZZgBotCVQs-r5H{vs{3{ofFS>&e9
zJZZG#G8Ev=@XvO|+Qy|K@{`8fe~;lyFyuo9@w*BZTYB8)*UZMafOy+L4#n;szgNMU
zT9Sm?r??U4S;<i}JOg@X_A={Lo<*cr9$AR%&qGN=-_zgd=Z(+BKp#|tEb3Hn%tvn_
zw?`^42h=$c^Q7~wRMV0TyJUXOS{})8LShOC@%AkruwnA{REDb!vo_>c>SNhF!8#+O
zgPgK@(#m{UobwySOp0M@TFNkQL>cij*~b|WE=zZ?pLvSUC}*D}Q)G;}Q^HSV(Qy+D
zWe5c!80`sCQW73W0^)`eui&V5=diMgv2m;m9w1ccj;+FSbJ+^o>q6)aMz!GdzU1K;
z4jB!Cxgk}KkcP{OmMJSkLBh^DXBefJ(zayy^~>D=?dr1CmcF5}1y7E<!@A~IaS&cu
z-;1|`qvDEAj+}OBR&q2LF4(=s^F9~uOmz!&b0P@=k)J<Cuj6`h23nh5WnyGn7Fohr
z;px~Vy&F9acI<`aKq!ZdTa=q=ki~J}WP#CE@-Yq+2Vcnw3@;^XUB@KK-TR-btei|z
ztt*p@HO@SkDK##*zWQY|fhilt!Bx8X^;iGrQf36wV1`wB&7v-c!dIW-QtDPti19z#
zK+>P*>TOxDV%4uxuAxDqsgc0jP-ZLG%Eqf|xU+?OnK_wHXzB+rDa(frhynuQ2Pd*o
z9v@;h_KtYgq$A%i>~O=0w__zE-ApT%6K`V0b0(c?{A3fjsni(UTjQCFV)8R-ftYvZ
zB>Y+V%R&MM8v5k}5G?S4LwvC{fI~(=fJa0{Mny$IMnOSC$HqiM$3jOz!NkYJ!okJE
z!$ZX&AjHQd#Ky(L{mViE1}FmyhXe<Qgo}oPhWkIJKYf6O1QatA3k(!s9Pn=o3DUnU
zB>rVY@Z!RNpkE9mpb!B&1CoE+7`zyz{EGlv2{?Etgg<}3td9wU32;EbSQ^af;gl+k
zekY9RkL0fAMyG|K5+ll82M5lFpGA`X^wqovtrH&6Ji6B1VP#^~dvUrNQKf_0YLakm
zKCLQS$gOz47Sm$>ZJWhWoqTn;90cFXyvGvTnY>3vQssyA(_zO{{!V!~2Cfv$yVSv`
z{2n++jwnIGXxzOht65rKX~9|NcNW}nRJYlC`=A=FDX;@#dl6;9*>T&}9vUCo$FMEM
z=gprGvvt^?tVeARYlEVgpQOHK_1?mV6mIuuIbA<{-($SuU%&Cq6W?3BUFTnEwN;xC
zM~!a%_W9yL4Qbh1{fEA#cSszoi2opyD9PM>&Hea+P1tcf#&KKtqmi*!@6_BomHhLS
z_FdY=&`zrmvbQRy7x!Y*VK-lkUQJ!xQ$$y|)$hzqdnkA3D7OFDE4?UNzxCADg382|
z$^FU!&#15y%x&lJco@@0yo&leYd5AHG<8-y)lU-g6cTs-RNeWg9;=sjyej1zGMo^R
zpvSe_dO<`0rm8uKuXmrh_x}>cH>3~sNI>Q%p7|?GwTWGl&G(RRLs1$nvQY>-d_qx$
z`0V?~L(_w?0>u3diW#H105h%O9@(3eE`Ew6+tkv+i}r5TTgsdBwpP=8EzltKPSC-=
zcmc|F;W&Qer_vc)=v7RJG?VfhA@;gUU;~#sAYaWP%oDs2i=VF{KG*6u@B56q6Vw&A
zz*u$@w4pV=gc#xyP*ifVwS4Oyiw;BmdHmVxCnm%xZ*_3+O`!{i;Hf%98jFWYV_q~N
zVa4ZZ8^>8IJ?MOPH9*YudiE-pgQ)N6T=9EG>vKX}bhNRt>o335q3ia^neT}=zo9+s
zLX@uaW;&jZ8;5@w-*WiD&y;F2CQ7K=3hC8du9<#^dRPN7j&y+!_X2Y%w7RJ`aGd)|
z4gw%h%j973iEer@<A}rDFq)hm+w$C14SyK_@H6-)j@`WV47V*q6pV|q1Pmh84{vd+
ztvizqb!~D~w^%<jxw5+;v6K+)EJE<K@ZyM6jn6?rH#$bf+z`;2{Z^JfBvYS-Lk}M(
z++zGFW^%+n>4w!)6im&0(xO5RpJ;xkclk5A@~W*(mE}As^3DWv``N9;H$)|PD<X$?
zA*ygaGsH}h9YZ$?cYh<5b*sr6I3%FM8OMncz5Vb}PCzgEH=3GmOzBEaq#8U@BNu`+
z>!tdAP~Qe&&gGnk%I8nDv(r6O5gk`I*cS_Kczzr0Q5OY@<VU9#^0jSuA{FGORquXZ
z-Kw6Ec?MC8{Td`*JCRWLpND67yJ`+zg;~5BDyBlQiQpIOz2;x;xe!Su450Ae|4nEu
zyymK?X%_HChcoKnxa?lU!MM{er%ZjpETdVI6ld~R_|P)(Z)xKdY{;*Y-QC&&qDC2^
ztKeYi=83^#>Iih2#;3vCuOA6RrfH<Szq(^oZ>9OVKAioyWgmaeB9p=#pL#l2+&Y{=
zCm1R>TOR$!KR(hDGJvzVcDq9}+kMr-x8a7m)+-@(#FbIB-}|$^=47agr0&`+>ds>3
zNyzP~e5?zdN!i*|Y4O{&+S0|HvR1*v+W4bMP{wg9+og)veSaqd<MuE`#P`z#wqF>&
z1SGpZXQrB!yK#@Y5YUTKqUPIR_SPu-gNd9w0(XLq?K(|WSlAgFF3Y>GlHH)akT^y<
zK8>mOMYm;&mu~&YW;7KqO1z^&^dIhIGa_^*88B47cF`}{{aMh)Mv-A^{4;v`afyF7
zEr`KY&zRdZPO#Z@yVp$?rkTtarz<m$?wdsm#b=zrQgUf>k_D5vU*x9z3cuklLO!GX
zGBuqZ<$p9;cRPG=_K5SP*Q2;;^(EzRkD3P&+E$+-&F9N$Y)Uz8doBb%aWxB{8JfBJ
zZ5UmgR}5^ZECi@G>~@N7eGRc|H``+o$`9#KJkDk_l-S+iKPf2O5Ud`4oT`X#TAtk-
zmR)gOm$WLrxb-;Ki#8ZvuH0G!q4<rTuj2=tc?+uv1+rsACj}=ksfF&eMMo<rbZz#f
zt*H>jEnaN6&@;{E_*X#j(icBMj$6GGziV-jiwaT1t-IA-wLs{70^2a8Y9GI?%YD6e
z_6UjGujW)zIKwBsZeDqx`##vz+T>zti2N)6hjXUi%wsuG2)WGVo$OQ=dZSAtAxvl;
zid~4P``=B(IFEbgA#-2z7%$70x~v+=8~ns)`)aOhy4gLiI!#HAFCYin*8%fH!jq_Z
zGjh{1HQm(DQ(ezqB#-hE^sS22{Um9e7oSEIzAE<ha{m~i{*EhFnSCB`sP#oF1!`*^
zyyNZp2UN5*bx)}6y<;=Fn9%{H>?O{3Kl6=_z#aVj-4;L4<rW|0Ci?wK!*_b?Fx5|4
z<9byC1+E^)Z;TgdGKYg;D4EP;arF93+;%$9mHZ^gg#+^QeG!~$KxaC_TCR5>CwSSa
zd=Nr&8KC+Z9q;KoERXvlCg&R!#DKR$x2R5#5G6mauVzIO5nE@?Q3u@kDW8NyA7nuy
zX!LpwRjA<H@3!rtO>OTO1+=$F@b0hWS}0(q!iu+Coz*Qdd1hn~S2BOT!QDLlO&G;L
zbyM-k^3x__U!Z5S_Jh>?hlVPPPvG3op6G#IP1_$t2Q^|i{4h5B+V`lvm-jxXk`TIF
z=QF<3%O<-nS|ks~iB`}0jJp@2SLW%+qP`8ErAz~LiWG(%tJ691@wB@c*I?ZW*L<sR
zlm|FHd=t@;YX9pLW_fJ1@2kKHa_p%_WOm`UK7u;)oq1{28HXxmVM<hx4F<>3J(XS4
z_If_<(dHs%_y?hTHLhD}S3!|r3=!z3h}YVcU8p%j{ETTFB%&O@r<lT&GYeH*J?vqS
z0|TKrJ56^9Oa=va;yyA&$Ew>^qe@O<b?jcA9*hlT%H+?JWz0x2Uta&#rd?@cQAG@%
zVkm<_b!En}9l8xn{N~%R3uEz-;VmbyQWmo$f11J|KOKusvW4RnOw<I+*B3FQW+Jw;
zK+7m^p1*65$znU;#~m~J8hc&~p;<E@P0l4R;{*yuVM%kSl;SwNUHfX@$obBS!T;pK
zZ5eWGg_#))m8a7w`1*T=UsjGNJRK%S9I62;zWrM&L`nQu6-0*}v0PNl6om>L#4F#%
zV)*Zc@P!`{6;Ua(UYR0EQ-%#tA=;M0YpK}vzQMM_gH_>p8z{bV^JHbORm8~oUWU65
z>3_BN7F=-!&7$Z4gS)%Cy99T4x8MYa1SiPg8r)ri1xwHbcZc8(f#B{i=<p`rIq%&2
ze#1MP8D_2Cy}Nr?S65e;%B8MSm6J22N@In8Mx%(g>kWe`m-NiR1-fvBA>uk)3UH+s
zG3k&=Q|3^``+hFb=tYtyE*beu&3kgqddC2>UCf}Aj^dj{5Yp0%EUgN&jTMTih55S^
z>k2uI%9>B<2hkvrD69=XsDqK`4Un%P&CX=>TMkVt{tHc*Se7S+<riY5j)37;N?*g3
zZnRfX834>5Tx+5dVjisP^CV&di)r94#Q3^HH?@5pNnkphT6N5N+WJU{4bDTAda555
zm(4y_W7x>9+wcnXL77{EiEW>D+H)`#>uLqcTykLnpsu%Yu<$^r%k4iO<p22Q0^o5F
zpd2tY9t}5-6h0L#F997FpENy#B$VSsg1Yg-z{3XW{v501q%qh)y(kPg!q}0TEndRY
zM|sB(T3OYJNLwm8uNAYC6f(+0XB{$0mX6_GGfb{CYE;x%sC$(RCvMMH8RbCSO*Irq
z9plRPxBDHrd;V^!l-`s@6)S$066-mhFNLG1HrG@?q4G8!B^p3Mj(_KYwVfkVY@nDB
z5l3w%;9<H!e|5Z)td4d>foK}4EAM_3*Gk@x%3_yNc^vSZ=`l@xETy=c3R1I`(>pJ!
zk>n?r;yZz7LX~D6*wG&<Y-J}vpscJ<Iva2}*W|nL@@S66RQ}P>-z^2rz&J#xlXID}
z(HL3uihir|zATLglEcp9**8NY);tO&Sn=!&U)9BnY5I1w{w}W<k~s|CF1dV))}elf
z!zJ!BwU<1J@0_!{<f!KVtrUe7`KxGM?Df}S;m_Oa@>a(Jcrhoj^AX2}ot6P#s`D4$
zxA?1c%ETl4s07%(@1%}#r@K2B$eQiIi|eu4KV3GEU!BL!^d@{LBk-c(vj;0y$)e7=
z^<{IgA$Z<q7!o+R#1WvWG)`HzwhaB+yThou7YRuRl2{_CsUuB^t5MV2l$Q3UtZ5*r
zVs8<Buc$Xy|4_%BD;rtcR~SzmIXJsAam({0Udw$M!=b(VD;a-!z`JmwKPFdxeXMfL
z=&RF*u9UILRik1j7yd0$MaMh}yTG6Us+!wa*oAZ)#TDd{=`XGP4yf4NHBMwz`xnZ`
zeNW#lC(T_xe&s#<skH_O8&WYITXOKagd>F4!Opdy@ExjOe!}y^{*y266S!w`l}@cF
zX+&y!zhdG01A*2*_YLqUVs)KyjIx?;`HS67RSo7olX#*X$Qg}A9DVwHrNY!LP^}j;
zbK7&`WX2!QQ9r=uEmhHN6K?T$y%Yw5{ti-9$5Z1(V$M0zSW~6WA8)PlbIABYE8FUz
zA|tWVbXwC^UIx{kR&>cbnP86qo5Dgz)<@jYI3R4{Vue{j{5eH8Xe$1;4OCW-(4|>c
z)wI*;C$z{PkGF7*JI(RYk`k9?t6zP@Ok28d!qAMNWB^^vwT)~bL%#tXZ+32%q7Jg8
z>8EEa`}%s1%p&~B-U_S6e&&?qp#LyP&v53z+3|ViM8S$zf9b5UWz|g|&-kxry;I#j
z8HTY!B$ojS??+d)ae6)-nS~3edx+s|HG67z;Gn<bu!FNcKlQ?oIUJLW`LE%&O>o9!
z@Ulbo&^MhQLs#omLJf~sxOIO<nrB}>bz5DPBu=+f)Nw+m?qWBHu1{Xk)iDKwz?`;)
zm+3%E5<C~-I+lLIp^apZFE`t$2*BLN))niGXn}XvMT)<s(x#IuZRyuk!RInZfAuQ2
zsmq!x2)+F_C`qV){Xri+0j?<hawJODj?pBx8fbSK3B{i^!Nz(__(GdDqmh5HmJTz?
z2CnHk*ekB`T4>Ystx=O|RSr=z&+@9g|E0ZBXkog1aY#6$plaIoGfwQcX_WJgmL^>{
zti~d$N-~FfvG;=aht=QZAw157J2=6@VpwIH>}TB+HVitYb#;TfAB*M{tBn8Dt8f&>
zns;8T`|d8%I}H@QPO{q<o%H5On*odK0&Yb6RR%1*KMwI}-dVlcT-z(vSgYXP1{m$1
zk@%yA&I_Kk_*tEa2yB>o6~)Z0d^z>oH%n<<%Z7@m<hO;JJ<$tpcTjhkM4l;MD<(8b
zs<%ZM_vT2fl!IqYXKzD~<?{-944F8;&|%&!`ue&XBN;Do;eA&Njbj4NNa_Kh|4P0%
z%4Y2FddxT4wOTk{xhIorFjrT}b(k(b>$nJ3HtaYmT?M5R_$QMPVv<^tzw^=SIaw!4
zu~2NB5=7#>ng`v(`&_$6qE?4kxWJUx!_+NMf8$*eUTqJg*&V#5U!*+~ZDKEX_Qw7s
zD54U8ko0Q8x8oP0v_89}v(4)sFAkS+<b8DN5U2dxzN^pOrG=s(@KK-|(9&5&?VBqk
zX-wTcoix}p@aefR&XaHARx*09GxH5#z1c_sscx2(l~2k+w?h6dIpFkDd&jNav$(`2
z!}a$%wNmTUm2G9FQ7!sAKgSv^vcGU%TKas=3qx-Jj8&J+Lm%s^+8}Z9DxYfqIUdz^
z9CFCnuy+4X#rn-mZ-31zm!@Ge{=XECr6#*~;fxE?bVci=rSsH|qmDJoRkPEkk-z?u
zSGU$USYI`>Pm$-nuzgP7{hfAvKKn8LFT26r_|I<agO!BfaE4SxdC#tSJ?*yhs9RE2
z2m7EUVX_%<{1b^9`?PT5ukGm<n%_nKBp9mo8+>KeW|@y97?r`#Dk~dfF|7G!R!r~I
zY!MnUy|6fs=Y*;!)gj%gX^`>=n6xSROvi26D(@@8v$`8ew*jZB7JgO`u=a(HM9x;q
zcXrZ7&mdlZqxnQ^rTwe$JwT?7|GGV>KBT`*3PXObg|$dEUM8f|aFe^P?VHhxLf6>S
z4AmXJJlA_7>~A%+R8OrJh*JoPjw;trnmN|7%oB%8nsbUuyXBE&c(j>k^<`;%kysDX
z#?st%3QT<X4U?t^aRG$-`ks^hJ@36z$xR4iByvuWOsS@<4?io5rZ+oysg?GMnsOfQ
z{}#J4=PqsjX317^hCE9Uv8Zy~eqr7wQ&#e!E|boJ+}1hGhE02Wt&~=K4V~r+X7+W6
z?Ss`Z5w5`o|8;ZJ=wF(oD%6@I$FthPKCWBoAMf7)*UNkw&lDw}&2w=c?c~zh#S+os
znRvZOPzki2)ubHRmN|}|{hMiq`Un=vwOMg;%zp*jH{q)|!7NeT^;HVT9vAE725|Qg
zQr~YHbIf7Oze*r9v)w1fEAY>@zYO4+)|m!sZzaE!O3StDwt9CsWxspxetK#T(kN)?
zq%U5Dbexo$IC2P&sWws!y)-}y0s&1ga_g>wr~|Tm+euc+iuGL2S~12)i(z$<vCIxH
z9W$D{PuL?q^%Uvpwo<mhHa%(O88h~PhdFseJq|@J9B8zO{kSq21<KbjQ@V0+x{<N#
z&c}sa*|{W69rn{^+f=sx;OJiBYm|51v~JO#5XnEwJ0cdCD?e!l%xqXXqH64w>D2vI
zG_%r?1AcZ6T%&Yb&2MV&WS9EBW6jxV@8p;2yEwsN%H+LBr77jP?ZITs^dlCX8t9i9
zqa?2RQ7P%1Zw@Bbcv50jeq7R!8&;)OsMM28k(nk(n$QepFn!3cHnDtD1m1=GhD7ap
zHEyrDmfhVnmps3nz3Yyy`yIu{MCtUUwj2c}Q>ngp_BIjtm--3sOSyI(9WJX*e&!x9
z<C#mZ_@La++~S{?%%T&;=b(#Ddqt(o!Sj=?^)UUc;ouY9uuMa5I5Q@>WLVQNFiByb
zNlL#C#+O5)Ww_k6%)xyha6(7#`W<!#*(D&jX-82f7_WHt;=Jrf7gLTNW+QtS7eX8Q
zJgKvRbxA)l^qk6bm~5Fgh^6VsmRYPARmagVO>k3}0C1@5?*w9?MA2X7pdzuFvzn*1
z9ZKJb?hA3u=zCtAm9WxIy>k}Se*=&jCk4=~ic<I<abzsIlx(11-DcTyFWd4L27SMW
zRo0K1$+}6X)Z~2Z8{aKR5@iG6aUB=2p-AWTe5bnT>fE#&8hhqhods2DZzEsBhP(F}
z@$c?p*nem6AR9449kh4i7^IhS3DWz9hl6}_`z=V*rj@v?&78B$Q+kzNj_<hDJ+4@`
zI-tAXL0c4C=^%85^84jw1V<v?N38)IAwA0#vf9%tlOySG4)SE-yph@j=~bn4X>7BL
zy270_`g$t#>RL7JZkelr?eISP4K>v)V+}Qxsirw&q4BoLb)RagJ3shN+>F-5+ZvG|
z;-*vV`g!ZIz5z0~yX>EG#?KADeZ9Ahx0PA@q47ylQ_b2C-1h@N-qH~2U*L}ieiUDQ
z12ojVfXC96p5a-SSj69V;dhxNek`3XsT%LnOSd(DXYkJDMoui&Y4^EHKTl(2L!{8l
z!$_-6G^Xa$^5=kyj0Y(9Vr^;-X30DmCbd>7J-a%qaq!1mYPZq66M^?WfVSdaeQ-K#
zZ8!tAeqUMDu>6eM+^*3nE;=dn@}bajWZY_##h4(X=>o6zwbYw-EGS6f`*6E+B`XQ$
z*Me%t5-n)T8jGTkwSy$4TEIh6&hd?Odi_@^p)-m*9$XJjoQmR@3;7D0Uyr+$zs4TD
zn(oBKHA*_0ubDpQPg0y!2P9H2d|EJvA9NL)84ipHAWxSycsavvs&z}8gq~8^{}V|E
z9tZ=3O7Q<n1P+S>#{<N|rJ}*(lGcWS$EUU8m6Xw>vvB{<5d|8UM*>C~h?EeHgheG8
zsfjJZ6|f~40t@5`f$Pb^h>X?U)ly4>-r2A>bIj?Vm<8h^IZ!=#3VX=zhsW#Eues-!
zc$+HsPmZJ)D`d~N`C_~QBJB(;7t$PmTUot->^Y_Y%TzOU%zpSOB)Oodx_B$xSWVGD
zqxQQDaeyj4d3{k<IQ*7;_M;Sqb=n!zJ^A&~&ESkr@Pp3*?3cfY!V1DZGt#m8U$;CL
z@+VoQdQ?Sc1{JlG(%&=k;e44H5u>nEzvRoSot*akbl5wf;ESKq*AS%r(XXfU^3#~x
zfZ95ud*Zna<M^@g9}F*|LXYZ!=lu6>9@VwymRI-%U{)(~oSW)_?yS4|f^DlSaVtGf
z;n+V1S|;nqSK<c-F<?q^W1qrL1JD2YdJYu&3{id_DEvIoxgDs0EBeitVWs$8O#St+
znH7awBT^ok0&tYVzpA1Ys-lK#ZxxHCy&)^J&oy&}>IbX0sV*5CkzW{u`+~NGan%x^
zkmcPF`9OSV(jHqLtC{7xXUq~97mMB50)J1r7a5e&*3|=`G5cwskkcb<3PsoGx>@wo
zoX=mK9#dUN(M+aXD5nQLO5=6{akC!v`#TSXg+FBODG9}GJar4N3w$$iMYtijsZAUC
z_#5tPLeeNtnSJN@gvm{)Ei4vRh=D8iV|uY)oKp11nJv(Tt+Dze^_F&%X|f2%VcvRx
zyXXwc$hp)&@HQhiD}Iu$6t)<mA}-ej4{nF2%tZKuYS{Abh|RfQbX17)jMDulqNWnP
zs=LChY{_t*SS)gM9Jta4p$AW9?GR|^ttDEa9^?$$W->PvaHV6TFjy)m`f;nZK}(`Y
z)aa=mkxJaidqR}^jE`~CL2yOU^bw3Z%_lTwUiMy_#Y;h<R)?*A#;;v|69qb>8w1!6
zNJ6REdJjn2e!miXW)wcn(fufMHN6f{C_2|*E;0M)kHP_gtLV~4+DVE$#3HAXEb+wx
z^I4dM(hdAg8~;yjuL5h_-wyi>)S}2G)U`aoNnMG+k+2S+UwVrDJL`lzL{BI_E^CvE
z4lB^?ng&ORxPKa+<Rljz2qFXeUE)UUBo%T~TVdvQ07w5IBC@%sPNIxXc-~O-HSe*G
zwIHY6Q!B3*X6>|c^K^v8M0vg|Iy}z<DoDrrC1kg$suqh3D`HNfy^Gf1y=6QX`}c^;
zmJ}vz&Zp7o+FsySSXf51#}xV$4T0sIn<)%4`hAK-3|o6pxXSQ;sBKO7oLz5R)sf}G
zB7<sHVjuC8)raTe3`%yoykSL>Q6w5<zb(Jryy;mP*_lsl;ykk@d(Lz?Hd~IVG9f)7
z69;MW_9Vlaj;Z`Hm!pZi7$QATz-9UP5BGP6AgaSVYGA;=n@~Dc;nkY8mq4$)WT3a>
z&pXB_T97eZBtJ+sR8>vhV8e;)7R1KpDYS*QKVZeDtml<tZ*|xv`UWWen;D|SKttma
z)Mu1$%xrv9EL%U^zil2q+^4SrixEmAkzKlL-jeW<e2lrjBU{Gf?_qby^vtC&p$b_5
z1Kq4=CvfJ5S~k=_A$Nx1^>!?<6VHG8h-+#~ufOD7Y1oVcCB`#01C3;qAKS$?Cu0MW
zlz>KC{)^meHn<XeMF`GpXki5Z%@de{WM48q*+AByGSg)CyH8AsFx*JnqQjo5MGOup
z7X^yDqpel+4yg=|tvrF5C5gUiT5ROl<H%`+(HSo4{YJTaoGIpXUEW&V{HxDo<=xm4
zQ1Z$NC9nS?utBLS3>^G_=qoH74iJlm2bW439*;{KUlNAa3Y(6XTUO^|=zj<->^}m_
z`RwxmT6%;?9E!X&E$)qHa+n(jbdS6NILv&SWv*}N&%;|W(Zp;dI6HCAgR~x}hsXVj
zeTp%wL@JEtEFXze5{~MpCOwwr1dTWtD?8@2urv(R<60jTd`g+!Ikno$`>&tL4^=Xf
z`Vw}Y+8FsL7ye#KQ)(%E7S<fO({R2mehj=lY$b446O@k>msUNG`CI*Bur&Yak3&-K
z?B1p{UiRP8;cbSmiAQsuT37>7yrj19x2Kue8~3L7*&H#bmr@_!{|(F?F#E#1c*$EH
zRg-GfbxlSXVE5S#my(hA0>y)Ju3Xiog7<39E7kH?==_l@F^qrHE;~8&@IsdRYCp%u
zN12A=8*0ao>4})volc6vE!J@iJL3c^)yoO6`e%>?EaqCmVcwXuXX@d<kLI|nI)eCP
zl%h_Ldg62jk$K1&wK|d(3RN;=R#H*c(XCi1V^jEjQo#`Ja-TRF?Y7Jll64twBU|sm
z*D}7=K+87(-0P@x{`dY{?yDJax2pm#qJjeRa<pi>05ZpT*137}EhNZUoxByZqxZCE
zNCIl+G2uCvm8ib705Mf3Z@A&c$#0}i?3{uO3n9J79vD%FpLuY60&(70iT_^Oms`vK
z?946kck^p;;2vM+faeYNEogdJL(KIZ^j>C9>@D|s-mv>KIPvRx`zum;g~YT>iL7a$
zC}Pxv0{MD-G<a6qIU!++o55$<7vl)y`tZn;xeB>|U$Krx$7DM21u@4)Y+$%ugLk9P
z|Cjm1aX%RQW%~Hn4X$(|cl2TO&Mr0YrX||Evd|0a8$fCDH>}ur;uDkYuCPt(MP5Mr
zjm(qj3V1e+dL$dEfD)$A_ed?mn*x@$eFGB?vV4Q<o68q;@EJ2B+P_I`6*(z~q3bgv
z95p9zbadFoK11)(zNn%M>Ys4Kq&{KV8=kq6ebKs$j=0Y_r`&VCJ0)~{<bwIe)Kdzl
zKC=6284&o5F^5Eq@!UC^wdriJ)SG4NT^WIanT<`$PRgvrAGw^psP`T1BMsOThcY~>
zndDPiDrFOD*-Tz7nEdzH&Vl3{5g0K(3THk%^e5u^EL7*Fs{ZButA44nk2;#FvQd5$
zMGs(}{fgV-2{ocl#H=VB=Q`kWs@08{2u-2_VMtQp>^>tb(fiTjVgfMP2_qtou5hIh
zD&q%_8RinQ+jNOCG^M(*eg*$*qVvM_(Eh+}jPqQ?&-9ym)R8-<<P)kO_vZ&PMA>X6
zVR5zrPG47%jSV!72hFIE<euS!(j^vy_Iba<EMAHsEBgWpEAcU`T~BimTrFzZxkTmP
zHmw0q&o**<%fJI;;*KfZk<A$e?134EV&3(#KhZLna!fhWpG&lz3X<7p!%E(-A65y<
z!Ef1o<bFJ2A%)If_9Cd&=X5;w$b*7(B3g79{h;!iGZ34)0%nHuheEc{J0ErHHk}X`
z?181ZlpAvesdok6x2z{;vMCkJ!D2Qz5Sw+hpwI8l)(=}1PGwtX6oeH$3toQ5<j3%>
zV_K&aAU5S5`YZjyjNu`@%?8iua+tP;;o~+gJTS!MHzZ_o^SmwvCv~2mOTgl7R=0mG
z_&W`z^jK${YuFYW!xPM%+#9IKo*4qct?f|84S8G<{SG3aY<(~cI{0h(obsdqA*8--
zit@j}Rq4FF^Z64lG^f@xeA}dUgP9al4;+V{d7cM66*%4_=ab(%^mmHbYgUot2{S4d
zOGhB$Dq!W}5Eq<_OEV0RZ`>C9NP+LW#phKL(y%XXe&q;VPy4-xu=vnUA4ea)=kxKr
z6#lkPR|!1_WzM>S=*3xE7u^qErWK@j?mAFyqHh9$K2P3V3AgG`LAB$*Zr+_U;8IVk
zh6fFo;EIhyPHxUlg#Gdjo=-G3f&vp)3(+~B5+}McUs=rG0REcAYD}8YF^RL@gCrW>
z0D@3@FaJ;I5Bo3LCL%ln{6B*KpNNmtKpbu?Tq!L}Dw<Cr$#}Fpy<EJ~?#1;p@G{y~
zf9X6zQ!cOgBxN<Nb;43h8va`qfFJ?e6_+GuqSmrv3ol#OE?>2JXRJI;a|xdjP0Mmn
zA~;{-8ga)2gc0Fi0BG@a5R|_GQqU^gV@AuGbyTm^?PqO04OT?F6r4D%YLv7$u)1?P
z<*R$enQYN5$O%1BZ?y_W>|wEV+ZcOg5qzmg?u4i4{hiY^WlWr}H2KVwHQQLLUi}S_
zM$)~N(z#)L4A~d8*aIlaNL+la;s0Fo>8gq9DKr#|z2p=}dW=|B8gU=iduUGL$gtOz
zagp5d=7`L~@fm)$D!l-X4@j3u{mLYhQ-eENzG<tLPT<PZ0cH>wS&lp6P~K&<vsG(l
zk68JYTRB-1_1&u=sJU>nV#?~%>DpxOHev^{;;c&Meeok?smJeS!vQ+tllWiy1dooE
zGESFBp)r^_)8<&XvZVF`N76a`9mpQ3#;UcNj|}i2T>T$^rd{a*k*RWjc*)nl7Dw1J
z2S3&;;5oI_vh62@i92C{3FItk1n@m>fhhp8X?AYP*f3%08d`X(LFF%{*Yx2xh6>v(
z{`>0J%vm!$<rvM%->32puo3i#{6_5j)&-io@nb8^<ZxxRE37?-bM6G2j(RLUbbb3$
zVO-8r%Y)8yFGUfAiXC49?#4DsV#Y2uM5;q)pU{u%8}t_;H4m~(8Gm$V#f})(qD4)S
z0>OvcHN!-0JoomiDD$ye$)Rsp8A32^D#m;IT(4n08wSX4cz+~oR7NC*sek)&c>}mL
z)OOM?K38Nz;2|}#{7us-pl7SdW05>*El0A0ZGsmx^ab@kxLT`bN*=)jx2i(bpijGs
zLe+|c#*a2q=mqLZZeCzPdWnjhi7)Bu@JGE%S(!z>)1OPgzaKLfp09ug|85yDUxHPk
zA4fsqru!PfUfzdEWUf6Wcjt0zu0JIwpKFyKLxrwKBV&f##!s%6gr{3%v`CM#*;r32
z!eQ8tI6^a)RdoThH`67FfGK!N>8!v}*`GgB@6-y^Nlttq8ZV^2VRB<4Q3&Qt-7iWU
z3_x7457duZ2<+Aqyp#PC5EM!}Xml;#Nl;pu>%0Jy2VWIywT<?>Q&bb5NTxT8_J_z8
zj4B*+@DD}eJ^P<~k;x1QC$UKpO0b{5&CAB8sKQuI(@d>Aa6NT6ExZBrbqwA7>JvvK
z;LndDHK>1_&PXDiGX3sMrJItq!1&{S4acG`HMEh_$446_r)%0T^iV=_qqJ+ZWnXGN
zX=b#C!=l5Oc3dc5G;-;RM@52M02eF1CU-Fq7%R_1$uHl6c3zaD$Am>k8%t+r+knBj
zm970v?1uhgTWPCc%ng%m9)mp9l@x_W1jiR@>vAFfK2JABq#r>~(~x*Q>*iE!KMr;C
z8{2}u?Yj{w^AO#vePpUg3aW}{d5m&e3|W#>I1$8*Vl|e~PQn+=o&9%3j<{{vT-lnP
zw_K;qXkx5geAid1{dRqS9Wd)V=-&Vp+ocXuKLP|OCLxjE-T<T5r;7n5@3!1Pcav5-
zTNVIsM=;!q>49bV@O*_Pj9<|x?|6yt*JlILsA@rcBWejht>zDVx4-UGF&+S0ag$a(
zZ-5{D1jjd)TXD?#MNb-7M!E+SMVz)(LujG!#u^z!Mx<I1FCnV|SQ=N_ULr2HR02w(
z)DoXB`y36$2cTjYs<I+1&jeP|x|+wct_i9t#fL2z-jZrn1DbU8{UCk0H$bDkK&=iy
z6m9n|U2bphu0S1xhkn<pf!GCKdZ`;G^(SA8^crRhp;BxCxhr&vF<TUNBQ~ufj7Ukm
z)Z8*nROiJ&tpgINIWP}@mu&&g{tKEL|KL40Me=1!^2TILLFgsjAO^^l>&xuo1E-eb
z@dhx>VBc~w*<0x$G@c4o2({+zhdY>v8_|s*`Y!*K{x*1&ashFhTLD$RD2FcwfKi6>
zq0upO-6k-4pYZdz5RC>_`&8HhZnq7_J6xiJrGVGAHcSj<xdXc#Q0x{W^{u-qP!e%i
zPFI)1)*#!O!ll%)a@q@}scJso3b7E+&?(aLAr+WBUJ*+L-5bGj`vaZ_s92^G*((4F
zTM}2mL5l~E7``!H1BymKilNyzo^pW#@<d;RUqzC3d1?0Auf^K61QM-gRB1$~AK1EM
z@QJ3<>h2i{paO+GOF7ZmYlXnw>;3lcct6sPMHQFEXLyM<aGq5A(Jq=Mf|L^P9r1{L
z&j|-|PX<x&js>dUNdgi?*&>uBrw7~w^_VF>@%(rg>bR&PN;Fa(B+D&vck(kr<zVwI
zvazOk%7#OiMtv#i<swd^K~8O)6o2tntqugL7AWtL;+K%Nh4Uu=l34@U&C<oI!cp>#
zEt{U&p(WCYCY5~B10cB4`*-N^ZX>CtDh@*wrHgxT(Ev8SEDypvFGz6Ob$Fzrk!GSx
zKBRG$Bssgf6iM0HA))a+5HmUt-E2+&BHqqRRoosnF;S7x5{Fcup}d!3%R@a2Yr)Jq
zByNe*ZxW~`TX5pH>YkRV(bg-1jfhVyU*-_Kha}8+y@Gq^HfDhb)H!i9k~mM{b_sDJ
zvSCgsFl0%VM8*p7EUIj@clrv05`*|iFyCgd<n!y(uNe1Z@Q*PLBzEB?;dX>KW0U8u
zS!+BXauJAc09h7JKBEG)hm%PkM?Jd;X%Iiu_W?AlN;wmB1o?VrPy*_?1j%7kXnL_}
zZBz+`O6ZzR+w1LfU`88yTUBb?vbYnQ1yeZ`?-F1wlu)*kEZEq9$n|NV@dX*_#lxPe
z=ILUameI%+w*qyB`~(<Y&g-p7Y2q#UMsNk9^|I8CI<$dTI7qsm3h#)Qd$B1ONbo{J
zG;_0s;c*m47;Dq1m@`9aV-f)p8?YQ0F%Ww4%(e4xnRkDW%gdBKyYT~*-T*t0>h>7m
zofV@uOUPiP77$ATt_ls7^G4%2>J8ANdZ@9l3$TI2B_{}M{kWmj7OD|qqgr40TJdtp
zV7_Aw)B$EIu**b!?MtU6IGGf+xY9EuzUsWgklLBF88E>bm!MAioDiG-nXP=RyvUL|
zSW)yZnfldjwHpoZ?~C+@6}xYmXf9Ix*}lyc*JhJZfKh-v^tGE57Ia4x#n5V)H+fg#
z{n&N}^{gX5K80h6Z&UXHdFH06?jI6j($Vau2P#4)zWx|x;>k+!rF!~v_wow}m`hqI
z2^6+tz|Zi@;uKA)jr8kZK$wC??nz*p8?ZPa7{|s!)byi`;p;6`ui-_$rXnz@jAZ$h
zQ>txEAz2{Ew71a#jWsXGytndG6+zJ^*&Zc6Kq2td0wzjo!O*)<y7C=G)%3S&p&PPA
zl(?v_f#;>$G>U4iQig8?<hE8!dbPiXeklH?6ZK>=7_#*zwyQt=0r}|3RkioJjA=n)
z^29(P8KF42to!p}^vIt<J|x(@#CkL;vzL{guwzybkgajWbPCgU7)4T{)1cR)xA8Yi
z%8$n!=gVCGfJ33VuG#9l6S$<!;FfBSn4&4aPsK0NxU!mfhmzLl;YrRV1$Z_G`EKwi
z9<SRBwJ_3XSeQe81?&3X_(36|%50^IRh-G&$f}hy7Y<ohD2?nX(Rfk8D9N8P=Q1ei
zjlzO$JN1>*HVv><B_kd7>!teX*5N)8)N9<^%@;FL!4?N|Qo(z5m%IFCz+GO%VOXr!
zFF8_JpKn#II1dBB{RulxOc*tqLjNfOUso9ECH<Q%AD4B(!XI6xi@2BJX&6a9x8O9r
zkOm<_?^|TC-mQ_U%m_AP{OQm1DqUNr&>@{9*|=NX?5IjLO?N39Ux#a>s|6&xOH>V6
z002YArRDsxzDvUSuy+Cyv%AC6jpddX0<7d!!IpzWXbt>4i%C$39n3^xC}s-2mQ$)G
zLxg{p%KO%MZP>`W8DSKDqW-5?gQb5zl;P_LZB}7Qp|jl<o<Jw#BS??_b}IY*U$vc!
zGdP1>8WOa4n=2_SbNwOlTC?^j$f&}KlO5Z<4Gp2(c@>FaWZ-*ED`8)jCa~L|`6N}+
zDm~`<kex4KsNQA{Vo^#s*tLo|U>c-uOnUaOdf^~y>2mIU<a6W~e}c8sWp9*bsf!e6
zlw`Yj1^TEVzJS2tmvl!vuowG2KAVmw=o3T~-}tw0Sl$nJjp3bY;yNGtM>Z;0#+1SH
z9R`1e&{Bm^KQdO#915nn3LFT$Pi5HF8(^N<o9GRYgwN6U2Dp_=8@0%ep{B&s+x-JJ
z&AP7E%_mZxqWjF2;1@#}VHD54sT&x=Z8@k?VCI)E8rt?N-4exdx<dC3iAx6nV}Tb5
z@I-=lopjb9K=r+pO{Lq=PF?pK30Tk>3>ULnnTfj5vtLzDog{(l*3}wy<&-$D`s>I`
zOR4jYF;PRab3RFKk?aj1WY`Mf0^#AagoV7{(Tb|3htVKb^%Qu&)cgkcI0lOuMHisn
z3-?|#0ac<Yr?iL7SKPkQn=UcYuOg+ZW9O;pY05WJGS<TjN>7Qw%hKmN_MignS{+<f
zu1}bV*HZD7hU&R9xQ(I2s*O?hHSDm~?>Hsczkq1!?ed8Y8)tIi5w^`EXwMpTX0%9O
zAANafsCn{5xu)*__@+nUGgA8^5YT?<K)#W}9jVgzCKo<H3cmqg_~|fKC{yte4{8;7
zT$C;94Rso>4(<YUE#H`v_619cj!K=wRx|7<NzRoxc#J@*NWTnn1wLw64lVdng;Gpv
z#->pq!j8y-Y%sIJ+;VtNlfh&8zX@O701HY)*gGaqH4l?>2U|pf2Y0(aemQ!|q0o)y
zrowP1mvMvMe+d*mSmjZ&9vs!EbXLdHC>fmJzm$M4#MR_Y+75u-*vhhp8#XAMapT6M
zD&*ZS&&F3M89BWz9M4(bEx+ui`yoY-fP!xxoolj(^y6=p5=1(>iVBwvDa>*K0fsP?
z@VR1GEaOGLMYE1WM8LFzpmDo&xa0x$K?47hQqR$XIXGBYwTAQI4M39!wv_Ilu6g=m
zea5z6MYINW=cpy)y>>%8qN9jj93WI`-M((nvgY6yF3h1yk(`~blhq)s^y0R5-nPVI
zp0gn2wtv;tB1Y7dx-%XYGP)L~?J2pu_WKx)L`bVO2+au`d6>{HSFRgTsHriH@dv4Z
zpLSllZz)bJBK!f=))E(>;2xa1)2mgq6bbvt_#W1Vd+!Y}JgI0iMQc%{5lcOlI#H7j
z=V}w?Wf2g|gZ%eX30FX9WO4zuBiv9C9&@nLEDRm|hTwC6=FWV@>rD$v<A_!sR+9m|
zS)<W53TdPI_jO<GV>h@w>L1=m`jqXypkmGC)C-67)_dXL8ydikbeQX_8N^mR>r2{z
zNg;kQr<j)()MFoi|HD$@sO$KUR1H!gKY5>!0{ova|JB`_22sgHjY+~dxp~ASwSBgL
zdBZ#8-5&)Wl}0=Yq~%B{u8b*u$KHUyn`BV`{6pH`8@WGN70r&@qjG@Ysn~WTvj+qJ
zCrKok;~#fzkvnJ}d}A5gCc4*Xv<+N!KKEb5g7<$T?)~T}czi(QGba?}{U*&PxQPFS
zxO2Wql{k(WvA9hTE;6UGV}1GXSJ(h<Rg{^p>=<zYkW?+TxB2_rohAeFuNldJ*)22I
z#`y|<&nZ#d9VHRoXkRizTO*Se0aMs6K-h*_Dx*>N_Scp0fmPi(Hp_jKq+Y$e<sfAw
z+F@%}%VQEfL+8r~fxq^8LAlFRpBa~itU?APWag5P{OcKI<>g^H09XWmp%E&cRPT`l
zkNFj(5n+6dMm%A9Mx_2G9BSbEh74&YbMB$YjNB~X>`T&0dTB0__GWcZ>-b91KF}`c
zU5U_f1U9ae81vI9!w*x>1FRQ}*(-O802;e>;~zOA?)Y{++on#NdPC5%jo@fjrSlRK
z59H;FjHIYywm;V-oTIbZB6obstvjSq+w+k`12{Gl2*+cKBGsb`3C1v?_>ZGzC9~3g
zYr_8MEKOaMJy%6+1J?u4VbQK+7Y|ad{rX-&!P=zy6^@Y)uII3HF@rR>BG+8$6`LLK
z2B4&)ppYblb#0J}SK8OX2)i=7j24BTwn+jsfvTB++4J(%4555!mf`WdDIw0r(|CkG
zL{~2o`H2}WdC>K;VHxDoi;@FUy*7B<JeY{+Qb`OSfk1J7vOVN?{g}PNUg6Y_qw^C*
zR6Og=w|c(oCk?j)Hw0%1)40MTGYD|0y$G`MDfBp~iu6Qq6><cHJG(_;6QU6Xc~jCQ
zuEJ{bXi?cfJjN|Sf*FZK#c(^J0&LU{j1#TAa38myGWl@b+4X)uQ?gqL7<2MBNns`M
zV9I6o`}W+>g}8yT5d}q5srEQJ3_Ho#L5gB?R8qEc`%5D9CP!XpS8Lx+kDGNE0`$wA
z8qJ?|6N|4`_HJn*Ga{nT+*EhuwFFTv_rLpMyI)H0ho&$_Nl}<UqxofSxzg1unC(b}
zWTNxW{F*n|bi|BWdy_DF5m8lB%5i_*m5c?4qG9=ZQ{5x<MSVEgSuh-{M>*C@pJ12X
z@~5z`T-M)DSN&2SEEG;`TpE1+Fngfup5%gcl^4X~C|d9y|6G~8zk=@BUUOwX%EFmc
zbS{x&sCwHR+xQ-Z>EV=h+=0m@lwlOY3YE>#LS4C_K4$-|<^HFOfx+h11W-$9Szu9d
zeU!8e`G0M2C8%vFz?*Az;Je2^5D?_)V)G3E0dIo3j|125gUY3HpTL_N9X?>l&L-rQ
z6Xf&;#fzZK-z~4R7b{<;Ug^&hrq<5E-kVRI`L3@%Aa}3oH$bY}qd*{KTgy!<>p8`V
zm&e7QH^BGTtLHa>#v1^vvvPKA@Ot_kvfQO(p3qO8<qvrS_;i=eY^H*)p%GKZyYcR}
zaPI+>n>)0=f6NA#ZtO06Ztk4p{UI_hO5InC;Fb!A0VL7m_163)V)OL`Y!K+_ntK0S
z7vN&vRhS9wjP>F56;c8^H}5*>9zMUJ+;j8o02hiul}xE`fEVcA^!NuFKg+Khq5B+K
zd;ClST6*^ec$nLmym$f!v8%rU{*ptwZ~c8V?w7i{k~=Tn07&tR?}Kv1?z*8-cKsxt
zA$JcuZ-8&VrUex^r@Q_8z!Lg}YF$afkO;8r?Hj<X7{dO%6wNR(cmvs+QoA@i^||O^
z{C@bWqgxH6v9ki@2r5CZ&@PtVZ{D_@w7za9tUy4|P=(z6=EWJbkLo$O?_zI&rq_GW
z&gRAWO0iv+rTN{ei^n6xxeglX0s;=&$L(rAcs*}FZ|%-KcsKyvpMQUugU%jAHqijj
zXER6U!eq)E=g-|zP!jS@|M#QDH^4wlLpRMEU{$dA>Y=+EYNe-Mxb^CGR(E6m1~@ah
za=S4PgV_0h@_}r0Z;pCD4HiCBJVSCpy}ZIQKmLdXU!1i+LdVvW)&1-BXJFmyar4h7
zFkTKOG}w+r5c>Jw&HIA~iXBMJibx6s>Q#2%-P`^KScLL3Xp~SLKh%&F^aj{A>Ga+&
zEYI=t4|)SUzg7%_pCH|qK~T&%5O<t%yLmG6@5y{z@d0^>y{cc_f?i>vV15HcbsK<F
zo~u_k+@P;m0W~Q@<#Zy2Hjw)UC;-0}T**^zf|kTzn?NU%wt8Tpr_#+%L~zi!TiDd&
zy;u9W;Fi+{=f&Bj>!8~{`Nj9<rS2mTF?2NW-|OxnPyXOxkymnX`IA_uV5m6M01<Mz
z`3C3*l|en@{96B9RTG&Dp4^D<xON{Mz5$$|_wu22Le_kt*wcOB^9JZp>V|4}Q@SM{
z8!y((7d7VmZ{7e?P$S6Szc&h@qntW0ciF8mKPvny2iXI)cAx&46MN?WBnVv>+=)L&
zhqg~5I6-6iW6EbHpU>}pBSZ0Vs!L@p@cUgLRQe8Cs^x>|SG?jrpHG>+zVP4J8BKw8
z{FOkQ_vQt!ZW|B@x5VFH1ur-W-vCg6e=ie+T=<D{Jal(LWAb;ltsR2ZPo{3~US@sM
z{o5~AF%RzAFP=K(-44KiJfb#N4_-6QoiQO*U2lNR^NobX;+bXW>WDf<djmW{+JC(P
z_RUTtx;C+w-Jnam+t3Ysetra9Ah{wxA)DeCe$5r%3n1qcoz{#^&s<QbNfc{<K_}3~
zakKP~SR6cFCdR)CK2AZNpYnt1%ze$jc0R*Hg1-AhV<xQay}AWXfuIdTkwM{AEpy{e
z{I-4bdAlj_3uxse-y8y6m5|K)ZqUD`hJv85gwFnH090>%u~yiw*3s>z24&yAzd+oU
z>XuE;RqNa!-9JyDCD5ACfH0u@3rII7ICJ04yaHO-(YCq&>h+uo1uudq1?Q0m6e$m&
zQwRkUv?C~8xDDz$0f8={4{qLzf8PAp+rPi1mzOE%iVb^QIs!poth@X9zi%Bp7e4-1
zmG96cdv$SklnBlQKR-bgrsl8E6##AN`*mO;bU-EN=I5YIFcif9>UVLx0X$woldm9X
zO^;V->CY+fqu3h&3fMyM=;g%#^hqcRQQrR>*b@i>f|94B+d9M(=-A%?cHb$<SRZa(
z#uLhH47{iA^*)?^z0`=M7?_-T9+aJ+=sy4X1~{Lx2-JYkebDIMUGxBhH!e1VtlW0H
zx+tFmUO#HGa4KX%JIH2WB3B?htZgbguptSc+)By6r_Vr<XO+35gzgakN#gY%hYl<#
z7Q6veIPZ-vx=a|~04^N&Yj)@>0Y9B8x>Q`+-K-s2QUum>e%TDW`+^CbNR$LDRKYUl
zw|8Eh=3U-vwpMF<sD3X$74Xgy&r0KznxIhF$Z_EYSu~0%HKZtUwk-6Ud?u6vIHfqy
zrKo~hK=!}IL)j(LQk3XYC0+zKbxKlBKH&4EC@~a5u?7l@%tBA2P8VoFcclpw>nX{v
zp=zlBXzlxsY~_5>>dk^Tz<Q1ngQ4mEcVz)${&xZHO({y|_j}cj$8^`AIn~;PD;=K&
zgj3Ksd-s<O2lIKilM)k`uE61k<4i+(`g?8t+f7A9@ZQp1`sPV(8@Sg0r2oas<!9jT
z&CK}i$xyXNp;;CJI4C~{y|$J8Q;|zk#bj&8`?NV{w{e9wcSAv^7cZO-^ZhUmFm9wT
zf>@~UJ6isT>xgSmp1-cSP%Vg@m8ZJ2G(zXOtZjw9dA;AUbPamgKUlMEnceVSaVm&X
za%fJxSGFl`)@?C@bIy!)khcAih3c~4l4AVqJk`8vq=W-Irf)=_0fmU5-D$!IJ6*|o
zmlFHW``wlkmzHdLHE>17n#*f>iV|P<{iNN`i?fzBw~LlF7w9ew1?(SxmzEU|m-02I
z4V#S7pZ6;+Ewj)et$kjxNmYBz8MjG;KK*m^M#Uusbk<<v+|rT)$YswMLwtVqg64Ft
z5?^yPvB@yuD7*-4IRh`AUF`eQ7pPG}*$>KpmUjPqf&S;>)}#i&NLpfBd<_0C*5jXT
z9hNc`0D!ov3KySth#agM^~)f9Z!lUuQgVQp$unWrP<wTUdQ=LyAPsAw(z3Botk*K1
z3R5%(tdfxgFo#D_sqj##!AlJg@%7N65diTPssK`Is#zAdDE7ja03>R|cfsiVZC~JO
zkVb&PI+6fM7<eu>O#loY03oZVo(o8a1<xIu@~@mGm;nX{!3tS20#FWv2UJvLj{pLD
zs76Pq01OjA9tC)Su&oLVk@jMF5{@Dn5|S0%($sn>worM4Fo4jiP8v&O00{;VC;4FU
zu@VMWk*F`sz#N$O=jY<nW~e&JKZcA78=6!S2+fK2f3ANV8MUOvM=UO_r2nyo!HOUf
zAOd*qU@pQg5t@_BK?B7+?Zgu+7N5kcqsdGG6>up=(;Tqs<a3ys@3tQ6rP%i~MR*vD
z6@b6DiXBUnqr*PK)`*~$rJ$6TXz4C;4Z_mIvr&x#0l%mt(Mp}(3*j-TAjvmQ>jeAR
zC-+#uFaxE^5EYD-VQ@&ovj}!H_r7QfVE{0C+gS5P=-<sD_v`6par(qqjHewk!M<l2
zWHV+bYRK72&tR3gav~{FUv#P)MUvs_l}wWuRi0M@@Cou%%AnLD0nCDdRsaDZpnG{a
z07)89%MG9l4+9(n5D>7jknyni090_rvDQ$?Fhf~YI7C>4{{tIr%})RrD4Qx-%q>N2
zVVOMhS1Y9V>VFtkEP5_*^9lEg*WB-%DA#W^I0MZtC^t+9pJJ$oUN+W-A5_(4RQ4+;
z`L#=?G$rW;Nfv(WvAgE-g!TzJ&F2QB`V+*Q!h0T;N)|C>O^t-f6USx&TB%}i=6je0
z?9*V&Wm$HMbePhl1y%8czlOG#>PE_w2!zt<BW=KM|NhC({Oy;vj!79>gCup<Az%a+
z*n_P_`zZoYMgIj@9$gfxi~v_6?TL&V@4ZdMznsmK#D!IAm6cr?EL2Gr+-6119{qh8
zJ>j<uOU9smbcsN!WD=tGh%Q40?1wZgt1N6@$q0N!>Y0Y{egJi_jiuu$Tmw>*DnD8&
z54%RzH{??W{fD##;~61%6e6lhl|L5>x1#eb_o>V&aI(#+RDJwr7}&%rDg;T<IOr@q
z;jkZ7;SyXj2WGHwU<Xo&;$V-6qq9rn1m6K+WaWDr<?LAi%Ha49#&LM)$bespA^2Os
zvV;Mu<op~pBV9=;J!A`QBZh*Rj1NMCMxLyS1B#-$BT59^%s-OpIO^Gyqv;qpibzQb
zRV3Lhq;tl4wLVC4X`&!WVyPSUnMM~y%Fz6h=hdOYrZ3vcfWx1GKQ_EblBw*OpZr5H
z`ANkRN!kg|Dvk;r0cM^poh6v5foofq+Z4rfg-SMBa$q<oQZgu35r9iUH;EnWz^%)&
zfJ;n+@on<`>=^xa+H)Q<MZX6_3{2%d@{lt|GH{h!KNE-7Fd7I8z#!@ora@4o7NL`2
zKqC7_B8%)S@4(CbVYFNXBloLb5>}1^S8nO3W)Bh)ns0V?@mDWss?;zTe(7xrbTt@#
zL!2TmTH|KL5ja@MU~G?U;A}e<oFTGSJZkxwPO6lWVEM-d23L>fDmD)bQ%xF#V4$WU
z!dD9cVyxgepj;vh3!SMGwE#+!L!KHLn(I_KWCBHc76m9@iWDwI3X5YEbKKCIlogXF
zQU)XGh}f)|T^f$hf=3XS8woVF__b2grewv7oX|IrG0)xSLR1=pC*_+IQZ(J7X^5v^
zG?aohjY);d7Mew!28ffMH-c%hW{%_Zd_RORBdxg{N50C^ixf;UhNFvvQiX&H{7B8`
zOd*1j1+S;r9L^kLIF>aTwx<Rs$wI<K4`VZ5KF^R}p+pg@+&hYjH$eg;8B*L7qaId@
z4+xi?XQD33D^ucu<+I56rHh4<0+WuAXPPyS&4G%a|LG8ekAy`@xi}bmH<KkZRn=Zy
zuaO0Pu>@x%$_O^RBr+NJBP1$vEIhRa;BSxAnxU4bN=xNP<;JTd8H^4?9(tIByo#Z(
zMH@llr-h}3l%>cN8}1YwCfnOKP((1!u>2(fj>*dRD1|GyL`@5t>$-fqNfKo*xkNG@
z7pTglW{QF}9XzdVnbPm_QCSODm#9X);q0Mm#0BD?=vN~6+f=cKhVjd464iwM`Cti-
zAc?k2WR`PH5qecoR)|AVDM}9W3`IUE3ri9#Q%k9GjQj@|T?41BjP<&YKCq)XI@__F
zpFY^p0^=)nVDn<>WSLGM5q&?D^8$_}l`#35Bp(sx)QW_(r#<-Dl)p)rd|35s(o3!S
z-5l|b{!*gQrw3P?*htv1S4WR-;D?FW*LT><@L2QNC@ip=eXZ0DF-0K+hQhe<k-wz0
z0*E4|OOx3Sk{cV?bBs9k`Q1E`S$Spjxn$(=isJ>Cr0psZRJWun<+I8|v!4dyvv$R`
zW@|<=->c6eI=jFz@y-}PwcY#`5ouv+x(*kiv)nFp3}24<js#$&z4vF?i;1PJWvIAQ
zWMSuGW)o)U`PNhGh+vhNh(_eB4msXSMx(8!rG0@(EthlDCdz-XRn%Z8MNnj6R^>wp
z4JIkUMAKcpsjQAAB1R@~%yZO~{$31Q*@TD+oVT>64k2E4OqO=9&|;>kqe4wWB9jEn
z)RItV-~b1&22vxx6aL-^>6M?|;YLGbn?WW!^F|A#gm;ns7B2TVo_)|`&J|T)vO>CH
z2u%)UKqu+>Wp31FB<j6E_c-Wn1-eyIT7Pu+g#P}2@}BFsx!Ah7+CqyZE&nUuy3qff
zHv0e0w=O~jO*HQI(bknp$Is=Xy_>5am4>^uy{(6*yCqaYg7m@N_Fp^yd;Kp2{ucuO
IKZU^m1DymAIRF3v

literal 0
HcmV?d00001

diff --git a/api/tests/music/test_metadata.py b/api/tests/music/test_metadata.py
index 716d9c979..9a3826ce3 100644
--- a/api/tests/music/test_metadata.py
+++ b/api/tests/music/test_metadata.py
@@ -149,6 +149,7 @@ def test_can_get_metadata_from_id3_mp3_file(field, value):
         "sample.flac",
         "with_cover.ogg",
         "with_cover.opus",
+        "test.m4a",
     ],
 )
 def test_can_get_pictures(name):
@@ -189,6 +190,35 @@ def test_can_get_metadata_from_flac_file(field, value):
     assert data.get(field) == value
 
 
+@pytest.mark.parametrize(
+    "field,value",
+    [
+        ("title", "Peer Gynt Suite no. 1, op. 46: I. Morning"),
+        ("artist", "Edvard Grieg"),
+        ("album_artist", "Edvard Grieg; Musopen Symphony Orchestra"),
+        ("album", "Peer Gynt Suite no. 1, op. 46"),
+        ("date", "2012-08-15"),
+        ("position", 1),
+        ("disc_number", 2),
+        ("musicbrainz_albumid", "a766da8b-8336-47aa-a3ee-371cc41ccc75"),
+        ("mbid", "bd21ac48-46d8-4e78-925f-d9cc2a294656"),
+        ("musicbrainz_artistid", "013c8e5b-d72a-4cd3-8dee-6c64d6125823"),
+        (
+            "musicbrainz_albumartistid",
+            "013c8e5b-d72a-4cd3-8dee-6c64d6125823;5b4d7d2d-36df-4b38-95e3-a964234f520f",
+        ),
+        ("license", "Dummy license: http://creativecommons.org/licenses/by-sa/4.0/"),
+        ("copyright", "Someone"),
+        ("genre", "Dubstep"),
+    ],
+)
+def test_can_get_metadata_from_m4a_file(field, value):
+    path = os.path.join(DATA_DIR, "test.m4a")
+    data = metadata.Metadata(path)
+
+    assert data.get(field) == value
+
+
 def test_can_get_metadata_from_flac_file_not_crash_if_empty():
     path = os.path.join(DATA_DIR, "sample.flac")
     data = metadata.Metadata(path)
diff --git a/changes/changelog.d/661.enhancement b/changes/changelog.d/661.enhancement
new file mode 100644
index 000000000..38553fbfa
--- /dev/null
+++ b/changes/changelog.d/661.enhancement
@@ -0,0 +1 @@
+Support for M4A/AAC files (#661)
diff --git a/front/src/components/library/FileUpload.vue b/front/src/components/library/FileUpload.vue
index 025eab930..d88efd5ab 100644
--- a/front/src/components/library/FileUpload.vue
+++ b/front/src/components/library/FileUpload.vue
@@ -158,7 +158,7 @@ export default {
       currentTab: "summary",
       uploadUrl: this.$store.getters['instance/absoluteUrl']("/api/v1/uploads/"),
       importReference,
-      supportedExtensions: ["flac", "ogg", "mp3", "opus"],
+      supportedExtensions: ["flac", "ogg", "mp3", "opus", "aac", "m4a"],
       isLoadingQuota: false,
       quotaStatus: null,
       uploads: {
-- 
GitLab