diff --git a/app/globals.css b/app/globals.css
index 3332aa78..b96ab4c9 100644
--- a/app/globals.css
+++ b/app/globals.css
@@ -62,7 +62,7 @@
--shadow-md: 1.2px 2.5px 2.7px -1.8px rgba(var(--primary), 0.1),
5.6px 11.6px 12.5px -3.5px rgba(var(--primary), 0.15);
- --font-sans: var(--theme-font, var(--font-quattro));
+ --font-sans: var(--font-quattro);
--font-serif: Garamond;
}
@@ -158,13 +158,6 @@
}
/* START FONT STYLING */
- h1,
- h2,
- h3,
- h4 {
- font-family: var(--theme-heading-font, var(--theme-font));
- }
-
h1 {
@apply text-2xl;
@apply font-bold;
@@ -200,10 +193,6 @@
@apply hover:underline;
}
- pre {
- font-family: var(--theme-font, --font-quattro);
- }
-
p {
font-size: inherit;
}
@@ -212,6 +201,22 @@
@apply text-tertiary;
@apply italic;
}
+
+ /* Scope custom fonts to document content only (not sidebar/UI chrome) */
+ .pageScrollWrapper {
+ font-family: var(--theme-font, var(--font-quattro));
+ }
+
+ .pageScrollWrapper h1,
+ .pageScrollWrapper h2,
+ .pageScrollWrapper h3,
+ .pageScrollWrapper h4 {
+ font-family: var(--theme-heading-font, var(--theme-font, var(--font-quattro)));
+ }
+
+ .pageScrollWrapper pre {
+ font-family: var(--theme-font, var(--font-quattro));
+ }
/*END FONT STYLING*/
/* START GLOBAL STYLING */
diff --git a/components/Blocks/TextBlock/index.tsx b/components/Blocks/TextBlock/index.tsx
index fc79c101..dd59b2eb 100644
--- a/components/Blocks/TextBlock/index.tsx
+++ b/components/Blocks/TextBlock/index.tsx
@@ -266,7 +266,7 @@ export function BaseTextBlock(props: BlockProps & { className?: string }) {
// unless we break *only* on urls, this is better than tailwind 'break-all'
// b/c break-all can cause breaks in the middle of words, but break-word still
// forces break if a single text string (e.g. a url) spans more than a full line
- style={{ wordBreak: "break-word" }}
+ style={{ wordBreak: "break-word", fontFamily: props.type === "heading" ? "var(--theme-heading-font)" : "var(--theme-font)" }}
className={`
${alignmentClass}
grow resize-none align-top whitespace-pre-wrap bg-transparent
diff --git a/components/FontLoader.tsx b/components/FontLoader.tsx
index 369616ca..00e1f1bb 100644
--- a/components/FontLoader.tsx
+++ b/components/FontLoader.tsx
@@ -54,11 +54,9 @@ export function FontLoader({ headingFontId, bodyFontId }: FontLoaderProps) {
const headingFontValue = getFontFamilyValue(headingFont);
const bodyFontValue = getFontFamilyValue(bodyFont);
- // Generate CSS that sets the font family via CSS variables
- // --theme-font is used for body text (keeps backwards compatibility)
- // --theme-heading-font is used for headings
+ // Set font CSS variables scoped to .leafletWrapper so they don't affect app UI
const fontVariableCSS = `
-:root {
+.leafletWrapper {
--theme-heading-font: ${headingFontValue};
--theme-font: ${bodyFontValue};
}
diff --git a/components/ThemeManager/Pickers/PageThemePickers.tsx b/components/ThemeManager/Pickers/PageThemePickers.tsx
index 177ab904..fd70976a 100644
--- a/components/ThemeManager/Pickers/PageThemePickers.tsx
+++ b/components/ThemeManager/Pickers/PageThemePickers.tsx
@@ -21,6 +21,7 @@ import { pickers, setColorAttribute } from "../ThemeSetter";
import { ImageInput, ImageSettings } from "./ImagePicker";
import { ColorPicker, thumbStyle } from "./ColorPicker";
+import { FontPicker } from "./TextPickers";
import { BlockImageSmall } from "components/Icons/BlockImageSmall";
import { Replicache } from "replicache";
import { CanvasBackgroundPattern } from "components/Canvas";
@@ -31,6 +32,7 @@ export const PageThemePickers = (props: {
entityID: string;
openPicker: pickers;
setOpenPicker: (thisPicker: pickers) => void;
+ home?: boolean;
}) => {
let { rep } = useReplicache();
let set = useMemo(() => {
@@ -57,6 +59,12 @@ export const PageThemePickers = (props: {
openPicker={props.openPicker}
setOpenPicker={props.setOpenPicker}
/>
+ {!props.home && (
+ <>
+
#a?!L(%FKf3-?_aT*TRnKDBlj-?8ka}tIzxEvNn0II%2v%c5C;BvyVO< zwK;Hi%IDV=8$Fq&XRuDL-<|U`$5Cfurf-wU6Q)fjWl?AB&hT1r3#%2gewI-@WRN_i z pyy)*W3F z8y9aR%jy1aL(!zyVn=GX3TvMiSJO7Q6!quuE#b2rFaId#t#iJ<*Fi`>bamARj-&g3 zFP9RZFFtAg)g1p`uZ5SjL{H7%%V&C)Ta+i`ulS?nU(dg+_g~A#+%= GPSs3l&-PpSQ!?b2^-*sC~a+-X*c2DwZ z)>?D-&T5bQEjKNBuU+H+#SzTq5HLw!_5#z4k5j6a*t|Wl=-s5x$<2DPu|AoTL%%TG zI~F}Vz{_#Qi)#;G=}$Y@cJ|Y1k&K<&>I7zOiVk}o`RQz}qKu+Y@cg15_h06&KX5$q zKd;HJ%rNnE*(C &+J=%mDeICZeUmLU^{-Lh+X06!5^zh$FcYI$LJqek*OQ&nq%urqXd)u3moae=Q zWydop?VQBv^5I?1%-c#`>S=rS- x24i&MvZZIBc~ci$!ongrd*?{*MtRW_R}6C*0MKTd^_w>C4G))P3dMU$!RPot#^K zOYXR#r^l)_`@XX7lq~7+*KllkwZ7$H>-nGWI-QP4$Oo#w)X7_wUKy%3Z_2dIk{nmw z9*I({`>^$ZpXtA4@wwOMZjZ__TOd?z8`*dI|Gy0hp9?myc$fG+j_5e j!+}N#p?s#ew_x&|u`(!>kr8O1)Xn6BOD}pyWB5|ha zo`}4#+Z*hByUc#w4mxdnSXyRs`K#44Ro7?hva2NesAyb1UhE>3YAbk?V?STWZ39nT z0nz74QLaA4daO)6EfX$J)|e{I7yJE27^{fxs>^Dx?tI Z8ef5{uE}gyW zq{)N@=WFY(HrgnC;+B4YYTKfJ3VU_=e{7g?n!(rh4nK2~tPW$;Tpwp!y{G0((UnhT zSjv *!_I93C-krIb zSx)|CD$kW|Q`XKp@K*1=*Ns=oB?@mH3zv0tCn;Jx)*V$$Y|OVV;|Q6+lJPG5+N*=V zcXH4Dm8hxw*EalQ)G7WjvtFT6wi-L>4Xmn%`u~3nS-K(Kf6cNOsmRauN27dueonLR ziJH99Nl%)sZsLiYf8z3?P50xYsxl@WeX77-d3}l0zLXw&l>jk|&F@;RoUK`>t5;NU za8HyoySc)zI7X0V-n8q+HojNi>-r>x-R0f $CpL6V0dl zU*_NSTJCMOpZAi)wT8FPRazTZbu8{j*_vOy#P;LW{V)61@w>96J4#L{vxsYwoLBa; zdsEQ-E27z_8sCN-J?`XZ%AfMy@-5^1sBYQFV@02@T+r$jabh)kZu(buXNN1-uZKKg zUSfjb{=2<2uC6|HDAKhh$K{p3k6%HPq0Y%ildfEmeOSOP%OA6#rR3hl)VI%7OgZIW z{oB0H_6dvIiG%fd-Y?%@Sy^ZiIj8RUJ_~V1y%R6@|EjV4?H|6lRb=|3Ae*PfM-sQT z8Z)?QM=|aZ@Lj#+N@S|-aovR_@n7GVTv+(v=M<)-%pdFukE-+EcVO#(D3~T8H$fa}?V2|3vINQ~G1} zQE{sPzD34cDp`$sE}SxNnOpU3snm?uNvgVTGd=|`mbi2@^HXK3Wc0m9uMYTjH%yt6 z7I(_v^+MrOw!Pj;citHAp3X2l<-2Y- o5*#e2I6IsCIiS0?P-E7SkZY;hM=jrdE;uW*+vxV c*R{%b#Qg*1c0X!%(QcF06y+AJap2))T9{dIjg%F7B}TUATC~ zt&P3`8>FJyjvsdL?CA>pexubz%iJPvX+`#GuENx`UN^=0Y%cpQEM7XJ$}7b8X!6z2 znr$K4k3PLOcHKFJ*JO3O`zH&-7Ht!+pHHT@r@s8V@74Tl$8YVf@^ 62Ep0!=X2^0@bO)Wd=xmLA%(RvOQ*r?&52)& zyT1i&vJT|^aH9C(&Gu{tJC?)sdTSNM;vU{#sg=0rS&~iBu5DWzMYsLWJNThjTmRiP ztyz8AvEuhw|8$>?I(lAmzO3r+$&)2262;T|YBE;*Nq_2aSjf<*Ibuox&;0g>POFSr z7G7$;WxeB`f78nO{qO9Lz1w!SpuY1$hp6L&;sZ=sKXS8q_4fS#?XXvL?SjwV=30rL zQp#;C?{qHOI43kzlllJ4YyNg8H~ZJ8eGJaJHvPTTgYFGnVX3u;6C9HiJ^AG -@s#%-VA_)}Yi#V@`pNQe)wmHNVblI!-H zX7eDA-}B?ne|U6bdq=fk*q X-hTmArad@X-*-e?m*&$Mx5n3vySVaZ}NFX||f>(={ia(87-$ ztGDWgWi!9c>Glwx)$>gKXqDji-wQ8Wy|b!{{ mxHGY%U3zd1VO-E#9AchTkoJ0k`?1Q~x_VIe#BNe(b^P-)Z_c z1B0UD7 w`-cq|{=1R3_HEXhfaO<{itp}J`*7^T?u8uo;R Gc}X;{tsFD^?i8E@u2l;YQG-~s>g1-TvaWz(X01t z_M`k=E-A-d*_l3`xum!6y;9xh)AL?(onZO8WZSD|{^d4>Nglj=czzt{*N+9c7#C#v_11II2Pb{S%A8h6e5hQ{SF*sn&1;ugf+CZ2;g+D- z|2tSp^qqDut?QgM`8Aip9;xo{XZ@uPFiLLYXK;%B?0jX7yM@Q1GWY*np{F?+4>bqW zWz?6&Kj)hBd)G3Cv&}zN@oibyV1Mqf&4JD(Qio0*uz6rMX%&C8^5+I`=Y&dkMV5s| zD;eIo1}iwKvWW9nDox7QGH;ZBuJzXYo@H14mU-vT=$>fo(Nd0BI^&T@<*ZkG+@IdG z-}Pqorz-AK=LK(h+ReY5G~vH22gmc=rcbBZe^=-pT)_EhUvT6al`SPjv-m{PQhVg( z-ybu#o>1K&^E%k;Qu(c)k!>Aqz4H6seYJk~k(v2<%2`cTW! k4w+uB 5!8J%JmD99|mA0W}{-)!N%e?|Cjeaot1fiuzai{qR9#k(t? z@vdGeTYJ!NXSsxO*3vC%i&pFvW;o9G$l!ysipDxGiIs)AjDB5QXPz$d^s;n3mCUMp zX`guTT+=Ylx;d$eZw{}QIJbK9p3P2a!ACQVoR*v@-{W=n$FsWc4BV~EeUtBge77)O z??c;Hb@pw#waF(WU5{Bles3-N_e+KJ?WyIgt9E@X6sfpZ`e!e*jY r*e|nfIU5gQ6sx+zN^^Z&yC+V{w1dRQz%MyYRTrw{P5%xL$g> z?B9J;_G51|9kOP!&Nyf@G3Cv|bMIQeY@TmZb3FC3^M1W|oO9%r9_$jdXa5~3+-n<} z82D46L;UmOlkc}**D;kleCMP5oNE{5jQl@k@`zx4x5|&~U+aY1Gk` z_b++=6F;3R&S+YoZecuwE#kcYZD!ZchxO;%U3{*8fB)Lu+h-puRqa_;wclO*;rWst z`->MJ#>{*l$NqR%XvdW-wZ i%*w#GFe@`a(sTr-Ub<$gGVy={x?gxvSaqKxsI`G`Tfhj__>!n_;>e# z%IumePqNB88PzV%?~kj!w)Ii-iQ~WK*Z<*2y)r@0lF7qfXrH-`{i5nWFPHzg``z9? zLz*?eBevl0t({q$Lix6?TcdGAWWup2@6HGO)DoG^yGSfe=Wh4zC};7%x*Q8^1K!T@ ziQu*hxYD2f*JCel^Tzv`b<(L*o-NyOo>Q~t=Dn#ERcn6M#DypMe(AAZ9y;lu%B#;; zXXl50H2YF{?0Wov{gjZy{}N-J?_TNc3A%Rmn6Ia?S7i82nR^?mEbABB7{0o?^6`qQ z`RA7kp7PAzHRYww%+lAn@}6!hPgi9XI{dHr`AfQW{V$)ZH6Naa|4%+Vhbtt(b!w#M zevN0EvGGiLt@_JZf*Duc66?0Jun755|07O=hfQkDiBGv*T5q{__-&Aqdw6n-{IBIZ z)i$i!x1es>?Cg(UKR <>%OQkamo$o9cn zhl5!aW@p>~1?usKnZ2-gRejoX_wBX^l6(tRd4724&B0~j9;S1&ZJpaZUa4mdt1SL2 z^vMP$@3&L?k)E#id6z~)R15EYPWQFW%q*RrKIa3cCC;~7->AR8xtoEjO=z{vCHWb= z{Qo$=IUDe}C fby6|4ZR&hnc@Dgl8Q}aZqmC7rO1@IYxmAmuuQNqL-I^+iI64(rn(OI{BE? zmWN+dUs+s^^xHJ=>H?Wv9$lI%jeG)C67D#889Gfr#;usvwC3ElPvSdrg49kuk8)(Y z;`EsH= KX$QZihycqjL)sCH25&;i%#b$qMHMtpK7x~EZr0bVU28T}yb|i?F+TGfF zPKL8+;g*lR`%apBB)({S8yR@HbM`c$1KNp}^3x^fX6qSyd02*A`&1cmEyXV4*d2BS z;ijpJ 1f+L*;M+ViwOEC_k8(9nKkBZsFZXF=E_u1DST z9?ROLPM+F%?C! ztFxL^`CrCNouc-;vS(U!_^%*-!(OrQvj;lZW;z(BtVq(De)Y(%rw`1;{c~5c{`cl6 zUAMP#Qcld=#+r%J`PmzvJhTvGmI*%NAf)x!nP+onlb> 1F53C+9n*nEbf)abnB@Y3U;%^Cxf7F)F4fN7 zr^j=0tNZhm`kC`*-8jmlxGjBAkzc{DcvtV$n>HT%@NAaL&U4FI9=@xa#8(% c87{M0lPexBud4QwxQ>sx;KAuI(wf(*Gw| zWlqWIy){?vTy9Wwsaz;we>A;)@z*bh`A;8XS#sK}uAq2ZlK4a?zEc{D9E6svOtNhK z`1k8K@qbYkNgd}Z9 (L3F9zyFd35wC&e#TkU) &cemGkqEjXLp8f^H%naDM-;bjWtp^eX2L)SCc&ds_maw zu=gF_-_WI?bm&iqf&%xW!yO+lSqoqH6+YQGYyXGG8xyN~MfU`{uiBizweeAk$7wm= zO=3M)J5!D8u7rerkz;vq aHmruEfZA_jro!gpug ziJUIy8C58Cxaf$`eIX9*2VPTZa=iDl2fC%pPCa*c_46&-o71OWeWtMBNqL~)oG)2j z-Hn$PB_CXzJw0Xi@t@wa58m>)Z^*TH`l(}=jDjjzZrpIqdoobB|$RsJi2x;8_ZG zj0!%NVpPtCJq-!J=`FdE#n0 @$c>H>u2mM zu2R<)do+uitxr&af!(et_MehYtE8Pza$Vuc1e5k7fB*VrpLy^hCV%oH&fYUDD Jw;vvqzPNZZcT?jx+fLDmEL%ID1V2Ahx-(PWZ`F|rJQw}v zGq1joDP$wdyl{a}AM2@)%M_J+mBU{>-4r&}DskU;)knzus0-h4Z$B7@oS3%ojD| z`q9}k5qUGR-}FB_aCqwi*0t_NJcehhR |I(rd?4r-|*4(T >^8xFi???=$bBrmdv5pqyQcNgf_JUEqf&g29X+}C@m7U8R};f? zUia=y-Fy4*m#6;Q_c~{|#8>=S*;_VUF8^2ZzS4`&QXegFkxO`Iy+0#r_bs*sEMYa} zsYU0Q6guXaHU0`bmT}8oaa)`b%j8+Fn~cNt+;;unZLqMvPDQ2tajW1xX^yu38S@$f zR{3&E6u4g7At4#C(16Q}tI;${v4PcH+Q;rWJA-!arb!at>^k(nsJyM7=aitZDa|b~ zV2zou<8(v8PYZI{R`ui==o=pi=bFv*%)NiT;VOr{Au`jt7u@Ync&5b8% 4EG7#Qw{Kb`7PeOe9`xsG?f$ULV`URCuOPoG97%ems4}b_PSq> zE5CmFD}8_ehiFsIDfVf*)Q&t?Nh=C4G`gm_RekZ>*PEHmFS=FM#rcMA(A;-?ll-^f z73KyE+-C&-F626V`p}!ht32h;hqc`9%({JkM~PxZvT$R${gXM1Pd}Y6zj>>sr`OuN zLYswR>z8tU*K@miLn)u*Irm}T#iC*+?3 vM`Z>nxj*w`k z=>Lqo!;W2xnoi7eTA3YZmM@>2HcKL)Un;ln(eJH4oHL~Lc$V2$36@>1|OSbUAWKB;!#2BjPL(G1 P&gW 36p P z^_JcFWUyi3v5Pyx4(BD7-1Prkf1vv8>wWp#cGVv4tWhs{qv08{s)Z@p|HH#VxzA>2 z=dA9^tX32fnBf~@++Q5^cI7##=Gm(Sl5`{<8blluZ5Lh6TOU#B xLVxNALNqm0RBU;(@=V@~epJ{y&0}w4`HAFCFBuKEpb-P~yT=7t7A{`zxd7 zZh27W_dvXFd#1Bm%uXLy=53qqp7lSMy64CYgH* i74soKIe}Hcei~WH(>)W~oB?wH2$HlviYiu{rss?qpjn*u6l4WvAeAJ=rCP z0@ANLYE7M`wXx|ynuWo!X6aX7cS~_=m^CU|ojv2IrSs^GRYvet%dpdqhwNTx%XYoj zb9gEE g6)8 eShZswKnx;N4`$I^=^T?M(!qC6J`Ih%_k2o%R9eWa-ZE!#ro|m`?$XT z?u&~l+PQxE)AQS<%AQ^I{o7!*f4S5BH3z~HpP##UdG*F0KZ`y!UyS&|T>AUUSH`rC zIf1u!@v9aqTydSvXXNU8z#@N#wqA&)!`*EwZm)6iI>EB+QmEvg#j94iWp4Yt^r|24 z?Vs207MNyN1btb(k;i8H6+4~TIZ8pB=1Lq7410PY=%ibBa_BbY&af>X*UbLWc~r~e zv|mlPPy%bV xz)^i(^g!z=hIfE* upwLiFTyI#K_@WEG^m3u26ytw(*{r;5TPu(0FgTJj$c=}6t{b}K6w`H!x3;)af z8I|0f8!RbZbm01PdvorX?FT%$8njpDKB%opXe(frZ>-#P*hgZ;p?6Q$`JGk`s8wMz zd}8@F-g|vd7LPqIS6IKQK>MK$-`?I`6*-6TSFz{`rTHJ! X}e80tD-pJ{b z`C+4hObCmx=+eKl;;m=we;4DkJfWi5$m!0-``c?@pMPS=`s{LD@UIJTu~ViyN={i? zE^^(GvvHQts}m|~&Niv_rpX4Zj!TkCO>ccL>8fez=RN!@! c4X8*2JP7?YBPfmV$mvCxJ D%#DscJu#?__{}VGqukZIxOZ1y1#|_`qt{VlNV3k)*AIb znpaSjB}`RxXF;`zyz{-Jx#zZXZVAX?;W;AKb9dfEW%roSs>ENNcQ*vC6WF(awQfV< z*GqeD#H?GQKdIx#9j5Yj{={Qb@1MN?*}~?3YB>+L6|dRsu!C%_Z>O_wXf$UN3ySlW zIQl%`)5qo0pK@(KkQ=y)^IVn8C*N -o&VWWc{cY^JkTcEx(y5>&}*a zv+}oF{w}#3Z;<&-L^>|7s(1n)!vqzBP0W!^n@;geh}&3tW#_bqo77kj3SaMQ*`6@n zW!F+^#TC;YeNFBzJM!}QE9-Yg{fA~Y+b*4QLOj_S)xfE!?+Fogr8mJb%{XZ+9Y< zQg>=_<*~dn_g!_gHR JiC@Q4fniqzHph`Faw!p={qMEh&&FuIcIa9nbZE1mIIs0 z7GBm8k@U)4G~4mQo);ohc+%c _F9MeX1Ti@|3i&4<};%MmZ-5j$=DP; z=h12@_KR6!JwLP3JT!%uPHlV4zLb^Ox^7 t@bF%^!cSG{&djo#-m@Q{)@!rT za97{Zk c{(8%P!{C|93yF(juODEo%LBj)qBhZo39v3oZ4Z Wo)T(#_RC13Tn;1hpx_02MR3 r~SKix{9vfHcj0teVk>(s%a%xO>$4md^T`b zbF$jBS7F_(T_ruvsfz<6ByL{0 #q0dc`AS~-vOD^0JJl<%>R!Kn z%J*c^u56t)0rr~5Q4(v{M9npjNRR4cV7qZ6aKgJnWuBz}ZOoY$zGSmVZu2}bf9Y+r zgCALcGUPXI|NZ94s&n)5AANrM?>N&py`VD(0@Cu{{A|7a(Q4v^hz^%vzbQ=;g6EXA zR{EIy_v8zo?EhhRkFxfc(oarufkCUE7)@_pdwR!4%i|X2Uw?U?YCp+UGhOjx@wXM8 zJ@SUW&dWSEty{4A+zx|(e98MJy^?Y_+tGEeNXlM&{lWf5m-Yqx_A_S2)?GQ0y+7#Z z; v}PT|m#B9)8T_nbT) zZ{lPRtBzS)wMVV?-7k^;WvpT^FMmG%d&b{Yc@mda^=IpR_Ga^Dzx|;5yg$dxnG#dE z`PmikdaucGGv4fZ`ie^4mfZXun^|{kdSw3QP$pCMnRN_YRk>Rhu{NCviIe7$jGI~b z#s2@9`70+%*MIviR=#DuZS$Q4g#xP8eXS?Y=sFpF&<&ll=JoHJ&v J#ZQOXrStO2 z>DSXAU+3OeV*9XkE#r~)TgBxkFP;fFljL{kbIJW5PdMf@@XUyR<8M{HW2eosTb `la!~=II+7lVu8Z`nCc04<|IGAd0MT1 z)1o#-!|Rjhr${ZF!y>wA#q&~+XrT`d;<1bU-^z$|xwp4%mc9Ai^M-%F_xqz-F6wM= zP24Aa%9NctL*;(Fs#fK*1b45Xy%zDu+a~R}zFOW@YT>MO?v(v^^to?^J8 %Uvh@@&(PahM?Qb%_j`H9 zJ$!$mCyQfBcft91&g*(JY 8!U96q KDi4qSZ$O zrY9`1;_G!g``hxbQB=XwYaCNIYRz$rUv^rpV*-=^_Ab@>BXYlwiIj)t2-&i4obsdp zVQ_4hY-IVN8B9qgQ;nAe%AWb+Fq7xcrHNezQDG0i-(x-J;llZ3@8(>C q_=b+ vL&NP5$GYEln(e(Vv9ArAn-Rd?0(Oz|lF4M} S8Fs_;t@nmJckKFrjf?G#{>+e6VVp79WbfUj0@77sB`4j}E^2ap&)Z?6Ds^Gv z+)$Or3m?lJDmc(Cv{KvRVOeTh%*3|!^Cw1p2;AkOdE{4Vyqb6A##e5vv%2h@XPjMl zBJJ6Ql+qddHg8T`H1+&)j?&}Cl{Fcc@&aA9*%|Wu^L<^rCj6Jkv` =k@!neyaZ3c|3c6#>xGSOclQV#m$?|^R7r-6jKl7Rtn}y z_{ZOuk(_?`jfzdqzJLEG&)?0`A*5826}?~Jr2jg*I`+Q@+Ft%#Z9CzfgH*`eok0hV zGMt{*Z?V@Ty5Y?x+k0_yY93t4+f)#qJ6E}ZVUt+H8mowHb0q&+@clTjd)v7p(}$kD zBK47}@#~#JTkJZ*YokxT?RI|>=-zj|y642>IV##m_TCczD4vtNZyWQcf8t^D7arh` z-*V;UyMNDD+t-Hw%!q5QNL=yb xBixC5TkO59G`7SUhlal zGN r@Kz{d^Fe8l;cV3 z978Ux?^&G_cx#^e@snCgkNaOuJNf;~YKB7=UnX7iTz>yuLp;}lH9vgvnk0Cy {B&DUoC&w6{)yjt_7c&{r#HDX>Vmx zRxfH2{&2q`PiA%REZ)xZ-w*lSNL^)m)!zE@TJ~7!Me?S%zHh$Ow<={rQ~&1Xj2(-7 zFDp&`_}`fQ?u*C2&!6?5fB&oQ2gdK3H+wjiRhfw&Z#}X@F-g;^ZXtJUnBwH+OLfo5 zpA5Ozy0o&mwAktXdrP-Rs?n3xYLx{JKZ#Z7)C(;>u!Pr`JF$A(WSN6HnrU|zuekq` zUu}w9#?y0W=K7j?)NF8Geg0R5m6v&{wdiREhgC0%7cF?wb$b2z9Ri>0&GXJJXg_Er zx7^$*`rs}Zr<`^Bl(>x@-%T{oyI$)uqa~2by>-!qRVBMZ%=(T7SI*!+WSp&g=}!6P zovz%A!gj04 zx)W3%+z#0zK0z$= h_VD$?IGrifj z-%VZj?nk6l0Z*RsN&iVxOXp3!GD+XIL(RwSgh{%Wy2;Kr60(J_i ^ZcZ_IGHZfIdUQ00_>a0-rHPUZOBsTNjGr%merU@Qaow56tL9vq8j&sY zIwy-~hSAcrfNe6Dr9@XU)criextaCJb>WL9+mvo^f4XPpDgAEEXLgK=yz}OE7h3ET zln}Z%)%mbUe$P_Lm**O!U#IguRru5#*g7*R)A+W$PmX#bo6##R%lQ{`ZKqv0HZA33 zzEwcchV+BN4GbFnm;Fw@{eK{Ozh+w{XTvX@#U%_4>eusrZ#2(8KlA7s_rd@MhX?9a z*KdlyEBhaR@11-3(zrM8ufFS@yJvFAwV9jeE?Zop>+Z8N|NoEqO6xgU9nQ!vvv7Z$ z<4~?srI^p=C3&}PWBGjRt=lbE24$G(1(>ukopQH(?RI{C*ix7I&-$Nlz9`-FPr9_9FVL0md>ZV`{wnw^H9 z6BsT1^;I`WC6 =BjFxpF6$Z&1$`U z_;vO6-V>IpbK7Tx-u7Mi@yo)eVm~kJUaxaAzTY-> 9uY7DNHQ1Ioby+}Cnk?NH+K807hZmt6%s2ed4QWpYbcZXp?K6N?Oq3g-x!Sc6S!V9x%36ow7gd zuEDLf>+DvU6+F}bdy6?M$Xne~XGSB7-2+F7SqX*`mwC-MoT@11k*)h$IFlhHZC*&& z>0p*0dcK_Yp9M9KKWyT0Hsy~z$o^sZ=FLooYvLM(!W0b_ecF5A(L`pZ*`8*cGJ2eE z)y$NZ>=kg3Xmm(;?B00jM75MMNArQE&cjU7Vr85%5<8q99P-+Ipm|=$f%b;!S^|d| zo5WgVSQJ%OG;!Em3KezcI&gc5q4$ ?$CCpczp0LlE!+H6pFHxQ=E=~T)zSUPt z@$H?(*CniX-Ie0Emp1#pUGmD|v==8*|2=b3^o(J2zGK!su}9_93oVBzsf#7uJx0NS zk~iCT^SnMcB~j5t#a*(r>r+&u5yuM41^fn#T9@;?PR1k!#HP*vcD?9`P~ox=j&$B7 zj}%^e*IdmpP~~trTl(q-r@3|DEMLo7{Y@PmT^}}h%$_j!hmz6snA`r5NqoX=OHGfy z&d}X9C2pCgVtegz9m7TO;+7_X-e*s{h3I+}ZCq(6?xS?<(Az0iMP^f0_vl=edv}HF zUH%lW*%8ZK7nWzYKAa!8NTSO5#otANLGRy`H>}<6RCuwX-}CDZum6ItR6Yq;$KJd0 zu4~_tlqdHJ&z72hIlt$ASmM#$2k#YoFXIorncKfmPr~hcx6YFPCt@T2rJERgKl|VM zx#{aeuX?-piu|9RnI3wcUMIG4O_kvrao311lEJ;RPt^DbpJO`olU2g*>|~*3I-Boo zu`IS#z2q8rNh(KV^+m7Mx+d{qev|inzNNDJyq3?77IxW+XEWpuZkpHo_aFa!jtwmw z?Ngk$E`R%+(Ott;+xp1rbN>xH>~^>3ZawR{d;{l~z_gV|!y?v&Y&5J3dBl>pWrIg; zi@@&(i ByX`9oMbk#`1gDn3ZhwbvH7xh^C_`YMW{$6f96IbiL|FRQa{n;O9 zo@kb^l}}uOH)V~2O5ftCZC)<_N+$$Q`}GLkVrTQ|G?{0nR^L?}V(*4;sek)Y#Jw2UX v)IOfFYv m+O7@-fHtkK9GL S_$FO!_f`99-W*?v`>l7cdw!H3u-7F{v=O$FL}{w%f3`tMIT# z$EXJ?&$bRRyKBbq>{Xej^~;nyk9Nu~sY*-FF+0@O%Y0yV-Sap9?bTPF2t4^?$y~k- z_5wOaEZs`RQf+gc`manYSUNFN(V)oU;&&^*?{}= S0=+7`8n9=kBI$_C~Hrx<5{Fv%9NL4qtW5SKsH`-@9}9TM{_VUp#kF@mErU z!wmcIMOxvEWx+Nry@$U}ZeQ_kwfMx)$g?ly3Vr7+nK$+PgU%xp{~Vv3_jk`--)JYH zX}+pz-rRvJ4IMHR6I}cZ<*mzRZB6EX#Cgqab4lOgn?E+1 C@ z)mz(suZV5xzp*}bnJv@TR_lcffkrPUyR-Bz-CV61ePyd@o65!>?WTYJE$a(4VnioQ zXxNogJ>hEGMb}rS)0W+lmMiAa&CY3kUNQIE|6~D4mI@YzZBK9by*a?#GOa!^Z{4;v zbw_m>bd$vl+|AzpekCUm@u1cDfWn^cM-%smw|%Lv5 U2?J z_qumNk-zl7``TUk#=AL z)(zIo&zR4!D$Jg+{`;2A``@gpi42Rpx%pRk=&^fy fp7Oi zM-7I?i2XV7;iY1CAAVQ(CCDjsX7=Gi+ur{tvp&^*`;v0{!if~6BQyRkGfdS~dQ`go z>hH6wvL+u_-+WzWt8Z{^K#P+Kiy)_x(5B<}3#ysd{E^(?`8Bz)iS nbHvT_+Q(zhwf9R^u5==k&n4Vl#IM2G1H(}O)W>$^} zp8vUjzxa3k(Z6^5?{(FW`^{dje%`Wr{mkp~Ddy{ RNi30FI(Mf&JjqurQl_7+mhG35 zvMp 1X)F7WmsY>| zs#aa9xwlGdZ{NKsTUMo(YVN69{Cio_SF2U#CujS96I=L9DI+ZL_GM4`s`q~mZSlTs zH~D_@mBc$|Q_REf{*kxp`M&jq{!jk(7wtdQEpu_wQ+&epi0hTtGtRS9PjXcD{4Ksx z%=xp&Xy^UPJMD`$y1qUos;wP+ZCT069-}vB|9x7yuSRux_?lZ6vXoc#uJVf9x^dql z?bVs7XVbegOFh%GE%!@bd-nL(+vehnM=zE()reO-USPh!oXNh;&-%l=`5Ue$@=EnO zzMc>}Ay#j<-o?EW_b%BV^k ;eoN4@>5d)xWH&t}OPQ$ u?d9mxuzQtjJaSwg`J%a@? z5tH(meuhup6~)NP=vVD*dhcuX2W7rj8M_~U5^C6Oc740!KEo}nmJE|Fmwqa|!zy;- zpjwlwQ`~)v|DW%z(36*!bUjlUp0Vj?x?q@4;=@yJF6qvPHXd^b3_ez-yj4~&Pi43B zU4|W(Cf>OFLSn}!!Tant?khGNXx$~Zuwhq0&1>_2hwooG78RX;#eD0EXV>SJ*5*!a z?R>S~<7(*t3v+{9MI-Dto!ho>?ew#EGf&?xe*4gDwQqLxZ5QdhyK7yaBp0s=yX+NZ zcG25 4ZE?vVXMfv+uU&-D`ZJ#Zt=N`DL#=@oY__O}?4p+?AfWrzUmV zE!_Vo@`{`5jRHf~iL%kjrCZ!%T@FhJWH?E05;)NBw&lRmvunH8u`E(MfBovuHQx?A zV4S(v>Oe&F%uq4u16zCqD((Y7 xh;9lbHg|O{Z(-s2GY5~D{ER;70-G8EUab0t$81m+Di=&gcU|C zx^(mYH)&u0&1;`7TD#K5f4cFLq@3qcGPiazw}0Ci)^eeOZ_e%#v4D(}qN1?xch(tg zSDsUF@%X|eDX+iWTWYm^-m`qAyPo-}(uGs5M`a7kdQCZbMZmN2uIRqNq-(Kq&kz0n z#3#bA)JtiJ*G=8!9fvo>-AGpKoV-ls`mq(u_E>&8SNUm=lK(vW= =>S4R+ao^{Re}4dR`R~J%;=0pZ)5*GfT7c z)9lzD>Ay}hBv|(5C>rO~w|()~aGYZl;-?t;*hcw|-vbNnrMs{CP4!BNHZNKu@A{2h zH~PGW;3geK@nGx7f{b)^nOl~v0$<+yXid~|daIH(Ic6?jn2W!(-@LRR?I+VJ`f^1t zZuu(4mwR7efv2KNnDDDFTZ1ibUh28VaK0+S!sPSA3uS_e5?RWY_tc6um`?DU_xebd z^Qnm5qMm;F#b KGv>{paM2#)VVaFQ3@jV(PKq$%N}{pQ?}gB01NXW0Kx$4*4E9!1{Ty z+d*q*3-iQB2^QN8WV)vCG%sK| AOgsHgaF>++GJn^P@5Jpt2|b$BW7J^99r0Uf^8WWXdYG*EmcD0- z|FkH6Szfs3$-fi#xLFA0GN`GY)060UWwL9^j9VwKJ``Vc{p+dbCq|`WlQo3v-hM5T zJ+wOP)yc=!TW>$Gvssk$_=EbAbEhVLn 4VlE4N?WCM3KK~ya)w=5@X?AkcVZGgN zH(s}6mnm}Ti>dr1TY9EYeNM@#%ybdW&~=WB)y_t3$-2Cbd0hcxz@J?V9Cv*6{~bAK zvhuu8N-+D$FOPJ*Gpt*(r+d8Jr+HrPcLHD6 4dx5ZWt?2xlEQAu zP*~();4X65lW*sfk{x}{9O^Akmk9W2a@*g0BF)|&^K^#h;wesC8fw1o9WI}qA8r+H zPPN|fLWBE_K+gM_npfqPtjUa;!m#UPNZR4LgeFeWRlfaIOD9a9kQsJ#uULGZ+uqlb zYGukjKVE*l(($L%RoyU-^;X7_9eg%ZeSaOhbXnA-b({Hws;>+?15b2j)HkN(nmb;P zT)p^vT;}I)VT)Z;gI@mL{r<}Q-N)75p1Jh++Kz{|J}F;UZr>R>qtN??QC#=B>Q(Fh zHvbh+;|pPUzd&Nn>_-XT%l9b-EuU`we$weL2X3yh_2jfa@?%M7@df3HXP5upWgFY} z?S-*bzpj5~+qa|KFZT)XtxkB(v2XpSm1nQM(C`;6%`QCPeB$Xu&ozDbCak<@yhw|o z)OP~Ip8f#ch`)TTFR%CTb$@?nKi#_^@yn8@9TyWU*Yb#ea`x8w^xJR~!>eoliMM9j z3-eu%T0UX#&kbU?RUL(b_3ZYUwVxGBx*Es!zVenyk?EZvox}Gk>KN`;iRXk`pZOHW zxawYHRZU7$n$Y}I&%WTPx5E6kbxi)cM)~oFXHPx1czynH*-r2B?2MQlan2o!)+%VK z?7RDNqRXW?hW85^jz1CNw-r6?aPBF0Msgd=1jBth^K9Bo+0MR>7m?Yqr>FMcB{3%3 z