From a284ae39637e3740ffc39dd981ddc5f38897890c Mon Sep 17 00:00:00 2001 From: nocci Date: Thu, 1 May 2025 13:23:46 +0200 Subject: [PATCH 01/42] generic gog picture if gog game --- setup.sh | 9 ++++++++- steam-gift-manager/static/gog_logo.png | Bin 0 -> 44806 bytes 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 steam-gift-manager/static/gog_logo.png diff --git a/setup.sh b/setup.sh index 4741e96..3e8441f 100644 --- a/setup.sh +++ b/setup.sh @@ -590,6 +590,10 @@ def export_pdf(): img_url = f"https://cdn.cloudflare.steamstatic.com/steam/apps/{game.steam_appid}/header.jpg" img_data = io.BytesIO(requests.get(img_url, timeout=5).content) img = Image(img_data, width=3*cm, height=img_height) + elif game.url and 'gog.com' in game.url: + try: + img_path = os.path.join(app.root_path, 'static', 'gog_logo.png') + img = Image(img_path, width=3*cm, height=img_height) except Exception: img = Paragraph('', styles['Normal']) @@ -1108,6 +1112,9 @@ cat < templates/index.html {% if game.steam_appid %} Steam Header + {% elif game.url and 'gog.com' in game.url %} + GOG Logo {% endif %} {{ game.name }} @@ -1598,7 +1605,7 @@ CSS_END echo -e "\n\033[1;32m✅ Setup done! Seems to be okay!\033[0m" echo -e "Have a look in your .env" echo -e "nano .env" -echo -e "\n\033[1;32m✔️ After you are done start the system with:\033[0m" +echo -e "\n\033[1;32m✅ After you are done start the system with:\033[0m" echo -e "cd steam-gift-manager" echo -e "docker-compose build --no-cache && docker-compose up -d" echo -e "\nGenerate translations: ./translate.sh" diff --git a/steam-gift-manager/static/gog_logo.png b/steam-gift-manager/static/gog_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..eaade02ca42fca650d800e754f5f5dbddec48644 GIT binary patch literal 44806 zcmagE1z23m(l$Eyph1JfFu1$BySuwga3{Ds1b4SUa1RjNf(J-&cMZWEE_YgW%&{dRR#SM{vwiBeILMnxh(0ssK0vN95C000!j+x>SS^xJi{Q~vD(P9375 z|FTOVddrLP{ke9ukgDanxAoy=yzPJ0ozGeo4 z{uXhw6$I-js({2DT`WPIOq@(CU?C)sfQy9{pPGc!KRds*1i?0LZccp6%$}Z}OrGpa zjxN^Bth~Iu%q(ooY;25g5{#}N9o$U47#&>6|DyN@hlHi8xeLU}4dUnk`is-l%+cLV z5Db39LH{IogIN8W-NE&r(|^gjc*YJ7CEWLC3ub#!+zx0LjFGY9$Kmix<&e6seY)|LvE z4%Tiqf?zflmj4%`4YBwOVE<3xFDg6tzkH|Z0C^jn?caTL{*4KOx!IUm{|)K>AECdD z&8GtKvb58YfV_Fi^^Nu4!~Gl8{SWkiwEPT-Bt-K(dnJT&%oYT#Rf?|Dbtu9N$}Ch}B04Q@1xMHWoHc zMwYi1s|G6@A14of}xl+R@tB&e7UYfcdY`v4i}R;qTV}PzW&p z7r(%peu|2GG7wicN0*QPF{HYs^M4QdcLah!f3GV(Q}e&PEC_aTakOwZx3u`%h;PdO z19f$@a`QBGu@tp_TT+5xQ7bFR+j{s2Qu!-ZKx`m3CN8Fbtc`zl@wBmgqx-*`lKDU9 z@;|x>F#j*@|1tId$Rcn3{_)*gc6v*5%>T-BZ;gLtN=t{g^yu=I2Wi`s0^jm&AmnWo z{4ehV05pm2iBt3vs@TKA?2&k?4A?QU{U4-4FbQKY#7$Y*M@=sGGP#SbhK@U_N3<5{ zNZkxDNKFLBN)k97QA)szRj8K+z;kXRKK*c#JhkSiRgwrT5$hfp(*s+xH4Ngo6hS)D1zo{U8r=}a604aCgY|R zXXQ9@J`e%5t>8~w@n-{n7oP2l&;3$hF4#3G(||qP&;IpUoELo;F3|TYNe`~1`;=X7 zrgTiU9phXIW)e{w*0HAH2gTV?=YBJ}B<&W`nNNQ_UnpXdDx>Fhdrg8+bQyw+m}IY; zsAUqGNbjBlmP>2Tgf{T=jYBR86KF_ zn3mZ|M1zGiV?~to4HBwg+8T6VLZApVMLn}PN?N9)&#Ixj<4bvIW%~S?AN#t=0g<7v z*Q~s|rn~#|k%ML{dQXp9(r;QOJ=%GW2Dra(#UyQRIm3dG1SpT93Qzj3|Y!|1z+`$lA zI`dB`9Rt{##(_>Uc;~5xhn(~tvnEfU=dHaLkYB5&(XHnhW+sftINNn9%%?YnHJ?T+%gm?1s`z+fl;(i1x^@^-9vyIrzFrc&#R-^Y$eKzqw};48g8) zES>{=`e&zcg+5Dtrw7TKc6rEFY|B6Jx>?S7(P>h62rgw=)l<#cnd2=+2oZyMC z`MnRth=}msIkD08>sA%XU~MINa^et$|LXhgH~AkLofYg&uU26-S}E^WlAE?tPm2>X z3wB%QK6m^Ly_B!ha%&0az0M#dfwifpI-r0pUo^(HFXk4yKYksbwl{5r807Vwt9P?L zfi~3dh*q5bLgyFr+;Xo(- zkiH*>r8Ivo#@3(Ht@t5iQ|xvtawu#y-!z!>*nPpe2qn|4nx$qNG-6tAsk_k0^&p9b za4aa~GUHd1ZAphZKYcP+EH3E${@~Pk;5u7RD;QlH74bNYLw5kK7z$=!a@T09XVg2( zbCN}R-SP;FIIfVqy z5wa|A=uqjHI7c3IkIi|`rr79WXc$;D%9)#}#NtUfUGD&fWJ=le<}WBS#jOiD#EQP( zm@t>qlX^>KYZkWGV9=RrhuaQ$rAv1_j1|%5XAnd82@%(IKng$w^ggXXlvnxn@+41W zB4|zv9<8OtU(UGQfbtL8aA2sv)fL(nk@3|(7e`gW3CpT z{2;7c-(5<-KK6v>|FJo&lPb9sV|)UMQi+?X?F}7=!N44bZd&xAus_%j0lqz5GSa#L z`%+H7R;`TLSG03G44;sAeq6M9kR9R~Fjc-d6Kqcl^pmOGU!){aU2K1HqFdgd;PWOy z#7I@sv#sXDU{oDGQ#`@cFs2;LU=$rY3U)*kgkK)QeL$v&Od$yepH%gl1aB z9Ex%L5lh;%s>pg>GF466!1=yo{kf+5Wj^34P2YiO?84x~4ek{wv*5*dbJB+&-Os;_ z@2{Et4uxz_FUY)B@LDvWjUVo^=Go6J*?iy%=4f7I4rtuP%*P4W?-T>h&Yt^}Uv>ig zPn+j$o?j8#9+(eK4vJ#pJI~{417^7cW;5CO-w9qh8P11Ls29JwRQulnnG|V9C;@(77beQjdzf1ml!Pd%@!cb&HAi~j~s^4eCr)_kGcU&#=D2HKR)ZWuuP zbWdeUAFttR$xB>m$MDp#!{+2{bGxq9m2)42Uly6WU(<#E>|jw3-)+u7zcWrQoaQEB zIQ5d}zl0@_K zcf4K--wk))#k_7Ee$K}aC~dZ5J}zdP`?f4UWF%@5W$=Is-N%WDah~0Eh}!)J`L+LT zb!Y`t)Eq1OZYjTx2;UnEUnG9|eR^8zb~rDLg9egTo0sCNi?JHKi4Uj2Q}+AnN$8sB zE>wnc)+{3Dah_2UK%ZXPKxXl!71i&ZpMm=)I6gG-kq^Xd397I|KHIHMPW6K1Mf#4N z_n-ZbhPyBMySHcLnaRKauY*GAm&e!N0S_Ap0gYddT!$9qqPbT6Q`0>{$k1>A#D-y$ z{D$6#l){(n0mmI($GJmzfQ9w-*B%7_>-~V2Gyfy?dz8oDk{|@}brP@ov6#L{F(gMI#^iPq4gzTYm%{a&tKrY=Oq*P4fi@neI*SCQ=DW zm@V6FU?!#2;~_$NG|pHaMj~~-!2R?me>-dITT5o2!$I79k%8@D=B2f@rwc#hk5|*f zla0QeD`kyD5j=RBFXqr>;I3oCfNN?09YJkFcN~C@ZNTaLOKrg2yVvRG+W<<+0}wja z72Egb;f0&gs>?wog2wTerO6B!SEp{zR{7$Q_}-KKQNiiy)w2pH|1+5WNUmt>O>KpKIs*XL})8>XM`m-kZvqO|U_inRhBc7%YM zu7@yXftLY87}IF}Xjusoh~B*hZfkv?3js zxm1v|Zn!ydcbK7}+;Y$1oJyR%VSdQKT%XSynd~8u`W|H2)^wc@Y1>q%s!6z=b>0d- z{U9G}h9}}T`m7vJdEnQS>L=(^C{7!?&t^pgwd#AR$i3p!i7WB;fCgRHARG|@=)KzOB3M9@UO?(F6-@!i%pCuivKECG0Z1j$jWcTKK?h$F{?8!kX8s&qCVs z?jPDSLL7f4zT*=WO#K#6t^Br-4DP+-e&WLW^jo!WJ`lcn@I!#_?dq-XIkK_9!uq>| z81zx+jQU>K!Y90jH6WyFVrY@%WTASI`VnGA-CHY4X5hiTBz@9|xnbhM&*VyM5P-KMB3(C9yb&K2pPG;IDGb zLG@UeKcHJ1`C@vOclA3?{CKmy2ihg4#-&gszO?O%_0qGh%4mNd?B36L#Nii z8n5=xhRgcEzREkXf6*pOZ+7qm=u0A@6xE)diJ zKxP4wvw&c}4tNcUGl{Wo)$vDRVa<+}I>m~sdI&N!$W^((M&KpCOFKmz+x{eYf5JZX z5#7Pjabo|H=4R7HYfj5%N8Ei1p}$v-i|2%KrjyBflR`iawof-RA=fo#u#bz0wKEpC z<J_~cuT}-o_~`&1y06%qm_#1*?rCm3{U~l@ z{AL_A`J7-nwI5&>+E5k=lkc_t=1I+9=4xCMD;+o@BG2$9XUoC;6<*|)Se}CIqzj75 z$^mZKH35LgkvA?7rnVT!62|z19SyBQgEUAe{Jd(Bh*F9a8ENgO^aGLSJ@p2FI2a2A zpf2>o?+J=5DBxa*1hN63>Z}v{=lh5vayMy#)nm)7V+Ec`h6fxi7Qo-NHh@G*9svrP z`O;G5oH4gd5^X^_y=yX15p#5Lf>bLBb?Ep)VumTxdg)Xe{Jj4NzDauhu+HJR-n(Y# z-j=UgFGm`c^Z}+GfvQN?1SVG;60qR%yUM;=8rZlZRcz5aN)_0h*Q5r9Jg6dbXO#Fs zHXVetUL>9O$Oq_E0K|eoafvBvQ3(JPKAavAbd=K^6|}u5dUY;7-8Mqh)?NXn7*ll` z%00DySPbidTSj&4XWhKT!i29)N&7<9_MAqO?@W=~EKW}rAVoxM98)3#RuN~rEi=>H zM`ji$FEZ?&iHnyCG7Y^YV)~}^2zk~KGkxzs$uw;NRu^+v8QYtj?lF2sE;wCA0 za8f~91)Neu;fb;UiBS9;@#7Nb866u24zv%{sN(%5_`n|THTn&7VjvO{v^Ddvy{o)X zP4l+gPVx+b#>~1ey!kAnv=h$*q%NR-H)o-n>!Op2WiCA@y;L`1k~kC>HmD0%Z4VPA zo&6NuB@IZdl<`Gy2xS>l>eDbYlOnOw%=fikh*q+Porn!T5_Hq-@Y5YeH4nCi=sN*W zD2;tE8W20A2m?j7us}r(kB0L-d@NM4s_joCSt!$-J~9wEzL&RNDGUBc>PYH~)ED>< z$f>FDg{Gi*6kZk)r_Ii!8#ussP#z^3zr~g?Mznp1yJ_&Y0JXPD>7`EheWTBed@FXu zGlDeYeE+7NTRg~@1S4_*<2Icp^c=|AHlSCt(9kznfHQ#}K-s%T}@fM+m4A4X9@UBHP5>e>@s0E_mb|5k+a)kvNY6KZLD(`vd>uBm| ze%NRb-~?SH+ick)0oZxo@0UPI97<{|RY!{ULXg~GG+}mNF%mk>NmP0eL9mA$b=@1Z z5XyuV&a+xsH^bNlk`%4+lO-+wisjgOSc!;;mVDrF*cirUnU5`Ettn+QjQLZ13nd6(o{{~I{=7D3k0$2P|taz zUxjxAagVV7nHotUKN^!+rcU)uR z5|!>C9>!K<*<^;#K6nnR=Me*^n4ccnJj>`kYp96C;FDvqJT~S>bA(DMj22)hBrs@7 z93qZdLKteftWa0AHI_tqj-hiU#IaOby2zd|z;bN;GBG0PaVF?Up=zQPCJrV>eM2bR zdp!A@c2br>MmSee#P7cHB+26~2pn({#M#v`lrYpAI6-=dBDJb;dq;u*7!kTyP|)zn z75h8btKkbqhx1vg~?`L$l2b@;o@@QD()-L3Iz6m zlm-wRBe6`Ux{CZ21CgT8acsmS3vfOt4i(H*;m};f$CcYS+f~xoe9m+riGx@mRcC%< zuaJEBrqF)dV0Gfnd105f?S#nV-GCE(JKV>X(;KO^&S*&xA%A?0${N(ctz*gU0(--2 zDoqCa9nH*mqHIhAn!2Q`4#h{la+X-7-qrrcouR^zGLz^_G)@ei27d}jZpIm1v@ctF z)`lq&(*wO+7DcSWq|CCvXAh-?%f=Rqo7;w~zYiS)gsg8mR)b+ZsQVsaJc+_mLIhe( zhCmhzpCU|dbKDCq2^)$`8hyyqLSY%%JHOEDl?+7YWBrQgMuAkLl_CiIr_ck`cMBU?XfC+L|ltB!Q}+PiB?!R zIJv?v6MpRs%g*M=Ph^z=Y%Oq_*|u;l>*ZK_^r4jyo?szH3IKI+OOQ0eWy}i`fwT-& zW*DD15D`$IzxO)Qu6V0|yDc6xoryzGTprf9ndoKVb~Zi9ZVo<0iu~>px+@vSc6zgy zr20`shmWs{hfh!?hcYgZABx#JT=$CtnF38P)DigBme;h(sgh~WahmYz!JT04TQlNd zcvRZAmd3cN=0Bw@qvbP|B3mej99>dWi9?zJYaCxNP(%w$etuQ`zDLx`1+h)ub7epQ z1G&xU9k%it`;{#kabTU|G`0oplV3667W1O}>w?yS{ga=|o z0H$4%!z;gIE>Blh_p!mVizaa|OUOY)-#1TA4nt7IZD%maS~U&kCqCc>KS@d+{QMUYflI70%-T%fb^?32FCYZ-VN!-rmQHq&@lV~ zM4h@c`;bW_ei}SCS-s6FiiDjJ!0`YZ4@Sh+0K2`@+TPEz#SGn`U`nfnAc{xD)1QR& ze4mY~{y-1tSc#v7z~0J+kBY+aQOkQ`p}}h5C9cNV=N?3ZvCD`utuPx@r7V?ek)W8KxKTD-!|=hR zICO&7!Qsack-T{57JKH$2;QDZ^Yh z0c=9wvh~oTiD1CIzy*emEa0#aFOx7#;F9s*4GU~EBdno^d`Q##R{4XKr4it@T)~v8 zrIN)*;L)4D9>@)w_!D+qMw1D^w+tAnFyXVJ(C%0b`v8C{i|Cr}D z`0$PT&r?lD_-;I5TBVTH2}@&xg33ADcjnT|k;LE!*W6`nh!kLYUPjcqxNkJj`}FiZ znQWl}QUN-ifbS^xhL@sv+I@D-pcA;ep!`f!ft`#-t`_6X#|Q1Orm1 zPV{9UI|v%WLHVAY&U!SZ1U2b{=mJL-$~F`dPfbBRNJ|G0*troM`UO<%tYyYotVF#^dEJk=De8WN-dD7m7oub4Qx);yJE_MH(_qeg( zhpo{wC~Th*vV8uf-Oy@dAyejZ|IED9`M~6Vr3#Ji`5DCVf zyMw>G=bkEwVQ3HQkr4j9sF+-p?b>u#Eu9xf`sLG1JRe(urJl+DVd;DA9JgmrzF}^$ zo%Qc^EO6IIHsjA&3(fIT8-pBvE#cM4EK5)7+<)%KFUZ>5!WR*2Mco`dErsHXcW z@^cCF!NP=oC6WhQOAHkw#Oi0T)(<2dQC!^ZMv!<9#pfTK06-sjGRk$1)wQG9xKEj$ z$HJJRwdw}@o7)Q7I{bD@rr$tyCw14HJ{i1cY-aAjoU;BmGXadWS;CW!;#J~VaX(_4+jQ^9lZv}jQpSF zjqi$Z9qb(dUhE1-DoJA6C6et~1wYjAa#H`d0K{=+F`joDXpZN%dwQDr|$`MI)mx7Bsax4~DX9ym#q88GkHgLdE0> zZ%=Gb`jXflG*pP=#`+X%OtgZ^iv{bu{uQFb=l5_${z<_5twymHu&%8n>{(W?B(YS_ znY^Cvlwr_5d_#lwBU7S5?T+}qq0#~I#%B)} zw-=e|btM1!{Oq~Vleptx;bS!(CUM8b(sI|Cb?w(pPS1b?QbGUu&)IPE$ka+Q1^U+AMvim;& z6(gHrR~o<8vV`DoTxBVpqE=$J)LD*ofgAl1^u@Uk-{I9q=u`VSp#|fFgv}!O_~nj_ z5rRgnvJAV0PB__x_23d$`SNXTJN(`J}K^?GHz|PbUG-=72xF#;>QVtDSRU zn0&ZkBxob=`$6IRM&TEjv-`Y>>WTeo2ko^BD^uN*muKnMli3z453$(tMB+qkJw(}x z^lvZv-MfxY-1A*W-^f{}&#{JI_mp2@8^68c3OgNDBu=ExeKtMIMVE?@IbG=&ZAjo) zjrS;G;?l}eoHDBUUh>rV8O4c&TOMPh&)vs4@Y)&bU%pLCc zF-F(g>pm0JwLW?DEq->7f@jaY+}*qSkxsJG$Jy%hhtX_2b{)?7l~7 z+|@(F)4*G{`_>Z-;5eg9Y-YYt?++D$b1 z$Myah#@4Pa#r21Wx9V02XKm9E*mv=o+5d96d-qFaZ9B-_XVZ4gdsngcSLqB~Meuj@ zkK_yhWTVR?ZsY4w?R;TMr(mO}E!)=%{xz4?m|EgfiJ4q!j0x0YL8ZCf_tg_JS_Ks$ zJ&A-7U_NWBmMp1kfOL6t0}8qftAS*mxJ97ILW2-a8h!z^23ZYhId11cSZmi&YPx|7 z2_q|3Xe9Tl@AKR76YAkL+v|R%k?XO%(aRRH8Y_UuW7j=>)oE{Jn_x9m=1jG&tKBe-+}UsLph!?)UU`$@F?b9p-b zjofA`^Vg@hw92e8sB(BpZ{&3{Dlh7hh|XCg24AN&9wpDMWKgK!TzKR$h?8#Ye{VT- zP*y*Nf-&0_(OU|!9g;(kN^^=%isrdejQTi+9l8b3q-kwwjcycqZW^j!p{rcLLqWLG zSHD4IRzy=4(sFIL4XtIzm2YqF*w@y7|3Ci)pxqVaX%eYPgF(pkv2-N8gb%e9-#*6V zKPDq{hvFe?LGLFKmms=3(0@(~#vHN;$1BA&%~7vmUO#n1l>G0Rq1w>1_+X6? zmo}phllR*kh{{4^0$pcxD&9AApGCv*dy3Li^+6_nA?amDRZE(;#c7zf|8TGO5*?V1 z$Ign^x33E`i|GN331IzUuPWM!isEjmJY~tU25PK8+0pV2E1EAlhevXD(HE&%#Ad^R332+i%K_50fPT-QVwE*q(AB`ksk z?dy)|#?gWHR~-4(5#<*M7;(IRG>&@!;GcfCis?DqK4<=S>o39q-naXtb#qV;ei(fy z!`MUM7xHsbsxajQ=SOGPey=@2$7zYmu}>q)}m9dC4pbiaTEW6R+R3?Zeddpf^wow9<>TQoo0vlbM1mhCQNjIOY>6RPhgpRsNpS zb-l^ot_JDfcX3mAliWsCF1i3;^iglN9{TDK`Fe7O>s_dg1rFzx__=pjA^1 zM6js5!4$=f;yAT4@ZQK5`W=&6HlYmgy6-fv-dd@HIp9M5vvRKY*r(^}7^ZF)T?|F? zj*j0~u4#j{vtjLNUxM0o$*9f*AFr1KF8z$}Lf#2Ip7b_OowHl-TnU~0`dX)h$Qc|L zT2X@5$Kep~^X$J_)6wm;zZ!5G@YLqnb3&{ZM&*~<05z=TV>s)S6B1O zt1lx{LN`Cie>5k$W z%ItfTg!ZYJZ+uUSd8@~bhR~e;bbuo`aj)|_;hHT^r)%@VU+2u>{V+JhO=j?X{KY{2QNc5%9a!f|8+9a`l$UxMYbej<(>+IL!V_sQ((=3`lrCdTHPdu(P9cQ~mM#hBM` zebwW!{#X=gGKlJj30039){5=>YLG&(5KiJ^xRQ$CjGvWge0A@5W_h-PD`W}>il=+>|h?$`DwTZj8W1}&ajOXM6 zAYwEzuH>gjT3E%PGYH&LzjE?)IcH{D7Ht+=f&=z$ss8YUKNJ8&1Ik17KGF4fX?33D zo3Cq}EP{)O|2Q5W6o1uUU znSP|$yf5dRDH$I_X%6`^asz+8VprNAIS@Q2w<=@b+YVU$8ay&@Aci;d2N{4~L_rdt zDjQ!!_Aa=zP1ed!2>a|LozuHDTUe%}3Q|-xSzU}Hot~C8l1xm~(r&sDgO5G?5g{mJ zSBAs|5Ok>8lc#Efg0EOsP^2PR5nb(~t{m)C787Ho-&DxzXAi|3(2f#4*EZC)w6w(8 z+?-lzJO8uB*$gKWf-L53II_`d_1UD`&wT+Am!)15mf8fLkdVs}LO_c=P0&t%}*zgXFXh07B~4*|Ga>mJ%OD4fGe-bCtB1E5}5t!Zxp& zT8Sp3!%7d1_FAQ`hb|!@{GY6y({lc-R16w%J+;cIj-i<^)u_ms4yuo${UApdCHp{H zVOXfDlM&e2ps}kE(QV$SsHo0dDUD|uEt$gUZN+X8O>#boe?~mnX-F?xX@<%bBq#i z|3wj<{b!ul&iwl

dN#d(q(9UCME@4Rlb%xXIRGBlp!+$rLAmoiZNn*m(|k(vB7E zJb2m3Vak}@77kg%Z}#slxKPcC&fP5sB8L@$p#_h#kM9kpxW;|^-_&Pt*QGI+N%szm zDQdVGH#=YH?IJ}3CMKl3QkF(G35%#nM7tsOfaBZhJxq_oY`MmXK5H-wcl4Oly4EcB zvFiHvS@(is5Adq`mqv@iL*%SdvBPM@O6zmfdCAr24eVi@jnPGRSvQ9wb-&1=(Nz%G z5b+HOL@Rg(yQX10FxHEBTPn>d0k+s@AECCAV)`S(cg>!xQ%IHY1nRSMcNXJ*wWwdI zh>ejF`Q>Zs-kj~`0sFoiHo#po7Ry6GAD>v33{`fsP=mn?oWWG)-}@c8<}WAAx*&V5 z?AeD6Dq&RB2_gv}2WeVuvOeE><}WVGs~^&YVyj1|P+6w1$>GZ3&q&dV%N5S(;f{_g zKuQ-Gtgt|DC1ynv!0g<+(=-(I1ys9yvjNrKv}P7y6bp<_*^rB7e=oFE7`9ZCn0XH# zgLMfN^{J_W>)~TwEqag*9LGpWZipmh48ak6^(8QtPKxk7b!M+%08ZpG=FqLaXa)o! zFrj7iw=>B|{sB?xY!jg}@_hWt>LM-|;SKDPM^vf}DKVrlRiSwbQF?PJVx0`%O!*_Z z4K5KSjn%NTi!R@_Z6Z2$Gw>(mnj9LPPF%9EyuhVwEDq2eH(@5k-Kd6>#X%NjvOUnC zuXF4*8c^qS?Hbc*jpkvVi}4I^DuI+rWhsMiiBu|YDOW9TFIOsG+T5+w{B~Be zo+uO`_&b30H`dmdOxqFfR0~9u&EfBrIw&Ww1QG7!F>oh@tWqiO!K8HXzvz?>$bm32 z9HdcVG#m=_$#bHb;+m~?Dxnk-)RRrfh!5~^DbQhUVm!3`6u^(#EFun_lUsDEj4d_Oi5B5D%)YcFZQCP=;X3a7hi zNsxb18$Q@LTwV|sd}KgG`2%i3w5=`AJ|nK$tV`3*?)_yZQyd$HzX5+ub#>Kh#rw2X z2|ruw+w72BE8#ifX-APz2|TBARs45imU8xc?HSo-H8E<(&`~yU@HhlvrJ;=K!75qT zQKj#|COe@k7q|dGf=L9$upI_Ha{GHffL@fEf&{xn2@W4wSZDL1JawoDQd96pC~wTp zIXJEb9=BkI6nuYHO`+V!LUHIir=T_3To*y;<~i&b zJF>DNv#}t4H?%B@xS`$#!;()j?=uECi#|9bw}fZ+{qmV3`s!UF&K<2=osD!uJVj& zJN0UKvbSUT#m9sGs_BDV#}1cCk)&En#ZUbbNQe0~&C`0fdy(F}Y0n2dEmckKOf5|= z+GXb-s@c8vyLuG>Hq2&d6BeI?ENJadi~P|DMCs$xM(xtGk$$bDM5h3M&XI6T7^$Dl z|LUryU;g>_%PNGORMY7f@WzFO(FZ|SyC00<;0dQMfb95GHzd~x8D8m|7J0xS;Qu$pd%_Pmc` zD*8fQvso@njJXMdhd06d5EedodJBc0TU7KIf<3=CoXjg#^A`XPH=|kFZ1`ouUdHA+WoWSY~MDd7HInCNu6^zN&Z$?y$lH#Fc_cRSHps5f^8$J%^$7h6xlM8b)xVv+F#5`|%&3AjNYd@gbF zijstxRMd0u!%so!1xEInRVy%8zl))z{CZf7omCdK*XdGP>Q78?^C%(DPTIlR6jQcs z=|$MNJWD-=8L?ATf{cacTFA60-LVCEPY6#7Rw*=&50xw&&CJ6uWj6|q|JYsO zN&l&5FsPDlUgzc*lJUI7V=9{1^X@Z&458%Gng5Ot1{~Tcs$>bpr$59uYvLH){fq$g zN*v=Jnnptho_!*I!a1~1tmkTWWJ=o>{yXb(FxfM8V&<+<5$PXmu9J^ z1cVS{OW_H`u{c!2G*R@pC6l4^I_snn?`{i7eCWeX>hEjUDeH`7nwv@Zi2VUX>NVy? ziN~Rgot(&)VVZr(yTL$gQFKak4OaEtvP@hHwHK5I$L!S)_3ET2b1^XbzgBdj=$9yD z3Nf|QkiH(ywcVH58oyjr<_WkDv4-mOmjH0?ERRYC&k~A&vSbxDeb*hsFu=gPEJ7+k zphlKU<&}I*5e*HQfQ+G%EW#16S+^ zcd=uy?i!DykkyBc9xWVhErR_pa;KaPT06&2M^dzx(b-(H?q# zHb(+{>9no<&>3D?&_ThTwxZL7+%z+2yDYp{M4Ajt}%_cP+Os-zl{_opy1r^Cz`6 zeFKS&p!zCnI&V6KFS*C6PnBQKsc$@PLnN|LN=ywMo%8~G)?Rvl|L!su(u1wp5~5dS zO*G*0_bi>z@vf zsS`chdSQUa8h!GDX;)i)eRH$f!;OrgIeIkb-1VB%G2`p0@CyRJ^(4_-y}%5?J(~0J z*X`?4_fx5{&%;k%`zDT(ORFw}%<~4=h)PxHO;cluv`-J!h8)|WhF3$bc8=ca(mjQq zCn=c>ipPK4vDIXkm1_7EbTj{CQ%MdrBW|vs%&IsD~6 z1=Bp#2zARp^J7Cu&Jf#0`*tak#Lt))VU1w+^AB zg%8ij@%^J>Gf!Xe0DVqxXK*EF=$(qhr+_+XpkE#8=(rMl!Iq0o-^N2$P0TgB9mFq} z<(JQq|4&$`2cSWC*Ga_z9fd}8Q=wVe7^>mq+aoMYAOr0Q9*;*FA${61(60?dcRDPN z5lH=(osJG?!EA*s#L=Opkdg|+^6vE;vyYEJ5z24dS$#*rGPL$hYc!*h>^{GDUJk8q z;*Fnt&(M#ea#wlpzxTQ--#P+Mgr0XME2s_CNjHZSppB$I0d&MquMQj5R&mMG_nma0 zJaS0o&ipHH;!DpWuY^vKSV*>*J?6vn#+tj}FnyAewHYy3NpOc1!BGMAXu!QRO&6Km%> zeNCU{#$+S(Pw}8gwML#xJO62I z%lgZek=hl%y^3UMO)aYv-6<_DrOrf$TmiMuL|1*qr4D$*^=wi##P36oe|Eu6*Rver&{!;onc&pMQ5(8lThL`klH4T>M$}tkY**KS=nA6N+{&Gu6XgwiPS* zOVFW^M}*wtwQtaO*U;e^FNJCQ{<`t>RWZ=%DyU+|6i3l&>{D3=SAja3FiMTs86HKq zO@ay`Ti9Dlux_VG5tSHLwJ%7zBWBI=tZ(rjLq&q6>$7eABkr_(5s3K&wQ~P{8%WYk&6>zQ&(2&lR3*+@=rr zeQim=j=i7SXWt%M*E}!slt0tO|0LMR6Mk3?A9H+U_J7FIUXjtumoFZ??=`JAKcb;0 zL9(?CCd!`q?8T1B{4SI!b_3;bSz5mo$OeUJj@bE*_uEWIWTw-q^~J~Pl4L4@8h&eC z|AjUd7apk*>2;SUrrCa;BvYUjR3hq7HF?v1XgiIjX^ND@`-&XHg&`~XZ8!?0Ni_Hj zg}cyrwzxymD%(ff*IQEmU0da+1E00?_W8BCPTo(e#Qe0g@+CuuS-Y?z>E11xF54Ml zZzX3%1Q$_Qjsf`NCE~i()`_4Q_9EyJ8pEuM`d!|;Y1fBG^YR#hALQKPR&+?P@_I^Og zpIAe$3gJv%ZFqS2a+w>^L$_$n*ug{SNi29`m+5F7aT!x+HC1hjWuQ#@Yg{J!IGGyb zwe$z~9RD zNd-{|eoI56K#ARX@~h9>_Zi-KpwLZT-(|jV|INO7$L(Lf^NUwpf8z~rc;jW)T!Y#$ z3qy+Yi^=GcttW)Eh{+Eqw}0l2gM%u9r#sZI?orU~))|nc&wR!nAF?1E!ecNDE#rZJ zT_AO{9S#J&LPHMzl3r%SJ!_#O_fq8iq^%#O8qcr8O*{6Ob8l90~81b zr9dgk%}6#3Z_VWRHk`PKj$K4XV=hItE!KW2{})1t+NS>67rt=sU0-Y%v%Lq=?>*=Q zoS=_z!Q$tOrcf8*3o+oJ+ppWL2DNK>T33F={&V3`9McxCFXZ%TN({-^@5%vXX!&Zd zEcFwnv1HyAneay}~s&If`WSGH16C-?Tql{LBh?co#TRU5`W#|Y_tsn|XDd_d5 zQ~?Yd{d!j<`1$<==+1jsfxKVb3=+i#5I;1C(PjM z?N!<-P6((83vwDPaK-k(HI+4u(uz=#DzquIG0G4rWD=nuGDt6Yng44$Uf#yNZynD< zE9I=SlPceDrR^O8`KLl5Ktv(QWSfqJhIs`f`|A}dBXyW0Us87f?j2;zawOv{)>P*q zIE-Itto-S;Lvb_#zLUdBXMHYhkJI4BFy+u!j}XHBwU{I%BF_o6QHoFrfMu?otJyZv z*-PFpbCnbdxkVrXNG8C?N!a-)(6yBz5s=?T%}`mW(vZEZ zrrP?2yj;9I#*izy{IFv_6O%5(1?qix_#_kpE<5=zl4gfY-HDeWWI z3RvcvT_fC62nGC_R<9eR-^!5awtrZ9*o zj_txWdv(3DX!a|%4i&L=M6ha`-W1v&7{vO) z!$sa+MDY>jV@JYnn`f$2M;1+hR6v0f#$DbODncZ$Zwh-;2ZX3p0_@l|)>e&OG|i$B z>rfFApetqy^|XHv5eNlQP#mxoS9>PUEJQ?p!x^nfE7XL_2_c{lw2|$vk}HRj4l*=i zrsA#cWG#1+4g&qqWDFDr%K{vL5QqhKz#z=t5)+)|14S%;e90@EZiQMAsiG|PWJH4Q zBOQG;I~s5Ht|m3q(to&gD9 zln#A${eBB+vrhuigtuOO{N}5U&CT@gNB+;d8pH}W>>74fSU?C-lh#UW-vU4gB;auv zpNxWoAAvfp+U+hQ>JIkPH^+;{I94~%G+|%+ zMS}-5EE-%iSUGH%8UY7r!~9)jK^N6O394oeLIFT#zVfOoe(;Ci{Vjj#4Ky{$q4Rya zj6HR?9<+vCb~z5)facQ>jU!&C9fwbyC7r+Rviog;{RV2enV-T&=zRr5M1CA~BG&J{ zjG0^$p7zlOF-jwOXT#W6G5x;k)|dTP|K)eT>gE@pxA$F5A}oF<3Sj_o!p?I-c1}bQ zD)Msyl)^NPA?E|o746y%h(lmyXcWPI|A`6HMiK2KK=xbJ2ohd=&C757zMp%+&41~9 zwaB{E{q{Hn%*w}mOspro4|7-o%g)ow_~D`H{1|4&?sp&Sb1*-zjp848aTL5I02ok^ zy8DWxIkK^*`8y#Ag;Ej}CnK6YKjbYv;#fqyzUjg|aKAi+Fl+;?d?O%YSEuS7q~qYW z?imaRHp6_zR!9>%m5<0I08X3}YuPoZ)H*wtop;KmfPv~c+7CzMtmQ0ApcR($9R+ca z4BAY3Kt5+WJ5IP9ha;C;!`t{{2(238w}(gaCO1Z4L`Gyn;mo$`pYZ$WNfdVa9?hOx zVs)tb^GYHj%-k^hsHo!mJX>~7m_>OZ(V{ZMw$6C$L0jM;BD*H+peJvb^+6ks(7hs9v; z#&~nY4v-}tSKmBH;>rpjLh{j`SdfXBkQIq2LDdJL4+@&Jj}iITlb40KYjCu;+&?9yl0e0dEoQlC&1RP6x?u$`E)yI(V32n-o6?4-0^wHR1y#3qVr~ z5hDOQsSlVZcak~ZbZ~I6b7t3C3+K||M|)_$2?xhG*34tMEI*w{+)24C(9`mfrjNev zx#vrLoj)D)72EFPNMZUKf%58*64nA*&Ok6m6;@SPL zKfUX!hOHHLC=7xE%)-nPCj&(%W?U7Wu$AWMd6Kw!y=1e7ARFPm1;`^XEcAjl_M=am zSb)#n33zX;S6f|;)xNv1Abk9>lTV)fx(!Pihn=`5o(`(onuG@ATX+1X4APAB-fR)Q z4Ep(Gwu6hyIN?NI*e2=p>Rubk;CRL73|@Qh(KZA`U;wm1KVR4(GVB-{%JS) zsOs0Fp0bk{)qi+-L6aBH&M*TLJbr1lB&oh>a$BqOASB2jYQj>HQ3Q${s0LMos!?dN z+LA)0MH>{6u+C7rlQEL@)o;YEFBB(ak-Hyx_D}D6 z00S5TbRpy~^oKzJh<^S2sVIfEGHQQJkAiD}oCOrHAa2Fh0q2oK`9_iu@3Zf#Eq9Shr(`2?3Z z>4^{&Qb9B~N`n@qoi?@RrlHcb8EK8h42=V36t7aHK87)G1jMkB3tbp-R0N(pz4$kO z`jtQX;-mJU=DGprQWz?Un+T@#`2+^Y!y*USC?Zop;`Hh89Ax{zgumE52X1<4AL`Z? zTGXU^tZ?Vu!TS;kk&xC33TFT^hMiRkQ*z0Lo{~cIA-A4aEzycinMVIbrYl1M1i>dY61Z9 z*=d;~YmZ)Iq^m5jSKHekeENeQzyJ2T9^E^2#_lb+s>S-rmyBbp40<_+7?6m54!HnH zJFDAkc{vUVK?sF_eZNxx3W$KSgGj-V2lthLMd+~)aZJN~+n%Z{_Zfq7S zU;lI=nfSBN&QFCL(S>QC!(OZmsNK}PJlTrEfGVfRjzle_ca9sk39%`BgVmx01${k zQ2fSe?ONt2*-9p%^vRbR)>jr-pE>#PXaC*lNACt;@58Vb>RJwJSk$nnv9j1OG(t|0 z0iBRQyIW|I_oM@tj=eIpFQRkq@h6_T^YefHvwy*Vq6ZO%??mltmp+jBC88@D*Ke{gE&;MD2r*)z@V zzFRD$X@a2;0Ekd)ER34Z^ybWL&5NzM*(~)et^Pyr-2@SFj;p5GtLoGHi|6*LXZQX; z=H4~fmhCDJ8;?1=d+oi?xKd^8a*_(zsU!szV;nmIj6zv9g&`=yE`bfgdLaot@B7|!_St)_?m6ceBR|HR z-M#i>?Q^AjFPXK^K5MVFdUdba^PA)SjeL4uwxdi5N=A{nsWh(0V6fh|IiNQ$ne|?F z0fE*Y=o(V1cl&(Vtf^jD3)kI6L}UhL+}-=)r~cVbhYrD@WSvGk-`aySxPJ!s>F` zPbWSvG%8QV*|-1|V*wIC1yUfbQ35m|t7V_qaEJ>}&PBzqxxw+`(%+L&R})sy-b!@l zgqr=oNT8KE=BQbN%|E%G*OjzNBWAOQ##R7Z<86O7VZK2TZRne?EiDA}E5}-uOJxb4(7jGQ}j>mmRq**l=nc7dvnnZJL zgX;t^6q#b=q2tZaooxC$$HODX-R&dpqbZazm$7)Iyd=>gpw`wf01^hqF7l?2CqsAp zsK0&GoowP!$B~h#UcP6;dI`1)>=!b(adZmX_>5KkU}D+ zIw$U~q;!?ot~|RWrgrwaEmWbimwI7M9zp#gZGp^BuARI48sNo+w?6}Op2ngg&LG^c z1z%0JtweaGBdE7+2}du>eE#pUA~{d)b=|_zz`~WUT=-^t;_SM&tOW34;VqfNw)d5) zK)2OId)QhLkQu}2XprR|H)Oa|lZLpqAsx61c zeNDA7JuVW%YJrov5Y(03Q)hM+FS|JPv;T7+hw~jq-21a`ldBI}xg^_CMkhR9;SCUw z49F0{no{hq;u-*JVc0-eMbmQD6#}j5eoKJnf^1pTQ3Eg{s|m)qde^K_tk>|e7hF7J zO^wu*%rir%iYQ(OuzidyTjG4h_5X+Rjy^mNSJ<1s48Sb#E@&6%twGwZZz`su>I{Nl z0tlv}SPEO-fsA?nvXV*}vno(ziUB*c0fLwo(X5(^7Bw+MWM=Lv2*Xj|9S_~{&>eN$ zMK#l+HCvO3oP(d(ND$0`h!DHbWZ-ds_o%w;*z z!XkF85h>O*tSf|}?JY|KxKI%>Yvr^&;r}7pzLjNb0l2;Z(|Ovg&S*OgHiPgQ5x5UF zyZXheKzRAB%S>JL|6V?HCB)k^%T78^t3%Yx5SuT?nj};aRTTwPG(ZthF)T9KN)npv za=O1whGB@*NA4mrQ$X&c8GxvXp#dUtV2Xje$i4q`VTcq1GLir>apX9}xarE!Y04g= zRv|>7$h_&o$hBzNw>NRq5t9~?G3V`=&&Ir+%5IV=$(UqJG9?|8PDxX;lr0x? z1U5cE&?Ys!EjSWm1)-W2RnaO88wwWeUCe02EAI29Z5;PtxxbL>LHlZ*<6gxX4a^u3 zfdYlzqGA*X8F)gXMifxbvf!|-dom|1U2&yn=tfRZmnmyLMGohZ2cfy^V+4Sah|6G zF{XAoYelr-a1G1m?5dlMnHn@9pdu<}N@@(i3M2}qR>aEEUb5`c^uqb1P&QrIbUbuC zblgRX%z?3wo`K0kalCmXlTUwxG%LR&n2slZ;8Yudjb;=3`43$%d z7zum^YI&ioKsYarc?q@&-^(SbcHwMCSp#hY$^6Vkb;!p`5`v0pHc2WGnT!GwL+CIX z#sV<`kAOTkJ80e?t14)<36Tv6kSi340m*3T27w5BsVM8!Zwk#zP#^fZuMQGeTe$6T z*ECnDsL7y&UN1G2NmuBe_gm2|qDvhuDg zLl-t3Z~Cz5!qBk`#?HB|nb>K|K(c5Ovx1a}nIltRFItG3PK)}=HvnK(5eyWLVs~rP z-`R90Ll`0=NGkb!obGR@`{(KYc{v};Zq$@CyU;68ib=5FG;MN4eb zYn~M^Fj?mjRr5XoKuaMes3oiH6+4%7(%B=X^VvbfP*BATL8TdIYaFf|k5|C&hG$;- z%6c=vWxHBUlUcje`e&1t&GIo7lj5R4HGmO801UWJC#Xf$~>mB>v)rb z<8af*p|hd0K0;6>G6NMWStWZ$G9oi~A@ng0kvpcq-EnU&2MMtYDngOtQPHc{>+sbZ~DOt`|iiv;}69IMj$!ylSI|3AH*EXn%Xe92412Q3q zT2aYTii+wU0%ter8aC_D*z6x@bG=qa_w=@Ah}Xw^fqSfG0(yFuniegoveE$(uo04D z$~n_#H%tveR9lMxy!6Z&v;uI15Gh265o5%_5ZEQsYFn8BpeAaiXemCiPztD+$^t@| zt<^of4giqWk`ODO5LAb+6I)^oPOFDRHQL&i89nHG^LV-d|lQ;{*rE|sARn^cA_Zu-zij^0uRB#R_1Nma}MiJAM@9SwG??@xv> z#MlSM4HJgQ>8Mu~3KTXm9z~9f05T;#+m+Mva{o+D&-Lsa#t~DZQa}q>F%tj*P|+fu zNv8&t5#AA4rG_uhh@lU0h+W?W4x~jCO;Ldi12i>`6o`ynV~3ijf&hr7Fz2S35g68V z86z)XQfb!JtOY|8gZutG&$|I20t8?JjvOO98+bMTkbwvhDF6ke2o#9}u`yF%3kqxy z00ICjGGS0+r2rf)MC^L(dm4HgI_%;M!qsYA#Gn#K%hMIbIK ztNpodG*-!k!Wx0pbv$&`Md~62t^{6fRV`vrR7=s6H6@)UohHQuxh-XdCT6sSdv%`7 zCV4L45Z1tJe*(M=lCbVliw|d3P-k7VDMz^YX4FudBrI8rs2Hg8Vs}8DVW-F|F0(pu zsx`w#L`%_JWXxrkLf_?Ka`rS|u3A*GNHJ4Dq}YW!kDR>yc6jX7Lx0@IO~*YWq82H+ zNEWrqZ;ymvrn!_|%C|zf9m=D9+1=8VtQ0E(T0pgNvzUr}K{$Qxh0p%pr%s=J*79g3OaIgc%k?U7Od|p_h8T|@IeF~yx4!C4U(p@) zOhBQ!MvYJm$Aph<@%86$y2bMeN8zNLjRZ)56vxvMVnt+1GETA$g$MxE01B)`%Pjp?!f-A6E<*0gc!quH^cGjjN1Oe=twdnn zs}|S50@S8!VRewYB+OE>76oO7*mECnK+eY0hdKWinJ5I{QXLkereI>46;qKh^LC;b zuo;9ZYGSHD#BYA>?H~A-w|)P+-tzcsZ^iHuSKJrTzxFrZ`?vqMe_T@bqFSt4s0$-x zq~p!-?svW8hyUz1z4MPgesX7cIVu%ITlhB$G3ggJOA`we8bm#Q`{WC^q2J_$2jHx=70FVe&UPI6$2=IQ4(IIkzxpQ z`X~}%=rH!41cWi*(9>oJM?*Lsc&H%U)35wvT_qNwDN~F{WB{O6ja6&mqCLHyyx~oa zAuLF{gvLu2;tawI=)7v|!L9-e_Mling|lm*x@DRSyZ}X0bho{!ftpE^ggHwQD;-&k zG;Bf+P$ zQBf5EQ%{aTgJwLTBk-|T-~NmL(I5ZeKle?qdhF!oxBwr_{KmJu=`Z})kACZS|MCC* z$N$G)|Ak-F-GfF+2y<`oW-9>)y8EWLfAf$0XJ7R_Kh&Sxe)%r!MGa9iW*!DEYEm2k zbq5EyY!HGO#%}So5M$rdu&L}lU8JGo&A>+kZwBro1xCWvXEfWW;SiYt(bP1HCc!Kw z0_y7)Y*z6Wy>xcc*da*m$~mp_-=6>bnTM_RJidsH?(x$h;3y zPLi^e-Xt*ek;=e1gwTgM;KM`gZVl0Ar+BhU^JS>1DTqgg-SdY4KuGWTx8M4o{F!g~ zx_7+hA-?jLIIKq5+{xZ_MyPoukK8%=(f{~8Km6yv`SzX7%Xbay@zy{5m4E5K{LfM4 z*MI)!MR#+DanGNF+I|3D^%al5`$zxlKlGh{l4JMET-ZYm1nOcq*+j$&!g)7e6hBx4 zl8=VDTPp<)$D4Tj*z@l(26lC{@2QIvTv76cZ8gaot(BM|AfW+8#jeAy!xdt-n10E361x45AE?rXdk-|W}2r)|!_^E_iiML;t`RPZK~))of3 zH!5ezspM3$loCY)KuWQQ#sg;^{=7O;@r8tkDD+u`Z#~=9*zW1wN zRs=5dv2u#GOf3w^-}eLW{GRXsx>pQ=KHm8FoBza*{JH0!_~OTZLSHJOh8nll!&;-_3Sk!0`F5Y|4=XzR5kLLnV~ftw!qKo@@MhW9xvxu-gYGj zuak`{{9OiVeM|MYRP3!}pbIH9PxVnlbVU?E4dsF)oJyMVlymA*<`hHZj)+$Td=xpJ z3_YS0l_ZjiCXrk`ds{uSzw+}V;F;8VFrnkQJHQ)XnU-hQ9 zyy}&>hW+t%-~4ZV{kMM0XFu}cynQ|iCb29a3Wmr5U-O5)@y*}(ZJRrX>FECe1|o(b zZ0;Q45PV;2!SwZ5R<;3j$D7&LLNRo=j)q5W0RVb!CR4Qo-BiKV(N$l8*|T8)t!t(S zHX?;+A)5%0qNyQ)kt=O7 z?2o+j&YRx;2XbLI4i2F^>NHSGAA)_ajQ_ppcwy*fGmiqrqpm+00BSlyjn3D;A_hws zp~=?SLPRtJG=e}DS^H?Ivz%Qk_F9)k%$VX_CNh_6?+L~AHQNOcT?xV$<*~S+p4yDU z)t~dV8bFP1HQ%YZFs%N98m7&YOK3G_BYxvO*Cw@RU*OA#A+CN|CXY zF_&#BW7er?Q80Vs>+U{!_vpoZuPP+xhEz1_jZ8>6# zad_E61b{CuPIv`Y7st&NrX#FWtMy+2s@h@{}n<5;MDf=lE#zN*FvXYpUicyCO=!n|^roRVSNQ zl5#rAAV2Ri^DkP|6jO-=xSKsa=`LKt}Mr?XX3%ky=ig4Q~m z6Vw!&6(%m?usUWQR_-mr?$QzKCzenlT*CcYJg%WwE8x_ywreO_Qb}W)#xQl<5iko- z(dH92+m-Udm`!mLd5APb?nAAXa7=nu6jEU^HH%SSo|wcHqxxeAfyjt~J!vxR#gSj> zfkcLsjg!bOLD&J4A>h%gSd8%xnxXv4VE|>D#(U>e%Iyib6rWhDrdGD&OjxYBq_c6l zciz%P=8_(p^A)i9Wnh+~?n-5X+9#5U5Ch|;L#(N>Q2WPv1It<$vm}4-skrr&F#9YK zn&+qf3pcEat6qNC=j!u&+t4M0vek@LY3{pk+tmCi=1 zjNKr)q|@{9g;Q8op$jSV2Lu3Kaa<#OSo6HuK^QOw>H@}qfru#dT@5;$p;}P|RaLFA zanqWTv_$Hv2E1-fV9WJ;Xdl9LdMdzWWIgOQUeA6pe7N_Pd1<%i3TEIMsdy4v)-;uA zm%Ek=%Q__;8FyKBS*Kz}!60rBBZofL%uNm`#$BAlM^_Fp`|vZ{fBMPi zKl9}M@rASLg$L8U2XelXX@ru&J9ax|X!VtQ$@^TE?B5tA>t{amOxl$hfdNBD-G;kJ ze7GR`{CbvqKv6Vl8TsUO7bo5eCwb8!FRpwD_(ugxj}X*-QT7u zL6ax-g?%*6n`POK*3?lglFxSO{y8?K5CP_frUV8aNCwY2^V%jaJ|<%}W{g4m4*SSM zq%IH7G@H5BoWD&U zXm0`37Gv?Co*0msDCDA?B#mX<<=AnI6qbT6fM5`k(l$G#1x`h>Xfe;Tk4GH_4t+F0 z2uj7ck8n^D{_Zo|pZe`5f9v<3AD@44{?xtg)6Y-O-7jZnI_@kbkYwrXU91(K z1A=)AMf7_Jj6iJ6$N^%9-N5~E+;kxxn9Gvo@Bj2a`#b;B&p-3bvkKXunAN;+1DO*? zJz2D#Z{;5N=!ZWBh~NAD-+8?-LK~kM zlP8D@us~1loRzxT!Ge*9;D?foD4NIsv+F1gp*in>1cs-Zjkj@@;~ z8knYBwqu#nB1x_jhF}1oX=+@1V4^xsvfBZ){8#`2BdGBNLJJ7BD{>9ClL9J|02{M% zuqjjDS?>9$;I?ZPgf|1KcRaG8f^AibAXH z0>p5H#1#4ntWqp=d_YxGv)_LD>{CxaDBCeT*ygjXY$r|0>*DvyI?Z57LojG@2ym7! z^V%39V}cMMMvMdZ$8osTZ8{DIB;oIW>d6oN^N&6A?DGa zO-WO>l1&*yF75)LKA96Aogq)jG7q$A`bBWI=YuuXB8Q>~unO=M=|z!5^n2W-NkFphcmU^ktf zr_=L%wk^9+Q*K!ib6F7XKS!Y0A1s- z=H=K*9^T~sRo80))Q|uK5X~kfIk;#Xb;ap@feb6Bs5NrY!|TC{NPHNwE=^5XanhSl#@=6I~}4%HUP+l z#!TCZ*%&mKsg>I1TmcbDy^C#N<`BB5eWzWgDOqM!29QSTK~)+wg|(88mQ*bh*s`*LZG540q+V2-gdd=!{O9ygZ_G$+rkjDcFI6&yI z8+bU5!|nd)&TxFYKRS-x;kpg0D(?z`O$M63xOlTJ&nm1QT=)6zm;s+I}AOAp2BhH_+WIzPYG&Rt8G?ad|r*S zl{in&a_yeZGK)bVuz=RFZi3wErevkG?~m|KPfnhPN+j)i7PXaK58paT(v z0DxFrH_|CX0WnKO%!*nP9g7@w1$+)&r!EWHrwa~l6@!jF*q#HVBH7zO!_5ojBYcbf|59`QMo!F{QT+W|7IBHc% zO)4~3{mbQy=!-WJt%*UKaahSk>0%r6%ZICi7#2fC1`5PIg(L26#o;)1$DzML61EjR z!>(@P&=OwuWWi-E(4bj^RTv@!f{t~FdeoJZPLBJsi5khwAd`Zz2&9BlqLC;AilHhR z2&4=lL(C8Y5rdHt3&#>7Q&40?G9)ybRXm){m+PH0UsBrI!`X&5Gd@)zYHs+n7nd3f zv_|TP2p~|y$Vi3?h=xU7HC=4NqD3SJfDI7_L;w;b5i*%F6ctsFVwOaASvD!(-&sE7 z1eEP054O6UEF~xfMNQNT(Luev3RMBPh{URhdIOb!p~JXoo|rqs@tt9F9EXlcO;gTO z$p@ffEmy(TTBxhkb^(Wbw_^5o--tqMp+>AL)3pvf+>O^NWihtK5)1qcS5z_A4FxDw zZZc2=?lBJB9fj^B_CpAVwRAKjBUEb3!~OqQ6O_@`OZ+My57r1lwH(k{7Xv|L>w|Vd zde)94xOG7!0S3mNwIl6N6KGLYP!O>qm@-TSqYx`GA+mBP9E5{ZVJHSv8F3aLDPG0$ zgfGG-gzMmTNkhHxvMpLtW%7bb`MQ++IvQ(N6Vus8ilBx9fNBVUs3=zEZ;?tK^JGGS zc8quyyY&U@r)j4N~kpplc=qP*LIr97q*c_b z@trh<>(a$kUPHGT>hE^#L_lPSTJ;USccNAO(Zf^CPTivjUT_6&bU7k+I^E25_CD~!k&;6GRvD(b1vhRjz z%EbQMKdd@hIq_N&i7xumb)%}IFiXN#9MUL#52MI+Rt`WBIYQ_#bjSgi0GGYxnxhGj zfe9EEKC?wduVwMo?e0r`pYo6ph|z=b-kgRA7>rf1h?DL#-2<$qVEEc(fB?{;X{-1V zQxl~ul!T%Z8UZR&puiNED#;ZBTJ4raEeddXR+g{*lCZ5^>!DdiDOPi}YD0zYcSdX` zqSmQ3oK+{Nn=zOzcOgkWoz8e-GuuRn+zrUgAs|JfuFzIxRPU8$k_AV(WU}vn15wOM z#p=ntfY=DNiVu(Uq5&B>oh1_o?uTIMnos6yZ+)4fRUY^&9k!AmxKEkR=QrjQZ#^d$OC~Gy^1$DeIp>L5eY*kO)8^s zUxWZ$D;L31ND7(|8AimO5CgJ8FvwtH3L=z+vM>iAjKGCB5NBlcE_pWlW}rEQW?^WT zf4_v3hu2w(wmKzLJ<4Fdx$b{=4YjQdgoTzCVd*$Iw??xp`D{9ei9D12C|V3%hk=YK!sm9h!wH?tjGL zp%uN3K%6TjvGz|pBnb(yr?BD9!xEbiH=*k(Fc8e#T-T3|!@zwe$yH%Qb*W6yl)gq2 zMQr9(tRDVP$a#41EUJtHA@ip4M~ObQ81 z%}|tzk{AI3(9C{OfV4`&#Tj&1+lM9z*Ryb~^>=yfIfrLpU-4dp#gjK{^GgYq;etcg zk_=X`1pr@zO&v9Wta)2@GC6Ozit4dyANxRoi33tkJdo~4Mv+lusKmC{4y@@|F8XRl zXl*Ps8xc;xi5!VL3IoR>bVsp2j@@zWH?ea8XsVN>vuQk?&hL+Br_+U4p(%=$(wIhtESQ@v9y3*qol^NA}Cp%MnLH&{F{7-_@Z?YQy4 z;1I$PV$UHUf!=^Y1njvxibKhQilB~vbGr=~feCnNdt$1{0aqBr5NPOm6T>F*5I7*A zf)**`BzUgKVrGytb*N;f1xu!qScL;Jbvyw1{yYhd1$P1&O;x!l7bPSxjL4BV5xW68 z_kF#AtuIwy`S~)nqX67Wnx_CsF7`-)^ zEvSRG{qG~?`p@@L)V=0jpf?;<&t&tw%*(4*zTO}S1JZHmOD`J=9fgiL5(OkMkefgV z2%FHI^qZW;N@YUBws3O?KMLkBuF3?fWCw(~S!zOYhM#GYIifN+l zh?XH|94&VyY=(j+h{6cm)m|nHNMbY<+GY$1cVZa~R7s2p&@fbCNZ#qoiDs9HyLvid z{{3Rr(d#Dcs@qT{q_usW=4YB)Pr(Qq6!*Bq+qGhA5dbSm2mor5HBFLRFDEThyph8u z41MUB;y~OH4Md50cg%KbkZ?N;;piXX3;kQUXUqhkiI0P4iu@9l+5Qq>!O;X9* zJe^J3)9L(lIzLP2=XpEIm~|xe7~tW#)jf4|&*WR(wi+>85|`~}1lHqhL2?y{l|Sj= zW$m55+Bi#hhr=Lbby` z5UFDap^8e%)W;R?C}9kAJn*dz-|Bf2ITE2^DK>IuGzH0!3hXjRDN&6T0$_*K2l8%u zAutlD(Nr*a#byRnQ&kcrGDM6>5t)(MZNeHJY>r!)*YF&Z-7_d&Dx2_Hb=9gQ#MX|k z(d)F-89;}ki$q*3!zRCRS#AqNYj1c-p4KO-MN5{FrKFgT;${ea=dE6dI;7(e!ojt& zp?Ieoy3F7*up!X9mqp^pp`*};&~xnBcXW38W;IQvj3u3?-C5c_n9k4A*4gZ*TIrbB zOyQt=wuLBQ&fC5y;%vcP(?~Cg$Ac$m%IDgr`Y=aYy(i7P;DstRRTggmA>qKmVmAaE%KGLS6qmGAwfecJb!HFrZK!`|PBBmIr@2CqzNNN~}YF`rtHOpooMr1%3 z4BaNIgbpwh-CUuOuFNc()zMdA%*&_&%A>C4Y>((_r}v6+HPyUDG_H@s_1!X1wJerR zJ;<%9;=<55OON8lMPlU06e7ZbpfDmH$Nts*$xgB-nG#TSz<7gNc1h?Dn2EXe(9kSp zDtVj7^E94KyR)=C&%0gTjj~HJWt&8kKt{9X?>#tCEj{v}aJyRdzv-j*ZvMj`*di0S ztgby8h(qNm06>5pbMYRG1}Z8dStOM*-vc z94oxC{Sh%Rb&>i=eZUxyX$~J~R_n5HMv$Zy3U#7_MgSW?Bn(WEy^k`P5dex}3fM7B z#YELak-T`RcDZw5C^a+pl6&TwtnM!#gb#BU0oEe1DWm9teg`1VN#B)7{{kQ{IBLMu zOjNUf!3(V{rc$Py$Cx*vA7bBgSEL-+^bz4G#78$r69~+b5Q&kPsA{C%RvXa+n?=+q@ggm~?UhD3%q9S+R#w8mqcz)v0~ubk|91GvD+b1jIx17Rv`* zd;o`Uq5-%s5@7XHqol3V;DPfwTHC&>I(Hn?A|f|9M*$I;xb~5(fj_mH&fSVk#0;E; zaR1W~0NX{jzxkk=lJ=Ayo7YFRMP|RUJGbVPBb%?Vx=<@OGTM4GH+N%z zn0Giar%*~QecV+U9YWr)?g0WtwD~WXhTxeqzP^r{*3UT5hj;^zI{%+$CbIZ76LO$wuF`TDps2 z&HuA@S1`u#n%6vb>-K^E7T6%PaK%=D9rhceFMS4VT?ajc?yR_cs9G9ePn$+)vx&8a z<7RrPrg7u^*r_G5*p!99L@=NMsEAJ4itJDGvimtcYr?6a04Z?sx(-w$MCJrm&@w`) zHDBO-hCb77Qkyf&h?yx@VThiJ5Rjc(crMnT=e!mz7y&2(S&c-a+l09Ky4T-`8z*b; z?Qqalvznhv&@)^xSpSA9>-Mj(raODKTWvOKYTo!BC5t4eZT|ThSUG_k{Tie zL^H?=Ss)e5Vx?Fq3al&&T)Q_0~PM&~wjS%>nS%xemgjt(j^2@n%xm`Xv6|$3Or3 zpLs$`cJ?*{=ZT@inkW(dd;k6qyzz~%`=$5&$`fCFQpCUVyr9+y+?&-H`Ro79ul^H% z^51#;S3Z953~&i=2mlX9c8H5c+MHG}^TQvmCp1e^QYpl~T)|o4yjgX35QPRHswqn@ zrHH7iiStC88LAXW1Ob6uGcr@Lw5GQ(%OYc@U2rchDFXtC$t0RoiYX9;2t8R)6BW~J zG65qi+|-inOgm9RRf9laYFS{HY?on|bSjud(S%t|jJUecSCSB65r)`^l&tBcs~a$T zNB1rDy*vHlWZqyBjT<`xYi!W9F{pNBx-K@bAKYu{%Wro5jVO=y<)_wY1BaIk}xoZ8*D;R8B03Pld5*ejKt`c69Yg9hqYNt zrR?%Frj$w%DXL;vJHwbDWT?e0b;D9CWtnC*okX{(Fae;6QrB9YCDBo=03c(J9D&VQ zZ>5wnNjZazrKmv?3uva0i|r;j8)2JZ%vw~KHHfNeAgaM+au8Pdt@5^U{lD$eQib$o*>p3j&y3(4)*u&BNbF28c#2Yj)LZ4H=D# z@g$?zjn2uJV5q8SQAi5Os?$JPnzTKHaT~4`VQK`*(E4`rzv4ZE0BwAK>`@4TL4 zxdLC#p(5^#td|MU{5>~bQZvWfwq9*JCJc->Ny1`fo5s^=J7MfOY&dRWXBayU{A0<4ze;36Q^fY7y6R4~uhZ&I-~{av572^k;*#QIy^I7A4D zg23)H5*i;e22i%r3M!LWmG*fx=;nMOAk)ouysEoG6wc21bO8h{T6MXke4% zF;B@^2U`%et_4S3{p~i6(;%#_y9kU$#Vi|+0)c@Ei6}7lks^f{d5ED4#Dr#+1rSv% zB~4hUWSW4AfvS@~7qKF!3WS0vor*h+h?x*w5;79jBvN1Ndr;gn^12;%3EKPfe(hf6L|}mX=_XavgU0lT=xFp^+p3vRYq}8V3!neu z7r*#)$tA>>JwL%f4T?dfBDPu#p`ZTr=bn1%+1I}A8n)?|^^(kf|I?p+;>oAx#oP4$ zhcH#=4{i^M;xeE_9F8S})j~s!p(o6k;wKCTFXSKXtxq}tm z=jy{+bk?JV{?mLRR?Lc8QOjysAwTu(Gr#d0zx}z-KlKuR)9YtIn=@wNj4`m^{LqJg z_jiA<94PRA*~aPp2Os?4hd%x3&wUBUR{srvuct=nLC7u%ZwwP^wvsg^$&;o@Qj(mc z6qTwL-4LRv!HKpynnv9GMdU1K^*7E<`M^bo0v5n*m<=a`NnujRZX&o=O@vgl2^w#+ zF)3p~N`Rx;!+$9bncdV+vN6ug@Z5@EFop-tWV=)!nKdhysA>2?`` zuxLd#i?TI1>oa@!b_vtSs%>$KR#-v{lv`0NX62Xv=?6aef#1%xzt7A1W$R_Y%wP{{ zAWuH^^e?^dS3dmVkEy;A*6BP-Der&(um0MvesH_p**wLtXr?#q!ppK>64ty-HW2X* zOUU&C(IS?MmTWmmPLi|atVQkMscrTo!OUiWMpT>aAp2uO@&^@%%ayYd36UTbzyeqd z{eb|^rJBucKikK?u-ejrtd_0*6!3QJCJl#P!DD6!O%f6jE|PF1>aX5%UKZW#YAbPh z!SmFtJpy-;uC&la&6xF8*s}?1>Vlbp(|7=w+rib0oN@1@DhhyKeB#NU{E45rd-vo! zzx!QX7hjGq4&YzRC1H*8FIQsvzW4p|ojWH#_MiTTU-^#5=^)kLOEpR z0A}E)nXM^?>hMUA!c=!t3({}EXy2`E&W3url@C@oV` z)X9N~u<|W5AL)`odcDMd*eZ%EU8G;mVO6kIhTw+4H4d$zu?F_9_yjZ477T?|1g81T z+R|@9YW(o;eDtsWmH+v{+1dAe@3)?u93Ac@_GJunF<2ijvd2m(fA{}*@07;B{9`}z zhyTdiLtwhWKlo)_fk@8f*M9Ybf9ESb zJ3ssP{t*$m^1n(|>i}smMKlRkp-fF7GOp|z~g``sc-w%B3i6>t;IUZc;)7pU=0Durnmd}0anGR#$ z$5~o8<#S&Kwg*G(s3qbB;^Wxg?vA_+r+^i(3|hd7f+RB(fn=gO6=VcZ%_38h?O3)+ zQ&#T?gZ+E-Dp0%2$Z&fVMAamGu#u2 z0N{N%YOG?p0P`HBnpiWRy=tV0)Ep0P8S6?fuRkTrv(G*I>~qgGx79`8)m7hi?asL1 z)tH}NZ_M*v04vL-X2Sy5`F4B$+4IkS_VevhuRP)E!}s(Wy982OA9Lydt4GfHBOm$r zM?U(A)#S`+qFyi&j3Q8I;;?p;CMIOsrTpPfKbg;V;|pi$g$McUT*t|38xI5X9!xc1 zQrlNCF;&SZpZmhoU--gv>nd0;A`48BIWh;PTm3+^r!u#Sh-J>}OdxE!o|~B(iI4l? z&akoChr_aIGMP*hNG?`DO|4|Xh`<15Dn(P)agr%nDkd_w#6z3a(RxlpZ3T2HYY-Au z-wf_~Yv%>9cWbYagzM$?qNLy9+kN???4lib35R(R2G^M*czM66SSUo1L#+j-b}O!@wgiRYWZO{ODdDfPRnRzDw0Js zo01u|qSTTtXU!Q(F=^dk!5t9wOjtu|wg^L0H6>s|B=Y37m3p_D=C*y*&xCytUJ0Rk z(yLy2vE$3G5;oVdb`3OVk^_ z!X&+o6c{WG@}iS7M3zqO6R4Wd zOCj}Yr)XO}2BN^;9@JD-)QXtSa%1jkvz%zo4bb{k*~|!xfEXANkSH+qA#P$EV%NtI z-F4PnZ#Ij(Mu^#F4(me%T2+c503iiLZ2ht$Kxf>k1R)kA0TfL|3rKB=UcA*WhZpgpQhMpP+1l5#TKhG6 z>t$N*fWr1M-sz-*wn;*OHR>85;nGVN#zRyYTn&$U+b*GYjllJTy_YV?rMBcQ*!CAB zb8|RfAwn-7eyMD&-QhhDU*cnEx@fHyaOzNVx4wu;6@yE18MxS*0l$c^_Jh7r5>j9u zVm#`)P3(pk0}**PBX|&?=4>=cvijolF9gvg=AmZJc;Z`!cP(Kg_PjFp@;Kv-nwmh3 z0v1s9j_3|QTwiayCryy4HusFG8XHz-TJlDQEn0ZR9cf0`!#ZYO76i_tq0TPha4(#A zSqeBt{Q}Kexy5SdZ%eYF4m?wC<~3dL+3>is{o7eCt^Nc0>H=DWmAbU|p8e0Vm92~Q zidQ!q_WxMxlb2w)f4=oqUcHg5KM(i*yJ}aOy`x_Kz{G@3v?F3gOmx-DuL>;$-QT~} zD`Omfa|#R*hQNJ{L)UG(ZWCi5Ml^BWAlGzjL+0j$ZF)uBF{&PeV@@-Lf-|6>jXOeQ z;=ml3nK%$4GBQ-hf~Z+B0W%X*CrhcCmQ~;{D{8@eRb*6K)ZW}I1SVQE(q-Y!VgafL zvHcaUUsA8on1$iRE3sNuc&&4Hf#>R@pxJtJiCKLH+kV#6PFv&JW^%=S=f`rUYsUN; zcHx~3TkB6-i@4>E%$ZH|5$%>++bLlGz`f6y@8z071DAK={*fz~A;4aU)pdlXv17|o zX@$I16J;jms*56;sEMkGRfBLXF>KBWSZ`{}v?D-u!*CzMCU!?%H^dm20lXAAO*u`H zi z)skNfWTKX&^h_yNtVOHVl#b4MuY^B~-U4#$= zbH{Or-OzP?jDg8Ovy?GS+dPhGN|Lg;sI5tki-!^}j z*)y|e&&*!GwbrbeS<^c=44o1}_Ch$>S?8=Z7Oex}q7^1|aXLAr4*o?`@T$Vo6zuYl zg`tSsDg10<^zlP}4>|(eEN^Rh*Om%XUFq^pOewhj4vxk42y4RX*@5bzyf@G~MedKO zvg}zS)eu9`9F^o_mI}>EQ4zmg@d8sxf6Q1&Azq6{mUs+Zz{e(5QZnJNlz{=K{-Ic8 z_NN+Q?pQ7OWbzK^&~KVUq~P_==Bi>DlDZvg;aL>#Ws;p#L)V>jK?WjdV|IGlEhFzF zT?EF@tD%M8DpO)p~eCuC(-x@!g6 zP=_QL^ZLZbq)03i$_~nfTT#36p;(H+s4VeTU2mEU3aS9_947c51n}Or*mdD*MFl@1 zC?N>EjLW-k6B1P?yFv9Q-Eh+Pol+>kSTmVvm82_ilfGf*RC9lTabz?%uZ%S8`E z5&X*KhMA}x<^1tg91~&#hgHZdb73?X&XP{p!#tyZ*&e*1=RDsf$n`^r^H* zkj-9zb6_lKM1f?0Kzn|V*q-GZNb?f z(`;gJdBq4IZhm4T8dh&_?j&g6Y3Jt8%>c_znDSNeJP>hZC<91k z&Qbsb%XuvrA)64y>KUun(1u9Q1nB|PHM?W$4r=|c2$8Z!CU#8adiLx_?w(A@Q___J zcMGHg`N5%MH+e#M zNgq|pXfaGUL}1D47xj3wWpg#K`OUB3j0eJ;S$Ni>BkRIk^hNcNVy1F{1o3@9SXje# zp&;&Zappl*RX3VLk)RxLW`m~^f}Sq1eD{&I*E-}{#BkqEo1Z7?d)u*TG{2IcJHg?!^Lrk*AXMBS{x^;A$wvN8P zWM!0yJi5rQGi8|d8Yye6Ug3&ROnKMf%!=|P8$h%|4u|NEI3$&0p5ugHd~snd%OQE-Dy=r_>ute^wufX(o{fJR7=60Kyg1o0Znj*6%f zqEoW(yME}0zVDQh1f;E*%slF8GSgybLyIHhlH*oaZj#>WK`f5$0`fi<*a0Dt140Dr z009>(l#xnECD=il?4`7-)4ZjZHBusW-4{BL;!rU7_7&OWX;|VDw^r~fAE=DF^_cc1 z9*uSohwCn*qzcsu*(91jx@lE{HN$NNPxAtU(6kQ%)&0zh1B2`j?_ z)xbO0>eh&uRxz+j+>EGhru;jkm3G`Br$=3$fvQx0nKV)Y3cJP}kt1u^3p`mTBzVtd zof4fAi?YHZ`ygb4y!ZRZ*8)Kb(J9e&T|e~0(D$lSAb?L+9rZMtX*QE~e3FM|PbCoi z^sxO0f<>-viB0ENIHQn4C?Tbg10t^-Kj(TIH_H=`BICHpmy94X z7syiaavUN2tPT5~3G=790HmTE|9x}MtUtRvEK3T@Mw1xC)sU7#PKX&>h8cjE3UQV& zc4b!g*aR%DD;Qw)Ka)098&ZLF8FgzbWq2Ej+ofczx-7EPkcrxSp%8;uQc0XIBVNTx z);ewMV#rwNNC;G&vO{P4&MkamnAh@o^3pHKK|d#@`2qmPFLLzpmQ$h}^GjS~_ z5v28X#ET38Sm71|r4p)>s+V0al@byW9695RvDySjsjKr|vo{6=H+#j*&BY;?7fmyz zI0=UFppG(j3X5n30iPj5T5GfzWnK2Lgpno%uPeWKv5~M3UE9BC_1!F~dMVUkKK>%# zR|c6dbOC|9)5ln?-Llw4%f3UUWGB^0?-oPGZ{&3-z}m3((vz%2sf6m)Fm%JoaMJg^ zWJOf7B07$GTI?L=Bn*-Fkp&)y6oerJnr?PjAqg472*J<0Uk?KgzyhGd#R%y&QYi#V zA$z49^*o#dAoR|gk_%&H;-7E=BZ%Gf&ryO-*VRx!oc9EHU{Pc6n=;HsC^{j|H4^6>X zW!mng`ZcWyu7L0!=w%FOof_p{tWPcpgRTJt=ug@~K3i~E%(SR!wtc6BkWzL-2e+Mo zBLp-;xWy1VhH$*g6D0~IRIj>0^(Xzw&<{!}K+wj{cHWt3G}COoB1)iH41#xI9`-0E zfYGWwu|Jc}M9e$D`ZE-eh@=Qh{vDwu)J_P4%J0O*0Z}6MN;w)Bw*pXGVbM6}{0bWM zONYWbIB(z;=$))CW?AeKBq7gsMDud>`fk1?%sb^QIIOOt9ti-vn3nrRDRtq(Yi~Pu z?#7K95S1@1Z>mIMA^j-oOa58m84-|K?JF^u-xIS{7MezDj%o41n^q;$I=PIfl*~fN zueL8|**x|rxm5P&iCMDREsLEdGxoCYgp{)DRIkvnu|h~GjnZUn6pR9d3M6}uEuvB( zqP2Fh^G;8r-g$eBTPzuNAq&xIogWHD((^g;>E(0h&H=z1-+1>Oci#T}??2DD zW0Q&BzFS&**3*XN&tR+YSMlyzaFn(D!A@^KH-+IWhGWEvjV*)z41qGhWs zqEo-5o?=B5Sq%EEx@5>2rx!cTx*LU(g8hm~r3QtFQb^NvcGhmOWGz@iLW!tQc2W+i z8>H%_L_%wgvCF8(-Lf0?IGf4X#j9l(awiNY&aVX)&6fKWRS7KHYztpT8uN=b17oj_DVEJ7OZW|P>_uO;$ zLl511{`^k?fHC&+Zz|j|NQe@Mw%52zbRe=#yP$f6!WS6vPx-@5doy~L(G=w+LBvM zHL@;*T0a{l()!Y?Iw2xR_%!H4XaO4lh*BoL1;P14K7!{P081{c@J4hR&BTjj2>6JG z!AaFgDWp)KB+s#tK)7^9bE9;azH%`eY-r|o3i>`1f6bnpYhBigNtwJfCvD1 ztRL;*`DVW<}rR{5#;akdWA2-3-C16PvG|sIB>xYL=+U6CmJDz zL=;FsMAn!^FY`1_yJ_4_)64TRYBO3pJGUfH^E@{g9M$*%A(R?jso){PV~<_>t>6C0 zV~@QZ0Ep;szwnQr|NIwTxOz3b8g4-Z8@D&SI&b!i+aXeC#&t1L2#GwcFC-!$@M+MC zStdR0mfcS8CNBngt&a(ZG$%8!Z$;Re?AgaFa2&;cQp~C36hw;%#u#hu0}tH)<~P3? z5ieZ0@VeLC`Q7jS*K?P@7dKM}p+?Qi5L1~XLgpNbYg*qB)h#C7#6zYIZR9D;CRikH z0CN4@JZ~D@MlGQ%DMCHFaox-UrCgfV6o40Ig-yM@r-{9;AcNC6u+~}Yw6=O#=6RXM zY1~cIZk}FVmQm}`nk6C-!1xpI{GoSL(5|Q8YJBB{z>62(@Vg)V&G)|Vm)Mo_)fcXP z@{^zb;urtfSQ`+Samk!Pr`1G}uXrD7@sq7PbL1Uw8)MC4m)TFQjH4bWGcI=4Znkc* zY~ZCh#p04iTEDed1cd8=TT~QMk1GY?%9a1V{r1~0U3&QZ`SSp9@#4k%?z{Jet5>gF zxnix&j{&WB(Us51h;se>#-jK$gXR@!S;i`qc3UDZ9+KE~L& zZ5BRtLOVHf`{KIM%+x1-K%I8_^5$KUIh&F3gTfnJQ1w#vq8nt_i>{MW@u8Ujh{ObG zoi^5Jr?u0IHQKqwSxwFm8Fq>dVUZe81R<61^VkCbA%v9TXYYFbFMr@YANh@6dGNve z_;owyzVxN9{NWRyc=E}o0rHoO02rKN3hzD@1cC%m0wkhDTGYm>000M(Nkls_5+a2H0l{+mi0DI|^e#{t5#OByDS zcfRw{Cm#QU_rC8vN~!4C@x>Rff8!h9{QB4b?egX4rfKq9!i%S3@&9m@YBD{p-bc1> z4VarGfDb-!CHYrbW7owViM<7wW{;oSOU3%bM?|R1@?!GIYZ)L50=9&Na_!FP_o4@`$Ys1FEVj(~B zC=ZZVlM4We@xz-uKq5*3Qg}BWGPt$(yL*EIU@iNZbH@2u(Quv`SRm`lp&*gV#_eYW zVUt8?JLwe(kx4)J-~%7~*hfG3!4JIVHRoTQGsb=rZskBkTAQbz{@Ne^(VzUo-~W@= zdro3Sgd_=hcU2IH9+@GAXJCTUv;bzmQ;EmEWXVqkhJ!J~-YfFQ9J(;i*;qju$AmI5 zxlK6jiGTGF=pTs)0N1Yl@GD<_>c;=vxOnkRjKf#vkh7nJTRjkwG3Lb=Z+zy@|MH2) zKk?L4UnAEvQzuOT0sJ;xU?1%m$B7YW1de?Jd-uS^&Q*;iFZZmUi}!NRA4-`lF-?md zggw@Ul8gZB<1#Bv=~W=^)0jyi2}D4A_~C~>{NZ1F|NGx}@#33?q5lz}_!A8O=;8Q2 zJTSUFst6+I+_kGe{PLH-`l&zt?2}JE{nAS>!=@Q92cd{UkGBN^yG8TASzpZ^TU5d( z_cs-fh>rHpd}5GbWsf1K)$IS9AcO*k0C2}0w?F#mqwjd+?dM-}KCDTJwia9$fYnt) ztv+ZX+^Y1kZOK>0<#wUGgbh-?38v;&k?Ya&x=Oh*D;p(-V_1u!pdaW4QuD^h+{zNS z7eEpkloM$7oz0~HkPt#^{q1l6=U4ybU$0#GzSd^1#f!>R5hwq`rEfw8JQ0Wk%jQSp zP=P}rqGBo{Au!iMsi@4Y1;VYT>@y@{l!*oPV2BUOMPVbYY%}p+X@g0a$m|m(aI@O2 z6IMkwT2`%otZX4=sN(iZ5n5NcxTl)ciNw9`m;3t<20V9)#f} zYEPFg{myNn1uPG?f3s7vCP!f?f-gpq2|eI>JFH&{W<^nfL!ttBetI*`F6KCd@*8-) z(k%kQQ-^@P`VZ0=Ix6|a zDkUO)mk&WNMi_*Nltb5*#il9#IANXJLJMR<774BHD)fj|FVrec&Iu3zqRv@LzmSfR zw1TIxtiWRbbcM0xiYon1YYA%s7D_`mBY+DBALv{HwrNAaT+?u~2x=v7J)n`P<}aDqpw<_NVvhw{_lhW6#iHx(B2!jGL{#>pfM14B zh$?GdQj|hx2t{>*wwWU^P)>%%y!q?Wa_dXAZ8w8o-io{q%xX>n!mX;@3L&?}d&YY; zToKHqZS|qPmCClYBwlTa$$ytUQuDF8zbN}lA;V#If5E9C?Za8OB{o0DUfzldqOB%m zH98dtn-#iM!U~62UKXiP#h!~UYjbA1 z7G?2AK}q5Cn7A1hv&3}S(B&YIb_+*$?QFBKc{t>0TQ&7_L3nw%KgB$i#T)!FjS1Fvbr zzL8OH-Uq3)Kw%UUMV8?ZZBX$qFK|_@%^%snV|2GQJTSvys&l51a^AxXl&Z>a#@9D; z<@qAt)O#cXvkKpGp&kKl;1KHGZ-_)FGr+3J$M?W7Igg{@jbbZ&91JD=4nMT)AIj(l z0C2T8Dt^`vhE-CPZ7o}x+4e*>!xki<7;2QqU9MI3*3Rj=WNNp)(xQtuz#u#o{5ag2 zAcTWBT&bp2wkoOkeKZueI%mJK*%ZjfhYE>}LJpbsD}^(QEDGD0qN`NVWF)OV&5%jg zMje`X-d_|nSyR~Jyk>dWs@{HnkzzI&$JUK?)z7@C_m%=-O*d!5Av9ptgxq?8>hZF! z3Kd{Z1?f{f@pLn54K2GIZ#97m0O4d?&XX{ml;fjl^oS~+L2OXYJW3p%w%aQ`_>kt= cPEFx|0grF!bDcxJS^xk507*qoM6N<$f@Qz|#sB~S literal 0 HcmV?d00001 From 8f1e388e2ff9a07a120c9cc474ab116113806eca Mon Sep 17 00:00:00 2001 From: nocci Date: Thu, 1 May 2025 17:19:58 +0200 Subject: [PATCH 02/42] switch from generic notifications to apprise --- setup.sh | 110 ++++++++++++++----------------------------------------- 1 file changed, 27 insertions(+), 83 deletions(-) diff --git a/setup.sh b/setup.sh index 3e8441f..ca7664d 100644 --- a/setup.sh +++ b/setup.sh @@ -103,14 +103,14 @@ jinja2<3.1.0 itsdangerous sqlalchemy apscheduler -matrix-client reportlab requests pillow gunicorn +apprise EOL -# 3. .env Datei in Parent-VFolder +# 3. .env Datei in Parent-Folder cd .. SECRET_KEY=$(python3 -c 'import secrets; print(secrets.token_hex(24))') REDEEM_SECRET=$(python3 -c 'import secrets; print(secrets.token_hex(16))') @@ -139,18 +139,13 @@ REGISTRATION_ENABLED="True" # checking interval if keys have to be redeemed before a specific date CHECK_EXPIRING_KEYS_INTERVAL_HOURS=6 -# Pushover -PUSHOVER_APP_TOKEN="" -PUSHOVER_USER_KEY="" +# Apprise URLs (separate several with a line break, comma or space) +APPRISE_URLS="" -# Gotify -GOTIFY_URL="" -GOTIFY_TOKEN="" - -# Matrix -MATRIX_HOMESERVER="" -MATRIX_ACCESS_TOKEN="" -MATRIX_ROOM_ID="" +### example for multiple notifications +#APPRISE_URLS="pover://USER_KEY@APP_TOKEN +#gotify://gotify.example.com/TOKEN +#matrixs://TOKEN@matrix.org/!ROOM_ID" EOL cd $PROJECT_DIR @@ -739,81 +734,29 @@ def debug_session(): 'config_locales': app.config['BABEL_SUPPORTED_LOCALES'] }) -# Benachrichtigungsfunktionen -def send_pushover_notification(user, game): - """Sendet Pushover-Benachrichtigung für ablaufenden Key""" - if not app.config['PUSHOVER_APP_TOKEN'] or not app.config['PUSHOVER_USER_KEY']: - return False - - payload = { - "token": os.getenv('PUSHOVER_APP_TOKEN'), - "user": os.getenv('PUSHOVER_USER_KEY'), - "title": "Steam-Key läuft ab!", - "message": f"Dein Key für '{game.name}' läuft in weniger als 48 Stunden ab!", - "url": url_for('edit_game', game_id=game.id, _external=True), - "url_title": "Zum Spiel", - "priority": 1 - } - - try: - response = requests.post( - 'https://api.pushover.net/1/messages.json', - data=payload - ) - return response.status_code == 200 - except Exception as e: - app.logger.error(f"Pushover error: {str(e)}") +# Apprise Notifications +import apprise + +def send_apprise_notification(user, game): + apprise_urls = os.getenv('APPRISE_URLS', '').strip() + if not apprise_urls: + app.logger.error("No APPRISE_URLS configured") return False -def send_gotify_notification(user, game): - """Sendet Gotify-Benachrichtigung für ablaufenden Key""" - if not GOTIFY_URL or not GOTIFY_TOKEN: - return False - - payload = { - "title": "Steam-Key läuft ab!", - "message": f"Dein Key für '{game.name}' läuft in weniger als 48 Stunden ab!", - "priority": 5 - } - - try: - response = requests.post( - f"{GOTIFY_URL}/message?token={GOTIFY_TOKEN}", - json=payload - ) - return response.status_code == 200 - except Exception as e: - app.logger.error(f"Gotify error: {str(e)}") - return False + apobj = apprise.Apprise() + for url in apprise_urls.replace(',', '\n').splitlines(): + if url.strip(): + apobj.add(url.strip()) -def send_matrix_notification(user, game): - """Sendet Matrix-Benachrichtigung für ablaufenden Key""" - if not MATRIX_HOMESERVER or not MATRIX_ACCESS_TOKEN or not MATRIX_ROOM_ID: - return False - - try: - from matrix_client.client import MatrixClient - - client = MatrixClient(MATRIX_HOMESERVER, token=MATRIX_ACCESS_TOKEN) - room = client.join_room(MATRIX_ROOM_ID) - - message = f"🎮 Dein Key für '{game.name}' läuft in weniger als 48 Stunden ab!" - room.send_text(message) - - return True - except Exception as e: - app.logger.error(f"Matrix error: {str(e)}") - return False + edit_url = url_for('edit_game', game_id=game.id, _external=True) + result = apobj.notify( + title="Steam-Key läuft ab!", + body=f"Dein Key für '{game.name}' läuft in weniger als 48 Stunden ab!\n\nLink: {edit_url}", + ) + return result def send_notification(user, game): - """Sendet Benachrichtigung über den bevorzugten Dienst des Benutzers""" - if user.notification_service == 'pushover': - return send_pushover_notification(user, game) - elif user.notification_service == 'gotify': - return send_gotify_notification(user, game) - elif user.notification_service == 'matrix': - return send_matrix_notification(user, game) - return False + return send_apprise_notification(user, game) def check_expiring_keys(): with app.app_context(): @@ -1610,6 +1553,7 @@ echo -e "cd steam-gift-manager" echo -e "docker-compose build --no-cache && docker-compose up -d" echo -e "\nGenerate translations: ./translate.sh" echo -e "You can edit them in translations/en/LC_MESSAGES/messages.po" +echo -e "Enter your Apprise URLs in .env at APPRISE_URLS (e.g. for Pushover, Gotify, Matrix etc.)" echo -e "\nAfter any change in you configuration, .env or even translations:" echo -e "cd steam-gift-manager" echo -e "docker-compose down && docker-compose up -d --build" From cef1f900e6fa733b6eaa3970151ded65d6b3e92b Mon Sep 17 00:00:00 2001 From: nocci Date: Thu, 1 May 2025 17:22:47 +0200 Subject: [PATCH 03/42] update readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8e1aa4f..b25f09c 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ Go to [http://localhost:5000](http://localhost:5000) in your browser. ## 🛠️ Technology Stack 🛠️ - **Frontend:** Bootstrap 5, Jinja2 Templates ... -- **Backend:** Python 3, Flask, Flask-Babel, Flask-Login, Flask-SQLAlchemy ... +- **Backend:** Python 3, Flask, Flask-Babel, Flask-Login, Flask-SQLAlchemy, Apprise ... - **Database:** SQLite (persisted in `data/`) - **Containerization:** Docker, docker-compose - **Translations:** Flask-Babel, editable `.po` files in `translations/` @@ -144,8 +144,8 @@ Go to [http://localhost:5000](http://localhost:5000) in your browser. ## 🔔 Notifications - Send notifications if a game has to be redeemed by a specific date -- Gotify, Matrix and Pushover are already available - have a look into the .env file -- 48 hours before you are running out of time the app will send you a notice +- Switched from generic notifications to [Apprise](https://github.com/caronc/apprise) - have a look into the .env file +- 48 hours before you are running out of time the app will send you a notice to your services --- From 144e43d1640fb96621443a9fb11ed63956391d87 Mon Sep 17 00:00:00 2001 From: nocci Date: Fri, 2 May 2025 11:11:09 +0200 Subject: [PATCH 04/42] fixed gog pic in route --- setup.sh | 8 ++++++-- steam-gift-manager/static/gog_logo.png | Bin 44806 -> 69873 bytes 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index ca7664d..a8585b2 100644 --- a/setup.sh +++ b/setup.sh @@ -585,6 +585,8 @@ def export_pdf(): img_url = f"https://cdn.cloudflare.steamstatic.com/steam/apps/{game.steam_appid}/header.jpg" img_data = io.BytesIO(requests.get(img_url, timeout=5).content) img = Image(img_data, width=3*cm, height=img_height) + except Exception: + img = Paragraph('', styles['Normal']) elif game.url and 'gog.com' in game.url: try: img_path = os.path.join(app.root_path, 'static', 'gog_logo.png') @@ -599,7 +601,7 @@ def export_pdf(): game.redeem_date.strftime('%d.%m.%y') if game.redeem_date else '' ]) - # Table format + # Table format (korrekte Einrückung) table = Table(data, colWidths=col_widths, repeatRows=1) table.setStyle(TableStyle([ ('FONTNAME', (0,0), (-1,0), 'Helvetica-Bold'), @@ -615,13 +617,14 @@ def export_pdf(): doc.build(elements) buffer.seek(0) - return send_file( + return send_file( buffer, mimetype='application/pdf', as_attachment=True, download_name=f'game_export_{datetime.now().strftime("%Y%m%d")}.pdf' ) + @app.route('/import', methods=['GET', 'POST']) @login_required def import_games(): @@ -821,6 +824,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends wget \ && wget -O /app/static/logo.png "https://git.nocci.it/nocci/GiftGamesDB/raw/branch/main/steam-gift-manager/static/logo.png" \ && wget -O /app/static/logo_small.png "https://git.nocci.it/nocci/GiftGamesDB/raw/branch/main/steam-gift-manager/static/logo_small.png" \ && wget -O /app/static/forgejo.svg "https://git.nocci.it/nocci/GiftGamesDB/raw/branch/main/steam-gift-manager/static/forgejo.svg" \ + && wget -O /app/static/gog_logo.png "https://git.nocci.it/nocci/GameKeyManager/raw/branch/dev/steam-gift-manager/static/gog_logo.png" \ && rm -rf /var/lib/apt/lists/* RUN mkdir -p /app/data && \ diff --git a/steam-gift-manager/static/gog_logo.png b/steam-gift-manager/static/gog_logo.png index eaade02ca42fca650d800e754f5f5dbddec48644..f05c3360b58523b00fd7393912a5eb0a45bbcc44 100644 GIT binary patch delta 69106 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≤EV^toLP9*q9g0VT=Yftkz%HDfCTY< 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 Xk8kL6okPA_00000NkvXXu0mjfX*?K& From 3b93b14e296518fef8d1acf3b1f4ec8babe8540e Mon Sep 17 00:00:00 2001 From: nocci Date: Fri, 2 May 2025 11:15:31 +0200 Subject: [PATCH 05/42] update translate.sh --- setup.sh | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/setup.sh b/setup.sh index a8585b2..095acc3 100644 --- a/setup.sh +++ b/setup.sh @@ -883,26 +883,31 @@ cat <<'SCRIPT_END' > ../translate.sh #!/bin/bash set -e -# 0.1 Change to the project directory (where docker-compose.yml is located) cd "$(dirname "$0")/steam-gift-manager" -declare -a locales=("de" "en") +declare -A locales=( + ["de"]="de" + ["en"]="en" +) -# 1. POT-Datei aktualisieren -docker-compose run --rm steam-manager pybabel extract -F babel.cfg -o translations/messages.pot . +# create POT-file +docker-compose exec steam-manager pybabel extract -F babel.cfg -o translations/messages.pot . -# 2. PO files for each language -for lang in "${locales[@]}"; do - docker-compose run --rm steam-manager pybabel update \ - -i translations/messages.pot \ - -d translations \ - -l $lang --previous +# Check for each language and initialize if necessary +for lang in "${!locales[@]}"; do + if [ ! -f "translations/${locales[$lang]}/LC_MESSAGES/messages.po" ]; then + docker-compose exec steam-manager pybabel init \ + -i translations/messages.pot \ + -d translations \ + -l "${locales[$lang]}" + fi done -# 3. Compile MO files (without fuzzy entries) -docker-compose run --rm steam-manager pybabel compile -d translations +# Update and compile translations +docker-compose exec steam-manager pybabel update -i translations/messages.pot -d translations +docker-compose exec steam-manager pybabel compile -d translations -echo "✅ Translations successfully updated!" +echo "✅ Translations updated!" SCRIPT_END chmod +x ../translate.sh From f260da35944c45a6033b319c814f6ded38cb170b Mon Sep 17 00:00:00 2001 From: nocci Date: Fri, 2 May 2025 12:07:27 +0200 Subject: [PATCH 06/42] make translate.sh more robust --- setup.sh | 39 ++++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/setup.sh b/setup.sh index 095acc3..38e8915 100644 --- a/setup.sh +++ b/setup.sh @@ -885,29 +885,34 @@ set -e cd "$(dirname "$0")/steam-gift-manager" -declare -A locales=( - ["de"]="de" - ["en"]="en" -) +declare -a locales=("de" "en") -# create POT-file -docker-compose exec steam-manager pybabel extract -F babel.cfg -o translations/messages.pot . +docker-compose run --rm steam-manager pybabel extract -F babel.cfg -o translations/messages.pot . -# Check for each language and initialize if necessary -for lang in "${!locales[@]}"; do - if [ ! -f "translations/${locales[$lang]}/LC_MESSAGES/messages.po" ]; then - docker-compose exec steam-manager pybabel init \ - -i translations/messages.pot \ - -d translations \ - -l "${locales[$lang]}" +for lang in "${locales[@]}"; do + po_path="translations/${lang}/LC_MESSAGES/messages.po" + + if [ -f "$po_path" ]; then + encoding=$(file -i "$po_path" | grep -Po 'charset=\K.+') + + if [[ "$encoding" != "utf-8" ]]; then + echo "Konvertiere $po_path von $encoding nach UTF-8" + iconv -f "$encoding" -t UTF-8 "$po_path" > "$po_path.utf8" + mv "$po_path.utf8" "$po_path" + fi fi + + docker-compose run --rm steam-manager pybabel update \ + -i translations/messages.pot \ + -d translations \ + -l "$lang" \ + --previous done -# Update and compile translations -docker-compose exec steam-manager pybabel update -i translations/messages.pot -d translations -docker-compose exec steam-manager pybabel compile -d translations +docker-compose run --rm steam-manager pybabel compile -d translations + +echo "✅ Setup and/or update translations done! YOLO" -echo "✅ Translations updated!" SCRIPT_END chmod +x ../translate.sh From 42aaa21703171c3da140c0667127da1cb8fb4835 Mon Sep 17 00:00:00 2001 From: nocci Date: Fri, 2 May 2025 12:43:28 +0200 Subject: [PATCH 07/42] css optimation --- setup.sh | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/setup.sh b/setup.sh index 38e8915..449f080 100644 --- a/setup.sh +++ b/setup.sh @@ -1068,10 +1068,10 @@ cat < templates/index.html {% if game.steam_appid %} Steam Header + alt="Steam Header" class="game-cover"> {% elif game.url and 'gog.com' in game.url %} GOG Logo + alt="GOG Logo" class="game-cover"> {% endif %} {{ game.name }} @@ -1557,6 +1557,54 @@ body { .table-pdf td, .table-pdf th { padding: 4px 8px; } + +.game-cover { + width: 368px; + height: 172px; + max-width: 100%; + max-height: 35vw; + object-fit: contain; + background: #222; + border-radius: 8px; + display: block; + margin: 0 auto; + transition: width 0.2s, height 0.2s; +} + +/* Responsiv für kleinere Bildschirme */ +@media (max-width: 1200px) { + .game-cover { + width: 260px; + height: 122px; + } +} +@media (max-width: 900px) { + .game-cover { + width: 180px; + height: 84px; + } +} +@media (max-width: 600px) { + .game-cover { + width: 120px; + height: 56px; + } +} +@media (max-width: 400px) { + .game-cover { + width: 90px; + height: 42px; + } +} + +img.game-cover { + width: 368px; + height: 172px; + object-fit: contain; + background: #222; + border-radius: 8px; +} + CSS_END echo -e "\n\033[1;32m✅ Setup done! Seems to be okay!\033[0m" From 70e7afcf39c5889a8eeb814051932fbca7598294 Mon Sep 17 00:00:00 2001 From: nocci Date: Fri, 2 May 2025 12:53:27 +0200 Subject: [PATCH 08/42] start building PWA --- setup.sh | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/setup.sh b/setup.sh index 449f080..e78dd38 100644 --- a/setup.sh +++ b/setup.sh @@ -942,6 +942,58 @@ echo "✅ Database migration completed!" SCRIPT_END chmod +x ../upgrade.sh +# Manifest for PWA +cat < static/manifest.json +{ + "name": "Game Key Manager", + "short_name": "GameKeys", + "start_url": "/", + "display": "standalone", + "background_color": "#212529", + "theme_color": "#212529", + "description": "Manage Steam/GOG keys easily!", + "icons": [ + { + "src": "/static/logo_small.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "/static/logo.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} +MANIFEST_END + +# Service Worker +cat < static/serviceworker.js +const CACHE_NAME = 'game-key-manager-v1'; +const ASSETS = [ + '/', + '/static/style.css', + '/static/logo.png', + '/static/logo_small.png', + '/static/gog_logo.png' +]; + +self.addEventListener('install', (event) => { + event.waitUntil( + caches.open(CACHE_NAME) + .then(cache => cache.addAll(ASSETS)) + ); +}); + +self.addEventListener('fetch', (event) => { + event.respondWith( + caches.match(event.request) + .then(cachedResponse => cachedResponse || fetch(event.request)) + ); +}); +SW_END + # 9. Templates mkdir -p templates static @@ -957,6 +1009,8 @@ cat < templates/base.html {{ _('Game Key Manager') }} + +