From e2829640e8304777483fa7f99de1faebc0305491 Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Sun, 3 Dec 2023 16:01:26 +0200 Subject: [PATCH] jellyfin - migrate storage section (#1811) * use pvc in ci * jellyfin - migrate storage section * bump and ci migration * emptydir mig ci * make emptyDir size int * regen common * cleanup * not an f string * update label --- library/common/Chart.yaml | 2 +- .../templates/app_functions/_storageEntry.tpl | 17 + library/ix-dev/community/jellyfin/Chart.lock | 6 +- library/ix-dev/community/jellyfin/Chart.yaml | 4 +- .../jellyfin/charts/common-1.2.3.tgz | Bin 63006 -> 0 bytes .../jellyfin/charts/common-1.2.4.tgz | Bin 0 -> 63069 bytes .../community/jellyfin/ci/basic-values.yaml | 11 +- .../community/jellyfin/ci/extra-values.yaml | 17 +- .../community/jellyfin/ci/hostNet-values.yaml | 9 +- .../community/jellyfin/migrations/migrate | 77 +++- .../ix-dev/community/jellyfin/questions.yaml | 397 +++++++++++++----- .../jellyfin/templates/_jellyfin.tpl | 72 ++-- library/ix-dev/community/jellyfin/values.yaml | 15 +- 13 files changed, 429 insertions(+), 198 deletions(-) delete mode 100644 library/ix-dev/community/jellyfin/charts/common-1.2.3.tgz create mode 100644 library/ix-dev/community/jellyfin/charts/common-1.2.4.tgz diff --git a/library/common/Chart.yaml b/library/common/Chart.yaml index c639020feb..65fa0b35f0 100644 --- a/library/common/Chart.yaml +++ b/library/common/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: common description: A library chart for iX Official Catalog type: library -version: 1.2.3 +version: 1.2.4 appVersion: v1 annotations: title: Common Library Chart diff --git a/library/common/templates/app_functions/_storageEntry.tpl b/library/common/templates/app_functions/_storageEntry.tpl index 489cfaea92..1123756183 100644 --- a/library/common/templates/app_functions/_storageEntry.tpl +++ b/library/common/templates/app_functions/_storageEntry.tpl @@ -17,6 +17,7 @@ {{- $domain := "" -}} {{- $username := "" -}} {{- $password := "" -}} + {{- $medium := "" -}} {{- if $storage.readOnly -}} {{- $readOnly = true -}} @@ -58,6 +59,21 @@ {{- if $storage.smbConfig.size -}} {{- $size = (printf "%vGi" $storage.smbConfig.size) -}} {{- end -}} + {{- end -}} + + {{/* emptyDir */}} + {{- if eq $storage.type "emptyDir" -}} + {{- if not $storage.emptyDirConfig -}} + {{- fail (printf "Storage Shim - Expected non-empty [emptyDirConfig]") -}} + {{- end -}} + + {{- if $storage.emptyDirConfig.medium -}} + {{- $medium = $storage.emptyDirConfig.medium -}} + {{- end -}} + + {{- if $storage.emptyDirConfig.size -}} + {{- $size = (printf "%vGi" $storage.emptyDirConfig.size) -}} + {{- end -}} {{- end }} type: {{ $storage.type }} @@ -65,6 +81,7 @@ size: {{ $size }} hostPath: {{ $hostPath }} datasetName: {{ $datasetName }} readOnly: {{ $readOnly }} +medium: {{ $medium }} server: {{ $server }} share: {{ $share }} domain: {{ $domain }} diff --git a/library/ix-dev/community/jellyfin/Chart.lock b/library/ix-dev/community/jellyfin/Chart.lock index 5e951ddc56..5f3800ee3e 100644 --- a/library/ix-dev/community/jellyfin/Chart.lock +++ b/library/ix-dev/community/jellyfin/Chart.lock @@ -1,6 +1,6 @@ dependencies: - name: common repository: file://../../../common - version: 1.2.3 -digest: sha256:e6ff49b06bf5d4d159e505ae6d153f36cd46170bb519caf90462cd5caebfd0fb -generated: "2023-11-22T22:27:23.591400891+02:00" + version: 1.2.4 +digest: sha256:47ebfd41bc2ac33ab6989e7bd4d1d3aea662365fffa8b525a24cc56a2a35c174 +generated: "2023-11-29T16:38:16.689416389+02:00" diff --git a/library/ix-dev/community/jellyfin/Chart.yaml b/library/ix-dev/community/jellyfin/Chart.yaml index 470054e434..a1a8109379 100644 --- a/library/ix-dev/community/jellyfin/Chart.yaml +++ b/library/ix-dev/community/jellyfin/Chart.yaml @@ -4,7 +4,7 @@ description: Jellyfin is a Free Software Media System that puts you in control o annotations: title: Jellyfin type: application -version: 1.1.5 +version: 1.2.0 apiVersion: v2 appVersion: 10.8.13 kubeVersion: '>=1.16.0-0' @@ -15,7 +15,7 @@ maintainers: dependencies: - name: common repository: file://../../../common - version: 1.2.3 + version: 1.2.4 home: https://jellyfin.org/ icon: https://media.sys.truenas.net/apps/jellyfin/icons/icon.svg sources: diff --git a/library/ix-dev/community/jellyfin/charts/common-1.2.3.tgz b/library/ix-dev/community/jellyfin/charts/common-1.2.3.tgz deleted file mode 100644 index 711b873a7dc35966b5618161e9128aa34d4ce2fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63006 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 E01pDdxBvhE diff --git a/library/ix-dev/community/jellyfin/charts/common-1.2.4.tgz b/library/ix-dev/community/jellyfin/charts/common-1.2.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a514a8ffebe038c6b55aa40d11e0200ceeb5ceec GIT binary patch literal 63069 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

jgRPBAhw(S}c8&{v{F3mrAEL4qMYItbVhX;4Z@ z)LvA60)8%pWhl>>N*9C}m>PuEGPHBJD%WUP2XghE0u?G;ghE))ou>}iU1aEPa|#i= z0H-22FfST3iq4kQ)_P-+d&O_b*+TGhf+%4VzI$rz#uH>=Aw+l7d%aPpl+W8@*He)o)HU#RX zSs}(2pCXi<;jDDUz5t>|?6S*fIiq;(7paQxb&dI0`Ajjqrk*q40<#4aQn1X?#|a{o zoNNFPW|I>cxm~rUKKH_GB3zTkXpHl_%5vf}Fb}YdVo5xXDQ8yV*U5%$3vx@!ZiRq* z4hf0VA?R-lXBFY!!bXaZ>HgF1Kh-kl{Q%(3)_`*`k2l<8fXLLc8Nf zuN^-SfvgtI*cfx%L;xt6pPNv|CvhU3q($}=jYJ!WiadQK-v{LlBAnz!R-UT+9Ua5& z?Dd*AM(A}rCM~a2_}_SZb>S`hfsN%Li~3y>kL!pZ%+U}Xgk^2$#^m|J!@F+x^@7FZ}=S`rW_1|EaUZ-m;%x z#((c@2IcBPJY_8y)wbR}JHLAV>L2gpzkfme)&K4MebaW3KzWYyS7cZXngQO{c>?1U zyhte;@|}%_J+Rx^23x--7*aHyWl&pPpssOucPlQ%N^!U14#nNwinI`d?tn;uqM!9Q9=fa3QIXDgDkFR9f+)6Ez;EP! zC>d;|-!QmPy9xYIZAcpf$tWG#?R0L_emcy|LXv19TF{(fHS76n!$v=)a^ZTldp0y^ zg6sgWs40fa6rf2Hy_TC8E+V1H&%whtO;p&}(g*BX_c{_+eHRIJ zXP@Izw*R`Qf?CjPwom3Qz+UrT{<@>gn1Hv18Hd4}o5t&q=-v0!rXUf6aa%-Yz_|K> zlQky@YZRu0lkLH!uh*=&DI9JP&Ula(if_MGA(i6;-Ll8j-D+ryaLrcB#9!-~O}qn0 z`&Jlrvw{8LMq`V@ax#goT6>^E?E(No6R!(S@7reQQ~QqG`_=}fWR^4kQ5jo2FW0Pj z9>Tm(`~OvT7i0O6uL>y_W&=EnLNi!_YIaeG?5;>j*z{kpv~VBV&bkZc72i<}z@b=H z*8<9BB%l0!)zi}k%#`q@eH96J9QzmrT&2%O8m>W5sJ7geDs0XgCl9R4i_hvWn zl~oA0*HV@Q?M&hw`jE*HiW?rW4=wvKl~>G%)%cLqzfJ>VV0uVs@!KMhF_m1R`uHef z8Cm$o;8cZ%0v8^40t&NbHN|qXx>{ciT!I72UhdqIq2TD(lb?Q%UrcEAl(m-Hqb*mt z=of4sYQbtC)~E;6`B9X`&Iy+FNXX%%R2aB@M>vvK z&cyMWxSOr+x6Pi@%GbnhmS-wpgJ+2ub}IESu38(_iKHuqzcWjm^NucNa5sq%fhaCR z6*etjNdUooC2u*x9DuHZHelbUew%=H5!ZoenBuF29$hyFKb-9Vn#KGkc_`(>$mRH6 zXU{KM{1_VDSwAhaVw#PYjrQO_jnJnLo#0fb+p<&mT4EMtTqMzAs8OxyBSbX9Sp*w3 z+&srbNUvccNC-*_QTA+K{0o&ipR_c$CdX@CL2s`+6UwwF8GdH$?*FwB)zzq{JV-otxs-8DgjpXTXl+%4jB z;oPOUFx58P3~^k5+I3dAlata_lSBWUXX*Hy8W<8Yo>lS53}@|i zhOkQnm^9gvktbJyY1(p!3+4*Eow!)53D z+Jqe_#27)ml{$9N*=hLV`l!7q9stzMNdVfUv24_25|~fAB816j*A0DB8|Q|zZ$S%~ zmGQJfvxMKGJqBa(-MR!GO>bvYVm@nfMqG=s45ntq% zbm}&TYpACC?Gl}cg+p86!ef{6vH(3VDxrddxJ=|^>igJ0BD;8~HqB9=vGX*<>-2Y6 z9RP5c7?xUmP2RjKvMTtHr~gy5ALYJpKV-{RL@!hd2p#ao3e$p)hzY4X4FHSj1GGn> z2>xs(Xw__IRH!d5d{Io79$ZOe`8-pxAXhK_Y?IYJ>6hTNJDVme(xhuFZ&w;`;i3O! z@cNO-T+(y6T6+#%<*87FI4EYjah_^!C5Fk?DzsE+AQV$fa_ahfgyO&tsp+ohZfybM<3u z8uQIcduOAE>7JyF5vt!geTJo4$s8KVKca|FR%nDmaXc_Pzawd!yUTL@#4a@eRX$}JFfn&WL!mQhAyAyvUKi%&17Z<=2g| zbv!lRpRHm7ACb~5(UU`lR(zme=JyLM!t2o_PQIlzZ4z6KA5S-CFbK_1ldk;yCugZB zv+Vh1UE&>1uhw#%=-ec4QF1thBJe#=Zu0i80yxa4Rp=GaZd?fNI)A5R@nLa{-WQ;NYKGar_-L9=azH>2!5 zSrG>(zHtx{PmFmqE-2FT7`g|AS{uExYkY1tgGPr~lz@vZu*k~Q)ABu}iYN^}EEYjR zEuWgbf#rk}{!>?t#F_?Quf`SyU(OXD`#r;CbO0Y&_8aZz_!m=(X#0f@MXOT3cBnR* z;ka$WZR@>B)*>f;fCMM;C2N;Mr@vMD&pF@Daf~9X(ogQ%BqIPwl_d=x5qM7%a3%X;rO%( z0Ux9Mf`6_3Myg&+I0^@c#Wz2M3`$YM&Q#nI(^+AECEAhEiN-Fws~-kPzJKuQb8T(( zqGIpCM%yO?0$$#0E>`0x>O-X4;MQVf93e zUgJd6lFK-J64aA1O~N5nnOSRVApDFN81wNlZsXZ`boBfUz~WPU9G~u-&#-~y-iU5O$Qe)Ao3P;TmVw1W2P;l9TouBr3sXZI{w z-U8bdWLmz>5%8Piu37Xi3!Sfc66k%ru?a2F`}8A49G1fi4}FHzVcf3#^IJ1wIA8F- z^sCjw@kwK~#q=z@b8)RZg~y`DY^013F<(Lah^b#6E_+{LKYXeI^rM3pwI$G~{7i>j zg=F{H_pTBKnSE*+Ei>L1;q$oR4zeYdLrFOd?`Q3Gl`8%c|MJ{x(|3cQW90v27YTdT zTBdH?;jLwMrTYd`j@r6hFE$;Mx&5H8`>(YUq0Te^0$7AjHI zgkKB#ZjSQ?H=3Z^W2q`#9K{JdP3?=|7GkWmKPjhB|M^yegPXY>QCqFhzzhfJh{O_2 zcZmpy*@l0jbsAP3Ay~z7mgN%<2uHYZv$|L2!?tz_F@7HVR9LG=#F}VY$4ecp5}m-w z{Sib=dq8lUpmrVgyH8O0c&#o?P8J?xb4@@w5=IrC?gomCaYZwOt9oja;SG6)Xe6TY zFPKB$`WX#Q?;Op1IE2u;(g#+iR`Z325#`5U%X;WO{PiS@-wbkaZc_BfmKPa2oP|Yv zWyGw>lmn3761-e(qHs+u|Z*4QYNu}guv=JGFQkC zbC-E1RsuUDI36CVw99HV!=RC#jV?ERB$lt+&=^+K&_YHLNsWJ4Z)Ia_=VHO^W*~bJ zNXg4>A8?(F1rdXStm)nX&_&w_P{`df5r0eQ{dI2LpiDB&nDM052EElZE_W?L;3q?B zM-0tEB;tPd`@&c2Qz7exgd#IJnAW*{?hphm69?EqV{h6^e$q$gR5tauUh^--9~t>p zoLmmKN&2ZJ9tG{lxn6rL{oPdcrNx%;>BquChMEaw9egfTb(L0B&pjZT(IR;B1=9Cu zUJ-Lg2(Zfsg9bNYc|YcF`UU=z^a@moz9do>_mM#pN$=TYs{tBN|IjFkvsLEyl)}^_ z|GU!9Zq`}S$qIqy8FNpbJ5VOkBG%fqMJz(%z`Aqn?ZBSvR0WaKZI=BBGVz?)1or+^ zYw!UB4_Lka?bNXy0DC@JgRdwk$sw^dd5T`gA-p=P^QhjVwTDXPb^A}r(LXJk2iZh7 zCW=PzBlN@4iNuDSJA8CWH_4RD3+rr*^C1KzU&7m(Q&QxnYA@~%8J|c-njWGno8^fg zeyHNb$IdLu$RW1j4tz!mX;W@5Oyj8a)86c5x{qDn`k0SIr7q!x{~mHSSLw#fT+5j! zBNhz498r!aE@&%xIbU|(xv0Q`*gHi3enS8H3PH-1yyZb`pXn4KuAKB^vU(%Nzb+mb z1ujem1D7@6TNr;|Ez61y3%OX$_Oo^q0A%xZhrlkCno=ad<4xj%>Yg8q;iPEb5CyUOaDTxqM>3yu-vEjcH?2JxFk)D6Q#N-?n_3mV*v6-s*@6rmJ55&% zrLzIw2%>~|yVKY_^?rVc-%^K?nKN;~m6guJd7XsQMk0bezn1*`Ue9#fwwVx{l2(L# zSTlXbYVdXO31fr~ea`)k} zC9J!3W2tLpsKH$e=Wmy$(f`Rg<>-os_9@V29!9yr%#7-{91THHf8*pQuGT}egUxN{ zjrSB6k+hK>4s=8Vc!~d1{ofOBp`*Emvk3ld697S#;CJK3pTd1F#sF~sua7n$FclJt zT6qG>AcYgRg^!@^)s8CL<$mTlhuNb@)j0@Deb91qnKhk$UefKtp1N*c1EXdJkUoKP z&%w*v+Yn)-?x11~e4FogRO7s6lh$~SYYE@X+wI-6bsi;x{wCT~jgRT^(RGyzzIcek z{GXhiUN-pi{6ZT4Qk||!;Ku8KAfMa;zaqx`$(J#i>jw)oj7g1no``GF$v1HSG~n&6 z76kD7=xQwcc=sC92W&MN7oDy7*Kd@Wf>HY&5+=9zK2(@Kw*TF1>4A+WKOKUT!}@SO zXFy?+-2e*wwk2A(HRpt`95bwflqNXx%as)xiv&28w`q-(DPSuC(Q;Uj5v-ZsLBHtCzlu?6mR}Nm@4?xEzCAnb|c->H?@M zigi?u+7(b6L7VU4G+Fm>{Hl_}%jB^V!eBw{32x z$lrFs8qY`fQpx#vfr3J6LPoiYEVz4YQ_eVO*0=kvfzJKYY<0O+U1-Ec!aCCLghla> z^c)|W7Huw5JD%`QjJ5ydkJY=v!~LyzA3MTRTWQ0zxxMX!jjJAk*ZiTi#1lH+Bqv}q zLeWD=919b3^Z5$2x!D3fmZ!+b)BO9CSPQT#T>aQ8WB7Z_N+>Sr8Q5}(uUZuZzAaO; zASiLIeap?K?mM;yT<}Hwu6bq2QtznkYB?>2!{b>qSkR<;`|Kb9dUej~l;k?DG&Lx- z6CK=%wu_3LLG1S`W%oG+gcjvsx=3(NyE4{=WQS6}ouh2$6K9Cyf<)K6K;Wm?*HQad zh^HU`w$>1-O}~{Uf=QYWUb{h6K&&eW2%2}h`}_-P)3pxRMnXFT(z zlv8mJ@QLHk&38t*0Ye%nK9=@Q`d%j*-BCe-!PzWDviD{51-TOgG2LFxnZ{v~uw`D2 zU8J`UCNAj7BkrxS00 zBUpFLd=^YY^&T`N!a4^4lqGKx^*4_3#bMnYy&7jn9((^CRCa6`EAF$e?2@`GR^SO) zP>Q^5Krs~HW|TR6fpVP-ApO$v&3tfl0w~CN_66f7|2Rhk)6`XT8XiUr!hf5W*d)H> zi~-LEMF3U_Qx6NYPh?CQ60C z?$loTqLT0m${!cyw0byiZcK!O{|@SVuNQmyBr%gHt}MTgo=Mn()L`R#I_gtC1u^)v zV`1UwbXI7G;}qlnFaI&@WadqbI&7tmNy2^d0CN>`SHa6}A}{&Ic}bdt$V_$tBY5ns9T_K4DH9 z%=WkWu-R|m4>7^S5OUgC>x?8*w{rZs<#)V&YQ0fhiT`mGE@~H~m^9^?bIjK|O3~=$ z_S(ym$@qL6HgQ@Nwh{}ixt0CX)~TdCd{EQ!2WsZXWT|iQSCDASE66hoJG*z^4#Z|k zTXBWPNIOa`1&?8D#k2l!YB?H2WG9v`4lBmdv4JK2#YQ%vw2Atvj&Izqj0fkl6x}R_B;)WOE(MmsHMT#i`UDrY+IIY|E?}@m)hXp0%n9s1vk^-lHG}3zRSuqmtoW2w}f}VnZXoi(|rInF3KkdK=tUv#h=e z*GobbOSfp z7raASC}?pGOxbV{9%&w2t+EN7UHse3KLW+)3ximCu#h zTm1-CT0R)0P*0~Hxs;ucv=K?K0Aw96;J2{1^LH>r6#&%<9Y!$&4hewzhBLg$mQ|s- z$lp7voQV-+8y}%`&ri>pfF$58e%ZOo5|YD$!t1s%*UD2-jVk3NBAn)O^7_;FIzY2= zEV!}szstQ&Cx53p{-rkV%$j$VdZ2Iq{nZg8;#eIj?Qs1$+Ldpaiard9i58DC)ekzRW z77!0-6n(dKQ6~Eo1#OcQ**+sT_xeJS=lj9#2*jL#0FfRQZnl>`L|J^t-;HxVvj&27 zD9L|`z8lAxuD);c{no7svW^~~4a57^a+d7_(?TL#i{JO~V7I`tI6|2;xi}A?|H`ok zB!aam1pfpjezXCammqy4?-StEL^IJ1;b+Hf&O<_2Z=}XL1LENPl>NY3^+L$8dp6;S z#nw=Wqq3#D+T>Z&ci`n4P#XmrT}CNU zDkO8mt$XdFz8ujQfG(c#YDo~;th@72MCN16g1^^4SuRbbk3^Kr55IxO@Gtg~O4zjnSD zJg^=xcgZ!ZWc?ap8Ksrs%3|ofm_;Za&-t}VXu}o(FfG{bw|wC`d;NEw?PaV~=pH!Y z9XV8knp;Xe5Hx3@>xSrpLi7MvFgTF)$~&M)oM1&_lG-03j}JMT=rBhK?PUc+seMnz zH~0!;6REC@Lf3B#T@f8V1eIHemoQND?JEvar;gsOr{f_62Hi+vEn3ln& z%`64%D^B4hFLvoagaxFe2WcGh9E&Nx7LEiQh5y6ed(Lnx?x8NogMoyWX=M{m0w7 zNgT*)23j9d2f)~fRjrH~f)kV2Gi5$xqDIG&Tsga@mo9V8$OnWV9m4POXrM}b!#dYK zs7Np;w@T8;9eo*UMIm~>dU??wq~BN8K*GI$f3FD?_tE2);Kz}rVrC)1>PM$>)eyq2 zQl0oMKQOb&FH30Y+4BJhc{obg4WyaRZ{febYvWHym|=34jEIG(v&&X$3ft#jVsP1+ z+R@dXjxWKm(^{F+As*2j7K+UKNMwi3Ft4zrB|QRzVe8jLYZVTgGIq0#t}Pe2QlF9N zh{q=mOu|nf)VEopW9I&Ngxa(n{rVIt1R~EZuRfBh-s-8w~useaBd&S8)1XOK@;$hpxv zi-?|g>$3u#^}oTEXVbS`$HGy0CmES28V_4Q4E;*X_&JW>+JPF`YCfY}UQ{W*P=-N1 z5SdqD(P99epm{gjTKN z{`QSt<=O*dt7rRKiwRR!ooy-lSr@v!1?DG(y~jL-sa9?PAH3*9Z1g_*HfQvi{Dx#! z4ZBfU1vfvXCntY)J&E!&I<&6VZstp3_-B>5wkxa~#GjRyqWpV*^=G0&AiRec0L9bh zyUM8S&-3>>$cpzi9g^;b59=mA5!VvXtKSvJ9cd}(Pt;G960l$snlKjfjbnn`#hxry zv>YX6`5#4~Z6W7$9o!SudUQj@VDDFgtV8i5LLuWKrg2yWC=mY07%d=v=hvf+yxF1p zz?~17M{Xf&zn7wv8{%* zbw3$&i%#NaaGC$mxrXp-lFjp3w?R0SNow&LEGNIuDWE__U3Ul(3SMn?z=(cNAKOL% zXJ@~Uro_=Bu-Q0t-d%|SoCo3T6AMBzLZgG6*yGL?szEK*PV~T0D@sruJrXOvz!aiP z{5xz)T>g+aLDm^}>#uC?o<^15S~b?oXZ?)6!jP=I5z%#5t@G_r$!YZPNjL9b`Vh8P z{BH38NR8cWTn0YB&#i8mJIA@Y3Es2(K!%6|wNk7bav&eqDZ5y_rO-Y}C%DeuO&)Tf zB$m|~BWIzDM&R6?)11MCnpzF|5pWNqCy;fMHmUUWrPD&Y_NtDv4%L-fWhYTfF@-?N~bJk)j#O5k(${G@)O~(I}_lF=H-&Fp593b zspLbGHn;ob)U>=~3PPZk7I^cjTNS|6Md)GR7?hh64BJi!(2gD6`9q2#Vn~ zj5hy!4K^??OA?5NL@f9n2n7CAjRki>w3plOx4>v!l!I(`X;?<~qAP90Yjn$1J*dDl ztJcKp8j+!6ZV^F-I7=MHt3wyk?{&d(h66aQt8hRgnE{@s=83?naUPi`yuYvKL4a<2dHuYNAXmXkO>NGqMs>Y@-K}O)$+=4$%$>06Mq4kf=z(fAc z5G5RaMt+=?oYpUOa@jtcW{qWXV3|{|o$D`00%PQ#RRv%^asK3q9qN5iN;1lh7vs36 zr~h@Bl)zC;#_0=$N`AoKn`DEHW9_rg%<5w4o2!|u|q^hUP(uR*ZRd#z))#Z#IPFncr z2o7?Do`+G|DNM?EItSLuB-ZqGtVN?9jXsY|^vRIv>(Lbk_lc(YoU^1sxA}1Eqt>mQ zvm>VR;%2xMc;z#p-7yL@-V*V>1PTry1b%=Y|V&v(;o34>&)$E1wtlTlygLC!rsG?uslDB z-QP61x=&nW1vZKGqEqf)#5!&&o8@1~IXc{1FX&jdD?i@3*Xxa>H;J#}%P|(~QWa7p zjeDOo9UvWDVj6akl}QTIfbT36TrixZuLqXL5s6JoppDD75?w z1?}=f{{9=S=f7Rx+PThHEpyGIcwUK{O56H+5SKVkjRg%$Lh)bb<=(6=pWi&}ZMhZz zK1-Ny2N4VkpZ5j`xDx`!pu&;hV6gQ;0Nmjj@OBinvG!9M_wno*i0Ol6>17hO6KNQ4 z9xjA}x%YRS);NFJA(RKI+4Ct6x$C~0ivT~=D!LYVGIm6b(66i;-2wC5%M;8HQjgNb zH4mZzs`ikr9K~8^EP7P(lD3>q(T?uz1^#$Vtwit0AB)*oMOOlM+}AZi*BY1h%8qoS zF?$=ag%*U~<_DV%2nu8!(e7n5-K?XHzOr6|LL&yqe`DXCr)D?x5M7;^SIS(i#p4;G z2OZDb3b8VHrjAJ-iyNKMCJGyHW&hmftV&!FdsAD{nCrWJC6LkA&=)2qb@z)xvB8LN zeAf*}As(L-9}&PQ%nGa^-Vl?lhwTlZ9l^bZ|IK%=mj2Bd$-Mdi$CNJ)S?RMWml4h} z+Ft~hQm*+vb)xygX4IWua-Ujulyk9zxV62DoSd<|$qqG+ZaLHUz; zGf9gftNqXO&7G>%WcYYSZ-RNRlazfl<56R1 z+GH+{o9>mDn+qVaU-o=k)3q+J0bF?bd-+is%-J^~mlPV*(tMcgE8v-pNQ0uD!Pa7O z-zf8J8`dctCh7hK7iPvBO%DKf-zj5=OOf?abUi#iom(&_q?SV$5svYLL zl#;Q2Q77P1Xw{K(%))|hWMf_Ds5N$a@qe0{S0$X9k=idQWdQYa7}~Px zpfqx{ZplygFFcCfoHk%l%GaOZyM1R_pr~V+mX5>-XEwEr0$C7s1Vg<0B_`P6Nkv5k zy!!Rq+k|Y5W0j;;DqY)R5MYPthK@#PHO~V7;YPJNfxTHoGwZ?qQzY&extg2zQL%j} z=8fdRul=y%o78FIg`eAwCvUh%eko%wdvYz>!6n_yO>$AeUyjTEJf%j5m{w(*U*Ks*+*dLR;V@dBqrPyA2&$hcmGWb4r433P ze#5R(sGa-Y1cQ&GU-j}gEy5Y#!uf0sJ|s&wHU?J^zXW)o ziQJ1Uo#~mu>-f>17|9M&c5TV-2 zc|VMda`+2B!99}AK=XBuMy~);I{%_85FXMZ2`^=1QBj&OS(9yMtt!@Q$(XTy>P(qO zqs|6S(f#RolZRn=lNZ~1L&>X-_EHz>+hPVhFgR#H{-|cDA^_nY?4Qyy+~=vk+Z*Bk zxfDEH4ke+=TSQ9Jgi7Xh3^-6B88-H{gFY38)p^$W0<}*Yagx6rHH+l8b>$xPw6~ST zn|6h1bpLqQf4i9)1?mC6BxJGYUjFj-@d53h1O11C`HCo8JvT9pjjWblJ{l%_Qf!X+k3F?5quJ8$Z#295 z)GgLMEz%$1qTsW7h1b#rtRd!l#?#pGxM72OE<|Y#!n$8>w}=l@FpN$F)jeK|Yc397wFfaT)*_1Q7csN{uF% zfJ2bTMZ=6VQ5;hp1Y42y~k>G=9G-`jAup$aA;?I~Nn( z8lykh9RecKp3IZLx;h{Ew|TS4g~Nt(%~v4=`HXrM@F#47c+eovh|ea1o)t%@5=50hZ-`LVH ziH_L;M5H)efqZ|NhIG$k{~WEY3zc($>Yvcw!zJ(rrAqQgfr{AI&*`D6nAY)y{hgQ~ zsNpa~4*^aR_H=lJUZKFQU&BDd@7HBdpK<$tK0`1JP*;6fc%gRAEIm5fkWp?I>6HOr z6&3w@pPnyr{D_OeV*w+Qo-I~Fh0G#SWD(>GG@419fR;tz_tpjTP&Z!iidlLsUKS)> zZ(CtP5n(-I_uw!aM&UeGA7;Odz81)Bk{V$$!9|N2-%cE`C8Q%kPx4=q$YW5sdj7b|P6)CaOL;G2;W zIFMK|^i$nbHIT?Cj|8o?I8+KQ+kBOI$Q4q|XKJ^F#_}yy7X!2`hz=en*7Ddlf2Msk zi6NbK$fbl$INJ!?oWfDEw}oRH8R$?OH@_RI7A(q=;y0x8Lt)fj&lz-LcYfT-*4Dr` zg@J+VFotcUFH1?RN0p-RHgcDD<%6LlJGVYgjfd*5Z_3I#e?KU^YZ&@LvswnC-nOjw zOa)FApc&(Wd(TNN%<%waI(N^Jlj{*-ozzJUnkgx4X?U4Ny_Jc&21n zf1@O24*htFjd?!96A=k)_03g^dmxSXk>p7)Z{424`eihEET5&007bM*Y0een0BlDn zx8TU_O4?d+90^afy*T`Jli8dxP`-MEHrzJRJPKsDQAq50LbF&nNOENV$x;7~%QN5} z{NY z7S%dyz!&GqDY}cGccxOYjIv8A8M0{8?j=??5)pW&qA3Yc$3m*71UG78$yXhJyz$C5 z%flat7eb4tnF`nQKN0**B3X`T*km^Tk`5ugxbyToi5{)^KmIWq?0?~u{+y1zk zP@rX$YkO<2n%==)6n^J6r_~8=$KrI1@-6d%_d9-sI`_w3<3L%?K~q?U2*9!2J#z3l zNmg7X5y4-1G~e`w$G{;)gX6SfB_99}n>%n4sOAHhKqJv82b@lE@jqo3n)hy90HHqk zeRbxM?u8eFa#j-yk!SzV_65RCH}`SSMtqZCVYb7(Z2@^i^*tdhy^+9-&DP-0VRPcmhxOLTyN#!>`)F*T-jqqFbHp3b4t`#(xjQq9w-Tg3461|`V zTje0~f=DFcG$m2b@HucB?*l^Daq5=DG0pzPFlgAC6Yi%k?=Q!+1OD}C;|(vt8`7LB z8Vv581iyhCKel7=AUCvYj%m;cZ5;dNu4*XaZdYd16w=RJEy@&jjI_9ajqtDP$DmyI z2^T%`&A0q*29@q|^tF9jHLzMRovvK4T(-?>&_k2Ih}#l$h&Iq>9a}Ehz(}Nn)H6|{ zl9UR)kIJ3{xHAam4#5pW?wb{5QMJ+F(2F&A@sD z1>Y!p6;{j}oCS1_ZrG(2zRrYL=^W+q@z~GBE*6M$+YhtLVlD@p^HM(c=XYBA6ax-#X=h}~1Cg>MvFsq?A`fC0961>YCO z5cC%25RAHjET%_E;!TlVwmrY`K8xQgeB`>m#gLV^&euTzUnAc;tMM|VJeYRQ-2H*_ zJZTh^Cr{OtibS|%y|XJgc{T*N6z~TG2!=hS6NaB>x=IE;J4RPK-D;ck2t%esM~XN_ zg#)RV?;U%#PvpkN6*0NB@c9oH%0j9dZ^j@8x~z^>a;G0)I%wPBm~8r`cT`5d`t0KwHuYJA7gENb^O3wytI1 zWZ86TjpESgWM5gDJF}st-3Tu$wG60}8*fQ{jYA<8tx{Lj4;?bREcj{Hr?quh`3S`oyaB_GM8I{T38v*2a%NGD zt&mjnwSQUV*V1>T8J)dq2*;|A1p5vT9{r1rJh9#V^E8fd1RflXlYSG8+!*WHKxtlHl1sR3k4o;!AYeevFUn;21psb#9tHCWtsMb2 z6&t3&!j^@)A<8?JkGbe?(CPGI|1f7Pu8OF8QCLjm+H0e?fZ#2802&!#&(e@bRxRM3 zU)&WbIBMe6Up(a;{M=^*9!1m#gJbaQLH2`PC>Z&HKOKbn#QcV>p<}5wh*v#BltO;& zBi_Rc6)4VETVY4lg3pOC!dALyp&yU%v-9V`Z!?fus6&LYd~cQ-d`Az7V4GTh+5l-N(ALP^-|X_}%R|*w5BqHlN8zWYz9H6W4*w=6Tx0geIgW!}?_sld@*@vPOM<`-2iyH zt4v-{mdy8WiMP(R-!v5xOGr0-kr>h}9fYgoa8EW*4L~SiMNozfqmDDZkYn61dnt#i zO7SM=&tz0dCpQop{;IZntMg+sHBcwUDx8nFcQth9p7;zuEskt(K&s>rIswx%ebMpa zSE660VfFajEvI@Pjt-gZVC)vY68}&LsXtZ?C^CGq~u~G2rwWU2co|WP19Ss7!L|D01~0 z`11HdlmT)5Su~3&^_`t$D}@Z3u+QJ&Roqony9@glGpQLmUtGe20_RINv$TyKvEseV zhdQcQL|zfbMT1M9=nva*FjFC3(zOF0|AgL_F9}&@={`zE!M?VJ^k=4MDDA06xT`fI#d~5T$TWokLT6@%gig#972b|soe_VD&nN0^;s_HDku2|;#pQ$Km*6J8LeUp)iX zpY1TkxAU{KpW~4utI7r~>^~0aac*U5F8p^@2}GOnlKCnfAKILI78b#^GzYT_ps1SY z#Z~Z=`%50io9z1g6)98dM;ZjH>(HlD2$KHuvpd)1>tog0F2fxXI+tBrWZ(MV&Q@l0)QF8%kZUj2bSGj{X&Zt<}EN_kJSqucwG!H+(3nJiE(To2PsUSiC zj!o@hWP3`NN5&2wU4E}!Gzy!kn_QvAagS39Qmf1XiVlv&q}BFCY1@)hlNdpzY^^uJ z(le_!>V}N#D(dbj(ZRk!IX%U6k4wlc$yJ#3Ju|voflXTv!v|56{s#kX=%QUgXyFYQ=Ybf^Z<n0`6f?KneJZID}h@VG;fQ2&&_$SVDxc#>?8`SE=L_Pf`J~GiunY>}jkA9{%&`ukg5&LQ@@XXTJm2OO%|I`F0OdY$ zae_Q?e%^biqFi(=Q4VRxS`KG_-L|kcy8=3Kmd)V0#)Z&r z#(*+>spVC_Kuc}>MKou_DF94KnSJyE{sC@Fpt%6n0gds&gxp6BcL16Ak#}QH(E0(m zrv({`D@M4f#pp_mF3 z|8$LD3P4LE*WZTiP9H~$90yr-C|6kBANv-{(DY^P=@g{4PF$~>e?mKL=l-TLM(cms z`s%Sj~Kx*E16Q9%x5X9Wyk0sYCoarif* zt{GA8dGECttt0go4lHY68fQmHTR)j16N&Pw2f{I7fG^{3PWlB8lyX` zXMD%Pj9DFV&g?_me8P@Qf=s@Ne~X4+d|f9(MC#Lz94J0$Vv?3HOp6)|xDmdks^XC8 zhnt}t!Pd9y+Mx)y>iexYc;Gk`Usy;1fC=}$*ZMnRuPj`i-IgtpLS3e?__+5vLNv!KYS6%R zp!#La&i68qmloQCM4HyBGSup8#eJOF7wiwU-XBz~Barh%_IoYd8J{?A!oGpur9dBf z!4MTQxcYtN>$&ESA8%zDoy@s*YL2AZmZJE|8~Ui|H`X)%TJBmg(ooY-8H_TDhWU(W z4BkZVMFhxOiW$}()(M>vcUU3nA(bfy;ui@D3bVKxd=%ebMW!NMIV`RpSD{^WdE3sq zG5yBg>0R$w35;p?s>YR5&>A0@xI``dzmI}TT5ia$Z3_!;IQ_M<3Ap724h3rT_-W-k z6;GLrahN2knK972%gqHk^p>8Yv(L~{Jq*9imLK=`*_Q^l;%VJAJm0<)xl^DPYPm}( z(bzYgo1Uo0HGG)`*BSwU1fZ+upYBs+7CFU9)<>>S`Ekf*;$K(A$2p41g8$UGKfipy?**<2%pi;_7H>5 zaJ>}wU(;Pxg{<9rx6S))$^y5uOm1T>eow0V=j3^m%8&k(dA--|LPAl?id!&0KmYh9 zcqJF?R2nXch^L{5i|1=2?Ilu#R;U2aDtyAT*wHBu>5BH(g$Do9VM%boK4Z}y&!xZn z(>@4pjpNWSo=*UckZ;S1>T3Ee3Y_UErTft>4|lbYhDiV5(#A zyy(g+*trzxks|3@^v~s-IAEds)NbA?=|jZ9{$EUjDEh)bgO9z@6Hes*_#xc%3z$eO zA_h4r#2yNiuBT@V**~N83VUjCptFWE#Y%75`%>3v33esc!6&k=9YmaMGXUZLW9b}& zBkck#+_7!jp4hfC!Ni=2J+W=uwkMd_wv&l%+r9nm?$55Sdh4xQ-52LP=iGSQPH|O$ z;3Cvne$FkxASS>_5Aqc#YImxfUZHufRVN+L?tNbk!u_!EZa-o6KJCXGm3j;`HYW{s=h-0yeOaF4%XDJ7Z``e~(le#};t z#@WYm1Ar-PQx6GgsO3kAEp&wik5=Z)br#w~F4EPT{4G2%#Y+3l_Y@|7T5W2G` zVl+0Q2T;M-dEV9qlK)+yQ-;})ON3gl?Au8*zS2G^Es{Rx`kYFJ|D2Il6*;m9>^E~H zsuu%E@q$9rIY67oo+-@QldhejNoWrj`ux294|pA;=t6*3{90tZ=hmUiuXGdiR5~Tf zn>M>JLH7`JMMD!mQ9IAr2!{qt`tOJs9GM8Lcu?~=emc zz>BSBgCB=m@y;fJB$8RFwkaK$q**MFNoa~;sX%F% zveZv=;DZIwfdQllw&&fCHdLV%@f4lY!@Po@FtZU8by zWdkeV8-^wN+SG*{X0S!*9%3fSM@6sdf%M){5oJ7)AOSV)mniZ)K+mwpsS5y>B@u`T zMoey3N-hp~<=fpP63+zX%%VH#%2ts3$8d*s^d<=)WhNo?$$J*Ca1L4Dk)edda|%H< z_aNt;B^KOTy+zUu44X_0LZDxPUe?^-QjD6lkJzknR=V1@2jPoL$`~HJ@pY!O%X>;h zbxYX(3JNy5lr_{i5EY8Qod4_(m&e6oy6fO$yDsD~B_$g~&iNz<=4L|8X3|YZF(fAr z+YfVJNw%^44e~ezmD&z;_}(PAJ2nLs*0hIyS-DE)RxW&hQI1eAu*?GgD(Q6iI<$XO z4*Y4c2I`0nu+C$uZQZ^~Q@HdZXDM)>ITqFQwMS>*&s0_{SsVU{>_VQ96R+yhF7mV| z-IJKRR)wEw7)p(id;n&<4#v|x8JfdD_Jjdh|az{oFwx zq1$u2Ct+&JFo{mFG(;Rt0lUlGD5!@f|Cz@UsV0DwA!fUk#wWR=La%X^;v#8 z*=|_W$XD&QM)TtcW|c18T@h`j0glOd;BQx z1%+W`tC-TqIV&e_BHS|U;o7*Djho2_K)84d6HYhjofeTjRH*CQkOt(nIA$IEbz)9= z6#>uSN38lX*1hcJ6|SLexx5Q?6YS;R2eVY8#pp@J{YxQ-r4nyo+G|f)ZSQrKAslGY zUlpD{1Pbx4UIDq(5P{oE8=v(=blcpZOWIb!;%$GLlIWIlzP7a^?D1^ROYDRAomY6w1jEKkTaJfrONsRFj_li0W*TMzhmXgeLcrrybDW* zNw2?vj`c0T<46s_O0jkswvne%DYHGVwq1ML7}syZnxVtCjtTk5hbEe%m{|HUh3|F~ zBdc;HCE1+Lz5ykP{I=o{y3Bu?wSNs#CHdpSTX!vCW`wG>$L>=I17HL5D6&RhQGT1; z%2(WpuOO-4RyLvzMW^NwfRVAn84JwJDeCi0HS36#)~tR}B){GHHFN>}s>pyS$nU8i z!aRZ-!+x7GvY*0Qj4yxRzwiyT88+_;^jo+-hC4Rwgr9%@^W7|GbO~RSmvz&wjJJKA z>OlUd2~9bxAI}-TfXsLRAELL$`5<2_uC3*C_4$-)kjJk5)5qL!V~FDfRT8e1q=LX*oD$OsnCS%SVdbvjFbp-yv49e=SuBr-J)Wz2aOH`>urk+==c2DKuCE2q zvG?9DNgSa&4AZMh6RHqb*+^g|Wb=FXaMp|2q45dyEa;ZEbgwFgiBjUtIBEKWZT5fW z(watfhE6Eh+uk+)Kp8+r0WPiC@6~TSMzAy%I0A~+tPM=2^Bu+qB$J7;WVCfrJB^VG?`yoC8RH{#coWD^UVl10uflXii$+zLS_HG0Qu_g; zY1wq}lr%^))60#U9~|R#U^ppf2$r&;ZsZ2^{%|AHS8uiT0h5;zHM-JG0sGkKNYYvg zUO}|9P}%cTU4mxlzp9LrQ#(IsW~CjkF%Sa}1$!hb;z3F6ukJ&jkN0o)&JToQ7lOMEOad}@t*Ijh8J_HU#X8&AWH zcMGL z%*2Q=9JYTsuy9N&-RRQwM5xgMGeTPmkwDg1kNpI2KWSj0=3`reZPJ{zG4E8`E}!12 zy>@|M91tlD9~wO2`W33_$bQ90SKI^GrE2CUmwpT8v5f3DO9 zb3+zEUm}-@l3sZUUBbd=q&g?;o679LjmAD$Oalz6n56ko{{3D~*^m`yGqdH$q=v76 z@C!sg8Gz&hAg_@d`w%oWM=V|){2KciP2SRTxC?WEw>#0s8a;L(ObaI;rbf{ZD;td; ztWrOA`+#Acp`$&q*8MWOA|N~8tw)A77?t-yS^WD?M?sVs(01i)s=4s^(0WVFu6^lT zh$!iY)b|~E%APa4y#0)IUMNVE(N3>3CY&#yb|!mtn1LPjth)r-1mL*9p9f~p)Oejo zxO&&)2da49mO;Y+fhT9he!q0Bsoxu~BdPo%Yp9oU7~ zlzyWP-z0k-0rN6s4&HfMh^*58TEIJ-ggIH7u;day2J6u2IzRg}!iWEMa?kv3=puX0@s)kfhUKI<nUe;<4`oaTlcT{W4A1ZJ;9!fDnN<|U0pbLPr2TZvU=Qfc3)pO!zP&@bgw1c19SbfMN(7=oHKfZOy zk!SSdh(Gsjga|B@)UTwxjT0GMD^^_dhICD<^HNt~1Qz{Ew9K1VV+KAyqbMWW0`nHW zmj82`Df`~@GVMx(|>1WnVVQG$S}!p z{K3@q=j;MCk}!!rCu!^b{2?=2z9mj2+ys}Adf(+6ALLJ4rDop zD%m|3Y9n)mP3o-f$|hI@X1w52Tq~K`C=;M@b9k6g`fdv6hLW8lg6ex;|5c@F%adLA zz3G1YWqqB|iaMqZV;@?UI&(GiXW5tsryU+IkjtF;H7Zv?^q1%Ll0o1dy{*(FmxcMK zt#eQkVPA_y;X;BNE~g58k_l?2U>~-ylKvM~d!`3kTtj`vA)^|u|Ij<;Nd!Ml`IgB}22E~1 z-q%yy`G(Grq^t(-`N-6mUmi-F_j9Pp*?TX0e-sDL3TtPH-`My#zaeTbjEA+Q>iH2WMua?*iR`<3 z4@4w>;#iBN$L`z>40#2P#lGJmAm9krXW<_&RfPK2r7 z)^DAKshJ1`jMI(0?73yqO8{%V`&vo31p3TxZ*KwDWYDx)dxZH7mm=y~wYEnAj6!pt zCFUwi_O}|Qfw8P}#h+EEl5j>%_iaYOMP$rApU2j0e z&!0k$@kDw|FvRhkj3cp39U$7R8#6IEkS+>+Bj-<5EW#q*f?s|N|2&L36xLt9WME2p z?s;;4?Lkrgd%Ml8Mp?HDU8g|=wjk-|fx{6IKvsu>&#v=or!t=<|c$Nqip;r>nu#3*>vGy|6@ zYUfl39B3gSf?35bvqP1yO;v;4F?_#8jU&tqvoOZ^1@>=w`P+@ZM#0ZVtOoMTas!jE znw|7&2{!a3!<=tE;`oVXB7T%u6>47-sMQnYU@3P%RySaW-=8jEbArjJAMY~5GQ>P- zcT_pV=?Lgeh6+Hp3;w|HC1Vm*Wvyc@=a%FPvT_Zo46<>m67@dE57t?2RwUVO30C$P zCy|}SNj7=SqcYK12B?5`(#r26PhY@?{}c?h$q#!5^bhUT7b$Y#_v(OpRRHM?)SWeCce} z7}f;lOe1eoMkfHZY5M5nH3a&v-9xv&Mnc zk$x%2|96w;u}*zWxHn5tba=ygH&Pre&(4TJy)!{)j!Moc^PH;ur3A!4-p-l?Hf#$| zZUTjQdDqVTvS{TGPIvMQ;?OK6G-fp~4APi2k^4&NOA>DO>B=>!V^F?HI|wX_LEST- zD(x!|HC`--7MP~^j>3Mw*+kCRp`6lPPL=rPoF$aQy7o>DDMV~zrGFI3l0qI9vDKvO6!f(x)w?u@o$-nW2&A^S) z@4Oqhdxh+!L&Y9t2q{=*sYbLzHwBTwb1(7KT0CT6Eocs|9nhQ7k~wtxWmPhYgq{_L zRrC5uXYIh?4@6eN{UX95%Q2gHCI4OHMS1|xa+%r5c7$uUx-HLdo}w*EZ5pdjGEqfF z4h%jO#M59`|A5K?C0>8OhsUi6t|KTxkZcUFqGcsfh8h$GfLsBb1b({&m@(4zmzh|-Hq-Tk0}%c8Rxls;ik?;Rwd_)1pJ^um4D#?-SlPsv5d zcCIl)k!df7gBOor%G1Q)F~@)k#GSK@XYG=h9APR|&8k)d~1xw5Xo&x_^RaAdf5xb$ipUB<$>Y1WRYMK)E!h8-Ax>=yjpbh zqGb#R=Ea-mW3Ap1Hd_~Ip3_@DsJEJ{%R0w6U=?w+wBS?Ro2U*awST3UK60blU*r%&vceJlW_QFOVJ450*~Uv^woW z%KgbiqRKL?+HaU!!tY^>5Z~9i1!7bNSOLeZ0bqE|I?BBn)%{Jqx{#p||#WejN2Dr(~IxzdE-agYJg0aBqAYSJP3X;ZSUhfzOZ+2?pm z-3PaDXHabgjkB+?!Hnl6x-ITgw)o-Q2LU7j6|mP_iVpr5(X<1eJV=6$>a3Ivsnko- z?3nSeL;4PaQuo&;$(4G5Kd#33Yg7AWLaf`$!@=Seei)HWp&9+j&6E5i*N{%OcwwNi zM%{&V^tF5*rqOFml2>y7XRtN->pkv~hm~4Yu!lr?tgZYO6+= zCAh52OkbEu&~yu4V!iQ@U~Mp37T^PrUX|n!jqFN^;mDqXk<{#%Zn6SrE;{VZ9GHGh zUiOdbYn=~{U6P32a+6Nr&AE$|3FPt1YAY9iTN5&#x*m&*pG~^yIZQYZ;}_qs3SH}7 z4B~wL1*#^q#ea^F-nB?Fw0!tI-(3uyr)@^`^mA2$Zgk-V#sw{aJmR>RWQCiYv{kT~|WwKE1? zp0D7Yt?tivA8$+Bd4kr>n9spG1Io1N=~I3R|5(>UT~Aw&G2))k(T(GtiXq=9gLSUq zsuoTIqYn7t3oQxRJR(9=h=h{^h1A7Okz@9d@;tJ?aoWx*K<4!aonyLp99}>aky$^!xf_PeT6+u-R9Fx?f5S zkP+)jpnxW9yQ_nBKxYV1r7TllcC;@k8Ni_~D!&Rpa;lczo9-bI)HOU#U3Kc!6 z`R#bcu{N^~4eoO0TaNJTJ3&&^KEHqgLEyxc3kB8OzOu!R9} z(m2kVXC>BZAalCsr14aiWbi#xWsxB6k5(Q}W3qf;A=(`@o*F+TH2+DOjsMy)dH>?j z&khLJSxUL1(+MT%UW})PCX?={Tu-XAGT|ZjHipk90{G8p_slwz$Tfn!B6)NgTOuSO z2s5Pn`-e0K<-;;2x_R&C0sy_D$dAMWN0h(i_+Lhsg?-IOY0aG-A2+lviOHia&9PI( z_lY{`L^uC&M-~)bq?zBpbyzuR!MZ87`0*EZX;!cRg>Q{@B@jU4{t%~h@!mrNBChiY z==8pNFo?PPb)mr=TPMC(ya>(Qzz4~b+mNyOr^2h~R#&;y$!aQg&ivlS{!+^?kd?XZ zy*c%+6yEnknSAHppix`iOL=nVY%n+Sqk~K6bq`LQc+h{+#Tf^sh1SlJX#b;rNdv|V zJs;2SCz@R8^CioV$@Aq)7Ny%Y<4AujyB9}f)1HD zFvR*W6KH|Btw6K$gL}|B2s?R1->SwBMe0WLjf}AuQ2Edk6twXs{4W=1TPpL(k}-Tr z=BH4Idw)JwaT&ni%R;&boi6duSB^v2r~l=HKQhq{nw9+)_FRoX3hi?0X`Pqfx(Y7z zlxnDywv?onXru~~+JXlub0J}zgd9UeoXFkxlIk{$zWJr6 zsesWFpfUtRaenqwibGZc&2bo#E5PE%)Z@rIum=+{%f~aVWz&}5DJ#%<+*Bi8^WLji z^u|6}`oG$*;iV577vB*bOg$F6vbG9&B;X456+9~-NY-JbRa=dwZhR76+PEveGqOQ8fdh07sZ)H9EQVen0|FB{= zmvBnCNTU?(y~z0{4}swU61WwY&$bHMo}#kCL|n&BKAW3Ol9P2l3>AW0KzXLaPf#{M zspY?LK(JFt=d6V`-MmC|0xL}16NKa#h=}|ED z4@;K~rrlG&Zutt8cy|8`c1er@DAwtyeG}cOqkG0S11&k#G6#;fUdMK-F@%K+f-IXl7+GhmV>6 z8+nvIv78OTTDc!_B-sW$d^gCf-`t05YdK@ggX5l!O|e{gV6C40^u-8U zVQy`Xn#%P1nG$%hiOIM&vz234g_V=sqD|{K2fBQ|SH=5|5>ZX# zLi|&UY9DLxs(8V@*e>D_FUf-s01QiH;an4ceNa4p%GIAPzkJntey$2i+q7%Rib*X> z^#I#is)R8@r^R5Zj%dQuy3-@OL=1=njy%-#3>U&qm=sSSn`H|{{{RH()I>lZ;LCwK z2nR1b`65|^4Z@3N>qJs%nB&gD*T3v|zGIL1Ti{TdduQu6JjU3f+{KnzOvW;2I49tY zE-%>s+rrj9x|3g4JeTg?;AdLKtDnBmsw9@n5pmdFs`Stt=~@hesz&8 z89)1|J$H{WdqYj;de(uosJd13Cu}-EyG{JQ5GCCPhdlKu zghSzliC%R0R;;iFLNBUw0>KDjfDrcQl9ch+GSmg1UlYSS*7Ak6ulOb1Utu&3O{-M- z^uW5Lf$!_UeFwiPplva2o`1R_?~y5Emqzs!nXdo$^Ov!wcwxxqDBl{8U!$` z7j8~q678Q!haL|59Gukw!v_%zz-#${*Xy8z{2Rf%-JwKYgeFn|bZohYo;ib4l&GdZV|TdD0UjPawO6OM4Zn64_L%r1H{tE(qL zeAe2%slF4TbDylAt}KMZwJ^Nmp^7vi)CshlRXw6BWTBzm_7ue&NlJXcaB)v&?K8^^ zccn@dC&IYl48Bg^~UM2jT5$GZQ2Q3b*t?UE(2uGeXOpmOeR)ta; zxiHc>j_}Wop2^;*nBMfVy`Rh2H0sl92CUeY&QkByw`g*izE#rZ`6BPpJ%;Q}5{A4U!NmkR*-r(XStZ2v=Krn3Nmog6}|e5585 zsi98Vs_F_qe#&V(w_C(j_!kDvoKhC)xkVMSwh#)a>0}|~Jmh58AJFRUTpn}kCmHmX zrW}V@i|=rm@$Po&8Tqn0RAuql`I&J6T0hv$#YQh){|k;;kejYLE(Z!OXPs-!jnTl!L>C%kbEwPK>geng$1d1l|%*-${ed?&TJG;gEnx8 zl2C{5_fC45^^5d$@$S5c_@6R578Uqjxibn2Eh#V*=#Zr^*n(#GO?Z3hBI<-zR7HAL zFU!--^k>1u=v-TnRE+-w)FmyPpQPQguKng#X8&i%#S| zy53$uMzib3anRS;E=UO}9?eoAXHm!OqUrk`Xpm${TO_FINBb_EPCjCZY8}E+r68G$ z;a4EjOJgPz5qla??6Nnb3W>(!I|J@r(Q$9YG4OViOEsJLpD0k`n*#PRDPgIP#2BX~MEjK-46-FGFwz z{(&((qZS@o`54`H;lf}T>Rj3A^PCEXCS%lA&1X4@putfe!J_1`-`0lX_2Kc6V6w=4 zTR5b0^odAYO~`NIFp3ceDnw@(m)7U%aTSY;K)ke{0()IMKhuMep1?pY0=uW65&<8F zMUXtaDzkeb8A~t6{bkcC`DJJKSb%nSgX*O)klC9!sNy6D@?RTI=ed63B7!@`eJEEW zp*@R?cFCqUiDrG1U45FXMq2yEB(;tiCi1%y|6~aeS=_NNBcB(--Nl0!m5>3b zxIx-^Cb6DUv38!TeiN-eL+Vxc^$?a~3shfhH-7t}2@EATtseyU2~DCEX_^rKwW_ZY z%JqP-y1Vsc8TL*j`i{H`hhASq><0!0&%ZMZS<>rxo*;$Y!JE=loZs~^s?*x8!aKTB z8>EDk{DdbL;rA{parVwZ5dhIF6;opTcn^E?@@XnV6wHP*5?H*F$=m}<7Ww2#XfM!r z7vT|Nbde^<{msaG!p99{c%!$&RfZFM217awl%9gRG)$pfZ^`T!zJa}d_Jn$ zwbq%x=7P})yI$CLw*0o%g?K-Ln( zUYy$jpdh>uDOr3=h?9AVrzXTiuEv;Au2m>Pv+85T_{Ruq^^nM)`|h&P5{W)J?mkXq z-n&DA+|6=5;JM6uZt6HF)%l$t_`VGE5$f_+tostqv+G-+orp`+eU-+;gc?>6_?QMg4>rvyGnNUu;sj=utT$7Gp-1AV8b zPal31REI!s{UDsdEF~3MJ-#-^7dFzrtUInnID3GE7Kvze^3D=4q9n^5=P0RgiI-Dd z;#h7%G7km}12=ugYqlwUOP0K~QbNQpf@e%c()^>8A1SDQ#G5O3db-;JO!F}M{ z3=qk6E0mm)1f<(uhvReieEL!d3(7AoM3zRW8NIJ;l5EH51&> zpgExf6Uqu}SKwCWF2)@>#*}#erxJoY*$}L)Vm-hyQQ{AT74QAg3#X@puoT&`kO{{4 zf_l`&{aHPS2s@^_i^y#&lDjL6`pY#(rGhHA`p`I9JeGB|=m7FYv39>b zArUPR1kvj_vIK2uIyG(eg~S3f?MgC%Dg4i=6gRQDAErnM^AY$v61h#bIbFNVO0 z!d0Rp>U2h>j82i${m+ql$%*1kZ61uMi0T1#w(v+~$fa!U#3SLcvO9Iv5WKxE?e!us zCyV!}B~{lV$PQh|O;1lxI!xR&xJ^3T+}zGQa5_@vgE94Z@MtMorGy9$fT#EVGR3_0 z)9=pxh`nrnR&jxzc5ZfnrxHVkuS^-jCVU2|sy7|z z;f@&aSENyE1ARB;`+9wv!b!BKeLM@<6lQ_*(RQ{BMl<~)9FksubfFEahHiX>Fj3{^ zRWKtt8j8jWY-Eu=%Q(p;bzv(oBRaOAMJBG0TE$;pd}%0Vb2jvu%0ujx7AD7~Pb(5K z3bLk|+!DvFfUF=f8>Kg@hcRmJUpNVED9uEqaH104l|!I@?CI516-o_^kMEv11L^Pj zkUz3(8ghyrFPU3&sC$FRS|$BqNBl@as=2fjBeol#c=e5Q`Y=`gARL*E_Ye=@fupJr z#)3cLA!D>?r5w8=CQC$+d^j%UWX1Y*uiCO9S_B4(i0oDbd5qF^Z&ICciG7nwLhp3V zpu8cKB&4yV)0w0#&hS?th_?iLE7bN&1zpK*%VGpQZ^KQcnHSKpmN+zvRSQ(j>OX~^ zD8V=L?88x{djZF_e@_X%697y=>Vr5~-e+Tsq|N;~W_pY4klCb_zA9BEH%dhnUo9M8 z$#dr9p~n}KQ52lRS{y|L6$1+s8}OfwreBWv)y!WwJ`VtzP_Z^6D*-cl9EF&$@Vl&M z92Vwjp`1K@172b99qQhu)4|z-tDAQ>x$_+^7Una*&W{Yo3s|+t4<)K`wA-Jp*_FP` zTxnQ0owhlaG6<@?;@Sp2Nz8yc2X|@3WP3X}I8?-(ry=s>i2&xPI}mRf1KV@_X2JHq zpPiyxpO^<;P~E+h-iu%j??) zQ4&IVyoU5=H&)ZxjPM@xT#bKiUii3|!u;QF^o?a6w|uC^9tW3BbR&PlLW^YZ7or^%GQdPrucEK01;aDF#3Cc zKJg*;KiXC2j$~J;6BlRm>~ry%@Jexl!j-O%*F8xz&nQ@Ym)Q70DSNc3LRU-wtr-qs1RTN*m;7f_h0?hJ z3FTpIlc0A9WYnAmNJZkwojcvGG`8GbK+LQ>^`yG@Y?!}6F>9kf7zwl|rU!9`L>e2O z$^MOzXiKN&L%Zx*cMIvZE{mtC+)!9RZtlSF$A>6lZGs8RTX(<~c*mDZ;qeHiC+vx2 z@qCGU3Vg~0wO)XM+ez|IK2Jl%a?6vPdoN6n``s12HbgfIIk8(|L%<(#|?;GkElkQL^9f+RM4JfcB^)=!Zq8ba(`q zbp*uT+p)Y?mRe5~k&f--R3y80$8AUeW^$2V zi^+E5IuvRbT^PgIAnPoA{-vZ6(Z^87{D-l^?|6Lor`~^6T2`3M5rztW!y%D$BxpTQ zt3BWkv!(H-eJH)UN>?lCcV>R`I5RpP9FqFeo?q+r5c&!`uybk)!)bwD8dDe8KcORa z-16vaP=@Dm;3jH9^e@s3nrc~WSYM?c7P{s*7(gGYg5_?sblZFV|rh9qt=jLNr z7DhoVpnqUvae=nk&tooKNn%TE#T}V1EX%P4mQZ^cCpz+lsEjW+OU>jb@$}8by?VOz zJJho=+yFA;>d?K0-uj?9}Vu>=MC`A%dcH(>$`|d?&XPeVadox~T*df7*+E zSo&MogNyTsIod}Dj^);`KINJ%ZVwdnq9xT+j2L!Ens0CuHR*WmKv4LJQ@|` zr_&Ll_lS@Jjyq6w$#$itH$qn&|HbwL|7qnd=&3(D=K{e;@z*elN+aRoLm}fIooAM` z$YfDJTL*yqGlNFm#yv21a`miaYJjeEmGPhCS%Iys-=oRw=IMR6k5F55Gfqt=Q!8lTEWf`Js>2p8$>?gp(fGg9N_RD-ma_BESdb z_Vqo}A~O<_R{8otRy81kxY&p){RE)+o1XR77@S}d<2K)B*vWrBs+TgdecKIN5_TBV zi0tWmU)r*!mpYzPWZ0y1p&hf#yaco?IDbR9%;0BG$dM@ml|g;{H-H)XZA*MbzxhP>y0J~6=Xcmc zF-1`S^WxcE{ffAbHh(uVQz=M%RKa?1BjuD^y(@6eQ4+MtaXv;@mPpWhFxuX2PCD(X zY~bgFVV%a^`HNJ>;StHjv;J<8D*J54W_%xtI;T=?%gAFK4^S}Jp{mrC#wUIo34XK#gwfIu`^fKFf^*ry!dDi; zi|+uG1ny_>2S=Ju_U4%31MImt{ypF#Y6W4h@Rga{(zoyBzD8rVg~J}z)nWbrP}nlO zK@TcF7XQF|Wf}N4LiCvS1XWk_=^J9%pVuJF!Covrrqvi~`F9wRUM+-zbNn9$+d{H$ zwqonW?^(jlfK(^aZGYO=UlMHYJ0c&82KSuV@3f$Nlkd^Zf6lC9;n>5QlRJ~z>ZY2{ zTqky)9%D^|QYU&uS9LYl8rxxWk`9)8iCCwc#c5)rns=5AbFfz8blDpErYsBc$e?-H z=Z419oj$4UArZA!Zcx>KSO%IoYT(qc*`AQVp3MQTyJ$R*xzSsHj9v-%#lF5n(w*#= z|N4hLWYhsl^*}s9=z2^qU+yjv4~l zFiEhnnU1W3sv}07(7!@pn|5y2ndOEX?|u~u)#WjfpTNE^N8!If;f*7|br}!v={+?4 z&E+0-y1$d)fv<+v-Sg+_d}r9=ymYQgI$`khG8)F#>T@yg-<}kdiJjwq!LFi^Ab}z5 z&mmv_?i*5h$qr}m=&+(F1b-E!X8nPnNK5A=#-^S&q$avoZV(42dG?1K-Y0a6)p&i1 z4V*iggIoWGU2?#(_gU+E3e*?af^e zLz;xbJA0|Xj1XfiTlGUw9+j`@0C+psr}<@H9R7jA`p^>!e}jbyP;B>u`p1k^m%Ss8 zAOTmFabi%_l!WUe4t@>CW7?P(lk}wiw1Dk?cia7bD@t6AiveTwIPxZ0mIXw}IyWQMU~4?*Tp(`{?4lhEs>>3ICdCs zI`wOtZk32i*(Eh~=iW3iET34Tlb%DmTzA-}NC+p4C4y3u8=+4{e)40|KIDhbhtzov zSdd2m0k+>uG%=Uh!>Nk3qAGVZ?c}@!$Wz)FDz6+ES6)n+)R>dlkI;#&v}R@!)}pFZ zq_N_yY>UvjoNQQYvqJKZI72P!W!ZO}m|DX0-uKXnu6zkH_iItr{{`+)PJaCaUINg- z-F>DlOLU#&Hhn|EK7g7wO4r#*)6atL*Xe zBH=#WlpFNFwH@$r=DeFtQ3}bIW}fr9#bq1vFCJwS3{1T?I7p#94|M*!o$H>+b`MZ4 z6w^LT9=$4x!#l$Uw%i}c+G30JiMOnD%5l6wU{A(@-o9=%k9r%>kBM}Xi7@>?*89SI zvCm@-$%#x3*uOb264^#oXMg-iQ&lY_NBO*sH~ifZMt+hjEmjK@m+g-Z?2ST`PEx># z^r77NWW(YWT(MLzO4?axqs({sm5E@`?EyTU`gfl84)JyT-l!$q^IMb0K@W1LT5J=d zUYLi20K7%XvIlwxZs#xeQY1!_teMlNQiJO`U!NN`aZF)y0FR@rG%OE^sWzamJ<6QE6fPwtl?_ni?0r*K(6 zceLOS>F-+enP@EM5%Vn!DYolf%_j~T){>R>#3Pa5|CSw_~ zxx<~x088Ohqf0mFYhC?P<9WX)udGXxTFg$DJ93c|-Rb5;BTn8{x5wkN^7U5t&&%s=nKGT+ zugl?_+Fj^)+>Mh6QVwU9pvmRc+J@mXS0?>k`G;uB15Xn5U+_q_xvZk3n?1&`z|otJ z+s*Yn7T#guZ_#xT^|mM)E}HI z**<=^XM1mZhfDd?McPDI8rhDq#Ko9#V#WfT`8CdlS$j{HHZ~e*lQ~TL)|ZWNkqt0j z_OqX5JxMRq8%{^x4u6Ggb3~R#Sn5sBw-RQ?OSGi90>SK+{{Fli>H@A51u|_*4SfM$ zPFT%>!h&mWK$~I#u)4(`evhBRtQ=OKI;;#8qNF}8-sP_$aw%RaF-X8ju|*bjp087I zmSVrNk^C%=pj(zp|D3#v)Eln+)(UP14!tB7N-cNGkR{>n;=nPt}5Z1w(?sKg%+%J}cvi~-9KQrV?~ zs2zDc|CZ+FE3%DS78&s|G8y@zCW(vvECr2b-TF53D%RTI_Gi~|cJ`bCV%tVUI>sB# zQ0zQk*^FkjxFDfS<03iy61(?*Y4GQjv{AnQV>`c7d;fRX-|qi5 zQl5ZIKGqLr^Jf?LW>6G!OPIZPYz*s^vNPm7T3>I2ncvYhI$^HZe6Fgje-kUXR9&Ki z0wqQiUF`x^1-GJBT1rmB^N6LJG~S(+?ULn8lDs^?GZZ3PL9T~SB}SUGFT8IxA(X(* zs1zgU<4Q6;4k~4RSqYgmD)G4CcE*1PGLL~usxPaVN;;K9Dh+3r9RnGlUFBIbmDE+B zT0N0@0RV}CFVX^t-RBAjRYWD-eq%0i}G#yO}| zU?!_m7L{?$%x#r(tB6XJ?f!VqU>LkW0i0hUkAyyTthh=lx!#%1fz;AQQ;ac!K{Ece;X%f}Jjt*x$MKg3@}+(GjcR1gibF0A zz`l(wFeQVthRGG3Rcw~vtYoi><4v3?jwfXiG0<)!)*ui@EU>2che z?tCusF~>Juz%KflS3HY@N66y5aAI7LOx4xwb=fJFfnYaAzf2KL=t2m(FT9`{AI}`bRnn)*fGQ<2$rFzjj#*B;sGu|P|~{*f~ELrBkV-5 zaDdgVQ|OJQB{Lbr1YnUtS&P2HFVdy$-pKoAj+US3i3^^ zOE)}*o0^*Zw%W62u@oTBp6!BL-jj=c8ClvvLKHG|N@6lT(G_jX3d}U<3IopJI9CaLLFiFe_gk~t@r$7EQKt9J@ z)!=xONQAv%c*}DU8GNoi4S7xEx54e4Jxy>p5+^B~L=^1Yc+phGDi;HI)8Wz1`b_w~ zLnHJVyoQN4<{SSH=a)YN@o>T(e%#@^)IqNovxocr{jNtQy}0+{=qED0=<~rRvIVCLKQ#K-2C~2(}x=j@Y0IC(FA|Dk<&x~bYy}TEv zgBIO1c7%f#={eRiw5S)WBSXV!1>jr6w8|>{Sqo{w1801FS_m{WV&rKds;qz*PFgsl zwTOM98790jEoxH1jX-{1Sx|9_oRT(DFbK%~WsGMyKqK^$dN6>TXD>~QdZZ|9KW9cM ztho?1T(pQ3aNAjM`FSBqJ(6f>6s-}h%DUEw7PV*{v}nLC6c!mV^87;8S(+LyT6i#m zw>ZEFwk*UelBxA*VPH`}3!~23Y0-tgZ_vU>ow5imnp1+~;51z4YAr>NN?Q1F7F1ys zv{--?9EECH@M_Bt!$k{7%JcL3R*Guic$pf8NW|{D zfxa(7@GFIddg zy#93d;`POwG{w^`0yo*y?jPo)!)^ahP&~mQpNT8*0ISOXb8xh8`+prCZvDSDQl5b8 zY^)!K>A$WA*mAM{R_WEXpiP|Ppe?mL9qM|?79b4^ z2~=FzbGwtcu^<8V94<{uVj-Zq{Fc_JVriIsL+X{*D^t#E^JoBiKAP!bWiKEjXKg+* z1HiPVt;@msi!T51gblzn2(Eb0|5b&5s?7g$d~{&Pf7;(a-pcREY_4GC8r;+5ZE=0h1xc{&Z=GNgb( zr563{mHvT!qvt^VSOY=BtGEQgpGe@-EJvy^#o+SXjnxR|BC6ywB9|kmviPbvClrtv zybys-XaPAJAsE106u7;fts$<8oT;Tjlt7v0QiNV@1YsDGgiB+(Is|o~g;>@^(1!_Z zI0vl=wvI*e|FQS&yN%;mpZj;7f=C(|C$LpaI9MWSO) zWKknZNj%f_2Kx&8a{DA7coij4SIbT^E%uP#WP zE>F_Sj#*^lE}4GE0%x`l=Jq25i`a`$;6YXyf~350xCo+UMURC!1{L-w85I(7W&$XM zuDziB;Q_Ar8$bLUd)|e;fTJJI(=YL4`-2dA&?Y=I!ic5D=RZ;Y>D^-aIrH>nYYTwv zq%0Dp`R*#kSS=o~x)24PAv-MJ7iD@_Z3|qrD!{g@M6Q;5!vy>@wwD&d>W*BLCt$Js zo&KTj$kmYDp?|15Y#Cyg>5u;{bmW$Ur6WM*s}V?T0iGOgR2SCbUg+IlEPq#9pPp$q z=~?FKm|Gxj8+w{~lHN!?DSDoHjIGMaW9cs_A%B$C%Z!U|9J~PqhA#j6IO;CwvsSA0 z|3?}5|8RWV>;E@Wb^tqi%gOw;-LRGQ{0av0S&_c6Q}rrF>8y1&^|ij&RJ>n7C{9Qe zb0U23sOWR?<@(c=6_wer%ii-(Z_Wa`G*EUM+81>+M4z|s#3aIt)!G+z2zBm|vqkq< zr4<$Q*}e;A7)Qcan71!4tkS-yqf!6MIUGitY7trUt2D_HJBF;A`TT1Jdj-)dj`!28}U|E)^=%@G|gfPHi#F>Nh87C3Z2fZ#Yuvuw=lpZXU50FJQr; zOrx61mFFvh#SeLOoT`p_Iw+-J6^GofQ*-%YQWaS8Y^k8`q64S(d?m8kQm_gm@7Jk0 zrxGvx49nxBCe&R^`~JeukVo1_&wppV7_y9Dmv%HCij&5L9Snt1a|m4ch#WWs!J{(- z=y~+785yzPWN|kN9{F#dU8KKvE5KUd*pDuYBBwV6D?PJxQzm062`HZ&t0xpv8Nl{D z%?OCAlHoLk>uqaI~uxF9* zM5DOrvkl70wpwWkR?b}bb%B+bNUOQk1!7%+m1oJ??S|6=MsI2ci$aiQwYtjOw*jy; zhNlHsMx>G|3&O$}S*^8T))`nimaHY8H8pa2Me&4q;)lD9%&QK;%CTfES%;~a(<}K5 zQ>@ln(Q0T_l;2-;t0KB_^UI(4qKdPuOgDB%!vDE~EX}gYKv)V@`i$gUE$tvq!cQdg zM4~WuqBw+BBh#c}`V!NmA|mA@irB3W=CQ(b!o&p5VvoDOFL4Z>Y+e)JItE;q5^Fl6RyY=~ii!Jk}1L>26kVudE)9eb2UwE-FDZYR?rS?rleq}@?8WqZeGM}yv(&A}GSQGm5{CyV7s5i>F@-U zqU4qdB2gPRwX0Jnd$OwL4j_&RT~U}VeOBGLGRQ`Zl0GD_t~MA3TvrA4rB8C(m7?>1 zeeGPejSBm}!-MyE|Nn7s|F@B{lN^^cJpHeIq`#VI#3DbfAZfD-3rhp)~MnMU)%?+iFA4YP24b6=BsmN~;n+PxWc6O{kX1dR0OT zlVaB(G#$_A?+89+WFkBRQ(aD@Q|U%O*-qJT-VT%{-mX>5-y7Mkg&m9@u~*K0CCfj( zmaI$K9R@S6B(oam?5g&?OvD$#uCvjR+|`JC!aTs`So7MTj28WOoO|lP@YGvyt9Ub| zi2qYUZ3k^s@PFfz_wTdzpC^6(hs~57@R5yl1Lm*0_)PU#x$XioRqQ2F$&=kj+H51~ zx@tAca9t(Xk=87)YisKRnDVcAs-k-aA&jCWSj0R*6(EB9n#y;l7Py{sPk-Q|*$jqk zYeK?o0nLD&uT|)nnVuIiZ-dBwfWX#*131hpatJ*109Bkn5(j|?*_P+AfQlriZC0MI zLqIS<+?OGakca*yxiz+4y^ihIg^$%6FQ=GYkf;lt$GZr>Q&AfA(VT#vJnTG(FSe6i zuxS0)6r?M+QMLXbo*ZZ8|M5}3{%@r0B*Ovs9gV#viaXm#)p0Uw~dq?#bERjz<;a+@EX=~N)u&n ztJiWhAweV7_#+D0S>Wx?5DSi*7}j(T3%v9C`Ipv6<&5Hdj|i~N9QYVD4RJ-`X0@>eW&Y!IbFgMsOV)uq|D9^un%HiL~sFv&&YK>_{1E# zxYeia5%m&^xP7S$Js8Pz?~AJ{M^oEzAR(Wz3rWHgzT=0*1-PVwPu4``RBI-mrBb^o zG!~bCKN|ux11S0n0R;K?9+bglWS%8E32Hb@Viejk0OE@CMQCD@(O1X4h4UpHl(Y7P zxuPu@Gte;_5$9s~*(8;d*tIGl zsF?p(X3#71n3ejUgOi;8=eXDZZ=_KEpO18}|49Nq6DVx+R@DEb>-tmcf6#NC)muzO zAVS6p?AW?)2SKm(>AV!J|0&0k72Bv-|KGnq&guUTk9+;kM#_#B_NGPnw_XucZ_ldQ zxT^N7^76(sLfWAAsv(nVNTa&f5t(#E8r8kB$fPXNy4!1wOj@J#eE1Wok4gc8;bSgd zf*GKSq&G#SB*d5w(8bSJ;L1eI+DipMbNb2VsD2@U7%_v-F^K?WVnsNp>AUG}>+V;V z8o~a)1nF&ze=yR;srDykF2VzH~ChE4-_^ok8^g z63$pUP8))$5kQ=`X}L(7OHF_TSM>rAwbj_Xgu-2u9>E$F?#eN&x#FE~Y7?+nj`&Y& zv2^jmM!w}?$M*O`bS<5Lcl06pGl@kYreel{&7YA+7$%vN7}*oBePoTdGf!dJL_3ph zzXUk84h0iQVri zh*^6n2Ph^m%;}$A3ZQQ$V%A>D0SatFo^a@9sD2rME=|O&z4RUg6{Ytes3^S$K}C5> z9t4{H0la+=f|LV++zr`f`3Jirw*huX{!!(0VDvaRwDvO|2QCVKUtkyJ9!+$$ns-6~ z!$of`@TV=h{x`g{yL0-`N`?OS;OOumqyIg4-=F_)rtE;PKb@X6()<>l{TubY9UA~} z3L0o)>)8NgE_SL=W#rOtt1h}q;a5wWCDeN9Wcai-n*dr-R_R(3U$z+B(0@5w)qvm} z+gU*HU$N&BPAgLYq1IEwM6e|o4g+9lM&t=2L~{6QY1%rbO~f zvmoM0z<}*}j3-A9(=+o{a0q-H$;4rDrtE67!%Q$SQ41=~a}3K`#zu#myrifckX@}C zg>;r99L63rt?7A!tJYxy!BbZIR0*jm`dUs2R;6VJNaS|wmS9!ylphgD%Io!{4#Cz9 z^rLWjTV-Wbs6U_^M-(bMD4pcSrG#L4*3>n^s@|>|7Q`|uzTQHasLo?{!$07IJispy_$0l%B(PnyspQR50w4J%=ElSSac@U{Qb=(-6 zWq)Pexq~VvYZ=uRIJ12)w;y40o=@9EkXRK|vYdWK{G=32W zTO)9R{gL6N(GOpLIz20YeIy^*E!M76YA0I&s86Iwu^vbo)D=xq)2^m?+F!1lKKQ*i;AC(3D{h3#(X zx9)}6bc0&xV^4PE@JwcMh0&Dy$ma(D^oM$j9~jiAUIM_Xumd!@r+;m20f4E%G^(5? zna?gEOxzd=u|;z@>}UuA?2;y6(*>&&SQpErGbI@QdCnws{XcPR51zp=LNnypQAgST zEB*hD_jCC_j}MM}{r^VF4!EMD4zyu^g@*yJPvOr<%6>3qD6Ov4ceI8Ibo(ZvtQ-2G zK_|Yt9z09c;5u>haze;>g57GOGTGuf)x;J#omCQ*N!8Z9w$(scB~i%L=TxN>l$ldf z3OfHN#dv-2kPpza)-X{-ZG8Zzl3dCAv*8u_roaK^?+6z`c+wO4IPK~LOe2q2P8dyr z?YsQ12e_PC6`Xk%hGH&V=dPfW=JGpm_i8M!tI+#V%>0aNqiUl9Z4y9-4(J<#Tj8kp+-y7agu@39+Z`AXrH7K2 zo&1o3f$S4^HjqyM77@oL;0b!(5Ckwxh}bpFgBByb2^hAvcEC?Kn)AsNLPGg0?#A)bF8Dd^8za`NA&=Lm+r?VbA(3}?2}ffQIF|DBwi9A^E0kB)l( z-;ES0|H)woYTR3R1Iv;Y3bmr-!}QZ@4jQAk)!2u(T&yf8>kl!LqD+bnxo@}5NTpBL zw4#d-$>X3ZHVNHcpqx!eQbOn!Tg!(pHC6>nQpQr*(5;MU+qheau&djjxGq1xNnAbo z@hl>SF0(g0PwnxfQMa(c^{va%`i(^&OlUK9uYv7gNw?;hL}gPlC&}vF(oXWqx>b+` zQ#CsT1L?|xeDKS+a}eMl_LvMi3-JPIF1aC`!H^0>WVftaD6mUoxaPD5ExKh;164I! zt5kH$ic~}gL$}s4TC7{F*@5fKgCQVv3OdbF*;I9l*Li+y~wMerd3%>1MQ&t~KsV({6pmag;N7Tf@F3 zs1JE_8|s$jvZ$|e9g2gY%~lnl$&S_6B~^HyII2w1BJDWFpOkmZ7|He&nO4$sCILcs6@ewo<~1? zpQm7eo<}J)?|zk1H`nT93xH9YQ<%u}YdU+R>V@mn)WNns*C*iSHg!3( z4kr&7JnRy6tXV%aN^6L^SIOk$|6eY@b?pOI8UJ;hJ^wvCI@#~#|4kGr|NnCNt*yYX zN&9OF1=~_)H=g}=D3~W3;xCuq8sa5+7sFX_7qYcZS*1{!p-f0Dm6S=zy#S4ioO(O_d#6R zjSO(9AuXXy4(YWR!Uwn%2it*-7>VNOLCk1mrcGc;$ zL?`bzLzk;Yj7xfQ=6M$FgzW?1bwQWj_=`B6yN405g8=$24-%5}lHX(@3sfI#a8kcqew$XXJ-=LjM(h&Ec@y)c6@)W z3Q*qIjL)dR70qN#_!0`N8!aC9Z3P7tMqgQPd(pVj-@b@~POJt?+~*VA3n^I1M6ijC zU?Bx7*#kB)2rQ&P*U498Imn0f{1VvzjM;hCSxh3lkgb^%{e=`T%f9+EG2=*R`W9G? z`TPKXR53p6(Rwz4e0{613QQg=r9=SP_863 zx|^%w55@2?og?s&pZHxw@HrBV^xWS|mNfsz+Af~Ol zvRk7g$QYQ#(2@F?pGrDXvo%Bebvk0*NW98If7MUBRML?p7@S`|9u2|y<>N^cgO8Gq z5J(8Z{^^X#IaPCO)u|;~1Ga2#aONTCN9UJAaDn}LCIhuP!jBd$M^tY`XaR8?T|o!? zF5!GO@(ZU{RYyd1OdgS4F!XMJ^yA6V{(in&B^{CH7U!3Brfs2tN7lNdDu7h#QPI<8 zq;y{Dfn?nze-wOzg?1HLql&8NE~!Va^+TprR{oVr%@D={J|4bUhTCcrx>&r+ld16` z5&J9(>c?3K;yVwK`2~)?Lfc)Qx^4&wfg~S_;rwy}#_tcT@riY?Zyg*S)_p&{jZJ{I zjp_H1?x;_fSK;uZ=2voeyl)-sQyTWI!y^$HAhqaB)LLM=%agf=qRn;^`mv z->?j8lK(ES3u)&z_}7bnuR#23 z@QrjK-K|eVtMiR?D1p`J$aP3Z)~Q&9SN%p*ek4 zjgk>=Eno07=8j~)k!GtFt(!>->0pTPIlu(EGJ1oL-2w-yS0LC@;+U*cTdw7YnTk~e z9muh-OB6MJ3=_!#{bxz5@`n6MCg5=YZA-CzX;g@tH2wQ4$o-xxE2tUTnK9NauOSzFuISubbEq3zU7AWs_H%Q} zj@H?eIw{5MZjE;v8;P1qDPYo=lw-AG_NGosnV?gU2r7BEp-ro)C_7hk1I4zl?LLat zO9@~_X_At68ymoyO6d$MGSz)4xJm)5jF_@n!19*GFM?VLU?uTI#Jdd*obzR>4BL#D z85eyXe?+}FR1$BqFeJIQN^}d#zBp)-g+}AT9@(Q8#~3 z$|I50`KzkYG@qHgXlVr49FwRSU^N!~GUBqa3u)s+K;}61T>9nh?b(kQxzOF)8-mzp z!2|a8PJg=k^6R(jPrv@x-X8Fw0|{xB;MYu3^EFIyW}5{p6-h&IV~B_~?Q={biXiqu z?7J{joEv=*y1>4}kClh?H32IMOEDn30Fi853K3Aljw3u0@jr?KQ&jmx@&m&Sq%#vL z<4T`O^^|m~`~a@!m_W9;@ln%{J*lW_dmh-^6Mfm+v$j6yf-QY+2#`O+;eyApqYEY! zhn_<~Ak2l&XXzR7OwD5o#f=j2ZU?%z8}0Rtl=*H4njz%wf9T1W;rvJB1KZU3&;Ie@ zem4I1(fjv({D+Mcb^Zgyu)o6WPx|uu+VVh|&p2d8%2MQ3&j^)it^CL$Po8x{?1D3e z#v*Pm%tR{jd5sf-GV*d7{MA!e73tyaf{`mFPj1)6?+91D$m!HZL5UFQu4B~=G!V{(~;y8={cXoRt1w4+Sc0S;jq$j((vUPVhje@ z&Bt6TTHBgN(5=<=mye^XB{=Rber{Rc8%EJhy}v=OU$j_{`PUxa&DcHulqkq~KJGZe zECEsa)oc6!eTF813?{i)N@*eUWfP0#R%3$|VE~^44>>6Emh64Rt6)=-N(uo}#kd0* zs%{tD*@S7kqB)q#tJX~_lpPg*-KzjPRw>PuCYj=CW|?U>Oz8aTLdfJo8#7Xq2r}gz zEQ)@dvazHWcx~!(Z?d>z(d9om$-6cHESLWdkH_QpS^4jzkN>xsvZJDOuHXN!wl$zE zrB;Eewa$zKH|siBe6dmK(%z3Dph70E1Z5{Sd!m$_lqNN3+^gzAD;qu?gY3rNtfEei ziAAY}0hhg1_uHH0m0?hAPM4x-b;~+gO08H_4MhTe<7r)rL76O`r)kp|C@q5iB{U&f zRaJ&TrIlccrY`K?M5*;Hm{k=m7PnFinxsm5Q4F&BkY+%XVo+(zm!hd*((T(7g-h&$UmGl5nX2kwP-k7(JO;Gmr)`ou=BlcNL5XrCp{b#!TvI{>*!{v&I+~k` zeBRXe?^7^f`{pjk;4cK!p{)xH=9okmFrs&hD{84wF2F)>Qt!G}1IM5aZCzl%`9%Tr zugHHeOuSYY6aZjoFNcG~pbl+aU=TtQ*!CV3Kr)RUHc zYzQvkBMgV&i~qBYyf`dRqF3`kW} zLxf!!z9Z>X6XVZ<2~ge?n-JrJ{oMqEI<$3x0mb^%LpCW1VAJ>%YsI3^17KGWS5Z|% z3@j8B(X?h0&0KqI5;5^$iUJmSg3?Kv1JW1+`TbSqd0qQF_^YCXr}lO)Nht;^=v0fL5bb`?$qzaPmBf{oW*As(y20=f zhAq~E2K)iHd?+P6kHH9BXygq(+t1*zj_q)J47A^%o(^R#JW>G$HM-sw0|M>PnVXiD zS1}K+BzbHS)D2zN5(Ddo|GL#^dIj@tueqsk-lQ{=S&6+z7&#IT2(6yth|)+ zD&_&l05p`LT4KQUV&xcYMs74=kf&~S3?l5ou!cUd9j{y@L28XMPU+@$*MPxw4ca=! zz`_CjnfL$h^joMyxYql>5HOW=O~K&PKV#b)f=|zgM0NZi8)NWLV62hB;Q#->|ND-2 zdQ%`gz~$6R3_q~%Ex{ABkxbzEUtr1rnyv^!(Z}}UATYw(!O$24IGY(WM{izoOk=?5 znp%Sk{OK7waRjMUbmh#U8+%YjT~4m-u7E-EyRkN{V+}$YgB)E`t9DhjG|RCcp#?ni zY(g#ycHfRQ%h?v$-mtyBtJNSh%Qa~00s{h_IOO3!Sz15ra~;~& zfPpn5EcbX8gYLeC>G8>r6>O5kz(h;KvI+)gbKAd%LXFdrTk`aa{}totGa?H+a^}TA zWH3n4qK;b9l@&1ytuV-EqwiR&+CX|X&@!NOuz<&OURJY7?J!spC(4}mzZeDvS{jyB zFi6Rdo0lA?K64w9;eQxSo5w(B8eaed&Kj-`LM;rESS)2Uy^yu8B5u$qQjA_z9So3< zqO%GdUJQd2ajkGjMU>y#`T(ZtghM$_F@qO7LXPcuOXdSraDXutGKyv$qPg*b4`7<* z>ZaVcjXUQ7+g}O|2y51NRpc|}x_0m3JKM9+^V!@EBl&UqkH|&#*KFm(tq%arfDL}R z{KkChgijvx7SzIi(3Y+o+k@aUa$OHT*&!o=RJCin?nSQYY2qekZG8X~S?(GrJ^7e4 z$2`(#&+?FnC=@I_9DR@bD=KR5pojf?0wPSS-`nGhz}_C1`Y^Ik@OWgQ;P==MLiC6{ zcn{s*0~|)bGfRzW;-HusRpB5<+x74hB$0GVyksGu1~>#$9t{f3w5aeDRUZoAlO4=ICFpF|e%2;I-uLvFbbrCcsH;XV1AXsg0+GPQy= z4VxlgCY=UONgRYm;3lz_y&bsfw+x*k>}PKWPKf<~;5&JpU6X$|p^P6vH`wH+BEE~f za67Q9B!o`l*~Z8^*O%U+CwJ%qt*-ADdv!|MCR+fc= zRbnfd%3Pss856*)?Zl0|m0kM2G%=U}f){Wk{}gvi?UE*7yuYtiBaA7M?u-Bm=tGwL zUy}bKX;^!nzq45K!%fS>j_qY`k_dF>lBQ@*kb=>uI*d<+BJCunSRqJV~adGG9BH>#S0txmiThF(w($ipNOMO zi^Q`TdR7mJL!C_JY&Q5Vjz|g)HZLb&`(WGfICOm?M^{q~>T^MAUME5?uhqhpl@p+J zmD;_W5^n+yPt;7x?*3vLi_0U2Uf+^XrX-StG@%}tfa8-Nvln%p!6c(ANCqhlJd45ps?FU^9;M9c)uKjl_8W;0T-?A0Hm~zSwWE82!JK-Mf=Es`9@c9FDX3Uk~^D z{I44+JJRQ=t^4;MiMMxYvR7GhKHY5{xLbN_8y&KX)4JwLYk%u^VCDM%1OK_ ztI+)!hj+-Gn(@syH8}M={4@k#Vc^*g90LCSZaK*_8+p+E8@?ldMU>@S{)!ez#fL6S z^J&PA3BYumK4jKOE@`R}$|QCiNXRVqa&@&L`LLMelBSxG9NA%n{QHm4c0J@n?ew?} z$=Rk;Bo{Z;h-3#-4x28QpR-veE9P>JOd@}TsJWKYr&$EZk>#2OP!K|UziwPY9Mqq)s^0@!BEZko5f2{_<{6z(t+ zAac{17xY9YrLRR3a4aa&m(&Rm%V_2vk&kO1n!Hpnk&|YP(@sy zF6@r1V+g)t&qMzGx4^Zd#00psYoY#1o&aUZ(S`}Dk@uALBu#=i#2A7v%F0`H9g%bw z8+6TD*w5d5`_V=o-EJH3m!%1gGPUNEF6sOAI@NU4C=pk2cn`HvtIaxB^^R98jB>MG zV>g?0N_MS720J;2wzjrD2*-Q<^?H#+rogd%Zi{jU!IYbmNH;n~mssKNgo=Hve!9rWiv8!0=W?b%O#o=@ZOnlp55c(*oe zTMM47otCyf=ao{Z9F?8YYSYUx#5X;hmr zSW1!FT!q?7dD_Lu*3y=~X+5b_qrFAFA`2(i6%QtX=(UD@=}TYw(z5(_00030{|`g- I{{SEe0Ll9`jQ{`u literal 0 HcmV?d00001 diff --git a/library/ix-dev/community/jellyfin/ci/basic-values.yaml b/library/ix-dev/community/jellyfin/ci/basic-values.yaml index 460f2bfda1..27d861cad8 100644 --- a/library/ix-dev/community/jellyfin/ci/basic-values.yaml +++ b/library/ix-dev/community/jellyfin/ci/basic-values.yaml @@ -7,15 +7,14 @@ jellyfinRunAs: jellyfinStorage: config: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/config + type: pvc cache: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/cache + type: pvc transcodes: type: emptyDir - medium: Memory - size: 1Gi + emptyDirConfig: + medium: Memory + size: 1 # Make sure installation don't fail when 0 GPU are assigned jellyfinGPU: diff --git a/library/ix-dev/community/jellyfin/ci/extra-values.yaml b/library/ix-dev/community/jellyfin/ci/extra-values.yaml index db993b9465..5af0cc649a 100644 --- a/library/ix-dev/community/jellyfin/ci/extra-values.yaml +++ b/library/ix-dev/community/jellyfin/ci/extra-values.yaml @@ -3,20 +3,17 @@ jellyfinNetwork: jellyfinStorage: config: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/config + type: pvc cache: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/cache + type: pvc transcodes: type: emptyDir - medium: '' - size: '' + emptyDirConfig: + medium: "" + size: additionalStorages: - - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/movies + - type: pvc mountPath: /movies - - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/series + - type: pvc mountPath: /series diff --git a/library/ix-dev/community/jellyfin/ci/hostNet-values.yaml b/library/ix-dev/community/jellyfin/ci/hostNet-values.yaml index d85fc2ab77..26362c49de 100644 --- a/library/ix-dev/community/jellyfin/ci/hostNet-values.yaml +++ b/library/ix-dev/community/jellyfin/ci/hostNet-values.yaml @@ -3,11 +3,8 @@ jellyfinNetwork: jellyfinStorage: config: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/config + type: pvc cache: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/cache + type: pvc transcodes: - type: hostPath - hostPath: /mnt/{{ .Release.Namespace }}/transcodes + type: pvc diff --git a/library/ix-dev/community/jellyfin/migrations/migrate b/library/ix-dev/community/jellyfin/migrations/migrate index 8f7e3dc857..77ef287428 100755 --- a/library/ix-dev/community/jellyfin/migrations/migrate +++ b/library/ix-dev/community/jellyfin/migrations/migrate @@ -4,17 +4,82 @@ import os import sys +def storage_migrate(storage): + delete_keys = [] + if storage['type'] == 'hostPath': + # Check if the key exists, if not we have already migrated + if not storage.get('hostPath'): + return storage + + storage['hostPathConfig'] = {'hostPath': storage['hostPath']} + delete_keys.append('hostPath') + + elif storage['type'] == 'ixVolume': + # Check if the key exists, if not we have already migrated + if not storage.get('datasetName'): + return storage + + storage['ixVolumeConfig'] = {'datasetName': storage['datasetName']} + delete_keys.append('datasetName') + + # Clean up for some older versions. + if storage.get('hostPath'): + delete_keys.append('hostPath') + + elif storage['type'] == 'emptyDir': + # Check if the key exists, if not we have already migrated + if not 'medium' in storage.keys(): + return storage + + if storage['size'] and (not storage['size'].endswith('Gi')): + raise Exception('In order to proceed with the update, ' \ + 'please change the size for the storage using ' \ + '"emptyDir" in the format xGi. eg. "2Gi"') + + storage['emptyDirConfig'] = { + 'medium': storage['medium'], + 'size': int(storage['size'].replace('Gi', '')) if storage['size'] else None, + } + delete_keys.extend(['medium', 'size']) + + elif storage['type'] == 'smb-pv-pvc': + # Check if the key exists, if not we have already migrated + if not storage.get('server'): + return storage + + storage['smbConfig'] = { + 'server': storage['server'], + 'share': storage['share'], + 'domain': storage['domain'], + 'username': storage['username'], + 'password': storage['password'], + 'size': storage['size'], + } + delete_keys.extend(['server', 'share', 'domain', 'username', 'password', 'size']) + + for key in delete_keys: + storage.pop(key, None) + + return storage + + def migrate(values): - storageKey = 'jellyfinStorage' + storage_key = 'jellyfinStorage' storages = ['config', 'cache', 'transcodes'] - for storage in storages: - check_val = values.get(storageKey, {}).get(storage, {}) - if not isinstance(check_val, dict) or not check_val or check_val.get('type', 'hostPath') == 'hostPath': - continue + check_val = values.get(storage_key, {}).get(storage, {}) + if not isinstance(check_val, dict) or not check_val: + raise Exception(f'Storage section {storage} is malformed') - values[storageKey][storage] = {key: value for key, value in check_val.items() if key != 'hostPath'} + values[storage_key][storage] = storage_migrate(check_val) + + additionalStorages = values.get(storage_key, {}).get('additionalStorages', []) + for idx, storage in enumerate(additionalStorages): + if not isinstance(storage, dict) or not storage: + raise Exception(f'Item {idx} in additionalStorages is malformed') + + values[storage_key]['additionalStorages'][idx] = storage_migrate(storage) return values diff --git a/library/ix-dev/community/jellyfin/questions.yaml b/library/ix-dev/community/jellyfin/questions.yaml index fce60e49ff..e50f6525ee 100644 --- a/library/ix-dev/community/jellyfin/questions.yaml +++ b/library/ix-dev/community/jellyfin/questions.yaml @@ -131,24 +131,64 @@ questions: description: Host Path (Path that already exists on the system) - value: "ixVolume" description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. schema: - type: string + type: dict show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: "config" $ref: - "normalize/ixVolume" - - variable: hostPath - label: Host Path + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "config" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: Host Path Configuration schema: - type: hostpath + type: dict show_if: [["type", "=", "hostPath"]] - immutable: true - required: true + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + immutable: true + required: true - variable: cache label: Jellyfin Cache Storage description: The path to store Jellyfin Cache. @@ -170,24 +210,64 @@ questions: description: Host Path (Path that already exists on the system) - value: "ixVolume" description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. schema: - type: string + type: dict show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: "cache" $ref: - "normalize/ixVolume" - - variable: hostPath - label: Host Path + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "cache" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: Host Path Configuration schema: - type: hostpath + type: dict show_if: [["type", "=", "hostPath"]] - immutable: true - required: true + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + immutable: true + required: true - variable: transcodes label: Jellyfin Transcodes Storage description: The path to store Jellyfin Transcodes. @@ -212,47 +292,92 @@ questions: description: ixVolume (Dataset created automatically by the system) - value: "emptyDir" description: emptyDir (Temporary directory created on the disk or in memory) - - variable: datasetName - label: Dataset Name + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. schema: - type: string + type: dict show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: "transcodes" $ref: - "normalize/ixVolume" - - variable: hostPath - label: Host Path + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "transcodes" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: emptyDirConfig + label: emptyDir Configuration schema: - type: hostpath + type: dict + show_if: [["type", "=", "emptyDir"]] + attrs: + - variable: medium + label: emptyDir Medium + description: | + Disk: Creates a temporary directory on the disk.
+ Memory: Creates a temporary directory in memory. + schema: + type: string + default: "" + enum: + - value: "" + description: Disk (Temporary directory created on the disk) + - value: "Memory" + description: Memory (Temporary directory created in memory) + - variable: size + label: emptyDir Size Limit (in Gi) + description: | + The maximum size (in Gi) of the temporary directory.
+ For example: 2 + schema: + type: int + "null": true + default: 2 + - variable: hostPathConfig + label: Host Path Configuration + schema: + type: dict show_if: [["type", "=", "hostPath"]] - immutable: true - required: true - - variable: medium - label: emptyDir Medium - description: | - Disk: Creates a temporary directory on the disk.
- Memory: Creates a temporary directory in memory. - schema: - type: string - show_if: [["type", "=", "emptyDir"]] - default: "" - enum: - - value: "" - description: Disk (Temporary directory created on the disk) - - value: "Memory" - description: Memory (Temporary directory created in memory) - - variable: size - label: emptyDir Size Limit - description: | - The maximum size of the temporary directory.
- For example: 2Gi - schema: - type: string - show_if: [["type", "=", "emptyDir"]] - default: "2Gi" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + immutable: true + required: true - variable: additionalStorages label: Additional Storage @@ -284,74 +409,120 @@ questions: description: ixVolume (Dataset created automatically by the system) - value: "smb-pv-pvc" description: SMB Share (Mounts a persistent volume claim to a SMB share) + - variable: readOnly + label: Read Only + description: Mount the volume as read only. + schema: + type: boolean + default: false - variable: mountPath label: Mount Path description: The path inside the container to mount the storage. schema: type: path required: true - - variable: hostPath - label: Host Path - description: The host path to use for storage. + - variable: hostPathConfig + label: Host Path Configuration schema: - type: hostpath + type: dict show_if: [["type", "=", "hostPath"]] - required: true - - variable: datasetName - label: Dataset Name - description: The name of the dataset to use for storage. + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + immutable: true + required: true + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. schema: - type: string + type: dict show_if: [["type", "=", "ixVolume"]] - required: true - immutable: true - default: "storage_entry" $ref: - "normalize/ixVolume" - - variable: server - label: Server - description: The server for the SMB share. + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + default: "storage_entry" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: smbConfig + label: SMB Share Configuration + description: The configuration for the SMB Share. schema: - type: string + type: dict show_if: [["type", "=", "smb-pv-pvc"]] - required: true - - variable: share - label: Share - description: The share name for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - - variable: domain - label: Domain (Optional) - description: The domain for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - - variable: username - label: Username - description: The username for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - - variable: password - label: Password - description: The password for the SMB share. - schema: - type: string - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - private: true - - variable: size - label: Size (in Gi) - description: The size of the volume quota. - schema: - type: int - show_if: [["type", "=", "smb-pv-pvc"]] - required: true - min: 1 - default: 1 + attrs: + - variable: server + label: Server + description: The server for the SMB share. + schema: + type: string + required: true + - variable: share + label: Share + description: The share name for the SMB share. + schema: + type: string + required: true + - variable: domain + label: Domain (Optional) + description: The domain for the SMB share. + schema: + type: string + - variable: username + label: Username + description: The username for the SMB share. + schema: + type: string + required: true + - variable: password + label: Password + description: The password for the SMB share. + schema: + type: string + required: true + private: true + - variable: size + label: Size (in Gi) + description: The size of the volume quota. + schema: + type: int + required: true + min: 1 + default: 1 - variable: resources group: Resources Configuration diff --git a/library/ix-dev/community/jellyfin/templates/_jellyfin.tpl b/library/ix-dev/community/jellyfin/templates/_jellyfin.tpl index 5e5a374c34..1e89a36fe0 100644 --- a/library/ix-dev/community/jellyfin/templates/_jellyfin.tpl +++ b/library/ix-dev/community/jellyfin/templates/_jellyfin.tpl @@ -41,12 +41,6 @@ workload: type: http port: 8096 path: /health - initContainers: - {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions" - "UID" .Values.jellyfinRunAs.user - "GID" .Values.jellyfinRunAs.group - "mode" "check" - "type" "init") | nindent 8 }} {{/* Service */}} service: @@ -68,42 +62,28 @@ service: persistence: config: enabled: true - type: {{ .Values.jellyfinStorage.config.type }} - datasetName: {{ .Values.jellyfinStorage.config.datasetName | default "" }} - hostPath: {{ .Values.jellyfinStorage.config.hostPath | default "" }} + {{- include "jellyfin.storage.ci.migration" (dict "storage" .Values.jellyfinStorage.config) }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.jellyfinStorage.config) | nindent 4 }} targetSelector: jellyfin: jellyfin: mountPath: /config - 01-permissions: - mountPath: /mnt/directories/config cache: enabled: true - type: {{ .Values.jellyfinStorage.cache.type }} - datasetName: {{ .Values.jellyfinStorage.cache.datasetName | default "" }} - hostPath: {{ .Values.jellyfinStorage.cache.hostPath | default "" }} + {{- include "jellyfin.storage.ci.migration" (dict "storage" .Values.jellyfinStorage.cache) }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.jellyfinStorage.cache) | nindent 4 }} targetSelector: jellyfin: jellyfin: mountPath: /cache - 01-permissions: - mountPath: /mnt/directories/cache transcode: enabled: true - type: {{ .Values.jellyfinStorage.transcodes.type }} - datasetName: {{ .Values.jellyfinStorage.transcodes.datasetName | default "" }} - hostPath: {{ .Values.jellyfinStorage.transcodes.hostPath | default "" }} - medium: {{ .Values.jellyfinStorage.transcodes.medium | default "" }} - {{/* Size of the emptyDir */}} - size: {{ .Values.jellyfinStorage.transcodes.size | default "" }} + {{- include "jellyfin.storage.ci.migration" (dict "storage" .Values.jellyfinStorage.transcodes) }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.jellyfinStorage.transcodes) | nindent 4 }} targetSelector: jellyfin: jellyfin: mountPath: /config/transcodes - {{ if ne .Values.jellyfinStorage.transcodes.type "emptyDir" }} - 01-permissions: - mountPath: /mnt/directories/transcodes - {{ end }} tmp: enabled: true type: emptyDir @@ -112,32 +92,16 @@ persistence: jellyfin: mountPath: /tmp {{- range $idx, $storage := .Values.jellyfinStorage.additionalStorages }} - {{ printf "jellyfin-%v" (int $idx) }}: - {{- $size := "" -}} - {{- if $storage.size -}} - {{- $size = (printf "%vGi" $storage.size) -}} - {{- end }} + {{ printf "jellyfin-%v:" (int $idx) }} enabled: true - type: {{ $storage.type }} - datasetName: {{ $storage.datasetName | default "" }} - hostPath: {{ $storage.hostPath | default "" }} - server: {{ $storage.server | default "" }} - share: {{ $storage.share | default "" }} - domain: {{ $storage.domain | default "" }} - username: {{ $storage.username | default "" }} - password: {{ $storage.password | default "" }} - size: {{ $size }} - {{- if eq $storage.type "smb-pv-pvc" }} - mountOptions: - - key: noperm - {{- end }} + {{- include "jellyfin.storage.ci.migration" (dict "storage" $storage) }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" $storage) | nindent 4 }} targetSelector: jellyfin: jellyfin: mountPath: {{ $storage.mountPath }} - 01-permissions: - mountPath: /mnt/directories{{ $storage.mountPath }} {{- end }} + {{ with .Values.jellyfinGPU }} scaleGPU: {{ range $key, $value := . }} @@ -149,3 +113,19 @@ scaleGPU: {{ end }} {{ end }} {{- end -}} + +{{/* TODO: Remove on the next version bump, eg 1.2.0+ */}} +{{- define "jellyfin.storage.ci.migration" -}} + {{- $storage := .storage -}} + + {{- if $storage.hostPath -}} + {{- $_ := set $storage "hostPathConfig" dict -}} + {{- $_ := set $storage.hostPathConfig "hostPath" $storage.hostPath -}} + {{- end -}} + + {{- if (hasKey $storage "medium") -}} + {{- $_ := set $storage "emptyDirConfig" dict -}} + {{- $_ := set $storage.emptyDirConfig "medium" $storage.medium -}} + {{- $_ := set $storage.emptyDirConfig "size" 1 -}} + {{- end -}} +{{- end -}} diff --git a/library/ix-dev/community/jellyfin/values.yaml b/library/ix-dev/community/jellyfin/values.yaml index 5e7c58fbe8..4bdb0351b6 100644 --- a/library/ix-dev/community/jellyfin/values.yaml +++ b/library/ix-dev/community/jellyfin/values.yaml @@ -11,23 +11,28 @@ resources: jellyfinConfig: publishedServerUrl: '' additionalEnvs: [] + jellyfinGPU: {} + jellyfinNetwork: webPort: 30013 hostNetwork: false + jellyfinRunAs: user: 568 group: 568 + jellyfinStorage: config: type: ixVolume - datasetName: config + ixVolumeConfig: + datasetName: config cache: type: ixVolume - datasetName: cache + ixVolumeConfig: + datasetName: cache transcodes: type: ixVolume - datasetName: transcodes - medium: '' - size: '' + ixVolumeConfig: + datasetName: transcodes additionalStorages: []