From 8953f57d887c060c3b58f83c38d2010d27a45ef3 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 25 Mar 2024 18:32:24 +0100 Subject: [PATCH] [feature] User-selectable preset CSS themes for accounts (#2777) * [feature] User-selectable preset themes * docs, more theme stuff * lint, tests * fix css name * correct some little issues * add another theme * fix poll background * okay last theme i swear * make retrieval of apimodel themes more conventional * preallocate stylesheet slices --- docs/admin/themes.md | 30 ++++ docs/api/swagger.yaml | 50 ++++++ docs/assets/user-settings-profile-info.png | Bin 140661 -> 104092 bytes docs/user_guide/settings.md | 18 +- internal/api/client/accounts/accounts.go | 4 + internal/api/client/accounts/accountupdate.go | 1 + internal/api/client/accounts/lists.go | 2 +- internal/api/client/accounts/statuses.go | 2 +- internal/api/client/accounts/themesget.go | 77 +++++++++ internal/api/model/account.go | 6 + internal/api/model/theme.go | 32 ++++ .../20240320114447_preset_css_themes.go | 55 ++++++ internal/gtsmodel/account.go | 14 ++ internal/gtsmodel/accountsettings.go | 1 + internal/processing/account/account.go | 2 + internal/processing/account/themes.go | 151 +++++++++++++++++ internal/processing/account/themes_test.go | 52 ++++++ internal/processing/account/update.go | 16 ++ internal/typeutils/internaltofrontend.go | 18 +- internal/web/profile.go | 42 ++++- internal/web/thread.go | 41 ++++- internal/web/web.go | 1 + mkdocs.yml | 1 + web/assets/themes/blurple-dark.css | 92 ++++++++++ web/assets/themes/blurple-light.css | 94 +++++++++++ web/assets/themes/midnight-trip.css | 159 ++++++++++++++++++ web/assets/themes/soft.css | 124 ++++++++++++++ web/assets/themes/sunset-light.css | 95 +++++++++++ web/source/settings/lib/query/user/index.ts | 7 + web/source/settings/lib/types/theme.ts | 24 +++ web/source/settings/style.css | 8 +- web/source/settings/user/profile.tsx | 39 ++++- 32 files changed, 1230 insertions(+), 28 deletions(-) create mode 100644 docs/admin/themes.md create mode 100644 internal/api/client/accounts/themesget.go create mode 100644 internal/api/model/theme.go create mode 100644 internal/db/bundb/migrations/20240320114447_preset_css_themes.go create mode 100644 internal/processing/account/themes.go create mode 100644 internal/processing/account/themes_test.go create mode 100644 web/assets/themes/blurple-dark.css create mode 100644 web/assets/themes/blurple-light.css create mode 100644 web/assets/themes/midnight-trip.css create mode 100644 web/assets/themes/soft.css create mode 100644 web/assets/themes/sunset-light.css create mode 100644 web/source/settings/lib/types/theme.ts diff --git a/docs/admin/themes.md b/docs/admin/themes.md new file mode 100644 index 000000000..a3ef11b05 --- /dev/null +++ b/docs/admin/themes.md @@ -0,0 +1,30 @@ +# Themes + +Users on your instance can select a theme for their profile from any css files present in the `web/assets/themes` directory. + +GoToSocial comes with some theme files already, but you can add more yourself by doing the following: + +1. Create a file in `web/assets/themes` called (for example) `new-theme.css`. +2. (Optional) Include the following comment at the top of your theme file to title and describe your theme: + ```css + /* + theme-title: My New Theme + theme-description: This is an example theme + */ + ``` + You can use any text you like for these fields, but bear in mind whatever you write here will appear in the settings panel to help users when selecting a theme, so keep it short and sweet. +3. Fill out your custom CSS in the rest of the file. You can use one of the existing CSS files to guide you. Also see [this page](../user_guide/custom_css.md) for some rough guidelines about how to write accessible CSS. +4. Restart your instance so that the new CSS file is picked up. + +!!! info + If you're using Docker for your deployment, you can mount theme files from the host machine into your GoToSocial `web/assets/themes` directory instead, by including entries for them in the `volumes` section of your Docker configuration. + + For example, say you've created a theme on your host machine at `~/gotosocial/my-themes/new-theme.css`, you could mount that theme into the GoToSocial Docker container in the following way: + + ```yaml + volumes: + [.... some other volume entries ...] + - "~/gotosocial/my-themes/new-theme.css:/gotosocial/web/assets/themes/new-theme.css" + ``` + + Bear in mind if you mount an entire directory to `/gotosocial/web/assets/themes` instead of mounting individual theme files, you'll override the default themes. diff --git a/docs/api/swagger.yaml b/docs/api/swagger.yaml index e962c6724..e17e3f479 100644 --- a/docs/api/swagger.yaml +++ b/docs/api/swagger.yaml @@ -294,6 +294,10 @@ definitions: description: Account has been suspended by our instance. type: boolean x-go-name: Suspended + theme: + description: Filename of user-selected CSS theme to include when rendering this account's profile or statuses. Eg., `blurple-light.css`. + type: string + x-go-name: Theme url: description: Web location of the account's profile page. example: https://example.org/@some_user @@ -2463,6 +2467,24 @@ definitions: type: object x-go-name: Tag x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model + theme: + properties: + description: + description: User-facing description of this theme. + type: string + x-go-name: Description + file_name: + description: FileName of this theme in the themes directory. + type: string + x-go-name: FileName + title: + description: User-facing title of this theme. + type: string + x-go-name: Title + title: Theme represents one user-selectable preset CSS theme. + type: object + x-go-name: Theme + x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model wellKnownResponse: description: See https://webfinger.net/ properties: @@ -3448,6 +3470,34 @@ paths: summary: Search for accounts by username and/or display name. tags: - accounts + /api/v1/accounts/themes: + get: + operationId: accountThemes + produces: + - application/json + responses: + "200": + description: Array of themes. + schema: + items: + $ref: '#/definitions/theme' + type: array + "400": + description: bad request + "401": + description: unauthorized + "404": + description: not found + "406": + description: not acceptable + "500": + description: internal server error + security: + - OAuth2 Bearer: + - read:accounts + summary: See preset CSS themes available to accounts on this instance. + tags: + - accounts /api/v1/accounts/update_credentials: patch: consumes: diff --git a/docs/assets/user-settings-profile-info.png b/docs/assets/user-settings-profile-info.png index 1b9ab6aea9d812cd880b52e3fca3b624ac5dd100..fd46231434865d9485bf3aa12cce2a76db1b5c78 100644 GIT binary patch literal 104092 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

5{a5y+j|Z^|;pz1UZr` zm^=7y31b`i@)IyC!-1mH^1Opbh0TT^AhXQlfZ~!=Hc4;3IX^6d{RuOFufKy=O%U9+ zCcz(u@9|EL$?w-F7m^w>n_uhmcJd+DG7wk7hpIq~H()uNAGWCKSlJf$8JRwcuL&jQpC{afuzX&3^g1pObM? zzLsSsb!`Gy+@Ic<}|aUpH%lqhltaxHLjsKJEtI1H{1 z%tfsuP3$BJsTQ8LIxALd>(qR0`U-3Yby_*M(xEzSqNif@%K`gs6aMS_QnwEdQ^H|& zrcLSO9Hjh4a_&B#0TOIY&}Y1^#Z@KMS%fi*jiEsOa3$Zo2V_Za zQ*uYzkUA~v+OpqigI%w(FYY57Ha!(;qdWy>yO{)?lxggG66Cengv!dXnwpw<)1>hZ z2a1qD0q>h45ILUww?t2J7v#E}v2HY1mlDRLYbwkS;Q|)LlfMBh_i_wlLM7;@O9SO;u5*&Nkj1 zA;^b9d%w#?T~YRVlxZCpOXg-HV46%;S@i52BLQwXLO;>HE#3}eu2CXT7JUJN67<`c z!WUG}TcfA2(u^2;OU<%ZgLeB&6dZvANi9j=74p^I@lGxK+T>=-?W+frvDtjj$S*BD z51sfT5UxSP5;N)@GdUHq!y!)aUg~s>giNTN1hSn~-YOujCTJT>2=49@9D=(;7~B&G?(Xg$+}+*X-66O;1b2tQ9R}FR`|bB% z?B49f-ko!%&*|>!r>nZEp6+qEIh#&%pwb36{}5;N@2MlS7&*ll2y$^%fQuY4Tjy z(Q_ut1TijKzP(u>01qjkIAH=vm7z|NK`;BaCPRxmB~(0CzNPusq)z|fRh>$^s|_U@ zUb8i#Jb(Il6uaC@dh`5NBT*i~lne87nEY?bStp$Ko$Nb$+hMcU0+I8OP^T8YgYo_S z4;}a*0L#(Hg4fwT4mSI!A#PnG!_^nX3A)5(0kQb3?uldOyn@MN8#MI{LLT!^JS+@8ud!KC zq06dR71JXs>QNa?u|%?$#D;NuPx75B>dVi=m{Sq1`HPxCY@8d`Hien#rgVLmAERBQ zNd}OeM^BE>E^-o^zp&V~qGj@SDN4&%9|i&PeoSDqGVs{FusZngPNMu`p`)qeLz098 z%)>boQV|nVs5RsEpS6s;%R!sgWk~u|pZm8bthelm$WeseHS*n?oI_&)mag|P^VfGs zn5W~u)32{QKcq_iv{FZOC28U-4=a<~hKNgtDIrr-atZsz5q0qkX}2uQ1l-(IqPd3F z8Y*#9Ppt3+5qFo8&!mJsz$;V{>&gAaD$*bIq3Xn>;FNmU!)ct7{&--i$_! z)G%%p{$SMf4VH=XBC~rBEkCP?WoB)@W^{s65i@)hGJUQpJI}Z|QE5L+2)TJ6qGNeO zdawyDxxHlU+<-JiW(P3&4`4oaByk-Rz-`<`NJ<=oQCUguI%*L(1KUKBZ+aOK{Rb;` zb|((;_7_f>`EDT)X0&-c8H;*u-jAzh8T&<%W;_+#1BuMYKLXd#4S7V=TuBN|&94j1 zKWV;)ZI}bNSF{7bGt)?!o>Z+aFz+E?M09r`$L$1`lWk|AxQV)@?3d^aB2M}a84G`4 zqinq;zTFX~o;U!v`zz1ly_3ya;K0BYG$C5HRf8oH`@B>C=z_FU3IQ8F>B6Eo8E<5x zEPH>@T22&K3o7X!S&Gyve5 z>80c9c#`H&mdv^Jng5C#lg#nT*mHAZR-T%uW1+)@AIxNXknwtWY1z^B#!L5AWSEji zsI(K>IgeqfeP+}vROu{_sZNEL2Feq-z|^_9#pV^jj8u zCLCmW4L9Dwe_4r0o^N=hMAZHLeUz+HZDDGEDBtZiVzj){u=SN@Ws%Ox(+^Jq7HPbm zS<8lf11dSlrWM!BdUs@tn3|Ya@|I-neN9gaOZiAAY@Fb`273QN9orbKrGFS*s)UL% z(asdMgM}&&76y>jaISu&T0`8c6h(keuSL^EI$I8ov=*JE(#>hC%2%n5RgrCl(~f4V z8a!&AtZ*CKZMJCzW{1d=ISITMh1)@8+EBk}5|^{6tY*zUT|-upQR!<)E9#@cf-@rX zfnYJwgq|=Pcv$6~#HF${{KQ8Gq^r)QZ<%R^F&hd^`HM$ody>|i^nEF--iUl-a=rT# z07DHfY{n`2+&xZGm-<2vc}_aR3F?mhlB}dYIv>k4AvBOh%SOwFsm=^nZaynWCw`sM zG*)R|Z`dGu;UOtGjH@Sb&XG}K9*K|G@}?@ux~H~*nVGmhaxk-wdRX!RDz+G01T$@7 zs$x_LJoQ=9tkmBZQznHeZec!7$Hl|6fB37ixGz97nGcR$1ViImSPo?+Nz_`gB;yJB z)htvG#D)d}sZgap^T8=8dpxq6r^~yt3OJh!J(Cv^(xN2)#v4c>uXpl(_Ia~X;FPMHL{^sbf+!b7p^lIE9uzR&95 z>CAJ&X!FlJbkXd%IFt@zhwl{(T(FbZ(XkDPd_im?{^~l42RUwe!dJW3x~WadPR}Op zluMwik7qw@OBcvl7HN2MeRoZbJ~US!E4jY;$uAS&)Q_742d#MpEmJ=7tzsxrOi|r% z<8PSZZ3ep(Md-bpX=3LT+P>kcEa1t@RtBuDW?Odo{e5LO z(UpsZ5HNoqxh7@qDjf0Pgs!D2xlRBMY9&YxfFUO9%okACN3We5H6F<;)+V7+YthOt z$nR&h-u?ZQM{4>^GFZ968XjHKiJ+N-42{U;6vDEgz7Bo(^$cm-!80rnCNwyN8KW-F z1j%p@EaClH@xi#tgN#V2c_hRd5?khwWj&!;Kby5jI;xLJ9ay;bh`eSK{~hp-#71Bf2`aJ#tCfP1Yq7#= zkzkY}RP;$ZmUY)i@Z{q;kdYh!a(0HfMT+uUFb%O{sG0PcU+EQz0@dPo70vL|iwg*B z5L<9kh9fTOWrB?B`3u*G;v?3?o$E$pg^9h_Ao6y`$NC9INYP@@V-VM_sdpvE2^V7x z`dSm}&Y;^b0InS@TEtHM2e2+e8&OOKL+5iQN<0LTCr=?r0e&K$S6GRph$-4RYMOeS zE=wNWS8LPuc?5s*_cocX{rFtsQlq>*Qyk7s1&7wA=!2(JpEi2DV>}c$)o zeGGEL=Lp-^Q0Mrq@uZ3eu)k-yfCNtHUz2q7)bm97osL0zL zv4tp`mi(dHH(wIXT+4Lu0#LN{4RvMlK2=4O!6g+!d}C0{SsrTz|A#ZDs&(aFcNd?D zgc%)X30hhS5v3Eg0aO(wh%XURt{dGdduXg z%hIQUs*|s6^`Enf%8OQ6g&EFdy89|dDGcV!+=(4s#c=BGax>aE$ROB<@SYH6KA-tX z1E-h)uweHBY}hfYbQE0f;mNv)%mH>*E=vGc&tsn22>;bZ$Z$HAy`S-vai*)knX*;} zA|+1N-?;h&hypuSLy_-i9qp*KUv-8uw7=`feevtN`Q_RaMvpp=r8I}H?EsjUuQ<7)Hwe>8CLm9$hk$tTZiS9?6e4+NFOB+Q4 zS7EmJ4QGrCE7JAF@Sf86?;G79x~Hw0PZXSwEVx-crz2>s^; zmp{m1a@;>{?1^FE2Q!6Y#jwtJ{LcQu2m9FA0CK)`2>d${cC~-4ksNg4z_vawJX~!$ zt3|wq;}!lY7fnKNDg$?vc5~j2pkntvh;x=Hlpj z$fr_vExB^9yhV3>$k{p3lt9!Ix$b<_v+Xup7(n_b!90d>>iKE9^}L=waBqx$QKQ>Xp{RH;_x>FH+3o&wW1$GM!oQGgLj&i8lKR=t+7P1q#_Tjzy zb+mcTlLj9hWrE#uUZu&?@N(CBP&ooiU=YW;l-o3kx%al=9n$7h``O?+cuJ>(9S$@oY?|^cHIJxv$19u14vDrV(jjB6NZo zTuZLkN7N{+L`y;&6Bq1Eq>wBb+anP!pQyX9|Lpus27U4d{h3^)^D= zVK(4JS{8i>dPl?WM0EYu&<7WE3rngF51tj}@#B?O^j2|vUJ5jMF6NE%BJW`n2(bgB zl%-V;8)t8EDBC##OSdodyqEVbuB>vy^|GMnBFu$q*&_T2Q9^cWamL&j8$K&0X-m%& zDQFFp%zAHq_Gl7bG>LS3_KnoEiR#6%{+_Kqj+~CzOf!_pC{Lc{O$D+aldDUWxg!jy z9>k^_AVJ2p7c63+g8{Qe>-*j%F{P8SSFE8n>AL&iK7B{%Ej89}`Fny*DGqeY){K4$ zk*D!*w0A3e@Lj1gf)6~VAfHtYkKEk&dMgRs2>L0nwZ+Wq;}|zum(DlY#!FYFDAA!8 zbIWt8Y;AevZXCH!eKH%)m%H^6Jri$4-?}P(6vpn^$Rh8EJ(}scWx0!>Z{7UN-fE2I zXsOJ9t@h2Us)Jez=2P=rv>3P|=6%2WvZ~{gwp05@xii^6LTDo2@r(sMW5soC7|-Lp zhWqwj=KQ*nh!FI5vN2FcqF=RJxEtmV*~>zR+s^w}nVuH`_=0J>{g{^dHdCfqnq!_O zqbz$ind&Zx8faAN_A?wpuPchT}6R33>80J-q%_en$kQU zuQu`RZ?Ni~1_~)p#+aSn-FvlzVlmq-Ou^;(vX@=yYS}En`s-L`EsH z1n-?a;{2h#P0BJe`fmC@AW~JN1sbw!dj}DctyS-LU2;jWePaNpfLD$`0fh)XnoIE zd$q?bKi)Y7z0G-s3U!dB+?H&ghHEwlvtvb>T4NP_E|s*jN{fiO)`*YRbU|pE?daQ@ zV|+dL3^rO8riNk{@c7@HbSwnZR;18Z9woZp7jG7t`&*>zthDn*cVsl+c(a2Ww1&cr`GQx$RZZ6Nce1WnHFUhF6>8)`?(PAa zx$)?P2bbKpjR4oA)|~6thIDgFRDsYlp>>#LsrRMnRU2SnwPluMbhv0mB6;~u+hzTl zc?c>;Z_v4Eq}h|_DI}(097OV0t8KScDsk3*17gZ!Pg!e6bMPD6M6c?DLoV%Dxs1;6 z>(n=sWAd$|6JgJYOb)J_wis=ByAP9Q&WoZ3J1m0DXZNX^cjBCvSp>u=_uinE$b)e@ zbw%y)zt`xm?IEFq9VbZUzk04GJKupRD=#vhr1H(%EhUK4TO^ z{AJu)SXQ7BQ}?ZOZocO3i5(RbG3BBs1APbVMMZ5TVH+TGMmh|fjFhjc5FBK0($a04 zLT9wzo|2V~)j*5E7uz==K798zo=?31{Bfer-6LoZW(nQLL9XhY#UsBW~xZfCVt92v2w=%c&wRghowHo>>>qMl$z zK&MiaP;Opgu|11Xd<8oG(L7zL*iv?>5%20O8mCa9;bdo_gQtu%qQ>CfSD3!!hpsB*9*%?MT(?+@UyU=Z*hKjoend zeKnh=k=~(R{>C}w3;%7#)+zw!4{)bV$hLTI*OF!)xHmN_N8AFqwlIc3=!X-;RM~5J zUZd_2a0qD$?yKAxg`JxgW^ZvOx^qDeL0dp8hEkk$p(nJPjPA`hxItp7(@-{3l;Jxk1|9 zK7-JIK|rW%yuE_>{#W;1o2c@o?&yN)^~tOr^JZ(U{7^2=MAVgrwL19YUmTTRm)}@B zcGDNgoZzz0ZsuI?{Sv7`#JU%#AA___mF9WMp#)evS{Ey0PukUj%#jN`sb?_cjumHi>lYxDAfgz7d1EcLfkcNZt;e??+SuHW(NABcGNR2 zla{k6=Wr^JnmBft%Kzx9$=6m6saGD3nwd(fn8H4~IBeHE{_q^tWM0>q5Ji;BNJG55 zUPUFT;kYhi?xqdOnk72r7QIz^Bx7JRW&s~IKxIt@aGlgsf)lp8eg>a8fMfqKhW{i0D>^OPfanQ+Aj86z(tK9`t_A5<_I%bp9nz;p~Zm(S>vz)c*vj{f|X z5)uSc5*0qr$NLgF!Fa!H9dvYR$4VCAmNO~f>nFZpCsnprkK=~gLB`xOUbbX4RhmQ6 zgbW*bt@5Ar?|k^x9grfDMwKxmy&>jZAK1;V-YLpUnOqJB61sAuP;_|DxYV#**5qj1 zDV>8S6lk&O<^@HuUtC^ z{^+5#jboGFaR-?$&0LRES&_J*B;j<0b=GI1W#O-g`$kY)6(it1XJ3&0=st4t6RrGxUuo+Hpl}wuN8{Oe-N~4^ zN{M~=TE}bs=wK#Qq$h^dD|IBgpMq#H~tQPnQlRo_gpO;;t%6)3?FZ^H;l#c zeL~=j!f5~fQ>332rz++=PY5dp+>)Low&3QgjdLofqM|9s09&LcF7To>5*30jF1N=W=OPor0ecDK*U z_*jijP5~6XinO$QV`?}==ECU^TwmERC<<`RZ3;Uqxol!v0UQ4mzZ2o#jm%!c9RwLk zseb9n_>?JL;kLd&2x+P#F3BDHk|M5M5ya^GaShVoz61odp_dbqSFN-|lLY->fT7Bz zyi&0y_!&afM$3enJ2;gii?mbqwbjkp!cXI&9%0mFqc7s|?f1idOk)jg!nS#=eXP|+m|Xq`J3 z1whZck5cz@Wk~q(Fp0hgvN{$9FC6%jYmKRVwv;7>rFT{C8z6aflA%eUO}%?CB|~Rh zP_tZrx*rqbyQACDt9W2_B>U}EjP23mH0LY}?%=oX@JrB>cjd&DdE}tsZ*n(nK`-dY z_HN2`H&*S7@jzo9=Rj(&J~(0_D0;`kAr%@-!n7n9 z?M|~Gqh+#lW0|{@&@mwK>US;*-^_fhsUX&bkOvOHJk*?6TJ^3q68wBMsn;IWhPtY0 z3o^ERk4_gsaoB&{GTcHD!PRY#^3ug_XCCo+^KCGadq^!^Z-u9Jhoem!UGGZxDFYWt zS*dlgdle9cC^a*l^5YC;-YwVr4#%p?zsXVt*199X8*j3}Cb_Co#Iid?piI=yQ2iK> z_MAf+1W(fBj5V^+v;B9Ccz+r5ur<-d-|6&NN)ditovUB4-SuhaX6ASr3HVNrVY0`lRkVX8_rZ}G^MMU2BzK$ zbRFZArtuc3JW1AtDyj|?I{YbavkGJ9oC4khI>M0eQ0Xgrb+!DGLZi?$T;>B3(YESm zHgxhuyn&v;k7J9~=$-qL`W}GMX(OkQ6waZdH2u6NmlmvC$-(n5Pvf(~r)Xz=kD!ZE zZ%wN9;gFhA2yo8C#M@)ATBj}3n6{=u>{UeQP$K3c-}-Aft*~3C8=H-}ePsb3$4}UT zWGor2f}CAVQMr{-4+Lni;!UM3f`Jh8I# zHUd2uuBu2&w3ydj5M9lQ-s|sj#9Flshev)xg2vUA4eM-=1m}=6Jd6eIR|J5Yi{{fg zHe5Co$s8}BbkEHuE%nW@e&0=T@v0K0eEp!5=nYRvZF`*Og{3v0jl)D;SDxPNjp!%m zy=z!zCwUu_==rW!7N3`ZSMzuu2p^VF76mF~A>kgE%nB=;WX=V$^v7DJH>jId`+~eP z3>nF|B(YfBI=2^smE4#5arH71qa*qkXW_679@4hu@kr!(Up;DAVVm=BPAw?344NRy zUA1c(6|zHEb!tyb_2Xay^K?RwLmy;YZ&Y(C@Ziyp6H+1`m24BCrH}4?X72O>$8v$b zpq9qVW&evCZiHQvzINt#smqNS04%~azOO7^rJ4QEH@PqrQWAqgLA-KyQ{BN(>CAN=yjUUgB zKp!Kfp|KVvEeFtiXZLOwy@sIVYgW$D6~Z*@42XW1_?S(>1rguh^0E z5l#C$8!>r`2v529AJC6K?q1{6f#M%;1~paYU6x{=_P|Ui@v7GB7k_3?7ZSYlrK-B+ z9=gdIOZi_tAP9<(Xr1(m>Z)?SA@FJQyi!}-N2 zPX?*#iW(0mfQ(JO91OE%3F}itLSAQ+b;dLq)ntWLu%8dcxnDV)_m?T%Xc%vDpB+bU zPg_BPTECr*NM1w0$7H-AWwvnV_C{ufBmLpW9M>D>g(bn+TFw2P z593E)5YyN1j)waTl&<|;>P`nqZu0CxX3B}(kH~j09}#~&h2+L_gMKy!`=8l@QwVct z5yG45`})4 z_0?6QenRiDx`|t3NWPC)e|xrcaL`Xyr*(auU;ljH z;=0sVb&5C4{zYi-0=gIm)!m46o)~WJz<-`2+@E>-n8L~Va%`}cED*Tq%rd%^a!ulb(s>wCUs zh~#>66VS7pceG^ZZM9VS;`~{(e~g2gzkx};-iyN9A)J0#iW`LbOAwT_a9iWX`iS{>Z1T+ak!HJ58+eV?N0Ijy zbG6ia->GknZJ@QLeZ}aF(BgfroypP+Op&#-0>49M_r;cPKH~o*7lRKd^i0A4zC8eE0cdP+O8>=Yg)(I?6aPTr&uF z|GA+$^KuC7;bi{G0Q*LakPT(3pfsa zM`YOA0QHZ}rXunl-XLs-NVpns;gIl6!cg5T7$FwS(8!c;?J9A>AY z^SOX}ISsWNkJ@g$*#^vpm}AA`_lTVW>y;UgPms7eIRa(VwKGs)cAqOVj)DzZn55Y+ zY%h~;m;p1;qP17u*?H$%)KOjeH8Zj5%<~);w#13TM9&JwKF_+9W<X1WQPwyDwTb^Un`BPBmxL!m;Kjr?7;&s{AdR?T26EbL&1bAA(_q$^$kR5Q zt(UNN$eVDTuX7wsRPQ#58oS^?j-Dd&zD;(_2>5tBc7Z3DQwt1*s0SY|cWa3Mi{llJ z>fBP}7lz4a2UUq;OQf`!Jj8;x0;hZ|1_GNWZ0(k|`{n?Nu2ex$iRRty&^4(mRF zGDyHnAOmE2^_mO9XA^cn=_~9T!|REyIT`N^5-cCzdE?jYGBL9>R7rYLs}D98buJEC zFt6e{SQ@MlI4tRk{n0xdW#^{8vJ;KV&NMkzc=zaYN3;eu#8w4mrbF|$i8a?aPwZ9| z#+X+gi%IusOW>WF_KxO#P^Ai(ZHYg!CP8$CVxw zXJY-UV^VhQ;VYVsY`MtPxC$=$$!mEGwlxUAhyL?EGf5_Wgm9Y9d^5`z{ zljpDCt$}yBi}sTPuuhy<^56nzfMO=*hJ`U4^}qEPMT-&`xa10r$ruoH?Sqt5 zxdhKvjKN=*99D0(%Qq!W%=s+IAj5ZkyU2SF2 zekx)qYUnS=E?K_R+{Wc=$XCLzMW4)fM;SyPq3oXPVO16)dHW}1_rOe}JZ`+XsCM%f zD776QcHb$&L5@eYop+WJa+Y4}AOrq#?W@jV?D+QK2);j-=50PgYgA zop7mK){a}^&nkop@_6k_F?_L6d~_*pW}hbQc(9-rN(3+zrP(*Y$S@crQ&Tb6Z2Ady zOT*!$C|#l6GTu>s|G`V?DQE3eY0a5wmN?&2m|C(}Rgp!bbiw%qa78;g-(P+(9no!$ zj(1L(c^;b|fcD6$*AKs5&eq>J7k+#Ke#4QcQdP$RyGWp~O5Sy0Rfygh?=jtSJyPw{ zxNYqzT6A%zRXl)I$D{21_87#+@W!oy<)d&Gymbt9+yziIZd5(XglDFhO0rmKQ<~u# zC#h2aSUt>WF_vIodZi8=51~vTVzNhfS z8=^T=IW?vFNHO;{*QYdWTna1vm?~W!-b{IJ`biTV1BP*SoNVF6HQLFE-qna8n6dN} zL3jSpbE*mCE^IiSVqE0xh70*e%7u~VX9z>=39~12tNbbpr!_Zt*_wDd@g`eafJVx% zGZKT-lva*R^Z}(b-${mXivI-hRoVS>$Gk>i3x;{RTRj49zIkZ_OmU*$T&M5JeFhe(S=kD;r-N55(0b^a4YUOc1EaOiqrY7+UPTM%xM zOGy>@pBR{Z;IYX+a?L-lf(ayy2?!_w<8D$MJJb4I? z+Zr|rV8bO`V6RF2^baY07xxjyLtuusdXkKkC;*YfQtTL7`Z#*XhDv`2em}R3AFKdA zr59TvmV9}(84U_z`HM58o|2M!W=Ay{(FL8+p=EXIFpr^RYAnW!K}j$F)lEM#$uI78 z&VJxhE1Pzpm0<4@*HmBc2H@)7ivPWfvfTAIuCr@PoURK_SgcIt% z_+#9vN#+$1pVOg4bi;JQ&i>}Kp?CWp3EyVxDO(}8;D1O;X#q%N2%DJ$RN-2$mvs@> z)!oe)xmeL8@{2&4UG@Wk{$Nlls}46GLf+P;TnIAqU3q7-&i_K zJDb704GlX-jIC#8=KPY`9ZPrqnMWOuuj450di7ouZ*6b+>jKXY7Pv$RwNDgcRVHpT zPW@9l-|{lzj5s(IbmF|{P%T*biPUs)hpT!qBzA%4+HL?YseweGGd-@&q#$FE0sU}J z1LSC=&0$GcTu!9+gt#kvMq5tU<9I2fZ5mq}`HB{$6IMwycsPH@p)|_ARSWK?#Y&o! zY7uv?KuL~MtW-(V)q-*Qr>K{xBmYhmr+7wg4kKy3jxJorP*^$P#{?sFc1wKzqg&r& zpl4cd4y|}RRXjCYaQYIKlJE*HW(krad`E+p4KbKo)L6N2@STGNyc`J%7O;)FKQZwt zz6I@HQojSZ38JW|xX$IRZB!PWF{#0JD108eV?Q;Bs|GjkOwC@&7!3MB2#H9inan;; zYOf)POzcIiYHsz!W#vq&)8lQ& zM(ggF0*RMmQ|(5Y+?z`qQ?V*}(4g(roxrqVmILsf-hB&4{nw1lnYOOpW%rDeX!#Es zD&h7lYr&?EEc0Jfsw_k_brswUv5H@-AgjM4|D#B=XVqKXnv&+IIMLo;K7BF{!k;au zndv%rC;N${szU@tS6!fgV4Ns$&7kA%fD-oX#>yrQhi#hI;bnvcjrs~Gcg+E?oJA%Q z@MVeBptpseh=yqon)_`SO*J!{1rx9lH!vXH8r5T}pOyJeS0#Ep*dMEIm6$6Gm&#Va zRu&!(O)EK`9I4IT!?^&D`342XPPh(`ga$A8pv|XGN^EsY!1iJ=lWfS{38(%kOE!%q zXxHecfvP?Jwi+%wlCE%>QnEF%IHg`>U$itt za(Eutb6G;@`7un}wvR-(dT$BM@JCZ-B}nyWyAz%t2(ZqW;I>4}+p;M&k04iuSUaL4 zF`2O?G8iwd6;^P^|4QJoXE^00W!b-rjQkGr3{>5m*j=Q%!tX~U@d^Ke0t)xrZK(sz z$&Ap!>LCG-mX%uOp8#ydkdcn+@4eGM4F*nL-X=RibEq2UFm2nHIx(|PB>XKrG3n#F z68h?bWOLHf2(I;yVMn;xMVlz&sxZ$R7DOzBdm@i0w~9mhw2@|W8?6G2aop+<6BtyB~@PBD(n5O1L zxe6nV5fH@g@i7Rsby+50QpelRR*tvbz}ao-Z@9&$(W#2m&gDdNEDJsw^{RAJ&XIH8_>&r??0kaOQg@+N*xpT&ppVeS4cK-NjecQU`IGxsv=D%Zx$$r9kQ^8wl zlDR^(E_QY$!K^O&y7g=}#((oyTUOW|&7&}3r#865h)7v=OZ=^z@Ri2{DZ=&zqUk>3 zy45+bB@;}rkq1+3No=b!!wI?pZ<6v2-ogAg$w3SJDrbFIo1>Aa#vT!icFR|dp!HO`Tb^o=}hnR#3eiqhT^^`T! zat+QHJk6|5ZJ97Ct2<#3EB+x%Ee-sJ%@6q9NZC1aYFAt6XnQ_pj!(}o(qL#WkT067iOj2QN`mc$73T6;Rp;rQ&;7=eM1Q=; zJ53~uD%1-8j9})I_4QdPy=wqr@duOc{z*-DQpx*k3*tzaX!)N5@NwqnmxoNczCvrd zC*ou?_3+HPAgYXRpDzk;cRInca2mAk9D~&S%5binzz?QouUql=o2)hNIb(mj1mza| zM|u#$omD^-PpzYFB7=Ptk}|L1Yy5qq#Pif`zZWPDRacOHl=1rJ{U&a^@^gZT6C-`y zBvYTE-OoHD-I}EOOf{B-VLrmTHR2MML;kOnQC-;802GqSRHj3`e=GjqV7&(wGcPAU ze~pzKRo=&}YlV1`31Bx6^?1EbT-v1)*WDW*p#18EtK%1mVkjLuXW)cAK+)-o(e;Mj zpA)b)uh6;#3E6ihfrGz!gRl8xNN4}5SbIP=!R;)dk#m@J=!+iFGXetxY2l)b>YmQp z8MWrI+l5$uGKKxV?H#hz_gqhJjOYZw!`w4a7jBpm@v`u2`zt!?=BFWg5FWO2s~VMT zbMt_Ev8JNhg~6m~Lq?-pCC}6+f3^trcwIQ7zWpG<-gee6Lb1vQwenQUs~lmUAb~3c z2Q~J+XR4lRc_u30ex`EKOjm`lHGM~Y!5@Em~2C*i(7ZYeuoAa8YV@<4lmD{+TWE1 zDO=d7lkzX6xnr<>!-IrijC&bkVjo3dpjx75Q7fRnQpPoUO*rH7M%G^&NjI2(Yt%-R823FL%!F|WZa=YC^Q;XsP@>}C z6O_7Dw<7$i>BU9I%Q zxx?3g_*({>IJH_yb4^_K6c}B7o;m!JRL&g88s{fUj{;tGOV0SkcNqK}fl!rO zZ|TSD(38z3=vn?U?El790+ZA(P>@(c%gR$w%8r7SkiVLe^b#}?4x`1PM4czpyZpD>nw=#dxu?Ri;30T zC0}jN_^}+PJ4=puuZf9yysratS7ACGpwShPj}DW4J=TCBDQV0nP*_1G zFej>xM{<5YO@8!#5!yr{P>ys&-c!r*%!R`A|i#kw^Vbh?OH zHC=gYnRK=o5vCZL)W#gvKP9cAwE%{vAWsn9qh(fNKbsb zH+bjqJS&ykHB*OwdBYTSPdUEsOiXQX7z&~B@dzhx^QOpIoS*sX(uvp&Tl>w@nJTv7Wg>%VUN=(PA@pjx+G%U1vwSiHwnChaVp(L<*CFNOp^ zsFlYLR_meKno9{;F?=1L%&8RBwg0^Zjzc&lE<@=6IYRj&iYK22v`a8=1B^WNd{4;O zwR0XOY@BAQEAd-^kHH2PQa<9g=2x+o>dSZ_ubAy*=ok;*e~vYM-T-55+qjt4D)r3n zG9*I^<}GBHaayaFFevCi%>*KK6CUwBU>X87#eY&8qlxmz1QpoZ9H3uTJ1|hsj#kx8 z^CKP=aL&M zf5Fu&QSvTFbia{~tv1KU&Y=HYUPvn2s5WQ@H>Ex zU?=DDYM+F``8Y2RgPldN-zKL1eJ_mM{$jbwPO#8ceb>Y=DI%CZD?sGoy7VyxEZ7Nt zX&|rFc{3ArcLOh=XseHsf-&jQM;Wcf>I@*Gwl^iRx!?(45vu(l_Oa1mpNJ}{E9>ljpvC{B>Ay&`eC zwt)qug4g0c26&Gw|DW2Cq=C_S)KslCll|V-*=@*Tc|VN4dy8X%p~8Z-5ajVcV-Mac z6@lLIAAG=4na8Gd`B&f{DoPl@Yb5YE{JW9Y1iLt36#cu&YzFJ+e~<#-a9e{{^8ev0 z2w=aOKLFk-`rj|RjbdT{H@N;E6(mD3xd;$5_3xl6YB&;w|5u*2un`wI2@K@_?9?F<^wo zN~7liKz|0eE*%mPk$}KHk-NKpQH+10aZB2{cDsHJz=VuY7FW$nrOxCuz_F4M@$vcm z{0#NK{Q|?BxOQ9Me+K}5Q1t)1aGySa8?H{6${)kmk3f@omwCFv890tRDmm1XuU&Ak z58>x%e7U>ie}{v+zWV>d`i1&g*dq@41W8fyvcp{S@KFLH@CW*zoRJsrtbQIN*TbnU zwuX+JF2|#4Q~+!TrM@aGX&@?KnE|c?@b9Y6Mrs-BzbhA+zJEnX18X(WU4s6*+K8{E z0~dxR1tte-|9cHqzl8z_|KHXBpPxFg>!P!hBkXJYNH}U;RBGEN!+I6cJIsh%=Rf*# zVO}xVdXIFW;|6=Xr6%`Z<@Vl^)BoF8E|=-*1MVCl<|wAm?4*%zmtI3$Ge2tGKgW3C z{ao?1Y|tAz1AgON4ED$>|DWEx>u|X&iw#dW#@jCFH^N=;3kej@Aq^D%_z@h8Wk^+q2USuwZaNggg-l8u*?k#z}y-G<> zTZtY?45RJgIXimdzqa|a1S|`2)f=o(8H7_tBmCTtY<4X)N7mLJZA-^E6#31( z&pxfXeM_VSZl?sOFHZ>`0p`0!PB3$Y31-rX&jHN2`OXf#8$D=5ylogg&!0}Pe`u{S z-zJ%+&Eyf=99p3(9PVK*M5+*Z%&njfH1^ z2__>TvlHP6{AEtot1x-&F8PJJAVo_0SGL6p5v$}8?GD{@U?VVj2z=8^LYn%vijwAT zDAVBcS?uP*H*I$QHjCfdq*_(}Ydn9arm9@h{Z`U+AjC?n**cy1=888)jPwW#g(0HN z0Qk68Ai=+Yd)QdN13PuzufoYaY$qGIIsJGn*q}}y2nD9@Y(tb7T8(c%?w*)TPK7!f zej?$*a?;z4wsiOU%w29za-4}bms6~M(`>mF0%?qfVm=|$YiypY%>4wH>jtEf=epi+j&p&YC{St*)o_tiLm(hsX}_ws&O z-WAUUb-+MPzZQy!%q)=q&Vht2PsVJBj&>kZUKq#+yHWRa8Juy=(7}yOuu~y={DJ%; z1oNO`@8BXD7$7&60&XeLL@|Hm!}atCZa<)=BH%y-7{HtWD*tx+*Z+1`-^co@B}Hrz zgUvz)G{@D;fi)Drb|W$c0zoOdtB%=gRiYPM0H;ZJV`Ec$Z2R*G@FC|b6vU`Gvty*>iplT~CLjN!B<}FAh9-zlpi!oDzz^ zVZ%LJt8=atX|8*J+&FL#bTAkEtp$=Ip!^e+p4Ad_HZmj&Uu-wEF{)RjtX&~q|Huoz z>rl$^j33&}V0}hV+Ajzqdb6c^=-F;h4R|ZZdImwhZJTqCbn89EnU{6_8~LCWxQbNH zT$_ek$YlC}G422Nhh{J^j7@YudH(;5ieo#TYW&bd13gibaB6ylEQj2ZPItA7uZ0hS z&<+ph6=q9CsIlH{QFghPfgO%@5YFHa-HEAu?+GTzjX`eY ztb$%$XO1Dwl!=?KQ4mJBx=WlE0irjr^>S@J+1~UWaRF1?95i}Nk+$t;YEV;~v3D=z zvD16G*P1Aw_OOW2WOKHQf}GM`In7U7S0C?9FTzsA6{ji36_a@go@%b^D#Ui{|U7dy*pV9gP`xd#aihdon{D+ ziHR1A_VyIHN&Xad*$zNg(sQ^yDwDJmBnm_HTMrc;;`L02izq0&KDV}_b*@PcfZpL} z>UXAa-!>8}(_@^CInUxx1a2|Aa(jkIEUQUP=xiy~@_6~(N5}GG%0$YfKa;+G=V~>l zphRa$6_9H4(a}r+M4=k$-@4u1InzOM5SpGBx+*k$-D5CO{pDyq;B?yH#o^L*_JwKD zaz%AT&$Yd`P@3Fn@ikIAnOL8FBMVrpAzFZ>@a!Y!9?}Wa+AEx6+Nruq%S)-ht2h9} zc4o_V$50^o4W5SfX0(Tx^(IKY10TFQj8Pp#(dF%X4zPI% zum+iHhUY$Vu;CGq@{X5MJq#uA7U3*Q`+Me~$zo51Iz+nxYG`rs_fUG>O&MVkqokD) zNIJz)MuI(T^X$tM(j1eAMS2ad=D@b;YWHc!V-hl?Q(+}Ov+W6V=QXjJ5*da|98`@PsO45i(jHNC!wMSc*p&V>Hji)F8PA1FNeXc}12ZmL*C$sa z>Wv2D&)Xuac7E~XspJL=A&h$;B{!OEq1nBt>B~K|y|(g6j!`nKXQdT#Q)^}n`EGEa zSz~|0mM0@f9h@`RqZ3*P4l4fQc!{kg)zMFx3Oa!yj?U3sL8%wKcrJ1;s$F7Rhb%_< zS`!Cy1@D$&ap1QFqU%-b+Z7*JGp6$CCJPbkdKDu0jlV$jr;Wf{5=L!i$&5cHd$+UT zeD2J(eJnl(d6uH(aR14m?=}9r#{vj(lcB zT|=BzHn)hmxXt8<0>;HQpk+nOV+l3ZqwcHw)(FH;XD~wf=nu44y9?jy3Q@7Z%&|C9 zBMQqwEn#R^qYmK7u1&9(h*=$pm{N0UUVE#J3z6se)r@Z4g*kK1+7h?%Bs3~(U&Gi!CUw4M8#JZ;^8a}QV-KYS>j9OT z(D(+9Zq{<}ODPeV<=hEQ7kH`9DFW<8C%NEhh(f$t<1La{ff6nbo~t#JTkq0Qh)n#u z_DLK5W>hy{nX4GPjctcw_!*u>`~HXhs31-zpTSmn_R*#l%Y?c6r?z*&k)yd3XgOJwC=z$H?Hr9_ zHu+qmogDlm@&LVeWMx8zT9@d|`&$dNU#!O?k*$tP5K2QOLuG zVq*%27=By9;VeG&M-wZ?d`>3N`)+?Z-P3h@PDM_Y7=zI%KPT(GpitXmcT_dk^ zs-u!)_EFQj&#%TwCR2Aan<&asFfXd|onANB>rfWy?I|KPegZL4SVC86lW?&W<2gOy zHN!0;I=)$$EF5+C=T1_}GjV z81%uMcjLHzaa94kYoWus-MO{%58h8e!&zDamL3lpC0%cVn$)9Ol6LsPDk!(99R6v4 zyBB>66f!ZnQ+AtZJA)mOfY)?Wz?|<8bC9t0VQB1PVhQ-P%eXQbH*aE;#%D!kVL?g% zxS4yS9QIm|SMHRY>h{XJ=@6eAChse3vreV97HsC`8)3|+hd)tz?%j9`vbr+!pa&H= zXhhDXoAgi9IUL^2xZuGGgrApK!JHXAz8z*uCQp zNY~mG((~_pFFSM5##TaYCa21#ya`h0iDMG20eAVL{q_j3BB`~>MOF!an-@#A@R{58 zZWLuFUL#Nsom_A}&$CIaHO4UQl$-6I?`Ot68DbOfsMbQ2;B5UaVM5H2YTpAzgfTm& z^M-BKxyZnw=oYHVi)N08-GAGG@cBNF<(jTAJhSJSFjEJcB~~C2fdu2J-;qiwM$UxB z9&Uys-SC?d(|>#=ogE2S?9E&k4_?b2rud=7_s6GVo840!3W#)=Tq*%jH~ak-=kFdc zb~O}2Tj#39vhAV6kqI7-9>l8rT7J-<9=1#mhD*0E0Y>{AkTV|3ALED*f{D&$iPyv| zz2GuwLSV5JiY=W|21Ec>Jn`c=4y>#rdvCkZ6?&S8DgM3?^7y7BIAXX;04t7UV0VMX z2pry8a#TcsP$HK(b3S>B&=yJ;CBopRDGp+q4D|(G%q6#mN($ug;?oTAF~i9k?~kT= zn5E`D3&1v`HAgIJuDY);{sMe`tOzP+9yzZq*Ix?WJIGn+ty=!^x=2b2DDKzqY!|-k zj*Cu~7lxyi1g*ibMZHN!4%(cdiIgU4wMO3tk$r|W8gJ|48jj#(Gaczr5i`Ft`Emw_ zE~0esAq|$m^?sO6uj(KCy`4zP){sH{b#+~0zesR&Z>LqtK&DX5xwm=6vFf~#(D7ka zFbg~L>`YR6MYH{o)mNa+2*N-V{OQ?2C=@csL)z-#r@3oBi=Vy>-pn-^Z}l=$9` z+f&ZRt!jxAt20SMZg!a6e608DmeD>Z_^iY7hO|v_;4?KBiC|byu1}DT3`3VEJBi;F zN&)qsjM`A1bfM#g5||3PA;Vr#3jwyn04D2l2qRxMjTM#nc~xPKJhX$jY!}n<>J(F< z;n|5Dxy`pNNmuj=e(sWadEP9ZB&|$q0|{@H&r&ld@8-$9m8)Hf9`_4=)Pbr!uN{IL z1gFh4ao2^+bKo6@qCMs6WM42}qA^4mY4vojYYh@vXLt&JC@qC94;DL1TGCbSVPI2P zay|=FL@6lyW;Ra@GOgQ<%J1mI{-K%ljn0ol#m96ib_|bQG|NA@(s)~u4|nWJ+sOQR zPRQ|VElw20^@ohZNb~iD=-Lsk*E?@k;*Frf$ca~C&jA8Q3l741geYoLhlLL+y?jgo zN~gdXKQD-{ei!D>lZOYB8j(ST!k%ayE1UjTpX%5axh*OD-+)F@KTHhIg!F1+olfA1RE@nT*5gvk?YL zEKa1IMbEZ(Ha8-xLh2`3>3NBy?N0}}1}S`c1mMH_4-?ePN8yAL(3=^&O&yyh%=7(3 zHMbnE9}Y128(YTCks*Nh6q%tModMY_@u?U{R~vd!2UyHUD_| z=gmY+!RV5*F>yxm4)Id8l~J*WH1c+BFTJIu0bE_|59DLbpr z8r-;$g(PJ2&^A;D3TuC_{OEmYy+@vzJL;oed9EME$)A>>E6p9QI1%k!QM)`T+f-nx zulFghy#wPmy8vC*PE7>IoEP}oXUV8f2VBPJ3-txNL9B;XhHj#&-L{E^46C3gEY=Jl zAX*&B3NA5Lpbm4iJI4un6dZRGo71szbiGOE-Wkh0Wyv;jF$I5*MTc+ppkY@;3}+!_ zNinx)n|>nJS#h|O=9P0_X|8QAy3p{h@`b-RkaCbF*YKg{JLB*r{qfWSc)SwV@M&@O zbU%qULCN0e+-16#Sz!@nbO~pBNR>WlFU)ve>u01~99FrhsbyC%3J)jmeFBY~D~cWk z!_KDYOpT`5E=8`kxe@VsqYHIoH#suxKyS&6}j=O&l0W zR^H9m|NdFYw5z(YUcvJ_$%CVKEpCMN9{>ye+qQocEoq<(PPwqzu+WKjt8AvNLxq$m zw1>g6ROIw*@7c7ehCUY#CYk2@})*@HUc~>>sX8b8_TE%%A(5N6k(@7RRVCXC0ew7Q$^}do5%8rAxIg zlEjFislj<4?3-d1wzqGWgRuCr*c=9vzA_9~WS3YNK=+IYr_QJFfME38eUKTa$@ENMVGz_t$4uDWGEuhcd-rY zy<68R&cOVVCi-SER|=TRzw@v*^0&@P-Wk-Tc)5qUY9viMtcledVrQIS?bDLrc6RGR0?SbZC}-_4*?O{ zoCDYXi>wyH7V%`C{I?p{AyrBu6a~vyP{xrzTKWs|wY1Q?!W^Qa`~|C}Ol0rxR|9C4 z`MMvtFKrOZ&azogw-x<1SVK#XAddS2lv14S7<|AKY$b_XqA@YR}+kQqkOt4QIJiq4sw9dDNpE3hgk7sgnI zBhR5fh^uT_a}+1w@UWk@$t+#Cqvz08?042vNhyqtQPe2#q4T%(-A;Ka$`x+*V=Z!J zkv()W066j-?0aPreM~NddKVTTq6V?7&figtMohknZ8N=79)~aHqA}Q$`$wTnw0qyr zQfW*da?{g5vh@IgV(@uVW8dG`b?oOY?dQ4dU5$e>rn<9{rF$BqRJ>?&r`^{Ol0{Zflbth7#mgTxGGGK#)artLSc|Mg}v${QOH7)dZ1rOkjXY{7`J zfDT2DkhLOZNx6ulQ`qeIQ#D|QlQOS;C(qoW=Rn7E(-G*3#)@BcsV%8U-#pPkJ~5aS z=V#4#7|wI^pd%)!%k16nO%b^+Qind>THvHuYl3Zsr-UwLabUG1P-4IHYkREDfDwJc zK{Oe*5}g&%G95XxJkQAyGNPhfDWYxvz2+&R0VLY8Pg`}*x)Fyl)jzX=T1{rA&`EU~ zoQJ>V$f^@qtFZ4LzLe|qeIo?1NH5eB{0+x`kt5G#c27RX8|c`SQ!&}v&adIXh|api zT=pYT9Qr2KZ7)=(WbyuDXQb@ms@`00r;XiZFp+?nus|)>^%&`*qdu=FMW0HAlB+R| zL+YoccXMgd!IAcgvvyHYQaP+AyBeA#eOtArRQ@5#&jZOH1ds^EDsS?R_Wk|nQG;a4 zndpTQgDVsGVxRIP0t`Dsdw*%B`38h9@+%rTW(lIATt<5?VmM;l`v@6k5`uCoN|mCB3h3C8cM@xDEmX1uXAp@EY!G~?`-X$*)|g~StCl|= zq|&6=_<@d6VCBovq(9l>NQ*gOUD6z{w2ZlxLi9WPJfvmKqMo>X2&95EZA`hb`f}d= zVSD>D#86_;uzOrqCCkCSGbGX_f*Eo0h!8=W$6j8U=AbB5M}?NzPziK~BUjI<(e^m2 zSJANj)w7ILol3d#CX%C@bT@z=l+9>TWOY|&OXJSH)Pi`6{x#wXrJj;b4F-!TGu5`u z{$?zyHH?rMO*_vI%@31ZiY zbKA(J4V(3^!s=BMZ!I<;_u9aFp`R{J_jkrlWId4 zJb3?AWlS8Nfum6`)vnN!#CC7=v$UwE$2rvifdN~qj@!c~n5ds5m1I!%F^oPL$4kEgq z08iD3^{X!*nCZqOGg4cCHR=7s9e<|l7WRpEo#UkSF!A$Ip_@E@)Fj`*4 zR`^=+y`a}Kvu}9yJ4uXQOTb1K!A{QS{%-r@4-525mMcF08-%%)>ruK}<>~pWvHM=# z-@;@G87e`iGg|K%C!)m!=!lYtK{98tXdk2{t98_EyfQg<@<2<+_Jp zO0*;#MOed`Aq>@C$WX90Sc!XoOXpN+T>!dEw}DV<3f-E5rp?GQZ_Uo|E5k8!Y@L0c z%qG%SjhG$#o*Gm`V7SW}FL?a~-MIl*zU1A@>3MYhZB^+HOhkfWYm9EFx~^GiN+y7lh_}?r?JQT*Jt@aSoh4(eM8efgILC zT}sHB4<7nyYOvDoA0TLN2?&GK>7)P}(RwT_)ls@XW{U`2(C;6t+1q;JB4}|KthdJt zQvb1FYPKQOf9Gk$M(5Ww21PfeMI=D5zZ)mkTFd{C6U7qq-dN#4+OQbc_p#n_fiDikc9;F&F6) z2((veJO2PnEy|c_&JwuWUHF|lDs*!pVE)Ng3X>b3t}=!xI!B=R2wz|`HEeFHAt7oB zf|Dx?{%{tYaE)D}RDGZo5M1CxJ!13l%|MCeHvu4Q#8_Ytm_PUB4-@@7muHUZXZQRgA6b$RBcNa?jiG&dza+9fIr7 zw#T&!xU2hK_FKEb({*>fj`Y>qG|K9q`B2wQ)~aZtNCkzG~1cxeEZ#!D#+u|JRX zJ6#Tp$?=Q_E5@El%bD!UNg)g+p)FYU}_*%0dq+Az$Z091`n$kXUdxpe{ z+!!7oKN?b($S!vEze_-T$-5S{z(=&Fzfx(#a>54JHoY#z9YHGW^ zr3N&66IHC2IJ{Zq-ux;KiYmpge7<%Xr;qBng-sHzeO`DfZFS-{BJe^EWQ}dr*}4OY zQNADDNFmraDJcKWKlpnBf8*9KK}$+cnoxD+*IVvRP1SR^awM?Md>U^n5wCGfF@@r z*>$+{X+-?0v@?15bqegRoQx>bz(fMNxf7>z*ypaB>yGhg)Nd32^0mXB>CIffZx|Oz z=UJHJmCa}z@tLhlt+$v4*b&J5E$#i9ud9^e8@F#V2FUh494nA~*^vu>XibC!JDhVN zQNK0(yK)C2ky29T*Yuzm`FHaf|49U*3vSx+4H-Xug81-6`d zDwoBA98xh0Y^>kkn~RQ`8#qw;#>C}86YwW|f$gd;d)FC5)*_>*E%D7k-?piYfz{xx zUAHCZLtjqp(0Xl@$7+Kas3Pv$>13q(rY!CLfF%{vOCbDJ^B^NdT%6c zO`VNk*r%Ih#o~pf53c1b$@x`jWUbNa5UR)90s&se8%d;5jf1*>t z`u!YLu+b&NQ0*S}EPPUhCb$kjK{2${ISe6eptc2v<)zj9o@bhv;}UJe6YS$;D|<$! z3Cr9-p(3!BM;Q(4)^M=g1is;iG1!6Wk3hRm_;E*w>>T{PZ*yb1A8UXw9!{r(hd*;y zC`)`iFHbtqY>rntZ5?zj_o}X^*M#?=TSkEv}M! zvKGB4@oY7a$PIpIsvo;*P+WCaA*Bn5&!^*xvgLG2;7Aq9sQu#UhfE5+m49chz9s5$ z>bmQv5jgWY1!EC0Rod|RSu!sHO$4N3GW`!Hv>s7f>?(S{ zIxc;DIBdN@+_4w=D`8U(`Rz`5bIktF?(&UXW&S^qlL5Yo9^P|HP$B5q-wg*#_`+G0 zYjR1tn6d`WR#%8KOC7}j013Xc$KdjvTlS~j0O#CkG6rK`N7mWP$fI?BKHulJJQu1* z>V+ap;hCSz(Gzd3+?G}WXtFCcqX&GGf+%=X4tAOJ=zAO*6zAWZSL zMS)XOR3n_QTQK!^geq*w6j9J-d`XnoJ6fR>OF4sB`EW6qz5-rD+5ZfS6tU1pFMn9Q z>}K*9uYR+%GSf*dlL+-IL6#<12z8D2cBrQK@$&?!+uMp289iA_9i6aU8hbd%*QV62 zRw2zXYeK5W^kL?`oWKUcXRkX7*N6Ec1041EK-@zX)XVQVLqsc)vc^@{oi?+7aywl5 zd@DttokEghsQ7NQd>wPoO!hFv^?@TRc7m$w3 z&Px8LENlE&=l%LZvY9+pg>D;5cq&{8Yoh|aH%E3^dWA&n!g%ngflFw+fPWPI$typjhbdim)Sy}PP%#c;(4WQ4({-`-WC7E|?Zxgr-THT569gD!6H%T3lIP3U6q(qb zx;=gphjcP+dM#6s@--Q5mQO^SfvUsE8o&LPjbRQGXTb?h$$=9`v?mOBEHqj5v10pu zvy>X$DZ=4Mm`kpR_$rz6*Pn<+(PZUC8p4E(vw42h^(nk#opMX{wr4O*lH<#by;1JI z1k9NxbtfHH>P-fOFo$ID?LK(fRETvv#bI!cCA(8`B}WX47vH3K_4+clo>1deLn29& z17}v$*YqgkxfwL>kK(oclEwOexB+=N@po>2k#IW<_ zcZT11I9&=PP6T|ln^F)u_Uc%Bf@cB)rjieqlO&vSO_J=mt-9Ys2%87xQ8Fvq4(%xXM6ELA@9;5d!#jALO-uEy|5(9X@8ufuUKZH-?=cJFuO zes1$iv#}kapdgazlD+=}e%rM?I67KvACKN@fcupa5MMmAh6mR~m(LacTb|*d6m*`>q z7*d8OWKr=DIrbZ9c4XLkceW5?@(9i0vws7t$~QEzaVU(t%W|XSuDAh*)h<@TjhPIF zr3d3QOO`2X67rHTM}EptBCfObG@aC#7RGiFWZc89;nC9a>Y2aLv-o;uz~dR`&39fe zDa)ji8=`4Fsl~;rb3jTIdRQdy&}PFFl%tf*+oX1=$*7erdzjYnQy4`$mL9r$VS|s}XA%@v)crcyM)Qf39 zzO5PQU_U=|n?|1qpvrBCjK%N}^taKJDrRMh1@A^wj3tkQ=ac>xVTKnW2cW4bTsSbp zK*c7Ut!Akr&@xhjyZ*du+69Ay;00-dQ`#Qi8Zy5jN7&S!S_F+UkE>^Q=J0 zslro|h|b(mt~LyTfanrHBHM#7a#As36kR~?ii9ln*wf*d89QX;GJrM`i{2k`BU7+{ zcT1tw9EsVVZEw1>e5|P;P!lOCeRgb+Sf*f1$@+Xx=SyNXvAnUKiH#R(pDXs~BdC@I zm^-(gqNC7Jj5(**qiH`>>r++NeJV>IEeP~(oAU21rkbTba@fH|6zEU7iH82a)JT#4 zjlKHh2B~m~hT-8T3zGMvYR}$&6Mu~IDekCDbxW<%|96EsH0{QEHK{>!7XMxZp=j%} z*0#OkGzvBy!`f0!$xC2!EXL&TwaA4(}cfPkehrKyb8C2*_DT~|Sas;GFj{JSrZIYu^yVj+c^ zFu$8zQE_`aI0+jZQ5lgElJk8w|j-ofkqy z)FpV4MP{y>onf7J%?HwR%<*NoTKd<}q?8?P@;4<7-q|pGP$h>wY|PI~cJwXrS1sCZ zKPoa%!lcx&X3D^Ldu+SMym zLBIzP=%I_F^Gsww?$9F zCWrH9|Er3IyocK70#iwRR<*(YAI5u*u0ZLgtou@9*w|{5g*v)%Z*z>nEt_q1w&y1N zfg~c`fok=!-VF8<5OZAS`|2FPfM|SDN}$A<*mIceGX_36@0e1DPGd;3(Ir{uIe@Wbc7)c2xO7c^mCK}_v<_P3#_0OIrLAHFhS&4irTMS2@jte) z)#uw!_k|aXOncjsCX4A#FKZaut!|LdN*}1Bt)Qsr`c*-tL`#`B?gzd17B#3(M9~i&>X~;L4u*mQkYz$k4ZSDO=Dmf%)xIa&hwU?hy z@-wANuWP)1Vnq9Xx6QKP56b8>QREw@t$vRJMp&*;D-RZ_ z&o_b;E^>y$@V3?rCyC`JxUEWsG@krb$3+%jpFPru;TWUkza7}edl8Bma+2d9zAO2l zY!MMGjd&c{L_k|WSb4URci~cBWu4U z)NLZ64aCsiLnaRbVbVK2riSs7I>!FlR{VYk1*K`G)+Lq=2R*}4+BTY_2P7o-F02nz z{CgRZi(u%7Fg~Es@V$^{XW3zQ_LgDgp5>S~Vy%Np*t_j*bx7miWTE}*bOPM4e))a$ z#&Fxr)iyDVKwgy97v=uw)AXwdm)T?y{GXfxlHBM&Zo>eA#L$0ChA=m_Q>=RZA%NPGJ+1h4E$`C5g;PY}Y(K_t z?-Aa7J%;z=>H4Gs?&ar(qsX9nzv$iZ{U*4%vh~+MQ5ML*GKJUl@a?H9oCb4S20#YX zEuI@tzG8`Q7+=m7e-!G^Fx0wHV{gwI$yLvwg{O( z7@7-nN+3NPzy8P!wkaDyi{j}9fzMDg^?E|YV3N#uvz`0KVgIM8%V5`yen@bQ(N6yD zsED(#Gah4(0((nIT`n~ibJ&N|PwEsK;$n3n`>hW5?MHj(Z-`Z`cY7x57QDS?NE2p8 z9$=oaSfX2qGBAkOy>layGbiegReF>4v=V8`{7SJ3HQf`9rm!46-F<<2qJ|JG{y*Ix zy2@CV&}uD!Lf($|efL!lXX6)0TNC;Yex1|l$;w~`3znUP2#*bBjb$t%x)Q0QAMR%PF9~N=fK1f zXvkd3M!))aCDSqF3rIFjRHz)JZsZZV^hxm`((o!?+`T+OAK{9X;)pNI-xf{sIn!rSI6E+LiA8D{_ zXn2>-AAa`Td3%rdjSH)Ew72fNfYUXQF6F{+56NF^%8jrpbsX`p@u-$oa+%YlI@|oG zZ2M)VwSMg0%U!%^Xfh^x6*4Ly5VU@O@Fs0W{-UkffIXBGENf1!}j8<8B0t;KjM zkaD&>&GGF%{@zl9Fi^Iv&U&K9YTCToBQ5ZsCmY1m{^ev!K!@?y@7;Xn1wLUv^*NF31D$HJ;Y&}MI9+200(qTyxW=<<;*b=%#s0Q(u+Whr4r z8|EQC5Bk6}3x?dy;Rr&vcxC;fmC|ACHBGn8g5(Bi3cxYmWJB}D?dz;9)%V3Pjr9wWHS`dP7RY@{Y|zJ-uqQp z$PC#d>Wu$DF(qdc99f`X0YqGM!p$TZmZ)iL=p00mN5XBUm(&|co?Mig< zW1=-4BTUXx)BIzE9WMP(=ay8kjK8Z(0LFkTn~-DpI}bi82a<#FSV^pzlp_Oi9lu~c z+{*1uJGQOI3SgS#$cT*h^JYy}+wfRMYmVLL@uboRm<68^NG^gDd53ajW(^;2OsKn? zC>r)+q@4h*1S#o~Xed7|?J#ezlEF$Vi=`B^9vszzV!fvHKs-2ApVs!gISqZ!TCj8` zQa%WsdL>m%6S%IHCUJNX70{FLmG6VHYaA!3kdW~%Iy*_Hm*AhIJ*ZV-{n`L?@`E^o z(VYS}R_o;==;nM1qOhEz96j{*o%*e9`>wQ<4ep>=kV$UP(Ru2sa?3N|{8R{i{y#R2 zL}6Q%9=Rs?($D$f2+AXpx5o>j8%NX?&An&fhuuxL6?ir-Td@%o`|cx+$t4ETrI!hD zz8PktgXc$R=b0;c;%f`patncO$xn^XOQfvJJJ2V$>LT<(FZFu`qx-p6l*1!X6O94V z1N(4zx_^UHzmjH?t=bt&g-k}!2fj<2DVrFQWY?O~<-+6nyWPAA>-DJpPxA z80J_1Um6jav%$=Q9(>H)tTR|s2=le$3qpH2_iyF>$BGD}F>cKlyZFgdiZzO=rw zvUQ*lVSAUBkkr(`zLAoOIy%-%$VlZ^R^ESQ0n3CC*3d;GQc@8)E zzC85W6r}V#f$NIsW^#5}QcjcUj)uDKd26vj)yadxdM?hI082p*6%o$KUf-( zXJ(MIWaX-~{4;(G(YYs5MmK#cEsvPc7F3Ysgc*LS^__r>G1dBJZ|;OiIE5e9LK`y} zJ857OazSsUwqb6;u*15UHT{kBgFMI2nzC-uibD1#?<}z9Ha9aH@Vvv^Sx1{1Dbnzn z>$+4$8_~`4)b+vwmKA$_!)$l!wWwET1MyVs({|D9>ufRe&CgA2zFv?iLALg&rRlws zJ$d$&OYkOtZA0#E`j7m51Zb(UFpc4&l-4woZ<1NDOP^fHx4grT$&Rfy`z0YB2DHoF z3o$<9nzH6U729iW7&Yq~FgEv!y1p0eif60RgPFZfyxTd=no(L?+n2$i3`-V+JG|S-ukt;qZ8OxB6bU(MU`r)W(?%E56A= z`Oo!xeW+sDp721stKZuhROP)rPeS8fwd5cwAn4y*j8Q262Ns}TZ_`)WJ2&QjOJ z*cM)4sU_EHt-*L}6NqOe8W{m8lbYBHFmS)!^-HZK`+82m!xT+SE`6rxoNSf*+c%NI zJPORRK9SRX?Dg-2nB*+cf;ThrPqoyx?sVCNhC6dS;_v$cx*uJ~gfEG52!yWL z**cRU>h$zrZtILYokw=|Bv)4mL+ahXB; zy?uuH+$sjI`F)VKeG-k(Gxj_(SFx}AL5ssD-M*-t>eS^8T=g@y>kTosK$8#v%ue4h zcAJv`Jt6TA`VLCs9Kcd`+Ej3ijvIl1R)Z-bLbJ@@#%8THU-3&AE%yTo3m`(Kt_ zb~@46buwbAuzp9w8qc3kGEE_|Pdci1`%sP1*$RhVfJrRdx$zmwNql}D5old~Vse|6 zsvO7s6`zv`oKOvNe=94bzA>I+y(vu#eOp}45#kZSRc#Z9`lI$oOdY>Oa-9B5X?9vvp}>o_n@}B(;xKEY}k+dkBk2n?4vtpIE0#cC*$D zDjEe#)UC%L6+@73;#RE!3W-?K5eXV2oziv3%U3*)mz`ka{njk_M=O?bpaS6|^vSsQ zQEx`*)oEh;`jkE{pGOU7#0h47Qu*wSOQ7~xkPW*n8S5Z->#ael)sxmgWy^kh>=KW4 zAwlD5gY0F)YJyTU(jxmRUmLIVJYcuHX9tEr)Awv2zz?^iM^Np}n?P zz^cdI$$1`tI(TBNdv}cWB#W7AS6S3=*A9P*Hjry>az%1zk?@7C0~90+$BYB&e#dSJ zzDP}(!Iw8DO$2*b$?f{Ck6t4~S^0y5@zH4XUF<}yGXXocdf+U@tJTDwq*`lBzpo?o zj5;gt3vbfLQ`frI@cg33{A{mf5C~Ew^OU#LY7vEt99^S2zC$bZGDSWnVPPN2%DHg^ zNw2dP3V3IYmD3qV#-Ao`-K)ZEUDS)KJGLnHPLA2bb0K^@=UT^A>V0L;Iar!rYqL^@ zx5-q7`i3fSv*dWU1^Ioh8-dJ=FT)eeJ!1H@8tnc0z$OdG&~+t8aa0OIVqk%q9cy!Q+u|z z2gl#zTX&@0tkVg>?FNBY zR+I!&I*FxvgMZ6Fue}p8Vk*Q6n4|Lqpq5}$c$^D0r!4kJ7(Kgif4ol!XMmdw&xupI zk~SLY*?QBUe6|$dEEWee$Tk-LHRr@a!y9=MuReQMy*_rMm*ca?w)xVq9In`tzeK3c zQ-qK`lUKQp?8thiGcAvhwSNyvcLna;w>=UG$_#S9-fV6Ku82OpxP|;O;AV1xk2i(l zINLm0pieBDB&c(+w}VCh`G$&xA6()Xlt_DWtVkm)3{eRB8g4`KJIB`(!^BH`S!Zaw zw>piO6S}Dl25+ z#OM_3l7uY2o&M_`JF+#lNOm1$XTZfDy1P02^FHDKSW-=%4&8jzuy~ps~MgL3u4SCDkKUE&X0EP0s zzm)rp4$)t*sZ6}+NF{U?EPKnj9A5T!u-JO?bf6EJXTzwf{i!Q1b9>uPfoeW3JeCiq z{fdp!2@8&QXLhNhxw$C)>QlGBUtItG(xMWD<|Efni3DdNo%>$fi%PgAj`rx2r5eoe zaIdpP3mk|igE@6T<)fXyZr0=~J?~-3A|6%&7EJUB|KuX6chk-{jTLOXC8E4Xo5;z{ zCjx^>dUA&gR{zvu-I!cA?!q_U!R7_h2kWV9AiJ(m5OyUOu-~Xb)uGSe$8!kwIM7S% zRgXQ$4kaZk9;|$Z?Jps@NXhmxV}#|Dd;}7h=+mGS$j5-_rpJwt?}SsymCqD|$uag$ z8iny(>Xl*>N%lYz=y?Pj4}p7hNyy9gTm|M%?xl&}#!J(U4@P^;_36ZiTy#lEiQvqm z$9PtzIFQn8vV0sq=IjFo0h*XUFp;(mD9?R;J1zgsYZJzC%2JifqwVFmwVu{OOz7*Tx;7ZU%Yb!^I8w;MFRc8F*7Ep=DIqyQKF^-9b(qJivI-fRY2 z>EGp)9TzCW=tA$)XaX}a9-Yral1y2J*iZL~+W4+R$l^M^JzJ}CJCi!b$#5(^74E=^ zwQx3<0ylOf)k;oM`32Bp6qkf9zDc8roI+zW0s%f!>m?WbR64(-kx`;P{W$-8tC{=d zYVFopoW|5+R)@pK@@1>h-gcjvyX%ZXxiXWJn#3+)J)Bf@8{H1 zQKt@dsay0p-M#l-YxUYxw?t%{=7&A(3>iuFT95ga>NS_IDI<2(&rjJYEle_3ia zp3i*tz1+hnfse2ANPt&QgSua503LI-KO50l*EEYnJvK^NK0-M|W4+K$`K8H`#zYlnp?4Lhfw4^_P2S$# z`dyI?s7&nNm+wVcp_>!X#xcCo7>>UX2AF`Ps7%S&LlOxK={4-t$d%}=!o`*?kpTZI z*Y{Zdi(x6(n`q2W;$XCJ1|}nH!irF-lM7gIj7o3ECU@{t;^S zD7KQ0W6)|5LTuGfzbhoc6JI6P^+rp;kd-45zClH#sk?4O6D#y2sle^8LK#~dsXbu- z5K^XotN@wO;urM(y6ofC%yeA&Z>jrtW{%@VQov?pPIy{C%$O<^glI? zwwXXm4fb>|{^j2~4t?#fbUgP1iNW_Rsa|4sdn2ChPPj!SUk{$)sedBH&j~yx)g&pX zdi9|cVl15nj#%eyGSNa~X-_O%x{C}j|JaRsWF;B&EX$jhMz>$>!CHs{Xn;Gz!^58% zs&uy0c$x+(QRlRXIvx=0wUpU?v7uYFa6vayX}I=LT|+h|g@=a-S_xG0;ikSji7(H~ zcn`(^q|Z!sOzLD>@dI5Sd|u>qU#LFs*2?n!ya~ZTe4Qw!>!QZUP^EzEvgwouS5OrY zG_shTFtG0hX#146F?N?^X}#YoFoq(Tt`jWTYaD`UM~~v1`vJG2tw*c}3&1>4DG*Nh zv@tNhDwBjst;z{sAYl4U$M2UXlfK||O=ZTXU1sbB~I&I~OX3;5$J zD;jLm^IF2t2&R>#P0bQabq**q8WCj5UXNXJ3WCwVDH~l%ib=89wUq^!=DMaBSF@kH zW|nV=40yBG;~R;T12#;nKeU&;L(_GdbbsmE5LVSFs5t$q6cu%OwJzt{v#kH!%^XK6 zfi){ibOt;)KttP=6zZEK|I)so^ylEUZ2g_65~u?3 z&wa42Qop)kVZ)9J6U!q2ED*RsZi8XC@mPjfBx{YGBFCMnj#7WYc0r;~>1(*GOGlB0 z8*1(g?!Dk{n4M)T*QV|nTsz+rjSO6SdF*!5br-9FMMTojQ-{_49G!$u!(<6U%?FjC z&ADBa;t5WS&y=21G3GX2v(^1e1qE-uifY*%+#t&Ko$E>1hGh8Gg65-`ijVp zv{!Z0`(IDH0!o8%dYVQ=~>;*-9zcc0qr=0^;M`&bCL>j z-Yi7e*--=p_S*~d_d1g$tOzOE{?ISG71&o7yip%EDkzBs#f0VENHNL}q=_W*a73PD zwONfamD^|N5|8$=o`JTR>u2a3!GX!$pO*m@yg?25u3xCnVWP<=l^`dAQViZ<`RJ%E zh3)^~!3UOQZe7njo=U7Ii4Z4|KeA=1rmw4vdz|ZRzL`UM2m#!#I@kG!4;ySOd;=Pk z1o{60u9=a8hxdlehM0hZ=~f@nd##xF6L=Nzod#dq$Dqu?wV$s*|Apk<)t;h`APYkw`U(X@ zH3qCVxA~#^(sI!_}mPo{S`i+kF=j3_Mmd_#NuOI9p(e<4jdRuW8Y&}*crt`LNB;pDXPV+8T zDoZFSI6a6I6m%#lDG#FAfoxCmaQ^%IJ`>*7HG!|wrL@?dFXege$Wm&>YKMgj^+|hI z^sZP@rY+6fkc3$>!!7`Ih(L#>GuX5xNSN>V-wY`_CIhdzB8qaUA%?E?G@4qm6}DI- zDS^$^-#ursj*QZav3t!fE+wLG@l7N&En9+-I~WOyGZ~lH2FOpYHdu@&bW2htpD+}mCF;`w+qtUU6!A)A*eUUVC{hr z&rgQm3-grer|ikVvxPI^tsLQHLL_Ge4Jx0jNIW`(Ws^!VVvSrmmaO zQbq}Fmz^Jkcx^hiC#aZ5;3c)$v2+dCGFbKJdxikAoez@y+I5M^ z_;AhP<|?<+jLb?mZ6Kh-Q<3p(0sO9KQZ`uo6(T#@HAnSrlm>a+L{ABH`n)bZU-W+> z!=fli5Vs&FA|+eJ2USuQFfh((7osl1JcU2<*GhzV0oN zLejs%eZnP6*Whgvi6|>4*XuT`Ys0}gkdcx`f#Qy_36a$*^n$?Pc-lne4lbAwtaEze zZiltvhNT?N~(|Q@ef3BF77ekxb zpA673@JzD$LcP5`+U#Ya$nZ&Cm7;^=h|FsPc)1yR<3ZBw3n2 zn4~b`FBJZj4O2v% ziTG-n!z>yv)SbhCk(^x4_FcShV_|FA#t-#N=mvZyP>1TaZOmCR#9=!BI+ag4ZxH5J7NzX%$m#Z zxT9s=Iwsf=^mbl)q;`unL1UM5n0Y))lLod4ERBsNa$n+mt-fAg`-H___IG&bDap%A zDl22%Ajq8WGrLGrjCc9qOdl(`Ueq+-5WbIK*g@+uW9tD% zfhJZXmNjZqf+u+z;~W?vNwtx@bUcVcu(+2T%KtJkEHjSs+fmmrOd4c+z|&+@TM-3+ zM`vnXl54(&pf;}qzC#wSGQR0TarVtdlTiX^W8rBDck5#s<$9j&ZZ4CT$JuSrGAPTB zZ6b#f!GX)}8qi9ov1-DM&aMs#3?h-*0v1-s&M&+d!Zgng$_v>V%)Q`?9*gm%=#F}3 z8^*cq>-x`!b_=w#bsczLj{;`La%*f|f}!@O z9+;S?>_iOu=QE>XCl%YP2C(d#ED;|H;O-nM3iifC-L%hffN;+H z&0UoaFQ)ISaHDQD4qg%@0l&qD8@?am|W^LlcIo-I-Ix2A@W zJ9}<;1Z@o=sG8l1q+;FM(%I`rR^4gXTG&yAaR@Jhe^?jLruB=LGg}4LD6;u}uoZ2y zyVr!K_7L|Uy-WzYrjlSgy68c$f>E@sb0i*$uPi^lLm>T*DoAgKpnO8i=wZ&J;i&yU z=Uc}d%|sVRsYs~1kL0A4DW?~_k20K3v1;v5`x2o0tp@18a*Xxyy3>3{e>oAXHrYW} zwX^mPUq!Hzek9NDz1EVKc=)&L73-Vd2f^Cy$1v}Cw^%#dK#|w9)jG>ybl9L84e%Q=WgI9$b7FrGOu{#EDc5JU_yxL)s|OVvaXOtJDpFeRJSIRPN}G&@2A2lMRn z8F;I@!cRj6&@QY3X7Lr9-Uj*@)Esj5&oEiHbfdh?A@Y4x8=^++O9U5BHv*S`THSW%`cv`82UPtCF>t*fw!Mm8zWUwcz$%(e{CG9cw}#?BcG0L zWsH~J!%|=)x|7mB+5A%;Y#3J}N2DdULm9da-v8cwW+Grn#C^okzvwRw4Pp8Fz8g-p zT7zgCQt}JH&`>i}FMY}6rZeGux;|#`J0sO`<#KsB^z`H8P|J@Z<_mZZMJXzD`AnvY zUG9AY-Il(u@e?7I_C-2(_T;k6@;A$&)^wGA@q<^V?k~^j;Vf{YF~xrs&m_%h4q2vMW&( z`H<>xVK2|;RsDk68Xi8;dWh*KB{k08T%&|vu6qVU-!*h_jQmbL-BUZ+?67q-oW}6y zFPi~V1FDL8tjj^E0W`NY(aTA5R#yfvVzJX})qwlb8&9Mpe4Qg@-7!Ws53jxT9Y^tUx<-@O&}o)o zS~`ua3KC1uU$%2ECR0hupt9BNQ^TQ8`a)_LT_e0fT7mT%5P#kqmhq*U0EoP zITe3KFQFJfpT>M%Emx>y*ki+X89>*6ZvOpP`nr=IOlF42 zH*1c!9~+;iWPgS&I&mK35N>oQ@5dqvvJ|JEn$#GBlTx$w@}%}dDBRp602DYpjaiIq z#>Ei&k}&Jy3XA6x)owsO*^MeBb#bA4P2}W9oZq?|PA<-Q72NL`8?U0|UVMS_%sI25 z9BN^r&a&ZA05_OAcp70|Q_<)BD}}RN;5j>p?x;4opH)!qZVFWADif{9e8;t38kaiUR-1FTc!tAQIpF9pnxtN`Tb7A}WensEI;igKGh0KL=@1ULR1%3G zIFU157}4O3ZFaOi+j0#?3k^Knrs{Z?x6=;tnkCU^vcQ?(gZ=u-yxOP>FI&K5H)@?^ zni@{}kRj`zvt&&uOT&|a2SN1xZXkn`V#@?<5 zt7}Vdx|{kA-Gz4l04zs_Gk=cA>yhj*p{ggDDxJ(npANYW5#YgK@%7h7#wZrPFz%MF ztP^4NH8dYVa+KJz?$U;u>+#9mK0b>#DXGrzX>Gs)dqhg^#&}aK;(pw z_`ubF+|%K>nEl?8v&?g*uwu{bfyOvfml2xOuR^fT^KnO6J@J&S)#PAOFvaKr;!b>h z4E_NI7{h_lhlM4V-;2^$>)q)8iYX|eU_^y@KL^nV$4v7b{+ISOjYc8_^<#~-4z=1k zrpl%HFNN0h?4)9qsRDa*BWyTb3dpG7Bph8h zhcAg98V1Hs0}${tKp#s>sSJD9N{Cg15&WPx^Z2X^%r&D=ocW{cBp-MJ1XJz^46;{> zqe^H+j3a%Q_!pQg=>UcfWW)wEpd=JmhmF|4YJ+P+q0W{Klz1Yv?*_X)YPp|;)4-iN zFh53Z4#rQM$tuo=+;~G_;)IS^d{;zY{5fhl6_S^*o2J8C^m76={=BwB|gSegj+*3rlLSGhd27P((fURTe%Bh86>9zvQYV z7gC!g>mPZtU-G$dX0gIZV7!e>A^Qz>&BfHq8u+4eoik#4TO8&KJ(T8#1_G9_u)sS1 zye)EB(R|aUqlSm*EXg_U^+FiL2|MuLV2D2AyJIqST?RsX|IEC?@Qy78=+H!IrGRdj{j)8wOz4iLHN!)>4}kbqChS>I?ooMc3Y z1&g8VCdY$eZfvb;V{(P-%%Eg@5%AkEF3E2sf|oPF3u*fTF6fFIxqjyzv_$wR+>poN zm%mVE>AIKsPg6Ck{=j|WEbp>aV#NOHa<9VEc|z}hqLKgiGB2XN7!RHd7DM`ikOMsI zq=_dzrm@IOFX64P;&sc+N`*JFQ8|C8wbaC_xFT<J z6IBX|va$e=+b&!CR?t;U#`d6n@{=-Q+dX)6Fh(u^%^@cs|kBl$PDuT*!S*tzga^lopaigdu!N{F)>Qk#l zs`d}z1zs)Uya5riwhwUlLcL>K*}%=OOU!ee+EfDfd5>3o?pFRz--C9!-vY|1xtmTh zz@oZ*-K}ys+P4+Gv@|S){kxeXO1@LPo`JhP=ny$f$*?m62T%OiHybQK)FJ$x-Hu?}wKEXw6}+}PPT402Y+E?9u!e{Nq8tXM97zUOh^gyFMl0oA1m>9}lX>N)zj)w<^7}VW5 z%j~I)Bi8=Knp_Md#uA}6(+}*!)n*oUA;a=H#FNUl4b@DfeD~c;GZ0q+X#9&1rAph* zi7)WE!lTAfVY%umfJ&6xi7WgW(}oy`kG zcXu}8B}^kY*g>6o5>3Y6UH0l>nO9s0gQt{fA!V@mLw+VJKtmCqCEC1{tuD>+tE06e zG?qY%%X`pKXzYzM2`xP}S?^aCrP+wdVLQwOLLPw-LUH#{${$gu%bQWUlnPCm*^AjZ zkHfA{h~B}EUYjz%fq_Mz0f*}0Kaq+FhEVZ>nNHY%7PCJ#b-ZgZvqulMkJ5;iL5Az^JVC9y zBahe?ZaLU23A1|cCKIMHS&cE1*CeUR5w0nn(2kc%RRt=IWL)If@j4lc5=)vNQLZ*& zh7r4$%>1SmRXLXM@PYrqcbo z+vZvC<`_siqH`D+3X>lPRvgNid7j_ISATx1I33zcens_Kq6O+E%GkDsq|0e_WH#L{ z>PXxdF&w8_6eJ?7wz)e!qZ2u%%80Jq^X=)qR*o##SgcGawx$CgCB}Gcy-S6k0eEOS3 z&NnnJ@&p)W_`B+*NR%yrd$K{CvIjd;t@`3vj?D8TcvD%QaJeL#1ASShL?i-n6{^-y zw_3|y+M=!}I+%1`0c;@mN?g^FUO&LGsuNzn?)jx4A={ICl zQ^7w|vId^M)x1Poblhs)!eFvZ{I*?!4pV%f|4eEeX-zog^7J62I^{b!c=RLd?j=|n z(R`q{qg$E$`-9t*$gkrpRQ+KQk#9wJC2&s#(Dd0g_So)JiovDwd~E%;tMbv<@z;nr zVwvlaGwahBN^2G#h43Tzi^ra_XUfEwA4z2ZhkU}@pxGtJbxf9uEmsHthg5XPY6oVD zFlI}biGB)Xv;q2QG~QAI%Gd>aKitcH7g(!{8kQHngDRKCD71~jS5Ci6Zs#Ls;**=u zRB6*dh@k81>&kT9aZ8XR5ks<3D$c~&%sWj<=2<7NvCq_8tZ#4ct?#D%75R ze@rXSPbV3Y01+i~k@W{I2E9XMaV)0$Ydem0&DWe4r}N1AR^Gg@Y(0-Czsrv0)ki~D z!nOPA;pJGWTPwng>&f@=x5Bfjs=uHF_e(($A;;lQEFawdQflf^&V;ntJQ%UJ1uDtY z*t+WM9Q(aPZ_X0tM}Y2>%mzENo0-O(XAcIm0dKp3^wvmk{6eQ`L@VUGXM?Dyyz3q8 zkQUu{#jA+!-&Q|ZZ`f(K%XNNE^V-pyx9fhf?22?Gr~8L~^^;+qNmh!0NQ!zQllD+J zYU>G(()45J1!M97*irZ!4h{L3UWybj1O1zcxZ!#_2482+KO|v|T=*@MGGlq*rjhoZ- zD9Yas9P==nDOtAzo613>CvB|y{~6@}ABF;?oBiJf@xN2*vZuprZipRFMN$$9yPv$n z935AHvAKFP{!LcHBEeAeluhX+5nktb@T>Q@NDo>*p%J#|KQi0e*{s4Xw9+%`^IALA ztIDMg(H>!*v&%J7`9Z|@NQfsJL0)YY)*6bOg(rdc{{5E7Bk9ud&NM-r2pzK6cbxwP z8&6vZqY4Os0oILe_CUyHwjBH(Y8|Zh2a*0+a&8GTcf6MLW}duvgmOp@fUZM+Y4071 z8!LF`!HuczVx5>`j*%NI^4sgpGR3oW^A}z``(R?5p#(EoIX2ku)s%pav^}Jxd zz5@X~*H=Ab0}jq6)X68Z0b+tXSf0U*w#y*cJ!7ay8M4K9(eD}f&K)*8smBzd#4Qx0 zP4AuJ;wwgc2gxJP!wCeeq+;C2 zw9&Etg@Ey&!6aoE%1sf`Mqx~d07-dg3ZBILeS~SDAIIj3Jr2PIkc+pf{5nU69$Wtw z?y=txsIZ2Hf`(k+Z8L*zD{i};tnIiS)CScD^7@RSib`p!{xxxN2{Osc`i6T#(?|t- zV2m!ga%u=a{II+t+h%Fr5?m745WUO?HJS@pFV$^34pqgRL5|QT9PMhp6Cb0@eH*K5 zD>D@8H+|{&=T3M=&>}OF0NIaRk*@4!|HRNTyGy*b^**P$sb8Y<w(z+WSN&Cy6 zpKfT(?9K*#G_h!Q4Yl_huc?hyhz4gv3D2>!dS|=+6iNCx+*wwhUkvG|j1MEAyc^t+ zq3EIz@6U|mZe6&Z8puEz3rR~p^&iJ*MZ`C;j`P?;uUF>Ev1Z^xyI-keUJwY zt1f9GO!6rW>C&NM0@`kGRxv51Qg&^v0w6UmzJ+93AaTNJvFuI}-}$xUBBSQp5hsw? z_GDH-*B>}_<;OQBtTwoPT9JdRZNB6|iC(lR7z=%QMbq-w8fx*VBYW6Hj~z|!&HeST z*NkF%s4zehx39(a#-09hI|dwb(q?t;FvRaFwj4r1;W{=P&<*_7U4s?xv=1AKOtd4i zLNs!%!syZ#IF$WN!F~rjFp;CAsySo+y%?L@>GW34UdxVOx-25z%59_mq7>VBuYT+nC@9sd_eb;q&oNhzm-?sj;hSqN8C05Ew8!;CP|PO6n%Sn*UI>$KKBsSp9#@OVQ+dKW+%!;JP$0lt{=5K zN@Z>sI_pTcw}+RvCsOt58Qw97>VPmRJI=Yw*7&tS{@%dO16Y8_K*?CRwL^oJ;OGa- znNaUKao~3u64Eww+Xz|L6T*i=;EsIf(fSIJ3PP@uxEY4Qp1dM88^)>*UlMA7Sc&A` z+Tq3CqSobZfL|rq5ctK0?Jkgye!)hoD;;n-vC|4txGfD(foup7lZ-h894M;fC}fFd zi?{bP#v*W#?O)H`Ze!)j*K{f+^8e*Tq@^Apu;{TvNtwkV<-8rf7ezMq0tAu&@&tGY zjMz4js^n(Xo2daPXfcqXL;&GcZIu8JYu?oD%h%ee>@(-|u-M|B$ zuNCF=%_-4NW;Z*Z??Ss(#xaQ*r_h~2cVAC`QK5%LAgWex#LD=uk|)SdC8;XQyKjT7 zaFv{M&CZOamrVMa=cPbO;1p006-bwSalHsmmV@E)EYBe#p(^|m@O$`3J_^LREY|Uq zwq@QlRp|>SAw|&Ww7HZVySVC8IdpUPh_per6wD<;)9gXQsh{FF>OvvPJ;#Lq! zk?`J>=!1#kaq(5ZDFqCr5DG(ep-Wdn!GLpHd5SBrEZzfSVbC85?;-7z<}1K84JWc5 z0yY96qEv=uS}KC_o4g%XU6$O%NZS{!Gd3@ms||f(P!4n!f?&z9YhTEHaK^HZrrin}YN3Ha!w8^o*spA2Lf?;M}Tw)@-^SZ*y_{M%| z(bP8lq1KS$2(dXz;*i9+M;;@jCZ{>-_D(bMC`V*~dBBM$oG4(yPhDF_{{NvF*04Y* z{`3)RUrV39`1e#uS&#BAsYl1gpuQ6u9C9XC>J+(V0!t)Ud%GMNT`neAA@{CSM_1BY zl8Yvezn4%}6IK?qwCw4+g&Xt$0Ij`^&f?6shW8+a>w-dMdApSkN+Cx&Zt91$xZREj zl3$bni`Ap@I`4+%gGBHCg@RA`_tDyI;26WpU76_)&_(vrr zXBuH`(;SKN+o85I+EagDc215b>lw}PX$1xN*024aZ@>4Vb{r8*d7%fy=d-u0gRc2y zA#;lsNCq225Bt>i$ACoP)jZ`h3I{i(;_TTG8Gh+nFaZ8o2`X_42Gn6rFXFkS<#)4Y zs56`bqDGJ~6^Ahjn;i-RfdJ-#xCKC`v$2Md)6&pCB?Gj~4~raQBd<;VN`{Z>htU47qZKtVo-JY2+SO!molif4g) zNboSAqgb|8JbZG+gbuhCRhgl+a(yzmNV}O^>mK z`!OIc+$%U*_e`sqKD@}=x;*jq!16yy+k6`R3rk2ugd+%;LB(A79T=#%>25^-{sLJ1 zDkk-7`JX7eO@N)#LvM@_k2YeZ^Bv`(g&vz#&}3HCH8Fx*kAC@~+H_&3cO3&L)Xc4S zFqd8~pMkGFb{4j13H^6yFj1>D*U673NbLG76q2fz(?IpyPk)p;bG^YiLIh^D$nB!N)8eLWtHMJgxgaSxW)>qnLomb2)X1dDMZk zK2lHQwHP}1Bzpz28QEfoOrQJLvaKooZD>12;tk$}aQ|XdTpDQVuRslt@`-_9temz` zb|wb~kmhg@gktR!-T@jg_3PBX)sT1OMj%v2xIMw zGVssSGi}k-mME{=j+XXNp9~Sx>D)a&k4CsKYC>VrZ6XFrOI*9VxY~ZPx7VPp(2%Y+0ER_6QKOf%7e}CuBdzO7upD`+y{yZ%!=F5 zV=8eO(#4^?%xndvEHUS8!f@NocLY7}06&Hev6m6}>7KOYLEz=)!HNdI<2(`vQl0xG z1Y5y3eJA8%acz!}0tR>6LA2R3tTRQye`EhJqngoa%f5|T%M~t0P)Oz+qemJ5cY`|F;8m_J5reo@oDT;AHmSX4ZWF zZD#%dv9EH=<+d+Mk}ElR`CM4bXV91X=TJdBuoSKQKaV8%e+Hb@{LK7cEdc2A|F^-r z%;@E~Dlio|o#*o#j|hAfC3^q8)zwI}_WMFft_^mOzAF`=#4HhUC4Oj|Uqu^QIQ1F5 zV6us@(e5OR&Yn)h?}c0s)d7iR5MD9mBoL&}bF$;$v+pg=jM$ z)InzNU7Tnqx_Z7Qq(GE^f9F(*i82%UI4~?i)!gPPH^)laU{%E^%yQh|AWgWzmB10I zJ75nR(?(DZ4PBh#W_FT%9jmVT-@M=;NtRyb4bRIlzfXbemw-j2Fu1}tm3hJW?|!$?;oce3Z$ae^+K09*JG-oK}96WTt;efjCCnQ*{Az{YNZzVaY9Ribu)oitj~F3e7kyK0P5Luh@g59%-C0*bdPt#nJ-KV zdQD*n7jcN~StpsaIxeu~hTj?4;zyKzhOtm$qnXy*pM{=nExX$CwLK)%KiKh`ooiT> zhanUC`DchCU;D9}7%C`hx_0+ff3(H*HC3zsUP!4;;f|}fTpJp)t1?VJwRV0u9q79X zC%IC~Y3?joJl_WBU2t4>{_A}_(CQ!&qSMG1t1_l0UkpKOVzd#@<0FiwDJth~%m`0l zpoaHnJb28^VI>6-np6bMcyZghG?&qhnW+1giJO{0$A&t|xQL-EsTDos5B5%M@0_fW z3sY!aQ@tkuYk$5?{>|)a8R3yh6Zsb!IxX4ATiBzN#z4BR(V!jljRxD8Gv* zd;Ofo{ji_b(o4!T>l^$njYC{G6sFd*f@BPojtt_`+e7R+8yHge3uE^LPTyB{-QIyH z4hUAZGGyDsJ@(DrTW_nOrjS_U>+@zt{w^cU;9d4;@vRK#mgVbpUY^DoBy%_%N6tvB z31iUld!Y&aavE~CG09D>w%>+pwau`a&>J5VzD_O}lQw=kS!T$8JQph0JrA%I17ohT zUwwxTFOCUbg|q;56of`L^Mk;2OLv}ot@8qi zpr(;pes^~{A>`~XzfoMcyTU|06MjA)v%FylZI!nlc03M5PY@snVhS&_w+)ADt=|nmEX!5$7k%-|n}&DeDR~LG+14 z{tr$!?`iS?~0EfaF_156MCevHtG|4LM_S2iuk3u{wVgz*7LFZfx23y zi-yhnXCxAa(bJh)?)`?fPOE)s026T}b-eQ)*H$|vSP*={px;vM*zAF{9nVM(`zEjTSm!GzrM7G{^_&pvHWaVhl$Z$0Dr&4=Y88fRjY+{Hw<+nUfm9xRk3L2W z{O-ib54KZP;aL+lY5^y;3QCHSHp0X%wlSeP4FgCx!IkDDc2!(qBp&2aK*S!s8I+&i zKYJex*}C32TOT+~X}bc61K`u9;iQQkezrHe@WiinWFF8I?_s%yO?bt~YZ{U0&)=_m z?ZE~%{vFq53~+m>%;mha@qKVdZT@)sCWed2Lq_v7x5X}B9@t!o%U;Yy>|DUm6>2rd z72|L^bMM`80sHXBU|fSS;ENKhk?kkBQ=MOb#K{GWl$16Q1>c0*-B0D4OObSywl|Ih zIh4{1t!a_Z_$QLoDkf-4oGb(_4NIe9`=Q4oXD<{nzwytdz%cAP}K_qXVa zbnb2h$+6u5#+4x@EtCxjdk>!NKtIcOVK~R7I+}8SVU4w?it5QDXeJX!7EP%62YlV< z4X28-)3bgUvzA<)^rgwJrK}yhZ1x-oEnJeP*VtmT67#T#a3Nu`i$!X9YjWJo%&BvW z!nz!PZ+3s7tBlg9J0&n=6C&QBIlKKmh-LYxi)H&)nq~BEZh^D*_zVD;PM_mUR11=Ia^v&5ssX3<6 zp>urMBs)1hQs=#v@65YJWD=9%BqQ**#WY|5tuTPx>g(^{3k?L^12NE&@bD!^R%`*T zU`oXUuJ|OU^tzrm*%fxG0jy`X@0?ScOxQslu=Pa)*DJ3k6yuMo8&DmOp@&a7%`^%ZWi|Qn29Kc?OTh@PjGg-g{Z(mRX*^H=>8gXVbz6xdPz& z=faQ?dJ2|um;fk?oRxyrr^`N;!ff2J4e?9^!EByCw>&H{BI_2fuW#g@eiSFoEx06Z zyQ2kikyACXvk(_K{V#fogTd^`Ov|QTpwWy*ckZ9USHeP z5q*EHiC@_v$8h>VHKW;t>8hpTQhOPsroKgY^srw!Nph+Fys9K4+K3g`xLrxk-duDW z9h{tYL%nWEtqFCP`F@cx?Cc>eY$fTS}Ee2b^@_K3sRb)^FqlL#HGk2WFjWmR8ngu}zmw$gsG%`~rBLeU>Gv zS~X{tZR);Mg6t1S-p-l~zF2kl8L#`wk0(`mbm^vJYCY;$G|$v>W3Z4Ti2X+It6H7^ z^>{knq1#F+^Dha@ra!MnP~~l4$EdmJcfs%gX9+GSM9l@?3$tqRaU}H=1?bdf9r`&E zHLpK?t?K?{^-MQCwppDDoq7wqe82P9Tv3!xSAzolT5o8721fl+Qk7e9g^8KGD!9HK za+JME!SnKbO8!&e`zh?W|#NduUF1aK^yv_k}i@u zOQjHImLv6c+#jLHB&u^Wwi*T_7R43+DVg5dNsF1x`$8QK8pSHg0;x!UGbs(B=7G7F z^1A=gWKgeIjFB%ehn15hR#p?%I%2HqG~rUT+N`@X>a_{XUrL9;w$xFu&& zpk#J^-ti>%S|@ZRb)j$kSdbEEuzp=18m=2J#TzhSB5NG?f{Og%OGnqqn)8*Ej1CtP z3_hvF8SOpR_nskgr`$KdT_EIxSWlhg*~Set|u><;{x@=?T}qshXyx!boF|X688dwerlI1=WOhXD+s` z=HY=fE5AZZZ9I{^Ag4JBSe3mg^|VT|EEK}zwj*!{UlP-Ay{sL8^}+KHT}SpWnnss6U>? zkPbOdcPm%>o8HI@kXiC%Ql=PmJ0KWvSvJW>X*9zl5jY&6sdRCuECYmRZv1W^YKB_L`iVa8aMly}@=u$~no}#({txEu$vSK{hs@5s(luMx-2YVYG^%MF75!=DUJ^ zHdt_?g$$q_6n_fwB=*2hUshYK^;V|FCad7fd^Yo@E1I(eC31n|jAmMYn!DaE8Ib?| zDdIUWyT(7DgX?2N=-$27Lzy=gvt~KjnYsN5UF31a>Z{KaaF{05o#VDRid=vfCZIfZ zEdOVP{yRzb1>c)4*FRm_(U2M^mFz{9+R`#$N>aZoZXYc=nYntC&==gB^j`szsp8jH zF<(Y9tdjq|5BdKKGs57{!h((Q!0gvw4(CA^qcqe?0~^ z=7t?EoG)i8d7-V(m+;v>G*OvMG7%pY=BYlXI`DPzfynx3pStlP;u}jm;L6s&yNX2C zM@s7p;|D|lTcml*#9+na`8<3}jM8ne>$lI_cc#D+0p&n#fi2&&rRtSaoagQQ@6h@M z0JjD83Q0~C{n>%9>rsb`qsGVdSLq`;mmjeUCgZC%pLQGhV^ZHm6n*bo;&zED*mD!dQFMhtS|hB)$UZvMxm)}M5dSNs$8B-s!UUVqLMPJRrD5| za`~LH?l_ZPr1lp8P!&L$%}wdOjG!l(YY`Yn!Xri(=q^U|kKBRD*07X@?{`*YwjqK= z+qa7ijqb05OA`9>V-u^8l7j}!o{s8v#dq_`B~`9&KJ0!V`|GWDZVr|$Qrih+muG~%Ay}seQ9eWy2Q?M$nUJaE%lF&>aU)sSmeW`yYYqfv$3S> zaF21SysV}#EbxG_z31DLnf7^n5vAWQ=}-G$krdJjTAW{Q6F4#oOYww;O$}htZt&2O zvD|zULbT@zJ#^Wf<0wcz2ayE@^Wkvwe~G$*OpXF?d?BcNuSYjMAi^eW_t&ki?vp}y ze8Wk8`JQ*MDJLp{3uRBh&`P9enAzV`V|u39^v#~gSIAIjc#@KmHoFcfB8G^p8-B-Z z>-)qnba-64^FnPJ{aen(#fRO)z6#14uH&#wj)-5vUzeqfM*~e)q6&1}aDMkn@FRGt zR(prV^*5I29;%Q%Yr}t6NS9Cyg;m%EFI#?1-|2TPp*}*xit~EL2>c$Bci%LtR~rzg zpjXh8D@m=97ux=YL;5Y7*jfy>%#jucX(H!2U^0bDU(7=XTiTmPu3hi%QIU>LXNKS# zFQCohI{ThIAc{zNhVyp;3t3IdIyY^T^3C!1!b0l{cDY1e*R@7mTDIYGxK76}R96AA z%PvgQ@!d0Bjg{J%xJ$D$1Vi+XdmO8?VJ{Tn6*UFcqk`HyL3I_OCJ_Yky_?}MA`Zy- zCIszwS~v~H!qUlaB@Krad6p;V0|oTEBeQx_pRcrYN06U=u|N&gz7fmA)!XmscK{l4{h?f4k^|e@7ih}eIG`=Tjctwiz;RG7T zVVL{u`BLd>&6@j8?1zpI(XootY9}ialf)Nu!Lb~XL39T1j9@4Xo)1c5z-~rc8FMKo~b?C%M>oM^D(@S zX>YiQdd<{oB0IAqzjDngKjG{CoMH}6>AiH^iy|^`{fg$Z>RX@>K$^nJ%AbOJ5!oVj z7D0`o`{>#1gJS<1|3mAEIrT-q-hM;rr2^#npmNv8W^oCCd^_>xZs|_O8dqV+{|>H2 zpMSX9{35jHqlZ8e|D*Ln9ZHt}$I=U_Y9!>8PawEdE57e7H2dl+OxGC*zU3M-gQ??( z^OX|sZm4}+mfm>mGEvTG*)VceG|?h~ zVQq}#DoAhysvq#9QJ{YcgC}!XA>u=ducX@1lEh?+tbl?bZ+o(Pe#WW~uxDE!Clv(o zb_9ZLctXIB%DrL3)n2Ts#Rl|~4Ky+Bj(lYGpCFQ2ylxb1xDaiA2+G(VI!QnIC`N|&t@*nX!c zwq2mw13Y0%t}#H$cf^2eY)AmNK4deEVPGSwdTS1G9=g{+0q(;0_^FO>%iYdd6o{|2znZiz1 z1A@f_Haxt;4*HB-$XJ=Jooc-}QsyL#EUZPP2!4C|l5na;=+7bFsp-$GZ@$^s7ry5c zIXxBBE_B-}##Is5oowO1KHj##9}h4-F$PrE#@@e3uc`HP#k`=R(Lg}w@}zA%@-PJ= zn+q4QfJyh+81*^R{A`SFN>bNB08wvr5J1UNEX?s}SMsEvbnx3uR<;1)N~id~~)j`OmuQ+Y@uaGVO|l~xf- zZs?8GBj#g=m%jQiFd!gsmo+QLYDWvQmhO@w?@}8{Ld~~abgN=&Y+Fl%zxdkY~>F>-Goj0gr8Z^^r2J4C_Zb<1Q=f1DrMD-}mlS_uqX*%nl&LoO4Pxgr78y^CemGO5c|?mt5k?kbKhg%Y6ES zdbGO7)INs+WJ_DN8;YOi)PYbKoz{4%q_6vlluc=q%bqWj=@U|g2uF-k7r9??1Ogp6 zF=tZhzooZ#dn@&}onnl^jX5+d%_Vh4o@fDH^ZUK@JM<3~kk0vNo{i8dqoTM^>Zvzk zgK!hWvx5bP(h(&c3C~HyVD2=8!-!pk;VbzxW-&SAwu!$cD1M12t;IUHf0vrl*nk4M zNpqbItj$H%+i?wMSNCEFMP1DpkFQwL(Me*ZFM+mj{%zR>brJr8q~M(-nGK+K@srvR z4oa6bvb-$oDDlvdpE*$kqo4+_uS#2^)ozx+*Q6U)R7Pd7&dJZQ z$S-8>*2WNzp`dNr?aK|R66h+MLK?&j)C2d9!4e)63P>r{KuOK`r3Xz-dABB!#<9^f zq#adR3&d<6ui>DE3=Yn>n9%G)w`m>Rc*)(Vnkd#4LX`Ov{Ngpm!W7*Wu0n`LL5>o^ zf<4bMjkeVI#@pZpG3iISKt@Nik~Z}#{XaFb=_*~)Tu87NE>~&OfB7( zEwbf{c=|qFy7K(>UX6i(sQQtEar$U}Yd%JXf*Y~EX*fl>ymqP4UHwUZ`H_&_Fy%|H zV@=nsJKW0^_nmD}L!+Danu@4)R7lDQH~JV~l3IB!m&<8keM%El(9u-w9+q7XItY7L zl0g4E%SkRx=x(vu*QK@#+m)*vvHY+6o(WZ&)7#J8hU=j=W$u*)tb8F4dWXb!L*bQG zpkKDbyO83=eDALtcc-t%BDU0nn+!hXjC^{PtpMXj;$$-r2IOFRDJ`Cqg$c|3xLXd6 z4+05|h$=q*cSTjSN$YWtz?er_AH7L#YKTk=f4KMP-S{ zhP-@Hp4W>m<%ySG;~^1X(fb4|U!_a_!J}18*Fzyq7Irhg`cEV4Y2breHH7>0b`?3Y zd%r@MrEfq$^=p`V`8WS6laNwDp`3gv<8G2ZWcGEj0ZA9sNl&bDRfSKj~vf}78AdB^WIc>cyov;g@e$JgWDQ^CpM zSKml31wlCqJ>~d0W^9SS8toxulZzI&)}abS;kgv?V2|KsMrbqzv3Trb3M6IbKEUS1b55v3pc1w((m8-~MyE|Al- z^mk#vHCXDa?j3&IaDh*%*M95%ip+Bru75EgJ|&R)&JP7LvL#{d=;^NFTkv&3;-slca&7YZKlFau-aqZDZBLCaf(wzEY^wu9s z$Q1ORP|GV+quusSud=9yW~(bAZtw^Suz*3Ao6oC1sd|rxcC-&mX#A%jas+*RRNDW8 z1(51T#}1}p4G6uShnWdL^sVwH{VFyFPpT5n@~l0h zl?NLdC2UzaTsn8ya^?%_;7-Gvp^PLWCkN~7{?OnX1wJbK_DHSV0YgLKM9jlT9nNeA z1_-Rr?|g->x!Gqn%M9QVPjOYOj?EL2DUgNiQF;wYjv(S;vt6lXi|A>cXxlnx!#~G@ zgTR=EI z*#+ubaLI4Y2}FE`PSwBDs(|Tiru^yaq8-|)L0rznqd-dB7*)4*j0!6zxhmN_HnLhw z!kkB30F!a4J}}4M6CajsXcr4Rl*ET!DtY?5Mq5@}RZV#>GJ5o!GVr6dPZZ`FLsx4a zdjd`BV`;z+sm1c=J@P7_G`08PqldYkLSGyej=@Dol=9N)!WXN-Vf>9xfj6!jwUF0w z`8>yD-y8cNbB8qHc1j8uT+F@Q7FA%KMLwt>(k>X2w%?t&RMyCg-094cEEBq z1)M!yZ#h9yY8M3UjaBi5#3`t=7)*Vz*!e@pREDlKGAX09JOvIe#Bp(FV9D&rO}nl0 zRyt7)UUtc5Hs*`F_tNb#YRit@5wUm~f@#WFu7ju^>;>n3?$>@wjoGSG-HDNx(-7u# z=Y#r+ZRaqSxx-ln;U^q2uzC)BWJDck!x!c&^|Y4*f}a}yNt@r90yKlQ-!M36l6=A| zp@sMxx0NNGrqo|TFu<3gEh#4#ZmlRZjdMS%q>qRb%0{Boha3gslbdv@Z?M9xC#?=5)Hy1=)9r$jLP4 zAFW7v+JRkjy~h3`MyM*wMDM(1b#00^)d~3!yQn+;k>$eGU*x{dJE2#beiQCDEj;+A zEhQoK8ar~^k|x*kQJ>SN5!L1o5t`B02gsk**>oSe^M)li8(@e1TdyblWBd%DqY-4+V^Es<{xrr;S- zf1+ws8y}cLX+JGZeqmv+La(X3t-nT_Qz%)Fyte{li1ubkKtUH#$UCG-*?^L1Q^v5d ziv+68t{GkAoxHkZF0QQC9MmBF7H|ziHd_6QjG1`+jMIl zx5D_0{x0Kr`>x-XD;R;A%X#hZrik~POP@F^`Zn@DyK1I&(a`ys9ibN}|1)n3`s%*@ z`(eNYS6Ea@ftC1ha<0$nZJE&`Twn6~caw+tH!TgR_U6+MCqxkPxCbf~q!MV<>E_#3 z$4n=RsLmJ0u+I?SPj#yNSq7rTAHM>(g&V@rG~U3=k~@Vh2a`Jz^{DKhfhGd(N$oU@ zf}ap+KfmFiiy-73R8m6?nAvYk556D7=37ChztcVxnuJ{cX6b(#u;(Q7poftL z%hy!nqKEiDORc;(?f+t8_5J@nuIv8}xOO4xz8z_~({k}R?ciM2v}^ups<$cZ>iBhL zYyIRgh$wx2a=nib@HABIH?cSy<@3JIM~C!IG+x$W zUTXT!qXl!V_M~U3p)`XF5hhD8dX^68nV;tGiA>o|)noY{o3R};%M_fTIsWymvn|;+RfH)JgtKAI(kH2Sh z6ZjzT>z;x;_+GU2gn%iFFY6NuuAq&^G3aTddks!>Rv~emk%g>!g&Ffvp4j?GZ|39# zHkAfZ;k(=2QQL|8SlX5k$>K4kHj&Mru(0x@@5? zAfv5b=f}6OC|lYbWbQY~*SGiDl+MBqP<-~4dhB6f5nqwqM6dm_kjLJb8BEHo!;MWYkt|zH%`oG1qxN5gy$5lp7&pY2X_4Qs@&~t&H##K{oaD!T1cD> zcFe=t_kJ!U+eDCZSl7 z5&MZzDUA%{v__n$st8gclKZ}OVJ*u=^EYMOeO3v;T$h` zYpfdJg{GqXWhQqJJ7Z+UnrJUK$Wa%1#aPPxWkLx)v~IhiyhsXx-0n#B!s86QDpFbA z>M}WIy(bV7;KEDb_t#Rk^&Tb5??ve%Elc{3NW>Dl=v>PnzsoebKcB{Ov0ndf_YXqG6XUgTs}Nfnm7!W z#6r<>>k&8R!;e4?8%9oMNL3He#||xS-P?9=>G!nNso8ISHDiBiYUIG5tj`kZj&y#~ z*;dY3yFYp8=%+an-5=G0AtbQ{Vvo@ylz&>OE$B)Ze~*i*;A;y7LjT0(^utb?1lDK; zvyjY3=C$#(S<>wnw=T)CKy7cl+Y>&GYtg!#lb(I(4cL&Cc{TET-n)mN0ioE9?k5rn z^h@r8>%5O#wz@|OC6S~SSaH=1qm2|$Xt4FbH+3@I7O<%}0UMrm|0SkhIm8eMiLM^tgJ&V)5FX{L z4R%8EYQ6SP+`*|B^kTy->k1;S1ZKNQC-c(`>gg+8PGlH}7>iziGC@E^@TfumeN7%U zTZ4}!dfE-jSBL-@hh^nOIBHyazXP=LDl0NR4g371${p&B$u4Q8oSl(p|7n>uB>~s7 zP2EsD#YjwgE#dUBnO=hPmRB}SpGN_oL!f)D!7mh~oG>}!3wF?te;(Z(ovY)qDx+{p z%J1ME>Iv`Yu~L(XC=Ia+w3Jj|wJ#cPcwRUjV9aD*(x=;Mq1A*Urmm zM_?ohqu1lim%bn~|9NiS>hp(%2yL)XfJwAkMxu=ZF4aFK{gu5V>U}co^%zDPR#0+0 zur<>5B}$(4#4EAoR{xC1(Y{XbSCi)f(#wc)qbF0Qh=rd7CZOmr(4SDqJH3RD6G_AM z?-~71U|PDP8{>}CL(1>++y1TfS^1e?qZ2qYyEF}6cY^Or(*KCj7ZSvGG*3`Ap70KG2lg-c!nT(SD zJHbUv-r8!jBbA)*CTm~BV*(y@T8k(DQ;!<_jA!Y%))2@VN#!uq_`==ZOlO8>jqf<~ zcldI7R$JdEF2q(t)p#6N}3|-4uqnjqZz|)&_3QuEeK3b)2mf;e5%V8SaMGb8J*ErLi}|xZ7_Jl z*4)RN-PVTGk@suIeud{7fx7LgoVp|5kV;~HH=KeX5A<1y#gEL-n+Uzb!AbrsKE!0o z0efFK{vDJV?t-eTYA_kkFx69M?L+wPiT!6&3U+wOwGOUs2Qxq0{6t~ApE zpqTkNu$$pt2qW4NtIUlD@v9<`C}9#0HquAxvYs=43G7oOw5vfKp{6{(5uvD*Aq%-M zvt$%0gG@^qY;4-O^Ok(>S{$Lt3HNZe=MeSnBL#gfUQEe4re^=m{CPt=M4^ML z0)%||ajxs8zH;rM%bt935Fo_g-!7@(3jLF>UEe#a**$4S6dOVkiK@3T{u6EppRM*7 z*Cilcp|26D{i)5m*^CUnCq523ZiY`k4R&l$(JFRhzFyF$3ws^th&f)y7x5xKJxmf-&k?0+*(1&97_>-pTBfbi{e4BIc zPb&?P-Z=JjKFp&0ezE5v1pI{mf=kyP*MI7DbKjwb;YMi_IXa0m{_3 z+W(!zQ-1R%K;D50=*){E7ZpBq>I*#c6C)$c;ga`hwk^iq=Y+#JO^yK^2z*660I*NUk z{?YI4jjIG|%@X8}GR&7?A*M-E1fXeUtfZZm((rv>ddN&zeVLC-3jF!#ILQo1P@&J| zb$WgZilMo?+ejN?3X6@WjE%*Y`SUYkcvIHb6$RR@f~t9KcADWd;&(x+I}4Qs-zEKc zUZFmptjq}p5;KzlS#?Ku#M1kP$^RDc9x7}*uMsp--_8v(vjt49ceCP_IkF1Ok8c0+ z!)W3et&!gyQ6?O#ic!BILk8op(fl_zw%8AI89~N^vd-#}TXT#$OlR7?OT5lkW7h&{g?86bp55SIDu`xV^-7|2OSjNsLi7 z(H5!l~uuG*>pcYg7I>RnYV zJn`tdG&=2N+Sz?6P_@h|a? zA=;S(s{+{X+PBL{h%HIuso<$-NWm)0gVuIz+-z4xl&l{&%Stu{$9jgSSt;erO}zL? zC^5Xna3mjXO}zCmHmG=y#6pgo=V0^_XV|gk4D!)b_&2Ih7zy zIrOk=zZRJr>W2G69{2&-wpeQktI@5laD_4(3$ZzDj%zE-kW)|4Zie5aK1cC{>9v1v z!{ycpmbSG6HYpCb9o)Ah$lGIWI_idiX3A`%Q)(!MOu1+CQ*Px;?pD?cSn~xnE*74g z1l{x`g&H*TKvCIxijdh+v8G_Y}~4VqWQq@iY>9hm`FJSr2ty+ zz^^}P)*HhaqTC{3<5O82N$R!AG}AU-3uzaM3nAHTE=VOT>sPOi57}D~o?`%!Gw(_St90K|s9#p~e^b;G4O;AD_*Tr!>n3zM4l1FfH8hDN3U0N* zxUAlgOovmH{+Wo@4XiTRsnJD0FA;aetT~S7NU6%0!f1v!6m=xz0lCF%EcDcVsUz_u zH8wgk0n|jE?`LX%emVYvF)1?ryY!}0G;hNvc2yQN}D5qy!q2 zIZ6gajL=;6%?x78=s+%DV!HXkZ;hrY7-9qt4H{nfjQs43P|yc)T~=<&H98U} z>-usv>$3f}Ao~?Ov%)R=KpI}wCh5w>5fs#bvlIGl`4{SUSr@RZa58k@vz02HtvW`f zyt^B8TyuDT$O#OgJ4A$e6dA>YixFsudxtcq>eCfBxGrWZPGM(Ejv_Mr*tF*HYaJD~ z?H`?mW6gB!(%cZx!#Nzoj{6%pRIk#mh!l%Xe;_*LRIZu~8%0DFk#WoTAS$HCe<%8A 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

lgHt-js}k^HMDPk$ns0B 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

A>k1mxW56h4+)4B z5nJWsI25J-YekOrtqenBNU!(X#DR289ME zT4Z%N{OpXCv-^EWh5x$zWJOzWy{$vn0m689>%U3BT`Kzua{GD%9<{-Nxlt}^CZZNe zM-Qv44aOmtx7=Sph%g#^@d_50RXu$YZ_^^W#rYCl!dPu1chkY>`ms|^e!V6a!APo3 zQ^Z)y40F%&A%2IHurkll(>Y#`G7;b|FV6vE>-tige@c=Vs zEhrv_(R0nR83>4{+@byV>_7fLJ0PdZT!&RauxtHsNWC(TfTRFxgw-eri;7j|7p#n# ziod`7jtTjF4H{F?IJCDpwCm#!RQWn+gdezP`9Q;{j!Gf1leHg*U(oAIo+d$_{u|s| zznQ0vy^}8b3*Dp7?gy0}&+nsYm6vu*tN(9mX~a!JZf6$xS>5Efq`f>5qd-EYPj2-& zBJKV`=llK`tdDYi2YjCua>mdH;Ir)sQsN2Uf4lqDJ8)xY#CsP)V+<+J5YxNUG{-kG z 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. + +package accounts + +import ( + "net/http" + + "github.com/gin-gonic/gin" + apiutil "github.com/superseriousbusiness/gotosocial/internal/api/util" + "github.com/superseriousbusiness/gotosocial/internal/gtserror" + "github.com/superseriousbusiness/gotosocial/internal/oauth" +) + +// AccountThemesGETHandler swagger:operation GET /api/v1/accounts/themes accountThemes +// +// See preset CSS themes available to accounts on this instance. +// +// --- +// tags: +// - accounts +// +// produces: +// - application/json +// +// security: +// - OAuth2 Bearer: +// - read:accounts +// +// responses: +// '200': +// name: statuses +// description: Array of themes. +// schema: +// type: array +// items: +// "$ref": "#/definitions/theme" +// '400': +// description: bad request +// '401': +// description: unauthorized +// '404': +// description: not found +// '406': +// description: not acceptable +// '500': +// description: internal server error +func (m *Module) AccountThemesGETHandler(c *gin.Context) { + _, err := oauth.Authed(c, true, true, true, true) + if err != nil { + apiutil.ErrorHandler(c, gtserror.NewErrorUnauthorized(err, err.Error()), m.processor.InstanceGetV1) + return + } + + if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { + apiutil.ErrorHandler(c, gtserror.NewErrorNotAcceptable(err, err.Error()), m.processor.InstanceGetV1) + return + } + + // Retrieve available themes. + themes := m.processor.Account().ThemesGet() + apiutil.JSON(c, http.StatusOK, themes) +} diff --git a/internal/api/model/account.go b/internal/api/model/account.go index 7d3fa4b62..af2a394af 100644 --- a/internal/api/model/account.go +++ b/internal/api/model/account.go @@ -89,6 +89,8 @@ type Account struct { MuteExpiresAt string `json:"mute_expires_at,omitempty"` // Extra profile information. Shown only if the requester owns the account being requested. Source *Source `json:"source,omitempty"` + // Filename of user-selected CSS theme to include when rendering this account's profile or statuses. Eg., `blurple-light.css`. + Theme string `json:"theme,omitempty"` // CustomCSS to include when rendering this account's profile or statuses. CustomCSS string `json:"custom_css,omitempty"` // Account has enabled RSS feed. @@ -162,7 +164,11 @@ type UpdateCredentialsRequest struct { FieldsAttributes *[]UpdateField `form:"fields_attributes" json:"-"` // Profile metadata names and values, parsed from JSON. JSONFieldsAttributes *map[string]UpdateField `form:"-" json:"fields_attributes"` + // Theme file name to be used when rendering this account's profile or statuses. + // Use empty string to unset. + Theme *string `form:"theme" json:"theme"` // Custom CSS to be included when rendering this account's profile or statuses. + // Use empty string to unset. CustomCSS *string `form:"custom_css" json:"custom_css"` // Enable RSS feed of public toots for this account at /@[username]/feed.rss EnableRSS *bool `form:"enable_rss" json:"enable_rss"` diff --git a/internal/api/model/theme.go b/internal/api/model/theme.go new file mode 100644 index 000000000..b98e7395a --- /dev/null +++ b/internal/api/model/theme.go @@ -0,0 +1,32 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package model + +// Theme represents one user-selectable preset CSS theme. +// +// swagger:model theme +type Theme struct { + // User-facing title of this theme. + Title string `json:"title"` + + // User-facing description of this theme. + Description string `json:"description"` + + // FileName of this theme in the themes directory. + FileName string `json:"file_name"` +} diff --git a/internal/db/bundb/migrations/20240320114447_preset_css_themes.go b/internal/db/bundb/migrations/20240320114447_preset_css_themes.go new file mode 100644 index 000000000..5d3b9f83a --- /dev/null +++ b/internal/db/bundb/migrations/20240320114447_preset_css_themes.go @@ -0,0 +1,55 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package migrations + +import ( + "context" + "strings" + + "github.com/uptrace/bun" +) + +func init() { + up := func(ctx context.Context, db *bun.DB) error { + // Add theme to account settings table. + _, err := db.ExecContext(ctx, + "ALTER TABLE ? ADD COLUMN ? TEXT", + bun.Ident("account_settings"), bun.Ident("theme"), + ) + if err != nil { + e := err.Error() + if !(strings.Contains(e, "already exists") || + strings.Contains(e, "duplicate column name") || + strings.Contains(e, "SQLSTATE 42701")) { + return err + } + } + + return nil + } + + down := func(ctx context.Context, db *bun.DB) error { + return db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error { + return nil + }) + } + + if err := Migrations.Register(up, down); err != nil { + panic(err) + } +} diff --git a/internal/gtsmodel/account.go b/internal/gtsmodel/account.go index 2ac107e56..3bbcb37e3 100644 --- a/internal/gtsmodel/account.go +++ b/internal/gtsmodel/account.go @@ -220,3 +220,17 @@ type Relationship struct { Endorsed bool // Are you featuring this user on your profile? Note string // Your note on this account. } + +// Theme represents a user-selected +// CSS theme for an account. +type Theme struct { + // User-facing title of this theme. + Title string + + // User-facing description of this theme. + Description string + + // FileName of this theme in the themes + // directory (eg., `light-blurple.css`). + FileName string +} diff --git a/internal/gtsmodel/accountsettings.go b/internal/gtsmodel/accountsettings.go index cb5411050..218767023 100644 --- a/internal/gtsmodel/accountsettings.go +++ b/internal/gtsmodel/accountsettings.go @@ -29,6 +29,7 @@ type AccountSettings struct { Sensitive *bool `bun:",nullzero,notnull,default:false"` // Set posts from this account to sensitive by default? Language string `bun:",nullzero,notnull,default:'en'"` // What language does this account post in? StatusContentType string `bun:",nullzero"` // What is the default format for statuses posted by this account (only for local accounts). + Theme string `bun:",nullzero"` // Preset CSS theme filename selected by this Account (empty string if nothing set). CustomCSS string `bun:",nullzero"` // Custom CSS that should be displayed for this Account's profile and statuses. EnableRSS *bool `bun:",nullzero,notnull,default:false"` // enable RSS feed subscription for this account's public posts at [URL]/feed HideCollections *bool `bun:",nullzero,notnull,default:false"` // Hide this account's followers/following collections. diff --git a/internal/processing/account/account.go b/internal/processing/account/account.go index 79f6ecfc1..dbcecdb0a 100644 --- a/internal/processing/account/account.go +++ b/internal/processing/account/account.go @@ -44,6 +44,7 @@ type Processor struct { formatter *text.Formatter federator *federation.Federator parseMention gtsmodel.ParseMentionFunc + themes *Themes } // New returns a new account processor. @@ -67,5 +68,6 @@ func New( formatter: text.NewFormatter(state.DB), federator: federator, parseMention: parseMention, + themes: PopulateThemes(), } } diff --git a/internal/processing/account/themes.go b/internal/processing/account/themes.go new file mode 100644 index 000000000..4f8cc49a1 --- /dev/null +++ b/internal/processing/account/themes.go @@ -0,0 +1,151 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package account + +import ( + "cmp" + "os" + "path/filepath" + "regexp" + "slices" + "strings" + + "codeberg.org/gruf/go-bytesize" + apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model" + "github.com/superseriousbusiness/gotosocial/internal/config" + "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" + "github.com/superseriousbusiness/gotosocial/internal/log" +) + +var ( + themeTitleRegex = regexp.MustCompile(`(?m)^\ *theme-title:(.*)$`) + themeDescriptionRegex = regexp.MustCompile(`(?m)^\ *theme-description:(.*)$`) +) + +// GetThemes returns available account css themes. +func (p *Processor) ThemesGet() []apimodel.Theme { + return p.converter.ThemesToAPIThemes(p.themes.SortedByTitle) +} + +// Themes represents an in-memory +// storage structure for themes. +type Themes struct { + // Themes sorted alphabetically + // by title (case insensitive). + SortedByTitle []*gtsmodel.Theme + + // ByFileName contains themes retrievable + // by their filename eg., `light-blurple.css`. + ByFileName map[string]*gtsmodel.Theme +} + +// PopulateThemes parses available account CSS +// themes from the web assets themes directory. +func PopulateThemes() *Themes { + webAssetsAbsFilePath, err := filepath.Abs(config.GetWebAssetBaseDir()) + if err != nil { + log.Panicf(nil, "error getting abs path for web assets: %v", err) + } + + themesAbsFilePath := filepath.Join(webAssetsAbsFilePath, "themes") + themesFiles, err := os.ReadDir(themesAbsFilePath) + if err != nil { + log.Warnf(nil, "error reading themes at %s: %v", themesAbsFilePath, err) + return nil + } + + themes := &Themes{ + ByFileName: make(map[string]*gtsmodel.Theme), + } + + for _, f := range themesFiles { + // Ignore nested directories. + if f.IsDir() { + continue + } + + // Ignore weird files. + info, err := f.Info() + if err != nil { + continue + } + + // Ignore really big files. + if info.Size() > int64(bytesize.MiB) { + continue + } + + // Get just the name of the + // file, eg `blurple-light.css`. + fileName := f.Name() + + // Get just the `.css` part. + extensionWithDot := filepath.Ext(fileName) + + // Remove any leading `.` + extension := strings.TrimPrefix(extensionWithDot, ".") + + // Ignore non-css files. + if extension != "css" { + continue + } + + // Load the file contents. + path := filepath.Join(themesAbsFilePath, fileName) + contents, err := os.ReadFile(path) + if err != nil { + log.Warnf(nil, "error reading css theme at %s: %v", path, err) + continue + } + + // Try to parse a title and description + // for this theme from the file itself. + var themeTitle string + titleMatches := themeTitleRegex.FindSubmatch(contents) + if len(titleMatches) == 2 { + themeTitle = strings.TrimSpace(string(titleMatches[1])) + } else { + // Fall back to file name + // without `.css` suffix. + themeTitle = strings.TrimSuffix(fileName, ".css") + } + + var themeDescription string + descMatches := themeDescriptionRegex.FindSubmatch(contents) + if len(descMatches) == 2 { + themeDescription = strings.TrimSpace(string(descMatches[1])) + } + + theme := >smodel.Theme{ + Title: themeTitle, + Description: themeDescription, + FileName: fileName, + } + + themes.SortedByTitle = append(themes.SortedByTitle, theme) + themes.ByFileName[fileName] = theme + } + + // Sort themes alphabetically + // by title (case insensitive). + slices.SortFunc(themes.SortedByTitle, func(a, b *gtsmodel.Theme) int { + return cmp.Compare(strings.ToLower(a.Title), strings.ToLower(b.Title)) + }) + + return themes +} diff --git a/internal/processing/account/themes_test.go b/internal/processing/account/themes_test.go new file mode 100644 index 000000000..9506aee50 --- /dev/null +++ b/internal/processing/account/themes_test.go @@ -0,0 +1,52 @@ +// GoToSocial +// Copyright (C) GoToSocial Authors admin@gotosocial.org +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package account_test + +import ( + "testing" + + "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/gotosocial/internal/config" + "github.com/superseriousbusiness/gotosocial/internal/processing/account" +) + +type ThemesTestSuite struct { + AccountStandardTestSuite +} + +func (suite *ThemesTestSuite) TestPopulateThemes() { + config.SetWebAssetBaseDir("../../../web/assets") + + themes := account.PopulateThemes() + if themes == nil { + suite.FailNow("themes was nil") + } + + suite.NotEmpty(themes.SortedByTitle) + theme := themes.ByFileName["blurple-light.css"] + if theme == nil { + suite.FailNow("theme was nil") + } + suite.Equal("Blurple (light)", theme.Title) + suite.Equal("Official light blurple theme", theme.Description) + suite.Equal("blurple-light.css", theme.FileName) +} + +func TestThemesTestSuite(t *testing.T) { + suite.Run(t, new(ThemesTestSuite)) +} diff --git a/internal/processing/account/update.go b/internal/processing/account/update.go index 7b5561138..076b6d7f4 100644 --- a/internal/processing/account/update.go +++ b/internal/processing/account/update.go @@ -256,6 +256,22 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form } } + if form.Theme != nil { + theme := *form.Theme + if theme == "" { + // Empty is easy, just clear this. + account.Settings.Theme = "" + } else { + // Theme was provided, check + // against known available themes. + if _, ok := p.themes.ByFileName[theme]; !ok { + err := fmt.Errorf("theme %s not available on this instance, see /api/v1/accounts/themes for available themes", theme) + return nil, gtserror.NewErrorBadRequest(err, err.Error()) + } + account.Settings.Theme = theme + } + } + if form.CustomCSS != nil { customCSS := *form.CustomCSS if err := validate.CustomCSS(customCSS); err != nil { diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go index 0ff3c2268..bf44c7254 100644 --- a/internal/typeutils/internaltofrontend.go +++ b/internal/typeutils/internaltofrontend.go @@ -170,12 +170,13 @@ func (c *Converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A // Bits that vary between remote + local accounts: // - Account (acct) string. // - Role. - // - Settings things (enableRSS, customCSS). + // - Settings things (enableRSS, theme, customCSS). var ( acct string role *apimodel.AccountRole enableRSS bool + theme string customCSS string ) @@ -208,6 +209,7 @@ func (c *Converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A } enableRSS = *a.Settings.EnableRSS + theme = a.Settings.Theme customCSS = a.Settings.CustomCSS } @@ -272,6 +274,7 @@ func (c *Converter) AccountToAPIAccountPublic(ctx context.Context, a *gtsmodel.A Emojis: apiEmojis, Fields: fields, Suspended: !a.SuspendedAt.IsZero(), + Theme: theme, CustomCSS: customCSS, EnableRSS: enableRSS, Role: role, @@ -1771,3 +1774,16 @@ func (c *Converter) convertTagsToAPITags(ctx context.Context, tags []*gtsmodel.T return apiTags, errs.Combine() } + +// ThemesToAPIThemes converts a slice of gtsmodel Themes into apimodel Themes. +func (c *Converter) ThemesToAPIThemes(themes []*gtsmodel.Theme) []apimodel.Theme { + apiThemes := make([]apimodel.Theme, len(themes)) + for i, theme := range themes { + apiThemes[i] = apimodel.Theme{ + Title: theme.Title, + Description: theme.Description, + FileName: theme.FileName, + } + } + return apiThemes +} diff --git a/internal/web/profile.go b/internal/web/profile.go index b629c98b9..a4809a72d 100644 --- a/internal/web/profile.go +++ b/internal/web/profile.go @@ -140,16 +140,40 @@ func (m *Module) profileGETHandler(c *gin.Context) { return } + // Prepare stylesheets for profile. + stylesheets := make([]string, 0, 6) + + // Basic profile stylesheets. + stylesheets = append( + stylesheets, + []string{ + cssFA, + cssStatus, + cssThread, + cssProfile, + }..., + ) + + // User-selected theme if set. + if theme := targetAccount.Theme; theme != "" { + stylesheets = append( + stylesheets, + themesPathPrefix+"/"+theme, + ) + } + + // Custom CSS for this user last in cascade. + stylesheets = append( + stylesheets, + "/@"+targetAccount.Username+"/custom.css", + ) + page := apiutil.WebPage{ - Template: "profile.tmpl", - Instance: instance, - OGMeta: apiutil.OGBase(instance).WithAccount(targetAccount), - Stylesheets: []string{ - cssFA, cssStatus, cssThread, cssProfile, - // Custom CSS for this user last in cascade. - "/@" + targetAccount.Username + "/custom.css", - }, - Javascript: []string{jsFrontend}, + Template: "profile.tmpl", + Instance: instance, + OGMeta: apiutil.OGBase(instance).WithAccount(targetAccount), + Stylesheets: stylesheets, + Javascript: []string{jsFrontend}, Extra: map[string]any{ "account": targetAccount, "rssFeed": rssFeed, diff --git a/internal/web/thread.go b/internal/web/thread.go index 4dcd1d221..ffec565e6 100644 --- a/internal/web/thread.go +++ b/internal/web/thread.go @@ -138,16 +138,39 @@ func (m *Module) threadGETHandler(c *gin.Context) { return } + // Prepare stylesheets for thread. + stylesheets := make([]string, 0, 5) + + // Basic thread stylesheets. + stylesheets = append( + stylesheets, + []string{ + cssFA, + cssStatus, + cssThread, + }..., + ) + + // User-selected theme if set. + if theme := targetAccount.Theme; theme != "" { + stylesheets = append( + stylesheets, + themesPathPrefix+"/"+theme, + ) + } + + // Custom CSS for this user last in cascade. + stylesheets = append( + stylesheets, + "/@"+targetAccount.Username+"/custom.css", + ) + page := apiutil.WebPage{ - Template: "thread.tmpl", - Instance: instance, - OGMeta: apiutil.OGBase(instance).WithStatus(status), - Stylesheets: []string{ - cssFA, cssStatus, cssThread, - // Custom CSS for this user last in cascade. - "/@" + targetUsername + "/custom.css", - }, - Javascript: []string{jsFrontend}, + Template: "thread.tmpl", + Instance: instance, + OGMeta: apiutil.OGBase(instance).WithStatus(status), + Stylesheets: stylesheets, + Javascript: []string{jsFrontend}, Extra: map[string]any{ "status": status, "context": context, diff --git a/internal/web/web.go b/internal/web/web.go index 5e57d08c6..19df63332 100644 --- a/internal/web/web.go +++ b/internal/web/web.go @@ -44,6 +44,7 @@ rssFeedPath = profileGroupPath + "/feed.rss" assetsPathPrefix = "/assets" distPathPrefix = assetsPathPrefix + "/dist" + themesPathPrefix = assetsPathPrefix + "/themes" settingsPathPrefix = "/settings" settingsPanelGlob = settingsPathPrefix + "/*panel" userPanelPath = settingsPathPrefix + "/user" diff --git a/mkdocs.yml b/mkdocs.yml index 1b479304f..e808ab6b6 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -121,6 +121,7 @@ nav: - "admin/media_caching.md" - "admin/spam.md" - "admin/database_maintenance.md" + - "admin/themes.md" - "Federation": - "federation/index.md" - "federation/glossary.md" diff --git a/web/assets/themes/blurple-dark.css b/web/assets/themes/blurple-dark.css new file mode 100644 index 000000000..7e4a9cc9a --- /dev/null +++ b/web/assets/themes/blurple-dark.css @@ -0,0 +1,92 @@ +/* + theme-title: Blurple (dark) + theme-description: Official dark blurple theme +*/ + +:root { + /* Define our nice blurple palette */ + --blurple1: #ffffff; + --blurple2: #ebe6f8; + --blurple3: #d6cceb; + --blurple4: #c2b3e1; + --blurple5: #ad99d7; + --blurple6: #9980cd; + --blurple7: #8566c2; + --blurple8: #704db8; + --blurple9: #5c33ae; + --blurple10: #471aa4; + --blurple11: #33009a; + --blurple12: #170044; + + /* Restyle basic colors to use blurple */ + --blue1: var(--blurple1); + --blue2: var(--blurple2); + --blue3: var(--blurple3); + + /* Basic page styling (background + foreground) */ + --bg: var(--blurple12); + --bg-accent: var(--blurple11); + --fg: var(--blurple1); + --fg-reduced: var(--blurple3); + + /* Profile page styling (light) */ + --profile-bg: var(--blurple11); + + /* Blurpleize buttons */ + --button-bg: var(--blurple2); + --button-fg: var(--blurple11); + + /* Blurpleize statuses */ + --status-bg: var(--blurple11); + --status-focus-bg: var(--blurple11); + --status-info-bg: var(--blurple9); + --status-focus-info-bg: var(--blurple9); + + /* Used around statuses + other items */ + --boxshadow-border: 0.08rem solid black; +} + +/* Scroll bar */ +html, body { + scrollbar-color: var(--blurple8) var(--blurple12); +} + +/* Profile fields */ +.profile .about-user .fields .field { + border-bottom: 0.1rem solid var(--blurple8); +} +.profile .about-user .fields .field:first-child { + border-top: 0.1rem solid var(--blurple8); +} + +/* Status media */ +.status .media .media-wrapper { + border: 0.08rem solid var(--blurple9); +} +.status .media .media-wrapper details .unknown-attachment .placeholder { + color: var(--blue2); +} +.status .media .media-wrapper details video.plyr-video { + background: var(--blurple11); +} + +/* Status polls */ +.status .text .poll { + background-color: var(--bg); +} +.status .text .poll .poll-info { + background-color: var(--blurple11); +} + +/* Code snippets */ +pre, pre[class*="language-"], +code, code[class*="language-"] { + background-color: var(--blurple12); + color: var(--fg-reduced); +} + +/* Block quotes */ +blockquote { + background-color: var(--blurple12); + color: var(--fg-reduced); +} diff --git a/web/assets/themes/blurple-light.css b/web/assets/themes/blurple-light.css new file mode 100644 index 000000000..7f5811401 --- /dev/null +++ b/web/assets/themes/blurple-light.css @@ -0,0 +1,94 @@ +/* + theme-title: Blurple (light) + theme-description: Official light blurple theme +*/ + +:root { + /* Define our nice blurple palette */ + --blurple1: #ffffff; + --blurple2: #ebe6f8; + --blurple3: #d6cceb; + --blurple4: #c2b3e1; + --blurple5: #ad99d7; + --blurple6: #9980cd; + --blurple7: #8566c2; + --blurple8: #704db8; + --blurple9: #5c33ae; + --blurple10: #471aa4; + --blurple11: #33009a; + --blurple12: #170044; + + /* Restyle basic colors to use blurple */ + --white1: var(--blurple2); + --white2: var(--blurple3); + --blue1: var(--blurple6); + --blue2: var(--blurple8); + --blue3: var(--blurple10); + + /* Basic page styling (background + foreground) */ + --bg: linear-gradient(var(--blurple2), var(--blurple1)); + --bg-accent: var(--white2); + --fg: var(--gray1); + --fg-reduced: var(--gray2); + + /* Profile page styling (light) */ + --profile-bg: var(--white2); + + /* Blurpleize buttons */ + --button-bg: var(--blue2); + --button-fg: var(--white1); + + /* Blurpleize statuses */ + --status-bg: var(--white1); + --status-focus-bg: var(--white1); + --status-info-bg: var(--white2); + --status-focus-info-bg: var(--white2); + + /* Used around statuses + other items */ + --boxshadow-border: 0.08rem solid var(--blurple10); +} + +/* Scroll bar */ +html, body { + scrollbar-color: var(--blurple8) var(--blurple2); +} + +/* Profile fields */ +.profile .about-user .fields .field { + border-bottom: 0.1rem solid var(--blurple10); +} +.profile .about-user .fields .field:first-child { + border-top: 0.1rem solid var(--blurple10); +} + +/* Status media */ +.status .media .media-wrapper { + border: 0.08rem solid var(--blurple10); +} +.status .media .media-wrapper details .unknown-attachment .placeholder { + color: var(--blue2); +} +.status .media .media-wrapper details video.plyr-video { + background: var(--blurple2); +} + +/* Status polls */ +.status .text .poll { + background-color: var(--white2); +} +.status .text .poll .poll-info { + background-color: var(--white1); +} + +/* Code snippets */ +pre, pre[class*="language-"], +code, code[class*="language-"] { + background-color: var(--blurple12); + color: var(--blurple2); +} + +/* Block quotes */ +blockquote { + background-color: var(--blurple1); + color: var(--blurple12); +} diff --git a/web/assets/themes/midnight-trip.css b/web/assets/themes/midnight-trip.css new file mode 100644 index 000000000..c6b1623ee --- /dev/null +++ b/web/assets/themes/midnight-trip.css @@ -0,0 +1,159 @@ +/* + theme-title: Midnight Trip + theme-description: Woah +*/ + +/* Theme colors */ +:root { + --acid-green: rgb(63, 255, 0); + --acid-green-light: #79FF4D; + --acid-green-dark: #269900; + --magenta: rgb(153, 50, 204); + --darkred: rgb(58, 0, 15); + --darkblue: rgb(0, 0, 58); + --darkmagenta: rgb(47, 1, 65); + + /* Override */ + --orange2: var(--acid-green); + --gray1: rgb(20, 21, 23); + --blue1: var(--acid-green-dark); + --blue2: var(--acid-green-light); + --blue3: var(--acid-green); +} + +body { + background: linear-gradient(-45deg, black, var(--darkmagenta), var(--darkblue), var(--darkred)); + background-size: 400% 400%; + height: 100%; +} + +@media not (prefers-reduced-motion) { + body { + animation: gradient 30s ease infinite; + } + + @keyframes gradient { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } + } +} + +html, body { + /* Funky scroll bar */ + scrollbar-color: var(--acid-green) var(--gray1); +} + +/* Instance display name */ +.page-header { + grid-column: 2; + align-self: start; + margin: 1rem 0 1rem 0; + background-color: var(--gray1); + border: 0.25rem solid var(--magenta); + border-radius: var(--br); +} + +/* Header card */ +.profile .profile-header { + background-color: var(--gray1); + border: 0.25rem solid var(--magenta); +} + +/* About + Pinned posts headers */ +.profile .col-header { + background: var(--gray1); + border: 0.25rem solid var(--magenta); +} + +.profile .about-user .col-header { + border-bottom: none; + margin-bottom: 0; +} + +/* Make about sections transparent */ +.profile .about-user .fields, .profile .about-user .bio, .profile .about-user .accountstats { + background: var(--gray1); + border-left: 0.25rem solid var(--magenta); + border-right: 0.25rem solid var(--magenta); +} + +/* Fiddle around with borders on about sections */ +.profile .about-user .fields .field:first-child { + border-top: 0.25rem dashed var(--magenta); +} +.profile .about-user .fields .field { + border-bottom: 0.25rem dashed var(--magenta); +} +.profile .about-user .accountstats { + border-top: 0.25rem dashed var(--magenta); + border-bottom: 0.25rem solid var(--magenta); +} + +/* Statuses + threads */ + +/* Thread column header */ +.thread .col-header { + background: var(--gray1); + border: 0.25rem solid var(--magenta); +} + +/* Main status body */ +.status, .status.expanded { + background: var(--gray1); + border: 0.25rem solid var(--magenta); +} + +/* Code snippets */ +.status .text .content pre, .status .text .content code { + background: black; + color: var(--white2); +} + +/* Block quotes */ +.status .text .content blockquote { + background-color: black; +} + +/* Media wrapper for attachments */ +.status .media .media-wrapper { + background: var(--bg-nearly-opaque); +} +.status .media .media-wrapper details .unknown-attachment .placeholder { + border: 0.2rem dashed var(--magenta); +} + +/* Polls */ +.status .text .poll { + background-color: black; + border: 0.25rem solid var(--magenta); +} + +.status .text .poll .poll-info { + background-color: black; +} + +/* Status info bars */ +.status .status-info, .status.expanded .status-info { + background: black; +} + +/* Back + next links */ +.backnextlinks { + background: var(--gray1); + padding: 0.5rem; + border: 0.25rem solid var(--magenta); + border-radius: var(--br); +} + +.page-footer { + margin-top: 2rem; + background-color: var(--gray1); + border-top: 0.25rem solid var(--magenta); +} diff --git a/web/assets/themes/soft.css b/web/assets/themes/soft.css new file mode 100644 index 000000000..6507fa701 --- /dev/null +++ b/web/assets/themes/soft.css @@ -0,0 +1,124 @@ +/* + theme-title: Soft + theme-description: Pastel pink and blue with dark magenta trim +*/ + +:root { + /* Define our palette */ + --soft-pink: rgb(255, 199, 234); + --soft-pink-translucent: rgb(255, 199, 234, 30%); + --soft-lilac: #D8B4F8; + --soft-lilac-translucent: rgb(216, 180, 248, 30%); + --soft-blue: #d6f1ff; + + /* Override */ + --blue1: #7f16de; + --blue2: #7514cc; + --blue3: #6b12ba; + --orange2: var(--blue1); + --br: 0.8rem; + --br-inner: 0.4rem; + + /* Basic page styling (background + foreground) */ + --bg: linear-gradient(-90deg, var(--soft-blue), var(--soft-pink), white, var(--soft-pink), var(--soft-blue)); + --bg-accent: var(--soft-pink-translucent); + --fg: var(--gray1); + --fg-reduced: var(--gray3); + + /* Profile page styling (light) */ + --profile-bg: var(--soft-pink-translucent); + + /* Statuses */ + --status-bg: var(--soft-pink-translucent); + --status-focus-bg: var(--soft-pink-translucent); + --status-info-bg: var(--soft-lilac-translucent); + --status-focus-info-bg: var(--soft-lilac-translucent); + + /* Boot-on */ + --button-fg: var(--white1); + + /* Used around statuses + other items */ + --boxshadow-border: 0.08rem solid var(--gray8); +} + +/* Scroll bar */ +html, body { + scrollbar-color: var(--orange2) var(--soft-pink); +} + +/* Header card */ +.profile .profile-header { + border: var(--boxshadow-border); +} + +.profile .profile-header .basic-info .namerole .role { + border: var(--boxshadow-border); +} + +/* About + Pinned posts headers */ +.profile .col-header { + border: var(--boxshadow-border); +} + +.profile .about-user .col-header { + margin-bottom: initial; + border-bottom: none; + border-top: var(--boxshadow-border); + border-left: var(--boxshadow-border); + border-right: var(--boxshadow-border); +} + +/* Profile fields + bio */ +.profile .about-user .fields { + border-left: var(--boxshadow-border); + border-right: var(--boxshadow-border); +} +.profile .about-user .fields .field { + border-bottom: 0.1rem dashed var(--blue3); +} +.profile .about-user .fields .field:first-child { + border-top: 0.1rem dashed var(--blue3); +} +.profile .about-user .bio { + border-left: var(--boxshadow-border); + border-right: var(--boxshadow-border); +} +.profile .about-user .accountstats { + background: var(--soft-lilac-translucent); + border-bottom: var(--boxshadow-border); + border-left: var(--boxshadow-border); + border-right: var(--boxshadow-border); + border-bottom-left-radius: var(--br); + border-bottom-right-radius: var(--br); +} + +/* Status media */ +.status .media .media-wrapper { + border: 0.08rem solid var(--blue3); +} +.status .media .media-wrapper details .unknown-attachment .placeholder { + color: var(--blue2); +} +.status .media .media-wrapper details video.plyr-video { + background: var(--soft-pink-translucent); +} + +/* Status polls */ +.status .text .poll { + background-color: var(--soft-lilac-translucent); +} +.status .text .poll .poll-info { + background: var(--bg); +} + +/* Code snippets */ +pre, pre[class*="language-"], +code, code[class*="language-"] { + background-color: var(--gray1); + color: white; +} + +/* Block quotes */ +blockquote { + background-color: var(--soft-lilac-translucent); +} diff --git a/web/assets/themes/sunset-light.css b/web/assets/themes/sunset-light.css new file mode 100644 index 000000000..c9612e36b --- /dev/null +++ b/web/assets/themes/sunset-light.css @@ -0,0 +1,95 @@ +/* + theme-title: Sunset (light) + theme-description: Official light orange/yellow theme. +*/ + +:root { + /* Define our palette */ + --eggshell: #fff6eb; + --yellow: #FFAF45; + --orange: #FB6D48; + --pink: #D74B76; + --eggplant1: #5c385e; + --eggplant2: #523254; + --eggplant3: #482c49; + --eggplant4: #29192a; + + /* Restyle basic colors */ + --white1: var(--eggshell); + --white2: var(--yellow); + --blue1: var(--eggplant1); + --blue2: var(--eggplant2); + --blue3: var(--eggplant3); + --orange2: var(--pink); + + /* Basic page styling (background + foreground) */ + --bg: linear-gradient(var(--eggplant1), var(--pink), var(--orange), var(--yellow), var(--eggshell)); + --bg-accent: var(--white2); + --fg: var(--eggplant4); + --fg-reduced: var(--eggplant3); + + /* Profile page styling (light) */ + --profile-bg: var(--white2); + + /* Buttons */ + --button-bg: var(--blue2); + --button-fg: var(--white1); + + /* Statuses */ + --status-bg: var(--white1); + --status-focus-bg: var(--white1); + --status-info-bg: var(--white2); + --status-focus-info-bg: var(--white2); + + /* Used around statuses + other items */ + --boxshadow-border: 0.08rem solid var(--orange); +} + +/* Scroll bar */ +html, body { + scrollbar-color: var(--pink) var(--eggshell); +} + +.page-header a h1 { + color: var(--eggshell); +} + +/* Profile fields */ +.profile .about-user .fields .field { + border-bottom: 0.1rem solid var(--orange); +} +.profile .about-user .fields .field:first-child { + border-top: 0.1rem solid var(--orange); +} + +/* Status media */ +.status .media .media-wrapper { + border: 0.08rem solid var(--orange); +} +.status .media .media-wrapper details .unknown-attachment .placeholder { + color: var(--blue2); +} +.status .media .media-wrapper details video.plyr-video { + background: var(--eggshell); +} + +/* Status polls */ +.status .text .poll { + background-color: var(--white2); +} +.status .text .poll .poll-info { + background-color: var(--white1); +} + +/* Code snippets */ +pre, pre[class*="language-"], +code, code[class*="language-"] { + background-color: var(--eggplant4); + color: var(--white1); +} + +/* Block quotes */ +blockquote { + background-color: var(--yellow); + color: var(--eggplant4); +} diff --git a/web/source/settings/lib/query/user/index.ts b/web/source/settings/lib/query/user/index.ts index 8cf64197b..8c4e5215b 100644 --- a/web/source/settings/lib/query/user/index.ts +++ b/web/source/settings/lib/query/user/index.ts @@ -23,6 +23,7 @@ import type { MoveAccountFormData, UpdateAliasesFormData } from "../../types/migration"; +import type { Theme } from "../../types/theme"; const extended = gtsApi.injectEndpoints({ endpoints: (build) => ({ @@ -66,6 +67,11 @@ const extended = gtsApi.injectEndpoints({ url: `/api/v1/accounts/move`, body: data }) + }), + accountThemes: build.query({ + query: () => ({ + url: `/api/v1/accounts/themes` + }) }) }) }); @@ -75,4 +81,5 @@ export const { usePasswordChangeMutation, useAliasAccountMutation, useMoveAccountMutation, + useAccountThemesQuery, } = extended; diff --git a/web/source/settings/lib/types/theme.ts b/web/source/settings/lib/types/theme.ts new file mode 100644 index 000000000..e605192f8 --- /dev/null +++ b/web/source/settings/lib/types/theme.ts @@ -0,0 +1,24 @@ +/* + GoToSocial + Copyright (C) GoToSocial Authors admin@gotosocial.org + SPDX-License-Identifier: AGPL-3.0-or-later + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ + +export interface Theme { + title: string; + description: string; + file_name: string; +} diff --git a/web/source/settings/style.css b/web/source/settings/style.css index 501e9dbef..372031203 100644 --- a/web/source/settings/style.css +++ b/web/source/settings/style.css @@ -439,7 +439,7 @@ section.with-sidebar > div, section.with-sidebar > form { display: grid; max-width: 60rem; grid-template-columns: 70% 30%; - grid-template-rows: 100%; + grid-template-rows: auto; gap: 1rem; .files { @@ -465,6 +465,12 @@ section.with-sidebar > div, section.with-sidebar > form { gap: 0.5rem; } } + + .theme, .form-field.radio { + display: flex; + flex-direction: column; + gap: 0.5rem; + } } .migration-details { diff --git a/web/source/settings/user/profile.tsx b/web/source/settings/user/profile.tsx index a03d4d247..cd4b17227 100644 --- a/web/source/settings/user/profile.tsx +++ b/web/source/settings/user/profile.tsx @@ -23,7 +23,8 @@ import { useTextInput, useFileInput, useBoolInput, - useFieldArrayInput + useFieldArrayInput, + useRadioInput } from "../lib/form"; import useFormSubmit from "../lib/form/submit"; @@ -33,14 +34,15 @@ import { TextInput, TextArea, FileInput, - Checkbox + Checkbox, + RadioGroup } from "../components/form/inputs"; import FormWithData from "../lib/form/form-with-data"; import FakeProfile from "../components/fake-profile"; import MutationButton from "../components/form/mutation-button"; -import { useInstanceV1Query } from "../lib/query"; +import { useAccountThemesQuery, useInstanceV1Query } from "../lib/query"; import { useUpdateCredentialsMutation } from "../lib/query/user"; import { useVerifyCredentialsQuery } from "../lib/query/oauth"; @@ -64,6 +66,7 @@ function UserProfileForm({ data: profile }) { - file header - bool enable_rss - string custom_css (if enabled) + - string theme */ const { data: instance } = useInstanceV1Query(); @@ -73,13 +76,24 @@ function UserProfileForm({ data: profile }) { maxPinnedFields: instance?.configuration?.accounts?.max_profile_fields ?? 6 }; }, [instance]); + + // Parse out available theme options into nice format. + const { data: themes } = useAccountThemesQuery(); + let themeOptions = { "": "Default" }; + themes?.forEach((theme) => { + let key = theme.file_name; + let value = theme.title; + if (theme.description) { + value += " - " + theme.description; + } + themeOptions[key] = value; + }); const form = { avatar: useFileInput("avatar", { withPreview: true }), header: useFileInput("header", { withPreview: true }), displayName: useTextInput("display_name", { source: profile }), note: useTextInput("note", { source: profile, valueSelector: (p) => p.source?.note }), - customCSS: useTextInput("custom_css", { source: profile, nosubmit: !instanceConfig.allowCustomCSS }), bot: useBoolInput("bot", { source: profile }), locked: useBoolInput("locked", { source: profile }), discoverable: useBoolInput("discoverable", { source: profile}), @@ -88,6 +102,11 @@ function UserProfileForm({ data: profile }) { defaultValue: profile?.source?.fields, length: instanceConfig.maxPinnedFields }), + customCSS: useTextInput("custom_css", { source: profile, nosubmit: !instanceConfig.allowCustomCSS }), + theme: useRadioInput("theme", { + source: profile, + options: themeOptions, + }), }; const [submitForm, result] = useFormSubmit(form, useUpdateCredentialsMutation(), { @@ -125,6 +144,18 @@ function UserProfileForm({ data: profile }) { /> + +