From 5d1fb0fab70b06eef9f35a82e9818b519e83036b Mon Sep 17 00:00:00 2001 From: liyepan Date: Thu, 22 Oct 2026 18:07:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20v0.6.0=20=E2=80=94=E2=80=94=20=E9=80=89?= =?UTF-8?q?=E4=B8=AD=E8=AF=AD=E8=A8=80=EF=BC=88=E4=B8=AD/=E8=8B=B1?= =?UTF-8?q?=EF=BC=89=E5=8D=B3=E6=97=B6=E5=88=87=E6=8D=A2=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E4=B8=8D=E5=86=8D=E6=9C=89=E9=A2=84=E8=A7=88=E7=AA=97?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 导出 - 去掉导出预览对话框:Ctrl+E 直接弹保存对话框,选路径即导出 - 导出失败才弹提示,成功只在状态栏显示一行 多语言 - 新增 LanguageManager:中文(zh_CN)/ 英文(en),视图 → 语言 切换, 立即生效并记住选择 - 英文翻译由 translations/voiletmark_en.ts(69 条)编译成 .qm 内嵌 - 打包 Qt 官方的 qtbase_zh_CN.qm,文件对话框 / 消息框的按钮也跟着变中文 - 欢迎文档随语言切换(新增英文版) - retranslateUi 负责菜单、动作、状态栏、侧栏文案的即时刷新 其它 - 删除 ExportDialog 与对应截图,README 同步 --- README.md | 22 +- VoiletMark.pro | 6 +- docs/screenshot-export.png | Bin 89031 -> 0 bytes resources.qrc | 2 + src/ExportDialog.cpp | 111 ---------- src/ExportDialog.h | 24 --- src/LanguageManager.cpp | 82 +++++++ src/LanguageManager.h | 37 ++++ src/MainWindow.cpp | 258 ++++++++++++++++++---- src/MainWindow.h | 16 ++ src/main.cpp | 2 + translations/qtbase_zh_CN.qm | Bin 0 -> 136673 bytes translations/voiletmark_en.qm | Bin 0 -> 6232 bytes translations/voiletmark_en.ts | 395 ++++++++++++++++++++++++++++++++++ 14 files changed, 766 insertions(+), 189 deletions(-) delete mode 100644 docs/screenshot-export.png delete mode 100644 src/ExportDialog.cpp delete mode 100644 src/ExportDialog.h create mode 100644 src/LanguageManager.cpp create mode 100644 src/LanguageManager.h create mode 100644 translations/qtbase_zh_CN.qm create mode 100644 translations/voiletmark_en.qm create mode 100644 translations/voiletmark_en.ts diff --git a/README.md b/README.md index d33e8d6..3779228 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 一个轻量的跨平台 Markdown 编辑器,基于 **Qt 5 / C++17** 构建。 -当前版本 **0.5.1**。 +当前版本 **0.6.0**。 ## 界面 @@ -14,10 +14,6 @@ ![源代码模式](docs/screenshot-source.png) -导出 PDF 前先给一个预览窗口,确认无误再选路径保存: - -![导出 PDF](docs/screenshot-export.png) - ## 功能 ### 编辑 @@ -62,14 +58,22 @@ ### 导出 PDF -**文件 → 导出 PDF…**(`Ctrl+E`)会先弹出预览窗口,里面就是最终排版; -点「保存 PDF…」选个位置即可。A4 纸、16mm 页边距,预览和导出用的是同一份 -排版文档,所见即所得。 +**文件 → 导出 PDF…**(`Ctrl+E`)直接弹保存对话框,选个位置就导出,没有中间预览。 +A4 纸、16mm 页边距。 导出用的是 Qt 自带的 `QPrinter` + `QTextDocument`,不需要额外的 PDF 库。 支持标题、列表(含任务列表)、引用、代码块、行内代码、粗体 / 斜体 / 删除线、 链接;图片只输出 alt 文字,表格暂时按原文输出。 +### 语言 + +界面支持中文和英文,在 **视图 → 语言** 里切换,立即生效、不需要重启。 +选择会被记住。 + +- 界面文案的中文就是源码本身;英文由 `translations/voiletmark_en.ts` 提供 +- Qt 自带的对话框(文件选择、消息框按钮)也会跟着切换, + 中文用的是 Qt 官方的翻译文件 + ### 文件 - 新建、打开、保存、另存为、最近打开(最多 8 条) @@ -169,7 +173,7 @@ VoiletMark --screenshot a.png # 渲染窗口截图后退出(调试 / 视觉 | `Ctrl+N` / `Ctrl+O` / `Ctrl+S` | 新建 / 打开 / 保存 | | `Ctrl+Shift+S` | 另存为 | | `Ctrl+Shift+O` | 打开文件夹 | -| `Ctrl+E` | 导出 PDF(先预览) | +| `Ctrl+E` | 导出 PDF | | `Ctrl+B` | 显示 / 隐藏侧栏 | | `Ctrl+Shift+M` | 源代码模式 | | `Ctrl+1` ~ `Ctrl+6` | 设为 1–6 级标题(再按取消) | diff --git a/VoiletMark.pro b/VoiletMark.pro index 0740806..0681823 100644 --- a/VoiletMark.pro +++ b/VoiletMark.pro @@ -1,6 +1,6 @@ TEMPLATE = app TARGET = VoiletMark -VERSION = 0.5.1 +VERSION = 0.6.0 QT += core gui widgets printsupport @@ -23,7 +23,7 @@ SOURCES += \ src/MarkdownEditor.cpp \ src/MarkdownHighlighter.cpp \ src/MarkdownRenderer.cpp \ - src/ExportDialog.cpp \ + src/LanguageManager.cpp \ src/ThemeManager.cpp HEADERS += \ @@ -31,7 +31,7 @@ HEADERS += \ src/MarkdownEditor.h \ src/MarkdownHighlighter.h \ src/MarkdownRenderer.h \ - src/ExportDialog.h \ + src/LanguageManager.h \ src/ThemeManager.h # Linux 桌面集成:make install 之后能在应用菜单里找到 diff --git a/docs/screenshot-export.png b/docs/screenshot-export.png deleted file mode 100644 index 12331f5d041e7c2eebad039856103845310a3d0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89031 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%0ALoW$r}cSw@&xuFVk~Uq=SS!#QFIb+lE^u zc$7vA&0-LXynN>V9u;(2PM!ZJHfXWRbNr+UnSvsDh@D+fz(26RghS5Hv)UU6mcK&^ z)L`}O*WXfhf#!7l>v*x+780_KzgktRh)S@8TU1Ah4}9V0=gPg2y;wFo>w}87%Ew?} zD<0IdFcGAWNDK?G$ht~-;{nuyJZ}F<5`r*5Im*x9S(!)jEj|I_rjq_B=|oNfBC_LA zgNCXLkSufkp~S7?jys0aovZ4*(SHJ8hJYMf+%NF87q9z`F1z*-$mW?cHZ(Hgv|A&M zPU0R;A=srbGPmb>^L)RqqOz3oZ1a^D&{z2XVD*;VY*+iwRs0T^`J};FHc)t6k`tXv z*V7Bom_7%=ryvx-J1}NhR^Nbh$CMTqRlqMabicWA&b0GG*yr?VX=d{Fc0&_%U@1O4 z1Zgne^0Yy)$keS0f5$KfQ2&XPmGC9`tiVg zieiwxi0Fo~7k2(^SzB8JkjCuOn)b7=pR}nUN+s1dpynnY)c%|569{|d^<3cTEjGuG&B?Cb-eg{rLQA78 zg|`}4CwnLm3-RvJCG!Jx(cix^Ht~@`^$Z*xGY>O>Cm?%zy8Mt(2i}uy$WvZzd!u}+ zZOZY6!pSq)V!1ONm``zJF4ek>Qjoj_E`MKGRn;Mf`4f{=H975C zr^Oi_J929-{_+)~p84B%aupRwOuPjxx}AL4IDVJ)7=u~A|Me@;U_xoU%bx2=tgyB> z3J)J+3WX<6+CoZB((sa?@6^-@&xYN#(Ddq*Tuq@- zMu=e|0z+)}^Y^mD@6Rc?onZ%z%y09`%OksWC&sNFBYtX~0UXdmgMV~*IHD(ThKR`< zsGe`QFHd3VK>TU(`$P=%^yMWaBMX@ejSc2P6{-4t@uKw3OcO{mUpXI+>w*u^!=qBC zEqtOU!fRbQ^h!+Z2RtfHp)ds=Sz2c1jEKzsIy^ceBCnv}G$INd0?^&vxPE_lH}~9< zA|80IlJ~vklsJ!}VGH4{`Tip%joWo*S*RIMdEhQ3! zLiR)kh~Le3sc(iaT;0K$Vaiswnswk{!1r3CwB&8x)@18~1fte+Ql6Q&@0t z#82UIY&YE(2`CT+HXobw*ORRB{QM;;ZgF76YHO|I#{xK{2z?09!3Gd--sh!oGdD;zD_(67%b5k9+-J%xAjp z+|aGGrf)1(=_l>*^X>ZU#uIZfRx~nJShjq^?DFLIiHe(L1qx<9C-uU+Sh1*x5n_|k z4l7*O#HX6|uBYJELW+@9n%h%bRUp;GyJybj@A?$d)lD~IiO=-$d6y)ffnA68Q3EtU zj-LVj4Cqjnqt(30!n`J9I^R~>w@g)Ar^?8CNS=PfCTi|Rn&@1u@FEV5%F6nH%)%CA}%A) zaM=^g((S3g^dG4w*2jqU(|n0{$8O%Qk#RXv@O)M3OnmP$pBu%f(_kwd7#&Rd-t?cJ zHjtyd0l76yG&Bx<*;p#m({~6zD6xY|lbcr$tJMn+#BP@ak$0XuOiED$e|;zBIRxFQ zB)){2MBr3Gel9MVPVf3NFL=jpFyz^-3m`e;wUe9%=d(rYnpB0b&y-@_3)T(~7ly^p z?v4ExTKe9`qw2X_BUPMhB+sA{@-TXQ-Vn*z4Z$`qdj|+I5-c#Etiqwv3!|84U*NTV4%~T zT^k=?8?S0)6bFbv;g|u2Ce}uNerk618D(kd=W1WfR&4)&F53ej;t=V^Rc*f5M-FrDYsv1+gdJ*0 z-cY~SlwU$|&YBG`^p(n8n#-94>YGheKpvy%x59A2ttCF5PPlO?x=>FVi2U&+u*3aW zb+dD?+$QdXiU{v%fWS%+d%xlq90f{;8|9r;89FM0NqaD-tVM(N$#;;r1bu1M2QqfK zE?wx)mp7?d%4Zv`e?}7%N!_HAtQH*jPksYCuDb07J1hX)@^3lc5#7?hPoA#Zk1_6& zo$JW!8gA+t?9pr@ICyL<=;D`{$~Gl#R;+Lwx;a|!8ay%Z+dNO>@C?Ua+=wO9NrB?S z#*FdT>8q>;YyBrq4w?s36;gJniV6zt9SvAyxoYI0*M6G1fyM?AntY}&yUx82*Z3l?KjgK!=r9c9ldDX7 z3B5VnIQWj9_ckxJ$D@WtLG#I@pS4HE0Y2e|gfYFhk@2cuznad$?VBOEe)zCK3e!YB z{Ih8pC+UM!c3|#GTqr3^LQF!q2?Hl-ye`JB$~+oYY1(9a#}X$An)f>E-Hy8k^Hf$K zcHf(BaO*COs&%eq5=<8V{P|{zfxV6K&0{G3iv22zM0ipb591&shwerhX~rTp>S8iy zd6Dq31WpET;@A^An$fm>#-%xzqF*3xha4GtIhgd!pwosUf&CCg-TbykDzT3X5KWOW zN*oNTbkCoDw0(yJeN2?j8bx@)%4(LBHo77En$6-OM7I6m5>198hLc-hRF!!oLcIQ-h;clzww9C%9t!DMNZtKYq zvOXV7l2^pVx?vH;5fwI*Ok~|cAtw6sQB%NZQ|)lB$jo5swb;3UbQ!|n{0w^0;*Lbq zLd0?v=HHA(W=U5?<8cX1ep#NhtX9aU*dWd5D&MH< zRWPO3l{!KA!@`~NVliXWoCbO!AqVjb$W~s-hrA0{lSQWt_o@%t*woLYR=b~}{FJeG zIJMwPO}DkunSOM1#HjJH;@v!dQ~%#v@&O5T^MylXPkHttHs<-Swq6@)e`wqtkm^H8 zU)fU`E$}e;7N(#<2|qumFyHR;#EdLE6husZa3`aH=4+fc2MAwTXrnp&Axr`tRs-iyS zhnxee^a)3}kEmEUEF(#HL9AIw9-+)ZhB=zMz3qoq}4rnb)77lOAZ~(U%x2gItwA#RsrJtxB`& z3_iKtV7g!t90n|qu28UIor8-SJkix6B4A6V;8Wq{M<0tUK2uF3LhjCQhc!Pee-c7IdYU`Q0B zXg>n~Oa!SpPQKI0gZ&PK+=7M)&N;;3;x0$~rp!Sb< zt56ND$e*d>lIt1fp*Yqr|5hfii`MEi%Orn^@|Y+-T0CjNMq1lR<8j&Lw{e8%ubi80 z3|YDJ8LJC!Vf*)TCO`XS=0L)2{Zp4!is#i`MxUOoq@{kRmX0ei?)M=Y&77@vrsZpD zHt%{GdW+oK`_?^^NX=nqZ>ZbaKX9AAmt zki5wn8!N%d+}f_PQmK6koxnGMUgxBUfveJdK|xlQ7N4Ghii(Ct;^rNpEuDfuHQY7i z;iI{g1=T4SO@n%qi7?TP^NsmHp^OWY#2XKlu86`k<3-ct(sOa;ruGu%c*5mr&&>&^ zjHP|8P<67VW{q-nP_-tX!GtB=d_X%E?5)A;V}Hgo(r|mS7Ce;1vAEsyf}NcSID2?r z{}R8<{dFU6Y}`_J4#>K2txzsB7otYT>7yt{FzY&)HYS>~!S~IZtNrC^q~ieYk9ccQ zq*d3GTesSJ?O-6C?7aMMQ`7C*Vy5)=*0&9RzM9aqozAyiuGlK5{8=c9}zrp0{#irw658CQ^}7M8@c=y z61*avV^`yI0IFgM9~@Oue2SrlyC-T%f~MTiEI?yc6yR44IwV(4Qc?PnUe zo^jh&50`-{$KGCATYH#E^~ZnaqO7IwR||eZ)SG>zxy&|(X`-iV!DBFXx%@A~J$=+$ zU*++7)XJ-BE6Ti;Vpz?-TRFQiBY-4Dn>D8V!ono(!@Ty;pMnCIq}-BOqxPn^63Sh< zIn(ueaGiDUXJqRh$0LIRTKSq)R$Yrf)YvRQf32>}$Us$LbsNuFrcZj#X}50f$^T-i z!cF3th3HtScSuZ;I*i#wMB-=El|6PZmN#MT7Je2Z)pnp&j{@aUR8=BfI$A=7xhJ=y}>^;D8NWe z*UZdJPj7tRe2}S4zpROK=dr+P)x5sK{ebfFi| z%kAGj7w}+_6d9&4j=X)epymL1wk~Z{F`HeK&Dx=3ZElpO4?|0XS|H-Z)dj>OtTQS9 z+be0J`fD;_VXe_nco|y&cW|QM1LHRzHI|sB1)MSfsK`51b>PIhInCN_VE0e7$r0!-m6(}iD1RLHa)%8D%0l0rBsA# z3{vAuJ-Q`#VQfH5 zM?sx-kH|Xhoiaz}mmI&-lAOz>@aFYnr6PECYJOy7g7wN;fkg)w=Kv;(8~F)Kbq<8#YqMVH!If4CEmk_*2dh=V zatf-eDOp*iE?RXzfDBb32_gAZisP4uX_e86$M0Vb3S7gde$$ryn^OI6T7ZA(+lmIR z;(Zs9)n*d6YKv|+x}UUHlKV=Jj%qNTmDyNRAoBnS(v+~+1|EG-{2MmO_@3~j*g(eb ze6J%a5VRv8mYBF>p>~(ut|K9n*vMS_^gV6d)S7jTmBlg+A2mWVjQ!B+6(4P~+$Fc> zEX+~+z`+UY?8s}776ce~ev$zqVs%x;ClCRX775FcbiiR~i2E6*U59@2@3rr-^wI8I zqeJUVcX8DIsd8_mpOIoXI^*Hvv*O`U+_T-8{fvu4@olxzT*kgX+vS@UcxYy6-rY(g zewtYQQ_nTXc}W#6Ub>ZbwZTLvMM~>-cy{}7zmcgyO%7d9w4Ztlm!|6CG}gkl(w{C+ zypO{j3?EXNvU)*q@cRstIlEOdufteH&ceTjn>bRgY%tKe^-KFI{ie*;jrS_%wx7TN zbsOB-*ts)aB53{IbIWSx3+l}eV`YA)$}Twb1tftGz4K~a!i|aCnQAat_#sFzn9OE; zuFwmVB&@6~UUfiR*kWeK%F4;9q5~7i1mI49$X#(_-CWvt9WZ&WEH6)*Pvxhj&E;iP z7&fc>di(n?hZe^$I7G!n5HMK5D;k>2_@L_Db(swDld6jD?rt}%GwYkF_uxX9{b=s) z4#K*LA)t>0%I)R+72d2u^#;cL^vcR;A!?ktj#C2F+9{*IH~S4aQF#;dz%#78ZavBR zmgHpZtZLU`c}iR7+Q_mCvGbBi%Nwa##`uh{B^jE&=ejp{JtLjGFxDzek_& z1KZb+{dWTb0yde~QTZXLY>mUu=kPHi8;r+oO&tek1EinlRwew26jwVNZ%9n?$ zTBwj0uLruyY!)1DefBTQXuuQ=9ue}q{Wi8|K-DSE|GaJ6q(QGD<(H*eL4vbD>q_GbiNMj-IB zh|QF1?;2080ziBiYIgDu1a7F2_5tWO3`WDiAax^muW2$_&1kRr6mme?dpuj`vDH@M z^B!0y+d2Y^V>XGBsj^S+zo%zr;1R?Sl2lpbTL0j;JUmihcL?PyGbpsu`1C3agY4jd z+tzWmEk}ZYi@`R5DLUhF4t?>+5$;fn;F+3=Xyw2s1|qcu1x&%IIrkgOVnN8C+5_PF zpg!O%zY<fBp)Cw09hYs zEM>+QWCQ`P9wwTr<;Ef}W6ZYA5ld(%1-lj9;dyI1 zEwf*let$wGaB6#8h=Bfr5`c09(%LF#QJuSrQls%x6p(Jvsh@7iftBvE2*oSv@;W5w zGl{WXU1Q=K+Q6Fw`$L4l(QN?4>SwNsWp}A1s7uJpo8GBLQH+!^@nB1dNVLw6utcH9 z1ku>9eyqX?COEjHbzvfSImJIvHbf~Pt*=NToo z$a|kk01;Xwo;zRUj>K3f?AH3T71^vyLoeFDl@E_rY>d=gx)9XRB0yi>G+F->v$FEv zjz2{~*=J1P(wiP%22!MG4F<(J#;jpO#dP|5Fo-Tc0`Cc*#7iN3Z&x# z-l|1>K&yVXNXBBAgwtVZWW7%kjQYdxOO%S{IBbqMhBap39p=~3{on#7sch3;(lKM` z=c#jmKmz~cuqc4zXY^{oNh)mM6}QNH(i&1y8dB(xrl?RbF=xG*TC4s~H|a#Ixz*#x zx?!`@lCC#!Gp;$*z<`M&4YT=@R@lWAa?!1s87>~4%tb=uF34QG90AuLkd{E7#ijj2 zJ-GDyvIBa029ucqlz-f92#VjW?SMq=5NW>&5e4AC!+DXIdtI zNN45czIo=b`Y*okBH4#KuOJWJU;_)+x#d&%;Qt6}oAX~ftOi$ltsPt@HV7Xd-@7R! z_PtvVkdXU@N6O^5@L<$CT}QX;#>Em^OxLGGIEg|BoOaZEQa2Y?XRs<$nuu>d2x_JGFcR+^G?6t z4n#>G@mfEHUZthdNF~-7XY_^(OGCg`@0~W!J6xod!0mRX;3&i{5eNd;Kd9sv;%fj3 z#E-`b(8+D0ZacBVSp!MOv+L5A*EX-7Kjn43*x32^=E_3*oE(!el!l4M1I%O~bRs6@ zA!@3$%;tfv33wV29d5kED*E&`2JjW~I=p2L3ryp`(`tj2!qPlW1G9EcT@bYXu$B8x z(Hj3M7<;0|dLPT%-#clzi?&%ggJ;1PmMwMHWAQ{mv9>ZhAu8-`#=>U@iNgp&x6Uwp z12$a^_sH^5Wq9NSo! zAE5Dt&LmT2XXGoMp>Y5}RNKO3WlO9qSjNUH%2{BjU41>dc?C$G`8%diS9gEfO(KG& z6IiK(xSUf3_*mePb(bk3&}M>J=)%~XeK8!NW;4F~#5&-QGI@M)iQS+WQ>Yme9{u6{ zd(FzW8dygAmL18iPta7UQ)`0CsRjoCl;-MG$a$@Int2^k!9IYCyI-Qnn66G^u!snk z=1~bCSA_N+^Aa*UQ-=AoSzMO3<50^`@C`J&u=fImHrNvY9Zc=VB^^$8ULUZ_Scu%f zy{4wB-CP{lapdJ&rEg+&^^ITAFIjI>Qjv(Q`7H|fDoVz`n+MGU;A1{A-O=F?vsm&E zwR#HrhMG-R_Lk;74(lO3`uNfH;!CQi)3tQfOzoNo<=eNkJzZT-X&Cfe2k7bOsOR;d z=e%hIIEQp!SzJPb-O3C%2SX_FiCJ~3Bhrw3Tb(Yq?DjP$pk{)np8*NhZ77BAa#LMm zLxvAx_pvo*9QLlx_w)*0-0PM515mul-EAUY6Ug`~_h-vMj321o{(=@b^Pr~e*uir$ zGeshw&lO=(Jibi$XtO)w1S%76^8QA-keJwE$UZBEZdZJ-qiBIF%2n>+*U z$tkSzroyh1_k6CwSv8r*;fEiJ6Tb0Sp&1~eUl9d|gzS!&ArJSGT-|uPlQax1ijqq2 zmdDuu{F`+4ezlCj7zhV$ksHkC&R{H{oGgRJ7lb|lrU$2E*5l&MiEu37Eclz79PXF2 zU=zSSbkjxR`TQ!TRre$-zgiPF@$VDpJG#G~z1FE#=`-j| z0-Cjj`L)`*($eN&Hk4*}_z<_e;#M7}Yy0DPq;D_|YF;@OqYS^T7Hbh?H9dq;%(j6Hxn_gA4bUN_t`@$H zmV$9QEPGk;6u3a1*NsSKC$_#AEu+aKHM=$Wu2JS6^IK0TP=l*-tIDW# z$&xoC6Kl>+5E+x$kbRNHcXXG_vJ0G;;^M~O(VE7_<_2)TU!Q$i$!&(iM8L^qi%)D%0B5)osxrT3a8LiH&{2rsyR`IPRGe>m<5*m-{7v zZT(r_1%ws!tzz4HDUu0v9#FB~@snlrnR@Nr6P05{dbN=}gHRrq^VPLA5D(|W?Xp+i zti5|B^>FtrEgdc?d8;0coh9G(Z@jP<2uc&BDR@o0z?~*jlLCNUotHLed*|Sg=H=)2 zEm?A(Q6#Wf)%(=ez7tUt(O*AfAiw4jqb$AOB?&%Lc!T*ocCQ7n-}7o#3CVJ)Ih0rxL>Pa+D2A6ue5W3Yme^tw#5VC zjos#Kj<>^MzqT2(`Gel;Q)=G#auNIHLpHUe$2e7Jh~tgo2&A+qD_wq zB0c4`I+;RQN+D)*86H_}Nt(MQckw|dyIEZNzC<*apDZ@#wM#boJ-?UP$h?oi6s#!#@l!{1h7j$#z%4pXasco{fRBe>O7bH9p_?E(`G}2$*RNA*yuIbfO&-%r z6)p?>F~fk^dxZEGF^h^Pzc!dqk*Itjyt$Xs7vPFY#V_8ieOyfnPLoTa4y4|D8zpU8e# z@s!ijEpjM6lbX}siGRPE11=sx4ZR8_@lchF#Y3q=fiRvC05{S7Ej9}D$0d}vrHf$j zrzHlCz`ZsYzi=o2iWjn@vaaTg7PM!b4zWgFu#%eNZ6kjarTxI5N+#0YAuu6C0g1Qb zpdxC<@7W_lrT=2gxoO>`z++d;KH2StS$YlulfI=ASuK#`Oq+md|S7#Up$5i6g z-19e&2b^nb_vf3EIoxN9A+d^!6=$zXTZqz%p=s0zI}L+TYnyqlU^#MNRj= zjY!CIJQ$M6ALITSZo=lRQ~rjMNPjaXTwARvibIi14V#%!ZR3z0CLdB^-kR*q*PeVD zQ7IxtXyCC^Edv(Y6u{lnL_?l$rWMLi?eE~sF5#$*oO}vz)k^Yth4Zb zZ4(od&CMaMpx!C|%zS$ErT3QAkruraT9{}s-YbQF>jUQ!n)F1I>S^~%t*+o#N-}v^FDnvH025x z3Cq}knhiXhawVd)zvvMHja5JOC}ldFjgurMv!JEm?o4UthA`agQS$Y8z%p9HRgw~R zl(>=-K3fnXzmih!)$bIxbY#dfpoi02ujOUBfDW^z+Om!Q+Gy6xw|nj`kB2*3g+y{+Xq)qmhZkMd^^3I=f zQUr@!cdu9KuW4|4oO=?({0F@NIBXWoh1h&mk>^+P$mM*ebZcJfQ;It)V+o36VQ-Av zvDP-2ELJ+Fk@$s$Gjz%>BT`a6tq&v?&K;a$KIL}k5Y5+qUt%$9Z~j`d6%0eLrtHef zvq}coo3A}RL*{IsG&mF`^|SvW0&;k;Byw|;hhzB zx^IyA-B2fraX5oDgf?A*Ov&bJt$QJ*ue7@2cL~)18OxwshMy3={FCGR6>NxGF zrZyeGC~=vjoo$z8K2@f?AoCu2` zHlibhPADyV2&vBuhz(Ibw z%}LjieCFU8=2P52dPc_0q3%*an%=b-8zAlmXG$`+d-*U{N&oNYXkL(z%3pW)_vN6v zVj*=B8DIVSq~-5s-?q@V>XQR;tb!N6V`85(e-A;*`zw$#X)$kYv#<_Gsn}I0R(UJE)ziK@?mfj;B6oXeYv*bYL9D zTHyH7X{I}7@#)i#X#I#*!lyVL)5)AJn!>_yU1Q#Fa05U~zHwZfQS?^4NA{+RHfM!)(X3)%Z1iuCXVxuyZ2{9)B{s;$ymi*so^ zBSCh6zU-LKY{qW0t7Wizv~?C3yxyHWo~qE1;KCZ+72X^m@6aoe$DCh$KV7PSwWj&D z4WH;S(3`#i8DU39sKcFsrfk=9*O=f!aOKr1Zw*qAFVmmv0It+##a(=<%Sh+ltA3!& z5c`tT8^e&qY~lm*5C9@7_yqmNWIJTDY%Shl=iT?KG1=F?9{cPkPapjRI!1GsbG&~9 zjyu!Bw)H?W{?K=C7}gc4c&yF@dxspGU7fzXqNc?y1ul6bBic)~Imc(DYxubMrN)ht zt2w#3g<$Da?;rvC=ock|-Dz~teEIC}LVQ|!RPBPIA)tvUwZ1H^LfKDGCj@P1i=8Wg zRX#FkW~OHw>Kj|nuG<2T+PWv}Ut}c6_@VPIwZF}5Mc!^wW@Tr$*bdPsYI!Y9dW?-B z3wb{1kh1>Pe*CC1&AHpS#~>|sNtuxGRY4(9>&pS#5?Ki>E{X~*0+=)}5-ty9hroWa zH@f0QNfS?=TtUAN_HM0`N5iqP!Gek;E*E`y=HPe-u(nA@#3Q(Caump`*H+iT-xqV} zgq+JH+Y&*Lb)Dj7r*AV0hwN0+$mFFdE{8I2?4vs^n2TMo?o9Rxb#or72f&_0`Xk- zSGqhOJ!2iouTu?blf^MhIt%+l+&}oA-+f%}87ILc=V2R~K9*!t&R$>s*ztN~Dn)=LFNx3o}nlvVs_Vvq@@GI}D?X4~6Q<5*5n!_~_m*W!aUY8r~y-G!zbyhdAF_y}(FRdt& zd`45*CE#F(kTI*~C-kla6LE#L>-5L++HFOO>1l28ERMz5P(*|a{v>}ss2Nk8 zKV~s1Vv5iuGD$SoIJyf|gCK=tp<27Z9af}Y2sMMLW>C-<&`NWSc4d}#73(Rjvcn~y z9GTz6xIJWi>@_qxP3|vrJeQHk0!xnV`!~;V#_Ep=_O@+GV>oCkF-M z#&C89`5|QRO27UvM9=ptG#(ef-@JXh?e_1_L0)XW3*6dCidS;c(ikM_`lCo*^E6;k zoSMTYfHI_8o<;_nEI?IBY29Q04g{o3k)B2P{s?wAY4++K1+6rzo9b)-#XTN!4Tf4Y zvJX$88zjW*vt23fNbp&G8;v#_AMXRR2#`*cU(%f3i-8tSP;>?sM?4tEW3#dNNhg_~ zI?!%uISQaEU7scRs@FwtHb?qv2Z1E0jYeEqi~|0n1(RIBBmaL=;g21>F~$W7bA*WD z1yL3v?eb+@gt(ln zJPGwg1$kzjlj^*f0sq33ZoUbLfkb()oMZnx$&B6J}7X z{Pk>ME$hd*x+hA1bx*j!Sa|J6^}s(5QD8(2Yd!Yed7#VzEB&kc%>!lr z+?bUEc30KxJMbTln&HQPPgeh5Ce{Bt23;UR7f{idci%1k)$Jj&ZiTwpAS`GBF}lak z|K$tZXaaMeh;Sz$$Q#wZ+V*vZiWSTSc=*cXsDK0wihFyB1e@%_Ig73f_T2NmfLq2$bZ$8@Y>6>eh547C?6g>6N zWYXf}hMm_GIk#z~VLza_g@5@56TfxNF3;}++G^z+u$0^T5X|R-T3!gAX`|RB#enw? ztkjNyYnFIwn7argWe&!>tnGMf9mw6~oVhsjI1wKq(KO!w&R!TOudK8OC;>RpiJwqr zxo+_p5=OM^e24?jQ&w6wIx-p}e%Phw=I;?8`yh(~W0>tTpjdaP}wa7r;Jr9ce3w%EPldfBrIUv@jmPy9D{fGw9 z*Pfys9FGqVYwp!%#y!*E_NXnalr9&NmHlLUULIOC2dQEBexFTw25~#th7J;#PFKo* z`sD82D+gNZvHP^%zMcSox0M-@msKJ4s1 zI4Ug0eyWO_jmQy^sGVRf>c43LaCp)xnA73LSiU0|bKf%8VqFRh#dxT>NG0t#D9yND zFS>UY?Ur_70wwc1K0SFtmQ(EsGbL#w7Sq+EjK42aD8U>KAbPOJ5HQ;izoKHMw&mx~ z*|!(n2{SWCM*-vwrWc6rAb0_BoeH#Xad9eh40YJrK*i7DaHsQ0`=z%)!~J4d9b6i? zq+k}iYX$H*p0j6<5OvPi3b;Vk14l;p!{rsa7R2GY;Ry~h#No2H3|d<7zqy$r&o|gL zg!D#5M7{oyHMFixG8wquX8R37$OpM3{|IoOItV5=S!(XQB7OlOKqnh|f;;nd4)?Qh5sGsR{&PD! z2_(Sn++deDH9j;3%wrW>=9?>Sx^o>(v63Jel?9qQ*}i`Ha>B0P8H9`4nQY-KbY&aT zMa_(-K7%47qwV)}=f?`ri9eR+*Vp?f$ak*Vm+c`zpdnz?;(#9!fTbpPtq-!fk$P7f zH$k*$>EHXaArV@tN80#+c3( zTDmuqNgPR^MfM-h?@y)tdgnQ~?%y#O&*?Vix70ERFz_M6a5Z)d-01AwTx=56c;dNQ zl_xw-xhaL_=JR2Hzgco5_@ILoh#=!@%3h-}Ux{fO-~})QLFf-K?>80n1EUK)z61zI zDEx&J+KJ>j7#G)Ab!)EK;J8yA>Q2G~xcPWu{6uLa&$hPE%g2ww=#O0|4!U1Zz+23y zgxf9Z;~7S4lSi0DkHt}cfqjxwV+TV68V{l)CJm0)?S{GyS%0!#(o@S<_pTm+ffq1| zr&Iz^gV|09#qoy^#-g|&Dg*`7e6BH1!oUWsYu8bdQ98HL2l$k`qJ7A1Y#7)}O&QT0 zn6P!c0xV^Fbq=V50010mtL6y{%FHr&%J+3p%d0@8Dkrt{r(~vj-JZ+g&E|?|1Au7& zVH_^cYc^f~lH(%IWAWCaQ3oi8JrF@f_Lf(Uc3ZWoQy49$K0}6xzViU-Fc7G=1@j6? z8ag0DzuCsN?A^FzhR}HB#j3_h}uWWD#*utd?C$WTxP>5qgDAa;k8w^Qr}82bh^%P0yUTTpU;d z7OT#|)J}8xXmM%92Ysr{r4xkN`R$IBmfqYT4lnuGKDo6M(jAIed}bgc{$=~Vy#Y1! zTZ!@twY1*&*z94$69@#am|`G9r8YK~u6GAv-x0pe5l?ChA_M}O|IL&Y1z?Im zs)QK>12ePys|%nI1>5R?K-z0OGea+kNa0=um`ZZM7AaGQy|M1=jh98QJIB5%WJxAv zrxo;n8$tk7f!If-nd*jN-?p|jt+$}9Xae3C8UM?^dAFvof+1UMn!+J>Q^4=&)h;+dcrIvmM9s4(``X zc-<*hIUH|S_eJhd)HyrZ%8_)+9!itX}%)OObTEOs@mlp?8)yFK-MBD1_ z4#$-d(AU{-&en{EHpHUezDypeJ=$`;FAhoSB_`h*sTm#pa}A^esLujJoXK9G9v?je zYg;6PynrLAyeUEg(YIAhT>51t5n63hVIcq=%*`30o%t0I!Cmc9L;|%n_%D>2(G1hj zff%^%`jy2W_7vDS$vl`Yj)O(o66Omvd1(c1+XEWV#y5RqompNkn$GG5EC^)iy^oV@ zXo`>p1PUlzQIU~=0&459`~8{kjt+Fd9solApS>pre*f{FWS7eEeJPl~2@~qcm`ZD9 z|K*_!ZlqUIYV#f!--a^+S8g~J=jwQ#xiP+dYcf49K=^v`*_5{)3wnnBmJzCkr~=2; z@66mGSIaab%dAzzmkVRU?4Tet==0|Zhft8EE1f_; zAMsJIr|s{r9mrGY)vzJUy=U`*-)9|DLz!)I=s5uaCiEc2q0DY@QF$hFQb)r7Dog~8 zq89F^1spAa0LY}KmP32uEeWh2E(eRl*yaBE+5K7Q5DMgOVqww{M;llh=2uu?4ycvki6(sC=agvQd z2L?17g5-f7<`LtQ{DJ3N8k@C9_otS0Oj+CEy&D|9oQ^;Sy1)Jf z4xm_H|KFN~>{EeBD6r;#WfH19`LPM;V6cJ|%GanEvAYB)Mu1NfftW6~hE!OD){OGw z1%9K$;BBVz$v8Gbh&LJa1v8~x7A68<@NrcFq@(|cZ|2}=>&8ElQc03mo^Un$imG=p z^b)kq6pwl0m`yr-`qkWG}QG^xG;cQPVj(@=8GRIP>il)+YDXg3&4xC5A6$lP9;fiz~d1K+`3 z!BwXH9`4NrFBGe$oOpQ126V7{HXk|usXWt~*S|qY9+`y?QbqoYCzhZC)>rgUKis{u zZFp9BItw)$BO9Cfe1b~L(Q-JzcCS2w!0s-PpbdQ+pR;aSPXS^pf1D1i+k7byC=F0D zpxF$hN;^vvokri_)4ed%7F*zL(DdQO3!ZN11fHTV`7KAKM_$#Rp>L(iiW6=|wpaC> z%rW%Vhyc0pc+g=;ZolLz@O2~>|5E(nb(olU=)s8)T(nl=e#AS^bR#Lz)& zo}Ff1A4o!hKu-=xVm=IK0W?(}$8Y<^Vc&lVCIweem;tVLrZSWw!dN+cW#b`YlaTGLxxLQJFDQbqIA zoo6SxXcpD?&Y+2jJBDpp09`a;xg(A43rv0)N&4_^cQIIf;rG_R{P6WdpnyaT{ZKys zh+EU@GkvH=Z_!F+y1@TvE;zy`Ox3_ai4@u<$$bmCLGnh;G&QGJ@FZv zH|8r;@a+N#{6JSH~nK44oYU`-v5WYul%d(i{89~ilUM#(nv~orzoION_VGpH>i|I z2?$6xNJ}?JgLF5Dba&S*{QhRzGS-!AAtZM z0rOoSr}?zh$+!0=1DrIZouIqB^z?bn{6wHN80NmtGa6+j_#7Lf;9Uoji0NYevp?D? z&W9@=tNRrw!9?iSBhF!I6lQGBaYn(R_k*zLx z=beSwA{y?O{y!C8zitQ98pQVQkck1i?CW<>rq(7W7xqzLdV!gX@z_vCERE~17mF%N}y-CL*_GEEh_7`qO!Cyw_kG+Yi@k*nr zidGTgvq@0qf4OB6w4th~5aK=>soEa;KHF?_fi!8&XOU(NfUUU&KrW_Esjyd?Zld%X*|kpARH=K7X$9WWyApyQ5?A zp+<3C{ii1(#>+H^J0JI}i4~4oK0KRV3p{e_xmxm_8iOB6CPPC*1F@Vyzo`nBgtc$4 z%gkpU+>f5AjWa%NY;E#Vo+)}t>AdbmEt??;qJjS2w_r3+!b$i_;QQ5%E~mJ-^===4 z^}n-dZhP+RkL^|1AR)B26K|kzPLpIrI$td2p4o0Cp&ib(lp};*Dz#n97pt7tUj>W| z4H;WoUJs{zWyD(X_Y>sh6!gt?wpqE?a0BbASn4F6UuIOEVqT778#_M^4D1X}5P%8K zC_29OSV>25W|*JVCPdiW^_vJL6vQo~9-cPu1$*OQ0^Xg*-HqGmlSMZ81=V_EZ`9S} zDr^jpfBBvVck5C@QfodZZV<*NMQ`5w1^B&nnh+2Rj!>|cRNg8n$;wXj{?aPquFmg@ z1zKqjamL-c5bMJ1R@)=vi?ajVSw8!IuN?sa4K^C~tGSF1zbfL1%;#DI+g*3S$$fb7 z0kfO)k;+e_6>srKNy%|a(=k0$z3+Ph4xPvC;57@5O_skeH#KJn!y_)4EH^)O;B*%= z35c!}n>TkYDPy|0s4IzuKiV)R**)oB*F~m7=*d!Ya`fKo6mrlA zOG_X1&1K+5MKzT>hGvv)87;kI=q3|%yCmRp(0=}W_Au9K-g`Xs>nr>1M+!VC1iK56t- z0@D+-TlYn;2HH}NaIf3C#%De5nMf3tJ2 z5DPfJMB4!P5J#KoRJvZP_z}~S3!C$vo3uLnt?uPeR0}WHAw2s$P|>vh0XM=rp2*+b z{jZ|zBo zQMNVNwY0alE0Cj1c*$B7TjyxJSuN6K9xdq54O0_HfK?rJ8)*3+(irESmiG@X^SBL5 zgBji?$;n!51R6Q9TBT!BVPQYIgLcuV{LoOB`FkT%Q2U-tD_9?CX470hxL#r;c#54r zlU_(jjxR2{8JU^_IkbABI8(4Lzr>DH78@J!jF!I2?T9F3G+PlpOhy;+=iafy7C!<3 z^ViK`g?SAy>ABJZcSpF~rQ4H$QWf}%{zp%{%(3p=Y!Y5?DOYvaHVgjvqN5 zE}nf^!R-%6TQ==lY@}>l)?GXp?{C0>-b{DYM`?3B&8Dul=4v?V-!1XOznzjRnr|4( z<5s%B2bPwX`zJOu1 z4*h7~wqfR!xGH6PH%MfJ_NO?}rKi>-Jtfh zXEM@ij)XvqoUo-06m|I;;ePU)9idcUYL#sg@b434G-&My_x|@Ie48lvDqkKFiQrw) z^sN8Eg$su|le=kA43B*=hK7ET^3|JvU&QND{z{Vd_&c z2H(L;?t5Q%leP8lq`?lwI)~4mD8b)A2bdigD53LFIO+U-?tc%5>%VJwKmhDx78p>m zpZT0_a&XM=#*}R_q-$KZlZEE%ghobQt-SxwA8&=}$s>F)nWLu=$+LFiBML@A$jF2~ zOhh33FZAwU4-t0r{*Icd0I7ta3kJF|;4SpAdkW}|syc-JAuV(Q`XsHpS z<4RZY*#GtzEOfZ`yQ1I@Fsbc)`X;ToZMa9{C+IQbKn1Ik1iy9?V2I7~20{UXz z?;+)$xbM5$p3Hiq+jYv2WDP*GAj<8OzjCs&F;_d-h_4p0C?6Wdg0b(Vhz5QBa$mL9 z`cZ|StJwuiq(31cUp7bocNZQX^SrgHbX#KRlm6B*YdJ~~k_)FJST20l2bm5TN?4_` zJ%s`~A-6pgiywuyEruWed!od?@I>SI?0l3QPgW0h!ZK>fiFo%nhit(8RJT=ncw___ zqC1EEQcwteM%8&dqGKc37~Izyz*=3#?BB=rKov;0C~5mqLcF^dGbJalEJ8O~b)?lI zakUlxhqbXtv4;pgK_r9bQ*1v<8HD4`Zg^7CY<%2Ay2RceYbWg1;0N~}3=j5#k&^L> z*x&1>`!eWx5=;rB7lQ&x1*zfQKhG}j8Q zaPLm6%W@kt!qS=`I^-m|ygYTR6QY7-LS@+S!bx}1a8*e#<`)-l2vymqX9N+#w>sku ze}28SFgos^n+-G(DG(w^X!C`n#Wytb`#c_%27D0%KWWI;x&{L|?A42_tJQ@69@dJ~yE*cWWguXmIIIP*&8#L%s|lRX1fM3j}4ftS@(@ItpmT7}CZFDQru zL8o4A+4so_CdscsG(olGrv2`nh={zII=yGTR>3F%ny+h+G#*Fi?3Nq^(_jd{T8C@0 zv&#>8q!M)GsROnKS_R?sx0!>}upT#u_K2y8|2@H;>nB)ZF(Wl8FLeFhV^PKakDcEC zKgW^Ea}tbik&*sYkFTHE64z4RuhCw9M@&UMs!MiT2tSqmh zz~R^{RCKs;x!`=c1c?|tfq1!j>GqeMcM+o=B;0!o;vsys)2y9cUGGiS8b}qde*S`Y zTY^Av(?RZF`l1*Vr2)j82ESA9b{Tx0dZMT#_bN}ter0!OU@3YWFT`|UYO2zH<(&8Z zF>ARRLm*}8RSJw9Z0&3>Gy88MJzrhOZuCJ5`D&z&{Yy~w0o1z4+Dzl`?O*sthKB<% zeA^SI_oKbNKRtT7-Q8S}g^n~Xl1Uq+VtH!pIw)zv-^?HFJXoG6JA&e~!TY(B7%~Y&wbYxb^)9oBKE4YiangUGV?0eo%J39aS;(^1<}RlD$disu3@Du zoaR&94ws)^#bZhZK?o5HU1u)mi66Hu?7GV`(NIu0!DPE3IeF_=ieY!W3!HQnJn!c} zQ%NU4%GGB*d^W8QuSm~sKK|ca0H$a_+}cKDnpU^v^JJ;QvIX3We7Q%1i8+0g*v&_t zlV4RQ{!09%+*Fudm2vT>UL$@JL_#~FT)}ZGth$p=A|IoPjn_C_o!pB=%UCDoci$~+ zzIS_nODwf$Z2iM8rx!k>lF{2EX+%bxbWFd3JLdRbiO*nQPqEFrfeVA4VlZuFx7${F zUI}E&5j@5$aoM^o4_qToO=DCmtTrZs+sc`zcAh&V1Y14E?UXv5p6-{_)YN4w)4ric z^qLiK9K%W@7MFT%fzBZQ_#n~(@-m+9Jw8~O66YG9v#!u9rlE6e?w^%vlu8hYbX{hG z;)ga(gX@K<^Ob3z-F&Lea6Dx0HeaO-{e=piH;^XPaDtc_R{71_Lh|Na&U3^2j_ zwMrG->hVjBZFZNRA`<(56fJc|hJ*le4F{4FmC} z;*lT2Ddh>%}FtO2lBZQFJ`SABq$p#88ZnQwZAev`%wgj`J6ciP< zJHn(>rBx3Q0eJki-q@zO{r!ch-(ECOLnR8RXm$hXBX5R~bf3!Bkuy>_;1?dLQtFwT%xh@lb<}C(kgj|<25lT zq3E^F2hQsI?-8HB1ciJ}WQ(zZd`h5q(!LP(e9?f=x|)t_vO6OJV*FnLa;9Hf@Hq6Y z*E74d*T8T2*`5T$mtrCqepqsTJ}oWG3@Jf`f)y@X?wSd>4I(h6?o$2f)jAjWgxyC% zPF}XgLt()YR;h zl+=9+=RZ5g#Deam5fBRyvshcf=>_+XEzuV+-QyF^6V7}Vql z@G=5a<2ZM2`bXwM_Bo&1-)G@(F4W#Kx%uRKUTCqrA~l<-Xq_^9ZzkEbQFWBS=VrgK z%Kq42T~jkZFOQ>rD6Va9`*OoTI!Qm^b_*~QBN$XjumV6OnJ(zMf4VUNy9_eITiE!d zFZHH~u)1WfaeQfuD8H%MVyC*};{3a7t0UH^q>y&<6d|-oD1hem^dTC3Y9HfhYx=GH zyQhl48I3p8L;4UKJ9&0g0jmL=)Q}JizW4-q)7ggTuU}J#V1er>;Gc#lT_^~S7;K^n zpI5;X<+X>8R)lI-}F`0A@7xPoe^h(@bX(z z(%{nV-;M<>Ze2r;TNPQW6ygIoD)!~TF!Kh&wKg$5J>4X-yCK-`hL+tiXKseAGe4s3 z_wUPXAsBu%1iuvdRF}27n$g2jYCZ;w#CCT5H5|`84y#HU8dmeYHl2%gb9x0g)GeOHgYeG{!HFd zV{qtLeBg^l4E$8rB4#lY`H?|5{nT9!y~RWq7To|NO?vazPiuec^Ork>MqA&%S+|)~ z@*=iRT%+eTXKc8Yl}SZscOAiUnw{08&Rmil0p2GMA3iMYJv6Z3EGH2JfCT5^{xW|e zd`})89!AZY^pTORi3B=~54G{}Z4B@|!_q6KD&0^JFxF*nXt$DgOa*=PTa+_MVySbA zChhDR*Q~IW;-a9mp999t;l^}QMus>gs>fP!ak05tMVn5Mne+Zr?5QcW>jOix@R|MG zV&U!=gJ5~F40Jm@5jsUV1uHHB>jRtT^-m%hJG{L`a2V2Roi9#TOV)hM09_st17;9{ zivTU~bOC#I??jH~0ix1&^JVzg(IUb2hR)9M--X4+bmnuXACXUyg=Bs|btuaOp=W~~ zxCo|*q9x$7#Yi~Chg2A~e=&*d@gFSBs;q<&XQ%P!Y|UMxqd#pjf>z(Z#|-InBHlgP8r%85+gLM<)AaTAzDrR0H`CD3=oBcG z)|_F-O!B)SezjW}>6|Zi;xJ~EJ0m_oIdgiUI=?x@&W=b-&Y3KpU#L%dnuMuFBrPk8 zjF6L;+nhSteFcmJmxg%@p7?YCP$#B*jzc&&O^6G4PMb1W=^l5~TRptCjYRd{-93q{ z4eeVSo~gA_l$0ORpKK~Dw8k}Fd9XIZbH9Ms=CFE>31xPfn@y)ABHaK=B^2Y8Oq?FX zuc9SfuokOwoej9@ZM}Zn4&;Btl?BiJb3Qa*WP~af)^$|@V8BNqXvzuMs1hx)CF`Cf^me4vlv1VjG|VJ7EUnN> zl80vg7Scyc(xQ-)OSin#Z+iER@U5+_O-5c~bx`{Tef#!}?mN!Q90u&wlHGMDQG-SC zTTUnP^&R~DlWqHO7AaRSGBYQ%X7v34th1{>D`ug2u!Cb*f!}2`@6KIb`*ZRT-!20| zm-qrhO&B)*4cm9o;|6od2FW?wfm6UxAV&Z%{1lw-g9zz9@B8D(LW_%JaB|wcpWgSw z$LzlI(dz4@SKp(H1HatI<}UeFaSxIUNv_bjQ^_+n7xmn$3m^o>I~(GBk9&+Uf#qseq1wMzMvz!ouLJzMl1Gp{@k)-^50% zcqoD{7AO|L`DIMkSTUZc$uK(tZoGa?H#oY)(N~?FI(FSdC68v}wf|Y}exL)0kLE8< z!WGESK>SfxD76fGglK9t(_&E$%c%6F)94*2bum`P_3d!mou@817+69IiGK2AnV8!? zIWMTz)@d8oR7V8eWDQxLhdl=7hsTlM?%P>Yvi8I;EU`AqetM(+=rJ(i@$s?EO!bu1 zWsA7o*G~L1C$Koey7E5WxC~_*Uu9pb=HtIVQA|xk6VL9l+24H6*47p@?gLXT&f*QF zAm=tQ`cbx8x#L*9!fF6V?|sBAZ|^)=$_E6a9$tH+#P?uTS&+l+h$!t1dw2wp`%}2&E@rnc1rC{4cL~ZrXQxI zn7LgzOjN+ieZoCSO}5tzUk*V+PtmMXbby8ltP(6fwHJQZjw)I?+)|jTin#V6fJG?r~Tq1jAdn;K#uZf zeQ>pc*rks`Z`IUtva{D#H*pJfaGAlDXYCsrA>HAoG;o4oumPPo;zMUAPMW^H@d|oT zp$%||;r}moM@`jfCVc++XL1sKHhbjj1xqBIDiG{g9l9eal^BWZA{f_?93>q9Q~_A$ z7UGe9c%C|MzDk9fr2Ii!A9jt);r6a=@WjLHq&!i*|2cV~SIC9aAQ#d>IAXeHEkn_X zzgt4qJaN;_ zStzb%xD>3}U@AUcwY6LjHqDyO`v6}>S=niB@wz?hj^hDOaqX$oz>Wyl6>c8=ey>MQ zwKpcp$l^b?P?n*lgOpKv{9CBh07N`RG|oE*R)>)pX9j@!2dofvN3z3VqtF>nuNeoWJ@~U40I}ttZ|Pb<5>a_`UW!Osn_XaRx3jc9IXq*u%PJ zKL`ndiwxZ^^Tm;zoC4;Q*^Lj)IwAGXB0J2$xS`Umb?WS>gpFN4HEl>vo|cyO;9wsp zn2#RS`5E0pss|53jXEbNfkm2$%<~`-bfEWbPgfTNE#&1J-pAwm&}ph`rmt((ykHH8 zSX6jiSlr%ab4Mh!>9I!@j}72w0|i=G3B2C!!Tq_`9{Q21$UsZ$n^XwI-MhcP==)dj znZv8$-<*{);4l7Wyo5C*)y+8Y^1n6}ioRTqfeHV<-nR-GL~IV)jz&xn;is&oMoLW` z6>=g&j%vEPGhjHZFvXCjq5P;?jqB}bt!|lb3@xJE#o1wXRJ*yb`S+VQD@PVij$H&B zEY<=3dsPm~5W$8bYGO}|^0DwI2;Qqm(nBr`Gbr-7No z-_p2d3JNItflIkD)HpnzrP{P=MAe!!MOTIN>oBfLI-ZB0@tGy0Gs4%!Vf>Espp+XgvKSwvhM*4I zD8@H$#Ch$G*V^5|-W-Bq5E!22INj)^pW3R9HZ?2k`CW%1-_52A+o)hFczIEpPrRlJ zw#RMODIkA_1tknCizWhUtE6<@P*c+!a}9BrvrL!jjs)VDeJ*$@74%}JrrYt1qeI_x zFO1>FFBp%QPuG%#j*kAi`9U#%CV+r{vpy~+G&I?x8eHovW@^r8J#@(s)jeIvug4jE+brJxri z{dC z3*&a5{QjupG4h9recYy_I$6+)MKMBmm{Y0zrFasm^Zj^c{)68`r7bPpWWMM&KZ8}O zE+L6r?ylc0|A^fazE*8CJp+MYY4>;dQ4%~g@oM@7O7scp9neV1D=UMM9#niv90~HpatfH7lOt`#;#?I^u0spR`fG_R|XWC1pj`$|o z89nhwt7CIu9u>u?f%Q(k2oFCB!0fvk1?z2nx=Y=ffsJO23qB&0$8JLd01_!-5=1N$% z2>xvG!s=;gAa!%A0Sf}ku)7E~22KWncOuFQPNIv6ACY}V9{~Dq5W%vxy4<2^$g@6^ zFMZ|i_9vmp{GvsdN=iXdzO~it;n@Ch`#>Gu>}axNFzI)?#UOQ;Qu7Jz#C$<(uP`4U zXQ<5a!Yc)-^*f&!>KM6#!B}PVxT(j?#cS$qy9kQwz0B!r#I$XTY-r5dH%^P`v55z$ zcLSGa^7Au%Cu+`&VgBeBwm7tDEkd=~RrVU); zk2O{r|BmBZg&+sEFZ}_dECMK4OlH4R4DGCBDhHNs69)2jO zPgwa;z`y}gxFJ6oT5$sdO`n#5HC!ko5n6hBT)e-w)+_E!ndK0t^7C2kvLP_S_l;pzz+KW)S+zKJ)R$;l<9eJ;;*J(Zr{4U52jYkSeWQI;PU4HL~K? zcL@W~wspmnb!$pUN_*IzHet@5Q>3LGqBVNUq5&gC=-2i1EFAnyK9CQz`@2*>ya=~BEE#&PTeolPZsL~b3PxRd?N0K%$2W74<0-K zN^C_&(b^=kh*pvM}IJz9d3*|_R@n0TCf zWT6>(GG4y}AS+Naf|YSZx;I~@^bzrwOBRR8%PTG|dB`a$*4b}}Ms~+}tvT(F`e8N_ z`k8|7aI?97`H7 zCmpt?;CL#<=UZ;+QjO!WTh`LHqCWVNI>`CL1Dbv=#%J5>6?V!4&7Y-oPuvt5t@;8)5LijiD9-t5Q4J+XP7zZ3{aQr*Wv?69M>vqD1NZ2@7 zPLOILmhZ`ovNwis-R&948J=+!l^5$9Ik}bcii%~%x)?PKhmcXgYroNcb-Z#I=RziS zKY_`8y#RQ|JG++O{bV_DL%uHRBJ!N;+_S%>x8;OST?@EzY*zNI7P)g|23d2`#Zh1+2Cy;VQ zdxGC|=r<&|X}+luPGw`eekm&XxCV^}zi;xNHCs%zELa~=rD4eSV~m;}{?(@~vYE!t zj$}~Z92`nFOt3huyG->xvH%sOxUzD4LxbAu*9ED?ww+$o@Pale92v_>6AGG|567QV zu{8LRQ_=EzY{sVf<4jjZ@VHMtLG=!GKFK=jR0dTuM3t#Y?63AD+yfdm3mJdz!9WT} z^W07Y*+^59Ii8LM)p-!=ddr0$Z!g{>?UnBE~e0 zsMSTMS)HuZZ}V&;)G#A5oesr#jCo7Ya3tOhW)V(&(@mM?_1O)6iqRJs2|ZNfgS@ss z9pgi|C!OfR-%M3A`;b0O%1*(?#QVF-JlCn*=alKL^uXHAt7BA3-3*|B^Aju}2cUmE z>dhs?xbwHvRJ~Zs{I&54K=w4Ww5ambW(>?9Pft(5hhb=N(8otiDxOPwwD&0z21b{Q zdZn%V$!f{o=w0T%cW!6Em+pX{2+k+QTCN%UcOa=;J zy95q9Ahp4}r;YgzBmp~l?@+yEl`E;uC7KGEio)FgBhZmlb2-D+n4DIQ2an3Hw@x6G#Ob?UAos9vD0fieg{oG zaoAhTb+SP=Jn6a#8nT7nua7Q^JPCXsJTfn4fZg~<4tc~q)O+~&Q02HgO=N*Z#y#el z6ftT0^>MI{m@4w!ILuWgO$N)s=;Z^p*D7vqZmmI@l#iU_Ltb}=G3wMOrwQ8RdfmPG zsXdHR>gap=PTcHOOc{BqMlDTj|2l#a@j1{>YO*%$+7pa#=e$`QCLoN&f;zS!qgUI` zvP`Cyd!qt=#G1IM2w*5LJPIeJhJ%8gRTR$?7gLE^$X3DY(EwswZ6J+*dcn*id$>r{Y0$HJlsuW3C{cVOqzVDQNwGJ}gL0ZN3yAH-|?_qKeqzd-Ip|sSrXF@j+wI6yG zEb*f{K@Gub*n?g`ERiPTU?y(4x35u3>J_`3b?Xd`ybgS9cD-5Q^kFsVj$YYdAD9R; zwIkxNy_1skl#VpZ#aTZ{Ox&6r8pC z9$x7L+;|x4L2&_moM6J!U54ES@yB^;kE8@<*qC|+?f$+(xwqFhM|rR@K+8hPvGzQk(qgrK*%=PZUyGPKnO%eTJrW1 zNsSkz=R-;L^70Bv(tfpVEy}NZH0=iC3b3TAP-6gp?c%40o{t_rRLE5mFkQyb$tM$& z29v9jz>m*;^Rbz`??vZAMVXQPV%-`>_J!MUAJ;g|DOxNjRZ>q6Hj0dG_+q*?&2`O2 z7dsp+QCzBEGza7F16G{3FJ8F8?)p?46YTn$b+EO;F$&6285tQCHZ~<_^c%Jr!TpKF z9x1H7u(WVpOS{iB9(WsgfzGp&)HX$R(_^fr%U>z{7sG6%vCzmf2n3x}xV&ST#Z*)( zy{S^ad_jfz_ueNY9L8uydJ6VQt5INV081!ch5~SX17{CoTrjs3`<1gurAN=epj>U+ zeDvGmi*OQMEb*YQPeVg8%tidkVFnZOV3ho}r?#Gvk=YczxvZ(4<1(m+%%>{OpxJF=AHp(CyVh>M#WcO<}rwocMrOagnkqiK(8A z?FA${`2$_#+^xn>i5v28+jlWQx@|U;Tbac}f1%xfIRy>#XF@SF7_d&*n|1mC29H=C ztk?NGrG?nGw4rD@mxp12ygadBXg`#Zpg@esy8~QI*w^kN77aEo;L1xY*LD45<{a?j zJ})6tQkuJ@vgLY`-?doy>@scnC@%A5)w|8C3$@(kf$HrMU2&+p@mQh#FU8x1dt!Rps z6CZ3_ZNm;*h2v!wVx?$UFN9Qh>z8H**DLP00PNu0RY`_|e%>(g{Hp57eIM5_zaN(` zU@iw%IqtDr#3HUkR|}q(=De_hRn8YSCL93KzLGPBhP_*}e817Oq{I$Na|^RskMXn@cal6F-%hy- z0DLhI)&J%PpmD)|R2OM>PCoL@)7M)THpD22#iQK}0zT8pJmeilayDT-6RX#LR#j+l zG|V=^7ByAwR3#t2HJuGp3gh`z!1=K=$`4j~fB4G>H+Lw+3%CHqeiaOj^dx!g3obR@ z#ZT8l&3ZCD47fM!hP%WuU6lP)l6Er*-}e0OgLZGcvwxm8N@~y@K+7GOrP87Q~;v zxz_308{&~DMM^oh{3F?8Y@95Ayqc|B>Az;9exlq&J>LT1B!bC2K>T>sh$k)&8nsmL z=kh+UKT~_VePVM1)A8i&#QU}LLCUxO1+;9c{Tpi0QjTtWzGNY#3$%y@j2x>*8k zFB~mE2qK+=K`p8`%V>ROa&qXacXD!$mP?}dM4H@G9+SZ zIcRjC4@3xsCn5>G(4CX8$Tud^P*8|~zxH-$?{qDoX872%&Oi=_UdfH%g8seDd3#KxEGxe@`2T>Pnz(8ry+t>1v%slQvXS`rMP3h0eu)s+NYO1hr&G7!QR^$zHCaZqaC@bu-7ge+ZzC0LZ`KqFEI zASbY3kP-E?5!MxIr2LNZ#~&^)2z*9w2myg2yk5Hq`CRq$%NrkrlOPlLGdTwb3ktf` z{Eidi&mXQr%{qajtqkDAzJt2~l#FY#Ch&xyz_0Cb7D{!F$ee*cEZI{+x5c~B`QxvKpe z8cM(8hu+_R57pm!)L!s=ahY-a{I?eq_L~5La&nr~(KtFe#4rXzroG@@|Ifdj60&pC z7PgjH?RH;=5I*|%6Ul&%tHU|kGXC3me)-nkBHVM2{rPs7J-9y!sC7Jf-#vND$Hxcd zaFZO{W_l@4qiC~zz!1u3 zUBEDV&0q|?dFVrg!%}Yufn*~(>wVi7ed%}s6J4#uq$DZRuCA`V!+YCD2l0HyNFg$+ zvTH2nGFuw->>8JEL7I~tlYzL2_#-f->WHmLqQw%GXCD9f@gh|)At`8}r(rT&Moyj= zbO)bzd~C+TV1CsovH;uA+2vN}F3>Q@3IPgnbe4$OoV|^(N0WlBAgeN(4x&$(qB^gO zH4zcKz}tuyaiUQ3Ojppywh8tzw{-n<|bEPT)J(-LaT`3HI;6R+y=A(FC8e$s9Kkk%e01b`Low z6`)qyH+-x2ylp;K{ajNT+*dfeYz|HXzy554g$D|3tL5!?==o8cc^ZSm{WSEnd$F@? zeD7ZZSrGsduN+k18WQMmD(M|Ttqr@N{mvvcY<%O*PFIIEYw6f-u#EfwMFi)0D@Bg@;g(I-46I_E1-0dFo9B z5M6;CR&HSDsH!^$6c8Z8`4NMka$4?A%nz(C+j|;?j`g3MY>ts`6qIZUogJ8@Tm$g} z-(cV*#l4-jmQh*h?Bpb}TmJ$x3CM;?N!>aHlvU0I663TxCEI`h{xxX*1df|w9YCRZ z;S>09dOSU_zM!!^B0^mjjfiNpZU$uBFh7F9#`($GHsfc1>EeRYFJJCFdL2AdY1T81 ztSH+904r4n0nw_K;FKF4!YfzBX``hJnwie14UgSHWuTW2VJ3lz0BjA?35M%qE<)r_ zx_);nSCWoS=3M0Qp8<4hU1)=chY!@Ty~ZzAT(RIJO2qrk_U|BW^1GMIg6JICd>C@vrg1;i8$pGQx`(&#u#3unnfKu7e2XLeO2crG^j2BVCjlVJf` z0t4DCuO=-QF$8cRtKCmNWoEWZyW-7IoZrDmzzy${lm6l_J^2tv5Za$mkv-2vdaN;i z9-8ynIVyaPmVz+?4^4}ZTu+n-u`3&Z5Bk~n0<#qluOtfp35oR`gc1nWpl*Aq)M-!z zeUu=;e3QTDc3^NL793N|;CwLJ*L_5s+Vg#7OUr`OB|;M<9Kb!r`pe;b)(zb`H*{zo z8&DX19la(v1F?c^PsCILLdqrV4VblZZ;%}cd1+xXdIoLxlF2a8)z@FYm-u~(#;+YWUrT5(4iTLAgU;%I;ikX?p zZ7*%X0d!0b89}S)&53`2+Iq9Fu+Z;r41|rHBP}*rOef~&ixCy1mntYLM{!~7xLhs0 zs&QriWsx3i@vADwR9Cmr>G?-!*bqX;`%u>Kcl7wGZ5U5nIEmgyR68Gxk7wcI79JIE z5aHFTfO-5@HkgEtm1KjMJUZ*kS#f3@k5Utrd7agoJ*f9p^1grjHkdwYw_W0Y=k@dF zNxo)B0PIAlSAjSI*g>Jkf4tnD%z|&Nt&We_omx`7OCZ$WqvwEO#!WNSOLOFgxDlb{e;n^^TGLU zVukmPrQp`A=LDAU1FxQV{Z7LTpS# zq2Y09rI+E1eXY>mi=e;jhv@AcefIQe$T#b2|4l3W5oCnOC*kl!)T^31swLJ@YlH0w zCSIf3HcEK+M!y?@x;HsZSxgmzn`TWEd}W_~D_P@IQB?)t>dT!6n=^HckVnvd!FzpT zHf{Et&R(IzxLQ_5Mow0q;?p}|PMdP@g7Ok1JLveUBviEb5NtH^lJep8TCvta?p?QSEwyhiD0idHCcHF`ETupR|;e z!XZEurf6a$7_Y=%r)luLuvM1~n3=4QZLLNpu69F4{OUIE9X8{o3?iN|-5%*3eRbL0 zmB87mKiCEYvj$IB^;j`1^k;YB-d%1p^M}7FSv7Fl-tGeq0ht(A2s5s4V`f&?a94l77ZYgb^Sv_uyKKV{b!W=n@~eFQlH(> zS}P?4fV(x&>h3+|q^zuH=Y`cCxk6cFaIqsbl9+J^%iI#SN6$j?9JX~AgHLtroQtUrtGs4_oXPz@;7@9=ZWO#HT%S`L_T8fk`-{ zGTRl@>Yzw7&8a%r8c|Gb*fyKX6C(Ng&9t_=OW}LHmY3+uiVCTUE0V5;$sCIWWAuKa z#}6NF&J?ATmUcIGv<^1CEXSrQ3VH4R!qHVjU;a_Wn*gEH7)q&&biw=FCf|R)OKHX4 zqs2US6+pxa*aS)7_SS7pgFs*3iJSW`LkQAC1QWCIM43gxyr-|nXp$4GSzh~1%GKT~ z#U6t_(3EDTcsE0{0XPG>HIyn)ShDo@Bbc1}Z_cLtSNrJr)*EHNe)X!Y{kN3W0f~bA zP;G!LAdi-^YOYICgl1I}7}Vgy0W#w%2TB9|rC45%ony?tOg3-i0R?6jQ&z!eKV$S2 z&$P)ti@5`B5^BJ?)}Zva&*&bnP1m68SmCQadk!ML&r^S}Go(2217toVXQx2NZM`Ru zD(K2K?libP8w5mC=>!2V9R1zZg^jC?&E@cXK={rVVSbE4n`uM6+RnpjbiW zR|F6HbiJaY0=F*$(rop;Z@Zq8wz~FliG0$X!=pE{Nx_QIP z`2Bmik-@LoLqkI_Uk3Y(G-X-(ZyNHsiHRh;jz^cC`+s^Z5kGQr=68;pa+Gdd)&f0R zP_{iCC{3Z|X00W(IDvupsU)8`fX6fF7&d1rl9G27T`~aoLtJ0^K^d??@bK{HWBotd z;4n;8*jSj!-Q;F_Bl}`tYTyhYs1yH)tRFw_FJDO>yPW(UiYdE{zO?WATW22jOen-C zFIX&lveqhX1wk3YS7mRy@RJ+RnjL)*&P9)pKN8152AhM(#8+)?#kO5yTn|*M+~;<; zW_Ykv93`ZIKjU7HBSIc3dc*?AGcpsF+wx%M+kI~ z^xU+A#RXRDlG<7U(5DOzz66nHvkpvM5JKvN>QWj(qG`8pA0rEaEg8@YC3zhS#!P!w zHtXJ^AS1iMpV^jIc!8z1I}PRZsxUy&HPzF5|DLpeWgFfIaQYN!_6U3y&7&`4S7Owm z4;SgvrTR`cEL5cpoJfGiOQ&)P*EfJ3j%3)QQf-@-q>b-V^_-MG1$NSd%_#}uRzSQk zYmn~5aI{L>#N{OAT`uno023I7=j?18*O7#uYY0Pd>9f9$M#AQNH zPHvjrmOEab0LZHa=a+c7zjSX5)i?ZwPX_q7-;i%`0!A3QZSl{~GnIioOW2r=jjhtr zL9U$4%xL$wkw3_0^e{&S%2G<-{E!#NyR_&=g0w#jED%L`$)VAX_K=^J0*8^{ zfxQ*3h`p=n8xl4_Pa%?PeGWnyH!6ZGH%L84SyNT0i}wph)Se@s>|QtGr)j(JUt93t zfX1Pw`hue+Z*4L&<TF`LF5%o`1*0J`Sw6$P|vj& zIyke<{&5BqJ2Y4=3YwY;M^6Q5Y0tVQ9H0vYu+$u&iR+vajYreKiR+Bo13o&8B{MT~ z10P1q7RBg~q+V2sd{OC}m#3`@c#{?cP*bAj%-t~ct!bCusg~2Z4CyAv_YJU(!z#eT zzlzo!JHujKK2Z&g9VKQWW=vBK(8orV6cy#E%qLc$ zcPA@i28xrSqHnnqiP(T_rW`uwNcnLS;H1|mRv$C;m|%E%`vWvOKVgywGv8Y46D*yQ z%JfBG^8k?g-o)gia1^Uc1jI9q`pGWdJm!2b8S{wCq29|%_p?SDIA%6|)5GbBTOF-W z_O2lkD3^Sx6WG~eGGZP;z#O}*wSC$ZQ&_lr1NjtFcBiAw)%Z(yn=3P|r8)3INo6PD z6|>%QAOC(gEbMTTv~D|?h#y2;HxY{?f{>=64{#fO!sp~<9oL4^V=qS8jl&JH@sP@# z9M`>wn^#c+fJt4)`e@d)m{eZ-eE_Zqwe`TtK5!{o&Ax1aM#O0LRYU-?H1c=|A7sT;S@|KK{W>E8GC- z4ph75NurcREAwKuJT+s6iGp+EfiX?I2|wiSf{Ds@Us(1?9%M{RcjjEIJYWW+X3(~= zP-#U3mr(_Zva&NnC8w>eEtN3f zc9p=BwpA*2vc|CPV{NVW7RPjL5no2t$%!KnOfhi{I`^+;jhq2z24FEd8qX{+(2w#* z&#hZ?RF##IG2<=2Na!z;V5WS5VoX{i%uRq6(|F@p+jDS>rE$QsYq6=BDk40>Zgp@6 z$Uw=nZ%Dw^PxH1g2o-4!)CbeM?rMja0DeAI;zrxYl$n(bM2Wnwy`P~V0Gc_YYNb(e z$Fq>#p7^Tm<@N!n%{n_HAA#3ecRUP9Vb2+c0-(%dreJIxup$-q#t#+BXH8yRJE~=^ z7E_ee6vnz{;l&n_gOTy&NQF<$y4OL9Z!-Of;z3{_ziHLhR7qfY-0^h99o0H*8(1SS zsm8tUqbc-O<@5!N^vaB7`S>Txw#NCprc8VyTY-!^uj+5a_FiM!7xJ9JZKjvp_+jE5 zAqcXDZ|>RmR!+`!Z#d3aw(kC5iVOuPiec13?p2w`Ar4VE(3OC%0RSsv;faSUQ`u&! zx`=BT1I%1CT%XXGR_z)Y=-fb)5a0wHAN#W+LiKsUwwyA*HKN6*rlr_8ji92^`NOUtXOI{t3HEmlh6N*koGlk9JE5+u0u^bu-D z(MN~;t6+3U(TwFbPB6^xj*3c=-Q9Hi@iO#>Oy+2NFRMXUL2>c=NZCl2>PPgAsKY>yYK&TaI=GFbU?dQWxDfe%w|cm!ntM(eahknq8CR>)ZkKF z;Ay_n>n|B5I|P|>XP220lxqVX+g?^FV}u?JWTdSDG0(!m*J#qj)Uk!UyBCBL@h{h-lIo@7mB!sUehMN6){ z$uQw)Rd(W-FH6*Vu%K#dGu7z$Xe^(-l1=cg@ph3p|EZC*2$#of|KGF@m&4`Z6jdC7 z1Q-iNg_{g-%+xeaPX~RbQOM;s{$J$1WmME{^fv0FqK_ybASI=AccARsL<3^0U(bobEG-QDla^FQx8U(Pxo&pKxvmy2YQ*S@a3uYI9= zwC4^K7wB1+s2Dubu22s>yN03+KH4S?fn46hulAR2D@+&*s1rxscU$JvEgVaiem5Rl z?|ap7sdEJU1cmQ7#lMHK&2AW$Sv=5*k4`$Nx9zM14o>-6`Cxbn-qW1|2{O$hZEpRt zTG_*Vl-)2x=B79dQxjLHSAH+qk|Id2-le-|3T|*Qrd%$%4klYLt0dA;QpTsoWW8a* zB3}U^wRah$dI^b1!-a1hu1v}Wb9GCh-A!_8M_c3CCk|(p?Aj%I=-YdANp4SyK{d2UnG54GTbP(=3mi22np!u~2*A8ADk+yogx#sszodF%5iZ{c+S-0J z(w>X@EMSuZ(4ti1HMVs}Ex#Poq;l1$x;>~oCO@|`tEJ|tXAf*q8&G7j4&K&B+y7S0 zh*Gpnl8Qep@v*sfti;(2en7Tc(Am~TCFF7drn?v!DLU$6*3wG??tIAn*ZWM&$<)%{ ziO!pnbn~70ZprbAM4y{G-@t>Inf!q}VVq(;)z3r*miol_UzIMSdU-d<+ zm2Bg+j;Olrew+ir##CONBZrBz^DdYhIE^#Y0WQ^Px}N=v)9KcS?TZqCy0mMl=Y zp(rt4MoCV3gBdX0?$)gn#%E!-!RLqRXJJ>Fe@cjf#S)p!DmGcS0f@k}%aG z#QlTI-0?+I`Gez)iNvAe?sJdo~`UL~7{`lkR`Fkq>Vpefp#WV$OYgSGYe?MDXN$pbI(5l+H?PoOC8t!R`Ah(=lGS-c#uYttNrJRdo~BWaAI2b9+ea$0h(3OqDL2O!{g`SGdL0!r&ba7P z%N$1a!^>;=DvJ`mtwt%GVoEO9B;mbx(ba5Mo)Z=k8sBC3(`-K<2NHXXew%gO*8a)c zgD?bgj-O67lpAWNu>28v`_`}R+olI(B!nd9rjFWgh#2YM@QLA2D`-522^yuJy*JDj zKgzYR-*AD*<{OJ1P9`Rf(HI;E4kvg68Rli)HQ3aJkwVHZA(zp)qaQCRn zN3w6cqobtI!$ue4Y0>rbO45Iv0wA!3N#M@3YDNyV|cP9?Na6tT5|Oc*kvC=wT#g21eA1_9o__+qn~{3#wW8m zuWa6+GNsSe#c_Qdo@F>z5{ojDP@{ynM}R_Tq?z z-&yZIgJDnC_aDppKi_>2q9H{9%O8dcHXTriJ$FI@eG2Ku)idwH*%fLVzwhZ&ij~iO zL(eA$>s~SfFWB!w1$>wgBo>)kXK_f%4@`@Y7bv?NON%XO?+$dBPK2iS`qrz5uKW#U z)44q+OYcSY<4Z<0?F<{VLv!%1W*M&|Ykl?|=Z`L{t8o(zrOf6E*N~m*7@sVkYCec& zN0CJ>1Fvy(LUa<>i8{lsXJhIxsL>}bBBzi3;d?|(L$QCh2@ID; ztNb|4OA}h>OC7%8;fWeXWcZ+ ztfT#}&KxIP<(XnA$q|S)bl7O6U?_0>bh3gDR2x04+)F;D^^`DX9gT*>CL*)jL)%$x z1CBq^WtoG>r;`WZ}fGt=|0 z|LWJs?J=@4$+5P;-q@Ex{rl-JmRk~8>FLStJE2VL1JU*Q&I01!$Rnl!@@&Y_}T5Y z<^)fRADEKYcphrEj&!q~oZ8@qKf7EO?^{*dxD7`MiQOUrbIh zA3w`H-uIY57n$o7PzCF}yAS#yr;L;s}_s+Y0@F+&$t88EU=43I>SJrA|>Kk*=z03}hj&O3U(*CR1PT<@6 zRT4lkdmb&8Sfx?>*?ljtbob+nLcfG)uxZ7Y%sB3fK7)oLz9cr-`+`lMU56!?m1FCj zuCSF!XCZVgb&`}WEN-KEKWfecmc&zsY z2m|F>Ev6h}Ugx&20$kps*!FXk{t?5S(eajm^8S+XlC8?Ig>PUy`I^+=`%<*V`(Y5Vysa z)Sb43fI6{>i7}h_{VGEz0(5S#F**6aW3^y9p9%yfG_vtd*IPD#UYQCXNBJoz7X{0t zqp7jc;o;Sv=`Ad=L3K(de;9MpeF^(AR(Aew*0*nE z7?o<(W3$qV=+GZzcPQipj%giS?*^`1WzJ61L#JNBoCffo z1qR9))p;?`@aO~Ii<4hzl$D$A9-JAhVG-fh%XsVm;)P;;|B{O{u?Y#dvCe8{q^LnO zyY}OqD&jxd0tg5Y$HmcQ@J2`q6*W~f^|D*jQUvTG_MkIrS z2v!sz%ss|p{-;4XGTI~YoSv>O-^C~u5fB+l_Rh8yZ0!`lxie&qE8NSzx}NXb*10wf zfEg3tHb!V9F5(D=<6G%EAw3fusFsTP4sR90Thr_{m~AhQmz3rveV$23Y`r+4s_%U- zSrbfNLFZzyZ3xqZrq*6>uPRV!8;8(jLmdsU#BoS5Zv81bi3u>glVP;KMl%QxweK23 ze=lv9d8kpoXH3NY(lz{3jLH2YcjG$~GP0u%K|H|?L0sPXyVfoKGBVw{dQ$R!Byp4`Qztxf`j2i` zi}w+eAEB)uY&ZJPLab(P@A2=4z=6hg&r2v*CgX|E)%cj@3HMB`xYw3qQ;lHC7xAII zx7pt|e|5wi8S?rE$unpc3>$JqBEa(zoK?@(wu^hr8+O*4gXbx+)rw%Dr*B#cUnh*J zOYIIU5O#;%d6r3)x3M(!ErrUqZ{C{Mc~`JNn+O*NBq#jr>kc-$ZpyXt3}Imrf_wrN z^Q*}ov|wP%lwrz@|Gy2_JFJ8#$7x+_3r*KrzlrI;UvFqXTjNwGKcb!fbd#3ptOrx9KD>07U za29rduY?WEIDWtnS6 z#P2LqChup3KsqhY?-vYfeKlhPf(Bm_6U*3t%PFS}7bs!ATv>*&fX(yWl?zHgH8qCc z-sc6lCm~t)yy9G@;3t0?^Zf;T3+gVoZAqn4~Zo`V&} zAzgw1N)^e!^=IRjeANuRAyTb2ueAfwAolxqIT-lR` zsws8fjaD=#U$Q)|^&`u7^}px{pHPiBa+(Par<#OsXAnbTlad@QZR;&Zb2H3{&3DTL z4HT=Ze`3UqYGIw-*`MG1a@w~x7i{`B@Z-ES7mc(ludvSV<$Y|(V~Ocp->eqA?Gmd5 z>*pmfT8T>gX*aq#7ZKJx+jiDG@HLQw{^pTC1dn{NuXK%jl@~M*3pB{*9 z_9qi`;xifft(3bA=~xR~r6E}!#hk6EH0Fsb2&W~)!gjChK77OKoU;JDFJ<aZxwl|3^k1r-B%(B9gYz4|I^@=zz4IEA!gWa=jvD)XKYuUfPH1TkdJ_3~Z zq#{5^-&>ZKe{iR5Wp7ccdjzRyNf-4MVZkSg*#T(T+QLHhU)>iFsc9OqWHDP`)2<+g z^LqztRAk({d++xTchiK;B_dmWsV?TaF$8zK-QyH3#|u{7cd8~`q^3Q#qz4{k3Fd3E zY#YeJ8w}D1(l&DPpWcs1Q&dr6&Wt2{%Wd4SK9u7Hmb^PubN0Q+Fnc`nnk?j1Yd1N6 zAuVP};ZxJ>jtJFJXFtb8Sp|>B&+-Rehn1?~Y&eI&$Ip-Z->inO;si7%wWK1Bp4T#F zF9}bPoJKvZ2I7l6kBFa=rqLtIeg_I#??NjT-_lqEDONzqSRfQ$K_NC)6TZH|SDU)f z(NtxQmMWHlz8xIRgA;3*2-D3y{eqqCGDFsygqd`*Xr=VRbC;Dij166O1K8wpBt`P0 z7iBlAzrH_<;4`o~wm!s#-+838z^`gJKA4KwvYF~dl~&qMWUihS!3(qxLRG$A^#3Tf zQsj#4M4?LO_Nu7xTSr>HaCUWdSjEE#qcqus1%_0n524z_lO{`~wF=^3kds<3mH1&v zG~*XFYT=>5DI_8yy&5EBLJk)@hZ9FsQht>h6VmQdhi6m4=P*P1sVfAUBHK#8a;ZtGja;w;Q0-P1Uzk9`6 zw8{_-LOWQ@#IpDn6TMv>G<>kLFQ8$#fqg$P}mQAz@<^Ji5VbqpHfDHLl@(PFk?;!611QE*5AHJJQ)O66{+J1njM;ylZO&5NBY%?&;o>lPKIjP>ZKa5Lw-1R=Yxf-ldowfyiF7u zZrp%J-B%EbZjIMEb@6gEb5ZoPa8r$NYpthu-i=-us<8A|DbOicOAH;&G@AoCc6phr zz~M2Kgx}`K6t17tMzIBe-Iy2Tmw_VK2~vK3mD97+FOObDgxB#Ouf2`evQ}}1X-fKohkShH*iHFiHdIOE=yDnlfU|sw5(~oyT=DBRP6j6m z&5rn6#8Q$Y(cD5|lYUHYt1stVx;ko*#sUk;zDpGUb~=zBn=VFKzltYpNRw)inb3_gJoy@?HRuC|^n?PqquzkjhJ~aIP z(aGw5yqs!^l8O?ocwxH9*Z|;TP!<4W32#p}_*}WczE|om?g1SYdEtBNV+_FYFr|kq z{#MZ&mRHiU35n#vaIL%-UX=7;2x!z4 zRL~VH@41$~NljUC>kImydheU%SmiJ!F(^X7rUcThn(Ej-d#R+fsKmrXMr0>|XrszB zeHR}Iqh#_tkLC_nAL@jMH-9>F^CdfT-dr+5cElGLWw`+EMO1zDFYllzRfHFBd2~-R z&h3|}Nm^rh^ds7FU=zVs`O>EMvTy1s4t~S7z4^6Fw#a=K5Z2j%sMe22k?=S@b4YDm zT(9@W^(vQj-=89=1v8k_jnp>1QJmD2K<1gS(WzR?a zu~=Q`(xZeVa-H+qEI6QB!}CcleLGoVJ5tXhn6kgex^S*)bs!O8&2uSKd0C%~z}l}A z(#D5XCcT|TZ#QW>Oh(ZowRiSSo6?oJO7#1CtE)cM6}j)X90EMkiR4U0A|+jC6$54Z z>&z+X*cO-gJjSt&4O;9<`-w5Ko1$(UTvDZS%R=K$D&&H10IYSAJU=+?1Q~P)q)}gs zy}Ei~zpp2YxwrLCi?E$xiTC23A=fD2**+!`N2XW1?QHW8wi57@hLZKB*=M8N)C?k3 z9pVbdq7#wBKa5pWOhcuCp^Q7Q$rukb!2z5ZRD>dNY^E3o0(ru&uP(K$LAc}Xo!b;(U0`q1z;a{JRQT-Iy%pK2+i9^8HefJy9bk6KFo@bK1- zG||C<`*dT+)imTlh-3Ws5{5SZBt0V=*ZzaG4IwgtqGi+?`@ zZ}0S0SNAgZm9f`gJGyl(_;1!V8<@DPzB9EjqyOBa{YEUo{rFt$=5PBb0h{~(>}S6} zaNmtUerL$GTEWoY9K7K!IBTSSk*czSS|@0nl)L$+--G{Ck!rXfsD3&)5!>k+YOKc; zPnP|(i3b4YnL-#Kf?Iz-e=U8^EuXEuydWQ=F<>?~mt{7Gn-8|rQ)0EJ>0c9`DGYEa z$Sa>!=bog4jYtXn5e6nFoN&*sWA1#71gJAN+uCitPf?@Hx7RdVUDW=CT51x&fMW2~ zvx^T8lA;YfK5a?+j5k;_A7#II#=}cmFa!;h$+-OO8>|Kr2vr(>2Ue_tx>%-t@jZktBS7B5hJ}bSL=JDu!NTIlpuByp#rP!SU~A-i zS7)vj2uL;nvz{($8yix3(m(ikhA$1!vnKU^@U4ncFLqjK*S9QBj@J9%YLrnEaWkc@Ibi;N3Kd@*f+}Smw&pLzz7Qqgp!Jy1aKz5}8c=217@;neKADi}bCP zY<;vz=_zc}n=$WYhfhiS?Q-A+gFf0#^(C@ZIW-yW^1iJA>>OZt@xGS?&;T4g{n62k zCqC12TFKKvLAGr1$DB<}wt+I$u>E4N&5~Sn5WNl7?$#G@_~uI2RPxC_c%(aDC-0jE zGaa8*(@|ZZAKuK8K@0mfI_YbIgwv}2CK1@uFa~fsKAy*5bZvV%X*ebCFAx)iCjgLV z-Ci#T`;DkZtBp)r1m>mMBZv&h1A`+8?S!`VF&41;VGyW2Xe7K3g@#%u=JyU?*s-$% zK_kPIa5jp!>1_QfBzk+8THLqPZxh#AZkGoO(J#_wiM^Cn9^fi`n{76;MeTROaRW78kzbwl44v9 zGgc#5FjAx^xcxQvUVJAB?%i=DfHzw>l0E3M#5~(Y+(qpC-l9)skx|$3zT;%QzvNDR zE{5Hp_zlbW)!28iwL{$Ik3J!O*w6tD0MM0T;qf;21^}bGkI%9O+<}WYIo)sv2mKrC zYy&mIT)UIZ^@Oyw^x8yw(&f{SyW#Y_hTq&rb8ob=!^ zY1CWR0=3`3gBIBLoFWgU+^>MOV`76(UCv_5p`C4G-HTts+*WbO)K`!^+f}f;IgS5} z_`9!`*t%FY<71}o0>&aV<@Pq4Wi4~hyceYcKp5b;QOBuN0q9Q#UazJjUyYVWq_}|_ z_vhyr#|Md|WFeNz3wHr`?>mg_ICl}D5^Mq)EIZlV_thz&YwMqMZX#bOgHFaf{~16x z81`*5fXFR(0|sP_>&B|)HIhW(t4T5$3t&nIO(epq%S07|D$v;)&ZZ_zOd>z`g!}v( z2@>R;-J`FaiyI$e^s}||hBtV{J@afY{Q6?T#gFV}pw@X>P;2JaF%4NevYhN}T2Zfh zy{sBBq`4VDMyyFZ`I>p)HH9!BJ2cry#QmdGM9oSGDGvqE8%Q=wWy6b==f27+;lkTu zedQVkcRo20)KZK2EdgCvERYSkmP~uWN*)xoyoA3pte2;0Wo5|?1X-ib96w7XyHOzH z0tb<2e=#EB;ZG;!veh{aOEY}et&(hd^ij@o!(aTg*v{N3dD&O@>dhk12k#hUIP92|4Lf&dxmT(~6_fW0(OcDp`ZPUa*_u-bX$Ec1T| zNaNPZiVD>Hmc<`>nd$yXm!28SqB53TI~ zT?=qsHG8>VCw3>w#_!i%@O3o6JnC)fpA7I0FBp_pShGr{%RvB97^}E%BA#76aGmEt zE7fCkF+6&5ocGW_z2=)nHwbuu#`zyf=5bU>q>hEAGQeE|Bt#4fV5zu6wK=!mwZ^qs zxWM#tb?qxmCyaCFj>?%Lfo%IaF|eJ-ZFj9Gq9|EwXTSdm7&!D^v_^?2ym>C1{c3;} zDBg=1=GNGGZ=kXjX!`8{^VJr7yvQ)HKs%6>9yB-&E7PUJr|iNp8tNpti`fO}B%vP; z#$92Th~VVT6T&;#`B$wy7FL#aOLzXXC^7k^(V5wrN?GY%(=+!N)p{2gZ$hc{1p(2! zx44cb>rLdd?D~o_fT^XU?Kk@T@Q*434Ozj$YY65!Q!*!CN)AwBLpn_PBB_P(Y4LL)7!wcahOdw6*Sct|FNJSzN`*f& zt|8T({H+=T30dje<>yOGK@btg0N}$EPGi_tJ5Vb^g_|JI*w)7*vVaUueklH=o99tv zF14)ajrd-~FBgLtf})C0$fZR<+W`VZ3_CXIyMrAWXX6!Z&P*7ay06C3)%`^ri?$!x z@&0@18ei8XtKR(YHY>d-riC-n~%7pZKMlpmIc}L+Hkhf zukTSnBf~YWka8Q= zezz@Swb_sxoL4?m)z@u+XiY5=B;+(IXB2^WC~LM> zI5*WwPJtBc#V<8wRj;ePaQ!0VGVlEb-cLBUvp!0Z?5%CKIGh8TpJQ=J2C|WAHUi3R zgf~ULv3eZ{EHomMA+ZT5bVRuO-C~8b_*r~<#a7T9Su^#rBPFSHYYw6Div3%ZKB(XT z!AV2K6=fHe`Ni3{9qz4HSs?ra2C#HD+AhH3{^3@>QEoz_Ezo#J?58aq9I9Pj-a6;! zgaElke5ddY3pmSWS=mQTfCwAuY$~!|t^~YFo}gW{3kj}Nq#THKyB&f2Zb{x(bKRwb zCigtjCE#!SXW|inZ%7FhuXH*LUdoXu_#BgU1kL5%tn~q7A>Wk1P>BzjMJm_>44W(?z54&J(u&mjB?Al0H|1%HskL=dd`@dny+~< zSlpMdN3ZgPM!+gRCnc3XpP~np@toS7iO})!l9mg%rq_91^3r`lh)}7v3U%u^VyA1o z%r%J3fvB1o&KA=SM!Q2%Y;dPT+aD!liWbkWRtyqb3_Jx$+JJ`j^p~lfR4A(D>ZO zb)Zb+{XuNC*e1`T7?0>Xgkxj6fY0z9ZlT`rnJjHOBXc41+p2I*ng_KhGrl{X3xB0H zlzuN0YW&~J7ny2y&CwbIR2%ju5^2cn=Hg3#;wbez05(O)Jl?TmCwvq0M6Gli0@;PS zQX14bg!bNhfaK4LTwlziBiHE}uh(i)w-~kRR|ZZ4O!ns(^8%}I#E(TZ=&;g>0Tm*IzowwCu!z%qj)=>+E|3QlPMQSqoUNaoAK)0+6{tE~ z1AW&_j8|2*``+%h)~1fKH;LB`X>Va*bpxV30$ZAZPwcKurE^h-pDE7#WhRsDC-Q)yRvfWl2D7 zN%owx*J}zd%S~|?zL(J=et%xjd7my#C8=OQ8-3;&LntC&d#~i|l=~k!I3_bPj3~;G zi!9_b*yhDL*Y*eMe;ajmX@VJJb&ILo_`z9vQE{pCz>3#xR9xzLX-Xs-5MK&e_npSv z-(x?}lN=8TO1VB_YyKL1=Pr5IxL_lef!Up z$AH}61Ud>`kSS0Y$UTo|v8I<7zMXd)JOw@4lL+s?z2G&=2GXpe?j0%3N%6SZE?0Yp zNv2ge{}2PwAGJb;p0}R z*G<;M6C9CR4O`zDDotl1iQU~>!RCx5sfYtIdn#`;-RnM|`8=_J8gbt{;T8ahD4)Vk zuw%!jv;G442Gi)S7V2~6dmJ|7KUB+Q5B)sjzUvoRIjsY#VgW8{yShrcv;<*@X$L>T zP)V$Pu^MDt6{t!+0Ur5mwR9jVE^`_AlRXszT*i?aevs)Am4ubKB?S$I@6nv#wTqP3 z#AtuHt3hh8JM%CFzZc(&fJ_k-rBUIJjq9#fJR_xitIkJQDz27V|Nih|krEip zt9G+d8wg*gao+yK=L;@E*!!Yp8&t1yn4ui!<{B zE$Ni+!R$L)eqGBFuB{nUNp*r7nRkAjw*SKL?6InNo?m z`XH#BT{H+jJn~J@Wb(g$ezD&Cx8{kWrJHh!Jj2|+CkT4{0z5w}&(@wc%Ld(+YGAP& z0Ob|Q9@HRMZ-Q3{#mqlcVl>r1?Ff`3umJ9yyDd65tVMoGb(p2ks>W>w`znYImr@*) z03p{>%%_4<4x8Uy4_Z}?MBuw;K!Jj46=|ZiQPDj$r-#Wmv_3^K6gfV+Jeb58WD2BM z3qG&50yN+m`={d&#q>p8IhVpeGHRL5#s_u&u)*tWhv3}Q?ecMk~JP8E+?sKe~gCV~4?=N^8H0QVfY0#jY`rQe( zS|I0vAup(h*F@kJ=X4vf5#d^^&}1jR%A3{eaGyl{qonP?wrY40S>oXt9ui6`%9`Hl z4oLoY1Zjb_(`D-~Ui;6`q)ynVF$g{msR3zQmER^mS;=(ub;9!;HS{+8R?deT+Ww2L zqed;m+vpQpE1ck_v7Zi37McLaZH#0Hic7!D*48Ro;1=R5)NgNauG5eH^PN+iAm@9w z7rd%;CIOZG`qv-ApnLZqPe_PChXW5NccmR;XvY%`NTW}-CmV^|r$mHPGMe?Y+i zHK^b;nDISv_@k&UVHA2DL;6HG5hUbOT-rcR0Hyk*6x=bF#dRCl0qov0b!>*-hUV0*j0Tbb`A$^0R zUJu#N;l%wDKW*+O`)sMn)IXMOXu1}=sn`Fnz}xz_!`c7lt$nNj9dhfJ|NX|5hA&OC z2?)HysfXY@A53t9R&JQ#7fz35Z#eA#|9qaDZT)iEu==~Xv9V#Ll6(;(J21#^!IxN6 zr1Fxaaua*FH_T4=l-K@;QajQ0f}wOX7}|B&aXOM`q{Q-M1;Y()*3JZ=3JKd;S&5lc zB%SvvqN4hTL#-txB@s49lOV@seSLcJ!OyqjEcSWk!9iFhwOFw4g@}jt3ovPKugC|q zLMz3W5WQ_Z+T6nf+HD%fXHmaCy-0W3AM}#XY^cSwgfpp-chUs=KGI=D%0&JAT)zL4 zFpGdnOa}5ha$8(nl&~MP$B=U9%Rq(;v?N{kwlfU@g?a16a{zijW7}4yFvp-2HD<7U z`$Mu0_fv9mDsewPHnAEOTBm`k=ajO+k7!Q?PACY&srauz6H>Bpu^ycLHxG}8HE?#PZqP4Oe&1oDBD!*s&2DYZXtqp;gZXhtK_TG#{l|xUX^#u#cTdjLiod)Z{T)}a*b;hW? zkUVgcll+&Knz1ebKy13$*{x?*kX~$@?h@x>=Wo7!a*>y??`;ia9^H5s#(dNIfb#U;#Sjo_H zT`Dqah(e^@yDtZk1soexC$8OMBLEUjPC=5*D$K`MR#w4~$qIVtXvGyZu9h}2Ox^mR z9G{XhIb^=I3pW9j509a9?srYsx{DJ!O#iI(MzPsH4{n;>^_;0S22uyK%QMLI%ibb5 z(OXXl8&@LNM{|$kio`R`&A?2pXQZKlGP75Ag0bi{DLf`Ru6WA5IULLdVo@WfqM;!j zMh|9^^%PQoyRp<`AmY1b0cMjn;A-tl8g2XCL77yZl%E!FCWpwgJo)$Tg)=cTC_Ig% zbpsqJpJ?9Dm50oqg~ zre$;c;Z7rSIR2Nv8neQ}x`4@pG@NvxM6Dz*hFQpA0D(|e4g(E;-;6fFLdIf6=%Cnd z^(bU^jv+CWBB->qa>=C{WDF{q;AofQNHO6VYN`!8&5|6iyf-YWDH2A1iuLvNCu{t? zc78@pVPIVA8dfs_uO2)gqVqmDQOIKIKHeDDE`lPr>wIqR3?N(nIVYfsUS5L6ccqfN zd-o1__C(N1%0nKKa^iWPAQ0M|CUYAb5D39X8cxGn&D_+t=B?6RM9Pq4w4=1^)%B8<`{z1}%k zY8{N+oV4!0S<-m%okbcLQo?W=@hDL7Y6?1yac)ZyT3T8!7d1Fft(8exY8UD!r>0U< zQjQkMr3WA1-rU@*Kdz<598|$BgJA6eujH_oFGE;Pc70X6yaDeL^{(yPKVXbiD9q{TM3aMPYyzEIA?XU68?dv1>bnoC55m0kK&;t5)N~#v# z&c(JZZL`v>q=Rkz898f!-UJOs`qYFJ3XmY#AYk)mIde%)(?c_fTPx{)rp%l>_v#+r z;}D3sT%`R}zGd(9<#ZjvRH?g0F&+B#`jJ>J81pI!=dtZ@11n||&B4hDbDS_dNb`RX zn{sgFcdfKcwZag+)9Gw+ueOF>DAcHY}aE3MVz&aUoiyHdwtZK+PPS1H<2V+@44zCE6YSU zoToL|G7`jD>v~Kho=5^N;&1Ttuq!GgyOz)XoGl^y!@DMuLi;;WU?g{n_v3^2y*&=& z;T$H_K~q`vZ=25Sw7KYS_NA(myCuDt71xK@LcgXQwe!fM?Fj>n1U>z{>;3vmSF)Yc zi=Cg|cb-?yE7o0eSQb!3%pED2_^S$8L*w|_l{!!huH(TDz4>b(5r zLqip5Qy5VZY;LZ#O~=?}0-~+2ZwFHxQFpEe5sT5j0V)3-5HLmsfTu!Kco!#VHFPjPov+_073Zfr=T#f z`dVgMRog81DlN9RfCG_?ac!YSL#e7M*gda41&__+Z%#lvTEkKk;^I^xFj!@sbZf`n z;^o?Kk?Unk_sPj;&Iwo;xzGYe3=G{W;-;n%`#AODAelT!ugrc?xF9{%$mFE3!|2O#)htXrq0Wkd(1t&=|BV(KVBa!uui|~@8^XGxSw@R zPEO9gx^E{ujrQnusjmnBpMBjVg!&s}W_9_U#zrZqjscGoKK%X0i2{gN2Rm;sz1{b( z|7)bh{lIfJFCi%jY$oL)Bih=*_#3K7RfX`DcHRR}WW>YXbsa zK7W-4{vBx?snbk7J?QH8ux+%#s2b7J(~Y4tKuZ+E6QcgSLF@P;-RwFozfRKbcy2w0 z$2%n^)qPIC{u%^$3_;z06;^M*lI8$26ng6~&yQ#yMIz)?R0gG3<2zGD{Oqsm>vD0r z%#^f?jXh2~1i9jY$N4`&J_;i+`r$XAMy2B;kySqQQeB1)M)G5_cB~1H1 z_<@P`2o6pTd|IsVyS_ItsSgmk+4pU^%C_CN*g`uOg&Zbr4t~s%u*WiIsyn8`$m?8> zji;GkgQIEX>&{{tAmA!aoIos>1ISs}bTXk<<8@Zk%zEsC(JuioTyAX`Oc9mz>-s^M zB*PUCzdph%)#Z4ybRE`B)YAi^2d26P|0y;SH1=pV_)UQ(dIbg|x%O~6av;8MT)-~nSwD#!+) zng#k8ZIy}MUNB?_K)BK_U3DiS;BA&~UeI zoz8*|ymbsgL-_xAA*4^_NC?N*6&SlIW|y(_?px$(=F7m^tjT4WVr-9oS>Ly7DBuVG z?^@-hn#nR};l{QK#HlHh+MZ*t{^4mO)LZg=nnCe392f}9_Ci7L+_;*#%zqoQKSd+U z%@J4d{y+2igXVLfuMZf8)$l$O_{?SAfOshC%zu;uT*rsn$FhfiH%=dZ3JzCRQ1J!s z58p8!_19Rc(_M4Va#9Cir&=;7qj%k*Q!>@Z8mnjth=3%2TB*;-63t66Vs$(ad_yst z&uOuu;=nun3R`NYR*(E|?~%JHMLXMSa-!Fco?F#7#4JQ2`&mVCBA9Y4@}_$|+6{`; z^ODd|og&4>RSjkUupajhEV6^ew$y{$H^eI__#BX{_|&KHEt7{iDv4N>5_31k@{+y8 zu(ImqWzBf^Nb#r$E9+{q4zKA&f>fQikItf#_8stEmpu5t@;+!D^|zT0F4+uj=l^1T6k`@*vrb_%2%q zy}tK({>@OA>J&r-wdBg;YANh+?<*O%xce$0(Z$!+c}bsxs_hTYlRDr>G*w>g?|;{d zsyr30sI1I4zhqV1JMl^9%XW{>ZW(yJzdj0`dJ1Ti|M3MVDbUbun58|{_B&it@$vbn zY6=r#asqeYSHnN12h0XAR#4VJ4==ynfZexN<9Re#;l+;9F9NV$aS=dC%Z^weyn@c& zj5m*ORDpl*f~2px>@~3Ys`t2l8Pft9-~KT--yNbTw~>`{+C9CU8V#~fP;;_45rIjz zBkcVb9BZcuz>=IdA#^*wJts^NfkUO`C`LN2U?m6!ww=uH^pC-oUW=MWYkAmA5-|6^ z7z;xL;nTG7JR zqbTjk8R>wxYA2a0nWiYuP7eS$p?;j;NVlYKnI5E@k&k-`oA;l_?uK_aML*Fp#QSok zhaX(-Huhx-ezYEoJ}Do|#PKg}4G8d9>NXiFR$+H?;-(WjJ9d^b>C5#{L#l%jwzXsY zxs;UtdaR2ZhCT;vv+!eT5&zw2)#P*7cGdN>m86la?^O7D3CaE!w1zwSRpxQi%XM5f6`K<>7Mzod*)5nzuuYGZ~O5CDN~s9 z_!+G`p=e;rr4lMmb~HDo?ohIeLa|j8;Hge0kHBzjMfz=C8l!H4Pmb8yA;0 zOR=#;=MFjD+3vE578?m+-4NO%eVT;(>kZtpVe!1J(X`UvWiiUJTzy#t_3J2}f`c(T zFCb=7Z9P3BJFP=Qf8H<)a&G= zAZ}nDkf47dt%S|5x$U^-mS$;hs?0YmCq7qczUR61lGSdVBO}_FW5X(#B=*hRJ0}xe z&DfNb#@KOx(EK$IMqEl?RG5v&`l~JPpN51eJO~LH8xx)3GOn?i9W5@_Dr&vCK|csS z_j_0Gg&0h!rd-e3dw8IQiVUbF+!m%U?_VEp5;bK2#v)C!hA>LIpw8uR+#rVe0T|f8 zCn&gz&7kfq1JhOMgYYiheqY@3Z$K7|Y)tt7R3`Vmp3>WH5HE0R-?kg6T*ro+CXBW= zbb8bU-(^O0z zE~cx@V1ap_r$icrF0T+6jS6*^0aII)gDA5w`rEf(O;dG#)OTIDuv zSPNP|!Pl-`ll%nEHvaFp!cBqve8$4riR7h}cXRu!%zh6H>{|dQ+!SBr%;BOfO+$Y< z$uC5+SX&A!K+3#LXMmViAJ^ zoP;T9X?AY9;BY4@ii(&R@w~LMw6d&Xs6oVc)_7*RewgxbIn77NWc(2X>)15|d~n8$ zVZ=xnt#Dbe?aTdL0ne>-^gjWT09M>;-%vcge|)@VP4Q}ulxQ0*>)RjI>r6|rN>M+)>CY|a#3KV^;yp4~k-En5($t9yxPRl}_VU#c%&Hvs0%)ud8?wKGk*qWpwvK752Mn;yRB9@a9<4r9r0CKg% zad_ddk0u!RwZ$i)d_sPSf^LQ)S@qg}Qlk1hfV^k`2%k@OQy2E9Uw;R%>(x~l4I1k5 z6*EGBw+I11y@(4fQKucT>uC+}9v#{yFYKu%3>+x2>eWT}%@Zk$y}v|HO&qd$ot`q% z^`*%I92XFmcK20yyZ@eW+A|;!K>0B|4D$1I*3hVIXfX8i zR*;bi4-M_?>GIs8mrhq|Zf&L5T0%HOV`O-38|fiX56iT;IEyLt3vdf=T;Lu!!!rph z%~+|;R59-WDliAg-@NkebO9u+y9fDwT=n9%fpE=jl#R)A%=zfZ=VlmwNIKZ!Q)rXX zR%gUP6LQM)Sofr%7+XJ-?R7S2j$WSIs5q#VfJMi}6)Pg4DO;ba_iIDp9*}bKme46K-nTYd zGgX%FB($dOFMWL$(}1&m-qGC+bva)sF?vnF(9yvpiaXCwNT4915%BO@2sFad>!7O3 zXC|sWi+yI5L4+g>#Y^OUIp1f$dzY>!DYIBruiy@T#2stexBRl1%J_cPBs~TVL~=0M zSZ_Kaik7m1hzQqHQC3~`s{^RNv;BRA;BYY~qm<@5Z?4c~6Xy1Pnt=czh|W=yBJGy# zr`z{A)i}9$DR?~8(x!!jR+5SvPJCA95?@T9_50@}X52j7p2u{q#B0&f*+D3U-uX!Nz!>zc=%t$#qp3};-PVQ~WcftJH-q8hl1 zfLWzd@!hT4j;EJu7rST3*S83TeCDE!;&SZBI2Ho|iZ$^w1@jeA;#)_X7@|MhnjRk4 zh)CKOdwUgPoDT=)zkL48$j;ttCr5s{Y^duDo!U_@_V@RTE80I=kT&$WkiI7>2nP8c z>}PL#Y8&)3T^FI{%nur++H1YjbBSqZJ)?#&3BZ>q_ylPAdROzKt>N;rMB>&44UhhV zLutD{pUV{X6v5RQC=~iYxj1#|o~i(^&gKxs_K(_X;rn+f1kDfD=M8z1*O!)b&^Qn< z0xTW$jM-{#hsZ8pxB0_eU?9EK{x#0qu9dosz$TqG~U{>_jGpyQVwtgP2I*N*V2_*P*?z71a>zIehv&M`{GZFK_baz z(7IS}9UW|J4;6?xoXqz%gi{LCsdtf*RMu_ON}QgSrTJ)Ma$nz;wo~=C=H=q$3LPLN zCFLgIv02jv1A7eduKrZ-T_^(bPOpjiaavRu9ax%|A!7F@FEoZV86c2qJ+$%Sw)brU zX|Jypo^2y98S5`jHD^LSoX>|5FV`@{e&V|=qnA~-O<86$Y_r31Bf0W78`k^g`lW7uH7uX(9EmZ__$8aM7Y zAQ2L0i*=L*=7z1#Wk7a7Z94Ea>yLZ8eK-zr?k$~6gBEP(OZmSecZU+n^L=&GiyOd9 zCS6Qs48yBzC+v6niO9&7%|%4aiXfyx7t>|AjraMXf2Kh`>$Rc#Pg$P7aG^`3VxkbZ zm?kN>$c<@i6jxOp>|F9+1D@>o#KdsrV#R?|wVr{9NNntv_?4|Cjl*H!oPX1Kx$PIj zvGHgqIS^tTmAr|l3SE%!j~vLBheWFBX5W{N4y2}`ZvU0O2BqEFQva)N+!9OP-vu3C z3%&I>n*D#@Rr2k|{klM(6RQ@xhT`0fmH!w7(VgK62_pF>XGh!JiPQZ0AV6@-Aiw17lSXZTV(N_oaz-OW<0A&&H7Msu-CH2G3G;cNZb{SA!k+q01#lFC8moIwD^ z_|G{GK5hb9cyDp{e>EF0L6Fk+j)79IY5;DonlWM-91_BU$Oi0X+4+y}ahzSW4f_@_ zLOzK7Sz6=v8tcc<)q!ltAj_e6`(rvGdPuC9zJBuU`zxY|r5E5pk(-ec_IZ*l2o~df z_1wRSJdmVH74M;`Jguunz{x}2K`YE)#s8sJwPM@ zq;jy2vPBO%+ld^_8{*Q^=pIs5It;I6wkd7^RL@``v=g1mJKb?qc^u zuaX1AydQ`1{XZ&pn5?VJ+T1)=r!ZCq$=bzD@ES(lX7wU*Zf;KB^Ju!>^YZ6(3bvDP zL<9H*`J)Ac4PlCJy1ToBgMx+|3U_F|Z)$?$-jBhxrY0u)t?Tnu7xg9>*AO?MjiRfE zs7TUi`8v2)$uOK5YxzZXc-X%|XaR(siW>xw-@b_zYEX4j_!EUl#Ky+rUmhdV`v(T> zfyrfDs&!e}4aatA7J;!a7a^6Nvm4gCtn3V|#uWD-@7ri7DShFHTD1t5l$1C-sT!hN z1DuhSY)N?+{8!yN`*V(eiKXtk@XC=#4cFDz10+#%xBOwa0L0&NZXp*?OH*Br=ObAn zD0#MaJ_yH5z3l7i(yego$ej=9q6-cV-^I5Ej}zSJGx_A53(s=qbwy<(BBEV)FPyF- z;jyU3WtOiE9Imq2b`^cg;Q?;)9RIkNeC38)uhc(<#^pmP^)2e7g!uTN7&(7ONkc>9 z&6^dBBUxaMNx;$4(r>I&_h6HE)A+D)>DaGdsQ~0#nFqq%IWp4vP9R-rWqVmS4M4&G z!SmpMQDlYrg}$?Mi}-Qunr_cQiFfBPB2sw(wg4RZKF-dvf-2XR+T_?HdL}EtiCi4v zTPQO6*D<8}Jm5c&nb1+B-7B1^?yGv1qCGg1z>AYs`Mtoz(;7}8yjUphuP_nTO1Z0g0%fC+A*nK8zo z9`B5hcHDR8ix%tAJ6BJ~xpkgw#h5qr&X(ZN{o1!wa_v{?rDr>nZ#vp{k6mm+V}aAN z@hAPMOJ!ve-?{P;3f#!qrSdmr)~ zi-GZyQgZxFM%uq=RFVER$`SN&jg#^}wXy&IT|blx_M3L#hlEZ2Ro6^BK|!UpJ0Ba{ z|3<*c?=@OxcGXjO9`eyH9P2LXH$25-?YGgNG+W$0qLzW&Uu__*s+w`?6 zMcHgo(*+=wToW?`qAw*kuKZHdj-r-~a0S2F5&wB3OEUWM@!Ca&8LWB7z23HfH#&Qx{=~FPI-6)pn=z4 z3PzD_>+h|svT59A1*6|}*(z}~B8hW5*@_TSjodH_eets?L%y7GLSf?Q?r)2k$vIRLa1)b8^(d%9|*3Twru*nWgYp^pm>)fttA{o5)Gcty7rV7pPFBP^nF zq7Lejv9Doy)(K62*lk9=$9*O)<%FqedrtiZEf2FRF1&rVb=P|)Ua-vQU`r7_WD2V; zSc?xx?TyZQB;n#zNc1f?jj`M1qy{Z_t@5a~QT2a!*FB>lez$_3xWaUTG&`aNMwe2y zJ0baws-&+j%+W;sn~o7K7E2@!Zm%!;Ad90xx$b2UMZJ zz3nG1rOS7<&t9c0reChcKzMa65z4dL5J6dpN|x#HsVaCNKSSdCxJs$=*?OSCZE>QAv@U~hd+hrmu8HQd=4MMl6k4x zCm7hvkSI25xRDw*KaAAKE!xipExVze@Zh!^>@SG!WVWi9%OxWETLmC^IBQh}jvGzgMD=4U~!pOa<>2R_7vL{}DYBBCzu*ES_;${$+5@ zt06uVph5#(`JNLGH4n9Vm+-JHu9gCM<$Cu2`}X=@H;Vk8q-47Ci$C30`E!LWnHEpYQR2nZxevW3*H)2)0V=)>Yv4XZf9{E@3Mj zOD3iHN2MCSD}BAJH_+gNYeFHM+~a|h)0E?z2OKKC$MI>d6n}Fmuk}Gb545)EBx2A* zuV@dO|EqIS5J-WhYW>XRZQZ&WB4`ffnsTJke1-4ibysYh@FXQD)@@>dbN9mCLqZ~bH5Znob|7fw7!o!XTC&h^#lH|3Xv z=I`l=!GZD)0I@A+BvEKG>q;?R%lu{I@znC?O#Rg#sfat7VK;-WX6>8KkH3xnZ^EKC z<-%^BU1>ofsgk`hEl%$LDSSF{z>zaXQj2HuRTqby9c*y2SCL$pV=I#y5SPuJSa{NF zawdYiN>KXAbHnISDzieq=lQHmdYJpfVH(NjW=Xa)-3?2Vsd7~5+12A|1;;Uy^A+Q= z`sRFwLQiqcVduKDLZ$teT~*c|RSX#m`W8`@Y04IhNghy-9$Lh3sQ{4#JLYT6cE-hI z2u(IoTdmqg@=XVw&GyNZAM~B$dIE_`r(lmkh$+Y4tDv^+ji|xiS zKo146oMMD{=7S#ygsnzVQR|SW(C<1CXbCkn52J&pm!|G=1S{Gc?pv4Ur@Z(n{F0yE zy|4PWk(#Q~cQy??8#W5s!RIqqQz<0-Kr$)t$M9MGG!4zkCV>PzTq75fQSnb)nzhK* zF(xU?KmqLS*Gq*PCG%9JA@wsBQRgB_YE=^lr43uVIMa;gHik>17f=7J;}1sYBg)~a z{k_Z!^XjE6$CX+~3M6cgJ~!hR_OukaV5>+Ay&hgdm21Qg_H0%eZJh*h_y{YFd^E5! zf9~JGk59Z)dqJ~#+i4*wm_ej>=|d{)QNz}kWzWn)&q~tTae=Tco9Rx*`Gp=2gBI^K zPAgfv)S&h}M|`mB(fw9#gry9-sp0SxE zdp4V(@zpAqf7oalwaDcRo69oEJ>wu_G;61YwVhWyUB;R;DHFdGbT>6t)(ck1<)at1 z`ereLnSi1sW1h+izRTtEFvC3gIW)-Ru&Ut>Gwz%YsUD@R4)xA;^80)*z^?AxUfIjT zM2`malFIu-e#R6`2XfFd)moSW<(1zr1D|dkT}b2IfSHPxIQF8x)T+i>F1Gj=rqr2- z6X4)ehp+bK>XSEaJIjoD)&25p**RtNy?E@fYj~W+YQ)y#wWRpGydy`)pqsc%9AWjz zkn*adSN|``Q9DvnR#);vS#VHoiW=vq9w+9_4<^$M-c3(Z5R#J=I7V;bx$X}y>}ay_ zaPtS|WAv)PmR-H|MmT8fr|QRv1Jq;Fn|MeaR^za#$Y-*qc9{J&xXCe)72mcV$;2oH z<|yHlQxx7z|I*XdR&cdYa-vmoN%6VHH1SW$;J@^Yza~a@Ejz}Ns%X3~-eR))DJ=xP z6eg9f#-zShQJ^PBUP!|FHV>6ytp3UlDId}`{hfal9 zq|}u>7v>qA9?2U|ypR7iP24x}+V!-7wI3B`s0&O}GEkcDvoggD7FOPxY#0dL?xxQ= zsvIe6%*e~HuYFo|>r=KE?E8R&t;WZQqot7}A~Am3YuBi*UvUJ$x+$(YgE~>Sk=GLT z;nPN>uRVL;YHC?glRcP{^_WYFI7WGWC%gh^pnj*EVV%el7gFphjlMukvri2Ga+vN{w^a0zvc=ht1-E7Q<#*Df800lMO&FN45;Em;rm@Ng(#~h*I z()^CQn56qk4@|3yDskuQgCyyvW3q z>t99Zi{U0KyOcAFr0E7ichi! zF_`gi^4}cK_+~+c8c%ke?Nxy%G==>cd%D*rs;aHZ^71Dcp`isL!Zi!aWS~a0eSG|P zKf0mVHDBx!>ZG0zIM|xi-JWwp+4)42FLg49h4JoMXlt~`o`2Dbm#uYyO932UJ-MFt zM|fie$;m$TwSt1x7IuTXwnQt8kM01F@6L{x_{79O z31~Pz!Op#%!*E%*3}u9OlKYm(yE+pk#Edz>`tcXOa}R&#uxL|CR!(NXaOnL!zan9k zcYuN%x!~_+nBK&#>({<50j8R4xipl;@(c*|01htCgOyT{?YfFb-3HEBgoGf*L+wOK ze3va}+fFy^IQpzqr#%vBY^_B@QGypaUr0DPs=hutcibQU^-EC%2eT&o)_z zL2$Jw)+e=U9&>uk!go4&;#xzgC(~{6xdVcONkogszp3St`G{1V2QgVuNOxEjhm(uL z05JMlL^6CdOTxpPG<)8_-Thk(QlhXXGBMVDZlfi7$jRMk;Gko^UU-TiV2H9OVPBJ0 z=spW8b7dJPov?99b}eF4)H19BF_@vBMCxBvwIxz__Skf-d6YQ^Qz@a~bJ1E@JDnyH zWTp)&@#Std@O9whXUkE`!WjDujNL+YGVkx~uVM;Krod)dt+#n>KP z;L1f)Kd8RGi9LHbfC(8T?M|58T4Q~1C&Ppoysn-}mYE}jnO%bww-_N%{!CX_o3aQ* zO0)}irX2KO5Wt`U{XY4M|6kp~3$Q^)Z_j$Rt zD2mD@3oVA-onQ9lUmjZJ2~zy}H_b{hmEODR;4JHr)`jKk|J zjv3xAZ3uHU2X0hNN-$Tf&ECs@^$*j1MRnSg{q1KdtZ5hz{i9K5?N#&TqbjUz1sjo- zlb%Y^(l*u28Jeyo{_*3Y{Xek}Au2i5P6V&c8#-tj=w$SlUfgS;PTY z<;8`CVZNY;M20`@Fq7Lz1N~9!NsXocaNz(mhtqWvsc|h`kN}hv9|)gtvq640n?#>| z3EUF8vwQST*l8maJvrEfat^un8g)@$3u^rQBwB^MsEg)*G&asPxYB^A<3xUbc_z-6 za@Y>4to*jH8bExtFwiF?1_r%pTV2>|bWU<54+oSNtG+hxDypg~E8Dv}1zcChD_*t{ zDVxeowsgHTpy3_*HQn1b_$kl{T2zt)662U2$rLJRYN-_rt~x<`I|dBs)B(6irrk)R zo(J2B!rS-7B0->Xk)NJb1^&#PobnY+gLDb&;NLdC>yC|Rf1r=HpJ?lvni)OY0J3U2 z@$tjEhzl+@w(qf|zso0z!YKskd4;3;mR;eaP*zCdESKkf8dWAx+RraAe!Pi6iWok- zb}iZ-6oMK0=rfRpI6>K=P%OwlsjTD+A?0`isv(4p$GV7T;(tC6cH3#6)T_Z(k%*^% z2@EC)21JNqI!#0tM#}5gc0#E}m1{1G>crCX=PtKjzKoviNg8hB&J;6o(?yl2sV}z# zv8H*PBwDA+l-)3YN zPK7+Rn7gAoT4H90u(3nvdn7Az%t|}JoHp9%k8L)wY1x(7qT+E+3 zp@fLIvmXOZy#Ot3efp_L+RJZteF~d8!~>;+%VszI3dD9e>BU(eqJ?sbK~*#QDI*WJ zqtIk>YZ$HVv)n(|3oruJeiALXGbg*5O7+GldP6!6NN~7pV3;f`jbu>!#Grh-n){FH zyy3h<-%U!c3Q-~&sEZ^!hx_B$806wC@$%lD8D(MXOkYwUtv`(1)=zMJ!e#q+x(1Nq z=&8fmVlji0u5GGp1&^LD`{;`;GF(VyVGuL)WPy{sG=J%8?vX2CnP1Nr(c#?~kW z>V33Pz26nt#5hP9hzd>u}24kC<9O(WS8bSNGj03_*7p%bz)C4DeL8fkvazB_2WneQ5HOhd!gd2m)|g3Mp8 zTOhFoP(8W0IQ(#4{?#6Ld!;KRm_$l3C5>+t6GzC&RVehD})*_=miw zBXvaE#1FGkyY)(^?a8fj!kM5T#j%=wu=69T)x=@xM#{zEl-$OamuG~pk7=Q+tFzoj z-S2pU7K&-k03xA?@tX#`Vg!T~gV6!@n5OOI>PWRPk(s$!c6Qu3`_~UGqj+9}OwwvoX3?kFlZ9COy=$j-W$awr`mj`t( z^OiuhyG)G7;EZRM0wv-^{D8aMv1(gnEL+OLPVrcM{i3WKC9R-H$K%z0HpsXs@~(Td zZ4fgsEoTfhUw8|_+DsYh6xu2^7yxk&?f{rJt67u!DJj$&tUX9p7JzrA#;guAwS6Yw zu;-OVo6^&L5w?d$Ps3x@8i(H^WnyBYmgg6Ja7V%*Z;fknk_!k;VrBc%xwW3!8zO1U zrzsNo!$4r;{rgcWeb%LNgt1SrqO5|tKl`jyb-CPe|3FidN&Vp?1dZypuoP?mB4mnOgRzzOuBV z%87}Z@GR=rZRWKFLUFD<3S4%YSvp-r1D9bXyRMH~E%NixN{)<1Uy@FmGlSFC(ZWCe zY;KWWS7_{yF56d4<8{89>EN!cWqJUlOkmDyrF@{w?$L}%(IM{B3QwU-zJ#IF&5VYc zdKh>FUox*g;x(i?K?Ylqnzfx zoGdDC@FW!XCtM|q+ga$d@tpB60m9Ml1|JVEg|Jsie#ktKn8K5Kl4zkn0Kz$`YTMnp zxxZ@04dwLIYE>J9sfJa!>>n{jF`qbVTppS)FYKNQMJn;<7#8P%0!mQuYj)&ZUS0|c zK6G7ayc`=X=YWcJ6QU)u8Lv5us^+=(bcsN7k?f~Eb!1XVlt?X|h`R#(nbky1b#Bnz zh`w6;b+ignp{v`;sU&|Q4*0F=TIDXE#Fe@I$!LhF$jC0ciW?}x;iwvr*SNH>VEJ6Y zVdErI>Pfk|oUDw8zd1W!G?OrEQ5$IhGB+?ME-fe_o{?x*r#6sP&aG)8o+S5&g27z7 zle$)3aG(!0Vzg7eVpj$&*@j$11g>-$@%6@jBw~pQVWDV0aDF=<=YfAhZ|+`e+cBco zU0kB0Qsf_KP0w)IrMP9zRry+aI(}CZTPg!7P#$6kokm~2VSRWL3uxZHX?$o?H2iV- zyuhS(rov9)FpVd0TOPW9?``VL=@|@YhU9y1f9;U#dz!h!e={PMDP=c z_Nyu1_mIpv<9T93+My~FrS%3^y2;Yx9bj=$h9|}c0z?)79-cL5Zz6U7Nk$RPC+ZEG zm$sPIiSB&$Zw>k7#1U-|26oHIJdQWMe)+PnzIi$t?mY#qEZzuaHRObki8W2gWSMZ@ z5a}D3KC;(Z$ovv`xA;CI#31*DoiSuf^AoR}gZsc#z!NXpsMJ(YQi~UY=L{`!?s^X# zzAnvAxkJ_(e?A2ohR|eFON8e;a&@&Ig8OYI65&H@G1I91Ty@2b z;B*|{nOX`qm6UMqBhrUa5rg6J#wBaIK#Z-kJo@{j;cSbfR{7*P_Na#slwFKEyxON+ z@knWz6E@;hPpmhK)YmyX?VSKcnx6{lAdVONuu#Kwf9q5DrjC?Eo0;hn>&5I#$Zt3b zP^}H@#mpN}EG@5_@e4EX_Dl@w8^eteCT0i|n=$)AJ$NgpoUIQ!0oI5|`L>CPQOXly zEJIi}Vs}qTex-sTWCQ?eGCY(<9Rf(*ZPELeZ(EZV33uHHnoL;Px(}~omr`z1tL_n7 zu*VQ=Ok`Gi&pYYuq}&E*`AO$kavbN;30D)JEyjCm&)M5=^8DP9tVjyhhIew~rDk@0 zz~xkknlT)1`%KvRNM$+vRpAX>pCS6!)7HK=mM2egb>og++33KAOm&sQfB0&c#0WR8 z9zonN_29hVXV-(?&_CqccVP6FmhW>aDL>qEVhraY3V~K4>b+X%I0!d% z1NeXstCJ#gPulBpo}=Ns!mFc$qH_}&VkIl$;yelQ_)&x&E!@j>`G8^gJ-BJq>$`Cl3`yi%~~%8m6Dr1s4$ zAzBG!zOO)(ZkByv_;0h}?2g@(@2lK4ZtxCaECgBPRpc!>1U-^yYh7MitQWM&@N@4_ z1Z+P?{%nG(Dm=H2x2LK!HNA~sY8#PJ%NBheT?Y*&$_BKy;023LiK2Q)yQsESX;sU| z28{ms#VtyzxE#ZNRbpx>%0kKf;Yg9|h!;S~8IfO_PlH4P)n$%*D}&`?>xRbTcp;+~QckOD z@(}K*H(=-9CS37e8B5sGAFr*2QuX2vBYJ2iP-~dNe~2U`TZG*nK@pu)0`3gQHxJHS z{Uw^0mO2A-#0++S7D{F+=kf|vgJ70;y3+GMmuJ!xw8i=pvA|+>rSo^O9)+?$DXmUZ z%yzK>p^n}TVaMIIADZxrL)I?5u<#&Y!7KK4kF4?|*Je6iQcDeR z?G`BYyVZJMzgG9Y(q@K9N~+co#uIQZ|fe8-#sTR`i8zUwY@WG z-StUI>lP?Zf~SADSkr{8$Aa{G7+uTVJXI5mIt6TJ(8jgPF28V$G7!oc>CQcJ9H|;x zvIKGMn})G8^~2SB$Pv+h0T6$TzL{xRiSo z6eO;=5n%|(uz*vn6e~S1mg*cD`@D{kkoLQq){4DYi#jgL5&g^masw!2wQ2mDqkg_WD0?(L^m>U{!#ChOR4Z zNqK21_by86$!uGn!P}b~h++cXp^i8bSW7G7#W*|7M6XvZJ>}lb^EM-*O`WQpcV~)x zKraIrWS4?n+62u{+qZ7L$ma|NUXk7Mkxl0#$_sR0AjusMr$Qg)=(OUvq$I~x;-EMA zgQsU6gj7Ruf#^$TeLu!tZ`ZXLs;Uj^LX-K2s=v7z!+enkNWlsll=Je3+1FU67=Zo$ z3WmKG@8Ga6596IG0I(Je$nV(}=D_PlnwcUk%x}Ng@9plKuD@J~mNp@z6P#aoySzRx z4T}(OqVQ*8W)BYzI%ea22@ZDFBr^xj(dJWt6ur_01A~3Kbrcbz7!SpzAVbJvQ`y$G zG|FgB_UL@4>n&#dMSWf>xTeMC3bRdbnh0!+n&Q|_aK{Uf*y_F9iP76-$CFGs9=tG{ zo)t5$%s4-lCS+H|uhJHrkCy{aQ6fw*J5BvfnF^g`K;_p!?NpIatUw6}qIf$$)*UU; zFZfqA?QWp+x0&;H&Nb49v?!b7^j|oS)zKivXUKv}$K`mUPZJez1y~2us^BqA>e*KG ztz_BpH^4FHe#XZQ6=CJB(HsrOk|@KP?Ex}#eK}dt{jHf=VAfR}6!c6SqoKxkBKoMI z9y+X~6BsRg32|CQ(UxeVz}5aDlw={M%%mYK3>lCl3)aV`b>Zu#On_>~%Er4a31{Ct z?&Gicb*Ou+mqG*BtU9B&q3?!9yI6AM-zMzsS8*mYY0C(GdzZVC};3qIT!UREq!C`#>KHO~V@k_GoljiU9*&Hr+;4MT%Z4$5+ zEbsmrh$hNkkaCwh9MOninEN?6fA;+rPmD<+_FDcm-ydk78Q@-1Yi_=5J6`5_u=A?N zO9%uD=l4%R+FRf9`tj!NYnGJ%iOJ^`kG=!-eXg4r&p&@=L3SM(+qvPYx2!^n$l2k` zkdGh7y-qQV;oe<6<-WMnfNYE-BpCR^Rj9m- zk4+z;?4>$qSxrZOKGLF}vGgu=20H_L5Vs9=yoZOU*RNw}nchE_TY z@BL|{iEfNeRAd4&txt)iYFm`~lHdl!V~4+cWW2KlQ!3|f>89qSXMD!Trk_kh;0Lhs zkM`cN;l6xF{Bng>+Nqke+u0iUs9AsX(H+6lZ*bQ%&>E_jy{-M>d?6tO==KUc0#3O} zZ)#GeE{>HEq_>-zHM-!NcT%jsGmdLlac@s{=^AHqh2@rJ0Npi|j^o)yrnvi+iAq3t zqo<4GOJc&_saJSr;EI-idvSv6d>_NDYi=H?KIFrzPQC?GJHKVU&v9N|bZqPzdUa0j z{XZ{sQnqjyx+3jE#3?l3K3!N~s0XNy(48o&)p%Liil0eGSSCWDa>AKw+ER{WvNPxC zGGlb;9MyZ#=`uTOjf!Lhcn!$CBZv7y zMb@htuCo8W-Tlw04pi&Iw}Yi8N;i=zEgCQHbq{8dMtr}8weTI(dG+_$2l_9o;U$4- zPOJ*j{B+o~=ZF>}5=%NHsXMB}u`l+YuY6|JRnx z{8uZ1JM$A9SMvHQS?zt+YkJdRxI9|Ub|YM9ox6N58jey@>k(cwDwO*U$@=7p@pkwI zK*c8u#^Q8GprOXRAdy)tDr0!9%yGYvwdbZ6IyXqE{{bP!mOEM|Mg<8<@A8J=vLSh? zc_v?yvo}lVZ6p=TlXmkM1rp_|i%JDgh03@WtF`wO`%uMA)qn9I^ i9R2r!-~U(FbJ4S863Fuc{$?;g*Q6yBU`66@KmHH??c!hn diff --git a/resources.qrc b/resources.qrc index 86cefbc..be00728 100644 --- a/resources.qrc +++ b/resources.qrc @@ -1,5 +1,7 @@ packaging/voiletmark.png + translations/voiletmark_en.qm + translations/qtbase_zh_CN.qm diff --git a/src/ExportDialog.cpp b/src/ExportDialog.cpp deleted file mode 100644 index 918c9d6..0000000 --- a/src/ExportDialog.cpp +++ /dev/null @@ -1,111 +0,0 @@ -#include "ExportDialog.h" - -#include "MarkdownRenderer.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -ExportDialog::ExportDialog(const QString &markdown, const QString &documentName, - const QString &startDirectory, QWidget *parent) - : QDialog(parent) - , m_documentName(documentName) - , m_startDirectory(startDirectory) -{ - setWindowTitle(tr("导出 PDF — %1") - .arg(documentName.isEmpty() ? tr("未命名") : documentName)); - - // 别让窗口比屏幕还高,否则底部的按钮会顶到屏幕外面去。 - const QRect available = screen() ? screen()->availableGeometry() : QRect(0, 0, 1280, 900); - resize(qMin(900, available.width() - 80), qMin(860, available.height() - 100)); - - QVBoxLayout *layout = new QVBoxLayout(this); - layout->setContentsMargins(16, 16, 16, 12); - layout->setSpacing(10); - - m_document = new QTextDocument(this); - MarkdownRenderer::render(markdown, m_document); - // A4 去掉 16mm 页边距后的正文宽度(96dpi 下的像素): - // 预览和打印用同一个页宽,看到的就是导出的样子。 - m_document->setPageSize(QSizeF(672.76, 1001.57)); - - m_preview = new QTextBrowser(this); - m_preview->setFrameShape(QFrame::NoFrame); - m_preview->setOpenExternalLinks(true); - m_preview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - m_preview->setFixedWidth(700); - m_preview->setDocument(m_document); - m_preview->setStyleSheet(QStringLiteral( - "QTextBrowser { background: #ffffff; color: #1f2328;" - " border: 1px solid #d8dde3; border-radius: 4px; }")); - - QHBoxLayout *center = new QHBoxLayout; - center->addStretch(1); - center->addWidget(m_preview); - center->addStretch(1); - layout->addLayout(center, 1); - - QLabel *hint = new QLabel(tr("A4 纸、16mm 页边距,内容和预览一致。"), this); - hint->setForegroundRole(QPalette::PlaceholderText); - - QPushButton *saveButton = new QPushButton(tr("保存 PDF…"), this); - saveButton->setDefault(true); - QPushButton *closeButton = new QPushButton(tr("关闭"), this); - - QHBoxLayout *buttons = new QHBoxLayout; - buttons->addWidget(hint); - buttons->addStretch(1); - buttons->addWidget(closeButton); - buttons->addWidget(saveButton); - layout->addLayout(buttons); - - connect(closeButton, &QPushButton::clicked, this, &QDialog::reject); - connect(saveButton, &QPushButton::clicked, this, &ExportDialog::savePdf); -} - -void ExportDialog::savePdf() -{ - QString suggested = m_documentName.isEmpty() - ? tr("未命名") - : QFileInfo(m_documentName).completeBaseName(); - suggested += QStringLiteral(".pdf"); - - QString target = QFileDialog::getSaveFileName( - this, tr("保存 PDF"), QDir(m_startDirectory).filePath(suggested), - tr("PDF 文件 (*.pdf)")); - if (target.isEmpty()) - return; - - if (!target.endsWith(QStringLiteral(".pdf"), Qt::CaseInsensitive)) - target += QStringLiteral(".pdf"); - - QPrinter printer(QPrinter::HighResolution); - printer.setOutputFormat(QPrinter::PdfFormat); - printer.setOutputFileName(target); - printer.setPageSize(QPageSize(QPageSize::A4)); - printer.setPageMargins(QMarginsF(16, 16, 16, 16), QPageLayout::Millimeter); - printer.setDocName(QFileInfo(target).completeBaseName()); - - m_document->print(&printer); - - if (!QFileInfo::exists(target) || QFileInfo(target).size() <= 0) { - QMessageBox::warning(this, tr("导出失败"), - tr("没能写出「%1」,换个位置再试一次。") - .arg(QDir::toNativeSeparators(target))); - return; - } - - QMessageBox::information(this, tr("导出完成"), - tr("已保存到\n%1").arg(QDir::toNativeSeparators(target))); - accept(); -} diff --git a/src/ExportDialog.h b/src/ExportDialog.h deleted file mode 100644 index cc6e2d2..0000000 --- a/src/ExportDialog.h +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once - -#include - -class QTextBrowser; -class QTextDocument; - -/// “导出 PDF”窗口:上方是排版后的预览,下方保存为 PDF。 -class ExportDialog : public QDialog -{ - Q_OBJECT - -public: - ExportDialog(const QString &markdown, const QString &documentName, - const QString &startDirectory, QWidget *parent = nullptr); - -private: - void savePdf(); - - QTextBrowser *m_preview = nullptr; - QTextDocument *m_document = nullptr; - QString m_documentName; - QString m_startDirectory; -}; diff --git a/src/LanguageManager.cpp b/src/LanguageManager.cpp new file mode 100644 index 0000000..dadad9a --- /dev/null +++ b/src/LanguageManager.cpp @@ -0,0 +1,82 @@ +#include "LanguageManager.h" + +#include +#include +#include +#include + +LanguageManager *LanguageManager::instance() +{ + static LanguageManager *manager = new LanguageManager(); + return manager; +} + +LanguageManager::LanguageManager(QObject *parent) + : QObject(parent) +{ +} + +QStringList LanguageManager::availableLanguages() +{ + return {QStringLiteral("zh_CN"), QStringLiteral("en")}; +} + +QString LanguageManager::displayName(const QString &code) +{ + if (code == QLatin1String("en")) + return QStringLiteral("English"); + return QStringLiteral("中文"); +} + +void LanguageManager::initialize() +{ + QSettings settings; + QString code = settings.value(QStringLiteral("ui/language")).toString(); + if (!availableLanguages().contains(code)) { + code = QLocale::system().language() == QLocale::English + ? QStringLiteral("en") + : QStringLiteral("zh_CN"); + } + setLanguage(code); +} + +void LanguageManager::setLanguage(const QString &code) +{ + const QString normalized = + (code == QLatin1String("en")) ? QStringLiteral("en") : QStringLiteral("zh_CN"); + + if (m_appTranslator) { + QCoreApplication::removeTranslator(m_appTranslator); + delete m_appTranslator; + m_appTranslator = nullptr; + } + if (m_qtTranslator) { + QCoreApplication::removeTranslator(m_qtTranslator); + delete m_qtTranslator; + m_qtTranslator = nullptr; + } + + if (normalized == QLatin1String("en")) { + // 源码文案是中文,英文需要一份中文 → 英文的翻译。 + auto *translator = new QTranslator(this); + if (translator->load(QStringLiteral(":/translations/voiletmark_en.qm"))) { + QCoreApplication::installTranslator(translator); + m_appTranslator = translator; + } else { + delete translator; + } + } else { + // 中文界面只需要把 Qt 自带的文件对话框 / 消息框也切过来。 + auto *translator = new QTranslator(this); + if (translator->load(QStringLiteral(":/translations/qtbase_zh_CN.qm"))) { + QCoreApplication::installTranslator(translator); + m_qtTranslator = translator; + } else { + delete translator; + } + } + + m_language = normalized; + QSettings().setValue(QStringLiteral("ui/language"), m_language); + emit languageChanged(); +} diff --git a/src/LanguageManager.h b/src/LanguageManager.h new file mode 100644 index 0000000..5908c67 --- /dev/null +++ b/src/LanguageManager.h @@ -0,0 +1,37 @@ +#pragma once + +#include + +class QTranslator; + +/// 界面语言管理:目前只支持中文(zh_CN)和英文(en)。 +/// +/// 源码里的界面文案是中文,所以中文不需要额外的翻译文件, +/// 只要把 Qt 自带对话框(文件选择、消息框按钮等)切到中文; +/// 英文则加载一份中文 → 英文的翻译文件。 +class LanguageManager : public QObject +{ + Q_OBJECT + +public: + static LanguageManager *instance(); + + /// 读取设置(首次按系统语言猜一个)并应用。 + void initialize(); + + void setLanguage(const QString &code); + QString language() const { return m_language; } + + static QStringList availableLanguages(); + static QString displayName(const QString &code); + +signals: + void languageChanged(); + +private: + explicit LanguageManager(QObject *parent = nullptr); + + QString m_language = QStringLiteral("zh_CN"); + QTranslator *m_appTranslator = nullptr; + QTranslator *m_qtTranslator = nullptr; +}; diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 53d82ce..d782180 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -1,7 +1,8 @@ #include "MainWindow.h" -#include "ExportDialog.h" +#include "LanguageManager.h" #include "MarkdownEditor.h" +#include "MarkdownRenderer.h" #include "ThemeManager.h" #include @@ -21,7 +22,10 @@ #include #include #include +#include +#include #include +#include #include #include #include @@ -83,6 +87,49 @@ int main() --- )VOILETMARK"; +const char kWelcomeTextEn[] = R"VOILETMARK( +# Welcome to VoiletMark + +A lightweight cross-platform Markdown editor built with **Qt 5** and C++. + +## Quick start + +- `Ctrl+O` opens a file, `Ctrl+S` saves, `Ctrl+Shift+S` saves as +- Drag a Markdown file into the window to open it +- `Ctrl+1` – `Ctrl+6` set heading levels, `Ctrl+/` wraps a code block +- `Ctrl+E` exports the document to PDF (A4) + +## Modes + +The default view is the editor: Markdown markers are hidden, headings are sized, +and the line under the cursor reveals its raw markers. +Click `` in the status bar to see the source with line numbers. + +## Theme + +Follows the system light / dark setting by default; +switch it under **View → Theme**. + +> Quotes, lists, `inline code`, **bold**, *italic*, ~~strikethrough~~ +> and [links](https://example.com) all render in place. + +- [x] Syntax highlighting +- [x] Folder sidebar +- [x] PDF export + +```cpp +#include + +int main() +{ + std::printf("Hello, VoiletMark!\n"); + return 0; +} +``` + +--- +)VOILETMARK"; + } // namespace MainWindow::MainWindow(QWidget *parent) @@ -109,6 +156,8 @@ MainWindow::MainWindow(QWidget *parent) this, &MainWindow::changeZoom); connect(m_editor, &MarkdownEditor::fileDropped, this, &MainWindow::openPath); + connect(LanguageManager::instance(), &LanguageManager::languageChanged, + this, &MainWindow::retranslateUi); showWelcomeDocument(); updateEditActionStates(); @@ -266,40 +315,40 @@ void MainWindow::createSidebar() void MainWindow::createMenus() { - QMenu *fileMenu = menuBar()->addMenu(tr("文件")); - fileMenu->addAction(m_newAction); - fileMenu->addAction(m_openAction); - fileMenu->addAction(m_openFolderAction); - m_recentMenu = fileMenu->addMenu(tr("最近打开")); - fileMenu->addSeparator(); - fileMenu->addAction(m_saveAction); - fileMenu->addAction(m_saveAsAction); - fileMenu->addAction(m_exportPdfAction); - fileMenu->addSeparator(); - fileMenu->addAction(m_quitAction); + m_fileMenu = menuBar()->addMenu(tr("文件")); + m_fileMenu->addAction(m_newAction); + m_fileMenu->addAction(m_openAction); + m_fileMenu->addAction(m_openFolderAction); + m_recentMenu = m_fileMenu->addMenu(tr("最近打开")); + m_fileMenu->addSeparator(); + m_fileMenu->addAction(m_saveAction); + m_fileMenu->addAction(m_saveAsAction); + m_fileMenu->addAction(m_exportPdfAction); + m_fileMenu->addSeparator(); + m_fileMenu->addAction(m_quitAction); - QMenu *editMenu = menuBar()->addMenu(tr("编辑")); - editMenu->addAction(m_undoAction); - editMenu->addAction(m_redoAction); - editMenu->addSeparator(); - editMenu->addAction(m_cutAction); - editMenu->addAction(m_copyAction); - editMenu->addAction(m_pasteAction); - editMenu->addSeparator(); - editMenu->addAction(m_selectAllAction); + m_editMenu = menuBar()->addMenu(tr("编辑")); + m_editMenu->addAction(m_undoAction); + m_editMenu->addAction(m_redoAction); + m_editMenu->addSeparator(); + m_editMenu->addAction(m_cutAction); + m_editMenu->addAction(m_copyAction); + m_editMenu->addAction(m_pasteAction); + m_editMenu->addSeparator(); + m_editMenu->addAction(m_selectAllAction); - QMenu *viewMenu = menuBar()->addMenu(tr("视图")); - viewMenu->addAction(m_sidebarAction); - viewMenu->addAction(m_sourceModeAction); - viewMenu->addSeparator(); - viewMenu->addAction(m_wrapAction); - viewMenu->addSeparator(); - viewMenu->addAction(m_zoomInAction); - viewMenu->addAction(m_zoomOutAction); - viewMenu->addAction(m_zoomResetAction); - viewMenu->addSeparator(); + m_viewMenu = menuBar()->addMenu(tr("视图")); + m_viewMenu->addAction(m_sidebarAction); + m_viewMenu->addAction(m_sourceModeAction); + m_viewMenu->addSeparator(); + m_viewMenu->addAction(m_wrapAction); + m_viewMenu->addSeparator(); + m_viewMenu->addAction(m_zoomInAction); + m_viewMenu->addAction(m_zoomOutAction); + m_viewMenu->addAction(m_zoomResetAction); + m_viewMenu->addSeparator(); - QMenu *themeMenu = viewMenu->addMenu(tr("主题")); + m_themeMenu = m_viewMenu->addMenu(tr("主题")); QActionGroup *themeGroup = new QActionGroup(this); themeGroup->setExclusive(true); @@ -312,7 +361,7 @@ void MainWindow::createMenus() m_themeScheduleAction}) { action->setCheckable(true); themeGroup->addAction(action); - themeMenu->addAction(action); + m_themeMenu->addAction(action); } m_themeSystemAction->setChecked(true); @@ -325,16 +374,33 @@ void MainWindow::createMenus() connect(m_themeScheduleAction, &QAction::triggered, this, [this] { applyThemeMode(static_cast(ThemeManager::Mode::Schedule)); }); - QMenu *formatMenu = menuBar()->addMenu(tr("格式")); - QMenu *headingMenu = formatMenu->addMenu(tr("标题")); + m_languageMenu = m_viewMenu->addMenu(tr("语言")); + QActionGroup *languageGroup = new QActionGroup(this); + languageGroup->setExclusive(true); + m_languageChineseAction = + new QAction(LanguageManager::displayName(QStringLiteral("zh_CN")), this); + m_languageEnglishAction = + new QAction(LanguageManager::displayName(QStringLiteral("en")), this); + for (QAction *action : {m_languageChineseAction, m_languageEnglishAction}) { + action->setCheckable(true); + languageGroup->addAction(action); + m_languageMenu->addAction(action); + } + connect(m_languageChineseAction, &QAction::triggered, this, + [this] { applyLanguage(QStringLiteral("zh_CN")); }); + connect(m_languageEnglishAction, &QAction::triggered, this, + [this] { applyLanguage(QStringLiteral("en")); }); + + m_formatMenu = menuBar()->addMenu(tr("格式")); + m_headingMenu = m_formatMenu->addMenu(tr("标题")); for (QAction *headingAction : m_headingActions) { if (headingAction) - headingMenu->addAction(headingAction); + m_headingMenu->addAction(headingAction); } - formatMenu->addAction(m_codeBlockAction); + m_formatMenu->addAction(m_codeBlockAction); - QMenu *helpMenu = menuBar()->addMenu(tr("帮助")); - helpMenu->addAction(tr("关于 VoiletMark"), this, &MainWindow::showAbout); + m_helpMenu = menuBar()->addMenu(tr("帮助")); + m_aboutAction = m_helpMenu->addAction(tr("关于 VoiletMark"), this, &MainWindow::showAbout); } void MainWindow::createStatusBar() @@ -446,9 +512,11 @@ QString MainWindow::startDirectory() const void MainWindow::showWelcomeDocument() { - QString text = QString::fromUtf8(kWelcomeText); + const bool english = LanguageManager::instance()->language() == QLatin1String("en"); + QString text = QString::fromUtf8(english ? kWelcomeTextEn : kWelcomeText); if (text.startsWith(QLatin1Char('\n'))) text.remove(0, 1); + m_welcomeText = text; m_editor->setPlainText(text); m_editor->applyBlockRhythm(); m_editor->document()->setModified(false); @@ -544,8 +612,37 @@ bool MainWindow::saveFileAs() void MainWindow::exportPdf() { - ExportDialog dialog(m_editor->toPlainText(), displayName(), startDirectory(), this); - dialog.exec(); + QString suggested = m_currentPath.isEmpty() ? tr("未命名") + : QFileInfo(m_currentPath).completeBaseName(); + suggested += QStringLiteral(".pdf"); + + QString target = QFileDialog::getSaveFileName( + this, tr("导出 PDF"), QDir(startDirectory()).filePath(suggested), + tr("PDF 文件 (*.pdf)")); + if (target.isEmpty()) + return; + if (!target.endsWith(QStringLiteral(".pdf"), Qt::CaseInsensitive)) + target += QStringLiteral(".pdf"); + + QTextDocument document; + MarkdownRenderer::render(m_editor->toPlainText(), &document); + document.setPageSize(QSizeF(672.76, 1001.57)); + + QPrinter printer(QPrinter::HighResolution); + printer.setOutputFormat(QPrinter::PdfFormat); + printer.setOutputFileName(target); + printer.setPageSize(QPageSize(QPageSize::A4)); + printer.setPageMargins(QMarginsF(16, 16, 16, 16), QPageLayout::Millimeter); + printer.setDocName(QFileInfo(target).completeBaseName()); + document.print(&printer); + + if (!QFileInfo::exists(target) || QFileInfo(target).size() <= 0) { + QMessageBox::warning(this, tr("导出失败"), + tr("没能写出「%1」,换个位置再试一次。") + .arg(QDir::toNativeSeparators(target))); + return; + } + statusBar()->showMessage(tr("已导出 %1").arg(QDir::toNativeSeparators(target)), 4000); } bool MainWindow::writeToFile(const QString &path) @@ -667,6 +764,83 @@ void MainWindow::applyThemeMode(int mode) ThemeManager::instance()->setMode(static_cast(mode), true); } +void MainWindow::applyLanguage(const QString &code) +{ + LanguageManager::instance()->setLanguage(code); +} + +void MainWindow::retranslateUi() +{ + m_fileMenu->setTitle(tr("文件")); + m_editMenu->setTitle(tr("编辑")); + m_viewMenu->setTitle(tr("视图")); + m_formatMenu->setTitle(tr("格式")); + m_helpMenu->setTitle(tr("帮助")); + m_recentMenu->setTitle(tr("最近打开")); + m_themeMenu->setTitle(tr("主题")); + m_headingMenu->setTitle(tr("标题")); + m_languageMenu->setTitle(tr("语言")); + + m_newAction->setText(tr("新建")); + m_openAction->setText(tr("打开…")); + m_openFolderAction->setText(tr("打开文件夹…")); + m_saveAction->setText(tr("保存")); + m_saveAsAction->setText(tr("另存为…")); + m_exportPdfAction->setText(tr("导出 PDF…")); + m_quitAction->setText(tr("退出")); + + m_undoAction->setText(tr("撤销")); + m_redoAction->setText(tr("重做")); + m_cutAction->setText(tr("剪切")); + m_copyAction->setText(tr("复制")); + m_pasteAction->setText(tr("粘贴")); + m_selectAllAction->setText(tr("全选")); + + m_sidebarAction->setText(tr("侧栏")); + m_sourceModeAction->setText(tr("源代码模式")); + m_wrapAction->setText(tr("自动换行")); + m_zoomInAction->setText(tr("放大")); + m_zoomOutAction->setText(tr("缩小")); + m_zoomResetAction->setText(tr("实际大小")); + + m_themeSystemAction->setText(ThemeManager::modeLabel(ThemeManager::Mode::System)); + m_themeLightAction->setText(ThemeManager::modeLabel(ThemeManager::Mode::Light)); + m_themeDarkAction->setText(ThemeManager::modeLabel(ThemeManager::Mode::Dark)); + m_themeScheduleAction->setText(ThemeManager::modeLabel(ThemeManager::Mode::Schedule)); + m_themeScheduleAction->setToolTip(tr("6:00–18:00 使用浅色,其余时间使用深色")); + + for (int level = 1; level <= 6; ++level) { + if (m_headingActions[level - 1]) + m_headingActions[level - 1]->setText(tr("标题 %1").arg(level)); + } + m_codeBlockAction->setText(tr("代码块")); + m_aboutAction->setText(tr("关于 VoiletMark")); + + if (m_sidebarButton) { + m_sidebarButton->setText(tr("侧栏")); + m_sidebarButton->setToolTip(tr("显示 / 隐藏文件夹侧栏(Ctrl+B)")); + } + if (m_sourceButton) + m_sourceButton->setToolTip(tr("源代码模式:关闭语法高亮与行号(Ctrl+Shift+M)")); + + const QString language = LanguageManager::instance()->language(); + m_languageChineseAction->setChecked(language == QLatin1String("zh_CN")); + m_languageEnglishAction->setChecked(language == QLatin1String("en")); + + // 侧栏、最近打开、欢迎文档都跟着换 + m_displayedFolder.clear(); + refreshRecentMenu(); + refreshFolder(); + + if (m_currentPath.isEmpty() && !m_editor->document()->isModified() + && m_editor->toPlainText() == m_welcomeText) { + showWelcomeDocument(); + } + + updateWindowTitle(); + updateStatusBar(); +} + void MainWindow::showAbout() { QMessageBox box(this); diff --git a/src/MainWindow.h b/src/MainWindow.h index 361c68d..2dc98b3 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -62,6 +62,8 @@ private: void resetZoom(); void setWordWrapEnabled(bool enabled); void applyThemeMode(int mode); + void applyLanguage(const QString &code); + void retranslateUi(); void showAbout(); void updateStatusBar(); @@ -120,4 +122,18 @@ private: QAction *m_headingActions[6] = {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}; QMenu *m_recentMenu = nullptr; + QMenu *m_fileMenu = nullptr; + QMenu *m_editMenu = nullptr; + QMenu *m_viewMenu = nullptr; + QMenu *m_formatMenu = nullptr; + QMenu *m_helpMenu = nullptr; + QMenu *m_themeMenu = nullptr; + QMenu *m_headingMenu = nullptr; + QMenu *m_languageMenu = nullptr; + + QAction *m_aboutAction = nullptr; + QAction *m_languageChineseAction = nullptr; + QAction *m_languageEnglishAction = nullptr; + + QString m_welcomeText; }; diff --git a/src/main.cpp b/src/main.cpp index c80aa85..ae4585b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,3 +1,4 @@ +#include "LanguageManager.h" #include "MainWindow.h" #include "ThemeManager.h" @@ -51,6 +52,7 @@ int main(int argc, char *argv[]) mode = ThemeManager::Mode::System; } ThemeManager::instance()->initialize(mode, false); + LanguageManager::instance()->initialize(); MainWindow window; window.show(); diff --git a/translations/qtbase_zh_CN.qm b/translations/qtbase_zh_CN.qm new file mode 100644 index 0000000000000000000000000000000000000000..ba2273c772829b0d276655c5d1147de82df3398e GIT binary patch literal 136673 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

