From 015dc20c9e519c60a9c4012b02751886f89c1b62 Mon Sep 17 00:00:00 2001 From: Oliver Wallisch Date: Wed, 2 Sep 2026 15:28:58 +0200 Subject: [PATCH] final first push --- .gradle/9.5.1/checksums/checksums.lock | Bin 0 -> 17 bytes .gradle/9.5.1/checksums/md5-checksums.bin | Bin 0 -> 36897 bytes .gradle/9.5.1/checksums/sha1-checksums.bin | Bin 0 -> 83723 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .gradle/9.5.1/expanded/expanded.lock | Bin 0 -> 17 bytes .gradle/9.5.1/fileChanges/last-build.bin | Bin 0 -> 1 bytes .gradle/9.5.1/fileHashes/fileHashes.bin | Bin 0 -> 18747 bytes .gradle/9.5.1/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .gradle/9.5.1/gc.properties | 0 .../kotlin-dsl-plugin-entries/jar-entries.bin | Bin 0 -> 18716 bytes .../kotlin-dsl-plugin-entries.lock | Bin 0 -> 17 bytes .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .gradle/buildOutputCleanup/cache.properties | 2 + .gradle/vcs-1/gc.properties | 0 .idea/.gitignore | 10 + .idea/compiler.xml | 6 + .idea/gradle.xml | 15 ++ .idea/kotlinc.xml | 7 + .idea/misc.xml | 7 + .idea/vcs.xml | 6 + Kidio_backend.iml | 9 + build.gradle.kts | 24 ++ gradle.properties | 2 + gradle/libs.versions.toml | 10 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 48462 bytes gradle/wrapper/gradle-wrapper.properties | 9 + gradlew | 247 ++++++++++++++++++ gradlew.bat | 82 ++++++ settings.gradle.kts | 22 ++ src/main/kotlin/Routing.kt | 13 + src/main/kotlin/main.kt | 5 + src/main/resources/application.yaml | 6 + src/main/resources/logback.xml | 12 + src/test/kotlin/ServerTest.kt | 18 ++ 34 files changed, 512 insertions(+) create mode 100644 .gradle/9.5.1/checksums/checksums.lock create mode 100644 .gradle/9.5.1/checksums/md5-checksums.bin create mode 100644 .gradle/9.5.1/checksums/sha1-checksums.bin create mode 100644 .gradle/9.5.1/executionHistory/executionHistory.lock create mode 100644 .gradle/9.5.1/expanded/expanded.lock create mode 100644 .gradle/9.5.1/fileChanges/last-build.bin create mode 100644 .gradle/9.5.1/fileHashes/fileHashes.bin create mode 100644 .gradle/9.5.1/fileHashes/fileHashes.lock create mode 100644 .gradle/9.5.1/gc.properties create mode 100644 .gradle/9.5.1/kotlin-dsl-plugin-entries/jar-entries.bin create mode 100644 .gradle/9.5.1/kotlin-dsl-plugin-entries/kotlin-dsl-plugin-entries.lock create mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 .gradle/buildOutputCleanup/cache.properties create mode 100644 .gradle/vcs-1/gc.properties create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/kotlinc.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 Kidio_backend.iml create mode 100644 build.gradle.kts create mode 100644 gradle.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle.kts create mode 100644 src/main/kotlin/Routing.kt create mode 100644 src/main/kotlin/main.kt create mode 100644 src/main/resources/application.yaml create mode 100644 src/main/resources/logback.xml create mode 100644 src/test/kotlin/ServerTest.kt diff --git a/.gradle/9.5.1/checksums/checksums.lock b/.gradle/9.5.1/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..2d137e228afa64a9b760f0ed5faabbb432ffc31a GIT binary patch literal 17 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 literal 0 HcmV?d00001 diff --git a/.gradle/9.5.1/checksums/sha1-checksums.bin b/.gradle/9.5.1/checksums/sha1-checksums.bin new file mode 100644 index 0000000000000000000000000000000000000000..c8caa264f494a783ecfb9ed46492d2bae6f757f7 GIT binary patch literal 83723 zcmeFac{J7C`~QEAdCHJ7BuNq(GbA#F29a5rGG!)&C{w8nnWxAQk|blIfeKM1Lkdwc zREU%`h-CV`UT5#~dVk;Nc(3(Y*8SIS-FvP3b-JHjkA3ZZ?Y*yky^ikgy*L~f>oRP( z|Frf0`Q^XA`ZogqM&REF{2PIPBk*qo{*A!D5%@O(|3={72>cs?eRzi?wq1Pf5CDJhugt~!{JYd(5%hAY<94T@Z0#E zk;I=LgsfNC`Jn#$Tc8VSWBRb{8HbD9>;xTmG8WT6J&?L{HN+FxOAzJdkO}RWX*mZ& zV1L?-_#5X;_kS5V#>4@1J2gx%QM}8oo|p;ruslqEAhnx{lbaFf5xkf_dH!l<&4Gsm z9nTR#)I(WJlOBB3vIX|nDKXuizwnCEn;xJi-N*EzqBU=1&zgaLr2f-S<>uKMogo>Z za|aUb!*=BM-RJ5DI_~xqrVs6zYuspjAM|fFN7TdrnA%3AOYbIB>=gSLVf5i>!=a$vyW84n| zfu5y7)T3?>+5Hl7?*e)VQC^O=4sBFZ;(>ZfG4VH|+uWttmv8j}`$%lPqF+V$&ohP^ z0Q~|F(LPp%UQT9EQ4#1j6*2vrzE&d5=d}bKzipnV$1Bo~#w<{Y0Q;-%m|nE`-FV>} zJz&3`6Vq!$j!$cCIRWhNVDX8cu$okpNKFB{b}rFA$!Pz2<->2XKtG%*nBGxtEkgt*m@ALIt(#N}i5Ssc+_2O9nBfPLXzqJ0+s zVvz^$77w7`sK<28mnW=~9wT=U+O&xBa+ZVay}@&n@Z1@S5`QDBPO8+1J!O($ju$+K z>3v0EeoCBT1RZywhN$P*+I)T6m{be&2qR4Qe(HKP_>lzA{b(^g@n*r;)r<{5&%2E2 zAH>?$7gi8%O&nfakEmZ|jqF^WiTF*h$4lI#1?cWr z|5v}>&p3a4(+!}X4I|p;GM@XZQ9tt$=mx(r-FjDRzD>9~LC5o8@yTuPls~ZbC3@8( z?ZjcC{WVXXo1!o6_7P;fbPA?N{k>*65)9+!#zNGuGj*Ozj$#0L0Oz5A=~hu~_v?z~ z3H{)LUlaBGhqrf#=x^BxbaP2e@39gda4m!RP zE|^{-y%z7_a*Uwkx0qmhmDh5^-D`d<16^H;XkS`(-b2>d7UoF< ztUfH;ajs<6?*2Tm7st+5S>)*P?MFtzeSw$9@>p5yr3o*CXC1(v7hB)5CwGnK=PrVC zjpsi|^jr4a;O3;QXF0(h=U|EH{bijEu?qu0x5DnDTX$G)`LwVL0^R5x(f-z*kJ=6E zUPJ)h9y=H1j`QD!ztE}y-C~Gnf7{M2g1c|&3D9$~^Lsn%=I~L6wvl3>M;##AS8jMe ztGJgM-0wKYTuhIR`n|n~?+~!}xr^xq?~mmh)rAmr{60ZUzkhaIdqX=oN4O%aPN?kZ zdin*oRsr-=$WFAsqaD5TW6s5|pdVphOt+leLse$a3G7Q~iTYjI)Lk}tPH;RnI+(7^ z;8}I~{VQM}hxLC?!Z7uH&Ej>Smo*aY@7Z`9I#zfy3FroqnC@`nr!HrtBhWpueRZ!y zfKH=w4y-$Vn;B;R)LM~)dgBtXkH+%ey=h-lJx*rWzcCi)`;<-URbjobpDp~ve(nqD zG;wrsz&sq2j_FF1_IFAuvk3j;H)470zEASUopn5WfnVcb%)T#7?$_uOxUWilh2n4<;kx5Z<6pI1olnxzk*e<<9k1Sn>E*{;t%M!{zxbWleN;Q{ zlJP_I_fgP~8n#dBjLPDIE9by_8D6!J*iW5ZVcSL~DkoqsWq|3gu5^xyRstOttBC1c zOVe&?2VuUlaw6)FY4aike)dIzd1>#&bTeV8f~{5Xz7}I7>h(?grIZ30LB7SSV(U`h z+f$^LH6{l7$=Ob{Z(uvKj@g?2I~eDl_5aat+KTsDgL?rl*N*A?HFMo~D?mMfJEe{3 z?{pn&=%3kue#C}}`V&rd@5)CphQM#h5K(_B7Cqn+x#$ISof@Lvh}-eauwG9Z=oca| zz3IEC%LxuDpgUvnZ2Yi(r0Z`n$Pc(f*t$3C4sD}zZU^gyJEKPIr#WfpN{Lhf%va%o zn4Wj`hUf2HwS@lhGT6Rt?lSB?cJ&^}V|XbnZ#?JXFrMC|2J^5lwy&NG?0MaJ_5COq zryaJ>pF3qrmEElZbpp=(KlW#(9!Mo7z6bXCmBjHpPgkFL!fE~n=;>HITQax0yRV}% zBk1_;Iz;=HAC<~g4lhN4eYq-8Zsj8t4fQnEuev|K;&fP+#HsuzcIv@u$<9 z&wvZq8?zDZ+Zx&wD2__QdnAw((|^}eDK|?lg7FAp`?lTr`rp=xwV?jQSz~#l-6f%d z#RL!DU+{9G#D3b-Vtn1aPqG5PS!*!8NFpnx{Q3dV|2ix$wGW=plrCV}19V>OeraF& z#%2;+3-$F_-g}|=_((S61V6zZciDp2|BGiWdvE$$_yXOg8q>#He(?EB;(;DrkLj~K zE#+$4(+N6WiifCoh^R>2&bNX4xg5L4JAA9|6gV?p0sWku!|X3M2hY7$jRm^9EvDC> zEob4nvVa33?rCE2X?KAhVo4m&E9$M;2|E?Rdf`=l zFrDe?L~j2^xPKgkF#StRkiX_jkgsr8usqhOt$9ZJvmdO-j$r$+(@&(O_|4(Jz;DqL zVn3b1j3w=H&JIAgp#6{j$J8LJ8{{!u{%4}zrF&4ublnS>4|f`2x}|yn<<5o8pq~P9 zOn*94?Btcv26SC4Pj(G_#tBEM66^4XMEh>RhTwhIZ$AR|L5W2DHOsaIy9wS|pc~X- zI{Vkj8fnE%1Rc+X<(b#x)V;nl*Wma=o)hhR)+$%meCN*v{n&?LdYzzO;|3L2x9Ghk z>b;yzOAnPk!(7Mvs8;b=@hFK~;dQ~>NZ+>OJSUi7%!VQso5@N0+V zpEruuyAJMrYXo$!4x;^=Y|kpyha+o&p23ajIcxL%yFB22NW$)mH*c?4-eKQE3+$67 ziS~Uu+0DDDM-CEnyzFgEf0=YLbM%ltu=m8yd*95uuq)MEAphVlIT7vO@>@A~&(Of{Nv>i0;a%mmH%*LZzonBH#w*p#_v9q7k(7f~Njy|CEv`6%4afm4`nzFB~cJi7RI(Om}C=l)%o?jW|ncUK9<(AkT&4d$g-K=eBja`;41nnoiSXJ#^{KZ^S% zQl|v!ZM=#kQ6I(4<7>M(wSoP4?4BCs`~KjxX{Za(Pu<7t&(}N&JJ1U53!Hm9rl<4O zWp*+d0{de*nEoxSqWANOLZIhi_Mdz&CuBcZR|51%Y`&i^j!7?`i|Gb>unV!DF%3J1 z+Ud_#1Rbw*5YtBt6V<||bAbIx6QVxuQ}MM<=0Oe6^RRpQ^E$uMU$||1fbN5xqtD0L zcF6{2!Ms$lNbKjcPl9CVkdHdB55eO3Ie#`Zs7g(NpyTDR`)-2qveCVhTd0BkVLoC% z6I&#{9?6yh^TI1*_vXamB$HRdTCTwUA{L*CxXUStkFM_mx)$blB2lurw0@2c=&tTq z{~d0QDsH2uKu^md>R%R>BSvEccLV)&JW>C;d7s@HgIV}q8HVNUuluKalfL)^9WVX^ zvya%bSs*BB6!cT^4AZ03?^bKM!8+<1FQ#XwZp@2m1$h9!_X4ID`D;05H$@Qo!7E_- z`Rh+t(O2iK*+Bo ze*BjGExzu>$uB@Zb&lB2x17JPe@?c;bCH0ZyKgP^5_kMX8$kb@)8(fEEa!b-eNsA!=`UXh&TPza1NIWw zz5HEf#@*|P6qqm00o!lin=b2lrF9c5KR>*WPXBH>1@}+oYfO**b#bHKIeyST z4|XnoiXU5}_Ld8t)2moM|G9gi??CsV1%f>;-~+LrpUqA~<-(1;K#v_D>c6O8i`eEq zgL%~yJHNkl{w^?RJbw%9Gr}kRW2n775$F#GRUSX%g% zb%4EuC8jU?`%}|qJqP{!uoLxZ4Mo>`*~Rd_PVvQb&CDpXrAx-o*jzIk5dd)5GlW)^D`g0)qfw)g>|4J7N1$o#;xj3 z63U=|3m;G2L#SD?nm1$Upe)*g2i`&{T7>g6~r}k9S1-KPO5i z`wGq{XZvQAbXa!2)u9Nw6M6%4c2D=F#84XYkn+lb2Dn$& zBifPd3-@7;HKvR5GpuiX(FW`fjbge)(XoXbZg_sZ(lK4${!q~-WB7e$vH+&LeK`>s zGPNJ{Q#Oz3r#*VCkME}<=y>@`qP{S8?Au-YBygYNx!w}>#TPr;m@}Q$gMReKFn!$6 zMa<`W66i+;vtMHVwB_!kGx**HcM#kEOX~}ssS3Z?3;Wqe>}TmgRzf%ve80nQ;3ewI zdz;QP*`)b^{&#m^y3bC!nk=m$(2qTqZWN#lOgK3 z9jd!sk1Q7e-Gmy`4@L#oM@3lx-4NTKxDuV8srPe*2s(b#EN1`P`fsti6wIHJxkR1# ziNgsXxib1N@!#e7Qyn`!2ch4>vzR`7>z(4w9{4?EfGSZ}D6zNI)fAZoCcNf zpUZiJ^}+>X^HP`!8n*O%{utQn7!d7uJBB6g)=-4|=R`fGj}Lrtz0NZR>~HH3b;XT# zKO>{|fqCJwuzjd_#>0@N{6`+JFI|t>|I&YX-}~VMpnEG4b)}K77SA10Vf_$@^{+JJ zk*1NM3hzyCEN>{kniBUtcOCjQ@gnx4V#Mpru+N?k^j{W_=|wClN;aG@|CgS_^x_+} zStXmafPGFYrVr4bX1j9>*4s8%o>7fElD6m_u?N^+!PZfA@P@!W~UEa zcUjH`)|1Cvh`Jh^@tU=Y1|L8_)>s}^v%IwHzR%rfK);%Y*`Kag1eN2AuGqv39Ku?{*>_0PK3N%+~2KpflqOPH6 zofoP03f^m}*t%#W+0An-{)YXeVe{H6r0WuJ!ngwV<4^2oZ_%8j`Ey2gpc@!r`d{vQ z0ukP~fnF?0)c2`W6}^h3hx^A9%eVXP+*Y`$km(ETHPwjr2V~+6XilF3GS2NbQP=d% zo-xc+g8SqoKT+2b%YPbcPC?u!SU%KR3`^pD;0)h4eI1DQ+WA2iWnPppFZuZp^+P&& zmO@jf;Q2a_#qH2(E(U*QxsPB#ht^>B3EG>Ul$M_ZdJLAYbTsP4jWTiYeJvTw!@9;_ zHVBs(!hLv9kJyi%^xgj4<^_;vaJQT={rH}xYmPy8LH`%AyrjRbPToD2m>`M1yL&eLxQqB-$HA ze|OHh@K6cpq1%bNvF@XEmjY#&KegS6`r-IjvkdooVSbLq^6lZ@=hJ*uKEr(#WP#cL zb-(=#H|GrdwDIr)uO4=X=hyicrngsaEn;7U_nI9x{-au%f9m69TY%rhLZZFp zsn;{?FLgEmJ(DOeTfG#F_loN@0lJkG@i(j=az&Lo?+XBW3D%GG^W~>U=M!L^V0xBl zZ?kFOo3&@30I^<&F#*Li1T2PM$`l!^AXOF|_}S{#Rfo`vOyW9#@fGk9jeI9PQN z?T?8ITYYVs8U^-=SU<-S7WmrJ1Dk;EG)lC$yFFiSai%zsQh2kh-m z5p@T38~*28cy<8Y1>2tv9?vpvaLi@_J>wx}Uyc8@zx)u)57B%?-LdV=-(15hFwbAY z#_!B{CZ>va`WWaZ9LvMbGD^?qg{xSBo*Yl?$EC|@Xz*LoYoMRO#_1aHtLBa^2Rttq zMTz#VB{nlpB?KIRy{{yu-{IkB?tIt-^fEI{f0fnalyeS8h8QItKSEF2HHXZ0X5tx2I)N>>0V0{&e zoeMvUyCS=q%2I*f6VXI_zuKgZ>RlNyZeiGX{QCQsjg}4_1okPaMEg@rT1Tz?mlS}0 z7CSGeydur^41Wdh*Eq|0qW$Tu)h{3Z{+bEw{jt2^zrD-K)8mvJ(9aAL?fnnXUydB0 z4+Q$9|Jb+Q-@rW;XTTy*>miGj%~x`fXTwAI|?P= z16>P?XQ173W#yIeG@v`~B=!@y_<^xFFHIZhme~0UI{hScxi*j<=&=Pv`=Ic{L30LG z89)!f_Ek{zjh{VwdN2-g*!l*$`Csin?Z^S_Z7qoX1jk%t6o`&<0(vTTUV?uo1oLG{ z!}=jjhG>6AVNq(zfhP#q7h(6>8GE{h`J?+b0^P+Lvya(Y_37#-W}x4|_QTm>-mqMu z&;g*E#S-m_pU8g?z=j?IbfXHQ|Ex=Vzu}77yTvUxTeF9`hA$r07WYP~UHsK!yPly2 zNTX;)9@75=Wiq(=1Y=sM^xcUO`lFV~F3fNA>w&N5Yy?+0ig|KhtD_1$KTFn_8ED3o z-1CT!m8$36u@$Lq(0M(Fw;IDDxv$kx-j8qTKT13@FLG)7Ihvf-9T|diF_tbyx~XTiwVS_YD<1 z8u@wO4*kWRmyn7E6x&yF>ZzRj?=dC%fv<&Tv~nGVej{d{(~yF7{020i{3E`EwYu=V zy`mPncj$kXGfVtz3tSroeW4>mLMW9(?kmXc8pV^p+cp)t35w8m+346LXu=V8#}gZtBCK`+a9xJgRwgPcpk z#c#i8aO0t`F)%OMbL74j)5jz18Mn==emUWq4yUIR z%9NCT4sZS-61dyIv~~Usq>xymjRD!sq*Up1ckdT#_}lsVm0vqBCH9=>%=-qZKLiLz z!%t2nmvXu|iqzXQUCV6bHtx0cVS9n>T0#sV#Z664>9T3}n)lvW7Ok(CmmC<5q@lIv zh13%Cg{%bW2pjJRio2g29$ZWvm!NR|)zEXy6XvMbu=-~(C8tc^PaiCCs&wiKb4yg* zcXh$Om<~Dl=m=jkL0_`u6u;^pQCZJ{iL9+rUUuJa2B=cIrbCJoP`s|>)VBR`Hc7UO zjrSLKhHeRTx70BRorRPLfx=H8BBvsz*^TzCQ~UVj&abT8iwov2sa)+LwTD3A23AP44SEkLSXVHx+d$`$k>$f)<~2NH$IU zH^n4HPSL&pyj}f^PJ`~#Srx(K#frCf_Ul3_68Pdr>qC-#Xms0KcYJ$&!SA5&)oQ$h zH|vY15i7z7lL5uD!U#?M_UGLYq}_e^5p~XRIQ#2RyY?%9>Uj?+CQou-#~aJ9Nm5*5 zZ+YT-aZO-<$wY}h^2USu>ID#P{|Z^OWx2MxHd+5P!|Oe#BB$l-6KvGKLJHZBXyXn* z9whUUuxd<-zn&{6sH418)#!Pk{NNinuU=&WggdJ8Pf@EI;p(EXy2$q~S9jYxk1LhO zuNOHhbj{w!+UF98;hSL)4GvB6XsnW|AI-@b*YTUU{IH=yiAmt$xdwF4U-=#71?zIU z6)K|Ml__LzyhU;_+E$_xjngJJ*YGuL_3OJeM6H{mc5BBCFt4|;mfaDDpd@=kHH-Zn zKYypv^bl2=P7xcA-vA@B7tnq9R*~QeM|Fans%ABv@OG`cTG4m8>{^odV=+_n4oF!* z3a!IQd|j_NAQOo9{tSb4WOty$*Jyy1p%@829?+Nb=)DFugr&? z%ZJ(K?P);KqLmSeufzWCy=~G7LPP$akLx;04L=r3ZiK!b14;rd$VsS5amB{wD`65# zhdAA5o-BTC{h&VuDVXOSa{no6q&#!|kRx&KVD{1HSsUfDuxo?|LL7 zd^o|_SYp1jfQRP5No^~cD(7^TQb-}OL>mni@*ttcLXba5RiN>x*NB_pvBqeeR77JU zLdBMfr=d3x(&&&g@PDL`z0r4s0If(Zzd!k1|Ks}RHNk$fd;ZkZo5x;9Zac)+c7ZBD zu|6U9^*<=om(M>-)l@|@fEG&YZN$EUFItSi#_(2;H!g3Jehb=OBb zEkLpTA*bRQiuCsQ_pmagDTy?$`5V*UeiJ!Q1YgyFVi+N({+BOggpgXvS3*s<(&IIr zjr!R}b@bcfWKP6bAr<-m>r0w}+?VCHxgN?*0W9@btz*Z>1f3(P^L{`I{zO4JX63&WcJo02_8?yKg8Xa0|S@dcfO%11K$!{{n*o$p2|B!-zF z8e$v%?-UXZghty+)TPl zN^|xRUEh>*iltApKX=(OOQXvizGb7OHQKx>kOv91BjjREm~+Fj?U#2d=6hymE!nOQ z0$=ZF2oR2Yg}0m4Q4E_O3$3$|7|lL475q)}Tz4@;94+((Gn*BJ?U-czEi1GqOrQ&ySeakSM6>Cw+PnT<*psOqqg1*A&#&NjBu+J`3TD# zyJHP@ZxEE;KC7}-PC5O;GhO6l5axyKVzlM05P4DaptY$-O{8K#W7rSh ziS#(geLWetzW;&y-f1s^o)e+S4;M^LYW6`2-YFZ|$*CXNErVN*h_{>X+?;1=vqhh- z-W55G1YcudUPq7qQ`G84xVmU46t3TLrFhBhfyVnIZW~V4#Sed50`nT+0`n4FVIPiC zFxa^%F+FV@U}NUw-(5P%>zo3qy?|2qOCF8#nWv9jHZZzq?K;z+`SjFjFMDqzNVx!N zm%~3rt!{*?i^hkf3(O)1r7vfw^n4ypqV4id{lf|8bqUOiLy&x4&$u@y%E8 z(+n@YRU^IbLN&F*?%VA?cRYrWZ(IoTg7=q+Ir+R^FsfDGGqY_D8=&|5c<0)04~_U| zkO~CR;6!sUNep)d{aI78tVY|kdtHo@_fh4JYK<631p{hL8ad@Qc64BiQ-ZHnO}IqM zrR>01zO=mmrs&nlsj<3f5w4L~S}XqQZ_QzsSa(M7r2jWXhhzlO5uTike|oK{J|Pd1 zXk^lhJvcrxQ4s$zNj%T*yi!pJmm8#zk)q9Mg?oA5?{8)O-2qE8CG+)DjVI^_j`LUk zH^rWapd`Mwc7#3eVmg|CZ8|o@Bl(SV^f3`)s0 zb12Ed|4`Ijrs@6<&=-7@viR~(QIA#LG`lDVNhodm!BctknxO)Bc|Y{^0*p}SF1fGO zQEE3m^4ALaWLN~{X)uh(jA+?kC&m!*iMEw0bA8XLq{KgXp;=)sI*wmUW!76ek-SdW zy_10AjX*w0BF|&uBl|S?i`liTCz}k}4rVb|)*~mMK+OS)2e~^*sr6s)Y&p*37B?gq zc*C-*mDii{I#Q$kztje_CMEH;x_Pb6*XmBn>UJ;3-i`VFqlsfw65T<^9befM(|2qJ z(HPnYVn}&?S{*=sbkV302q_LpyvLx#j z#=2u$k$(Be)U9vvnjR|c*>!_3iw;E+AROxza!SVYRPj&8Xx5gIVs?+K&4L$w2N5H} z2=4<*2Cdyle65aRGiK&^$fft?e4yS*w?mHNOvw-XpfBXxN3=0)Mjj--C8sVGl$}gty7sJpZTPPz1F_1I zXKIm}hCrcjHArJz;Wl4*og|c{w9P51R95rSN0tmcs|fO5LZD#YV0S`Ll6fiosH~Vi zNgv?see_ssQ$f$AVRYwGnq!6u^a!Mgw%HegyViiPVJPr-u>{;yk=$tZOQ}T zZC!;HMM#}N@U;ji8E0}zW$dO}+d*lM@N;z81*NWv=c>Za0qVmhKt-&O4{fQeEK021 z7|zJxsg>XN#y^*&N4^|FeSP2ul5x0g7RT8}>@A*X^fbK2x{apQ=b&?r8O9QAH{s!g`$r6k{lPK0VM@zann_dhLzU`Rz}-l%4K1@IqfD zz!#M+xi90Hqx-1oueKc!sH&?xtb8T=jv7)45k}YpsI%zKA~|0PZGBh7OkUvr=E==} zsyrELEp{qM+sL~|3;{<+Bi@Adi!Ytfa~ ztLOy%W3#YZiDxDqMsx$Oux@Uy^MsL~1tZi({+)EambQFaYSZrbML+uDviNJc2IEr~)?SMx{}=ab1x4|CqBN#bjOuMu$q zgyTvlr@~%*{L(7k%sSw5wtEunotGuAQ|D-QZ{C0{nJOv9EIe1nx-sRH*g>|C>r?@Z32Wliq7vJp`z4W z+P2f0=6IJIja8S6-B+vIv>*C91$>#J6*`Hp)lsxZDIaL#lZDj_Q>S88>x*p%CXjqV zm{&INrM*IBPOtL8kKw_wo=A6-=-$o)FaH{TAA{6GK*`0CkC4yp!?Bw*Z)8=JI^_qv z!%U5~`oJn>1YIYj^{r45t-tl-Z`spSInM9FwQ)A841JGwuZ6x~RVkN>pd`^)9ksd< z?(DYeJGo@Qt88;Gj<;m{m*1>(L`sCg})k_C(j_g|dj9P1N4LM@6BKC3Mjm zQ1EYH#3`d+ZIH}sb=2xcXdFJ9I$xMrbT2^tgY3=97cBwYNW{^-F^bmlNTa%sJV-|9 zuJLi=#do8QMW4PSKDrrE?9qnE>Jq3V0)(U6K~6;vy1O>9u??_4RJb;Laoyg=*rfzW z!M(Ajn4D_vE19@VbKH4bs4l6vl)DHv5DISHNDCobTN2b~{DG{)+g zzsInYc-LA6H*ZvV#piYEOd_Pv{EoD3qR4}U+W+z8YzOP-q6zJh{WFU8zvr2=;hpjc zJ^4tZA3z=?l+>pmqPwjwcuE#|+{pVVM*WHgJv#J$&p_w3DO!&>_(uP!oB-hsRydUx zG~Fq0b3I;+QgXr1rL(+UlM_aa#yvnqB$N9}FqW#Op6_ks7z`I-^Y1OTE>k!RM~K{+ zNW*)ruwK3|e!cLt313vuXtPx_ZH}xuH2MlsjRcBH!UOpviN@%CryYu&+)V+rKc)xj zD~-(7h1)>t4S~WFUc*SJ&I%d#gUaH&Lk=`=YZbEbbfU<*390u43a7V14Y0%->*3V$ z$&GzcUU02B_l1E(uQiaG0=_B?kxvp|G`fG*#h&eNd}oqq)lm4hvHXQI5^2IdME=As z+SVE&4-)Eid|O)m)Y+X3W`(sad8Rv_-!6F%s4=j6DI1WOl2X2xSCJ;WMm+mZZ8>Wkma(PqnK zW`VpP(-P`(K1qM;<=h|zZaqpTIdW>hdX{O#kT}IJ)ejq(LiaY-TEBtcz>IbO<$U8dHDEH};`*Mg3R56j-LVxU&*?W9~)~_e6 zUyyx=Mt%&O6o!#-a>~%lx5fP&HKS2Y_fwM_J?}Y>xiLd319gR?ie2GtbTZt1OslIq zA^cikjc> zBW4h?ee+s<@o8J6&LBhs-G9h0`8JSK{p*MR%;GDAz8R`~3E-R!Vx3r$M5$dLJ?#k; zHSWy+okCW5;(t?ezYge>HH2PSmmT4^ZfwrKf=;XxjBtD-fuhT#B=_|u=kbYYp+B1$ zPvYBiCl3wdbQ@zKh2(p*ZC@d?rEDuSj@}{Y{ZnSwLIdagp=a#X$PPlIF|J8~D86$e zpCs$$?pon^S(0JFC1OeO;tOdue*;Ca^ zx0@0Yae^-$0>vn^!h4FenYEhr=Y@#3qMxbbC{FghvD*|3DP01EKX#nlmlFGe$$A04 z(%Y_?C$H;dnLV}XfLU}L%}q$NKr;c!yaw0)RJ6WgwD|i+Qq9Cc5s%w94 z(MC?q1_+MAZsRLVYm^Y8VI&w`j?KR8mcU|_v zC#oQI5l}+N4kH~QK9sw~;?%W2te2mujYUYfR&`FpJU@DN+38Jj$tHe*zCIBs96h>= zNk;fduC}k#Vb=`T0cvl`V^u9RW(vs3C&ch4pyJHPsdE||Kdmd1za25?EOTx;&z!gN zb`zjJBlQ&84z7?zNA=#S*0>9HD&V%O6SH>JJ8Do-fQ8R#4JxgClZl{SfS9@5z$4fDolw8BH06D#r{@zrd2 zVwiTUYReBgw`AwUtyPzuKO%V@jmBpK0)*STLggTMbzv&e+ELDb;oV+ewZ=EDnIjJ% zh1N7k<2`^pNPJ0GUK4(u$FNWM-m{&0pE~9Ybt1ghPg%T`w>7@x=<;(cO;}hZI`VAdP<(d5}cIGCbr2 zPm6-_ALi&w6&lT2rc!iqkcuQgIM?gs)aXphXv>+Fl1&Zg1G2>(%7k57kW5AxVJ3lM z97l_65??ch-xBscb9Z0R-_X$IP}BV6r-u!s3J4TV`a3zr8Ocq9zn?F+NiSd2?YUJ$ zyVp2UdlG!1Cj@D}$ZbLDtGsuA%V44K=r%oxYnLW6c>b(^h-7F2h3sOaQ7odnm}G0rDB&ky_uOQ6@o4_*Y8DgE`b8I4PE?Ia;h&(?=a;znhoZPVhgot--L>^tmYu~ z9I;0J5~c0V~m7>lteMBelP-KRV>uH{~^6 zY=^v`pd*|}B~TJByT~c7y1Us0FE=rK7W|!WWMx|zzI77bU*Gsp3V%6Op_f=|8GhW&88$2%_m#-xO1O=`}2v$Ucea{ zaV1wwLCO{Ngrm^rCa1m^MX4%q)|KkLVUP{fT>Qy8Yc2;VqzXeD{RQMf;)^=a;}Wj$ zw)Ev=UlJ~x2D3G_DP%(mtQU@T9XX}-ZM-!2>dqGR`oWn4Q#*P(Y z=&BxZR%pB~eerK+#3P~b9-)&C$cPA3B04@C?oa~qAQ|E6sCIK9l`{#0p>cA~xA7`9 z+wo6t--N#M2(GA-SGd25k2%PcN~DiXI&JV>KBiY6{hi((Qpj5l+JY332gwLIt5u4= zy4~{fQ;027OR#)6%};d=Qq2Si$0SNl&F$zBFcpjL$F~>+mEL#u|NOO17*JwJu0q@O z7s!Le7yY%qLmPA%^C*Kd9r%NopK8^3A|pa$D2CjAXk$Rm04dcRfAz+!&8?8Mm_%>7 zt-7z>thX~m>N5etv73`qYxC$feC=sZR}L@A4;^p7{hgt(0hG7^pw=LJh1A!P3GJew zG2`uSSJcxTrB3ga$_@qfp}e>jpt#$~Dfz|Vi^0PzpY?4Xat7~_{HndS$r}3d0u&Q+ zN=bd4R}N*(V_3VXcYR)Iv12XEhouk5>Y~vQM|Tp^xG0eaNern^r0T^vag<-#dB{UX zJNIhRew{E#)es;YBLg|5vlM&EDW#01f1|-!2m7PV=HbTREkIrzQd>&NDf>-Bnj4NC zq#x-Erj^}sxZCvs<0oR?^%PqLnYA2^MF1ti38;-R z{}i>l5vp#fKCOEHb;XqPWODl7DHo=SPD?mKH88@JVi+s>oi5V;^uQx8`PyjqU&V@l zB_$vQv*=3Ec)fPLvq%)zo~&nbyz)#mj&IKv(LoAkn@ua+daI*WH^QP<7cKo4%k|5J z4U_vfjPbsrxqxI(bRSBfdje^+Xx1Uwhi}9qzZ)xmX`qcbCb26)ra>bkEC5mu2@sC< z8#$#kSgc{Gd?5U@^4fUc0b9c-mZ_H@g;vQ(vsOnQB);ynD8JF+lV|bxF>{{?xm@y-NitaX?Y8P|weWImN&0&^yAu-{7mbYq4#WzUO90$pVVDn%q|| z=S#{%(tAIB=rrppI8Gxb@8y{cDfo6ncZZysjOJc{*!+)F!>`J(wQ5?2|#N#U-fAt*@HxSaUWg-s}igTEKXRS-)5fl6%f{hu_qO zzF?KYzL}gF51HVAH#cZPlB#txJ^MEKFSF zW<_lOn@U1gfMkTG7UfyH@1FWT=Hqxp+5GGQQHxQerXlR8TZlE%){Y?$5=t-TMQ#H3 zh2Etx>N5tN>&Db)TbCh)?poxRPUzi2LS4*U_ zzy2wz=*UBXkkY!Mp-Ynmy!$t{@9U^O1bs~aUrZF_zC`$^4wbg$4R^h=Zyw(Gy5PYJ zRanpOpoP>5Z&IuCwYnIJRSC=Q{dOQt{#C(|8wEd_ev~})1M}LU07gi6ntWc*kK5*- z;yo+OH}?IHi}6U+o8(PMMnhM5hZ&&Q9LcGPp?41kVqTr&@DLGRFSd(nS8&Z&NcjSa zwve3a4LWswtB&1%D%bU5Mh{O&ZwPwP3#oWOG1ih(>nRIMIw!`>#S8qVs|S22PaWEQ z5K?f@)2~ofMyKRR{Mn-HdWPxgRizw7gSTmWknb1>^Lh?^twpO9l6~m=`(bSAjcAIR z)ce!If}wogs_6d%nLvF46nzLe<>6#>ys>D_2}YUswx=HzG}$Tqi2;-pk{8joc7+%o zIp}u%NAk8?o!o!AKm!B%7ePp4ksCasZohs5u!rmc~ zA5zG=p^Z%sd5}=NC(pLh#M}PJN=ao~;N*0ecHDs6cIdpMd2_kK!R;p(+ZT&-EZZ{*v~E$v^lt{fq^S{Wq^(77T9O#jE7t7jruh+` zZS-VL>Ckgx8R0|9(P=8zwo!EmZF!hA1gY(SVmU%i z4J_`jla@~T{4?ZKeT#92Gw0QxDgRBau_LGCGwRN#en9>=V68=ee{E7i{%+7{cSwl= zU+dG!Deu(lkFTFvwa)6Rpp@NO2xT#!qJ+)nc=Tku*_3@d)>$%9;CB$$)pxEfieK|{ZFi+5XBzu;= zx>z-L@3HOC5ABfh1QZ7!IaR?M*CjqF9Ad^QdA?@opj%q`Byt)Fz97YeArBHN(`xgc5ZuSmb(Q7;j}Mk?7%KIvgw$h{L8z_BgM=EaGOAU|rk+fnue&gk zC7VTe;}tVP1=D*tz9c|6YUJ+xKT_!KMNTK$R-z=f9RE#sUcl5*sozV>=Fw70XwGLi z!UaIlt#DElZ@NkO9x!+j6{O*=?!rHPBJ1KiK*=Dv3T@0QROYLrZl%yv2VV@ziTA81 zD5asZX=?6jguZlvFIx@dlO%@oS+z16>(tZETg2uF#1X z0;xGb(IGpGG=`f7G_t!h#qyFaZtYPtG`P`wPvttGWH|tpu|mc^J@DlLzfMK9&6U)8 z$+?|decp7z5y~Rj6m4{94klSIT6||*1m|N4`K*^^`MY+q7atazhQ8oiTlNYW;I)uc ze$maA5-#TPw@GSeBrE3khe8UjG6Q;#k@%uvkLewJ{HBXbJACZu?6#9pX)IVYWXS5x&mK2SqTu1u7R9d-hAV% z?rS#p_ggg`DOLN=2EX#^gp?$p*ci#FHGb(YTkUz&F1lSfxG>4qbawe=4WwY?>8i=8 zkv)-?_?^8KCz_%>s%UxtU0PnYr7x zl)dlS|JwISMp^h_@pJJB9{?q{1yD3$TEgy0I zn{q()hqK%lqtO2!1-i;|$j(BWSq1VSnU_xdmbUTTV&PV6RP4Kp7j<)Y$03y+fkO8> z^79m?754lezWL`%TXKzE8+#At_+@`O>mQ8NGz1E{B~WS%trJOn@oKqG^gqd4^T}ai z+g#j)YNL=o%u#YL2^8fTG@Fu8lT_2$T&`?RMx`gZ^cWhFEO|pVLtlWxQKFSB31wxU zlHD}NyBv4zTt_ZNna`v5IAkXgM);243&%}CPNmZ{t-buO^SQ{5pS8@3Ph^bW@}@ry<&W^qRyqMGTLMM% z66uAMx{^FR6(Xf$A3ifzoANGp=8<fh**V`h=sIv-?D;EY0V(UffyyNvE%;4pQJO(}?ks z`wB{Vq#B@;@mg_4T1c3yP@vf&qYF}KzCfa3n@mnw{~kQLy{E{aM$53Tsdy^jxJXnP zq|lKejl~OjknDNaw!@9v5?`ox^K8C)KyoKLs{?;Nq%IMlT|O)9d9@*%gp2+mB)%^6SG`(WLY=-V)3Yh`&B>}VF-sLl8>*G4or*?s(B5(d3G9m(X6Htm&S4dM&CUy~eJ!?5`VwAcdYQBpgP)ff95`I)M{7ER;TSSxAux#3Jy%$m+2@vl73cDA7m3Lp^RD*C+?*T(o z&2oqL4sO1nNJb+>9(l__8r`35(Nv|Fl0Jq$$XUOy|HBE63oez_$jw8b=m-?W2{e`@F}(ZU%W@8P;F~#K zzIm2vTFIA{egslX1d727&G#f!SwvoKBd@-!Z*ESFSM=XMpg?(=AfVo$GJAtBpT24+iJUW|S@>gWx)R{{9M@eoOX0>fB$d1StywMS=eGf^=TGIod|NFOCL(Go2Lw ze6za1uDKuXUU_E%wUGz8J4q>JlYXb@H@zY@W2N7}<~Qo9>S_A}U%R&uC@$8cH{68fGV98o zpd=+hNeL(wB;TWr9<4h_e2wd;d~6$D`}1bxusVu%5Jqs*ee_-tCKTO*}KD- z#m()?M?j(TLmC|`TJe$0i|S)*|5hW3LD3eA3lkqaS)F|7+8~8|B8@^+m7E$nZot5C z?Sj#`>E;Z#N2~=w?N#s{Rt>!)k*4$pd64*0@r*rpd@lURgFY4Nssz&`3=_zo=OoNa z4aquaGh89hQ&AZDo;fYKnfm-WJ^3jsdU?Grq|Qa7p*BN+XtwDfpCrC=KL?g_}9mcr|aw7vl0+qnfJg>K5Jg2yfEZCgKrtdFObDL6ckkKfzBBx8-FoZ(aZVLo^=z!~ zvp#F}UfsRAXNEl>vGCDHNhw+nsx4O~xaz(tt7{4!hO40zcV5FEa`(ht^ z+BfzspH=(=W&6MQ%-eAxSD`t9#A*aRZhi6*67&a0%< zy8|P*N+ZeFy?<9U<0rPbr<|5(Kx5qkRN*?OuhXxmYHR8BUp;FX@bqtZZu;`jGAl|! zbrEh%+|Y%nhn1b@YB^n3_dAcaK9A$yDsoffl)!&bRBe=`lw8dfUmu0gz4QyU3?JLY z(@HZ&p*fC>*BBfLhg10sU5H}MKKZEiZWteENh>4OeZ%ymvrPf9@t&uTN$^m2ZS090L&SnzHK{WBgO0isww;hDu8^*lJa26nd9X8vP3Yj^Dd zWdy$pg<1HYLt^1F zp{hzu`QBYn=JPm|T~_s4Pu4-nd9*zZ8Xtrj1QZRtj}i5dJ#Muq-l44b($}&togeyN zJx@4Xgi^l%#k@`rb5CAi=TF$pF0=4{j|}~RM^Sgpq4PT&%fuLswaz?LJ)&$%iTiB$T=KlU0n(-kqB9N%c3wFFIADlo6l`7D%Z*)X8_9VvfyaJ@O+9 z)9P3@p0h=FJyU-`!QWv`Jj&$X_dOT?-1%qqR$Ka%_IJvI^sCU0iu7<0P&CI$sp#_( zXLxqqFP~p93sXE}U1afvd>Bw>&@KTtrg`Y190UF7Fb3!!csyfSUF%>fT9}h~VH4qZ7PGO&?>jSOsLU?T$?8Q93cMg}%Au#tg{3~XdzBLf>5*vP;} z1~xLVk%5g2Y-C^~0~;CG$iPMhHZri0fsG7oWMCr$8yVQhz(xi(GO&?>jSOsLU?T$? z8Q93cMg}%Au#tg{3~XdzBLn{@WB`3A03U)zA8+D3=TD@w zc-;z2pCofC@@g^#H{r2}>9azIr&*i9lXJL6QG!mEQOW)z+y{L=<7^qGAHHLH)$(~V z@KgGTpp#osZSN>{dry9fBsOTu(tVFTKk2k1i?1u2+bDq%JB zXbJ64$uOqhR!|i9Rx%3w6whM%RQ%`HH^Z3_9WSm!&}pj5uUs=~LZ8PCk;U|Zo_wlV zt_96t@%hbqyfF6U5FWo-Zpv-AT^yxZoX@Wi7=}<4@+oD{+zGe?Wr>8lV zamSyN0@3l}Gnmd1A|dnqHu@alA$m;ry)K@@n*u$>2e*`9OpnNHxgkgo@_^UD`cGd` zA-Rw3$^fvB$L1S-jau@F$H;e%LF29;jrn;WTAARm7k&;7(gmJl`sch|Sqb?dZ+H<( zg3cg2s+Mu_stK^y#`42pQ8rhyD7c2`I8QOm{)Q+0h>$z<>>}Kfz7TXqdFks{d9H{7 zJx3nXcid-kab`f*=@D!mGTNV}oSK|EjM(G1Qxoi&I-~TY6Bocd#H(ZdXPRS&2 z*1CPt2k-D|1^npKV)_@x3DK4NOTfNqoS<{sujZ^Ort<*%ZP+~FqPpiQ zTD5}K$qG+`J(s2JS0)K>v_2$Zb&spz_W8AaOz>0lP)oRo+25{KX4${`50UZONd%pH z(;r5|I8W$FUATGXW4f#67OUl_K*sG^#q_{a(?6T~`;h;E*T?D`_oJxOrC)8n0pJur z!Jda9<3}K;FY4cE6w~#nxl&`3i-EmO0;bzmrGL!-ht}c!*t+1kr065~=79jPPrrlN zKmMUK&prj_6h=R9wpwagjexIsU6Rub%a>881GArpMS&+!>d_vjA&(#FaPbd&R# zez;5a;th3l-tN0X(D~wuBR|~8K%W416~**w+Sr8@{{6sDHnvXr>NQUB+)xMm8tx=E z&-t#_2iXR|e}M*W^}?8+>(mzPqgSngUjBuk^Ru*fDM`4#1$sNS9{In!M*9guU&4a4 zDno+3z~(ef2|^^m)DsL{CJoXbRpbef91Tv9HQg->@i)S)pB!7l^|-Lg6WrH5@fSpqWi*u za|B)Z@6h=wfh`rlJ~fV@i(Cj&PK+M__lq~M#PlbZ6~!XNA z=0ng$g{M!Yz86pd{u8lzE^1jEDJ8Xp&WDsL%sxbF!9Be!3Had&!Sp&Cp)*mJzca&!RxL&-7y%d~ld2tE9yKh&z)2>PZ?o4y{^m_g_Nu?kF2OX}(zh`tN# zvz9S^R{W(#y*D~PQ?Pj@#-4sB>!+awus>Z)uoqJ`SK+S?LhH}@9!x)Y-i1@$7JjN1 zY5`f8{$43sYjN$#_U%a4jFTF|| z=ptH}Uj4$fo1tm}^ncGVL6;WEI>mqXco@(lu{t1a6t|}Bp|1q|NHt;h?zV#WtQ>V$OJ2DZ zuy^Rd^!e6HiN<5-K4OpMNA`2XYW1@$^qeD&jf=ct6Jw!q6*_NIR0)3Mi(ZxC+2F6W zfZGvPg04XMtp1Q`7xWz>P{ZqC^-UqL;mg+gFSLk`E8xWJFAde~^7-Tn^a~T1e#NHt z-Cms$M8|K%=BL8)i&C}4ao#L5eS|JvsS|63le z*wSD8eht_gV)J3kPo*0UNlEBBs=Pq3SLBxRE%6*h_b+!HOt;Rynkp>Z3;buOW4ev= zGa1*nA;7;hcCJuNpQOm=u|ebRSi$UT<@#EL9p-_be5`IL4k{g0_#LPS^oX;V{aA*H zaCHP&7kJH|1YL>g#QxJ6TfsRHFNlr1l2ptx_mOsQ&>tbJ-YO{;Hp)tkqVrS85%Uu? zqnz@?XA9aNY+Wejkhw3WM4+#~3SBY#R@(60;X~-UIFF6H(xo_)*w&Q*;K!;MvmY&4 z6}o^2=PO(ew!bJV4l4LxPXuxCI#?c*_3qXg6bT0cKXt|gKPv3uCa?MHEx~=MVEI>h z5FIz|9b*RUP5TJ;TgUer_vb`U0ecZFpIc`##jn%(gLQ!ynIhP$s>+@l7pgV~_7Xjq zuG8nH7t(|3!lRhp@*vH|{9nizBV*1;u z4?(s3Z-CxrNzkV}aKv&215$)L+s@?Isfq%RVcAn9G z_0fIA?}R#tn}GFS`$uT0e))EE|BAroiO%?vd~`}JdSA|19oDrM44^ag6$XA<@(KOX zZDcOi-pvj6W!(7`OmC_msB9KO=j~~1+;yj@V_7>dr~*H`(+Kv^Uu7*_jmXji`pGIx zpRO0{)|r?D`l&2}t{2FWSE2@gpD*0J12O%OJWK7heV-8-ufLt3?_hOcWYe;pMRc53 zG^TqNsrN*74Fmm54W`Fl-66~!x*6ydl9=8=X8zEu1k^XYhA~0kDVajSZ*U!)6L4PJ zG2QseD6_vwDCmy?wjb@RF?&5QbPW0iD5&AZBQg8hv+8fz%)vf|-+|?M=coyX{A2)H zSA((nu=9}=C)(5#3C_9i`CwsL<0-imgVwQBY#c3OdFbMp)aHP_1?J!4n7Po<`PLMm=Zq5kTk2nxx39o~ zamN*6`?Y0!>hg0Rg-*mC&x_r!<+0qk*zX_Yfi8xPiss#||05gm77FQ)I)TdVd@>;n4X5==jy`+^~fp$GVpRKoPe*POc^ zEvW%r534iQ_t~rLPLZSYS?DTeKfzG>dLpq7*eetgbQ_K<8X;AL{i1ai(-n^xvw!3s z0rr}h9~;xrFs}gh1Bi~R-H+M38cJE6|9k=HM>;S)u#G~&D;(qv=Zw`=+oI%a7f!wP z2L81u3HG+NpO4#Kq%j135+w+_U8RreVwh$!uowM6(Ct}`%l*%_9R|9vJfi!~f6{e7aRquV)*r{^)Y53(cj)>}bjR%fgtQIg zeg^>ibT5ML#Ly-6(6b{B=+##+U9`KnyM7CLJ~71nI8!BNT>lg_2<*$~3HHuct!+%E zI+B6z>Wt~PS1u(s_Xi_7Uhx7!cd76UuX^b#1niHEV|o>hIj+Zju5N~8(odJG)uspbZr!9IQb_(oAcy)4uy@y%FudDf6 zZv*?|=LouI%%dOdW0rhC$GZQ|GhS86*2?q_qT}UxG5Zt>t^IEG==*pE+ys5sm_&Yf z-UDagXBW2ay!v>KoDVRJ2YNFW*K6e8b&r)}MnHE-BKX-YH1)}A|D+huFJOLl*S)te zjN&Xsbo>siPVN!)dC>VvksR0`&>{HQb6wLbp2`ZW3%mk0UVGLgo7c>^EP#C_w!e6D z2#e6|FGusgYl7g%TV86{$D2#9f&FpJzxT1f!uQG&ZUTMpYl6K`+e)i@=L9-W0*f*I z%lE%qV{Y$8?D29j1l?C<2Td!-yg$&D?_hf1Tz1_cj z_uIK!bYv4h`uZpkTfcsx!{zl{KP!Qs@;=NS`kPBetrqA$a#Wb0``^;!LhI6DSxj%<{o}fV zm>=*Hy#>=d`9+x?^gRZ8iz}v&S3Zu6<3i65yRrEk^z^`^^30c@KHxVEVfN2YI+|Mj z0R6;^VRa*Dp*>p~dFW@pl2!4X?A4^&|enH-TSw6MOHDO!3y&oO|5DgKxZh)u z!*a>$9k912$LzyrTC{&UqT>?7iRm9`jrE%b7Jz-*MS>p2`o+e{f5IO4SH#w7*b%j_ zF-6npdA^vIU>|Nqkv)Bq{vz<>!j9>VUWX64?oa{xK0!<`$h}t9_OlG=mRXqIlkT~> zmfRM#Unb}gNv{(m4Uf42{me5=zx1X128V4mqT>~@IuQ9wm^)=Z6S|L|GbPwZQJ1UL z1)W(0e*8uVdi2h_nbIDO=y^5V2h#_ctD>$vRR{LzSUripUba;CJk1!y-FySHe@y>| zjr|NdKb86k`T=GCv|mF{&jWj-KumY}UD!n0lV z=0AdO_r!Uw5bR^cFOKysf2;uZaoD~PCq1!ie`t&v&=1WM?Bk4SOR}eE6M$ayzwLuJ z^$AGzjv+dprv|exZSATqx>f~rO)L*_ce+H+I%vEFeyqF*_VEnrLC?>+0ehU~H%yn( z(}`t2?E~zw<@hgt@!WOAb6Z{l-3%M|1e=ztzlz)$5FIaot(OF!e;pks--7)P=dVie zpHP~^-MfVY-7mHTWBTLywdUM+L%(kp2WH45_G~(98L_Ki@@W?bt3~C8Q93cMg}%Au#tg{ z3~XdzBLf>5*vP>DjTwO7{D9wxkbwW=I5Pc+{QB>j&Af6F`@QvzwkyV5po2a_g#K=V z8T#op75pv)(O;~1uHh~3>5)hKLZIl}!@m-~Dq4MzON2TDSwoExe(#is!e_sf-?tc@ zTu~Hy;*E>Y*rB|W&^t*8^%H?`G_|DEaJlRA=`-@tYDTJUr+)0`%$}>I1e7`WybYJX zN=kjyb}-nwdf-A+jc&-|o}o%=x>{b8LSKch7fb8TTFiaZ?xekLm78}+_p^N0VmXFV zMWBZaH%Vg!7syZiJ3&vArOl%0X!tVCan1&MhY!9l^DBVj4I`z_=!D0fn4nB8{J|7{ z#;`JgedQALz86A)&lf2R6iKO=wO2x02ehvQ(}tMzXx5Lcg01?eHx$VXCYwmWCc&`9^x%Nmi&c+VF82O;^; zZ{owTEa1_FS_S;h4^b?$-K+VE4FhbFP1`H?GESG8_b(nqDLw=uXO$(T$m(t=z3RNM zL^duym~x#(JVRmWI!d9R%5cKJ{X!Ir`R={0NyhI%$DdPgKQpIS>yn_mf>Pi!RI*w13+Au*<<-IkP43?x=7pqO1rsm@E% z6lOe<)*R&`PeUhXIIUyi2$>%Tlz=fTD)q zJti72Z-;alN|iey4`-&*3sjbOCaDaf_hl&vDAuo})P$?f{$l^fzqC2C4XTePmm~#e z*MV4;+t65nq?ESCzlceykTfpx;-Yq!IZJh;cC-Rmg7-;rbZ|_f9!dvXy7sO9Ub?=o zQpN2MkKn6cTn*4zHXs(=EmF$w_AUYEI-jc(n(}M~JUWk=l_jAy3}@aFt)eu~NvSJU zxWiWDT7~#ztLJB)n-Al|I?_=J{p5^gof$Rg+}bT{{Qbz7sL83?l^Ro{$w8=;Be775 zMvOF;8>7W0&Ks$?(Dz^L1aNlx@1!CJP|6+L7wr*JN=;WL_WnsH&P=w-KjO-hUdz|t z&7zbCO2MD?5aqCJdVy1%PUMzqyT;?~wmX*cdcyqvlcI(y0x?x8(3n>qz!$g{AbU?` z^4hjj%`c!8kK9)Xh*b^0?@bhoI#f5Ul>9@ZhR9FHDGOSb`wa&nYlI2~R82l9b*sAL zzGcu^d{fINh9I*`RGTHaq47Z|bS>AeGs^Qrw*DOkZkp zK^jY3xS+4wQs>O`@G;zhEaC4nM)YE)(_j0a-SMwIDPpTgNjF^auyzIUpwfI3gUf{w` zJ~stZE-{JPA(Scv6l*6bb+#s8zhRc1 z^BwKO44JKr6NtYz;L!xatt~(Cy%kRqB6idgqQOYC842>$-b0mKu%q6oGJT z(C$u5iM=7qTB(h(a=lC@os&55S*lSUiUH3?h@9733Vf*i zs+At9NeG2zo`ZrkmY+|$(f7pmrPP5N(QA$FPMcObp%sr%=nhLaMM`ms-2EZju#5e$ zStye`f3s4^bEy)Pg3gI><5*{}{5__VVn1TU_qN$WC`L+J&A(wx3Z;v4nG!N3ef^&*5CZMd93YPJ<|gR%}*yS10PB-_YJ0$#UDq6qn-G zev3Yik>QM&>6L3GifYthoc8vZzNp>W!KojO)4whsn@H=`s-|>-_7M2KY%M@6E>_YW zdLO+#=<&G5ZEnf%>D(QC&5C+MXyqdme71%fKfJ3G-PeB?>%SW>eun2?v#pl1_FpLp z4_SM83jpJ39R>N42*VH*Yeecm{KlzIZFMh;TyOXP~& zUzc&V=X)Y}{6cjfE7U!{0Vq34KvA!fQolZrZjpUsrA~E#y)QV(pI&jiX%eM$0aYPF zO8vO`;%66?gs^u}#KHVl8&~rD}o|8Vla-pr*FY ziAZYuB|W>@>P{{>hWpzN7;9(O(eFNGUIQHUpAjwpviV6S|522J*A>*F zFF+R}N^mV_u9xx|d%+edEscQUe%iPh=suA9`iwyM3U~yFsA$(f%61#^d(ykN_8HH- zP~nuVzw#dx?$J7D?0Zy^DWN6L>Rpyv0t!Y?7tTl=hu)z;V*LQI9(0h#Nq`GM(@ASps;KS|y7?P7$i?C~Q40MXi!onPDqv>Ol78W@W_wrqLbGb< zl(|YRA(jl%MY7W-q?CJdTKYi4@T>HFEx&ncSKXrfu0g91&W58FLg6@^NvR_vvmu3A z`#ZIUmk+1}=UX1?y2OT3+YyR#+K`lTH&+(K;TuPsm!C`PYG2kX`^$+|Hb+~8BJXe| zrLvojrC&5#i7l+Nwxn%Mln@VEK8wZz=MAPBBT`B(iIFubsVL)&+-Yw)W{Q|6_cLQq z$`6Uf__CdpdTi%$EvQOiD?dlg!S{jrcdTwZpmW|4><&!3ppzf*oR8V*Z27Q;q9Sg4 z)>2o^-9!g(V^K5~H20y#fM2Jwsg%Y>G_bB&>fskn&8ag?Hc2Ew)dk7?KZGJLl7oH{ zt*_LW8%-~YZ}BEmbf<2SyY`gj$W`=JfD;%mvb(0FRB$=3THBcaoP?Le?B{4-=q4V??*V8xC1&z*}OGA6&Ds5{1lPZJj zB2lb1wTwR9i^au5W#i*=2m7B;>wE3^Pf8|%lo~h{slz;Q^KMMrt!r8L3&zMAouK{r z|Jg%ocT(z;A+=N8pU?NM^Gv3c>`44Mz{39=rQn$aHClLe67|r!%`A@FLz&^T$BvB&u8mfax57F1=)HI~jMP4Q<>R99Y zER%B?Ll5g&61=HS|0l&zPfFGBSiS!C&hj-w@9}Vdr%%C}3yni41;5gOn#DSm?NG9; z+K$(rk&X%bMa)lrWpI2abvtz(9^5Eqj-)-k2j5WGZ>M9b8%&vu$x||iC%4nPZHoqwSnJm4~ ziG55ixhMsV8{7mJpbJqCg-pI47=9bCP9XpyzY$jmN`)g3j(U-lx-8A~`sSwIGIq6r^pssDADYWAPNNi5P2sjG0$qq=`QCEB z#P0TyrO?ApeI$QLFEyzST2Dw1V_^n5AC5p5BI>`3MLtJ1t!}lDr%g*O6w0*j@tbkJY5eTPA_5T<3>U`PJU_X)m z(tmVkvlo8)^HQ@3qOqVg4L90t(1oan2cJgd37*Bx?VEkV*pa0;YtfUI4=5LI1X}mB zOzFg_Q|PRN4|(`{Mty!vhx+LRIZA1u)GpFky&M!G$-GD0mOFTOy5G0GXnd@fj#3VQ zI=xOky!9e9`Qg8)){ieGMi2dQ(Kfw58irC%2u1z{UNJ=X#oe*x+48|ppQU#G{Ooqw z>?vE)ycJ4$Ar$3_bEH(hjc!PV4a3scGD`X2H|`q45;4%I!ZXSR$_mu@e3eP58>)5v zb@or51d==5lE5>bHQyZGg;IYJiX(}Fl*$RabF-LU=Cw3m=_8yjm0pOC2AV_HB8195 z%1BCGcKg+L@S9<*V++q}VbLoK9m>Q25X%j`hLzT(C#3|af@AY+K8wC$ReI*iz125J zw^ev&N8=eM-(|ZdP;HEMkp3D_)toe`FxEWfuh$r zY5%%8GXL=Q(5`a$6@ysr&`+q5MdgxGhA}3O%v`uliyB-hI=)Fbj;c7mMX6T^MZPk0NR2GMV%ly>)wgTy0MS+-J9N9lWt+&^hY9{?%{ zdcA_fQN-<1Af@aw=l!y|f1ms`o!94Vb?5fV4ZE#?I)Lt925`M6%Hhk8i%uCH!l&=4 z&9fAaE3fsuzK-VbKsFo;hx-Nhl!zM47TjIZ@LKne?VPR|Pj1xeZ82I9E5-nUI9+{7 zDdi(%VxrC3o$a!JEBqD$$YTQXR!|BW0l4Y)LKmV~OKjwBRA%H#f-k;4VH#z2Xr??4 z)j>FiG0=R38h#%eDV1}pM%Zg>U-JUjzW6bo81W&)!YzP`4MZqja`@dWqFB|H6!XKi z;X$nQ^p%cf2OV1OoPl1=z_DWc5DFi&PQ?z>I&2?%b?#>E{i#cX>KP2vF&}>cDh|pD z+$^B+BaYR2(v2l@Ji~a+q)x9*=bM~w_|8g{azP-R3@0hYY;;#TD|gqx)GrS?bI;}= zw%FlOltOpCD5#DQ$C@8X<;xRz(lUw*!v*O%d$V5lkUPchx-4uU zdap~aIIC6U!`0iP-hhgSe!`6x?kQ0Y#T9ic{)GDl`h;f9ad&iGx)`qkownduiI)%v zHyTVzIRr55oOAIoeEdf0$B6^GcJj8*nE>h_FGAtn1xP8?v6@#EiDII+4BXV+UWEJ} zH@T{eQUwUb*y~41bvi5t4HON0PFGj`V{oF?gHmK)GfI6zDEiy6q?9-BCEHjy$o;59Nw~9Ww)Mz=3HW&%*jdk_jIbe)vydlJ#$W2v+MebQQep}m{=_;BPPN(~?s zxqt{M#dFjw=HmSYn~NUF9A~MAjH6xspw|rWj7s4FlpGwB=)R0u%mdz0=o(H9^L~2} zX;nM<18`V^z3!G zH~drHV5lk(sy*A6F)a-FVLxb;|cjJ{; z9@?C}+jK7ELpu=M!z_5^LvMatuQTVPTp}&!dy7WDeTy<{6aHD@ zcEsKa0_Gag}Iq|?N?L{fL zQbR2gJ_r$w*F`&@QCt3raN$0_$zLT8Pd`)ZX-6q&KEh2Z47w0eX8$-P{_)+qazEbu zpr6!k;}p(%XePluJhlmeXuRK$QrZ2CWp-8{#;NY{?zqxpRQ}tM^)pJr=R#=znu;c+ zK7QR7P5n3~wWe>}WIU`x@Xr{&5v4#C#S2-JQkP#{N?)~$vzfQiYo{v{@Oj51Wdo?= zP=$jUr51c@Cb}=D)fkK1LULT^(a*i@$<28pWD}z(6@gGVqd`*Y4YS`js*|?*@3$0A zY^!RZ7CBb-38moL1ht*(RDhNVhlB&;-<|jD{g}&=5+Iu^egHcC!#OM~Lm+%2oE4%T z{?D%v%i0iX-B*YMWJ_oMg*8OHeptM`!!yt>oLTW2h*eI9P^v4=q_HAzE;<)IweWp! zf6{)rMroMgO0xw@<$+j~9;DQX$4@H)pD{guFkP&lW27N1vre_q3TvnM z{^QwHRA83!U-Bt$9vz=llcH9udyRngxdUxL6p{kD`*w1&;u0pI(tgB^_^jU(Ur6Ux}OQI z_c__6-f*Dxu)-ImWJqJN(m&)CO}i^q;u^))Uzn*!yUYy5fbXj!8BkRBNU6=jYhCZZ z3Q~uPXO_4nzxJca3!Ox%qky7>Rt|CI<@4U%KP%f>HOy7Ea3H5M!e5gS-OVe&YglrM zTvAGMo_#Tdc23O4YD`H(4u5LPR0xzaq=&;uEHVyLQfjPD$9p$FOV9Z*25ryfgsz6o z;EWC37t~Xzk@ISkQV*kF(o%}%6&?J0tWV@{`faz~7h`Cww+Kb|#GjNBe7T+J+Z;`k zSIMU!mqQil$p#010P5sNgu->bBBi1-jo&lwQJOio`Odjtkr~V>dWDXFs)DL1+-i{Z G^}hhMdxhly literal 0 HcmV?d00001 diff --git a/.gradle/9.5.1/executionHistory/executionHistory.lock b/.gradle/9.5.1/executionHistory/executionHistory.lock new file mode 100644 index 0000000000000000000000000000000000000000..76920460866751421961da638b88c421028a7dd0 GIT binary patch literal 17 ScmZP;&bHJ|nI*u&00jUUG6DJk literal 0 HcmV?d00001 diff --git a/.gradle/9.5.1/expanded/expanded.lock b/.gradle/9.5.1/expanded/expanded.lock new file mode 100644 index 0000000000000000000000000000000000000000..8227d08416a84663bf821fbc2273eefbc060d4a2 GIT binary patch literal 17 TcmZQxH6^9bz;J>C0~7!NEO`TE literal 0 HcmV?d00001 diff --git a/.gradle/9.5.1/fileChanges/last-build.bin b/.gradle/9.5.1/fileChanges/last-build.bin new file mode 100644 index 0000000000000000000000000000000000000000..f76dd238ade08917e6712764a16a22005a50573d GIT binary patch literal 1 IcmZPo000310RR91 literal 0 HcmV?d00001 diff --git a/.gradle/9.5.1/fileHashes/fileHashes.bin b/.gradle/9.5.1/fileHashes/fileHashes.bin new file mode 100644 index 0000000000000000000000000000000000000000..e0ecc620352039c60e23fe310c0937137c20b8ec GIT binary patch literal 18747 zcmeI(Pbh<70LSqMNi%FE8ACZp{#OZ7qx>pC>&Oj zgNq`>(n3sa`B(0XXKin@c5&ACt><~4e$VqeJfG{^+b)Do`yGEo;weZhSs{P`0tg_0 z00IagfB*srAb2^q+)D>fd-TEW@_SXyYU7tyTQ z%@#sxk#Ar!kC}Nh^S(9*QPf}inzd-rHW#6Y009C72oNAZfB*pk1PBlyK!5-N0t5&U z_%8ydbs@`5G5zh{G+4cfqMemGSi1Y%cz9bs`)HPr_U8W&=3_m-)vWmvAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009DjL14Fj#B1GO zroHzVsw~c`Px# literal 0 HcmV?d00001 diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..12581dd --- /dev/null +++ b/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Wed Sep 02 15:03:29 CEST 2026 +gradle.version=9.5.1 diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..30cf57e --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b86273d --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..f9163b4 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 0000000..7ca2a83 --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..8d64e29 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Kidio_backend.iml b/Kidio_backend.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/Kidio_backend.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..24d8620 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,24 @@ +plugins { + alias(libs.plugins.kotlin.jvm) + alias(ktorLibs.plugins.ktor) +} + +group = "com.oliver.kidio.backend" +version = "1.0.0-SNAPSHOT" + +application { + mainClass = "io.ktor.server.netty.EngineMain" +} + +kotlin { + jvmToolchain(21) +} +dependencies { + implementation(ktorLibs.server.config.yaml) + implementation(ktorLibs.server.core) + implementation(ktorLibs.server.netty) + implementation(libs.logback.classic) + + testImplementation(kotlin("test")) + testImplementation(ktorLibs.server.testHost) +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..a3293d9 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +kotlin.code.style=official + diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..f84abaf --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,10 @@ +[versions] +kotlin = "2.4.0" +logback = "1.5.37" + +[libraries] +logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" } + +[plugins] +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..b1b8ef56b44f16b14dc800fa8103a6d89abb526f GIT binary patch literal 48462 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 R2np~f1o-$>Q}y+){|A@R9n$~+ literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..df6a6ad --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,9 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip +networkTimeout=10000 +retries=0 +retryBackOffMs=500 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..98dbee6 --- /dev/null +++ b/gradlew @@ -0,0 +1,247 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# gradlew start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh gradlew +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$(ls -ld "$app_path") + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$(cd -P "${APP_HOME:-./}" >/dev/null && printf '%s\n' "$PWD") || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn() { + echo "$*" +} >&2 + +die() { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$(uname)" in #( +CYGWIN*) cygwin=true ;; #( +Darwin*) darwin=true ;; #( +MSYS* | MINGW*) msys=true ;; #( +NONSTOP*) nonstop=true ;; +esac + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ]; then + if [ -x "$JAVA_HOME/jre/sh/java" ]; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ]; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1; then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop"; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$(ulimit -H -n) || + warn "Could not query maximum file descriptor limit" + ;; + esac + case $MAX_FD in #( + '' | soft) : ;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + ;; + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys"; then + APP_HOME=$(cygpath --path --mixed "$APP_HOME") + + JAVACMD=$(cygpath --unix "$JAVACMD") + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg; do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) + t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] + ;; #( + *) false ;; + esac + then + arg=$(cygpath --path --ignore --mixed "$arg") + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1; then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' +)" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..a51ec4f --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,82 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem gradlew startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables, and ensure extensions are enabled +setlocal EnableExtensions + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +"%COMSPEC%" /c exit 1 + +:execute +@rem Setup the command line + + + +@rem Execute gradlew +@rem endlocal doesn't take effect until after the line is parsed and variables are expanded +@rem which allows us to clear the local environment before executing the java command +endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel + +:exitWithErrorLevel +@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts +"%COMSPEC%" /c exit %ERRORLEVEL% diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..4f8e337 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,22 @@ +pluginManagement { + repositories { + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" +} + +dependencyResolutionManagement { + repositories { + mavenCentral() + } + versionCatalogs { + create("ktorLibs").from("io.ktor:ktor-version-catalog:3.5.2") + } +} + +rootProject.name = "Kidio_backend" + diff --git a/src/main/kotlin/Routing.kt b/src/main/kotlin/Routing.kt new file mode 100644 index 0000000..a7be989 --- /dev/null +++ b/src/main/kotlin/Routing.kt @@ -0,0 +1,13 @@ +package com.oliver.kidio.backend + +import io.ktor.server.application.* +import io.ktor.server.response.* +import io.ktor.server.routing.* + +fun Application.configureRouting() { + routing { + get("/") { + call.respondText("Hello, World!") + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/main.kt b/src/main/kotlin/main.kt new file mode 100644 index 0000000..fd178cc --- /dev/null +++ b/src/main/kotlin/main.kt @@ -0,0 +1,5 @@ +package com.oliver.kidio.backend + +fun main(args: Array) { + io.ktor.server.netty.EngineMain.main(args) +} diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml new file mode 100644 index 0000000..f6a81ee --- /dev/null +++ b/src/main/resources/application.yaml @@ -0,0 +1,6 @@ +ktor: + deployment: + port: 8080 + application: + modules: + - com.oliver.kidio.backend.RoutingKt.configureRouting diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml new file mode 100644 index 0000000..aadef5d --- /dev/null +++ b/src/main/resources/logback.xml @@ -0,0 +1,12 @@ + + + + %d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + \ No newline at end of file diff --git a/src/test/kotlin/ServerTest.kt b/src/test/kotlin/ServerTest.kt new file mode 100644 index 0000000..3f57720 --- /dev/null +++ b/src/test/kotlin/ServerTest.kt @@ -0,0 +1,18 @@ +package com.oliver.kidio.backend + +import io.ktor.client.request.get +import io.ktor.http.HttpStatusCode +import io.ktor.server.testing.testApplication +import kotlin.test.* + +class ServerTest { + + @Test + fun `test root endpoint`() = testApplication { + // loads default configuration + configure() + // verify server root returns 200 + assertEquals(HttpStatusCode.OK, client.get("/").status) + } + +}