From 7c5d232a9bc160049cd95c45bafb04c270292799 Mon Sep 17 00:00:00 2001 From: Calmon Ribeiro Date: Sat, 13 Sep 2025 19:44:27 -0300 Subject: [PATCH 1/3] refactor(astfile): add generated code comment to output files --- go.sum | 2 -- internal/astfile/file.go | 15 ++++++++++++--- internal/astfile/writer.go | 4 +--- internal/generator/generator.go | 16 ++++++++++------ 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/go.sum b/go.sum index 2d25fc5..1cc29d1 100644 --- a/go.sum +++ b/go.sum @@ -66,8 +66,6 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavM github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b h1:DXr+pvt3nC887026GRP39Ej11UATqWDmWuS99x26cD0= -golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b/go.mod h1:4QTo5u+SEIbbKW1RacMZq1YEfOBqeXa19JeshGi+zc4= golang.org/x/exp v0.0.0-20250911091902-df9299821621 h1:2id6c1/gto0kaHYyrixvknJ8tUK/Qs5IsmBtrc+FtgU= golang.org/x/exp v0.0.0-20250911091902-df9299821621/go.mod h1:TwQYMMnGpvZyc+JpB/UAuTNIsVJifOlSkrZkhcvpVUk= golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= diff --git a/internal/astfile/file.go b/internal/astfile/file.go index 9c86aeb..46dbc32 100644 --- a/internal/astfile/file.go +++ b/internal/astfile/file.go @@ -22,13 +22,15 @@ type InterfaceSpec struct { } type File struct { + fset *token.FileSet packageName string imports []*ImportSpec interfaces []*InterfaceSpec } -func New(packageName string) *File { +func New(fset *token.FileSet, packageName string) *File { return &File{ + fset: fset, packageName: packageName, imports: make([]*ImportSpec, 0), interfaces: make([]*InterfaceSpec, 0), @@ -61,8 +63,15 @@ func (f *File) Build(qual types.Qualifier) (*ast.File, error) { decls = append(decls, interfaces...) return &ast.File{ - Name: ast.NewIdent(f.packageName), - Decls: decls, + Doc: &ast.CommentGroup{ + List: []*ast.Comment{{ + Slash: 1, + Text: "// Code generated by moldable; DO NOT EDIT.", + }}, + }, + Package: 2, + Name: ast.NewIdent(f.packageName), + Decls: decls, }, nil } diff --git a/internal/astfile/writer.go b/internal/astfile/writer.go index 51f006a..5135805 100644 --- a/internal/astfile/writer.go +++ b/internal/astfile/writer.go @@ -18,13 +18,11 @@ func NewWriter() *Writer { return &Writer{} } -func (Writer) Write(file *ast.File, path string) error { +func (Writer) Write(fset *token.FileSet, file *ast.File, path string) error { if err := os.MkdirAll(filepath.Dir(path), 0755); err != nil { return fmt.Errorf("creating directory: %w", err) } - fset := token.NewFileSet() - var buf bytes.Buffer if err := format.Node(&buf, fset, file); err != nil { diff --git a/internal/generator/generator.go b/internal/generator/generator.go index e77cd78..4cf5a22 100644 --- a/internal/generator/generator.go +++ b/internal/generator/generator.go @@ -2,6 +2,7 @@ package generator import ( "fmt" + "go/token" "go/types" "path/filepath" "strings" @@ -57,7 +58,13 @@ func (g Generator) Generate() error { func (g Generator) processPackage(pkg *types.Package) error { g.reporter.ProcessingPackage(pkg.Path()) - builder := astfile.New(g.config.Output.Package) + filename := strings.ReplaceAll(g.config.Output.Filename, "{package}", pkg.Name()) + + fset := token.NewFileSet() + + fset.AddFile(filename, fset.Base(), 1) + + builder := astfile.New(fset, g.config.Output.Package) is := importset.New() is.Import(pkg) @@ -106,12 +113,9 @@ func (g Generator) processPackage(pkg *types.Package) error { return fmt.Errorf("building ast file: %w", err) } - path := filepath.Join( - g.config.Output.Dir, - strings.ReplaceAll(g.config.Output.Filename, "{package}", pkg.Name()), - ) + output := filepath.Join(g.config.Output.Dir, filename) - if err := g.writer.Write(file, path); err != nil { + if err := g.writer.Write(fset, file, output); err != nil { return fmt.Errorf("writing file: %w", err) } From 30aaea279ddcfa2f1e4881a941ad61bda58c8c61 Mon Sep 17 00:00:00 2001 From: Calmon Ribeiro Date: Sat, 13 Sep 2025 21:10:17 -0300 Subject: [PATCH 2/3] build: remove unused direct dependency --- README.md | 1 - go.mod | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 3f929a7..1d73ea4 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,6 @@ moldable version Re-run `moldable` whenever the upstream code changes; imports and file lists are recalculated automatically. --------------------------------------------------- ## Configuration The file `moldable.yaml` is created by `moldable init` command. diff --git a/go.mod b/go.mod index 5b5bbc4..b0f4342 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,6 @@ require ( github.com/spf13/cobra v1.10.1 github.com/spf13/pflag v1.0.10 github.com/stretchr/testify v1.11.1 - golang.org/x/exp v0.0.0-20250911091902-df9299821621 golang.org/x/tools v0.37.0 ) @@ -37,6 +36,7 @@ require ( github.com/rivo/uniseg v0.4.7 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/exp v0.0.0-20250911091902-df9299821621 // indirect golang.org/x/mod v0.28.0 // indirect golang.org/x/sync v0.17.0 // indirect golang.org/x/sys v0.36.0 // indirect From 747e3cc03b10f15ede16ff0dfba2da29b43f0985 Mon Sep 17 00:00:00 2001 From: Calmon Ribeiro Date: Sun, 14 Sep 2025 02:05:28 -0300 Subject: [PATCH 3/3] docs: add example image to readme --- .github/example.png | Bin 0 -> 1143966 bytes README.md | 4 ++++ 2 files changed, 4 insertions(+) create mode 100644 .github/example.png diff --git a/.github/example.png b/.github/example.png new file mode 100644 index 0000000000000000000000000000000000000000..9a13a3c77045490fea29307bd695bdb37864bcab GIT binary patch literal 1143966 zcmY&8~k3gMf+)kZJO1(k-|of{N_Pwrl44I-u>g_zF@;X zUbu-)Ehp>^RDYOFE{NRs72ew!tC_i5#fPi>$5lK;KSHZzl8qYNrH9ROpDPtq#1dbj zskYXE+gk(g`_=RhEMKb;AEuh9PN#+Mw;yl(f07OnUQM|RZdCX@jQQLH-?tH7HKRRV z&JSJq+#eb|zVH+2;XLx$XfS--fBX!Os)3kSwCPDn+lYX^% z-TY>wV`bP>*mpnO)MoneA@=J}i_%A)sXNohn_ZGe)ZNsd!ULRL59jene!@cxhZn8h z_s7F5=!iZEyj?$huFnI7L+l=%C-G+=?tsUg5`Ijl-D@4-Tb+BnIyZO_Xu03iqPP(D zPBl47f4FmzJ6 z@c!|BYUxqJ`u0avOXx+&$H#j{KOc6-J8qxjrKcZB0e+-4x#oVs;Ng_nnh4S7HvaMK z`RV&3Zg$zdbnk1HtL_;^&)ePByKaN&x2O;A%eXJ5e73un%O7?~yx(WDT&?O_?Ug_D z#s4%IdZ-Y7*olDW{azbg>MK0(31QA)c(%g82N?n1sSfeMatQghy<8dp?p)Vy552XC z;BIh$GxUCt#QR=e>2^*F?;_B^jNoqJ=_4g;Q3Kz-Mt#^HU~9O)FFEdhxIk}xSe(+m zyKmG|LA<@J8rr%bF%9LuT`hk+`Z3Lq`1sMZYVP46y!B!A)vcnV&-2@1$N9JmYP<(h zICuyY4uk=N1Ct*4x1Fu?#aCfKslosI{?k7(6acN>yM{(_2ISG}**C0oB%=G?RyL7b zyLHKmgH&hA>B1REhVQbzZPFr1tKO8#Y5p1wZ+n~Ou$R(rlJr=Av?&MYnh%l7H)SXI z=YJcah1VzLXS6=4){O6cK3(WJnQQg_=k+r)yLehRI~+=qr{|)D9GygG$$kCOrVpB( zt!zHUPmhLKGWHh=m07aJcB)q+B|A{ zk*!QDOwEe+MjBUaumNS8U5Dg%%hXw6b74Kn!jL-`h@7J8bZ|dVnuN*5rPVBBC2>Dd z;{$^*oc3orAp?l{&sL{Vc;NGA5c)M{lBhvsze<7& zDoL)S;=;|mmAg)3{NB(hmJT3!qEqM3$E6U-tj~!nU*pQV;yH|KPg8q?Rq+EVj%w1_ zV#!*juTV-Ck7K(u%o*6Lk|&r9~UY&e+)` zSb+y&9FeyX_lCUj1|G~2T=yz{yRq|;@{l3p=z^ITsq$;%4M$tCes7LX5W!HJgMrP&P> zAX^qOJhA^AP7klC&&nexGKRdihZx8H1p{6DKlh-4qHXTmflLD<8A@v?cJ|+!(B=>Q z6;B-B^bzE%fNU1kj|O+BxQxm-ZijZ#H)-)ht|?xL)hJg*a#a-& zR&B9`SyEWV303{z<6PeFJi&XpSmIf|ipgdXGkKZl-E!lt@1r3u>cUgS9X-LwzvsFt z-pMk@le@$6Y!wMA0Z%UjP0lcfOA-6e9aZ`USH9Xgvf>5@+DnHIPN9~F5&h3!{pTjr zKw&0Mv`syl)B`gy!ko$+sc{hvBEiR$auoiR_1r9p;yq{vwmh?2i|A!aUX)&LK&kZ z_+0L@O-X$8x-{@>Y7?E6&s8Q6mS{cY0@~Q&Ysc9m&oFNA*XmDW}@79$12 z+n8xVSijQ9K%L`oUa%!N9>=_htCek7G2K|PSE7Ep!r)QrkP=ouE>@0^k|~a&`y$7& zjB@?O7jARq6{dDb&*}^bClDj5=tO1*)R9K6Mce%2Qv}@A` zpb(wE(DoGyW$wj$Fhjt5_<&hg+OL_U#EuAGSt1Qf)sN=--hyo?;ceFOwHBcI**r8t6E`GzXn@k*BzeRD%-s1D3*fJ-G28rzINNdGZ9eaeVgTQ+IJVc zvkM!{ltB~EC0QV1xIa0+;Gn#9k>hG!Jm))P4n*2X$yU&(qh^-6l6H{_*RO!lvuEVk zsL9cL>U{e48Nl9u4v!4^j3M|kp0eoq1eWSCGCX9Dx^2N+nB5de%|pmm7`caQ>Vr3= zV5riYEjUt|TaKP8OUd-SXxiY7Q302O%YU$sfG0_^COPqduxVy@&KJe(!bJ)8JWtsM zj<*;qXVBWYZBAkElLzbGv%-sNtRNW!JWI;)qR>bst|&4%UnYn> zk~SknD#o-3Os^UNSB&g`$_4OJoE(M=fi5$`KX`QOa8NTro$;D->Z1A<)d&$=sqM=j z@3-#F%Z#a^vG;UWJtxNl%zbWY4iVzHOMPF~rQ#ZyemUTk<@hkXH@_z}H z{#(C*2ihZTyA36-z(?_Q16TW-9LM0OauiriXmOd}bdKVxXnluE<;A718hTfp6vnEm z!+A7hIBHhwNY|bY!I!F0jQ^D)lRRUqoK)vA`hbjLRO{o?OaKI~x!{&uI(eogkxRR3 zzs|b&ZJN6JKK!A~!6gTApLco#=ZVF}Mm3CL?5b=X3Hlt`y&ej~UD*G+X$~Gi@QsAn zGZPlh5;&Mhm=<6WlG(?>@!vCuY}{fQO5B`uBn!h&76^|uN`?Km=t2cSP33bPe7t#U zC)}}LMGleYcYTCE2`ACdAS;=)q6k%b3Y-SBWu+6nQNI3YbMULm>ZrSdk~wQM+!ig) z`}*cnpOoE-6x1so3blK0De&w|mCidn>Aj(bfiG7KtMm*ii3iPj%+@#Hcg(CE0Jcby zJ~Y#`h#E=nO2LW_KOmRs)!n=v_&}p>)*CXC{{H6#^y7{yYNL zx8n8Ow?YjIkgBze6cGUOrX`kL@EQaUlX?sxFW*F1No>5+sj#jKXj1^~rKYyw z>nF51OW=n2dO%Xh+6V>3!t4J{5+drh#)#EDq2VukWYyLT zmeFt=S2rSqGYFu+Y^{s28>Edn`T5e3l@86wQ^XAE;a!H+-+g-(2A6D97v-avAaR`f z`vFsFVVGeWbq$(<4GKMw4E^Quj$;%C#RkpRn#zMQs_Eb@_rvEBiq0<=r&kYi#))dW z2);ZQM(N%ZXvbOkk&!#Jq{o4TTvr)W<;N!^AFWfhwEBxPZ+O-oD+bULE*|(<;_G?%P@pXZ}Q-{6CHMt*{S&#F5d!h85sZN(J|n;j~+IFmkhKU z?~?s3tx`M6MPSV;er&9@0A$*lb-w*CbAuHeFtX__iit2u#RkrzW=E5IH-X^jlfL1X^h();+x{S<3pv?-Rj_or>N5{Ij!HO`$iRj!uyp z);9+6<4*|oO0CshA>fS9_BG=MMJMM&!yMlD%d}EP`{f$6m$2U;jVwD^$i+e{bwyPKyRy>c2DwnN2wT9$G z6<~U>-T&QBrJmK%USq)DLRE*MN4k5|)Ma!ca690WCBTc6=~BrQ)r|t^ zG9#U}jb30ph4!h&`r3fq%qm029+V^Q-%rv8D~#RHzCv0;o}X&F-@0XxG^TtiRF}Zr z-+TLVV;-_b%3CKhb*7iPfUE3lrg|eX_;ZxmKv5A}7_<|FZGZ+YD(~$Tani)&jS@4N ze)gq88|+~H*^i?^;ea&SVeErj-UjOqELaM3JZ0kPA1=;&N(!COp#5xu^E_1+#1KXK zV%VtX(`W}CnAAQ6>ffmBkI{X)#1*X!@MEZs{UF=sxXf+my7BeDS^%NcdCe%hj4tcY zhu>C}Yi^pwDMV@W-Qr}L+9X=nCXv4Kh@sv%w7Z2Uvd?%U1M-qn?NvOBfcOeb|AYhL zJJK0u5nOF_b(ooCa?xm2*L9+yLw6n3a%mZdTh;71)x~^!1wTUhB1{o;gj{eP*83DU zH0-)1-vg<@R8~xo0@$InOV=`0=F2Mx52oQGk8ejPf^Yo9)-pC8#t~H;-#JyV@PA?7W zb;dz?hZp?>2a}EEmglLTs0;4`-o6V`uef5!@6QDVDvPQXx#qIi6myA3*!j< z_`*J_-r8q&^!_AGGIfEf*U$nyp(cYL0pJNkh13D`D=pheWOLlb<-hw3E}|#edle50 z5$a=79adPh2nUGfo1K56!&)TT{RP3*nwQ_q7@kO=FzAwh8(i@*KDTKs z8Eh&FJiSl3z2ZRvuf8gz|IJnm<~$p~ulz3?yOPWZccopbw08C~Z1BqwdYe?rr4(Fu z$!RYvLq-%C2vJ%Wn^vb51XzPkDs+jVf&cF>fscQiKlPdVsldj8xHUG9PYUSN8|LaJjh6yOqucgoDzg; zMBe1ak_DJfL@Biq|Kymr?ylYulh2;r`N@qK!&MckLKH}Q!sSY6QEMZao~=$$FvhA^ zAI;k^zb|t<=%OgZ;|nyPkT45ZkaqPY`(MH}{>Hu)VIkbIOY!CNLLB5Z?a+7h#gMN` z7+V2w9{I`dTp}RF-~GtZB0#%NF!E@ivB&U*BLu*t9eidh;W7=6EsTL5v1dq&9(NE} zBXp4al;NSW*^dK-l?I{zbfkZqEx&@2DAQQdeD0{mzOmp*q6~*n8AY$Lb04lK`s{B> zj+nN^wQs%hd8udSzn%9)a?p9Ho1ldW)yG|uC$Vk5eWuGt&#-LUlk?nuU@a=itZ0%) zd$qiO0i~N(zdI34|NQ6Jq1$_nx1pUXC~U^Ek)6z7(u#1{>O#-&i54RK7rx%e<~od} zOLF~YwQB{dKQQZ+VqunK#e~&khAT9VvcnUJ$wlO0F-2ODaJ{KOvMa0nUkh7owTP)I zW-`Hf0HN_R<82Sj@4Ox_Bj!aP%RqyzbvOdluTlp!{azJ?-0qrfw#%ctr`6-Hcu%Nsl z$Xh^FndV>_8^Y74yV}U_q~%Ls1t)!?)~N)1+4L)Os%G z*fk{!VJqCHI_v7!eC5`z+Wi5 zZ>w7pffg%YxS-&XVtj$y<#zn;OaSXSscQZi$b3Ie%Wej(NWR8$xpchWjy*zG|OCmvGHQaYrG zg?2|l@0uwY^A|!BegDjaTP{*iWrGdE|HK6xGMd|5^G6G!zv}FuEls`QZHY2`Hi~Q zvaEbYW>xrUEZD;uYDvOmUzrTUPufr06BH3u_bi&TUavHpqBY1<-lvs%MlGAH^^=8P zS9WmK{yafYe|vYp;cnb^NK=6eU7v&oukyUu!~;h|ovY9L@D6Uv+jJlSSzLFZis3cD z`Yyo-uIabRm(tOOZlHSg?D4)|MiLp=@bhk1hKFvW9aFr(y>Prs&R*K7$#ub<-=0ggtAX4KYJQ(5z^sFJ@g1 zQ-CQG+Q)Za;5bj(wZG*O-S%27N@1GM)c(@w-WkEPdz@5N(e~BRzqBSYT zvMA2o zNEkJW_B4+FkL?&E(Y5DbNcMCOy2z|c4X5ELZ%eZmmDA1)!({AKgJx;!-20oy*W^H+~fm#w%`bY-B2IIyvs~m%v{%#PH3~N$~MgW(4>1$(Far z@D(djZ&!@S;Jh<7$-P^B5>wl_Kn>Wvi{BpXw+B%h0G($ET~osb}p?TbqhxyoN7T z(Q5uG{)rNb{;z2E0Co#p9X@lAR!}=J!Fv$G#2}x^XVu+}Z)?7|%=WILWG~wLf%sG# z7_;r0!hstgttL}zZ6J*jjz(?HX`ov6fpfarwWS5vzTvbq8ScEo95~ z&8?tpVC7PNGuPTPUo3F7voWP-_=XCRN%ndwqrt@6IC)p`<`o+HEcq}KiIiLZ*m1Md z@X`Ek${z&;rX%>V3sq&P4Eb7XcaXpBx;j*N^c3s)&WJM?vm2N zKNZ8*lU_O4B=jfdYtS~te5q#?S?UN4RAi4k7ddG|GmK#lh29p5Xo~(LHZ9o~sa%bAm7 zDWw2h?NO521Cyeiu<&vvft+`FtCqF&5#znDsR|JqbqzLL922Mq!sF}l9xgChzTTR$ z^0C8D2vm7jr&DE6VhovzoUX2?y)ICEY^JOfsvhKT_i7$M+mzC-WygArVJ_CjrI5TO zDCKWGwu5zt4X=|@9bbL;%4NznEn@k_2?rk752^}6SYTm_cV~`cDYijgx=LZf%Wsgc zB1w#IjlBPwT>?R9F6-a;gmdgOT7IHm^;Mg~N}KIl5xZYk!CsoP$$R$+g53wldI8`- z2{(mmhNrSpfa>y6-iptb&`yI%mRzc7S@GUMEQQnhDeIZu6mLmG820*;oL zEW?X}pDmtO3sUf_lHt>DWZxceb^HMNuK25eFB--Xh2f$1iYJoc(7u#v*Q(at-PLvY zPl7PB0f8{gij&vLgC!+k)ytCE-_7aJmQUSkL>e;>&X^wpVEQ)RNhFa=9y#vm?*8~$ z4R#W88lhvJf_{T+2*P=97;+s^23Y;836?qJ<1Lby;;%7h@+=zU#yEBd4CDJv;@pRr z;*~cQ$D9)LW|+qOTdTkwN-mR%_1Evr)R}?<%~S|}q~>k2$&ZYn3(=Fvr4VrP?-QNIaRxYQ!vk z&#?_zaS^}WW`i}8qZ$?vbjx}NKC7r->bamphm>*0Qfy=~VQ%3uH zrNnmmO}jQ`;ga5PPRxI>S4&y6X0Z#|a6lLkIno0`^G|M=$sl$)$`{|Mk=JyBu3x4z zV2)Wo1GD_A1&}R^Lp`K6*3h`gkbxtMSiyJ(%pyz27-}O1-~RwtmUId547G}{NLGg8bL6;4PVfU@bWE?P-edX0D1csJ z@8tB*`!xg8l<=vO;2&gA4YE1>WSF!7#FH$;g!Y#0TR%XmL_xE2l|`dc&#BtbYOe?{ zJI@&_{A#T~6;(7>T$`mw67Ir^}VA?QFnVgn??Ja z7ERd?E1_%&6QARnY%DEcph0fbHSRK-Ez+}D@(edD1Khj#>&ESPza$9{VAX_A^J0iB z#qx~8DgT?q{9#)!`9rp3)8NCh&Yg5qUf_HldNSE~I^6XXG(yVQ16wTOXp@sO&)NE2xWTqf4dA2h0bu)e1 zUgl-)>L1HkY-yG`tfK{d;LwN(^1X3-dvR=^hA>3r8MhI8BWo+sD|GZ}eDEObo*JfH zbzFR!QBsUJ;N+|=i2Mut*rei*^)gu~;U_KnDxK-Hi^RJ_To~P{_La>CR8%*x z#Qyq8Lb9elawGX9Fn8b|X@Jbq2C3-z2DTvuG4w+_p(tP?h`C}iZ(VyQHAo>Nb>8zG z-$0GNruOT8mjrS?>IP%;?qspOw2GP2GG8jOzbqRlR-F}k0Z)@}YCtVePg00R2KTgC~cb*f@o?c)Lcm7QO*W~pfYT&KYRL;Mu!d9tckKz*6=L?Wie zp_f_m2+63yrDe!ipAktTtn@bCy~=13lO~-}1XsHnr+3+xB7s!v1L-c({ebr9QLdK- z30^(hHC0@7V;|24fC4H|!}A_C3&~w<-;rmYqc`W(#l|hBI!3UseU=^Mh~O5?gfijf zW1E*#9^@?NF>-412%>Z--uWqZ*5-PJ8rR^@u0!S~1ALKpoMGBEjXyvp8qj-f zZw{n>IHr*;i$b5vZmghE1EsjF^2{iR8dCixquF}$UANNrXLrWG9LS!2B|H4bn882` zl2N-jt{{>>`)J=XYXW0?e*Wp*q^4_{akn!O0Hib%@^7nZsDtEYHiQ%26ZIA&8qAGI zG$k_!y*Shfk~KK(2Pl+))=5Q0XnkE+N~?2hY-i-%bmcNx_#DN;rSErgug}Tu)cWUZ zwz{?$&Q3zZ7hp|Gsx>+5(PO&zbp_fALu@Y#0W4n=u6)grpaZ5~)OIum&x;exkEVT1XPYdjh9!QLNV)%rrYl#IO#IJBupw^-ZANPHi)QV2GtlOOR_rY_x zv&%W2TBrQoY(C5<#G!uaG$TTVcQK^ou{lD>UspTS8SF#C7jIB@sk-i%ySPq(r|C$o z@8PgE=cZ>{cd5_yt@md`+s$5_{GD@el96B)qNFCmr3YrY1jTschp>g#){>sexl2(S ze1~$Yc0g;eztlvSZIwMe+CIqM^tkAqaw#Sr7+ykWtK!(7tb83-j$~9Y>A%`5=&kB^ zmP~xEY^0AE%E{x_(bG1{QM8caxGwm{#x$9e%Psu_;e_M_t&OQN=j-1lyn;WZJW~^m zj)iXu>U`wFXTy_-F8b34+>h3S^6P^slSyU5juI!GuddZQOOtH% zkR~#FK>yrCZI*K^bjq^~EmX5o9@Y-6%sx%Ll!J1Z4B!9trqt=y@#~)4 z6>3%r1iRAh^VO#^+y#hDgj1#sVJ2*7q->`=H>IY4Hs7PTn7Ip|oF1&whQt?vapYW3 zhAfcsv+NRy3^GkH4J4UkhGiaASY;BcN9eO|efq|< z_#H-_Rv9}|5M4AwM2^F|n1T}BFI8!|3NDlAr|g(YohFGK*#Q083U9j?%AwHm;f+#O z12JS3)gjl0!s2qR=e8WP6JEeWQm8ZTZ>%?)SN>qY(|2U{;t7@3UEQZL_@_q@r^!{- z@aM6e1;JRWFSbvPRa^s?ay8%9EJ^(!AhVIR%FYTekPYJtONe!1wD}<^zbI(&2=-^4 z6K)(r9W%2@Ex64FZsx67cOu#SVM%UZZeBSb$JK6zBf`sHdnx%-GwGiIcCYB176A7g!?5QZW+vdMQK+ zpGXCyfz7f&bcFM3aTPgbNcqTUSUE?Fs3xH=);`Aye{OGhPBy);GKs+Y?_{ZMr1?Q+ zd5VL>599eC(gcY&mE3t&FR@dx;~RtSPtz_B=*JES|7f5DX?s}Vm&C` z&C@?q!{yyaRY8kC5ifkhAX`Fj8gre58&Xf3lH2OAH3e2Dh3q#N`rA512*IYH+3aC1 z*HggX#ML$jeFR*9nDw1Rtwm}yRa3>RpXAbK@qRQh2iAQsxFLEoD z4PFeMy&6P^@l~i|63;J#o^%vi5P)~zCsIMfYaPI3tY6m>n>mCjC%S_j2t9kG{&1mF zdF(zl^Q5_O%^n4|dX6hG*^c~6AB?R;IM;7&6Y^?A=wa=Yd+__k=mp*q9WYBUm3Kon z;V!;!9zI)x(nsK~?2vy)lzvI6+2M|vU$(YNU+uK|4?D;Z=MOzousEUO$<5|=r=Z!e zlehS8xWJb-S~}8`n?N3N`#Vl-J$(KY=^1v~wD9Kc>FWC%-j!trc+E7*1S_F)G_CSK z{a7SWPk%BE7YAikL3enKwXtWu^WZxA^)dtObA}|UY2=$kxc(D%k}}Z@D){|w&f-E} zO@2s$CV#-3l6>?G@BYW9I(Cq`D7Vc~jK}%zjWA=Ea%uV$j$$W*Zdtk#-M2lgGsW3~ z&oXip{X9jX4B9sX3cE4cV+#7jJ*6|d6ZnF8iZ-YcyL36j)?VTR`eRMjMs&@0^SjI* zk1_L$yarwUxij&ZYD|E5N6lKCK&{8}(?3q%Gxr$h!PNc!CY!k1`n00y zG#SgjxmeJRgE-~Vc{V0&@r;ui@l4!M=7%W7So(htVHHUYs}yUE$4{00{k8^^=FRtk z<)BYy1*2|+^rijShO6`fkwhv>7#TZuZ6g54s8ampWW`jUp#;bknr!MX2A^iJ^T=E4 z%c=E9AsZFcf^;iGo*WXjj)d(RkgwU+>+cGfEI6K1GGyYf7SsmcefC|OEsYSZX-5Mm5pBf6T&J0BkxBmlBifYgY(_K zIgdfWPK=6ci&1wM`16D|adhn6E|gn4d&CoTB8$(K#z_n^bN?2H3JwtEY|y0)b;U+D zcWO`V;y4lA?lI46iw`~|ftPHKpSFXhBgNK{9b&PX{ObkNmHNj?Koxf)KYyBnP+!7d zgwcFqk@-#|=81od!({KUB@Qd%_w9HA4B!*sE;HM=BvX5$2x?CLoZ5cpXcrS91*2e$ z=(E!=zmBg#E=b`2U|DC~{W74148Sh#crhp0bS;QTkObfzQyZhfP+}S^+Nh*R0J;t% zLNVY_GH3eMS@iOhOB-pZ^Bs&f%6|XOv{2pMnw*HOPORr+S{ta=)}i@UtTR@05wkjm z2AoM)Z|L6W(V>nx(38B%M4!sWyYzEn0$e1ifXiiEnoJr2WCy9}UV^dTkZAs^1!TSg zy@FKua6xxIKw|Y{BHJSXGb365XBtQyreSzvW(Ou1k*Y1#czGpIHg!TX>x~klh_hRI zAe`J(IWtjGUrr7Q6npzN5dte0X3A$z7>5TT!Ejs^QWeJCA6!^HOpEnDJa-~yc%3RY;1uIq0^O1 zo*{Dc))fw#n?>w&i>=`dq**P?@)IJ+&Nvb6Wm8|8rOKl0qpi?QM>1}63zDS&HK9kr1@raEyyY1*)2ySmo*ix`=F`K%aP z8g;6DPNC_rZFXw10uXpZ6Y$ZpYTlF0%$^M6QRt;XrYxC#)Hi6FbE1?*CFMx7E*6kX z;WXb2RX=^9+Z>AIOltJ@Dl$|1G>Max#&P`2_cyY=ltmNh9d5=;cEcFbzlKitFKtf0 zg{4f{sOf!ai;rLphd`SFZ;}_`l(cMtAEDC`x~rz;~SVuB76EWy^wZc zUR~ZI=}={-s0F@eGteVj2wQ168cZz}@DhbqJkTqP32?jU+*L(Qh0lDd-FCIo8r0rLp{4%jMLcKxy3^ zw``YBpS2W81xZ&WM)zxQqa4jP&Sqzt79)V1l7y_5q*sujOOftl%o%n}zhC$&fiVz# zUBGoJwML3-z(oCt-7KkWqCDxz4#3-SMj>V-pb}-0Ft-^|!+w1AHC!2wE~pbaW7kvT z4v~e;T?dZBZ6c(!$7g)PC&petmb>!|=|1UDwxs99rc#z$1FzsH=%s1)mVC{NNo{H_~qs?PRKaIN?LoZxGM7#e@g95SS3 zc_pP1htlF35s+wuzi9k*TV+nXtt$gC5Py_8e-E&j^JQuTnW`CSjir40k$7do4}gcQ zsy|P$RNVTzaJ{bg;A#aU5tZh5bzo)67uc8rnnEod{VM!u*VKyc)5$QesTP;L^b5{{ zD)fyXIq-|o6TQxk@@6#OLRF&ciAsJGfUMa1lGe_DdoT|5CkqOR9c=`+(p;iCRqKV! zSIwQ6-3yKdoTGen90@IZsEqIt7#2GEkGg^-iI>}37JyW!i$oKNY}&DmwyYz?*sB}}WgcZW%5g z56=3iT2rhI9y8QUXkL2#dnyMLCB6Yb1YTYi=K_%QNmb&jScdEu;79OvFciH=EFY?M5l0J8e&@i>d0sSYsNXdW0%^2_NX6k zf(r+hPNl=iB)o>DD}f%FZRHgp5P7}ATW_dN>Ku8g>u=Z`Ss-g_7w~0^E7Vd9@`*z9 zW?&ID(}MzjwZLUH#-V-jtI`jx`sGbQvr(GTO?IYLVE3X={OH_LJHFKJOX%VoLz9Ar zL3O6Ut&`DibeJteKFp4&kL78E*a_)q!Ru7lD53dHl)V}Bmp1NWTPi#$kE&#Csg)?E zpHqMx!>7HVXHO(OQ}l_XD_|JXJ=r4Rew?Q6!PR2px06K#w{?Uso}kS9%Q{MopI(IkU<|{6!Ct}V-$o?ACK7=HD3S#ONI)sFJ+q~r zFUGMJB3T~{^7N@FAzQf2^nV(y(hZ{gwx8@pA-Vs<4BMS$iy2ZXj6ZjbFf^Q@@&OjL zErIM^Y_Td9ZAx=8$$Zn01N%V0G05|=^%>w8JS?*h-Bx*}Fdt01&7o7T+ba73SJ~OJ zb_>nf{ATAY>G9{wbcENxs?I<>gFm5fhSR_W4b<|UKr}ZY z_ELP^;WI#}nSCLbZGqd?ZL}03N-Xm8&WFC6g{ z5$$#b`Af-7F)O}A`+N%p=RvhAW$S@bXEIzE`+)bEnYc8jIpmeTVU`C!!%}JG{e8te z(D!!5m?M>%VdT38Q{*C0j-1i0biBS4P5d<+Bf1{mBfGZFD}n3Ud%z5wq~w3RNju6>|8z1-VkZEDjgi=u5z zJ@yO$Mm9rN1*{r`CY&G6UyBi$M4rY7u{%jpE$1^zG@C`9uFg?!c`Kp00TVBDxpFRv zn}MQd3j{r9g$ukjJNDb`#e{BB6~!&r7T$XaYOV#zzoCgB+DO{8MEfyGEB<~e0Tqa!9fgV`?m~zXrthDc<^6n?{%4VQUeRv|qOUxF{>dz?5KuXITA*BR z3t-8k7*Lx3t74&WkHM2V5{*59CNmNQ(pm68UrcefRMw$-am(R?tyz%M`vKuwxdQ57 zR`FmKJDU`+Tvnt2cu9(s8vqY~s!=yG(As`vHZe;Qsu7NSt>FDBnfPs(7CWW^2ndit z09P}Em#MtJC&cz<+#7%LEUKDuU+Np5kHYNhw|%49MSqZ>I-}HFKy%$@(h9!vt@5^# zHKjzZaFiMCo2rw*o`(l2>C>l^elpzggTxnQ zVN+?%9gAT|>pC2QddoUCf@+R-Ox7pO9ZyTUF{Jj5cnfK=SKUv$(7wZ9@&z9u`gJ<+ z3dTrFWT*0YAXY+Jc{YCEkO$$MAATR3QiOsQVkstPaOzBmke=Ii$r2fX>3OzYxH;j3 zZF*-9C+LHDt&5;&Iso$`!%2u1>^hB$4a3!1bK1lCSAdBy|6^&H^wg;K_7(1BvE+-Z zjhtm?e*^8GN*YrhX@KY(T7A{#NI??-AgBaTkLZH&HZjZ5fTw#F z5eoOI9dmg?KvxLBd? z?{v!BKRO&L&ia3(Wh$j$Fx+eB3aBKHzBMj4Fd1SJKww~3>1(Et?x zKYD~83SGKBDL3_+;(qVK(ECL~%s~Y-%U+pB&WFmBSE*X~44Z+sQWe!N2uHZea8!NW zc(fr2+OA-fUz_=@JTq7E!r8DL9vIdtN#bP!G_L>|D2-B~gl8Yyh9xc${J9)my+<>* zD=%^ySH|S?XIFl@AV%cn?x*NGUzw&7YN`QU=>nfWXCwGNS_tq}NPWB_2!GlJ{3iqu zF_^{?OD^;+8K@2i-lc)Y@P8j32DJm9i743dMh+{3A~(LXQK%s>VjNMoy}mRfoTC81 z37tX8RQg=1ti|BKEm$7r^}12WduLYTlLu2`we4`x#ao&i%%`4R063z*CcCB!>(#UO zFCoHh+nZQRrTh7D-R$qHNX#@Gs9MNafQ|AeaMC_l1Ga&x$=d|;aokr--(=jA_ZJ9O znzF`9OeToDLJilD-Wv$>DCB2PUOaT#`Nm>v$t^K2U?2Ts(C_7>^=VEY0?^m>Wi~#i z1^_CW-OKWKT{tX((Pn9nD?58fZ)f!5E56$-nSAT9l0gJ+cMtxz@8d393|F7ahVsP` z{asdif~g?L5#=}W&LY}aO#{f<46l2Px5$tQgoCv0!2&Kd0{B2Ez-^>g+WKc*l^JwJ z5C!wfU^hN_EsZeZM=pedWf+9}C1kf9piP0lfn|~BpuL=DsAzr|hH5uBSv<0Mg}kZ_ zIoi{`sX1ZB{s=DnLP)K0bdKhsEd`ld8f2QUO_3Ygw-O+}QXuO*sn;nY%Lwqb{YX4G z%s6PBKc-O-x&;4X7!i5fT!h%PgIrb}?+(XTnYdL_f2zSTaJ7bUKJlMrUsyt)H(wPo z7=szvbmpjL+-ji2rqIN0?_1L4#+Kk>LgB)?$K@BjMG{2%@zK{zhntQckC@7O8? za+RZnv5x8sSWJap54*E6_FtrQf2zv1(BJvK`iUb71&jfb;-V=a^A5$uQeicrK>*;yJ8GK zUGMKE99z%Kf~B68IpGf^ZWAe!MBK4)ihT-|OFNubb8G(}S8o|mRo6ue!|^B~(x7yANr`lKcStGS-E|NF zr5ovzknU3ODAFk@-O>n1hkomz&wKB8e~PvD+H=huW6W1USUIDXKbEVK0QR#{D@y%3 zB2Rxj6Ifvfv8wWKa_#-W_E>h&FZCsC6oY&(c``11MScv{mk9sJn`gC2A=7a7Uh(B= zc{X!d(%1$liWRoNy;Zy;Ts^0BM-Gt$QJn}p-{1(|Q?_8k5A>-s^^uTeG602k*VEGQ zm4*F2fHu>Fa^OJzr50~cH#>5qT;stt-=&3(s>V=q-SyQpU5x9mRB;7gypqofo?^H$1?QTynfk=hjop@eOOKI_{X7fq zOgow@!Ne$_->(D4<5?+3P=bSh$_3yb@ZU$jRC@I*45}CNU>Q%~F7h6ZK6=d?DR6l4 zYiAlHbote_XJ49MK)>49Oy*QHkk)QhzMp!;Ham8>zFVKDi{ff`>dUJVYokRXJ5hjZ z({C9|^p*dat9`DmW{)*-!PYeN@GMtuCe^_G`q_(gne;)-$dr(d#GiQUUAqe;8$I>< zep*DLNWO8TqN^_0q<^0p38IX)=6iRzu+io@3Z}}o9e~iEr5A14j`buHcqio~>A zN$DpRQ|;b8)O%}W)$N#}KXj!qti@m+(?|kTg0yfI0ZpyVth}>8cEiQGX+JuYep2SM zS}T7~2>+x-K(g$%uda`%z)Cp(!{4gd?14e$U4yLR4MYTYsH$U;GVCZgWU!=Rdz?}& z7npn47WBR2P;9K=c(l32sJU2~AL9EU|7SqnX8}dX1PSsUmcElu!;q|!MTJLmr&C;% zMBkjN+?t#ZMU50wr9wldE{Erok7AGO!t8>jpok)@POt@_u|2#%oxeYnMG6uT74~os znlQ^s?6vW4d2_v_M&zD!WB_-}^VT}O!hv#`>fM&wl{3}nH#{7B_2&G7%Ti;5VCKg) z;jX_!@CxvP#1pWjRpDkJu~?FTUB%t+x>o5iWkB{EQZdB{7gK=j9w%8y@<0V>;qxUO z`3bm)#K05!8Uul#$yFU|jI~^2g1|*Wf7)>I`!~)O{n9p_x#`&%i#aA;HNrmBv$>dc7{k_ z&QxK_lR?p`L>fQoqMN!+eItu{LnXv78V#tb=bP7MMwFT4p^*2WzbJiHFpd_@mQ5XF z^ha#E4j)k?JV&)Qc^ir|@g~m5P_TDeFxr^N!1$SgQ_;5@qQp&srtLca#`JQX$N58`_MeEvo`Q zhPv*h8`_R>VB&5@Azc;My-bL~$yJsW^P>_q#9Rfp0Xy7wV*qD_8&`D#HK88xQ*aT%r7~^W7De z`qqWyh1gx)omcSk3Zowi#BIXB{(vYY8ywUxWy$z8Wh3sS>p0X`T%}kbymFT9T zU(Z~P7CZ+WLlXD5gmxry&0%XOVpWfZL=T^D`Gk1`mpO#9B;p=JQ6~$O2BzdH?7u3+ z{}O~8JJG=xrWGPwKxXU%nTzk^ric7JX;TcyrL#?xl9%~3TM`+@qnQWDDQ4?rrf0EzYgfu~dyjZW?Xf z^z@&}1?Fz(I_Qa1L%Z)_s!*zhBau{LZpf*ZTuAc54`BsUctPK{cX&+E2> znR5?4%vvMwZOyfCYLN(Q+ax7V5PiLhk>VX^eSN77#4z@@VMtk{mV{y|wrBueaU%8P z-o)d&ZDL(WI$;A#YKE8mR2}cb6B*c+zgvq!D<%mt8-vGNQ^u1u{0V|Y8*k+|a5@}}?$Q;Sg9JG2F`^lKO@+@Yqxt7SR zf78AY_=(@I>lNzjTEd$2v20d1p-Q+C`GY56j*)+8)qUE6A5*LbCt|~~LabG+pPf75 zc+eSa(>smJ3tY^+pGHwS2qb$L7}PHb(+7IV9K&eg(Jy*x6M3K#INl$zgtJ3&BOcL+ z#RK%D8HBa7>n`O-7UYTzE4K%*Its{erpIr$ny=#SISfeF+jY{aUdlP^)t=GqKcP`M zGd~MvV?hP!N0*FmFQ+3p!2DhSzl*0-crEt}tqpe>cI6H>IP5wpzy`Favm|~PtQ2emkn(_6=A4%z7ccU?t)8GfFgHZkbfj!DU)-IILhJKQKiCLruzNud(w3 z0Cc@n#D()gvq2H*OaFx*DuOc-6CXf~w`0KGQ1d;{(jMq%+%~>nOTz>;%6-?=Lp1(2 zc7Uo+0P4vc-yA>o%jC?L-h|NG7NVqStCC2}LBcBl;#Q>Qs~^yfsS-{>+OvZ2_pYl& z_YK=Q4QuP|=OqW($M{+;ljd0ZhnAic^mTI^bvNR{7CdzpWiW?a4~{=oU{*@zVg`GY z)Tk`b$P#`05mGGrrEg=_ibktNCuZ)kZ9F|D&?$?7uLf)$?#`25W?<(&Rj$T6P8Mq{ zJWod!2D&7~#-P=zu>Q&1zPs>6;V}y%NvPdsokJ$E=i7BW9aGciT`CTyX;`E0v`=QraV53*N%Qu%ycZsv~&l5 ztj6Bxj<-N!4?)m&N`)cwLSZvP1d9p&O%oh6V++==WAW164s68S9-C1GcBSU>6}lNC zR%w)|=-?F@`U)2h(8}mkkhg&2-~(b@9-0cce}|crzv91?p=98HpAyhtDgNI2(SN;w zy_0kFPL$;QB{QI}v1TyYPt)67R~zqlOrB%nA8PPWgK6wA^z0y&I|yKSRzq6&AR(^T znWqmP41?#QgUrO$DlDVo!QigUwm)C(L*$Rz|0%)XB<$j1C=q53~4VU2K zJxYa%922o$Q6&r+Y7@w%@P|L0k=7uT#ZjOH6jm(KF6zh8$&TOb5j<~#2Xkq^KCZ2> zq)O=T($R$0B3MdEt>>hLTp@4X?G~LNScX0n!ROcS)EYUeyb2Ug7qu5+6}on&`Je%% zEHPXZPRnf=Nw(((l-Lj~==V&lr>&wyin`w zq03-)DEJJ+Qklai%cTR;Z2O3V-KB;HSU;>33Q;$B4fBjDkGq060?;B7QY!XSIY4Uh zbQZX+W&q`KUhc;xuI_E0W&{hFD;O>VIn5jCTJ{NlkZ8StE6l9>ncVNGpbAoY_cUi6 zM(~>)WVSm`s;8K$8|_EQ^|zH$*dkATrIja*dyVh%YZbUU8BKLZ7TDix=QnNT;rFFS zY|@`2`VsT*bog;<616cua2xuED#$Tgq+XC+hknw8I+Cikm>xMnvg)*aYZs?SL9YY{ zty-Q&r!cb!dAkDNVx4kjIub4}>R-1@`Lt*cL3e*B&df2IDJ4Y%N)y)z033Uc^$)$&gwGctC_)3G{)46JM4+IGO4 zvGe`SF)N>ZP!p;fOr*xjOiZJg3dnCP((2?cBl1#Z1&V%?Er5!wqruR<)uA&D)WpK! z_mKrCtCL~-;( zfgE1Q=h>SWv&k%KEo49Y`jf5*wa>S=*n)h8(eC|c{>IUG{tumGpg$Y|ds1GW^ye(F zW%MPGjkLr0;5?u*#;n8^?H7=tlp^z3LXa{yBceP+OAZJm$|)@!iX3~VJgs0Iy=#~v z%^~oCA2(}WcFV_=7*oz}e=F6h_Ea-~fTkTeotJaAh7Li3ihLyFwaO<)mjaf{(?t^*smqQHM;du2NJLtD%4FCS`upg1TYr5 zb!@rV$N|o@fal!)jE<&^BJH&!R7)%^qa%;(%{zN*)BuK@#~-#_uNd;&X({L*lV$gQ zr2`XVwk!5uF|7wp8DN6sscJ7GUTQHI>W`0YlDAf%fj^W1=1P8FIxJjd!?)JQbIyBJ z_?blb+a;*t`fO^ROoWrsJSNNNDkp$sRnO&gq2F%>F8K-cJKUkUDPl&wEjgl`Kw*WD zF4rlxH{#xBkeA>t-TQ@u^$^r#=(iV1Vhiwu6;Co1S>xO$?2sB*dw~EVk938yzQ)C} zMP!A(cg^R!Gg!QDteoGoA0-tJbn2t1d|jCqklSIn+rL+AmV2k)$WO?1MpWQV)TSm(gK9nEDl z=_~yMF^b(kF2H(WAy~{w3Oc=DVmu#W?uZFsl9g!IO+81nObq}Auil!4M5BlZ^vN+H zL5Pczg9g3>LZRS)edi@S(eii#(NFEE|6=YTg+P3KVk~4C9G-cPLh~DC5kd+ zpo{>*1IPO`lnJ!~b+$1n0@J5&D`ZrD`JL(1_(cc~_WmCxN>QhKZ%V^!WhHRG<6%!~ z2foo&Lh#foEQ09*6X>^URn3}HQef?D^okisUj%7#Gos7u>eJszs(~2v6vUvoA@lAV zPPb%OZl4avC>r>*dI=8AcqiP*6^hdv>W0D!V)hoY8{9ut#6-~OVIpkZ{1H5>}iQa@i0AlK_UtKbQR< z?;xPpFd!uhC=aJYX8vZ7S58u5AEYN4uY;>KSOgy@Ghsidr$a(Qg(7kR*4L!w z;LCw@$Os}80>eWNSXx^vjUhoxnRp|UL=R=GX7IEIjf7MzfMdOppfK_76*Enj?)&HE zCTIk=ysNjU>HE_>{ns@ZBL{WSE#$SrQkY`&S$TRcZoauUd}ppJ$@p?VSwi1F56^D2 zLTqeT{t2Iu3NE%RaLT+zibdrztS`Vr5TIF`^)rXjYDq#$8|+hZ=_3bSeQ4Y3Q&X&&5m{zZoleq!=qr#jHbi%} zy;Mcid#Ou7zb5a0Mk7lt^=LlOeFdvnr5<|r)Zx+C0ts)D8t?IIyKYzGM(sR43`>5# zBsJms_3~3II^*39ZSKf4!X~!0|ddK7wto+7RC9A&J8}bPQwk4%R zWtJi-sWZeb1d=u80{fqn`s<8-X>6S2&Lv9p^htl;*B3}>4EWI!4?+=tAbZ^jRmDIj zkxCe~SS|JeEj*wnk-q(sA(xD%KhcK0!KXRDJ_r$sesj}-Mlq!b7)c!3X{k_U|LX;l zLsKXuLPfGW2V+Z3`T*~!`;uw3qbK!HBwe>a-p{2i$nacH+%(;eN^tq*`z=(Zx);-P z2T#S|MX&P)hMX#V5&Xm^9Bj_%#&7X5@(rvBMY?PnjDBsn?`6>~;(6L^<0Ynd2z*a* zdc<8?+ZAV0i3+ArmE4N$9U-DCEFTSZ*LXxt&fO><4~m$(b*$0?znSH(`J&alSK+)1 z%o4F*!=AJbnBbC!;HagY^rL>HK-YO&vvyEXU9+7fIJ=|F?S)?QGZIO$w#wJBFD&2b z%U4R!5r2w2AKiX;SpZZ&S+G;kIgyj`r^)^Ek?!hAW$KOrU#;wT02pBn1;1mEw)#yCNDs)bstKOBu)eVKjJBbC2VMv{v zWjIw*7-N6tQeL0*ZgBlBc2TclI}xR*vYpJGxW6H|KC_#|=jK{HakWusB+4$bw6hC( ze8=O=2U!E*jqO5*_dsUH0Em+a?G-UoEl7)J)Oepv1)-1R5(e_=5RvbI2Q`cYbpYzl zmoOME^k0gN7`*LD)-D{O$Eo_)7sZ{ro+d7aUp)Lxiu%3O-ML{xI()Ur$HKA}Q*nf{ z&?bf{gM^#`V5@h(h5DMuwq*v;Q@*GjE}%9}w$+z%@KV+Q&P7TnLE?YEaIVi0BYZjb z^GxoF+q{cA*k(U&PFft2XeFfmR@tFC3u3vB1P1Q^?=6yn$OZ((dN z5B3J+i8sOkx(q=1Jw5me=W4^!iiVpyY@l^5O_V-UyD%TtAH8+}- z*1pzEHkLO9RAy%H*~N$xeyz~Q3FH$dj6*G!5x>AT6zh)O@4A~esHJy7ua!X@>Xq90Z z#P#r#TejZ~5C?BI1ybAB%dzmLTD?*=@WxRxu&WVk0)|C5XuX;F#>er@EJX)p zE}|ECHFOA(CdCI|5xqob8u<Yw}`#o9Q{Ie>uy2M)wpRBi(f#io>U>NHH5k>ET_h1jd%G)*v@PMsvp7EZsEe ze~(;SSxcX03Ozs7t$s;aYzAq~={G2nv)6?rjS(;m+2WWkPf{zBq9)P99odzimIM(P z6KWX~>PuLsNV{oe(YWq1S@l~?%NW^x@X*)zz#yXH?D}i7zHizN8~nIECSpEO{7N?3 zvxd_$F|V;E>3F$w#9laUSa)jU{45>4;rGI#pO(<{6^>x#)29iMs*RG$CwWC5e3z18 zMeCX$xY(3Zw>^fc^4gLRZaStyqr>cy=0~~ zUp&l(J)!nFF1bifSeyj(3Xf0*wLeJ}}gXn|D^DU?nCQABS8VXtuupy7-Ou{J zS>V%xZQ?y`xI_RwF;1OJ^0Hh?cqnX1RkxS1p&}(1 zo79tzIUH8&{X3G@%8{2{lD}(MQ*UPRvcDB92YUg<% zhTNPmclR)FKkKe+6?8LL>;WQixMd7q0v_CA4*$K|gDYKP+7e=9< z4UyaT3VpPn+3q>HTeW_w*)&_m2IT8i3fyZoiUs#R73mks=2>XJ^dObO7;G$j|7}*r zH%3E?TlLekfR^r*j^d?lgSz79TdHi`32*eGES_;0-(Qq=OZ+9RAz(DKqS4U77Mwyn z6?1_+!iG;0v)nNsc7O)n=^A^<_&DU{9aMYDIH&G4&5wB)7{Ow9L7Ngi4(&PAn(81F z$?F{ltQkz={^n}5kW(9NTICSiJp2LzV*(1c4c808e0`P2*{V2i&%YIDUZ*4$ucLJr zqYBlIr|l;7KWEsWO_k(jzG>9{r=Kk2l)mVr)Q%cRbN#J{i_x4ov zc^3&JR6oVz4?P1yKFJW;tp2WaYRk1Zm{oi7^#d8P#r?nc6hi^#=Ue)v%&=A~ALo8B zOE8wI!FVl}WHUhJyrP0TKG2Ntm0-MdoRqL^^y9({M13S_7sQU?9>?o7R^gfJYE(%< zlOt!KX_0CkG-{usbQx*bFS*y>Nl7+p*(g6+`8h+#k=XqCgkw59w+U#XoO;6h??$Jz z88S}hSzD&|7wToI#zcNi9g|ke>LWBVB4?J>?_FCn(czM@TkKQSQR@EEf@#tDBFmlC zLGkKG3@=^BFg;uaC#v68iIqlLKcN5#sX!!s`WmgFl7+iK4b0((zIUm8-km(daiLGvDxD zgpOqQk7a+3x{=Gp?w4>BE&2jPiU1PH@evdHh5@~<71IF~E+SX|1ht(XyQ0&h5OiP`s>!gp_tHIo#N0^Kay6>t)v(*F4?;|DL3pXf`LSu~~DaIT~K$W|#s`|Ync zxIi{@7kU1vxe@J{39ht)=2x4b-QLY$cvU#J3Ml2DLfutUJJnw$+(lNXgMEI!2-VvS zm`dH{!ZY=zHnQA2v!cClb-HmVfDc%CfGoYK zsOTzAHDfd_4k1t;bEdGB&ThV~%dxYNs^Y(~yb?i;0`6Qxb%Oq1mkV_2kGFLAdXFS9KEYb}*hE1tdk% zk2$PUmOo`(Ebb$)|NZB~X8s?`JL9bC8g?44B5c#LhGU<%-+gDOIH~&Eg3e6p(1=F0 zb0jvXap?mLeFvg06t4u7SsdE>t9V#XzUGpN+M*il zt_xSpbeE%)Z3B?SV+3SzYD)93F{i@+8FS#p@)jO)>7O@4?RE_M*_rK-73#S~nwzK<@Hi!!g#5-tUuzHXMxy_;-jnUYSBr+pIXp2~R9Q;;^~rB{nuLjO=tj0=YU#7Sgk2gublN`_#r6b|Nh0#Pwktj6V#v`FW;) zrLf4K(L24^vv0bkd6P-%Rw7e4Oq`rb%38>i54`c=P=^bZa!h+nt8dmr&51IVoix3~ zurGO8r2b1QGE0>GA!Cl5KDQ8qU}tFQ!c^J4`{BgmIcNua6~q3`=)s(*adhCxz&af7 zpqA7}t5i$MFr!Unp5RZIk(Ei4tm3?1V~N>CIFj|6BH=FV;2rLhHx3 z$ZJ3zxDwW^tW6;5`?O2Ey0PS|b1lC-5P|Xx4GzG1Vs92YQ9l2@<>D|u^$-C(F8;r0 zvo*y#7l2^+(;Y!D6mtb*{e*|u7r>NzpgjoYIXKYE11=Z_trm?~XPcVjXrwuz=osT- zaH&Szdxa#)aG7xN<|mm&oDCG zowZFncin2zfV**`&>1|y@U6e6e87h`gU|ih3)l21fbzaZIy?T+nGYRQguzgu-%)W& zVPODNcy+JbPgYu&+47FgD6a*$s;Or8K4D`^PWOkJl8rLnr!Q+E<-Dl5Fa-o!GGn`p z$ayOG@z1xot|jYvPu{`x0S$Jr_%{~6*8wx1CFXvZr+Rh)SWm!;Ww{}goW|y0A!HJ` zzYJ$_$gBG4Yc`Y&nm_59>K8Dr_=3z z7SrhL=NN6=#|y)uJAP06s^G31H5-T1sFq__1A?PIhAE%|nR06VtqPs2`t~6eUhf52 zUBvzV*|mG5X}KA31C~PJJA>;MsAS-4O+n8wZGfIj%RbtHz(V=gT&J*XI2hniQS01Q z4!}E@@d(h|X8oW7Znk-rcCoww7$V?)tjk?tjLc5q>C4{{DpTbrugPgnzjjNwqV!`P zbs}uQ1;jG-Xofr1t@`R&cb@Xa*!CCs3B9yTPoD6e^OFzYXrFK~v^`H#P}Pwrx$aXq zkJ;30=~J*tbeazNlNu9V7OuMHX%kMyM(;}w=3@xPFyi7qhWPVaRKHBzcZPmn?MTji z1-unt-a~^E0d7?(X5;O+ zk`3f7Y>lwelhLYCoQdZt0nnf;?h?Ibo1=0(-veVZUSv_crCEcV3ugidKdQ4yl`%sc zVx*N1bq17fS{iu2TJ1}pp1s^n1@RxjX6_U#j3ikhvcFdte;sI#hV%3(bTMu{n>o{y zXVdp5sbcj_6;S>#V-fVu3{VT+?dV6^XkGcU^|jPn)G-1fL{@$g6E`8z_0oEoUwh~6wJ+A70yqOZ3Nm3R2>veikzmsgeOCHK3_1j7|i&@S_lJdiNyus$q-71 z^x+C<(0`W$SX>!3j1V~1-y2TRlSLM%A_EGDC~Zk@s4pFy?EO?<0+8WH7!M^Ya)1J% zj-mN;&Ia|Nw;oKz5fOg1p`dCzZ!c*wi8e)36omw411UEEJ>x$jKIxzD){L33Zc(}Z zo}VW- z=_(Ys7C16!0APxlp+i0KOpEtqx?Xib>n$y!E!=U8Ni9I)^%#wl$BxlVbCXpdCy{f0 zQpAMAw=!4yPLdn@mgRbWPhC}-rCmVVl@EY{-+XjDuIDTXV{<4t+wS0+!5Y2%uNPol zj=4^k%h=}L?rxnljVLF8Ju}H4vH2Z-nz`WGb_g#@t#1k@F|PJ+qkC)ebMjenlW4!! zL=}6b@%h60_rs?FI#D=985Bs->R4L9AtLNj1aHaK3VKdeIfSktfUO6vzDcLVzmSCZ z6L1EIAp(br9S0N9!eG2FkN8V3K|RJ)X-XhI#2viV67p*wP3_kRos6LvWH${a{hpG^ zbKb1Xk9GL#hhM#25YGadXML3romrULS+@p3aq$S$K_ z$dU$m{uQhDAs-j5#k1c2yW6UekLiA+<;#(e{{A4i9%P+b28XC1{da_Z@8QD~86G)a ze%pPY;H-3lk+#h{;OG}(WyP3KWg9MRfdwx%o77N!OMQn_1Z<9DWeBuaf0SwOdZgK< zZ0`}vuUg*!e@?Rci)*1Be~204QQDzJkyWA}+dvZZ`{gUl+ouCN<07LT_BI8IT@yZd zNa@S~muaa3`+owV3cIYL9^T9{l+Tyx^mU?o#bP?upQ!b9Y7oeR)~HHMq56-t%4QN9 zUKaA*XGmxlPw2mU$fw**Jkg1%Pj4f`UwR3E&tgN*&_)^j1S#Qn0p5U;;SChWFS*qC zKdGM42z<#?&Y>yfsybfjQ{Tcx@^zM9L)EWToucWknVhC&7fnz;4o%`u?eeqc$WY1U=@#p`$@BR@trR#fWDGO4om;IVMLJF%of{|RdS%n&# zui&x}!`tyHknWXeS4U?mg$DSG;4FQ}R~362iU9dkc_BbPVq_30fb_w|UYZaVkB{@d z`DAETamfn(e|c!53|W=}-KTgxUx({U=W}e@h(@h+IJU#&a2ph6h!lgP@X?d?*VTC4dxT=$6(o7~TgyakK(@+`O6z1d~HWW3b zwz6q%B{`7HTP7W+HK-rZm3|$R9Dh4lOho~Fo?Nhvl=75Qj#8cR^xP|dxeR^fV7eD6 z2l|P<-}L&fHs`#4t!bX_`wrjqJv-&?Rt|AA=F##Lv^!&cp!iGc3s5V(-QI!}9E>ou zyOFUwF@VJ;z|Q_&d?_4k`9isS`(FPnEeF;4)V5vHc@gP2R| zq=-S)FAdMex_qh*SntpSN7iqxgL}qGGfpKwS4R8S%kY&I(1E4C=_@pz*A?CyL z>adl6G(lXdIr{$KV$!#fpxC~(PaKAX;QQI!mAGyOc-kPfHIbz|t8*u_ z`PrP9;7^*8eY zm-+^0B>c~fg|y61G_}JsdqA<6X)OQNc>Shb2BzI26Doq}^XyMc*vvlCb6l;rz-Mhz zd!cj(!a6uMa#4T5BSDHGN2%Gjd#E%a!SXNW^CSPhVf8_dUkpPcDSqIUe=3oCjJX|( z=L6`5CroyDZB->Jj5{o4t<$d;N4I4b$=O0=EE1)Q>y4FPR-x2n)7sh8jL%Qx9uBPx zd;={Cj;Ug9^8SHj);cbnt^-?)iZ+Xix>@yCR`2xDnt_J{C{4pa^sKk>~Fh zN=y_5lB}%lNlo^33lBngr5dM;SH(Jc{Wcn7m!qdEhOKG;x3Ve^k- zu*IX`P5CXsj8IO8nW<}d=JkqlMgt3RnFrZq?i&iNz?SRhmJ5n~`ajZwuX}|8EDsAm zT6{Qmd|Umzr!wx@J(i;Blta2Mknz!#tl%M%j5w&H$)8qXEHv0Vs>e{|Q}018yd6Pg zoi#6+C>R_CVxNcQ?AtE2>{rR&@}F77#fymyUOIE<*y2m(3WFsWSH$DmVx2oj^fQ5w z@^3c-Z`IS0%4&I@UjtB=16mYe)`v@L0<0Vk#UuAO=Sc{Q0%rMN9KjHW(S8Ed@Zomq z7f8?rJkvXERviSW<#?u3Y=PY#q{{F#O}bh>>~L$Amu1hHYjJ4 z)bJ*d%NA)l!PJv0BY(_^nB!qXYHkofTx+dpPs&EOdXr6@%5x3OF!vJ8f7ibfz8`%p z(&zSyntgEWOx>htW5i!MkXt>~+=<<5y29ULp*Q(ptD@$W=sMf%-c>)XQOe$_pYzKX zX=Lup0?`ym9-Y$*L?+coCCL9w%b6OMA&$D{yVqOj8Ar$Cp6;V#PF@)Q5Ffv-?2fuq z{`o&L5h*SFzZ6Cfa%nAC-t7J*H?7jV7^?YG^PHT%;|RI?J)U0nm$S$G6d+grpnFjr z@w8X{C#%Ox%M^t?@VNln=$ZMQ%~v3Ba^c9G%~S2~q@_$X8}uSzHUGQs2%2k9fW0vU zDugqVo&+F}zA!Mx!c;oRN*Kv#PLob?0@gIyGM*y8qv5q<=E7}Pv99S4B=EK6{ zNMVdq4NzccG7~lS7wq4A`6Z);pX_VAOWl(fGev_la>S~32_ea^#@U{=j60+rCHpWi z=5RTEBDy9Uy6TWJN|@*|aT&1vI*S)Vfiw^L;Mmquuxjic$)!`?>RC7P3C2({43J(t z@({ZV?ZY)K_B#m8N9m-X;2yd-bnE-f2rcm)S17puzjrbRnTAN6wRABG;9H2}P|)DM zmH6}Nqg7c?lJWscn+v-*uL_$jQ{ImTIXocS(4z$ND>ON|rLJLHE5cM$XO9?sjUkK( zVP!;R0c_8k8Xm;#4f(KCc+HPG}X9`_~m7^Uj-BZqQ7dx-xR956n8b2lY+w#_1>rl zAxj=!!^xPb`lJ;(HFYSK`n~_Q^!|JC4xEuxRQA+VzUIX)%n%~@}r%pPS5XTe->uZj|yr2Avp zEi|43_BBpg8PmOJY|uqs)5B#MJOx(vzVtBd$2A)4VuT=I&wj9W_FP z{440YRModhxEL7tN$;Si5PN(SVRo$I$>`K>(M-dg;kVdvZZV#j^l9kco6>u>yq=(3 zaBO_~n=HMauZNCKG4HTmu}9RxTj{MO``+8s+Paj>-S2Gqq`y6jBBoNk|*c#QO$Q z9!4f&J}pmt>op|s3oQ*@K+>V%Mc11;4!dY$gG`})g_KKo|4%Fa$FnWOX?161 zf)~j~s`tD#K(qCI-ycGj_jx5wbWNzan$!9Hduo9ej+j|w^0R!JatN-uK%=|K5UPG; zBfccHI6m|VPV-*Y?5`p;3_vRnM6GrURC7iOHUf0EEJIr_g8UUz#?~*{E<;$lsZT-N z0h>o@|M%`7LagA8bPpeDTdJcDvL+vm%6C%v&|q&}xM+)HOOK|B-#_ltLaVfBUh#lJ zcF8|6ci^T3LJzdkkY>+#oZAJRiK#H}F<|otoO-Qo=OR*b@HIxLKq^=c_?;T05c}$< z4Px?kkP1)9osVxmN#uThp(ZySLEP$z0Ot+aY=yCO3#YJu)<59-biuRNaU_=kXINHn zY_GJ89n>5ZN%4_UejyjF&?+XrHdzkydzcEuz#=~W2mE7?yTFTxf~)4NWz4F-@}-XMqM+AZyA5WyruVi)=H40@8X*=3OX~`1)m&@ z2ZZ+j1y^@zF$xvWWb9slDzVN_NHeY%Rv0`%Y8Wm+sJRcLUxSs(FU5&# z+g9fsT4Yjq+XC}0m7*MKtVpU3dL$xziXfItQN_6ixtYY)`i~%B;^29{tHP!ZLH-mU zkCYC2nO#ut78^rYaEIMq?>(8Nl-8$xbEHpP-;p-z(fD+Bu)A@PmrEe6Yf>rIV2^(4 zj6g$O@$RL3{q7+V5syOs)_6@u@B56p{*!R*bq!CnO9lr^aXOt8I^tNWiMsmkGUZ|N zmrdhO2S0Cghma5BU8MM2Mr|wl^eJp71_5pvmH!_VjcCMpB{}&ZpsScCjqI=kfU5IS zoK^Zb>|U*4d{$c*Q{uXfMk@4VE!fryw_X%*srjH*Jw9MJmpOaGM%n65H^pLC-!Tu}A&q;1&-#s`4jD=JTy$2*Rb_gV;|!h!eqD)?B@vr3^qd z_MJeMlu9~-Xn-cO zRU@!!f!ghTbh9(%rg1XS*0r-&WXC4RppMb=fC$Vc*j0l_+c#gsx=~WemLE|PFz;)d z%lXC+tXMH$uBWi#e{@$djyd=xg;c95_9W*Az;$@|CTHm4+>r*u!a|-9ac;@vuF;-! z(z1o*It!nydqc&Y#W*YAA4T9z=KyqoaZJawC6#m4pn4a1 zeJ*lQwwso91wctkMP=($tu~oHd1!t%h>kVbZ&kH=e-_Y$5lp72;QpOBSjQ#uS;%m~%qz4rOV<+lZXD6}V&8UB!1*$S|79;E8hQrYB{=&McbH->=dWTh|oBA}l25of>hvAp_ zOCw(c>CuAAbE0M}sAB-Y)yP=1h_O)wG#V$ACkig9kQFvD1kS=qr)LN77$EB z>Wz~WiWf$SN=xZHE9jd-haDw_K#`Nt+^4n*i88e1qx~9(&xd?6Zv;Rr*H1Q&(Y5b8dcO2CoLgk z{XJ9JsZ{RexIOah;kH_!qIDE>8yCDE2owX+Q>u>vK#&2#*;J_Mx<0?D`CR`(P6~Wn z18ljLPc2nVddy${C4lGHOCEFKG{#&ws71-jkIE@~n51CI#;D~X&nA9Mlg+hW5=#Vt@oM5)1suf_6uz8#HOUtnlI1Kha z{$a3ncxY^B8okvlA}nL?t&T?t_zhm?CDRu*^|J3ss2d+k}Qv**J@&laQgA%ID`g3kMCq=a}-{4$u_?f z;{-}aNw44mKj&f-A;PEsknpj+#<$I$OO+71%r(ty>aUl__1F+Lxau2D-gYl^00Z)q3@eTNMj z=C7X@{l$!hPs>b6xs6{j^M1zTxrwMxE;RWXDEzs0aYm;viq0LKC+A+ymu_>^R}68k zv2G?d{u7oo)^OhKl%(E)T zE%Z-hN7-U(<}% z@gYra%t`wH3vlX@S1GkvthMtKZkITW@7r?yM&%iSM60^&m(H55YLrP1=0+h)Iz^vd z@1h$$L#=jiRPz-KQ-v+&FGHZCc)%kSDoCBV>ob3Q9SX-oz7?p9QUWe1zD#wW3ay$+ zGUcv%F;YbORAXxe0$ z^3zgPokT&`we)AxLmk;qdr2hIv&ixsjK#cV@iCnhIAz*VP5j$03m9*=8}BN(3_ek1 zejG=E#D>J1(eG|@fQr(L@!8pi8Wpe*!IqrV$ZU&!DgeB7{L8KP`rv&}Rf$DC1x1p* z0jEV`q>Y(-^kR9RFq{Zg?LtHQ3)mhEz6K(v*-V3pVC?aWy86+Jb>_Uu6a`JanU-S3e`dvyhwuHQ(wiun z0kH$vmn@a+3=Zf?xuA5k;;et_C_y!H`3iDFd!f)4FZBF(jeX8{m^rM=YQ{A z>szyAEu3NAUC(}Yyi`p2Gq7f7e#ul|N!tq*aqQuvO!6me$h<H(2JVX{TqYo2?W^*3>&llySA#_70Mn7VgtGEuR%H5GeCJ zFqAyc=)?2bd@S6Q_hA?i1-^@spYZ>m@#_go@>{ z2N^J_+FFFe%uij&d67HN6uk|Gjel%uj-o;o~NHkI=K3O(^|ry?0iuWMqws?z##? z(IiG<4*r|sCyM{8L=6;+odc`Dbf}FJtvz&e&zqx^%z@K~BJMi?Xj;nG#hC34e#zg@ z4`Kx9lA1T^l=&!7tWVO4Dp2TaO8Cnagdwl+v`qdEkxkb3r7jG9nZhQ+-{Q%-Fh@rE ziAp=6cS+|(w2Eso&Fjb0-`!M3>r&wz6iMahE2O)!i=$=?J{kZ8C1Pabc@71ZrebLN zp~C=kAxqmTaK5r!pHltFxw7tMV^Ltx`P5%;XZpxersHw9_pB>W5+o9yIv+AC_0=%- zrto={lRl@sPqpssY5ijj+Lj=Eo+7HQ07S$a8bCBR>2AUj#m_l9#%*b6Ir7N%pH~fH+O_3wa}#-ZA1@@^gWFB0XGqFW=i;EA&|v2?0Ocb zgjBBK$rlflbO86olLBP*`{i#y*Z1NN8enwj!Jy$m@Icm65>`@nH?>ePCD7va#WeE2 zTtIDo){ZI$qLxE859Me13S2iUJe05ev?q>5Oe0wmc>4f1Q&7^3x&B&9@O;6u*k>W< zjM$=UT|+W1i_mFrQv+x0_QSO|Fz)J*vjz;`P4zM)x9TPX&9MJEzo=*1_vXgMgzff` zzF#w2EOyrx=10_WW1o15@~Hxw;``mQ%mr4OV)G;0^>)}utV>Rcs+-obe>G!h=fP;S zWo+6Pb^<}!1mlY!s;>q>=L~Q;#mpPAuWVI)nsWt8eZg>d(A9Zt$B+G5B9tItnezZW zC2NU_TMyA!xh}>{but)AxCysn#2KW7Sq?Rk5m;9dq%fIG8y_k8;AbWwc>v!E>^lH+ z`g#gj+n^RzMG`s-=jmI=YMgFgbLCCTG7yexl35^0ps!uOEA%%1Na-lgP0v%7(q{VX zhb$^^F)M{ry8tjMRzbM^Ra^|uLa>Le%xfR>a!b_Pw2v}x--PivbSoBNE zwXpKSxgFmXjT@nl9mv)zy3tPDA@?BjW)cMqqzgPfGK)C=GWsZCMh7p;K0RAL0>Ln6 zji(i_=XCjZvV&Nmcje#*T9{}tsd;JwA(p;I`L)F-VRqm%_+I1tU>?2k<} zE|1*W($z(G2vwJTf5jYe&9{11P@L9jbaqguW82y3bDh-X0Zfv6Ck|+YL}vNVPLI0myUWhoTsMiq{RxCR^&FGZ~K0 z3ZT=y9#@6A>YAk5XPAPOD^;hhN5~#o| zGF<{)WIfdR(FmTDu1SQ=`-np3m{s_TepLb;>L~z{%y5dv@d)$86e-(TC`w@gg`{WF zl?NB!~>$m}~xhwis($ zLbdGQSt%M7m7H+`o&#n9`J;wg`KxZcC$)-gL!Pf&#;Qea%NqPo_puc>&xy}uGNha4 zw?vWW8?clU%?VyikYWRMmQ1Rkjv~Eg35l(4S~UxhgJpqwjv=_Hb1eFa_gF4GhX$GTrxu*})(`%j;)`7i+0)g+USJ%w_f7 zj+iou3Ja#l3cl2o8TBQv{~+Ce*eljlG^`cu+9y0*jR($o0Zc*Ynx6}u+P8A6_J~t6 zfgK7X*;06C)69QoIQ~p1V-(9bRf=ytrz(;@-*8_2MOLm#?1_ROpHjGjgyZ4CkO*9i z{)o?4NtNv3vbY0!gim*)IAbba77L)fR*VWIku$UqnTgn!~}j5lS5Bv1_;_?w)>AkZBWJ-H_a6dqt>wnVVhB(ml>)W?;B;uiChG>nSu|>bg7^ zyQsE%QfX|%<#WVS7h$iconR0RGR*DSA z%L`nU5Q`hD=8Ob+7}LvzwesP5s23%VT>i^J1&v#r?X^FZ?|<6s5Q1iag#n#_Nr_QH zf*yS(#hIX5(V9(cL*s~V*D|Z(?_&P; z1>dwo)1A1MX#=(ei`PCJ>kW+xUVbyn)^RmQH>F&IdOI&(#b;QVv^6Wu->_2rF235C z+L(5X1E9MM&NE@lCfClG60{~syy!x1b0momty)4r*Yr>FVL2@>jQ*s%z7H$&0iQFT z%BC)013i0N*tVl`5|qDEjovGqMJ|mpn0T+)NpY5`-aeB*` zWUxIfV_*PHfAA<)e=4H*bYD*?QH>=^ouv#|INhiz2aL&n)f*QXSTFT>JV(tilE>37 z?UXDvpDvyY@VnMhYxLnJ$$Vi?)LLo_>G%#>3nmI7}6sJ#Biy8YaKE6^Xu;bPG zk^M!5OzhA7!4GRLc$0grsdHT8R*owYc8@PEQ=*zKnD}EAS{60?+bQ)sb!yacMt7u^ z35S5K@y{E6S#Kx#MPEN;O(kr=4Wu?!LF78IbJEGSi=*@(gSxDD9|zm@8=N zx=$&_Y$q~QVDFlv4*^s9A5SSj1q{FhB;afQNveQDTE;rOhBuQ^LXTs``tJdIDlwCN z!9&l^qdgH87_q#jHE44V&CE29^DHltO+kB)H)2+i@`9N074D&0iQdSE+n9aiME|oe zTIM^*`_uOcbR_y>zs zy}Jv(aBo$lEo;M~KulGC6)MT>Te%v@aoBjb~$k8HE9;y!^o zY^;^`6$4>IqEn8azCzQ5oj@kc|Le`pQ-;QLD|3H@8Guah#hFMoG3P)U&^-U$;K7Po zUde~owDG(9D#uj6I7aWuQ^dq_zX1pmbb&dqaj7d-*+@eQ0OB9UFFOcem^1RA21uU( zPu#G(!Y=d4jiWk67|f1e3y1d1QcQhCo& zbZ~W^M!CrjxF{m*Vz{tyhPSTwmROzQFc;!x{5&aJEGg$&<w?BY2PT|kyG=Ez< zny>6Vdo2mAGqY;JOjGUT^Zd9&GkO$k33Ji-V$PBghTbffO)fQ6FzTMcj&I^x8&S6OagS}~?eb@DJ};2a{(iZ)O8n?ad#9`TMoY{b-IdH{ z(`WjVi6Xby2G7JB4>E7H-3r+z(i~O`?FslrL z71_CG<#=i)CA}nw9OaJy+zpyX!eajj!2iTG%jD#x$ILl?hFW*v*KN*;AKz?r`LrJn zgDlOXD~)~i*@gB#6~%W} zyPj3|M7!i6{5Fe~cznI~1Um@R1j+-Mv>Wad2{LqXe`SRfTl-5l z*ZAHh3CX)@K@t`L;&Hn_#H)x}T|ncim_}CC$-W?C+rrN*gtJzRKC*D1Dd<^HeS%C) zyXQFZQ)vq~liA{V=axj9;8tnj;?c7$2a2iiyYm6t1h1{B8}vr48R4A}R@gg|%w