From 66ae6cabd4ebcfc88d084cbdda5cbb3cc4070229 Mon Sep 17 00:00:00 2001 From: Cansy Date: Thu, 5 Oct 2023 16:28:07 +0200 Subject: [PATCH] Added server side code. Api and Database --- Pixel-Canvas-API/.dclignore | 1 + Pixel-Canvas-API/images/scene-thumbnail.png | Bin 85598 -> 53846 bytes Pixel-Canvas-API/server/README.md | 55 ++++++ .../server/php-sqlite/ database.sqlite | Bin 0 -> 8192 bytes Pixel-Canvas-API/server/php-sqlite/.htaccess | 5 + .../server/php-sqlite/rest-api.php | 177 ++++++++++++++++++ Pixel-Canvas-API/src/api.ts | 6 +- Pixel-Canvas-API/src/factory.ts | 2 +- Pixel-Canvas-API/src/index.ts | 7 +- Pixel-Canvas-API/src/messageBus.ts | 3 +- 10 files changed, 245 insertions(+), 11 deletions(-) create mode 100644 Pixel-Canvas-API/server/README.md create mode 100644 Pixel-Canvas-API/server/php-sqlite/ database.sqlite create mode 100644 Pixel-Canvas-API/server/php-sqlite/.htaccess create mode 100644 Pixel-Canvas-API/server/php-sqlite/rest-api.php diff --git a/Pixel-Canvas-API/.dclignore b/Pixel-Canvas-API/.dclignore index 7499ff37a..3efd3703b 100644 --- a/Pixel-Canvas-API/.dclignore +++ b/Pixel-Canvas-API/.dclignore @@ -18,3 +18,4 @@ README.md *.zip *.rar src +server diff --git a/Pixel-Canvas-API/images/scene-thumbnail.png b/Pixel-Canvas-API/images/scene-thumbnail.png index b3dc58066ba7870ca1cab4a9107cef7048ed538b..d362d644140dac597623f061367e6f9686590b93 100644 GIT binary patch literal 53846 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