*;bj@%}te@27if(Wjtc# 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

S+X9 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 literal 0 HcmV?d00001 diff --git a/translations/voiletmark_en.qm b/translations/voiletmark_en.qm new file mode 100644 index 0000000000000000000000000000000000000000..5632f978bf80785ecbb7680524cf72da44841447 GIT binary patch literal 6232 zcmb_gdr(y86+a*>yX(qTL`O5m-WafoDX(`aP1wzCg>YV03w zW#D~5?58=b@1xi+x?qRxkR|Sj4R)=xEPe(2(kGVBcK?Vd=AUt2WKV~l{J1Ym{{*^E ztx>Wce%`gF{1x_DFIhiZ{Q&gIwwPZR!*7?}a`1OV2|oMJ3)+Co5A0v1fnVAdLIq?rNuK}kG@ei)d$NjzdZ#EU;eo&&1eE6-CqVB#9 zJ-?7*j`f3Yl4RTD!S7p=Ef4onw`99kg!^8}aV{HvO_wI$dQGJ>FFrGZ{1SfVNa@*Sz_(nQziu1uYorBk$WQ2#7F~xMlMexusj=g5 zIgRAtCz&#El}AOCOBGaU#Y?i_-!9`XIYU;?w7@m8ugWbhTVGt3@2rku0W-%4sH6fa z!G9jP@SSgnnZ#n0OML-%{Uf9$5u34rQfMQ|aw25skdulvi7r~DnYPuCnV6ihA!Va{ z+ubDRIEzaPT&r>`wu+3*ryoMd7Wn3Z$U^w%q*7eXr$v;GkBsL|d}q+Y;FD)?m#?eS z-WI_b8GHp)smX9c3Uletnet7;tnbcWl%9Uuy+30ier50QRbNw=`azAqzHek`w^DP_ zJKUzWTnw~a2)?>>4zEOJ|CzF&;8|KCLILU-t1LZ#(e9He z6W6(rk&oZyG!LH)S`e0DKvj`d^z4#w?2s8*X?T)VzQo(__V#!ChX(_-9$))T|D`VF z@_EH`R^}KZ`O0M9&;kFIy-Hix9ruo`v~p%r4i9(-_Q-2oa&o5Z?cXCWpEoaKfvmp2 zQyClxl8JymDsa9~bC2UK(;OsZDnMd)^ee8BttO~K??ce(_e?RD7UQ!HV7{S&^RQf( z_C}{$3P?+!Wh~WP1G4o70P2BS@8CswPD*NNzKpLBFnrGd;dg8P+{KGQrye{VrgpvI z;-~d)^ZLe=t7yW2-oPIhLO{iU2RIu@lafq&U5|?$47?RlQTtjuY}!t z->!gc?%J{zkUV(8Pq?46-lAY@3)@f(zAYv@QVk2_(H3CgQapQoO@{+bZT{X~^i+`{ z7B~#>3?UY!zFVoQ6_Iih==sj5hsO?^;yHor_4W^lxF(L~l4l#L90uQQ_X!cJRSQPB zX}z{6oefIeMG^5-*u;}e6>Q|T%nAEbQ)M`mp7#T7HA?46<*YDa6X^wX_i`;59CWP( z8OGX`-XW!SKt{I_YZow^e4P+xkKpVRW7MyJANn*Ep3EG&6g{`ZW`sh->7!3d7(EOx z92o2Lo`UsTBw)rUEA%WBiwQa;7GtFswR$c$G+UJZ9_5`=BArQ;4cH5`dU$xUS)rp~ z2%4(a?^lN0;o(B>{UX8kkYH0FY&v^{AWRK$0KFB+1a1QbrhX^s+`3Ao^Rh_mG_eem z4GCkUL@*{(*o*RDRw+K*j~>yDR8OOKpz|@ik(FKr`j{pSlr8GM&Onn}JqV70j8GACSq+O5)sc15tIDXKDZc84pT%-Xg(QS{BQ5tCqEvr4qlGO}kH-o$BO(-NhCyWE zYIMgUgs>X$rs1Dg8GSGaZIgJf5lnu(uMED|7JuB&frl=vQYF|eEHlkwDQfE#U*~|F zCI{LZ{Vg5?QLi>8j11K+cU6?kTQ)KzT+FA@E5JBUYXzL#LAXpyjYB=?_Fvtr`zP{j zqL#@n*z1CI=3T7~W0taaSZQn!@y$SZd0RQ!Z>QdujG!k#h8f!k9Uxxoez|~DTdWOs zi+ZFs;&8?d(_n!m=C*Cq86)&;J)L=Hh+U#t*^n|MT}v4$He>6k zp6-Y+n()BNG2{)LtQ`wrLvQ%!Q2T3qrv{X|7Jo;VD5O)7sV)O254^gvY#!qHgn`c(xQzJZBD|>&4QrtdHoqx@OFUXuAz+&| zEcJbBxTLr^iy_g4@>*poujj^CjOh|XZJ_0hzxNEf}fQ_uIG+@-vCMMOLiiaE$z;ASqqO<*E8{x0E4nkuYA9{#xzJYsS8 z_YNwa1EI?LFIx>Oj(Ye2$b^2t?M7va{IF^*c+?~isBKWTw~L4!SO~Z$Fy5vOITBB8 z-+`sg-*Z+OZjO+6vxCf{)2u?6%avbg5<7#%_H|&tJa+VppdbOY%V(rK#PWvDyckI8 z?t1Kx)SeIYjAHNN)?{yfy&%t}ot4_d$B^Mn*G~o?qP60zLOWzKQ5pw@qoh6&96Y#n m^4hx=ja4f>Dm8c={!51g?H=FxLEoUZ?KdRU!N};SsQ&=;7CveK literal 0 HcmV?d00001 diff --git a/translations/voiletmark_en.ts b/translations/voiletmark_en.ts new file mode 100644 index 0000000..35e7dca --- /dev/null +++ b/translations/voiletmark_en.ts @@ -0,0 +1,395 @@ + + + + MainWindow + + + + 新建 + New + + + + + 打开… + Open… + + + + + 保存 + Save + + + + + 另存为… + Save As… + + + + + 导出 PDF… + Export PDF… + + + + + 退出 + Quit + + + + + 撤销 + Undo + + + + + 重做 + Redo + + + + + 剪切 + Cut + + + + + 复制 + Copy + + + + + 粘贴 + Paste + + + + + 全选 + Select All + + + + + 自动换行 + Word Wrap + + + + + 放大 + Zoom In + + + + + 缩小 + Zoom Out + + + + + 实际大小 + Actual Size + + + + + 打开文件夹… + Open Folder… + + + + + + + 侧栏 + Sidebar + + + + + 源代码模式 + Source Mode + + + + + 代码块 + Code Block + + + + + 标题 %1 + Heading %1 + + + + 文件夹 + Folder + + + + + 未打开文件夹 + No folder open + + + + + 文件 + File + + + + + 最近打开 + Recent Files + + + + + 编辑 + Edit + + + + + 视图 + View + + + + + 主题 + Theme + + + + + 6:00–18:00 使用浅色,其余时间使用深色 + Light from 6:00 to 18:00, dark the rest of the day + + + + + 语言 + Language + + + + + 格式 + Format + + + + + 标题 + Heading + + + + + 帮助 + Help + + + + + + 关于 VoiletMark + About VoiletMark + + + + + 显示 / 隐藏文件夹侧栏(Ctrl+B) + Show / hide the folder sidebar (Ctrl+B) + + + + + 源代码模式:关闭语法高亮与行号(Ctrl+Shift+M) + Source mode: turn off highlighting and line numbers (Ctrl+Shift+M) + + + + + 未命名 + Untitled + + + + 打开 Markdown 文件 + Open Markdown File + + + + Markdown 文件 (*.md *.markdown *.mdown *.mkd);;文本文件 (*.txt);;所有文件 (*) + Markdown files (*.md *.markdown *.mdown *.mkd);;Text files (*.txt);;All files (*) + + + + 无法打开文件 + Cannot Open File + + + + 读取「%1」失败:%2 + Could not read "%1": %2 + + + + 另存为 + Save As + + + + Markdown 文件 (*.md);;文本文件 (*.txt);;所有文件 (*) + Markdown files (*.md);;Text files (*.txt);;All files (*) + + + + 导出 PDF + Export PDF + + + + PDF 文件 (*.pdf) + PDF files (*.pdf) + + + + 导出失败 + Export Failed + + + + 没能写出「%1」,换个位置再试一次。 + Could not write "%1". Try another location. + + + + 已导出 %1 + Exported to %1 + + + + + + 无法保存文件 + Cannot Save File + + + + 写入「%1」失败:%2 + Could not write "%1": %2 + + + + 写入「%1」时发生错误。 + An error occurred while writing "%1". + + + + 提交「%1」失败:%2 + Could not commit "%1": %2 + + + + 已保存 %1 + Saved to %1 + + + + VoiletMark + VoiletMark + + + + 「%1」有未保存的修改,是否保存? + "%1" has unsaved changes. Save them? + + + + %1[*] — VoiletMark + %1[*] — VoiletMark + + + + 行 %1,列 %2 + Line %1, Col %2 + + + + 已选 %1 字 + %1 selected + + + + %1 字 + %1 chars + + + + <h3>VoiletMark %1</h3><p>一个轻量的跨平台 Markdown 编辑器。</p><p>基于 Qt %2 与 C++17 构建。</p> + <h3>VoiletMark %1</h3><p>A lightweight cross-platform Markdown editor.</p><p>Built with Qt %2 and C++17.</p> + + + + (暂无记录) + (none) + + + + 清空列表 + Clear List + + + + 打开文件夹 + Open Folder + + + + 文件 → 打开文件夹… + File → Open Folder… + + + + (没有 Markdown 文件) + (no Markdown files) + + + + QObject + + + 浅色 + Light + + + + 深色 + Dark + + + + 按时段自动 + Scheduled + + + + 跟随系统 + Follow System + + + \ No newline at end of file