iz{ycFn#4Kyzt6bc;i?8 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¨^4ku`>Y>7hG6gx($q4oJVkMd<7fT^=T7}e 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 literal 85598 zcmY(qV|Zmj(>A(;i6@?DV%xTDV`AI3ZQGh8lZkC7JGO1^*!kvpzvsN?oL*P2zE`cg zs=E3|U+Y>`9jPcU@f{8a4gdgrmy#4!{x=@{>jf}S|L(YXy-xrDB%-B=h@!QKgowS3 zy_1TAp|Poishz2lrLnSvFaW?A8>^;kfvbkjpWW6#Lpl|_P*#?N_{o;iXrnwEvUc)m z+F-jun{3l4lrVO&nQKYTvj1LUNyU#YgxpuLlf3h#(?>yMRdpFnSJbFj1Q|^EJo741 zIEM*)-p10w>lymKOyybkg1)tDLtCO}x22P9fhwgBGuVLh9aFE-j&v)j# z?+hJHTq<=cIoQwr{+_kVYr^5J<;Rw%FZ1(1iV|QEo1rV!oa4lMrhv~ML-o1=kV0>x zu**izu!B4{IfQ$t15E%8tURQf`svI><_LW;TFT!spM&cW(8nZ?+K|xBH|ue{Y!x+B z#1mp;>{VIvB=cRtZ~o09 z39^2(i+}vy#;DwS@;F$2Pd?6}VlqMUGr-!8TIgnSTSEjAUQK}7xBYZ;pLHM7qtGBS7vjWxOeB14H1|{zJC|it8;Xmx*wkOa2_^u(Z5|yk z=1@BC2Tx-HN!DXeNd)Bn`&$S6yHn2jPWg`80i(J*^iKLt`i=z7`4UzOp4Y6_SGC1; za7UKuN*npY+ADOtlqR8k{R90bG72X@!a`sT8NA#$s?cIFbvvL&{@R;V`Bn#DRytqU zRW~f{3aE;wK~eaW?O(G%$lL9QkVpw&6NlP%c!gX(l)3rI@U7Jb4m*Qvc)uC>==-qp zqYLyq1Y>VUcPm|h7MxD&ClL2yEOQ&1vd*Fg#t!z4;A)wvF%S-W3nyRHG%{AC`G${rMh zM%&<=i@^hZ8VWemRRre`Iv#dpTYwdxF1@d}4=>+4h=pxHYrz-97nukAknz&QzYW5} zR8z`KP7Xl*55oYyfuRB*{voh`7XS?ij9PNMO zf12dK{!jbABX|M$|1u5=ApRE@{9^#v6ubZ94c0+Y%NYQGNBd6)17zi3{j;EDsjBIs zDJRQqY;Q|%Xku?VpD~pQ%SN-1;AF+jtivu?UgS)#sy*mrN zy^}cu6Bid310yp7Gc(;k2A#8~or|Fdot-nu|26Xe*by~#Hg>XfaIv(vBm9qDLnC`v z7d~R*|2X>J_J8N;VrlmOda`r=Z&?2VWcbe;1}1t&hX1wwPnGvSQf>t&OVfXz|6`w@ ziT8h)|3BG({qQpU$NB$fGXFQy|B?O+l^>3m;eVHn9}Zh@7a9N%1W1Vrsd|7_cX|G; zSyfwUnev#g$9x?+%*HofjwYY!2{Bd;J%`<(R_j2&GzRlH=uT57SwR)ZF-F@fl zt?7NqcGr{w5@Zxi?^2Z;9>ErI99`h^ZE)?q^nI@%Z z<>Tvvh&}9IbT+w_x)cmza-vw33&11 zbFyRMGO_J;ro1T7x2X=Xe&<^8;PZ2!LLaw-$`!7~%bW49J*Gj=Hwqs%Io^Alb*qIn zhwF|X{dY{D9carQywu&q6GeZb?Qh3(HuPacP^Z78N6ry~mUHdgYRBA#k)F-~^F_2@ zeJK8tk4o<^IvXuQ2ASF4$GarozMqw6?i{z2S4Y_onG57klS-WI3fAC-)9fH~{`_w7 zQ@iGR(a74EgQ#coOcb-AyfJ%()^6fA#n>gq&~=g2^OHvsR%i=JJ*#n{@EXCU?ot$><6333tapi3FsfNIui81Z*?QF8;DnU@Tz zM_xatSffr~v*df|8{DNCZ7$c(Y=~qf!C$V6W`vtd+~_6Rtk{#Rt!e;IUTMbO1yrD( z%v350QE^&UOEQeoX`!kOP1AwTMB+49J}z)*0}A5rY79F}O|f``kksnu?bizL<(hal zA}jW8IDGE&jt_lYoI||dxF~iC70oL4FL==M+dVUrL@pws=sa3x=`KW)=Ym@qAARRl ztd3V2-xwCq8hS0|^}Aoz8|Sz-ZJ-2bJBV@-o$NL}Q0txR)32rUriJvpsam!hqCi`f z@-u_eh4hbZ2fBm;er&wog~VR)_S>K54fFiC?axbvk^apZtiWJss3;|Thnvf`tTDF$ zh{DYZ_Wd;{K739lREleVM*Ocaf^g6osB-(mrh210J4FP{?C%gS>yjO7F*9?HK}d*K zW94ITHx|UHq=Uk6t8zT9I zcE{4C$PV7^hQw>~#1@%NE~s;?djWWswXptPkgon#%tI*M>%EyTVlE?TSmXCVkoV8Zy`G{ zxX}%koc4#H84Fa)a&bq?&rPB*Zxe(;cjI^{GUJYtQ&JT-q2F_B3j>zIpJRsHz=#Vw zj^c?5+V9{pwUe|@`g{7jMRu?T$j%1>KVv<7xYG@61l#I!eAxY+@F~1c(_Ie*s=b|wu^eTqjQX%%T!pEm~`Kn{}^AU+NMYl#)!Yf(H zI=>+!?`gN`*}*&l9-X;tQ+E z`jQdo(d<`88#>*IC4zx?P8vdrv4s~q`4Rbk@wFdg974^|>60I)UYC08_J>9f1~lTN zD0Vwcbu(mOV=#KH9mn2E8yXX-eHdlp47S^85Mg$mL8L>dfW_P?1)0k7!Rz?Du zmb%!PO|oIW+ZYdkj${IDJ|fkVHut6Q7p}M$U(Z}5X3ap#iVUZaB)6%kH*H78{LIET zyuD0Gnj6c)8u6a@(v0VuL(R_XL`p(K)JSdExmmDjB3tTQuNXV};e$yTrjJ`^rrR@` z*-j_6w6C*xvCCtBFse0a+pC~XxWV*b?I8(a{s3;QDLh%!o881;HX@w4h)5PDsoA!9 z6tBSg($23+e`Vj875p4mRJ+$38+!Rzkpsn6oEVHi9loSt^4+fSk1#w6GP50KR~$#z)EItoXlCNUbn@%axX7S@+8r>3+U+u8p>U zI+bd7+B)G=>IgPnGV?OWfk+HD0G@X|(~QDUE5F>|(D~a4%o0zRjU_|n7f^e8ylFa z9fS95w!q(w7d!5Nj*G>usBzY3!zD}0Gx>!Db|)>$7GjnM;fOWJC8##JONW(|bL0y6 zWLEwSubCy;Lm{*IJk$3pWe_&juBR_7A~#q! zAc^I0onnwCODp{5D<8&*ryPXoy5|9pg;f+VWsJMxifC7Kiq3Gv5ib?? z11YQWm9(>lttGhfuZZW1*-uEFX~@ezObnRr_UVHp;*tnPDDq(G#=Gx6-qs9O9ctAu zw2IZ0zGf!KY&y`p&%|p(T$k(2C8+&i41MDe_nKxokgR-4;5mUGmxPvo+zMl^(8(`X z0yBD^r5pJ_j+KPqjslAy9R}|9XTPmnV%iOE$sMIb4-<1R{cN(til~3tl}6}%^g8&X z7d5;(QWUX9h0fB@Ci7;ygB3y*D%`L3nrR}8q9_z~O|-dWILbZkBi->{^NJ`;ne84T87o18VP{&8Ax9U$p=YM+T#MfUNR-mmP9U!mt^i#+-8^`Z2NYp(46 zkO0)H>0p_=n(N~ICDG%{WQx~+>MHQE@s{S=Sw(pFy0}QyX1?;3_}i&Bky~ha%7YZ3Nlpo z3&V9XZU79nS9$c2ZG+35vg z6$@~8jL^w5Ac#Z`;pQO9V^I?oFvI1-zR7fF-g?+N(HF!hdf+D;V>-K-F^aR77bEt8T!G(%*#nld8MCYhh*ifxu@#*&q&3tFK|FS=PXQ>E9BYMPH10^>x($_9rh7~Ce? z#+oyM8Fn5Mxsz`YlR7rw%+w!*@J^25;EkZ`B^3GlDRLYE8j|0Vt0 z(<1j|DO%*Mp0&`QU#*^7V@g4U6e~-%c!eas;D2fv^U(t9Zatp}1iW>)m;s`$5o`(g#!pC^&kPwtr2G4F|J*JU-dHtU4KXr%Ew` zf{~stK+gR*fj$E5V5}+W4t0q0^O?=s^cJi=ZdTkVahEg?BZJrW$d{4Jml20dZiESc z&nOfNZ#h}PAQy{Oa@U=EXwCJOP1(1o9RM1K3+jnzdKV~vxaS8jk#(c7-0}stf#z9I zkoG$rsd{NYem7)dK=yvv?#yD7*tN+XRWFlIj8?#*_4r=N^-yIg(u@{ucyrt3Fjyfz z%ITh;ww&`av9xr`6v+x?j(Cx(_S7tQ`T>tPOU!>QGgTVBiQ{Hl43kipYbFmj$kE8b zT?w-O1at_S9S2b}Ot?ENAjB&a)o>$I>#6bnrk}jw{O!>(9G4qg#bGyi9=)#E1f-NF zl!W71+B5O?rHd+7i8Lheo<;*X_dF|%=?E9ATXvumyo|;VzwtkJQzF&@`__(E0NSEv z$bckHm+mfkZ)*=x4eN}o8XsmZ-Otg&ALoow`^32xPCWUT;vf>l9Qjd%&ny3GJL z@5|(LgT<_z!7g-y(In_OLF9-AOn5>Ax!?+Sge~12m>t&HtU-L?e^sp6J?wJJP-w-E zV>)DqTN0%=VS&EriLscUTfWBvh2*@yXh(#O+(iiGxweP6NI0y?;YEcn zhI#SpRH10y%`Duq`%073@CKLMxvHlqo3%RA+p9ROaa=@UUR~j<2{09@Q=L+lFpc-U zw+T8B(ux<0=(~*gHH<8)Wd3p)EF-8w5JfP`H~>I38rF$Y&&VXp2YF^%Rt4LH0zJm4 z$hTx3A-U0>J6}?1tn#~nDcOZ;;=7Zyr}XF-@B8dBG&C0eNCTgYLvn_1DV@C1W1Xj- z0uTa|$!XA!GN!(^)`8EoG?{tYdX`u3t0{lSn_fa_UHfI2A2So_OW9R0=*ikeSVTZm z4Go}~OcJI+=FmK&bF0}F#2}9@wTK@uk`43iCg7oS5wp1G?naoftnBWDOK7`?M&C=i z+^X=SF?-@LeL0WfaYdhvW>he=p~^LNW@g8SFpIdH2%*Z3GV~YsPJBmC@)uGlRnb0H4OXNE>7rFSJ(;s%3goqYJD+>8WB98R^_si z%>$Ieg{Sf#)eH@>*~(p?Cah6#hxfTf*QaPE9Iml~d4#%^&U$T8NM>FbLs~kT@g6QW zO~T+x9G2X5#*TM*nJmSqYYpvwNQ4+2kHh7eH-!(No7auPCw&{{}V z{_1#YaGwvmsW1{g(UQwN6~i>TTml8s2v=^@OXsa~S`F_OppusiuAD`#3=STkxXM?j zK7Pw<37=qkfB4Dtc9Cv;NiuSCuM8_omULNYr91h1jAR#~x3E~zlwv`x+tyu2rd!U*e*F~H0RqN70YgJ7Ej3REBe9M@w*`&&fSy?Yd;>9Rk)ou zI04K>gm0i0E?k3JQ~X-rv?Qd;(%`|-491R+rJiPyI#E`BnW5(^jeWlM*qQM&b!LiR z58>f~GtN|FT+qOQ4b;2|X)78twCck>S)y%f)a`3rm%8WvWuv>RMb4WWZ)1xq7#ft` zz+{C!3dgD%I5dg?$B^rVy#9EvDMHkGo#M7CA_@^baw5dKtISXV;w2a{4XV9B6AhX6Y=F;dBg>Sbl4n%RC^1}I4fqs~oM zSoOj^$(_nHHYn>-aQQ3i9d5OSOgk8x$6_q!2qxjUozeKa2F7S}^|_FS{qo+KFdw39 z${t|=H$F zg|ZiAx<|0!0Nxp4>1rs_VNm!(V3-S0oUO*nXr4000$}SjIsclxi%sLJ!rNK0QyAsCr-TB1I&mX9n>Wl$rE;CD63Ux_8D+t1PD#$gFmswyww~fiI{aO-; z-kr{gOul|~=zN0qV>Ls>k2nQe0<#=B4ByR!;B3!}bkeEQk2~jJ-={~&tffP7WWo2I zfUgS|Qw;*tXxQe_X5*My`ZB~3Wc0s~Ibk!bbpmhGt+SY=AdoJ4XJJF2f*=i258*ml zk9xJueRNc->}vV08r+JA^uE)V))_?I_(xmyr_$RF{dzpd)OO}5?w@074A2BY)+$jjn@gQxDe z@haxi2B`S)bBbhI)SjUP9%#bn4ta;Q?4nK&XI`||2*Vd#Wr#8y`>E5PUbOl??0!cC z?@qF^@#IjN64^&#BgP1K#)hVROE)9iZOwf?NHwi>$ag?^iWa??ju!jDzI_U!PBT=m zDIV<(9gBNq*%-spz)mmJ8x(g2-53%i0YqKO$7hYozk{hv6Hv+g*mJ5PGF&6J{V{l% zApA}WACQi=k{~vosD@*aiD_({^7>sWYnO2t2^J9{pD_F=#&V~2H;DWLXjkjo1q0$-@TuVXx7C)OP?^87>b1clW*Z7_^9vKn<4^u33Xflp4dj=r z6Z14_Fhb@bjiwJ-l}m@tp$Y%;veMz^6gTlZcKX{)^)8?kC( zTId;13prmx9$_SQl*Wa@%eD5yG??l8Cy~KSGaC_y9NjnrDkH|}f^mzX>yVbndl^-O zZsq|^lDKZPUjBD`xtcX`!}yTPm48qz^rBQ0crgZ)VpE4gv3NaD!vIDJ2lu7z9yHB` z*==u(Qf&e-j#qUEx0zpW?t8idH;EZScyzxyu!_sK11UBQVEN8xP>&wz|Ej;RVwWuO z0VS8w*w|2*<<^*F8JUPDA2XQ_QS=d#%<7*O1>*AYeL)m4^1CGjf}t4qx}3k^EQ!+! zkecqSms^aS4U$5nLwV5OavKa*1wNuP;P)GH25b_`ne5|UvkWoOqM6uDtWwwVrU zadU#VX*&Ewcl7`>`Q5~**PWNjA%0o?@h6-Aqf&xNYa2(Hs!fTQ+wB9qIWYSp<#UdN#cNhZ zk9h0%ZioT)x6QDXy)2yw{vDg7nhyqp4~^@Z`p5 zwyGjUu`H6=*4Fnyr{IW1E4qUl1BMYt8zQEQ27o%#uO{BJ6w8NF^3sLExSBZ1ZyhQm zOm`3D^SB3ok{r9UmZYe!bVR0z|R(BsbGwu*Jubq$U=AT^C@>VlnB z%9jbNAiZfZuS!mnLx}JSFY6HRJ7!{86Xpc{eIkdEHni=TO$aKydsxVSzzR~4)aM8Z zREFTZH1FYBwGQ15-8|y2k?Hhqx2c)Ruf!U!oND3}K=&78`R?*N^P!Afb3b5#_B%(8 z`F{@bGe-2L1TzlXRgZjlY+y|D%F25uJ@j!|B^fOwlHc;8wV<}j7Md|>i&!45mDI&Z ze~~}MG3&P>*;cYM)#|h%B14~V{IaC(*Ck1TwHdCr+V)0kmG|uA6Bno%dBs&-?q7(5 z3;SBx`1_T!_h$K(_4-;v-hRe+qxaR_f{SJ%&OGU&84(V3F0|J%=ySLOalE(F<_x;o z(hr1XU%73-(5bq}Yjvd3^MCz{js0maYIlQ-W1sQuQw0d-t_U%dVX}qvA^JI!Spm!) zhU|)-5xYf--J{DX-W88&T;4nX`b?ks9Sn@s?530x&FuVvD>@H-+|Z_E3LeXe)l{lu zF~Bk_rJOX1&1&+wGhlft?Nj+stJ{sv0*yG5=(+UgPj}#>DJ)dh)_x(rdRHkAW1va| zKg*+Ip(k~o3pA{=ZYjO@s$@yBHz7bDg8({lKHko(!T; z`uQkMYh<=aA+!T6g}Edcbj|IJNR*OP_yTWf@FPd4+-#YkR4_TWdPD>Hel)@jbEs_c z4tbB{G0Q-`xfodR1SDV31k+<;{P58`Y$MBFV>$(s5tKCbuIbv_5>0*x#l}_VC~09{ zU@zi;4~14vnnCE;!A`{wv>4QIQ!j+YWh1jxl+>xETrR7XcBngTz0q(YoZ;a6O-AD~ z*z42!Z%@gKFi-|yGU{KS1KwAs9tn?D9x2i>LO8_KKenLkcG-_gm&qFE2j6{S`Y3aI zWn-So+wS4FTTwameEEjM-S*DrHCA(3aE3sc89eU(2;Yrfe^3~o-FNIArTYbcdw)4V zU)x%XVR_mdaT@lmgA9OR+xTc|s_4GIHo`2!<$0B4jUzEo$cdRd&_vk&lC0ingY%mb z#XA^N>(W%vsSluuGTYrMoPZE~95%FYGIRpZ=%oBb<|B-pZo~=tn zc_Tk@@2443L8bU8QLq$vz_;keuxJ^aia(w+KoRO`sIVPbq0F%!;0 z{Gs)M+&1k`y)yAIoVDoR2~t_>#Cn&YBcCJX3IcUahZnP$O7;a>*Yo&*^GG@R*XnWm zm#Rj4mfDQgR;(xg7Z%WB{%dWGi$G+-AT6u-5@hCiz>Vmf`V_(a6l{k!@S!AFcC_j1 zhl#X_N>4TRk1g)dt3^96{2vTi!Tjkj@2$OOoM&2#Eah4@PM=j}Y|$Ri@=|D3`F*cI zh1nDn(chzutlMu7_Y6SUTWi~3kC_LnHGTIR$QV`*;K#3x?gs3i)*X&t!O(`pp%Db) zgTn7)L^YTg&Bl&sRl6W}vF}k+3>&diOUi?DL#=o3$`@N%v8%~XLv>G|4z%5`$DFq? z+-4gWXDbK4I%Ok@?~a)rM@V3TF|xzgGwgrb`|$HWjOPy~?jsGaQfv`W$mdGq)PvPW zg-Eb3tv&<{XX0Q>ERkHyj?zS5AoLa9eG+_m%w<_uPr90|JU}EhktzqkY)@U{^qwUN z-%^S|Z_Nj1rOAt06Dah);He;mZ-cm8Ego9`=nl>GvW`*@v&inl#2UrO$M4R7$wO5` zHDD-V%{9j{pNfgihxnJRBncZJI-7wX*6o*icCFcRQ^;o^531U|$%V;!FU)|xAsqh+ z9wxR81ZIg$Eiwy(aZ9kcrr86S_sXO)a8bxREd`v&4hSujbyqRc!2^ow zdwy1fsURZlX8ON*JD%^%w%&CU^zXw(KaEpUnYN)T33c?ZQXB~dwD<<`cxl5Q5C@r1 zt1MB_d;RtF7RZThr?tM#ZrW50-@Nvg=(5+Dvb?xMPFgrY&Ln!vMmGKNHpY|YZC!8s zO_aLNT_Aq5vn4IW&+d7n_kau+ZkeH`3`@Cb00V)OZ{W!ARj;gpCCjfXMG-3JG`oJH zYO&SFlPoG2qE4hFj$F$V9sDOw{Jun9gvem-pRIOm4Sm9u{5FdgW--YF@bz-duzr&c zj|cEK`Eaz^Mbub>LqQ1JBPxn%en9^?<4S1ji}x2dH8+DxnWy_>A*4|(xb~#Fc zUCH;&=xV*5p;R0#p%?b}x09D<`}UO1YC1Xu$hgjg69Rmu7<=4ff^oWLEpv?lB<3L} z+l}utc2QX3!ro_snQwMHGE;<&K|rel**s6iZxmK4Ppyur( zKs;5PLp>vM{8zC*Zmd5Weiag5sJ1Y5AQ79Azyr~v&f+yAnYi4t7X761`GT_*1wCLG!2qiTul~St3l@P_NsKroGB%h81XLWZ^-aYJ2BkgKJbKbgWt?s^~M% z)~G^4-&2R%HVyz=53cKI&wM;-LJ7Dk!WwYa#wLh*aU_ zYCwoPl0MG>`R(wwmm{_zfr@y`rje4pdc>_2Uq1vJdOW1O{(_~PAdJ(_^Ue)7a z8EHOy*Nl}ixk&59F3HomVu_-u+ zi|ks4mREPIB{%KufGp&V((^tBBzc{>nimhVjo zX*lcX(VB=1YZ)&rq?;8H{>fBW#*$@k=DqL;ax@^8cb*!rA@HWV%JWNkp)+%xRsUYz3tE@|7&g;@= zhRZsy(@NXDt^?jQ9Q+EUN$y;&!6^2d-j{D#qupDMwj=9UF|u^fXn2 zCP{f@R%X7z1tUl1afHJ1Q377&6fk7!X6L=5k8`uV2|L^7TNXESbX${<*0IA>QXM3~ z1)s$ofVMY|w}iwMHQ?FWff}ax0nu=$#Q8wf$)NwO1roZKHg^~*W>^W2Hi`wM^vZN< z-0<>yU;&a)Myx34?6cvxh>;UrqgFrmeF?*(8aXBqw!J0xB}`6jC2~FgwbUc)rmav# zVQAD6muSbR6(9oUjW+BetD?D~Gh7%?@n!>Ld4(e0j)bQ7qtoMgAq@g&plGe?MgMLg z!##HNmhp7I9nUEbgh4x15hX7jSS~@a#5`xo%ohU+`WaO;C8@Cjx#bgY;|iY^E%u*j z?&+#gR4(5idmksU$hjjQ2=?5nEP>QM@kEUBZg$G*{7!#PrhH0t;BYizz}1F-snUj! z>wvPZ=^sUMxx}!utBFM*Do3m$ZmVUws*jp5A9KuowI-1=61>xjb+gKCdw28j(j9Ye z9w){nt)j>!vAVj^B=TQy5ndF3FTc|-HDD4p)vi)1Jtos-OAMnyCCg=#YUi^V5NFDo zb-4d2WKWS|fdY<~GGj=a+9tofm#nJl)ow6;Utvf=IIg@&_=@>4#}|Py{%ZHP^F!f1 zT`fGoh~RilubR$wgb>u}49$XMVg-Ek=mu)hTDiV4^6?Fd>*jnTvAHt+lZp$enCO@r zr(dSytyxYNzpJUeY3#r22E@-bg)PCU`CXSTPtOd-$)^{|#d@$OPGYxB{vJyeJ4+^# zp;qkCxeQ`IDwh|#>h&(_dd9tz60QbuVY%*UNse(FT(JWGTyD~Jc2`T3)455Gqe)DO zW7ECeK2$MU2ln2BHOfQiOJ#a4dDtMI?nl}WC(_#@@4vp6Ym)pK1a|nROwA$6i?<4V z``h8e7|}+j*GKt42H?@V z@C*s-L<^XTL&y=DXQ9PYLuVcCCwwo)i#?i^DoZt$G=R@j5=m2(MTL0J!&4I`J7*>d zGD&Da=f8RX!f@8m9~Lk!UF*Z%SoatbzZSsN#nlY;cQ{y}SVNa}jHPmk1G45N&2&EC z7$jqdV()j(k1#u@SrjN-ru|T2r|x|ucU9n=6Y-l!Sk=wsKIatOvTo23U~XUR<-^075Q(m8uf zlOaN{wMBhAl2k9%0)n=bMf#6~T?ZbJcWx{qR54v)MhOEd*m99+S@eIm>!S-VlwOsc z!Sx?aZC-kSUVhef*M*O167j~$bu7>tIr4~oDr4GczY?k${J)cy+W%?xMmNiTf6WWSHw3#UX`*DkW(Vi2r$g?ypWn1O68 zC8u}!nK5ExBH+Sl3n5f+SWv%ryU%U=!PB&G)KP_04!Iau!K!9rZP?v z{0PRGq$+GQj=(cXlOH9qBc?(&QFJ12yPQsDtd2K?#+4IUD5+C9upyMa<@w>s&gk(l_SS_V#Vd+OL_3W^F=J zD#rRa&T_|cA%$r_J5`bp`_2@>KJP*=Xg;3`jCpcY)`t-Anna4|j|$@WJNs*Ufr&Lh z+^$~34#amIGbu7?LOqUaa3**+Uy5LI9yEv@-sVmoJGT+)@UrAWEDj|P z-?Xqb0AKgmIEEHNWZ5g1mmk4JVIF7Sb)s)?TZ{-@&+r)bHZqcz`#y|YR(c~Ph#D7? z2XyMlcqN9!{#V}4x<5>o0U~_EoUNGpkbteR7F<~CMSY-syC*jr+3RO}2XDVE><8cH z`v!5%xaFFuG;Tucl$uESFAH)6=REXEE)vR>Fw9g85g%m}n32X0yEE@YN0@kvT)^l) z8`FTh%FORcsn^qhe2(jESkU|zp^nVb$Bz0kM{=t8a=p%P_jE!|4-3Vj^R`jX)y$)^&wbUGb&jTYA{kX@@uhN1=dBfOjz8}bQjS46G&stU91d#5 zwVV;qg2VkGLZqn-fhwqJ6gog@^5o_xtDgDapEJXR%bDOx!Dce7G155c?8fXPMPDy$ zK%a4Gg3`7+O8LFQ;TRlZ`G$(dvc7%+-j7}i+KRCXav7v2r%C`Cxrp!0WK6`BjmGiM=IEG0jjz7}(s7`Y} zDRMxdJG}TpWP#LPC)awi6b~HSE0wd3hBm_w_g_f&ZVle=1tAs{Kg9MCC)`8$hGVN} z9F5Efw>-D8?j)N?%94wIV2MWx@F65m?iJyg?qamdg$vdinQa~2v$J0rpcp1G*KxU+ z;Ht2}D>bzEEfl3OJxu!N>ivY=-fC~gDdu!Axu?DxaSR%8pQ-=ezv?nmsWo0aP&dx4 z6-*~;>jP(+CUO+#nD9dJ|rI%@2vfGiauxWz;{;D19m>G4JB*LFXMuzOWJrV zC@9^_p)C6 znQKJ53*?{7FtbA1Vg2`?q&>mdy#N0234A>0N28rHpv{RVko%gt6gM`brPegH-k$s` z(ZPW)a|C*yNHcn0;wmMp@(Mdy%JOYs{pI2ce55Qs=A8vx+U;QoSGd5~O*$T<(pnk1V7O)Lv^M;1=(3~*&iXo3H;Fo!!F=DH?mBJp8 zkXoZ|9>_SC>#5VEpm+^9D17T0xB2V7oD(+kqH{MW3BRxXG~-sJ0M(>AKF!keotDxF z$>rWERzbqhiW-W&g;P0R3Y*y6!z@P<{TqDd3zj7baioRxQKqZ5vDuo5tJkLeNJaK% z6Q=`B{M_^%n{NSZ_Ri_yZOfSbv=!AXl4E6=W&hyb@0fq7Cg-lKY>(9(f}_jLxC<9@aj%~Y?u^24$C34?+IAp~y zxbW!<5XR+JcehZ?nIMqBWq{h5)`$-CdMCngwI8kVN3$K+@4aDQM_QDd%M_=(2@Xrs zR3rR+>dbkH;>f4?1@9XTi&{C8T(z}nY@8DaN zncQ$QHuyQLebbQ-)}UfcKN|U~?m$oAEfS6{z{!;LVKwpE zKbEB`U*=e>5>E|ZJx>wx>M8lqMoM{}VcGC69KM^SdLXksc$^HWpnGJb+uB)7N^)<9 zD9vBrVOnfsb1~W!Hj&LrL{*PkZu8u%ysa`;8E`AHKVy_&nblRxHg3gF%gRS%`ccUWP-lsKign**fl|P=vC~9Nt<6$jK=2MvMiO>6 zWdhrT{e;0SJ}2gg-%d}gPX5=j2U1H!zUf^J&OM#fbcN|+2J_S0W)me-`k$FvFi0WK zj74kSLhpxMERi?+zLMnLmqJTi{+5U(VwfVAgT4ypFDrVVTou?=tsuxPaTweSo00gQ z`)sCp?U>;m&O32hE)YZ(D;oCHC_#1{MfVE@qb3RaU9scG^NWQXzNBOC4blYeYKDw} z_FTHUuz&PlkyDb5jM z=zScFvrGl4IAwMa>^6FN3CD9I+8k5#YsiUQL}~Q6ZC!S8M=y%+;N=*4nqm5bF6H zKB)-qBKm^^HvX2JfVe%d2=() z+R%L#m}qCv3qXR~3Io0zp*=f838tYW!A*|~+$MNIS2&oirZ6MM9i6f z>z_8EB0ENQ^2lf(cZAMInac%eK%Nno%TtT)8?NDS0~TVlGs*<=U9VtVUUpSO1v1&J z;N5w`6>3Rd_-y%Bmu_^NyVB`*z4w`Zf{|j;tV^X@iktJ?N#hzy znmGcR(ccQGeLp|PlYF+M^Oypz%|*daMymfH=ZVpY6);{gE=SM|`|^4>u>^1@qW6CKszS9wB|5AHXt&?PGH|7 z{BavEsG|SK^X4=$^HBS4Sl#)!njzMXNHl5A6=(GROoa;$jJ42}vruAZAoQ<4S4C3G zM1A++A%$h|G4GdX^~`dumAD5t;DaGM1*fw#5l>g5C&>-V9POxV@}H^uU}5aTJMkV2 ztU-(Eh^|}|a+Yj-B41BuFLQv5F&yY1FJ}bhIS=pWXl-Ahx{Bbntdg-v0#DuxXGtl6 z4H1~`%Y=YLUj@|pJ8o~y&TaCbWBPDqu4Csf{fRb`ug9i+zQfn_Z*Bq`?E^~(eVHE9 z(_al9pW9#2njP=7U=WO@yVSlWWuQWK1J^AIbW0&VB7(cD(nj1weR|94YSumD@M9yK z_bL(>xIfpDK`af zPrpGI1fN#CP4_nMy~QIcD}`_JhGOFoI=@>r^1my$4s?p;+&>yR&&!e*Sh4Jq8}(uo ziAeBB)`68YNqj8geBFZ-xlreP3l z4bQlHTUd;;?)M$1xV9lrY#oa^ZWLU+#$PzQEiU8TX$gZPj&PHX>gB6pf=R77qW$i( z=$PtRj&Ex05G))#6=tG)T-@}fs;iI%W^#9@)eW%zVyeM`Tksk6S!&EJBWo?E0eMTG znq&^I7NBhIg&o(O?&0^pk%Ae%_maGi^IyI`mo5He%?w|#h9o?XE0MoKgej1cE zxH1PxUj9p-CL~<^9{@){xW9&gU08hSkj$9pbr{e8{=bQ{OE1Jvzxz~*$3-efZpdKL zUPX5Qo}{pA;CyNUcd?{?7D05r&0u#>zor%q6p=={lsoJs7;v2kV_aYbAnnK|-%w(A z+`n>EFZF@OBu~jF$-Bw7#FM2=LiS7fon5~Pts2%O@#<8sqH;voG~4iJK>VuC6bB~} z8M!pML840o2}sIVgN)nh4g{MbqNWSFjmPo}zlG!GC*#0_kFs8buz@i|jD0hy`3!mT z_a2%^r6NQ09!pLnoKear%7H$lan_znVHa)ZF%2Ee%D#D49%JVMrJTzq;X)f#5VOu9 zTsxR%4VbYlm(iaz+Nllx(5`hDfunYuA7>$*z8_+Yg-fQ}=IF!c?$qMq>nnt*4RZSU zcs7>=;0=~c*4as+%1+jR^Iatf$v%6=&gxCp69H;~qf?S2i)X@~lAX2VS*NpmeMIof zgMg=j>&S5qyoRV2Hwcz~^kXq{=v3VO^1o&Lv|_}i2m*%*Sv~I5=H<6l>zIOF;skpw zf8xw^G`@NxsyB9HWug#g>BAuXHo{9dbFR=+Z5}hxxa&3q-2oYi_P}Y2HO@Tq&;pC? zYRS&)n8xgccKNF7N8xyRHx6HXF>XHcB*F(=0s~~QKgP}<-%OcO@V7jm`JWPP+kSpv zfOXx~c;z>KDNb*_8h_)xk3^|ei^h)8WC#m+jC^mG90NV)HN4HmKkHN>YSw93YdXxr z^Tb__BS0D@CkqRET~4t!Kvpx-I(5w^%ClxFQop#TQBw7sl7x_6KkjYb&i00PAEtYs z_iy&}PeMxeTrHfLu-XzHM!N$tG@Cu5L05W*Ie>2HJf|%e3TPwT+OB41CZ9k96(8el zJyK+mgK3XU?Zx#k{s*>>t;WG8-beJ&AcNINgzi#-3?tn*K>Z{>HAPKn?GGp&7)e{E zG-S*CHOy2O(Ot9CBid#@=R9dh&!~6=8P>hZ>1FFoDBT}t#7qaKOxl7x63u?1?i7Yb zh~p5_K4T^4E_97ddqm(|SZ&9}%d0Uy!TKZ-J~FAJu|YJ|Dj|+3%B4pX$-`*n{U#Dj zxZm*=c*{D|@|HLwB+PYBHDyZol*w*nbTQBC2Rtrhi}U(#VJ;u$V5+Idekz^0y7bI% z(`Pgl+m}4o*VF8@vfR{M!~x{{MA0wc5JwLAK9GMchT7L-kMOFgNt`@>os0Ooc{`9!w+{33BB!Ax zjg3EI{>A5F_=h)nv(;e2v3p1Dzhk76CSxM+_{ow&TD_(7$Dn|Ei;eVKL_fXozsKKx z;!E+s)Ppg3hjm*_a0P6Ks3n&&_mOKgJw*5M-Ddm^s3`vPDTa-p)>3CR9wGMbr?xlZ z%teTUGiZEKrGz9=d5ppUQb2x`383w?6j4Scx%0n}{JEHEw8W$R289E-`|W?*_nRG+ zfUX%m|zS0>B)$%|yA+aQbiA7r+2ZBpDO#*UxY3H!R9c%-4`c zqhlj+#J>*d4Q08@DcgbcXv<)plI2$hVNprT&s+?(>M(fpcR zEwqbEJ83SXa9{w9;?ZfOP}oL;ZZQqevC$%`#WhsDZgP0iAgS-RMxx?2OrcO2z#-u7 zgCcWC;d1}yg|$vv%%5kmd4hleJ>ZUl%(#J&^|W{;xK6IbjJ;}8N2o(@sYgp>ziAGO zL2Z?M1#~ny%>W~fM*7u^)i?kEKmbWZK~y75*$s(ul5o2bmQswOxyFfeCC~Gj9089+ z;ynJrm_GY>B6heDL5Z-W?sV?2eRLd2Zg1m6jCk_S^YQN0uSJtS6*;MF_(O-H{ndrI zvDAo{>1$_tkYI*d99*mOiVJYJ+~JHLgzK?#Oi#g>C=sWTMI2NzLF;uQ%9fa$a?o0v za6koJPH(Er$*b)~UcC^N&DGdChIxtQ6m}=g%nLx-M$;U7tzoN$wr0K``s2IalB0uoeJALD>S7|_~^mohd$w9Qw8Qy z*NNDFiDMhKCa|v=yfFzfNmYQ86G=|=C5(XM^_~?s5=RksSsF2Gv03)JN))yk*QZUlqO{T=qt$=zDfq zOXm$xoX(DRv@a=%f&?Q2hz8nmO_G6ko~hPx&CgCI%OhP-zxh?YX%I1Im{z!GE<6Vh zb2t_AC7nR5jKtN=PF#i{C&mWw;PMIw%2|F(&6t=m`|aX?8aKSrehZ-Yiq3m%&&0QI z?+b+VLpWhjuYCqgX@t@Zgd;@{vz$-@rdtsHF6%dwQ$sjV2o1!Hm6_`Vkhk(^TBMSe zi&0GWEvt*50dSFTY{&aw`@{JDYrhwxD1$nhZ2il(WAH%&AWpNjj1vqu);Nxz>B9t? zc!tBz^1$W7`UrT~;!x(#bM(mT%%OMI2xUV6jWY$v-(~HSg?Hba)@I+LUQQ4Mo`{@c zcCZR_k4z0jlXr{wDnyqgniXgOZJcNc_!F{H?-K@~XV!u1yYanizY|a7el^Za0Q1B$ z^oUapE5~Jo{7qJsi$Q>>z)W7W0hPIqta_zsW#*ETfi}3~8P; zzHfq*uCj5?{*skk{>uPmj!)M!CYSxaHezF&0m+WL@+Qdc!IE)`g%od=pdJUGGKuKY zH~0O{)M(le+ob=Mp^4aDycw_Ey%A%)yKssnlHwR%Ld>i@dkx)?Dgirrm*|BwMfX#e z%xc{89v+b@Q7(y@z@r1|ny1V*NMwfJE%2u)?e?R@jCMVB-(L5Umm<3_44H%2Mv?aO ztfzWjs#AXt;acJawNu32l_5-{mQwsD(IczO`;%p1UBH+Ub+~~boiy(~KR&k|uNl9r zZ{AM@Qy-G{sp zoEFTduj2()`xoLQ?GkJlD~$IN%(wpHN(yWrVc%jIYl5Z_5(3XDd*X+D`4dCDO=~s= zZhkIKf9Vf6K^%sfo{Tp>_H(gz;!G0go2*l6VPs0mJVk1ZX=$X@&r=Q=(1<9)Yh#`c!n@lq4gCAhksFN8zG3 z*dO${1LgSmZKS4t9*8SBFJMd~H)P7bWR=j;b}EUDtiupXrNxmFMB}fcm5duz!FH{NNs_vdtF(p=I1O!>6A-py?aHf|VMMmr4q6kpB_6vO&WGV;qMWgr z-pB<5)F4U;)G^aUliB*xwS-X9d`u^;kvB0Tt-FU#BF&H?Jo}@=HHkV5WbnD#%04;2 zbFbl!W-eu2qHx3O2=jeCfikT5s?4`mVUEo7rC#bVGNjLF1vJNgqD+>7_7HN;E%vpe znR;N^KT`^^OIMa+w!wUZhQyUll-Q?Uk$j0k4o*vHfookkClpcdQN1w&9#a_(WH~w+7 zj?cvwvA%!ycm8Q?PaZ@YXWsZGs}J)#%W<;!`|Q;`%UHk%IR#GEKT#^Jw~m4j%x+Aw zH#`0oG$Bjq>rW%&?R&rssSm zm|S`C9UXe$7_xX3&fSH3jE`44LQaW5BxK(;A`oRXTQW^GXQ{W0#%}6XC$H$-7G+GS7ETWYiWk^`xsr)q?AnmaB0bg2I`Z zh(PC(%weLL*kUr4Jdxb{~c@4zLXM)XJaH&JY@r zm+266zwzouEPVEE>@k#k*BBqP;>1HZXb8sFOPbXOj(JON{>(re!tB;WM6Z~}<%;al;#xRuMf-ZhKz%If!@YL-fRdO7|@0qKKqp7(9Q#M!*N%;g6 z&6sxPQ_DVF$6T;uY1)wr^gD{EJ^E>Su}rpw35g6k;iIz!ASYzK|9M zcP>&?GbMavmPZ{8Dy}p;wJtm^gA7v6+oTK^G8A1%g0hUm>BONC2!`br%$wwFvOE>I zVD-h- z8qP0fRpfKCvhznHiR`Ckd-6nbNbp#NGRqCVO$5v%SN|*~nrm_KE8FS$#0lngFR?EY zMGpT&iO8kpudPRQsUGw1BAESv^JFTsVi>h}md)9hSzh9vbZ0xDCiT&_oUc|HgGD|y z`t9=FZC;(ePK@y6p@BG|sZZd34b3;svPzRVr&dw&8_dnc{a^W0wsLL8D)ZqhANZMc zM9s#J8o$Nsw69R{CMNaH#AIxtO&iP+6(wcVOwyLA zNB+qOzXOw|`5=g?lJeA!@Qk}!t5d9X?bxe7D9^{ z+w=~3&xN24HA{!}8*%O2PsDjod}c%Cx0hMJ{XT?7lJGNT^qKz+UdPk8&KjmnAffiF zNEcZ?t4f2DF5dcwic-7W?<24O?ft~e%%82B3`GRV0br>@`38XlQW6+CcBb%xO3aSG zakW;{SGtC`IxR>>4EJ5;8|NJ%ORsIk^)GG4;YY_}_2sQ-pebEb)SS{BFK}$<&RrP) zj~8Q(H@*&?!O6qpE{nij-OSKHQc<*qe<#sX3l872DmSN;N5mD&`@@p*@u!2y4_Ikxm@#C^%+Nac4ggHk zXG#g7uNkd8IS!1;qoRHuiNtmsgf6Ctv47rcs{8r)x&iHf&MZrVtYjbA{ zLKNvbAXdoAv)s+d-x50ng|O9Tc=}ijpM6gZ967_W{j7DNsU>XDT=Y0V@Z)bye7%{; zNtShr8tjMo^mG9B&H-~hiT`X&Jt%mGsOQa1n33{nUMtfiG-fa)K)&sd8F=2yq83+c zo6=m);2F4N>7f2a;5--xcBtd(`#{*Ib!7m%Qy(4E?djA z<}wE())Qqc>w7_68gtv8Q=~E)P=PMu#l4M8j!_TH$yqDBPc$DlF^@+$1Bb~=^33MZ zTrz&WJQ2e?BXQ*Bb>{3GTT?k5=bMEXJF>^?@Ydq;^SklTyO>OkkspC?|59?@rT>HP z9=fx8fRoe6{ygQrcTBzf*^hhv_L(w0XAqpD$v&<#`F;#z zU2!|~v^Mw2n8=;`u1T5utto30a}pv@Q2JYqx`QTKOzwZRwDV2tGB^R}1|UEA{4L(r z+>EcCJ(2A4pDH%u1DyD^!+@{gCa*!jHDJ^@bzbPE(iSFBZja5ecXs0B6;9^<-bdpi zUR7pCNJ&q=Az>rQfPE}vI~g#4I96X`HmM~gGVvjks!he`*77C1w-rjgVRHKV;epjWM(ge>3Q^JSx!5a(Iy{o+e6x=Rfmc2)a6NVTy?cQ~fP zK1e8=FuG%Y2x8RAH6&22Xr2=H9WMp4UR1TCC2@9i3*kT$pxF1VUvQ}!Ct6xEe0HsY1Q&TA+VkA8Sf4%PKW{Ukv@49n0YTx$&-c#pFG8tuLy3{XUOHBk$n#52MkoG;z`Ltu+d-RTaop<`l z@g{0Jw7YyU_P+2&3?F?ohL1lK<=Mkga5)7)Tw_eksBK3o7jiR58d^f=Ye$h%VtGaacg3)v zAmSS6vi_Tw(7Ixpu23O(8^l~};pB5Yx59jk>JvkfHCalMl?*A|+)6RUQjids>b_zC zfyB%(J(s~8AAeY;pS(YYz!+!xQN+?|zd(Np4DYh0n`}LgZ-c>&mTJ(b4j50Fpq5y+ zeE^$w{CU=(jLxhh$613#<|_I;x}ma_8cqH8)d6+dVJVY&>U4~p)4n5lI2Bwc&ehDu zERW#)9AM97myOhNN!AnE^gvk$sh{?{lU;PEyvbqK0exm{2;Sc$u70VE*-8+HJ2qDJ z5Xl90QqL5CB!=Tw(vIHeqh~Kkdk~SO3=oTVJYLfK3E2!P-~BfUiD)IEju$`Xt2pbo zJ`slm+T_hUOYB1Eo5pr$*oAv8M2bYM+uQKDT^2zPus#3%ADDwk3UQM~^A5yGtZ{-n z9Rp~Ws6$9y`VRHhEz)+WrnedD>16cCwX2fWHSIt#=PMDItl*19ZjwT@Y; zKHUW$Xbo{wLHM;$JL7DHlBQU)X6HKu#{|&v_SI>Y)4}FR)Md1z8s8Ap?C4B2p+uSW z2g4j(Sb+A@SZHd}Phw3wn84DMkfp{g!?dfj!6fqaWGl;HI5V^ zm_@qq*nW@ja9P7QW)t`lYXG=`kYETo)r~%2;wq5l&W^;1`-kub4-hPXMIa8+`wOWv z;R`Sb;Mk?@_G7a#aRR}KD>bLX449?a3{GD2zQkLfpBjm=GlR^j=@ZYWu9vtFNe&e7 zr?NhTp*!pVYAv$aUsZ0h3_=1F_HLv*US|We2ay^i@bXYTzMmHoHOXwG$q0>V67)-P znFdt`bD-Xu(jBF{qtSnCVLrN}vj`vt!+DyXOb}gT($Vppk^3=Ym{_mB%=*wh6d_E`C?5|VcM)Jz;Z!g?ZetGzqh#Cl>PK?Oa$5OfW(P*y_YGI{*;_?BSu z4Ybv*1?2^G-xn_6bW#& z&iopv^}^Ec4!i5OuY5V`w_n0h@K>X9@&WEsz6Y15$xX4oCjSVhl2~Tk7HC29By0@VX;kL6f}PILb=N zgaJ)A4O3DtR1EU$*3bS3TCRpziSATU_j@iGgxVus%hJfYa8N)XErFP+tzuo9LLUJq0qQO zBq0`=lryihUW*S@zYv z0~J|CGiBHU-b(%NGq3<5CI zCeIhx@&6)QW>yar;edJ_Kx$PCYXSs`-ofkOcsWF*$@!%_@zSve zf>?DJ5f?^|<%S%mb$2<9Eron!xGKnCFq-{p%a{%t!pxXaV?n*2Ss_S2L-uIHR4Cx2 zDLV&k$Hv!xpR70#e|KJO00Y>OD6SM=a@G&Jvvy z4t~6~Y`T{Q1R(*@bgR5H6qwq$2E}a`p;RaE-jnABAgB`OrxrMjD{02m9&5-1w4>yJ zjlT0Q!ARfTw96*XXk5WuUs?bJU>asK6%1IzYRVHV-(|Z}eR3j(*0-T@g+T%x{2;{m zIR_06dn&~}fZImq$RWGJ4Rci*@E97J2wZJcf};j|bQFid_%!pw2glg+X_%na95JTk zm*HKj^J;~SNt3rmZ0yG7MzrrTMR=A$(`n+{ zeRbv#7oIED(bzYmbQ>{3_X-5O=O^Ipyf|;( zOT@qhFf8+C<|{1duS4wbI>hPP#3rVrI@o!jdwYz+Gf?>g5^c#S5EyZkI@y?$j(2D( z9j%)-Mj)aAj<0{{0xz3kL-SsNy^MXgvTI;eW(OX>FfyE)l_`LE{B9#Jp807qeAzY{LA()_jO z6cI4%@P}84;k{?-e`mjXS+XDLF@%j!bURr4=H)0Zzk!e_@v1o@SA69fBe(+$Lozl8 zTD8%Z4Ymm-T!1jmzo}yfS--=Yz?@40Belv>%*t}q-*_?N;tQNoc%8F>ZX-a^IM9xa zWh4;H)J+@n znADdPQ{q#g)4&94 za8h-bjjuY@)rjD*!yde(SLk=rQmJx?5d2v#4=$a9_FK(7wBW|26Eto0=5xFVbS0Kc z<54(x95ePjd6^#qn<>F3j(fko@L#G=(}=5#M9uvlNmgP+(l!M1%GY9`dLzB&ywe$t z6^?3Ig7`DfA65)@An($`vACPgLZwGo?4HrX&X`-*qju_OOrJbPKMBl6`mcQ9kD|=_ zYk#idJ%uQS)bVAuhgX9dTrH&4PzfC&2fV8R7=@BOT3-3M`f5bcLzq)#dMcHz! zasMf_;aMVn1~G#U@eVsD@KxrHM>w-*ltI)HW31z$M_CLfT&Z=D;3t?-d{xlOH3o49 zR#(Q}Mmsl=h>zfNonWVcHoBAZ2KydUKml-8(T-g-<}jxBamwHWfDrJc(dRPqp+#iH zZ3M*_%s!4eTP9%o-LG7X+sDqu=GZ~j03864P2UMvR;%>zo{fNlhxwh$6|E*jp0p># z2aI6a;Yt6~c`N+dA2qL2O_<Y#pw3PRE)oNWY--uOf#5w5j2&aWP&{b<~X#dR9@AiZ+scxi>+L>1JYz zUS~7vg@&lP!kVKo&pvWCQD+B8^(Kc;KZuhpD+Dvr$92LOUxG2De*}Xwj6UYPO85f4 z?oFbI4q*Kdx0`vYgedhO8oZleXM^K7H^A)-dAZ$XNd;AnM@bP%B70|%zAvLlCg77P zW7g1)hnVg#p)P3R(pg`AoH3+jz=rQoIK@!|Cue!bALp-VTRS~;p|`~(c$>-lDuXad z?BBd5Cv&3WD8mjyS2qC+q>e#+WxR1S4EzwbaRUa-%@D1>$NSR(dWv?8rm0Y`f<>lw zT@aI-Si@F)e0n-&alJP<`ohD2D$Gwxcum{d+D^LZt2@t?qK@EQoGMuH@fZj9j^P=r z-q_;AZ%kGQsL2E!r(BY*5>pN7U4$S;VQBkn#E`CW2Wbn2k~lVaPS*(OE5~tmtH1O0 z7vfXzJ%mP;yg?%bZ%AB;KC7`!e!ET0C5QB{#&Ht_Aat15Vt7(c8v)a+>lz<}=0Dx^ z-;x{@n83!1!(0;taQW-eUSEyjBd3^_P~XZ*>>$`WTvItXa3=*PgcBV!e2U{p4xP+S z#RfhTqenX#QKYpx?sux3{;;z~AoebJU>)=L41;jcPH^yYEeXY4yvzR|Y3~_p>3JXc zJ*Ss@ZaKHN>4oHQC~8KeXm#0^EjP$zwO+5+MvUD6*&tu?B_D$QvIv4~fMgfJrU6+b zh+(hg*pMaHwPnkatU{3zNpZ;GkTaZidoSnS(_4PO=iEzKhOz5S-kE#Px#zs)dH&D8 zx2I7(ijB6c1WF@(lgfEMP~%@ zL(*77jR#DUT#!KX>!A{d9SD(a|<}HZWHhc>#jQA^hsD8S!igC&aFa~PR8+&Ztm?A9-ZsnnUV;Wnp zy3Ze6?3_R_3#8Rck8v)nP?z=uoyO)+D^p16t;Y~Rb|;L}_AqvBlf!W@pRKn}HORjQ zwwJbK8i}o4*<&+T_M^Zq*h5|JV)u<9!QXf5Zg}U)(_v-u0`qT^GDp0MA8jFdf`_kW z&FDpJp`IjJpd6uq_AyXvTJ7R^A<3jpoOlJqN$m7O_zl#M=V-1A8@QcQ<3oUSjqvEh&&p6q^@lfti9a6T^S5B)^nd>$KAfDc@tya|}#e-Q42Y`(c#+LHSY2*x3FLh;cDLN(>p(O{ms} z3JnG!*K*3LNUC=56#8Da!w@#u2=3s_V?_Bknb-`(1rbR`=9*?ez-XXX*tGK5a>#sO zlFIA{v6fK=WI$gAU~OYmKfDfIrN*oZ2z)wO5>-T7dA4^|=1)Nw_dNLBDYK+i!Mx4ys76`vB((`v3RU@xz#rf-S zkp}O_=)3@4e;Z5k!E6Bybo0^Fe+`WJnF0^PzYMoUQ}=V;byb+K3BWzl~<6E7bRpCTh~k{TRBFD5y(7-88JzTkQ?MQw0l_OJV^sx+ErBX zRKkTqlMQN;c>P)%_fZW+c#z~^9cKm-2x(M5grITOG+;uHH}+%rXJTxG6tbaEwp9mX zI3{aphrJ>XY28wz*w_Mr=wDDG5*t;7IcviX4d&@)uZj9r7<=O@5EAyeniPgag7vJ+ zoB)=al1?IB>UdU*YCWv+F}-FE_-O$f(;oY1Rz=r{3=ft!5;BkZ_a6Yv<*aiZ5QxPK zhNm((f?Qvr8t=t9L#$2p<-L%bq#qH2rF)yUCJ1t=}2>004Hso?%g*qQyK(nnDq7!CgQs5uHa4Vs}vO$dxQX zYY=yzMo?SWX)|`_WWq=+@w0=9nIW&S2ZASNahYS#PU10}LQ1X@o6*M90N3-F#j(&} z*4GN9@C(yZv@)PO8boA0V9s+a_+=g*gHkKhC*D^ez+D_i$8acBSWgjv9f)~i2Cp5u zc~gWLrr!yG&Hx}3Ul!ffAKa36L0~ZOEZHw65LA)CEp1vDQUkT@VD4;OuylGL zxuZ9cXJrTnMDMBG72<5`%16SMxaJr&tfdCQTr(hKpIxxJa8}*rre(EBbm*A);39G; z^s}hs1?v7x%8s0s&n0H1ktJ^ufT?nM(!55-=wXA+vAwbfvqgpE`8KVVZJMEz1Syl4 z3pE-@tm$-3qw_BU z&b323p;wIK${wzT!kw3pFc2uJZ6(2af$%^R)xH}RC+4u*VI+-X!X~g^RJR6#NlSr$^*S7{?I>wvP z>q_Xwa>3X`7RLfJ;u@}3YRgE0PZATTPvyVe`#m%jlB-8}RXgFF8VyaoNFlc|7-84(BuUZXwBGbP9>hzm|bP^gip zw{oTtvM!Jm+s9HN-|LYVn7G%TbIRG}s7(^pYj46n*f|_*% zphkF~TfU3V&2*>dBGJn>B}Qu{#RIp2_p>DGxtTd;_mXt5w#23ai(S&Gl?cTHse{skG{1XV&j`Qak4l# zdk?tb8DM`89NR`~89|>UcCX_oC1IC%#whr}y^?3xz!t{cxs4jlDT){2F3z8so97ac zQH0l_Glf)X-P;eD4?1Wfa>0 zgY}QOiWj)w#ao^5fuA@R3ZH&9y!zUDSUIZD+cLxMvQ(YJanE5lbx_OFc5Q=84*=y8 zxG(p%)T@r?E zIxlNWx`$wkdkrKj(BU~r=H|8yUTHYMKB^Ldfona%?x17=c$C77Jxi#mjzh+^Xdxx* zNOPrP2CsHJ7($w1vqS$rHjL zPK94KaB`e72lqF04~t}dHE~a^`J}btSu?q_bivx)CpiT!v@>|;^ z1xt{|-hgh{sU5%!XiyEZdw+><1M}dJHJoFh$QQ;T4*iD@nb`~sBu(sb8~jt#agD`U z1R%1GHHSfnx_ao1OX@__S!v9?3v+Qy@oD}7r);HRxuHeFsX0svb|O0^#+2TBBx4^H zmQ334IB^uFGxQJIAS>!V#8`(}4s(ta?;3!ARn|C*^vuu0BngesQW&j`wS|~_8?2?g z6gZe4Tqskz7aa*qCVIcfOsKG*dWi!}kccEq zrs(7yhzKsLGX!A;01Irl?AA6&{@KN__^ZzoFFpwW=j-3YPUL*P7c5zl4s@FIu`T-K z`h`VOzsX)mJYW}J0BGdZz1$lhlxi-I=PD)xat@OPG5x`5R03M{FJm9zG%KR6sdZNY zFqxi%=dd8IwaeC@CFU6_V7$zW5XX> zd7z4A4bgCpH}yUqB1)P{5ee1QvLRH_BsrH+S`JQ)=eZC*&`nzox3<`?gK{m9I?X+! z^W;PVd$KSz+o?=vH5tq?466wf6Nx-Tydw6T_p8(O&cEH-F2-(Ivj&9G#_^#2=Dl32 z0v>f$QPoY`ndp2vmHKWst_C5?Nbc{1(#kub2r(hoLXD1Y`-Dgio7kc7;Ua3=5}g-P zHN4h1@~R;7D2W*Mhcz8iyirS7+S>{{>_Rn+IiqGIGc{xD00+ko_EZn%Em3*Tzw04^ z&0zMFU=ZtSP0VdTVuRIavcN-tiTv-F_UEUnoTe_qn&NtY|5-2~)=4`tsboAQMy^d! z^4H(QvBO%Wfv20S3Jq(1W1R7hxXyCG$URh@TOGE8AH5ugNLruiZ_}FzoFEU`R-dT_ z=DIpi+wCZrADecE@_$sXH0Y4zkw%k3s3JzZX}eJ zAJLt9FSH=Y`s_tim8+=oFcA=8aA$vewNi~@UEpEJfaZm<7EoB2=wxf;Rsb+7CC;87c&nxf-`0yvNkqS zCuRqs7TYwK`?;NVwqW}W@25IzvDx4mX3?~2hlEE+sHY2C=3pxfuRVyFQwK<+E?(CC z&GoQzyc1RI286K2dRhJNc6H7^hXW{jU}1wBhj(2E^74Lbs72DyQ}! z$hLxjahK>&@pnBu)1M*kdyYljXZ%|{4=@8uet6At&jR!GJja*7>)gg>J3)c(KZ@(^ z+iGhN)8#C7(C$p)yy@?touG4RUbMh1lT99VQ{g%|FI{MFcQbm;eTJdDURZ|cOJi)h zyF_4)hFvUmbnwWCGk97PY3K&8vP>mQV>JmIELUPET;ZBvuM&e*Lfqr&<5Q>WB>c-b zl7aKsHjzc0PmxB3Dq!GPWY4lFIYcx%Ost|Xwwom<)7BEDU%MRA1VZnBeJ}j+oqORS zNHamK&nKA5c73cECVi6G3;Z2LEkH~|Y#joYJu1e{g_R&x!L$wiG4?lkomTKVLnJ19 z+fdGu!^+oU)D+W$Ct=v6iD5=&;hdeSe8VF?(ogvBKJ=h;R3-Ab^i_EdK)MbsD>~%5 z=6FV-u|^-w9qf0w+`{E(N1E5mgW`R?tv{-j+H5*tx)4WF48arGA*i3AKTi%jTxps@ zI^^K=65N2Gx%h7!5}bz;&g1mn@ee+VlA1piDw!xQyKHKk5*FEg+bNVHDAzwqz{a z!5!s?lwyp_TbkV6!TIQvo%(x+9Gbq6=?^c49x39w4`D`EAV5_B#*#*j%}ycFH}TM8 zuB2%z)B5g;1nDpbBctFMP6F__xv?%SNWTT2u>rUVl17f&ro#H!4?P*eD@Y2eyz_XW ziUO0XbiAl>sJhA#3_F~?G!*hz=uURK8NU1IPWTer$jy+I(&Ap=Au1^L1A)?_HVLYM zDy-0QfnB{6wrye_#Kxgir9#}j_*6|0U||v!HH|CXiUh~o!r0F55x#I$2h$n=%kOxO zroS<_h!haCh{Uvc)&M=?WqfJ&PKHeV&x2*ABo%`@n&dM-3-lmqJa^xs^aYHg|Hc9=!Z5 zhiehx;(d7={|1Kfh#=#7;Lv2V7Ym@%Na!>~4hxGOV9!@Yl^{y23Y?O-kUJa%7 zM-j2jl(K&G05!`MWn(G4yvHygyo*rSF&;(tj&!NGC9i{dO89o8+eNClJ6BBPXQbkT z&-D8SDxon^LE|KHyjenRwQ<=f4Dd8@JkIMs;+OODr-bC!FK~cUvA~bGE0j{e%5Bqa z?}2uURsv29mObW@rapQmgb$pLj4g#k3`jQj0Rd?u4#|L86*9=g6(;n4m}+X779^Mk zll){T$Y6$KeZhF4l?4(g*4|wY;|p$3iy+&Dz!4}BW^^dXoPkl2qB%keDLeCq-aU3J zQ(QU=?a&d`U)PimGG29ZbaCB6_(&KiK(FT{+5PMvSn2M>*xeY5!PG!LRaQ8JfEEJ7 zxK*%+ia1+p->ZZdzw%D_ja5`#+GR)_k>EJFgY>wBD9hmKbBl3`G^3NoPSahQ5jm#J z6mcNbR=ZX!DMm1YCvZ|s(>OSbbHWMKR;e)~FVWPu7~MFTg3Ql3>gj}U@N5v8=L;E` zg1IzB7Eulx56%%3e@x8iZ6w&c*tvGa+hN0+Ty7^!lDwd5pEacqN7UB(gRqLr+I=6- zJ$b;nwCup$A9u#$IVZ!23*l#_6yqe-FGB{h9q!^1IOjOX!B`{7ML;@uLEtC6=e*PV zIjMo1=LC@1g6hWhdg!gZN%8^&WZ#3S^N0ymQY1*kKBXiCi-<>yDRCUga%{`i37&T{k2i6_#cF`eQRS3 zR<3q(_)c$doXW{(nmF_}4h;~0lr=Juv(w25Vu9W?UBvXdPF?`%nVK+(jISbh8}sbL;`>U z0BiBo3Yt!jhgw)GM~iUgp6;0tMLqydGk_kcP}Xs|5TdYwe$^-w%k7sMb!r!kI7^D) z_5Ry%)oA_{B~2|@0J^={ z5UNlSL@L5j4|yJ;)5t)~A#LIzE)f?^kVG6ECfwUOL_`KU13Qm<$qe`$e;7zRkdRuz zJSNV`Opmuv75?=oJ63TfkBIX$cXM@%9ij-&%#-PY(i}P8=+J1`qr=z{bAIdAOW|qU z{ryWXurt#lb{5V7M<9F{gEpUwmlf^_of{CWD+eqbtL|@R992rNnR&4KT-$?T#Ke8i z;=kh`5Fyvg`AH7wk_=yL?}j4X=iUCSez-}c#V#J>(J=ee#|SMGmO)DO@uVf|Y;E47 zS<`p^EjH2~W6RQZ5lw?2`4%xl;n7BnxK+evwMtk7w>7GgjLhN2bTfw{5)4KYalq}* z{Y2W2UpX88Ft{+#7}TN$b8-q^D%=lvH6epIdtAFXzj(s`w_mcY_&hIXzzISe9gte{ zCACP(C&+IHd;;olTVB~v)$z)c`)(iqfTR}$2?;>hi!@6EKeZnfRGVZPeGYrPLY2}i z_;`t;hSlaFJ)_`#tzsA=yf;(W#_sNgg>y4(DX<(;)6m#Di3l+8&IZoSKcn$m3#R4YTcw*SBCFJ zC^>MP5f|B-BZVs4p)Rpc`qc5=O33X!4m0Ie_|daN;XWA*-cP9t3X*tCW8J4f)=iN1 z0Ped?_Ptycoz$I}Brd}m$tgO7LFDasv4dFTMcnF5+V=I?=p=zO9+`)rA3?}*83+Mf=wqZ98-e5g0q!v(hQ>K5uu1_GJHj=~cG z(x$@`)AM1kK`}H)yuG^=s||Wv^U)idU`JoOpc~eZsLjGLTf^5BiRkv|NmX`nr=zma za?mby^+{qGn& zBwuxN^EN$sKErNai;?*ziB%r%v)OaP7`p;G>;S#3D(`0fz0e#%v$c2jtkpJYu zXjoj?4xRJI8V;fVO>EFNuvN+H&V2GYd=hAQY?G+DVr$IwujafBow|8S1t=@O(4R%FS;?H!QLg(PgWA!c%0^Z3q7 zlxSs^ZsWoKqH#}-3p9vPNHU1$9n?BHkc z1RlbfjG_Nv7rT&iaMTz-J;s(c6|@gvkV|0;`}pf-e{tO?4Aqjv#Zoyu2NSoiQvnb7 zFrDph?`?+P2WhYK;q>H{kU5&A$1L9K6+#?~bfCCSZ{soWK!+GzG5X-XgHF#;jQgMC z6uF0*@<;5w{?EapZ=v%17%Jlx5Nk^HlEL@Td#(Eusn;KDg?oSao$!2P6dwi3O&2v5 z?ytHP_n%-v4N#}A(KiM)XaPyqC1+0qe-zKv^Q3;gwj<|6#fIa2@Cu@wyvZsp2~2tG zVTbfV?6~_9i;==Jx&OXdjX&-M5ZHdKcL#4QHyA^TZj&VZfKsCQ50Q|4WhiuCrc#7^ zpB_F3SjH8yHHjWEyPk_?E}Gx_s_|a|VgH28ir6B;FW~Tg8998kkCjfUlvIW=#!TWE z&V~~M8_P~+XwEDwy?pFMX4ru7nHX;OZv*wasEHY(!*e*b%KT{K?9rBB4~eVo*@$Rgi<|&`fw%y2-{YxYXMi_O~Cd;_bw_z%Xr1a*j^wd5~iD zXe)L_>ySxeo-GYSU?A9-s$b0&($zNj{xLAb%_XoDec~uUsoH6c_rk;<=dMX2V~b`6 z{@OYf@Z{!1NS{YTAzw66f}pLgU@n7; zognW4V4rR06SsFb2jWH`)mLixEYMyE?R5xMrC8rrF66^sk;yd4bM)G;P=59_y?w8Y zl*8v%SHguN#D<+})2@#rSXKy$|2Ewqe&sS*UL$lxf0lct(HtEBHf^SZMnqrX)G)bj zI4sk{NVzEt)I~0SHdzcGXTrZTR1g0(hUn9Ch43_ zYir>$W1B9s5abtj376;~h$=6O+(b>Pu`_4ceF@>xBGEv)ixetliSP>2@iip3;T=`^ zh&aq8u9}GJJCMl~J|)5`B3`78iZE|%9pbr4o_(DHNKu^~{xt9s$J|#w+riG9B&%bZ zmLpB5Aj40IEDKv@*ugG|`jDR(iJ=0^dXDa|(Z7YAvv%3=HAg1^06+jqL_t)78#^rn zT<@$cBbiNgE3kudBc|Euv0f*s0{TbtV^+X`+<0}r@fJ4XdKk@Kp~UQMClT#I=hBTG z^Rx{eH_QeS7^s)PPpaUE<_WI@!UQ()W4=e#gm(CTa9%u_Uy*?c7><~PA^x2Zlko9S zYw-+;+I4&dujjYWlpTTVKDaub%6k|Bzw;2b@83I=wp_o6KzND_nh#dV1|t(Fzl;E74qT0ER6(ak;yJ&t$=&_8tQ5q=yveLjlm^;frsCu6~&)n1pg5(k3Ymr`Vs;A zE0-q2vmZ%@OWi{F@Q+>y)7R(2Lvs3xKerHiUu56F5pGCF(P!$Kz4ykWtR1GK2LK5oFX(a4F+^%64*5f62xnG66*VOxkHY-<-z9qPI!a|R1xuDWeYXGMXfA3 zu4ogDBaj7Eq04nUB;Oj}vtgKOs7%JW*|@rcWM13;CONsEL0YL&)7u7V4F5+PKw_{a z9^R`1fjUcZ)he0@1OA9};WakG_GF*IWuD8b@Op~feloaz@NRJJsUs-XlyWmm-dv4g z;3Ql$9Uzmz4Y}~-ZhkU2ILE%LK>XyvoOH4_@9_B@RLRV_OQDS;?TJ|oiZ_W94^4&A z2Od$-05sm9mE#d}1RhDdI}jI*lm@W+v|~)(*~e=Rjsc6*k6a4HS#1Bi8+44o=fQZf zy27teBr&p|4F6T95}Css*-^jrk(tokEr#cwxC$ezg*z`-!cSbB3vbeYC`+=yERLN2 z?#-2Oh9sG%Cxx zD8+%3fOylYuJ@_CV!wwxMF9YFaF9_K8wZRU2Lqu?n0xId~KQtFkEp-$Td9 zL{1UK^G}g-K#T)KbAdZBnnP0Bm?D!;k^gywYEK0N4hZFSi}bW(?4Q^nj|N+hsmcdz zIABN!C(UIFbvOf}b;uKK>4j$9OlbEB1J#kwR4;otd60~Y3qMQE>sr{_|4x{kexBIm z;mO#X!{9odO}-WB+vaX^hW`fC=+v1I&u}i-DUl%j&hsKBMF5?i?>L-)B%vrNJxhPd zHfeu1Nwhc*E_~tOkp56GBTp8Nyqro{&wuZ59e9@cwQ3ri=80$v;1kZszyI7~`0S5g z3U7Uns+IHDc{6yD?={gx&=`;v$7f0CNKqy8fW-I;?J}_4yGSMppm&F`18PN!G|beG zpADS_l3wU_lSCV_(O8?$yRpc+A8z7h{S>CyukTdCzxj#l;cPia8yfakrJ2>$r)Yn3 zAsf!z7!J=vfUn=*4By;43NvhV@ju;q9R9_JpCaQ+r_L@WiE0e^{q9a^y|^91`;fNG z5d;F{EN}`N$x3^6{-&EBuy`nJkS~s z)!(D~y}F6I(F?QGoVBql%nmZ8%4+yNZs*#K#qj8CIa~(V{n2sSdvwAMUF@n5%s#rl z++5GD-2L>S&9;G|KF-ERU@#@hjDVkV9d_F2Lw4oP*+w`}m**uabWev%NV zPt8s;2<9!!S#Q_GXT>G(0>4!c<%sI0`r651*v30Xf{fRm%q@O@^6b--9RxR(SiOU) z=`l>sWRWN6#{N&Q&4pba=`z^a zASs1$g{SFla}gU4oX?^qHnvGrp<0Mlh%w0)Hf{;r_|?K#_|&JL3?F{d(lWMQCpl)F z=)nDZ#F$CH8?C`$K!3a5{Y#|wyChYAeRC)L-ov%>= zvUhQ+q#z8PFe$iJ52pz$72_=r(U*&ODGIa(%v?juuOlU2-$Zh>!+sgB-sT}ed0OOM ze+I;$KTG9tNUi}W{w1%`Zxh6^H>&F)X^`9s zcb6%sp2qHdz7(n>wbLn7c^B!E+*GaNC%Lr)qYcl?Yq;}`LD@Jkg=Td9k) zpu$HYfo#iwdwhU5QVOX~qE@OZdaez$M03;8N@dEPkYt)?X5|bB=JX*0W?;UoZvXAh z>o{?6XbsOt0#9SyJMK6>o-r6Lud4F=q1h1gXStm-l_{9u9^;;lDSmqTEWUT{{FlH7 z2c&qyz)ZdvuQhhYDQX zCf$~n7b(>L(swIij&ivI6-yycyqXy2&zbj(XZu%+<0Kal{vegqbV0dJi!KBTtt5^l zU03NoHz(E~Cu#1U$$zR8n~3PoW25{dfYqcGWB>iLWUa$dmhn_!&vd%0l)RLPW8Dcq z^zrwF^e4}TP1wQkt-GOf6C}%a!X$Q32cy+mxH`a>o7ui!CTkBAH&7|V>8pe;vg|l} zB3R-;p*K8!4CE}f;-YAZz4X!1P`OK5(j7PoMssJK6s&VNM1Gp~j~4(8A(IZCsv44Y zoJAkvyDnRub^0^m*ao=^R9;lZ!~XhiY=A|qH}o!%CGqL&NXzK9-TP5kZ@2{}n*6=_Zp({ujXVHiQ=))tPc7x1wH!Snkt zg1>(HK-zjcB{1I$JkCvEQ+uA(_-AJ($ipX$fof&)wj+yo!9 znd@gK!c!Nqpb@n26;5C9trTVgp4L=DO#XVeU2Xm8$CUV!|HT(OU^ zG)25OL7Lz(+aM;<2+F{8$`&j-_aOETlDUs`OdtfsDf68b5_sXbp*N)|Rdz@$O@`k* zYK8gdW{JzCLvxCRYVtNSFRuZ3I2ewd)H;Fjktuef#j#VQd2V4U9Dd~Kus>A}jTc{| zePboekeArU2FhWd_E_j9lf`VJkrFXSCZ)bSfmcmVe2nv}T#g#6FpaQ}SvwmL8fsZ? zg0AGYYaf~o)g^2x5#|}xkQ>x-UM5K$JWUY>=-UwwH+6z^x*|7DQ4F#aYfVQH8N z`G(U^pQq#37$^c@CQA_T0sGb?{jso-yMhF634`Eg84kDu)ZJ9pu#Siu)oTD4&twiR z%3#p((ugP$0`w8jk->?qs$EJe-;4B$lT+y#iJQ;k;rU+4|CmYTsi%l|!nI{0S(N5$d- zyK|As*`a^x2t+zXUTPifZ5V%sI3skdkeVYS=U{`FFV~gm(y;TG5Dp@Im~us%j=SO0 zDv2={2=R4@i6n@tr)~9urZmux#2m=eE^e{biwAz42Ym&d_BmoVDElElgNO5t4T?8e zRIsa$DvJI?Whs-f_OA9YG+tW^qoi1kJ~>N4Dx%#$^hx{|mt+u3sg&eH_AI$jQQdbYi{l2YR3C#tM+ z-8i$si(^d_E{PJD^Hoy^KRlObyEaMY9bYBb_tu0r-aitnNaWwFqh9M10LXB>P7S~? ziiPhJ6zI-?yh9L0lEjmOo^%*>o1R4-np@}TLQx>d{z<<7hs+7F@cl>fJ_7i?SDwl9 zH5rhJgw5!DPV8Dnki@j;6K@=%Iv_(Qg^g`uix8yi(In(mES@9A$oh3M;b?_2DjbrH zI?S7TzGE19hH${)y7 zNEtdpFw~)y)WLDMx3rEkh&CzAbpo$u6^8LUbZHldvLw!=7HKzwvoa5Na90E{mm0z42;slGx}lo~A_vt)*J*Fc(W zB;r7;68v!;R3X^$CX`7KC4tb=~ z5FR!%E+k6SBA;(Bpr;Z0KSff=52tJ4lcS`eG0_na_OpbG=eU>Q7nuOi1Fu-nh+Hg) zNDTsr*HJa(nbCX3>#405H5pHEgh&S)g6)&Ox7E*whb+3?GA*2rP8XjcLV10>!e3m= z^*%dAwon4iAohy!9G@q#F^-ry&8tj6f^%G_&J^zv!#?qR*5>4IKO5YGIq<2^v_QL# zgh)O!9m+I3D-ae)Q@YnC0AJgx5SAjRl-k20ZTzP(b4E$#p9DJI_4{MykCVguI(_X% zokUI4!ZT=PE~|h0@@hiGdK)pm8=+{gVQrIA3)@DEjr(N6~etsOGn(~rZXl{Kil8k3v=Xa zCrB5q?P3N!c_z-qHO_L6b@1+Y=#sIDNmwM$J9CL$w|Rmz*stJyRdi!$(ewy!D7lQk zLszcH1n&O}RJ!cSAsfQbJeRDU!~*>z5v#*EM8N-u=o!33d2E>mh>$`h=+YCl|C`?q ziJ!k2`e$z-+R0Hx_o!m5t<&o6Hp#Sq)Xvkc0dWr0Y@_fEQj2a*PKRd>*0>Mt<=HPV zOD$t}L8-!Xm^}Y+4nPzrF(q8dRW{b#`g7FPU!!D;xMf$n%Mb;eH8!dJfz@;gDFtd% z99^0VS8RBDhg?N806W1~NtLQiQ;bTn=mEyRcEKns?!R@$`65;FO$K0mZ*i23TL>6u zP_g8=3r(B_aLrL{7F*bB)m>z)^E{7uOU%a|qe<7NrgNdOn-8nO!SyM3 zcm8XKHYRAmy1^;M2oCRk+JbZNY(5nGm5{3I{s}A+%ypnL%ToE?HHx2k2KRNW5H=Ph zM9kU{?@N=+(Pqv2c7#BqIUqd^+6%KET?qB<<4~loas;?KpCvrsZn&yvoh6C~w80$o zO!FCI-^aN%!M%R^Y117E#8=5J)%l32)dZ)E`;Se7n*{4~+eki~I>Q9?n*{AiNDH}r z99p9^aK;Z|Q!273QwXWMq5r};G&bmk3ytSi5q@tlqfHpYzrMR1K0-%@tBmjB^l0cT z9f#kavKu}sCki#)HqznSAnVs~>&}AM_h^)S(+r2FaM40o#(HvhcS82Its@vDK&c(c zk&raRau9H_jbDloLiZ7#BNhgt53k{7{|i*rx9D`;zz;lvv!#sZuz~1yvGXigab^w? z!lWLrvE2Y%jPHjIA+AZieXIn)L>t!eg>#kOIajd<=>)y?I(sU7f=zIksA`2F8mv>!(d@H2vtV;3`mv%8pEtD%B(~H(WWA)(K!UR?o=^)y03|695LPa7NoEcS3AOro8Vu++P(3|C+ zY93v*oeYT{w*FULjSY@tHqOb#r}yAlvHcfio|m5h&P zaSu|4=`Ee1@WD{kr>|zi$KOxadlCTpowq~%(G-pv(&He;E_Sq` zhXmftR&xsVcMwjo8$+|VLIpqP?67}HW|w3bG$x3*Yo|CKg~uj7ySp=_kaDg@Y8Yzrlq#x15ZU`TvPBz25zJoT&+(_3!58lAJ@w*ckn2gDtg+F&^9pGid zXP>4TpNnI+W_sxy;ifsx|K)90v0A5 z29C$QJ0MU?wZcW^pLHKDb8Z}?8T+-$etXCBv~Wbc7akFp8Hc-28q_+X!n#7TI(o%b zx(HNBy{mi+&lh2i;$;#QR5x%M^p^mJ05}Vjl>)r)vbO|@Fcij;`b03-j3hs=L%i*C zV2IYX*V6M_em_XF= zhtCJLCA?XJK>|jJ2@&|W@4rt#BCx^{VHMU6LbsOFd;2WMYIA9cQIB!lY>2VB2C9__iUnjfc^ptCg_P;lJNI;% zf^?V%h#dR8a&DXFJPXr&9;tc0ak7yL(6 zT_N=LkRo!{KFhk8i~yOFx(Qyim=7sEMbZ@)NXj_6a~N7=PT8}!il+I^zq}QmgR%4> z>JEkNBg|(5Q2g&8=`M2|0cWznyNsk2|Gxsv>b!r3a0gupPy?XQ&(rw$HUO9aH_U37 zq^03+d}ArvZa@3%JS{8G_t)7?0}fvRQBw?5q)Sn3{D^?PGVwNjL4F-h_A6Auf6B$f zW@H1PFvWeB`CPR_8^gu+00a@4e(&LC_y-p!!UZIB8SdC58DWR?r1ZTF>Klz4!6;x3 zI%Cd5$ghxj^Wroc>!9jB`o?mJQN4W*bqu4hkCaQHf{c%y zrHAJl#M=lX)H8N3lu<{Ep}0(bD-yDV2Pv-#&wpD0ZUeL$$aa=4YNXXO53~g4qgPGz z)H}RD?CJm*rjb(c2rwBKqVkVIuyq%a1uy_V&i7fkYl-B9Hbg&!P4fxz9>3}KWYnKV zl~ly$nIbn>#yD^^K`SldhJ-RWIETMdNW+-ukMz zgpi-khVne?1LI0irq@OrgKy!ZU>qRHC}VyWMsSPIYq+-*sCZ%yL9E{{)FARg176KE)ra-(; zOt;Ruwjk;nZ82%~8^-UkQSUM1mS9P=x5Gq%b5v(Lrgy@4>#DTKq4LG?P^RTa66w}` znJtBIR<)V?5pX?%`A@PXqGf*n7k-SF!P9w&(flU?4#`HCOz`X~FdpI>Ry!5GOw#M0 zlCL_>!stNtkaDNdasTh{P!)iH{FNIsG(ToguaWYD&4jfdatp{j5NCw;bq{Fu@G1%3 zi)f%V$uH~jtiQurY}Zf#tcnEniqyO2BB z+Cmyr%$p(Ex{s=P7hA(#p0y{Y!e6{w4Hs`?z~dop1FRN{*RIjX`96Vsyv1#DYPI*0 z*cVMy9nv2{-gLF|G~Xhe(|ns2`a1`qEHT44BH96i5&mxHNg80$P4&BstJ@CQB8?Ov znCvGsqj3(w?XhUu*dnv(Yi94Lc{P~>L&CAa`Fxi`wY15T+QLt+6D|UI|HL{^@Jt6x zl!osS4=jsoB)&+bT%+gmR3iFnOUEBPBINl96&|UeO6j;Hv>!Y?kAZRM0hUR&ZHC3i z{vG3raUJo%D+P6Tb4YXy=Dl&n&yX@vYWoa^qdnZkdC~Ve0J_6Tra!uQP>MC8p8~1?)!`367dP-OfW^s(v zoM0RUJe>dYchUcV47f;-E{)o{E$N#gx53=`>yEz@o00@3O4h(P@gp`&efdpoA= z?G_a})A&37@phlBFVF)qSeuNy0x=#zG#iZNfbAs~hDl7pRvr4`sWASbb9nV3WN@HE zhs543_DungO~dPe1A60s8)Ez%)O+rP7*Xm6a1?kPkr4sY8bq0XXJ#aP4#X@m%R#J4 zRO4WxF#fPWjOUAF=hWf&|731F6keegk6tP+Wv(?6RtfeVav#+Kmh9{o|q84+jMJBG>=%m}>mQ7#rsdBgNWb7$S0at6jWUrn}{cM;>wW z+Yre#;fNBzJcgK83G|+UU>G9LChLV(ieK+Q*vF_QZ>PcrcCH=8KlZ*>_;V=Z=gzUA z4;|{3zqAIC45JFO?H#}v!=_`+BDah;tN`#d<#qfv_(@Om4ywl5C)M0x^KdXe{yGVwkF<;Sr;U5=t5k zL4+5of1RQEUK?^ipaYfhlyJMi-D}d=?e5p<5mnN`5C_+Q{y993s-)h_XALAItdh@+ zi+S(Cwc6%p1aU9cF{RUn^JCVIfaknHJQIY60Xq&E?hq2_HHhUWC*5L>)951`#|^?J z37e&1;z!ik9uwm$)9h)Djh_A$;fi61`D5&ab`@#1->t&b@B<*BQlw_~a1tZy1$L47!r$CqT~@%BQMJCjaU6z7)*U6!a0oTyJ8T~M>r>crcy*qj zIw4Q&%nfbaXJV_eM+`26hg*s8Q5HBe0Yg9){7R)1UZrh?O^^|-;TOJco#F6> zV^RuhN0o@>mT(ZmTp_#yFwO!GrDX%6X%epJvY(1KRf_r~ueD&=)*n%-La0epw!v5C z3wOdYUigs!~(hQfF{>?~2b#HBAF)l0y=fD>#D$JC`+ z;*{q5P)(j*#L&+mI1tb891WMs=0%Bbbqv3_g2|S?SX7rYl@_C>Bv4n-zFr|*y z=~v9$FF!FEzWwN7EQlr_CA_h;PjfEd2X4KLrt;O<1bN(J#Ch9c8Pnn_u)9Df{AXsS z!Osd<*m%CO-KQY{{>pbL~;HcNv3sk17RQV%XNg zd~%a?Z4H=5SF>)=#g4WF_j1uZL==Dd&qLe6J?VF-T6hfd-6Y|9736rGtos@n=o!48 zPv!`E!+pNRMxdtPRk0(?kNh^9)>usaGzQ0C9!)|>xiAeDj&eW3N}K~B0MEfK9{qLpyv8&?KMD# zUwp!tY$d#QJRDZoytM!mvJte&)JKFkl*F!(fQ|nkOyhkKnh~zT9UBX^%igOgVsUw@ z*mGorbZ`)G8K28MBpz)@v>GH)5~k7u0U_5IUK$2*PmdwWj4GG{Rd)31N2xqmN0(3H z^has!j%Nc#z!)VwPB=>*u~ii{x-6uCUlZp?j-EDF25q4#hMN}%gR!mP%1W5z9v{bC zIEJ&;VRluJy+)xzuX~QBQ>?p96YybhW3d>U4X4rTsF(N-+Bk2p5jIMo^`z*Zvy3M4AjSN^p;_R12>#7Nn72tPFQ6$5 z0Dl5esqnqGI-P(zI79lhb`!vZn+jYxp35EI@|T3e*rJ|WMs<95v>cXL*e@dXe~Pnm z+(-cRsO@X1!f=~Okh_4_>X?-uLJjmLk+XBJ_Y$(>a|X}zca)Ue51fvj$*9)#yHn+^(VtL4X$kEP($yWfhg^S{SZ|mgGy*8 z?rmJ#H)lu|ezY0BNaL+fkBx_^H5~!iinO+@@C!v^YS8|F^9 zs6jfDDAI>;Oi5Ie(TP-raXIc`K2Wt!V#XXjxEOL%ck#$`0gM}(V2=#KB^0{XF*@zNIh&bvE;UUwZwmP`q?8?6LvWC!Ssm8Jcl7->rmS0&XeBnn6{L zl}X&cfM?%O+8Unfr>-u9jg9s27vRn)YHgDs{%;`tuHy)Lp+lJ!4xAU!Hvgb{5Plg( zF^vhgi9niXTfy6p*Lij}?jxgAkIa;Hajq-{^J51sgj*f$LsKa(D6osbjob}l`ThYX zW%1-V<|fWylRQApDgv-Q;&6{a<^zc51(17>CQW}t$;bDfJD zZH{tvwdjSXcsEQZ=~` za@{37@*#k4yl$LTeixv$0jS*p+&|<#F{9_%AoDzka2sO%v}2(Hzs`MU3Av0TX{t5^ zCR_jC(bBO3f|a;F3t>Eg+B=TN?HI~X`s9G71gJ?Rau>0Av%rG4Ac}JWAxIUg6Fa-R z36tXQYe>-oZt*tbNs)21XUPsNA1<&M*XV^ajfyr4BDBf!xJ(LJf21D9j+SXE%@%SQ zVs?6JAsA!AGD+iJO`2k9w^vmskxp(yFg!LH#z#hwc7$j^4!3B?qx#!P-NwoB;2Pyu z1LoOaEsMOmJC$aI?MdR2@XPr)7Z2Ca=exgSom|ZfL=sy{YOiu)Tw|{HRT5T0TBO}X zJ76hDVN-=ilR!c>setHbtK=w`!Wi-9<`y;}48zJF+mw)}9g#JvfjED<>)Rw@OoC{Nou|z6hYcOu!n_GCFVXp;bhI?!tpB}F23rXyFAU&xoeLd zbKLbfrfeaZ1nM@|>V0!}WyCi3F_7)@!)g4*^>(q_gK#%dDeWkyI&ORWRT3Gt0MIP9 z(J0ik!fu~O)_P?KLI6l8l%Z)`>VSNr2(97%nK4QJZiUr0guAQ{ri z0f0mTTaY>4^a2Zrqv_EdR6s&Fmr!ZOHc{E&%ty2~IVSG=4Z6y`5z670@kl<6!=R}u zjJq{Qf7vl&Qb`u=0a?!tI;9Qf=v;sYb8@O1OYemHcU}Xe*z_dv+sh@3wvs6hhif-J z66WU5z=e^J2=PfoEj8VtXQqx2pdrhb`_R@%fDBq;62!W41E z8BCKgvam*&WQ{d^oT-N=P*s2H?gRV@c;At_3a32ZKO(R7O&mB=Fq0OQO(hzP^$DTP z%+7>Y$v*pwuYWI;VTRU5j*}*+UuAoTUBM7yGc#mVF~>*u*TX&zu66Jgf;Cifx6^qNZ_JAeeOfQ)dW&=}xGIlcr&xtQ_%J3<7r4jiCZI|uJ&~%~B9e!Wp(^il zs6N_bO4~U8I48L^fm^uSI?kZ?PtS&jod4RwX!y@i8%q?5J|cx6aVUD^zjF<_foeulC2U5R8;>QD=N6(P;HT;)jVTc^o+jMSYwD3c;CE#OM`|rYdKFZpT zGOqq2lmKiicCU^PoVav$wuo}Ncv zgJCw%fL_KHG)W+u4=|3{2M5#}0!I&sr#@WX3qSYcAERXl4atDbZ$peUGEfhRCc`cQ zp@d)JGOF0W)%a z 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 PdbrK*J$Ihi7MjHW)ybB8UO9Jo+8 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 **Note:** The free version of restdb.io has a rate limit of 1 request per second. + +#### Option 2: SQLite with PHP + +1. Ensure your server has PHP installed. +2. Copy all files from the `/php-sqlite` directory onto your server. +3. Ensure the `.htaccess` file is included as it formats the URL into arguments for the script. + +> **Note:** With SQLite, you get a lightweight compact database in a single file that you can copy and move around. You can inspect the `.sqlite` database using [SQLite Viewer](https://sqliteviewer.app/). + +### API Usage + +- **Get Pixels:** Send a GET request to the `/pixels` endpoint to retrieve all pixel data. +- **Add Pixels:** Send a POST request to the `/pixels` endpoint with pixel data in the request body to add new pixels. +- **Update Pixel:** Send a PUT request to the `/pixels/{id}` endpoint with updated pixel data in the request body to update an existing pixel. + +### Running the API Locally + +- For the restdb.io setup, no further action is needed as it's hosted on restdb.io. +- For the SQLite setup, upload the files to a PHP-enabled server, and access the API via the server's URL. + +### Additional Resources + +- [Restdb.io Documentation](https://restdb.io/docs/) +- [SQLite Documentation](https://www.sqlite.org/docs.html) + +### Contributing + +Feel free to submit issues or pull requests to improve the project. + +### License + +This project is open-source. See the LICENSE file for details. diff --git a/Pixel-Canvas-API/server/php-sqlite/ database.sqlite b/Pixel-Canvas-API/server/php-sqlite/ database.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..26ff599655caa201a8789204e55853bec011b7e1 GIT binary patch literal 8192 zcmeI0eQe!T8OP7dy|?$}cg_VI)NxfV8^w-pFxIVm5oO)DorA4xvPAhv3>Q;{msUv#z1}Bz~-&J14H#|8bkHo9nEVu_tUjo8~x3teEQVn%wRl!o;vjJ z>i&_#8z;vnr|ZqeU^CodNuJgsr~l|zq^SR)PwQ6zZ@MLFeW8{EEeHNP2in|DxgD=EeU8ql)9PjQocgKymU={;RG(1C)uh_3wyO=QTV15iRRwukz9gTO zr{t6JA^92k5qY~DmDkHY*&{EO?XoETF8&~%6F(8(6c3Bf(L-N%*mZgOmq$&P7B3Hn zT?;NoUIT86yc%3s+!qep1I`os8`xFgT;!Et9k1^Ot2s6+h)cEjV{XRB(w z`ZBPMd@0yOUIxx0F9la3cY({1F9Db0x25+oazhm(cY@m@zZ2}M57k}_&d2+8fOC;A z0>|>~VlY>~h`3Z^ypXV%u$~tsS&PM+3j)U4%{v0d(#_ig#>&mx0>;8kEnuwMoF6bQ zx>*=7uDN+@z_{e5Jz!z3CUaiESh6`cV650I2p9`CZwVL+%+4V!)#mP$olR7XWX{Tq z;_Ird2IOjOK(5vV`|1O~56pY-^QCx7>SyZP>MQDgb*H*R zjjA0q{oQJjI$KHk7x}#Wh5Vj;RGyS~$s=-14$4iG`yFzD)Z#Vqd-06;p?FL@AnvAz z#lt$}TAAm{A=t`1SPscnMy^vYIz(HU?RChuGW+WgZe=#uA>HDF8;5v{Y#rqr?Jgzu z*ipiHflYRlabDp4#Zk(6fo*n_b6(&sbCh&m;30FAbzblpANB}GY3BuQG)H;o1@1IQ ziRT4wHAk7}1@xMCgHq26$qmXqFC;f8`Mkhejic;3e<^_z5$?$8Ugru6@vdRl#7eN}xyeOw(?2hn%lO2CfXFhijRM~xvkZLm0z%8g)Ugh!W#UF`9b(JGw<_z9TPAHR2(GyI8i(YH zY#pL2ba?5Rx00LP%~bgOJ=<3L!qkx-JMQbS{CALT3qt=!Vb# z#q#ku|KHV*>XZ5|eMFDF;rxG1J)rJZ$JDsG@r~wx{%E)8f8c;UfkdjN#z7=iQ{y0$ zs;O}hO4T%qNTq6O9K=#JjS+IGn#KshRE>>e9g?Y<#t6|=O`8g`shYM}gi|$bu}G(C z+Efrv)ig%a)UT!Ve-G{uago`&snE|hxiJYLxp5Fea$^EQa$_7qa^qGA$&CXLk{e?X zk{kOWBsXq>klYxBklYx7klfe@A-S;^LULmd38h-B&A4IWBC~b7!v!X}u?s@H!n&Iw HL^u8g+?WHU literal 0 HcmV?d00001 diff --git a/Pixel-Canvas-API/server/php-sqlite/.htaccess b/Pixel-Canvas-API/server/php-sqlite/.htaccess new file mode 100644 index 000000000..a5d35dd23 --- /dev/null +++ b/Pixel-Canvas-API/server/php-sqlite/.htaccess @@ -0,0 +1,5 @@ +RewriteEngine On +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule ^([^/]+)/?$ rest-api.php?file=$1 [QSA,L] +RewriteRule ^([^/]+)/([^/]+)/?$ rest-api.php?file=$1&id=$2 [QSA,L] diff --git a/Pixel-Canvas-API/server/php-sqlite/rest-api.php b/Pixel-Canvas-API/server/php-sqlite/rest-api.php new file mode 100644 index 000000000..8b47edede --- /dev/null +++ b/Pixel-Canvas-API/server/php-sqlite/rest-api.php @@ -0,0 +1,177 @@ +exec("CREATE TABLE IF NOT EXISTS $table ( + _id INTEGER PRIMARY KEY AUTOINCREMENT, + posX INTEGER, + posY INTEGER, + hexColor TEXT + )"); +} + + + + +// Check for valid API token +if ($_SERVER['HTTP_X_APIKEY'] !== $apiToken) { + http_response_code(401); // Unauthorized + echo json_encode(['error' => 'Invalid API token']); + exit; +} + +// Function to sanitize file or table names +function sanitizeName($name) { + $name = preg_replace("/[^a-zA-Z0-9]/", '', $name); // Remove non-alphanumeric characters + $name = substr($name, 0, 50); // Limit the length to 50 characters + return $name; +} + +// Get and sanitize the 'table' parameter +$table = isset($_GET['table']) ? sanitizeName($_GET['table']) : 'pixels'; + +// Get and sanitize the 'id' parameter +$id = isset($_GET['id']) ? sanitizeName($_GET['id']) : null; + +// Set up the database connection +try { + $db = new PDO('sqlite: database.sqlite'); +} catch (PDOException $e) { + http_response_code(500); + echo json_encode(['error' => 'Database connection failed: ' . $e->getMessage()]); + exit; +} + +// Handle different request methods +switch ($_SERVER['REQUEST_METHOD']) { + case 'GET': + getPixels($db, $table); + break; + case 'POST': + initPixels($db, $table); + break; + case 'PUT': + updatePixel($db, $table, $id); + break; + default: + echo json_encode(['message' => 'Method not supported']); + break; +} + +// Returns all pixel in the table, if table does not exist returns ´[]´ +function getPixels($db, $table) { + try { + $query = "SELECT * FROM $table"; + $stmt = $db->prepare($query); + $stmt->execute(); + $pixels = $stmt->fetchAll(PDO::FETCH_ASSOC); + echo json_encode($pixels); + } catch (Exception $e) { + http_response_code(200); + echo json_encode([]); + } +} + +// Takes array of pixel data and inits the sqlLite database +// Then returns the array with _id +function initPixels($db, $table) { + ensureTableExists($db, $table); + + $inputData = json_decode(file_get_contents('php://input'), true); + + if ($inputData === null || !is_array($inputData)) { + http_response_code(400); + echo json_encode(['error' => 'Invalid JSON data provided']); + return; + } + + $successfulEntries = []; // Array to collect successfully added entries + $errors = []; // Array to collect error messages + + foreach ($inputData as $entry) { + if (!isset($entry['posX'], $entry['posY'], $entry['hexColor'])) { + $errors[] = 'Missing required fields for a pixel entry.'; + continue; // Skip to next entry if validation fails + } + + try { + $stmt = $db->prepare("INSERT INTO $table (posX, posY, hexColor) VALUES (?, ?, ?)"); + $stmt->execute([$entry['posX'], $entry['posY'], $entry['hexColor']]); + $insertId = $db->lastInsertId(); + $entry['_id'] = intval($insertId); // Add the _id to the entry + $successfulEntries[] = $entry; // Store the entry with _id + } catch (Exception $e) { + $errors[] = $e->getMessage(); // Collect error messages + } + } + + // Check for errors + if (!empty($errors)) { + http_response_code(400); // Bad Request + echo json_encode(['errors' => $errors]); // Return the error messages + } else { + echo json_encode($successfulEntries); // Return the successfully added entries + } +} + +function updatePixel($db, $table, $id) { + + // Ensure the table exists before attempting to update data + ensureTableExists($db, $table); + + // Get input data + $inputData = json_decode(file_get_contents('php://input'), true); + + // Check if inputData is not null and is an array + if ($inputData === null || empty($id)) { + http_response_code(400); + echo json_encode(['error' => 'No JSON data provided or missing id']); + return; + } + + // Validate input data + if (!isset($inputData['posX'], $inputData['posY'], $inputData['hexColor'])) { + http_response_code(400); + echo json_encode(['error' => 'Missing required fields']); + return; + } + + try { + $query = "UPDATE $table SET posX = ?, posY = ?, hexColor = ? WHERE _id = ?"; + $stmt = $db->prepare($query); + $stmt->execute([$inputData['posX'], $inputData['posY'], $inputData['hexColor'], $id]); + + // Check if any row was updated + if ($stmt->rowCount() > 0) { + $updatedData = array_merge(['_id' => $id], $inputData); // Combine _id with input data + echo json_encode($updatedData); // Return the updated data + } else { + http_response_code(404); + echo json_encode(['error' => 'No pixel found with _id ' . $id]); + } + } catch (Exception $e) { + http_response_code(500); + echo json_encode(['error' => $e->getMessage()]); + } +} + + +?> diff --git a/Pixel-Canvas-API/src/api.ts b/Pixel-Canvas-API/src/api.ts index a031961b8..65c6b8b12 100644 --- a/Pixel-Canvas-API/src/api.ts +++ b/Pixel-Canvas-API/src/api.ts @@ -1,6 +1,6 @@ // API key here const apiKey = '6518855968885408010c01fc' -const urlRestAPI = 'https://goerliplasapixelcanv-9b7d.restdb.io/rest/pixel' +const urlRestAPI = 'https://goerliplasapixelcanv-9b7d.restdb.io/rest/pixels' // Gets all pixel from database via GET API call export function getDatabase(): Promise { @@ -37,7 +37,7 @@ export function initDatabase(canvasWidth: number, canvasHeight: number, color: s const pixelData = { posX: x, posY: y, - color: color + hexColor: color } pixels.push(pixelData) } @@ -70,7 +70,7 @@ export function updateDatabase(id: string, posX: number, posY: number, color: st const data = { posX: posX, posY: posY, - color: color + hexColor: color } // PUT overrides the pixel in database selected by id diff --git a/Pixel-Canvas-API/src/factory.ts b/Pixel-Canvas-API/src/factory.ts index a20c1a031..eaf9dc9fe 100644 --- a/Pixel-Canvas-API/src/factory.ts +++ b/Pixel-Canvas-API/src/factory.ts @@ -90,7 +90,7 @@ export function createPixel(canvas: Entity, posX: number, posY: number, hexColor // Write pixel color into database via API executeTask(async () => { const updatedPixel = await updateDatabase(id, pos.x, pos.y, playersColor) - console.log(updatedPixel) + console.log('ApiResponse:', updatedPixel) if (!updatedPixel) return // Send new pixel data to all players in scene diff --git a/Pixel-Canvas-API/src/index.ts b/Pixel-Canvas-API/src/index.ts index 0b143a015..1407bcdb7 100644 --- a/Pixel-Canvas-API/src/index.ts +++ b/Pixel-Canvas-API/src/index.ts @@ -1,6 +1,3 @@ -// color pallette -// Screenshot! - import { Entity, engine } from '@dcl/sdk/ecs' import { getDatabase, initDatabase } from './api' import { Quaternion } from '@dcl/sdk/math' @@ -54,8 +51,8 @@ export async function main() { console.log(pixelData) // Fill canvas with pixel from database - pixelData.forEach((pixel: { posX: number; posY: number; color: string; _id: string }) => { - createPixel(canvas, pixel.posX, pixel.posY, pixel.color, pixel._id) + pixelData.forEach((pixel: { posX: number; posY: number; hexColor: string; _id: string }) => { + createPixel(canvas, pixel.posX, pixel.posY, pixel.hexColor, pixel._id) }) // Create color picker diff --git a/Pixel-Canvas-API/src/messageBus.ts b/Pixel-Canvas-API/src/messageBus.ts index 978e07c59..6ca9b31b4 100644 --- a/Pixel-Canvas-API/src/messageBus.ts +++ b/Pixel-Canvas-API/src/messageBus.ts @@ -11,8 +11,7 @@ export const sceneMessageBus = new MessageBus() // So everyone can see the most recent pixels, // without calling API all the time sceneMessageBus.on('updatePixelColor', (newPixel) => { - console.log('MessageBus:') - console.log(newPixel) + console.log('MessageBus :', newPixel) // Get all entities with custom component Pixel const pixels = engine.getEntitiesWith(Pixel) for (const [entity] of pixels) {