From 50a6da2991b1b069447fc71465333b1280158230 Mon Sep 17 00:00:00 2001 From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> Date: Wed, 9 Jul 2025 14:35:57 +0200 Subject: [PATCH 1/4] feat: support for Spark 4 --- rust/operator-binary/src/connect/server.rs | 9 +++++---- .../hbase-connector/10-deploy-spark-app.yaml.j2 | 8 ++++---- .../spark-connect/20-run-connect-client.yaml.j2 | 6 +++--- tests/test-definition.yaml | 13 +++++++------ 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/rust/operator-binary/src/connect/server.rs b/rust/operator-binary/src/connect/server.rs index 18cb9d6c..a96022d6 100644 --- a/rust/operator-binary/src/connect/server.rs +++ b/rust/operator-binary/src/connect/server.rs @@ -551,20 +551,21 @@ pub(crate) fn server_properties( ), ( "spark.driver.extraClassPath".to_string(), - Some(format!("/stackable/spark/extra-jars/*:/stackable/spark/connect/spark-connect_2.12-{spark_version}.jar")), + Some(format!("/stackable/spark/extra-jars/*:/stackable/spark/connect/spark-connect-{spark_version}.jar")), ), ( "spark.metrics.conf".to_string(), - Some(format!("{VOLUME_MOUNT_PATH_CONFIG}/{METRICS_PROPERTIES_FILE}")), + Some(format!( + "{VOLUME_MOUNT_PATH_CONFIG}/{METRICS_PROPERTIES_FILE}" + )), ), // This enables the "/metrics/executors/prometheus" endpoint on the server pod. // The driver collects metrics from the executors and makes them available here. - // The "/metrics/prometheus" endpoint delievers the driver metrics. + // The "/metrics/prometheus" endpoint delivers the driver metrics. ( "spark.ui.prometheus.enabled".to_string(), Some("true".to_string()), ), - ] .into(); diff --git a/tests/templates/kuttl/hbase-connector/10-deploy-spark-app.yaml.j2 b/tests/templates/kuttl/hbase-connector/10-deploy-spark-app.yaml.j2 index efffe14e..17099750 100644 --- a/tests/templates/kuttl/hbase-connector/10-deploy-spark-app.yaml.j2 +++ b/tests/templates/kuttl/hbase-connector/10-deploy-spark-app.yaml.j2 @@ -8,11 +8,11 @@ spec: vectorAggregatorConfigMapName: vector-aggregator-discovery {% endif %} sparkImage: -{% if test_scenario['values']['spark'].find(",") > 0 %} - custom: "{{ test_scenario['values']['spark'].split(',')[1] }}" - productVersion: "{{ test_scenario['values']['spark'].split(',')[0] }}" +{% if test_scenario['values']['spark-hbase-connector'].find(",") > 0 %} + custom: "{{ test_scenario['values']['spark-hbase-connector'].split(',')[1] }}" + productVersion: "{{ test_scenario['values']['spark-hbase-connector'].split(',')[0] }}" {% else %} - productVersion: "{{ test_scenario['values']['spark'] }}" + productVersion: "{{ test_scenario['values']['spark-hbase-connector'] }}" {% endif %} # pullPolicy: IfNotPresent pullPolicy: Always diff --git a/tests/templates/kuttl/spark-connect/20-run-connect-client.yaml.j2 b/tests/templates/kuttl/spark-connect/20-run-connect-client.yaml.j2 index e6950b5a..6b701b12 100644 --- a/tests/templates/kuttl/spark-connect/20-run-connect-client.yaml.j2 +++ b/tests/templates/kuttl/spark-connect/20-run-connect-client.yaml.j2 @@ -57,10 +57,10 @@ spec: activeDeadlineSeconds: 100 containers: - name: simple-connect-app -{% if test_scenario['values']['spark-connect-client'].find(",") > 0 %} - image: "{{ test_scenario['values']['spark-connect-client'].split(',')[1] }}" +{% if test_scenario['values']['spark-connect'].find(",") > 0 %} + image: "{{ test_scenario['values']['spark-connect'].split(',')[1] }}" {% else %} - image: oci.stackable.tech/stackable/spark-connect-client:{{ test_scenario['values']['spark-connect-client'] }}-stackable0.0.0-dev + image: oci.stackable.tech/sdp/spark-connect-client:{{ test_scenario['values']['spark-connect'] }}-stackable0.0.0-dev {% endif %} imagePullPolicy: IfNotPresent command: diff --git a/tests/test-definition.yaml b/tests/test-definition.yaml index 8db6043a..001f5fff 100644 --- a/tests/test-definition.yaml +++ b/tests/test-definition.yaml @@ -7,20 +7,22 @@ dimensions: values: - 3.5.5 - 3.5.6 + - 4.0.0 # Alternatively, if you want to use a custom image, append a comma and the full image name to the product version # as in the example below. # - 3.5.6,oci.stackable.tech/sandbox/spark-k8s:3.5.6-stackable0.0.0-dev - - name: spark-delta-lake + - name: spark-hbase-connector values: + - 3.5.5 - 3.5.6 - # - 3.5.6,oci.stackable.tech/sandbox/spark-k8s:3.5.6-stackable0.0.0-dev - - name: spark-connect + - name: spark-delta-lake values: - 3.5.6 # - 3.5.6,oci.stackable.tech/sandbox/spark-k8s:3.5.6-stackable0.0.0-dev - - name: spark-connect-client + - name: spark-connect values: - 3.5.6 + - 4.0.0 # - 3.5.6,oci.stackable.tech/sandbox/spark-k8s:3.5.6-stackable0.0.0-dev - name: hbase values: @@ -99,7 +101,7 @@ tests: - openshift - name: hbase-connector dimensions: - - spark + - spark-hbase-connector - hbase - hdfs-latest - zookeeper-latest @@ -113,7 +115,6 @@ tests: - name: spark-connect dimensions: - spark-connect - - spark-connect-client - openshift suites: From 00fa81c4da6b8c99f204a79d30d91f940017159b Mon Sep 17 00:00:00 2001 From: Razvan-Daniel Mihai <84674+razvan@users.noreply.github.com> Date: Thu, 10 Jul 2025 15:33:32 +0200 Subject: [PATCH 2/4] update ny-tlc-report --- .../ny-tlc-report-1.1.0-4.0.0.jar | Bin 0 -> 137649 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/templates/kuttl/spark-ny-public-s3/ny-tlc-report-1.1.0-4.0.0.jar diff --git a/tests/templates/kuttl/spark-ny-public-s3/ny-tlc-report-1.1.0-4.0.0.jar b/tests/templates/kuttl/spark-ny-public-s3/ny-tlc-report-1.1.0-4.0.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..965cedd99bd7fcd2e4dc894e2bfbbde9cf448362 GIT binary patch literal 137649 zcmbrlV|Zm>w*MPfl8SBHtk||~+jb?X*tYFdY+F0FZJW1#-F?nI|I<(Ry?yWA&w91y z7;~=q>@oIdjP;%JQlMZcK#-7-K%8!;nn3^K0|f*IBqO3MKr10DO8+?q1Oy5sFZB)b zuMr^s7$*NOjZyxL_-|tw0a*!A5hZ0h8PPkLiE(KuTDlonDO#$j2|&Ff!#wl$fg_!y z42^`$j7xcg;#WlLSp7Ya&!@vPF$u*kpU$9 z#u4~$Yg*OZ4ORRzqr#u-U#|)L&s}E|BXj!yg&rJ5IGvGW>jYjP9)U?Z!r_QIY&sP^f_vc$mH*gQ=Gc9mUaj~2? zs*FUpq9Vsaio%_UUQuD9-izR%w=Sh|{z?ECcV=@Lrge5n&g1ldvRLPAJ8?pR;4Z-rN zF^-U@Qgy0KUfS{vmKv}K+e%02nuOjtaYrvKJJuTmNFPv+bfhCrrl@)_NK?D< zVP+a+HpwCK){d4am(aIKJq+!t=Ls{Dd6;TUqB@-t zs>|M2OZkH#tEyL04nwVX!faTL_gnL#FbVPC;@%qiS^0L-r8vMjFv)_qcNE@SE46YF zugVK6Im(1wvsa!#(yZkp;nybb8B~)|teUgNpd`Y>GA|k~DyOmCclST02u?7IefD*I z-F`IAU?%N9=$?j0Z9HAP-HoO!zBL7&pz-paCI&Ezn5^CP5}csFa5o>2fzo<6uG5V( z7r}jYWZBo3budy%>;j=`Ta71p4J2x_cyAw@eX7Qgdx6Mx1T=>;sgp4Wm_uTsNi)&6 zi1U#z^D@6cXqu0kA1AVxjwmFs2u`G-_Z~xcv-#kxPSJ3w>SQ^SaZqrH4xJF6l4%*a zV#!M0E>aw=&mLO8&820@0zL>Zv5R$g+&}cYuq1`~bosVV29!$Jm-%wS+=#k2=D6|} z%+=2IPeZ3-;|#Cv#m1rfYir(m$LDMW8gAEp^;NIMDBYg1j?89R{dQ4g%?bu;({!Tn z&>ur(G(N07c3+f}szp5brwsDbDb&8fdYZlI5 zdiyrlyR9_y={ZC1u5j+C)n{EiSp$x!l^qRq0}s@OCLG1#GNl3%9~CaGWz=KqzTLgB z7MMyp)YFz~WORsSqJL@@54n-GA657atw&FeT=<;p#zGUO*+b+-OsCENZf~~S%DBw! zNU{eUS#diz+s}#mdG9jBuIfBVO8`u$9tUGK;%S`d&Mc^S^_JNz$D1b8cGG7(lCO|U zX^$miYpwI=NJuFms+qakP!mn^`pH_>D+VfUtx}iPmqjGFc=ZAlC_ZqHP#~nMod?yMGv&BIeIQEXXW-!)$hD6gzAmCiIS~OApUX9V&C1* z)<#4n#?ii~4y=CJeOz-A#vn#zdu%obd~ef8^Z^^%1kU^^1UQa&q3%!{SL?HApLk4H zyW(=M?IUo<*hIJuq5mN_4+0Dj=cy=J5KKQfu-o@o5!!wb@?i9IvV-TgW%7N71GX6( z(M+hv?l=vEj5VTO4?#rx#K1$e4VzA+JCqs>e}(%^^f)PD4Hp9I`Id=CJeknQzD2%G zvmnd8lbNpeeYGuqm>K#$O50rm-RYb?(AOJL+aX+)#)#~*eUq;vUPF=E?E5e$-$k># zq0|M@$?FWYeTo_NM341%41?&O0$ii2mHMFVKsYppVr}Yzz*zWoNH-WI+r>!DRo9Ss zTK4zIH1yW@DwJ!fi5!r-8nt*Q%-rK90EXL$Sw~h$-5eQIT{n(hXmusT$4L0PUQw`EchBmRh)>yM9Uyp_4*!8ZlM*zu7YU4 z-Z?Jm>7aXcpU$1+Mx=#4vLCg)ws}oUPTg>5x+r@G(egv$hi_8z0`UFhqx4SOaxMUDSZOSE%NtC7vXzdIhIB6xI z5Ua8W7@^%kX<7_oLDaW-<5{EGE77RBgL6P6i20P$*eTm0W^45Tky7K-k;B<7Q?-{=Iu3@Tp~ zrg{`7#z|#TYJb2LA3s>~7A2oSG?7%$FcvA>X~hp(a#Yn3K(!#T@>rWuYj{(mLyHtI z8~O{JV1=PLhGJ0SpvDbGz!S$Zn1Fsp=|jLIRvEt+T7C1s$X~w0(vt0{&pC;ieu233 zsbT|b@&{h{215*lZ8!v6V3(T{MR2Xup=tFo{Ta$BDDu;x2AdZ;P4j+da3Ytv zn>I?b=TkVTYJ*m2D;GLl{fOPp?jwb(tA}6oe)-uVfM$d*&8N5T#R}V>pcezv`}sr4 zet~7ap@O^dWu;RJb$J10Qj8b*8G-FgKlG6M$Q}(Q%lByXBRCF+KjGFdMwf{8u;Xqp zCL%K8d>|!pZ~8fjL0v>wYnWz}XJ4M-m}C;)Q}_IX_x#r=6tENA1LMzilq_te55|Li zZI{tEgBAOJ1bFU#EshiNdpn=IAz*6d@QZc>CG1GmdP61detl2HeS>Qe0YwfT|Cu7< z`;?=<;c)W>^p;`|80_|+qt9I!6jinyf_PO4EQd_(9yYWB0YxX`(}!Xq@>n+Hc~wG% z)RpGb|Ec|f>K!xmd<`m9vMDwa6N_sXi`#9Jd;_K`_ei;!=I`Tt4nV;8fS9Vq@p=5# zq6)~CIi)&fRZxtyeHDdX=yS_oFzG?m((ZC zBV>xv#n_KOSW8|}y%)TT=H=bix#siqxKaJSwAK9qr;q!Dkz7;@UnTGOhRA0hw1B3w z1?|P{ZoKero8ooRwih;;i=2*yAtVoPbLmJO%6;M-)aZdQ_H)gV`quj7d2?0tgV1k+ zcDT6-M@{(@c~7l8$-rC*49+bpM@2knXVx#X%pg3^UbQyZA~+~(@x$}t+sqwkE0z$W zdDMm$-=bXx40VDMOPG{vzbh^vP9@m+cLRW-6EOqA)Zkd$V2U5kGuqT6IHH)kPo5(+ zi{G9Sq@EV32GleTQsOL(P=0 z)-VzsgY>8nIZ65~zI6fvKn@euFcn{lF5(H3sbk40he0{KBrHjH4-aba#xu^CLI$UB z2YO@fInTim|AfII$-q{-{3Z3QG+T4ObDNK2M^SOEokvCHm-o|T!SGnOr1=T)9cTYU zkJa!Kn9D3xzqOBXQGWQLCmb3DtWWLCeY-Mn4pvK~lVl)ZsM_yoJFnIxe-@qd;VuQ{ zV5yB_ucRj~fV2Og38N+vENAERRJFLb+WOgrdV*gFSVp)O(2 zTWCb6yK@+H6Lmgjp1NM9NHy>YDMfqk#9dnyc=DkbAG}FEMM8`v31JPd6KJ66si#CT zMy*y9hdCFda0`6l^WJlE#tj0Z%3Ev^^;SM74Y^R$XW}b7sKl7bdX8O24wXOAfeuPt zj8k_(u6AD2yCTLddQ>v%`RqAclsHW<5?-gL-JM>bMO3aaMYn?mFC807hCEL?Oh%XL z9-@k>s}(u5$`Kzw2iD$qI}xaK#RSFTi*AxRGLjp!=qnBBLo81^4thtouR{J4d6oWo z{~7G8>XzAib69QIf$qWGc*So=6T^`ToLkGt^6KkwR>-)Fl?48F#&BfXW!EwzAD_3id*z6_sHWS8Wi>7EC>Cr9qT&Kq3*0SNJmDUokJ2qyv=<3IxRar_b=OW1i;U z#=NYCvb2z*iM^ep^FQLfQxnQvYa!_~rkT8xBFw0s11by@#MlfG%Ag*U<#z&tJeqZa zth#0P0l7w4VF@=6DPxgW2-<8G9fJ_a{ee#sw zRf35|a!SLNnqcA6CC}4({l-_OQ&Nf^*9Z5{$=iT!M}TbfU_^Ejw{ev5#dB$v)9zrv z0bckO2Seg9cJ24*GZEO(+=pD3fpD`bZ_X~a{oJg37#8Scl^GifvZ_kb7VB`P1ioFI zy1jNAy9vzBm9ZGp3qzJ2_7F*MP}%?$rvxlWC`}Mgft0=CJ=I>x=oJ&fh>-dlfd>|I z^axCH{0-GHV=ik*fQW|o8=q<(%aVL8oh6R8Ms?@-`EC`2vTW9A zGIeDUq86f5InEWDD51+6?a?_^(ll0HbNpz|GT_F0@39~Bzx}_1PkMrztamnlJr1~D zB1zFqm~?6zqe6RCX40BVNvC;CJ2Aholn80XuSoOmZBUp;x?GfGH6JfQa{gWw23-`c z#i8!=Zd0yh=j+-WCtGSy_km0isYODs7^Ma~8f-hgnBI>v2@fceAWtdaLr&}HT##|v zpIy#kK50ktmw7}>9 zpDuwu@pwNAg*g?swn~9%Q{+~7A=K2_3Zt2z_ot*uT@zNZKeejjRpDx2Ct2Ae<03m% z3)3Q-(#|O2q9GGh#$LGr$uXU7CX5~zXjEe4XG_-;Tz&h zJmz*UT^ktT&J9RIP|Ko)*$h>Zz*dwKaC zdv*IHPOB{0@;U5!E|*ZZ^4JS$P7eUl?;&|Z;nPU`#Crkv zt<@h?UcLhZ4&I43+VW)R=b2k(V@maFO_@l2V%Vsjn}&MmEnLUMJkiK1~AUp9Sd$V z#h@A}y3C-Fp1XBg8!sxzFnaXi)69IG>i6kgrf4yUlaixn0pAH3x$qfLzTRK8D`sjU^I${r1MmtW*B?}eo%`_zrmYh+j76~ z6R5w`?3Fe^o#;ALcg4tv+@nxg0Ux@}fJWLFey0^dJjmppaSQVtRmD}Oe10Z=23O9mO=)Q_L>Qm2m^4<-Z0Joo z-v0P?;p|LU&AiW)EhR?&l~2`e8ZP8p557CW-XdsNtWBpApi&7l#99r*(N4y?nuOmN z!zi*sljL=Fn8s1b*qDl4mE!x=+pwvcB&SBjKEopeq!qB>u6?o?N# zy%}3^yw(O*=9q5~M4?7)pBWKyuunU$ud%g)6$FaDj`>rG}~Qm>`83`ma4UoW5nrr9cBea+%F`r`g63( z%yF&Y^Me`s)v-CmRv8Z492kc9xoRaUYoqLr3-YKCU@j|4OX_x|n>w))5Myy$wYT#U zz3?J!@#Rl8O|e-*1M+Um%Q@Q-9cj3uhCD($`S-b#mjJJ9P^=N(81-V9amWhIaGVOb zpVhGl=Q40=L_{KW1(pOHPetKJJrBt54GqJ%-ZEcpWb+OXt+fXDK;k8yQZJF7-UhMhZM?40 zQh2|Rdq%WGnxR@5wAz*pL)S~P6>$w$5wWTo83)U#dyv(e9zOUR^GU}+k~VKM1ky#l zvcdp#0_no8fD2LRjLGdtwfCm0OF{mtBeVHZAhrLZO@b-RbE)2s`>NOK4(JD+m&AV1 zYO&fl87Jf(0NevMbWUmVUCLWq~j;GcY8d_Y4_sMwEZ>;od?!T(|C^Pd12S~ z2Nhomzs_S*uP|4#pvwyNjEZijzg^!|G1Ne|V*3dyt!JfIyG(FLf>sn|Y>lrgudT`C;8CX?H=Vtm**WYWT7vp)Z zqm2;-_;Afq3ViF5cdw2Oqb;sU1j~=0)9D#HCGAf2O^x^3fU@rRs}Dt z>kt@@e*LljYJN0sgvPo4F)(Fn91|SbRE+x@e1gldKJR+pj%eli=m*%>f(V0G1cFWc zZ=CUe?4W7~T_rrhJ2bLvV`&6h9YAQ4!|!=|!0_CH-;d2L69M)_U*MWf3A)lUIe#l` z(%9{!d4u!CHjk|#5XsbcWXT!eB+|Gtg<_ZWcM#wwgdcf(D6@$BMk(9Fv`zq@tAeL&t+Gg6-x+;N0U<@U zZ*-6A;kTY5$HNijL)=z=Z4%}!ZlI+h+tuK>GzC2}IL@%J?jwoEqd{z{g_?87??m-N zbVC_ys^sBN`iALoj>(}=VcLk3hw0dme(T|pPb21)mNes&KGmnRN-*iD37PXKX0Api#ilu!8YN>l3px25Ud zJ5f{ZuEaF#U#odlrfCH09@ND%tuiAKue8ny>#>BOZV zM66Z`3+$zjGJWf+5Qj_nG!}Q%CJy;XO6K}3>L5$ZXZ$;KF zHU&mc+(!0p1=JhNM$Im^%_oV(=2tzc5H>4Gkjw{b zQ8UeQ?Z22$g=#J{TW7mZ*F3;x+HNj@cdx?553J&$l58?qDMuD7)4c-%bTm_5;m|Y$ zM}XjsIjBfEh!WGMRd{F;@kb3|iRVh{V*rgsO09A0D+e@*NF2d`qyR@qD?rKG5}LCZBJiNlkI&@osR$G0jL0zLN{A zOr3LX|COKjyp%*VPqJ!98J+v+rAB>XpW2ZXVxdWkqLYWk+}zQ@--wqF>JV1Ag`; zw;50>uk{$ED|=32Nk+ZYY;T;GBB`$wObS`hPIyO{Qlr0wS#o;&Kx?|XRpttSBa$!# zbIEbh4Y=QIUUJx!p5CIpk^#80o##2Q2xz>g7n9(G0SJ}nwmj5!07Bz&e6evceH23~ zVFMZvs$YT)5yT{yBT$5kkDfdyu4B)HS~y zmq+8A2Jd#c!7@KT(O>c#?WfHb!&3+uo868+C1&`Xpdlm4XP#X+sse>^-Cc~SJp@4g zy=C?DTDN8+S_BcsV!jYIC#)pC`8<6-n#6wDLKyMJd_|P8nT$kAog_}*cs@?`jyYu@ zkgvw&=^eqMCbs{Pz5@H7&Fvh`=uF%VZ0!F-;RxlwcV+8A>uhaA>-e`W z*S}q3jm!Tj>-no+{=Xjaf3ETWbZl>DL+5T|y`ZjTxAp_Y_o`+(fY%zH$c9`ugdbVn zn4WspT0Gp)2iiO=d1baxR53a#|I4RCoQYDZDW32QX}_0O&G*QApD-&iz;7rmyvb^8 zzs8KZXiN%n$vhB~pL9$W!(O3>@5>#Yz6VTtD)Zn#HGc7RX9t)&Q>%T&m?_Awv%709 z+6o1k4Al^m*9(=^Z}mn|^MVx+OOzQkf(5IgF3{21lCv(?qk3poHknxI5q%;?Qy87I ziU0*;JXML%LFETf!iChXLutnrRL#Z(`*nI8j|}h{+}*nSC8oFXfjZFjz5$M5gQ(i9LVgQxYaU z>au%dDj5Sx+r+fog)l@pNqB@kN0oasI%lkhC9##chuGjWRtcNC*649GbD=9~wC#pr z(dRUnbS^8554C_&KTsKEPZ3xhoIYi&LotKWv>tWkI03S`_Y-xelQ;AfagPpA|qV`u) zX~3A2inuDZQXtmPY6M!lTn?MnSfV%=YJZRnw`LUbsu|!XIy|3xMO{2%{7TNkM1Stm z@LsO9+tYvB_hhU+*t$Q+Uugy2Qd9dSfBht?RQb;MO813bttW!MK z=CGaMp|bOD&T1Z*yEZm&cA%Qwc7lz{2<5Tm4F8+rs~1JC`ynqvl|sRa3Sc!pToWSMQ`o*2*Fd`7IN?)X}N`PXfLJr z0s2?cq#b*lzWL@zokQYAS=+b?uXDndgwJ3Ly!I>kK2wEw&CuZNg1jQh{@Tz{^A zoz)@!+;uXtvv>ZtiSmEzAMyX&O4!8Iz{T2GPQ=vI#K>96#M#CEAM~c8rG}-3vS~&a zNsud)53xr|fORbzmR>46iz!dILqsIHX3n__Jlq2VCzRp*P{dczoeQ`K)TsFL^|`=5 zuCY*if*HVK)$vH>aC%%hTHD%u<1+hvKWg3r)<=wneAYtkv=CKlC~r73HR#kVLai5` zbX5Wp%>7b+Q4L!}twN*4$=Zzvq5;-3n;YKb29{f5+A61T3F=W_{0zlv&=hlOFrJjO zlu?>!64(QKE?^_GLA*@~JVFnL?q{CJR8GYCWd>Jh$WPEwDJfEfKAftZxXxZZI{5S3 zaHKYgF3xxtMti5c)FqzXDHn3%`u0e%uC94^yxRbOJiFy4{;w{f;Pod2iNmaO9SKy@ zsou!DxYRCuE0Pjn#!*I)_H{`;gB4B zu^>4Q_5i;9YZ?%uIVGUz=xJ$;9+~-s_ZxE^S(pgfWc>}Q0yGR=PI>Q$MmUA=?uW<) z(2Ykc5%QMLx*k;V$o@}eCPb2TESdLOjpf~yzHlW%(29kL?cG=!*okZ3FVP)+33}-W zvop%wQR%4r`_51we2EEJG*Pb=F)2p{31%cAZN?Y^%_1y|H zrM!d9e)YFB9E7=#-I3DzR7of4<93N7jaU<;f_Lb!OTJR_Vbi!P9%*K#ZCtJLS&QGP zhmb8X3##?i9V;{6Z4!F;+23;VC5!Vc8{LglfY!_xAl@DwC#ltBF6PriLoVY2_r0>ms5w_t(Ej5GN z4ucKs+k4>MpzIIBR*CG{-bRfAs2+6yCyu*k!T#^11}%is28blnR@23{sV&8Or_(Ax ztyPOLWrRH>5#%Za+wPT? zp;xi2#ihJO+Cfvbi~3k((|{F@%T&=e!(TNDHgJwwLHj!qIleYJshL6H`|?lfnLExg z;R=n*j9Aw^FNgzA%JU{ouHF^^T_wk0W#)1eGJ)HHx-;FXd&xLB`o6(;6)&OI*lX4T zAW{^qmipFn5V%?_ZAHE&=r|SDbUU`_(%%I*3uQ&xxWKNcLXC$yMt;%hj zv_c1T2!8r>BUCK%G|#(HoHEVHE}hJ z8_J^<->!wWK}w0>Wp9scFTYW*bB5%lIbpnjm%yC6=>S9QP`}x< z_fkXxFYDo93_sM|ti7@skcW{jV>^)B_C5IV+8%?j#dxS=2bXO1&UamXYNg&xW(mQ7 z4on%G;Na=NGCNXET#KacWc1PaQB8!Sl6`g?4DsAKL z1#*RyT=_wu(XK=XU1)9!`1)PaqHOJ9j|iu@K?6F=;kBEIq8LCzqw#NP61!u~zCSF+W2SHZE>6t{sJLdWziq$vf6{=zmN z=Ek9^2YgF?AhdC%uX)grdd9X!$Ge>+SN-G$=KcF$|4G=~jP&+@AYKCM-=+M2PTukc zj!q_y|08+3DCsB>sUci&P5cCHVgJ)ZtT% z5BB6)dJkTOtCveXgC*jJoLHa1H!luSuWG7+AJES0#~MVPq4L6am1S)c>f11bj~nm`tCU98QJj~5rIsRgRM(V; z#@=m@@^#U8!2^j)mbJw6J z2!WX44U7_G4$RO<8f5N~-JhRRuaqZmzz?k~qrGYs&+@(mV-MVVkPxb#YT%FJ@O)Df z&Od1ND;gIL>?6~Ju0P_i7jih(rWRoM6aIg7QX-K@CrEs-+t!G0-g)bI#6gfB%sUiEg3M5 zs`}vR=-Z z7A#X_ptir@yhs7Y?Ki;~MJPyxyC`BrKePBxXe)oJ0CeC`Lf)X5Q-T9j zkh=lE)zSBAoO_xU5LI{tMUv+~0=#dK)+rb+(tlu)<=~y# z?B_?}VT&o2mBRn&$;H>5vjs#~D|bw@w_62GRzMQxz-rI`Yg4-;f&lqNiXrS!nu`JILer@&QiKe0 zYGeP95eHTs|C6nigeAlw`Ov~egdrx{?AMUI5I&wZJcK4Mmc91nDjrP(r0PRDU8^=a zAbuKlPJ6QkEsh3XIFWG<{ySWD7?Vm1S*OKsDkF~!s_Crq$srE%affUaFfC^GJ&XuH zX?FRtbxix2eW_(b=MnX+MfAuL*mrp6Ma|8l=3Z28+tP(If2Zp3M!6ry)r~pvo~y%V zzk_TxED$|8=LVuxSCwLevE4~3R&vM+2t3X5$#mc6!&MM(RDKs33f%YyQQgWn6b%st$D|wtM67L? zwyRvjzo@X}g^>)|k$qC^t#6=GCYH;1=9o=QWTvfsKEE7L|8zjXoKkUV-!%<)Iy)0| zL#`KXG`zha^_p@(g2w0Fd(p~fY;BCA zY>hUsF}@p4Fm=+vw_8q&w}-LCx_T+6tb;-S+!Yt#64GNf0>_2f@NdV)gBAL^5ugY~ z=-Sa0Ko4|95DtZ4#Yhx%cr@{iRz1=(PR&*3BzKvsg<%_>PL`%+c9!(Shby9$lk+XbZf~PdeapSC0=K$!E%S?DTOHl zA5p&T9}JwC62-oue$}HWg5fjo#Qca=G@rpn^IM&|2HH%5m(9XZiE})&uf)e5gBJ3s zvGXyLtAj>+N50uLMZ3D2@>&uoEHM%`qMbElaW%jMYFJ7RL78@iRSf+uc;F$qQ1d$) z57BS^saYt7vCm;!35! u5-9sDz?1V8y$#mJ7vU{|Zz_$46Jw>O07IUE+tJ(qq%OqzNKUuRsqesXK`Et$RiK$O?j89u$W+F^_$GHl5RqWp| z{BC^w9AI|PHuxU$+h5nN5OhN9zqx@D4uz@3mwKhDhXtLcS{H?!&WV*s#FY8)2>O=y zpV+y#M2LNri@`Db-H&*9X0F$mlTpaKw?waGp%Dgw4l!iUU=U|YvTelj)nj>@Kcboo zZDw#Ofj@SU=am+2#$=8w}_7%M07FP^t*UHJhf1B?E>Xg1$P0&N+~)uG-Y{OcF~ zw(-zO$l^>>0kiB!KJzDbx7H00`5G*t1;m{J;G&cJ$Rp=Y_Ve{AWecby0;ylV$o#53 z?O^?}Nx`|%qrOgW5q|MJbB{tFhUe+t?m=3k*_CNr>uE&Te*(ekRuKV3%TohT$?jS< z){GL&yJNMQrqa*&Q1_D6rSbzscx3smgCG-Qe$NAQzjF*uD1UmS^OUo=k$G~uT~98S z8rv)QfbPUgG-zjCy-psW*D!7ZZM~{Wc7+vvxeDhYtn-Y0kdZmRGcB} zHdaaGze)FNW*EWVO(uX-(Vb(Do0`zZzkn#%9SjMA62=3cK^w=4Rmv3(H=U7oF3X60 zZOTn&kfQ^uh@^&bzyqnu*!patu0rPa9rXPemMTkZJlx1SaaBx_N^xjfnG67!d&+oYk0KsurM>SJ=AA;>7jkb}R!!n-Z~ z=lAL_vAE9pj*))y+1rJv@)AmhOj2QSEeWrG3x8ntRu^tvw0rH}}Yxb1zius9Ho;#_jk{Pf?fX1mz zpQZcE1UUqQE8dNxB3Y}|t8jnRX${kUHt?3PDRc|C^)^Hnoo*)YRNkoeYc!17=#)GP zS=lkySzfBQX}Oqh)|-&dXLw|8Kb5 zq+3of5-}kWX1dU-Ll`#5l@ ziFFBM{GD+0nfuZiZp+sgrGyqup-ALAm=)J`uv_RldV$;*$OhN-i8m9T-bwPTaO}s3 zj3-o=KEE55b*9Z+ZivrfM&UhEst=yUSt(@U3&KAC6|A=7S*EDl5yHb+0D%m6izWo< zeHygwJJiFX{x$r76$Sz2`|x zzr?*w5~3i*KbgoUi>KYo)$VrhD5VByNWu8H;?#9;66I)d@z*7pX_V#Qz83w3;iSx; z6nOShJ|&awV3}-{C}Qeabjqpic4U=&iPgmVBW-Kn&SPkQ(X)7;Gq^E(5??NT(!{63 zz)Z4_vBkoBo4R;}N&7W|7@Qo#GaZxK-0T>7J<6R0<|qbUP~g`!>=864WAWLa) zE=qWP&8-tl`!rEMSkWwFSw^r)3rBF1v1M4E&#aaudsJ#Tf+veJF;<>N=5+PNcd-*v zC9#8Ze)N7QxBgP5UmitX6ZR4it`b4v<1oJqfW|sa!Lvi+ ztJVtxTq#wJCr7S#{CYAP6lEbkc^Sv1Pl(ZNq~y&ub8q+I&y9<6%OK-1jO9N9<8_J` zF=p)%kBn`JL+a?OtrhtN9t)^~8Hc8~G=(qpJD`UwjEP5D?0Xrem)F6) z8coAL@RE%IxNjfH0bcRDK>d-U6$=DIZ&YLiqv<9y6IRExCMY~K^d8D zf=Zzp+{*(dmn#w#-8O3n468bbGE;8bB#<*^HFi;Ws{$v@1zNBlPn|BW>+FMsHda*} zTR)3?sDVionHFg;7je?9z9*C7(DMk$HySVD=uBWEE$PHt(yBX$4FoirDs6djwFnZ1 z2waGNIo(3fctzSW%MyxmIW@G2LcW}>3z@e@Zvxosg`|Q#Je%eqiP(ecjW4lb<|y3O z43C;EAX$O%=alYZW{y0J6gdPX<|tQ_Hi^9CQ|4T>Eo2d%1c3cBbp}*8{fH1F(G)bb zh5jOzv;QWR-F>{^l)3hic?YMpe1Uamgs*bmcV}^md(EtOYQ$4 z7G_cQB-u6sy?QL!*<d?k*O5l4e?ctOs~+zEzlh~eg#IsLxg^W@Mf$&p zQxm)fI8 z-R!##fCstX$J@9a(56V7L9Mp^W9P)}`(u;F^*u*LhaMB$V&*}3NdTks7IPOX6KVhE zD2?3)F)}KXkXc|#cN7CP}dRo&Ok0M zV4UD8$qfVP#q&}H(0HCj8Jzv08SoO{YPPx=|Jy7Xb1I7LuJIkbL^;1F*~rW>`vfa{ zFMdh5{qE$DyMBLejVNJ?;YYe%%ZYOP1Qycq2|rjTOn9>u;{4A0IOdTClm#*lY*wfk zp~26-*eBrr!5PzfE3x^THUjN!)Ht85uCCt{S;%izwk{L$AebiBcE< zRia8EreN}(bsE-CT%-XEItIqz)$LyQ_NyPtiri!bw=)r~-bU%NRl~GOM}ICI9bjVu zptJ)xSX)*M+w6Z+@KnN=hwTjXsc)GLmFqXT9~jY(CsbrOf3c$yJrSn$)*oGq+J!Hb zWRa>1Q|rz~bpFBp2LQsY5`C5^u1vFtUPP}JkHW|dj#ws){)Q~vC1`G#SRVUev_^ITV7)~rcR@)b$>+*%atxmr%p+WVaouiN;sZ5xkb(OL;mlp z3@eVc9~;)A6e%7RVO5-{&H8le@0C)a1ZF7|4pW=1;(tdLXyac{`Y>R>y7f<69n#(M zGGy)MsD!9RjVK;a%yvXTOhMWk(qGucX*-5+2h-O3>V5arYj}MM=_oBhwSt@GOr7pIrTR3L@6WluRlk@FKVE_ZL6k z;awiD10)-5Wmd%bS0EKz)JtecDKa1n?ZZSbab6Jd6}!q@)nZsmcaSb-kZ!;m=9W&du!|G?TEuP&nqU~gnoyQ}}pHQ9=NJ+Lx z41s6N@P)8Y+_A)zKW4^UeMVlb@}I^JRh!{M@Qh3na)!5$zz&g5qC$BYd?wJpgfj%p zfX*g53%4mMi?f(%8?on$p;g<3YM`-9man3^3bPljQeJ0%mdxyjZY^vTbURg1|Hf1{ ztWQEa_VWh}ux9%Yxl?^GLnz7FCvYwe75rd|_?EXf$s^RO)({Fc8e9gXfI+1Et;xJ& zss&k&?w+z|6ITQ z{j|}a_KMwqHCUqlC$1>|4kzF(T~=f)eeMxNL`1PJGeQlCNwM$MPj{YG9^~6s!)JCC zHO1-X*o$#o&k&}OFVC{LJUd_6sP{_9>F)9cWe7v+PfOoX=ILyxZKZ^ve^6G&UDC4G z8J3~chsg*^@1?D7cUfbm7R=GA@t|Yt7;Lj~FE-N4ptHVP(r#|)EK1>7YG`&0BIa;< z(FS6}?WEC8&^qMmvJJ!OZ}odtu#e2^PWl}n8=O78rjiqEuswqD=b&8ImAU|%kQ;Ka zfR$>10A(^BH$Ba?_3`n!Vxs6$gTenr**ivQwsu+CnPJ^SGt_tjfnU2l&b^Esiyb~$8A+c9c31n81##yk-2Zn-mJL>-WncYi@doq=kuAwk$|CS=|a z2QBg&RyYw%cxK>MK|MufsM&^cucO2c!HA_yOjXbCa@hpE5vZ zJ@Zw4k4j8O&2U&}_?ezxz5z7X%L+-M=?L1OfjbFU$($JM0i|-k9R?sUhwRNT4U$=h z=ysFzskE~55G`%OTh`kIvs-s;9unx^*`XeJ)@EHu#5j)URj4a>d#*HaGSd4InMfc zyr%8`=?aP*Y*=N9&DMI@Hx;ezEMM{FXT%A--ed_JnRi|N6qQ_Ieq?R!_D-Wl7K^5D zB@N-PFHvFMio9OF@S5C5hvx}R*<8FHtjyfC*i_Nx4~E{JjT(q3FkROOHRo-Wf-h%Y zr0rnYzmcVP!fQH2tN7@(>6qN;)j34Rkxj!qpHgL>w1<(LM#<4u#hxsst*|*|!g)WD zFzqW-jMP8iT6USwxXDl?Km6lC^*&!#fb8UC`EASh?~RZAS~0 z#OKspy%H=iQh4ha$KRMR+<+3ZT}e*tPrNB1HEWi@-)_w@)FoZYG)%UPWQgt`Y-Dv# zK@u0O5AZjtIPLSAy!j-qNKHy`d48ix)zYMsdLdHBWG)qrPP-h1?6+^PWm(35z1IoW zS@K*KIQ0qGSw9yoGf4a(GOC-7uemhQx9n8qo{vIP`%vY4>Y+%?0leBC$P- zge?N4)yj0i!}QWxcqvj#!QqT$@*Ty=WV*c4l*LXgDgPLq@G_}eeE~+(;kRjeTUL$v zZwwozS>_7sltUKwUKcKYw+JI46eoPZU&}T9 zu}2NL82&|}ooq_M4@%|$^ylxx5PcDs{V!N~__yK;!G9B*|2Yg*^z5z8tWEyY4^o)_ zw%;_U%mmz2zj39DqDhg8jHgz%3QXOS+yJ=*w^`56^#6b>9T|d!vK0&h&JNET4%ghz z)^DG~$Fx6;<@C`kOqDmqQj%F%gN_DpBif8Or(3Mfj+8Zj8m!PTFok zJrX;#lnV-;B6$nh(ETi~Wg}w~#ZtC$IBuxivy5U~cZykN>A9SAc`fH?E{8t>*L3n~ zX>aE*OaeI}n!hFa5Z%Mvl~+tgMWqt-i0DRh-9e2igc0r8{p})0&Z@CWyA{2p(O(~B zDpLEP`cJ!0&{lJ5{nhF_>YYU3rgqZVR)ly#`UT%(QLCbg@t=&<;;UAd&ar`;i3WLs zg#uVHyyKgdCivo=C<+u7dL$^!PIAj3t_10V=k3uPE~%fnm4N6a9hyz8WW@r2H<2nP z)sX+k$bs6M+pe+T54cgY#cG~f@P32eeZ!?3dJpZiMCYQq-~h3HO3rB zDXdt#`RAIiny;m+E)iSTQZ0^UIK~NXZ8VxbX+ciOjq%M0&ix7P5PlFUkccV>jW-J0 zqJiW8db}i%HQRj=$#j*eff|3fC_)B<{~&7hfKg}^w~%>Q;8X{&>H&R-bR9->DxfdJ z$}2nvP%~=0p;-_w4|2!?*T)$ljcvEfEV&P9gq=eTnuxrMM$9nuI%*h_--i40UC@BK z&@YdF3v`53*=}t;*lYtl3->?w2}NCxKOY_O3`b-c`8kRX?gkmKOI{v_d(iNN9q5-wY+u9ieJBifmqVWlv$U<*$s8nHyIrfab> zI5}kYN&4}Flu??uF}evm%kB&{>vsEP^E-N=eUr%$lOFeJV{6eoYAv?4-5Ir{K7v?RSRGT9*_H1kuk?6josP zt|FDkk9q@@GfN5hnPD#}&TezIVr}N`#pa4&e>U{@?BiC%Dh&k4*e8nzsg(3l6|E5I zVxR{cSM;Oup)S4Fh_@~|L|bPjg}Wb#m*z} zJu9YVhvf=c-^^0b3`ze09=pk%z(?)0lUYPuYUQd(6c;WqfH#Q$+a6g!LM z+Ydsv<(P2O8dU4Z%%!RU6Ro3CA6%I|S5nE){QBSt}Eu!2+r|n>Uj3;2Vwr@2ibpzS^gSmytEP+WMcr2-0k?` zx99SHn^X76J9bfGY=py+oLr@RwuC{=1Z)E-i;`TeO*?6(eX4CL!R(HDJ$S0sDI?@~ zjf0kSsQm2*<+JjEBmn3eZKl7sRjb4-_JJn1&QkpGEq81uTX%gtM;E9+{B&Q3sFr== z?rc)2r98mwUd$|6FVs?`4{-~ACA_n@q6N7(pAuQa6%6&R*+oPt79?O=>9n9gp-=FQ zBu1XMB-vA_#-iz0a{d-qFcd0Lf}<{$>UwdOO&-X;cR^Dm$5kt@Z7`=W&RHUbGB%c+ z&VDsMvF=wKRTs58g&c812Dh82Bs+z)6pGIxO2t2o=}@15cD1TEQuUK7KB`ACXAG2U zxr_~Uj83(+f`uz5A)r=aXAF$F*hbS33GgTWAo=xc1+lm*Bj1hH{p35K2fxp(8eMb*Y1djPxKM(34Q`jIBw{L7LL^+ z=EmIB*L!*dw#Qh^JBe0R6{I)><(MCjdthV~&&=<><(jHU=lXyGxY}k%YTIeT1^Lhe zn`^Mg0SP@Pgj-#VDH>`L%137ZM|!uy1qw7#Fb?6iuVW5rx6n3?sE>k8%oL^Kx$T%R zz?g9CpoY{~eP(^wF9_6cJBW7&aEx{F^sEkrSu>a0o!>h%qESDLuyq?RxM2rB0%(K) z$oPrvn^#6-Oy3qvd6++^6%x8Oe#OJz0|n9j#VdV~aHc;2s3S8f_|#(T?(ItUhWz(X z0EMvcb=bh00W4&B0DWfBitH#e-eD|S2kr8o;OO0o{b<@61q+xwLsvHtLlYPj#&ace zMn{ftWm!Q8y9pP2dUOx)lVN8WN2rux@S;Z&jYc@zlpR#m7IrSfH1v%MoNRj0kaq8RN z;&7^-1jRN?hTtz*^9YWlHH+JckCOknH{(`HV>$0Cr7KOvzRY^9-Z6SJXX|ytGJ^TT zXI%4lNB3RIUh^i3s`4#Uiu6pT;(D0({MHUNs_tf8EYRzY zO_AjffelJ*{&zi_yO`5h_>hd^$mlv{o>;pWN>||XDBbDjEVOiyUn0^N()3V5>=q}+ zCy)kGZ*)+{9EQ30d_y6L81Co@R*)c{I$dau_J_L-b6lNS*NRHPbJyhRO}Tp}Xl?ba zO2Jq8-IDrnTN&66y;f5GS_e(=riNj^Lyb~&z;_>`wgF5RUlfU zB^f(HZC`w>xWKu4T>>k`b7~z8%`3{EBsd%+>7j&G;aa6gD``?L(I`>dl+VoJM$Q*g z*1R9FrezzevnHT}w|Y!hofh!N=Ae>bE|3%*ND)TxW%d!t%B`b{FFE>GEot&!h=ldX z?5)Wn0M(S1bmXP*y;z+j_fYyrz_UbgsMPvl8}Ek@<9T#FBj!RG{bsWYM-LZW*GYq z>6McF@C~6i1b7;WCUE|BL2YvQZ#oAATK6BkbP^pKgcZIisF(Eo*<6aX9 zJQL?#)5E&$4ZFM^Pe9;Agxu<-k2^Nd2y9AT@d-Wh2ah~31JxBa#Gb01KD^>x-8byVax;e7sE!omKZ`}!ZcDN?rj9(eg~>-y2) zS|G4Ql%Ky5kip=}Y7UF!O-svm2SH59O|{~oss6T)7XH&d8b66t=st=3Gjy%Y^?X$i zS3jBfjW=5!PuULH@0rKh7dn5w?l65}Z+v(4*=?>?%LX0mN)Imw>WweYg3T=$&;-__ z->T9n%7&E9?Hoe3#=#gG7g|QZz!TKv6(o|?N^KJ+X2?CA7?b9yw5U(F%QA?=*90@P zrsa0OqyLD%6}_5uc8v+ndg+DmsuX#%&8?+M@ZeMTbHgVflc^?01B<>*LnSDU?L~RU zqb_AtdPk2vjG&Vh2iszawQA!P$g^r?;}c9Y$Id(BGQk(ec~K+FNqMUTQXGqiEl_~z zh0_G`UOKMWDtya)Ib&e#6H8$rR5T(F4bsxh)fB}jdF>nBr8|~=6JA^g2z59M{vX_d zfj_tm(XemCSXO>)wZ-(m$})xHWG|S_GY8Y?XjVXM4IGkX?NA4!@$%*8A}@-MN=M%I zJKd|;B=B$6Q>&@VZI>`0xH!QP%Az5;96L!ghehx7=mrxkD`zbeIdJ$oq<~r5^3n_2 zSWJ&C)*O#B$V1_8GO;oP8=!^lack=7B6TlD`B23UGFqrOLz{hPkM1!NpI(8DAk1$j^>p!S75I38@VVnB)f?mA2N^+l#6R+FICrB zX*V=a_Qjja<%xnUG^&fPyn^1JWw#5Bq6HgICNJ2hHE)|vRjRsKNgrRU2lX)shs7I3 z=8LiNsoJKk#KQ@u{t)IHb(6@KEBe#$Lw&FV`jTmzNFw}uWM*atzYQmX+RZ&Us16+1 zoni_^bAT8li_WfIjHQ@#qK`2v+Pax7RM!J1ZxhV&lO-iD5DV%mcloUrQc_%6LXf0K?AC8~ghqxNp5Xq0A$YsPlP20~)3ym#iW{LS8*Vak zCLi6d$kyoB(KLWQ^Jv9(24t_?$qA5zf|oxD<`j`99Z&G0dba>IC3r-1HTTRZq>5Ps+MoCH;OG$cL)ErWo{ZCu&9Z&g21x zn@}9)_Avp3A;K-sfSKFy(h)YUR_I&cu}+1U6?~4fF(xYwVlCQ$ggq=r#rXbQW#7KjL7Y-#>113(vO0tgJOoo_CWA!?s) z-aQ|gY7UCA)^nZK2}081MQdyCra1-WAJcz6AG?{QJjy5WCNFXvd3C0jDN0JJ5-hrd zV_96UyzP!@H>OrSFJCq=iRo^=$29*8blS!}nU22?e<+al?WFxxA_53c9)^BM35fpC+iqa#`i{5 zKh7|g^mxO&&i)^=_?nX+7p$ivDJ$4SlEJ`v-{gVxmMJ57XTr~P{ z1KxOcoEe{J@L?#0W}Km5VOPHT7E1!7Nf3noPB?APGLZiFmh0MXXKIMWE!&Rwm@Uni zzvH+sr%wzgYzyl-#BwojS7<#~aUuhpv;I*kVUZwwU%2sVh@BSQZgtPck~_#z&AbG* z>%(2Rh?e%xn7y91J$OeD-{F+tJ-(af-Hvxmgae_rsdM+#0Z;ZG@H(=hG-f&Y75#~l zn{|J&Tc8^gMzx{@Io_S)6pHLA@*bCRC7EMC+#4U8?b8p&gPN&+@sd(fzT*Mwfq8al zj?ItIIr2e*o$6>x%?xVtjeg?6^*9j-mvbCepcdL`WE#>ak=X8Gw0$UKtk)G-z#+!a z7r{6OBtUO=Aht>Fo-)om?w#7T;=VcW5^jr%Yq9Q0yOt4zHD3}s3^Ygn<8x(i|4 zrxN&zKy^ypF($Sa=kZR!X@vP;^U;$^G#BqX(LlYA%7$Yu$v3=UQ&t|1y zm^?$?0nW;@Z)_PKsdMKvPQBQVnOnj<6h6nrp& za1lK|RXix)+HT10)IHl_xS}<_%IUWY#wEeRWqF>fz3L6N+d!^Mv6=;gus7+rze@MC z6n$7RbNjTb^^_%=*o#lI0CP(SZLU9?h!A7=&5l> zxW8+xv^C+{2p58>s5@ zzO3MY#P0pr(aOT64eWSRmGz?dUFmvork(SqfaNMXhke#s!)UTzH)~!MX)VgsYR|6T zaa&-BF^ZbmCh~69ia~TKyJ;_{Zvs1IPOTZA}&_OZ2orqEc4iYwRl8#^6fV>AHXXG>Rs*qk{G}n>t{o zJ_3whN2cb+fIO;8PB3FKX{p4P<(DNo!S8IOzL*A~UPz1h7`mmVaWvj7$X3(ZhgX4p zcd{sL3~!7muDC93c2A^k&t_A)^avzJOX-1N1c%YXdrYrV4%W)|k>Ui~!#k%-=;MuP zGIj${3m*TRSrU-0-7nYp`zR$#af@xwX4mf}ovF5ffsHB2shCR7$n=R(?_UqL$3Zz~ zKsEDNjVNhG5|Vf)%?{*-ee8j0ukAkGRH9-tEk(7o4glyKzBd4u$ave^*gOs_9ycHL z*!0>dMVVXskw%*^U{$ zlr`yqYU-RgO1fc~Cj$`&g`e@Vt9HM!Arg*7vSQ>&QYt-*HO=^jUaw$G&U!Y(<|U z;V7W2on}%->$|v~KCP$A&{X4fLo5&0^C5X8{sgMpBVSqW%TQwI`8v0FF}-a8f9$RL zF*Gpk2B^ln3`;Z7k%g(>@$C z@W>!`w10mMnPLLn>)|n{^!cD9L~vms{grd3o9llo%)R>Syk4l-i|vwTFIYQl0hj8*M$lPpgj;B!UgJC?gr>aou&R%Kbg(Ad+SOk}R!CetT$UZMJKp{l%J3IIRB`WGBMNj?%_YoY-p{ zuYwsy`RQri#HC!HDiZL#ooleCb~OgSk8Sn+)z8aLp%cJ@SlY<$^;{2;FSW%<#5jVZ za^|01o%q1;mpyNX^A{Jv-X8GaQ9Q3vHjy1R<8@g}2u zlz*M^+vaeWzEOd5n(J_B_R}r8ojqJVvrntp%`+?hnU;ber=L{nnI3tej$~Lu zc>M8j-%k|elu&!c2OU12zmDnln`Q&Gt4!hfa7Or9DsLOB`^#O-?9t@Ugu|7hX2iSM zSzy^$0%7@|AJ#PU3fG+>PUhs=q zC7ztWk6)iya?eIy@}?X}Ydl`dVvF88x?!akqLbU0WsWCgZ+a-CxfaZd_)O;Z6<{f| zqQ79X$cr58hvw79d&UpV&R3UKHSb8a*;?^ zCgGmf=k`9F=b-yQ`;DD;Y~ekLNg-!aOl=(yR_8Z2g+&WPRHoNC(*j?;<$iU+V8toD zQiP20++Bh?;<-S*OdhdiE;mMeQs_LKE2@Xznhnu}xbux97_pym;vs;$xxKCHoasK4 zYTZM8Y-;&2F4CbrVhBt5=n~N%qMKb!iOz=bE8))&3h>e;>+?eD4Pz7LfuM4s6f#*8 zbLUrddE`&pW$U`j=%iDXqSi6$@T12JiPUO&`Sm*{ErWBh_SguF!Lgof!I8_!(%yw| zf6TyPY7<6sF%9^gf-~b_>=l@Vs=z|mRcXIuadff@o;gpWd%LS!y~MJ7jF%WVS8e|B z+}-NBQm(H4zz|SB*#(;u{&IC+stMYGyidvF9je*vK|Spe@I-qx@N5Bpi3@o#2QwSh z!8L87j-^gP#gTFYYWW&tqtM(1BU>2~{} z>>Aj3Q)3_+@#k&id}+}Lv#U$PTM94g^Ao`=j5igm<%hw?K87J%mh^eK=kC+{&1E%u z`({Q(!jk(tfNp$L#+1{0{bTW_4X#e3Vaa@_bItlDj3m|#&!4O*q4s%ujuNdxVDGOG z-)N@F*T#0-a;cte=t*B*RY-G5M*LuW82$q|>QDhV1Gs&-1h^3VXnsjPtbi9ZeGGjN zeV9GA0kNJz-<%M%h1lZ$n(i9lMslXakuLSa;g)0mRKgOYK*`(qj{&-D`;M}_r- za|T#%Ltu9V*lFYz&?hFQHa)IdkGDp%uX($?1;DKEpl38^o`*I}mp}p6j->Mr zT-1H`vIsYEGNpGK$jQTjBz{b`BR^cmL7N(}wxRK0M*>+oPSwL;wz0r^sRIkTmt=zc z&@tp+CN-u`PR0;Sq2dC?n5_$fBuF3V6M`ot_zqw;f~*N!SpzZRt!uoUn=Rigxx7=H z2SBDZ&6rB6lKn{yTAWFeG_O3Rh~O$=wHk8XxqMd*;{;49R@?IDV+u~?L5Q{eP&J?r zv{?gMqI{`eP&`?AzRFXQfc5&CMINOqlF!edytO|`Ra#|^ypJT_XljBAkyC|H!LD)@ z_*$3oqa!^V3CAy=mz;GenPo3<;&5^;Dpq?R_qo1OhG^E0V_%G+_HwqDQI=PoVN8+yMV z0N|Ycce@YTt^vhg94}rqH@M@7eT-uI1Og#=SRx~`pb{WuY+lS%$rErXr@>7f~c!~!B@s2F| z$7GJtUQVvsPbr_0V7b3tz^cf`@Y8*P$81kEAha_l7U-dV_O1hV@>(xalr$<$O$FoO(q&Y=~PH)K7R0y zxoWJ$(j{yRx5hYJU2i|b`f@sgO|mWEj_w>X)78;!TIV*N!C1lN?c*+7DWF#cq0<%@ zjE2szDL3lDmwQ~Wzyy%tWn#;()Pg^mv;H!DeiLyMrlGI}JFHV=NP`RS{F)1jC=WoG z0#mL}qR%_T?es-fSLj3mnobetD!HcAL+Pc^FTAo)Zi0%OxZ^&VN<=Wm0JfuYt$NPw z6CIYf$`-6&wBR?QVWkk2@1LB~EFnRPVaRwmTFqiark|GVG~*{1p%e5gGLCs^uy1mj z0&#;$wC>vRvX|`vUbhF4M~9By)B>E68>f_Nf-wm4)Phd2q|V$ys`Bg#b-o&J(bvi2 z#^2>Q|L3UsSgGFR_}(qP{eJ%6OTh3?34-FZBmnr3g0~B*kD9$w-LHjkW05wI`4Z!F zadX{xs|#o>85tT7J}ayJY2JQ*mYz&d$l*8AU9Y-La~)6U@$hVK{lqGeE>+i=&R^Q> zq*G2eRv@cN7eR;1s}t24t4j@;y%UrXzE=Yg9cmwnSB4`9mEFL^ud4G-gL zwlZkMCvtHH4OC=;rpjB=TKx))burxL(iyiE7R>>n2%Ul;BghbdAg;E}6N#6-0ukSu z!VQ^w7^E{aDX4hm2h;;-)=3YFmY>rM>{B208n-$OSpzZuPEjwzfw$-8X6@>L*f_PH zj#`kzU%o1>BXO+@5Fl!4e~-tj#2;7R-Q=OQKMx}Ib6RR-ERBZ#qNR!-!N(o$`=e_> ztoi|>fu%LI?jiI_tNH%ZLt>?$#3H&=kgJEINmXH_R@q>ypJiCe`?b&lNrw?9etQ&N z=dbqIIyFXD_^u1YL*M{-G)g~F&4EKr8>G-=kg5T9ijnhRp-HJIcg4kd(IBn}Mm^!-yu~=p?vNTY-R$zCWQ8cPs%BX3w-aq-Qn5U|c*U3)h~P?k zarMD3$-Yu0T&P0a-$qR6Cb2|F#uIUmLS$eP-IPYLB#9TIyxgkvi78Fikt~4+Tiz+L z;lh5zmQ2S@yo3i>tMt>X3|NSB$9@p`5nK?e69hrT)w1(mVq`3U#MdM-+-4m4sPzqV z3!Zt^bbjm86P^O(X6AXd%J$p(TCaIcei&P0riJf;mKrjVv^9V(Z7a@%%!(twG0k(q zwJ&ziz^|^lh`=CK4XJOhVo_Tk`{H{TEY`l4v5>!}WfDdRP=`PM>|ANq-asp}w`IEA zgzxFNzJp#&>cUo3sy!jx{uoy^kizd*k9LDS$5MGcOsJOgoOBiSCKd7gd(@*n6Q@l5 z|5~Dd2|)Od6YQVb461o}YA9j<$z~drs&|xX2ZgM$qKa%hC0j?+%|KqNHmEQIwP2;f zb6wwRTD>D^)q_Ir1?`#*%O#^AV?(mjAjPg6BT-QF47etJ@!olVjLGlbZe?wD+h8)F zJ7_q{&b;UB9)9+mzJ6}sy)}X52H4U3P|&ruCd!&!XVJ+wc2H+2`~?QoRIyxc1d&XP}Aidf2OG&L1f3a+#>fnMf%w)Oy1RV6b|I#+Z%&Z~QKd*%GB!s6{HTGS!b{A=(s-Nq`VRVQ+J3>k6k&z@kmTPeKcC*t}JmPdQ%8>J2O%4$+Zp#6AX)c za(Jp_Rx<(9+j4+}M2)s6toomr;59R$Q^dBRs#x9{YB{ z(oBdQ42tyniReRxJb(`Td_|iUl>8%imYlhLv8pOcuPm0fBylz11@D90`^{jKN4%NA_1;H%*(xq>rpg{2j35LD&IX*Q)BV87o!+syIO#&;ZA?emrD#>+^r zb`;Y4Q-_y46Nkda@ctiOQjk6QpPn1kWpBiI#N52!fjp6d?M&GlDA`&5grD{zn<0R%6v@c#;{Q5I&Pf*_ ze1yD|qoCF$kyVVi3`CZMER0E!blzD5QM~%HB8_w$K9={(v?gqx`Nar&e~E-5mC~ia ztOP;H#=)p#pT$dSI|v!(2|UKySxUA}_|`#~nIuBW)3=uCwpF$wDFEOh<4VCIDP*3b#@d?r_G{(cdV;3Jueic!>&9#s+c@|Zr0 z9|APheCh`ZAzu)jx+&qWlmYn!HT%d&g2W}o2VFAnEV6(EW4&HlHS6&QtNUix zoGBIR#*yctN5y)G@WQN*@!!&eILEVRkz0wHuHMjMs1U%A;;xh00sL%zE zCtLo}GkNG|KVg1H`hw#tjS6pW1tDjt4C~-$#tUo6RbcwKozE_&=y3z#S}_)8IpdVqCedg-A1{FK88eH=? z2`(06QmsYg-S`IS3=7#34#&Hm^QXTb4%j-WF)fL{i!4Yt|YcdB0tK!Hz93e8+wfL3|RB;@o^v>Zmm#&Ux54q%v?M`K9 zuoYqU4nIBMRs!10G`W!+u?KE;kuRrm=Qs9t<2Lr7-B))xKGJylOFd95egLO%d`Zx_ zBe5X~B2AQ_XDivFe-e(G5Un7^rv~8frr=u>g(-xg5~3B&q!j$bh(fX?L2{c4z+dZi z(2gGQ-xEiKz;V)>;OKG++BcAGBce;pm((2+^Hr-YebkesXaN*Aggqmy3b_H%g|Nv6 z57#f<7L-GJ#roB0N|8TDFrFfmOdC;)ZByqNhWcKg^@a5zZic`u@hzRJG(rvHWDQVH zVLC5w1_jNhN({IU|GYSA#dN{#p^hu?*onsC<_g<nqzaG&7BA0lZBm z-(dprjM-c<*r5fh+H7Id&Y#a0H1H&|+nd|Ispj49KZTx>F87SvN84_5B93n^IMpcPw4G!*Dmzo;A{B-Dv zw<8&fzU0QeNDaE-YIK8=sZh3EWW8pN%D(+Qp5K26svyb(R|yKf^~ml~JeGmoEP@7- zi~*jIPvF&r#E1bzGnV?9I(+F%kLG~eWeLD2*h9CAG44lh1Ft_fj3TgdS2FweukOIw zXYk8Jui_J2VOoG_l~Tx>LU7-gz-AYFbr% zPDfbkv%XInWeT#Bg!eddH&-=(^F!446Kl5PYqq2BUT>3`M^MGG77`xrZAWWtdJKDMlr&N!rQ{Z5!bvLok%e`xtEH<~atBJ_vVe$MOODJ~#9= z8FE2+SEOExnA+994SHlY;f0>vAl=(vl9&8Fidfm8Gd=sFDuV7~^os#ArC-eIQS#OS zT@S?bg*=-9d4ds{j5_3oQ#Xg{qECkiT$lUzkg9Q3GecJccl3=)X@lOTQW#4ws zWjtUFabm+tm{to;P2sdoLR{8D9{{1hHYz$-uii+u&eNX1Mdwbiz>;yAlHpVmu()ju zVasehRXi#6bxL8&1&9$T4W_Z5Pp!+Jzf-s*o&+e0z6HJ7@6C$;`6l)+ru;vc{}1JN zs=Ik&s(Ja?z(k46t>C;S#t<2d*BOo54TN7WB1s5^5>tT%V)$RcmrI z`R>)-{p`_w9`zZ9%l-H>P?mLTKs5BVkMlMg%CLG#VVby1p5Z;_r`G%M6;+7n83Y%!aFVMIyM(menFdORt7+w$${VBJXf4?jT9* zl(VuS+jsuFme_4upCNUpHzsewsi_DDkElE;S|NC2Qx+839dOSs(Z$iK5G0BkV+rkDI;KmN8C{*^WXoG=^M6_sX`d9C}Qi(-sAR0 z3?v%=qcofNmvMe<)DP&oACBM=g!wH!NV8o^YsF-g{+sJY<^v09AZpHbKhT^3bw!|m z&}jUexh4&N1l;0h26Sx(+hX=Bdco{im9dZiJXX0Y!JG*1y>p{7pz2e$?6&BVZ)jwf^oeZPt4FWcMMx*ilc>J zvEMObDdbVh1i;E0%`2nUesYjQAgHm%ECqQ>!iV^y19kLDk|W917%qmBkM#k>V(UQ>_JUUee% zdP-7L^;)tqbrr7MwZke16>v(8kMg;TDkDOv@;UqO4EN}pq^*HV5^d|^GWM*?e(dqA z^(%vF3gl+$`g~>ha@^Y5YzAXRyDHIqd2Pi*xYdytp)ekyd8Tm>;u)Eh&K0Jh*3Dv9 zrQ140WK9C+`LQ`Kwv|y9Stlstw^Wed;MJ-3E6d}Xnk_(GzAfzrE$)={`P2t9+gIeU%g?KH5w(P%&+tOfi`4rz^NkEU zTqcg_8vN`-1Uap%iI1ITrTofIDXB3FA`UwRb3idO*I-WWL&KKCMM|a9pGM+?+f{oD zP;~~6l;&@$st%_z-Wm%O+A3@Hg$hICZ|7QG>P!#QKu(W)U`9xEuWfR zm7WGcH{3u0X*L4{$A{zJoQGp5aW0O7Se=K<*W7CxSyoXp=-F$cm`jgvWz>do*@WwQ zyQ~Z`wo{!iZHNP2?z_p!o1QgEEtQYAnTAysh`3C*347IE*@;Cv)?yS_lscJ-n|0-2 zlLLOBWIdZs8FXU$CBRx`Be+(NF)2BVS1>tT^lbnc(@agm&`K@dN5(9UekgFzx{+2t z5Sg|+R=9SN;;14C$?dF`n?++%XG;KqxU|<* zpl75vN~_p}wbHs0w(5Dsu3jvMd9zMvLjzdqXQC%J8Y~EeBchUz#pbRhp&~DXB%6y(}PZU#(fWeL`ag+sDmkjKcX1-EKHT3 z=@J{emMG}4r1Vx-J@FXePT(!W*xRcKTLak3=~OIHsWXWqjbjs_($i)rAv#Sk$^U#B zB5_~NBQMFYuJy7Xu9Jqnm`A9hXn4>ppb)ECAYYvE*_zQYH|T}6Zi^ZqsHad;fp))8 z7e47i)3^rpq7f^;+lo&2j$0h!+ziL#blbX;KXH=UEakA$FLfZvqtI`*eIP`UXdZB6B~V(SWcq5T*GVMi8y4#&x(JQ?gK>7DrQXovzXcfBAs@Y6!IrnpPt zy}Opu!bQ_LA@~8bAf682m)|y9fEQ7KJlc&Re}XW@FnueS8mB=PrIM9Os%q$Jx+K^9(etzV9RMJ4N&@`h^nx@?e}~xR?_s#F18d`>pJw8%LgR`a1>NbO*UC zJH9yh8dl3HB0(Ho)gtorcx-qhd=G(mmYqZ?A-X`*;Tg1A%PI4MZRhj$fhYPjzi40Jm2T4(2B>?Wa2PJXNr6;*=%?P+WrJb%D3M2i#lRJf((Kzwm0Ha~ zm5NRMuKhIeC6^;oQs~~6Vx|eLlGKBg zgNGAGp24GI!ZhG5Rckt4moqh-&hhsb#zS9s$Y%FBMsc6Z8t2VIqLcK;f`Hli1vYLh zxEX@k;3<$qdq~9qf?+=5z$ZotfYX}Cx+28Bw?pjhw_@{Km9i;Ek!)?p>!+knayui8 zbYt)lSN|7Z=h!S*5M|kC+qP}9o^9K*5q_Stqybn_^kX|I*(%+$+GGZsjc>{wE^S?uljXKOGi4tHi|Q^^w#`l}NKUPZky*in&u7;iFhZAvZASM9Jwo4b`*w3EDG*6J=AqbJq4~a;{_v=zrsT=JgL6LJ)Nzksk?zA z$g~z$$KMx!R8D#1IIIN;>PoS(Y5TRngroBm#M9if2BR?_oCp3T*-7kXi>Ot3)Somx)XDc4M+QjRlfSqN-ky4JyPXwijh12mOg- z2UU2R^Wku%16bU8C+nz%Z(iFCok1o+cN38&^Vo8zlD>!hNRN@(y(l&h1c)P(!FC`p zEjf@@cJZ4kTTXpd)( z9X`J|mV{?bM6fkUph876!!KG6M%+%(d0n}!MP?=*9K9wYD&?7CD4T=j$Ns4}o1sQ? z2L6~+S_$|e(-h%@`=AZOpXm<5=HoksL0DP}AR;sUa$F_vF96z-j%X%RS9hDAp39N8 zq#gr=(wPQdD6|{#Q4#Ts%Nb+xyqrmjt`eM{f=M4uo_9PT8e|>_ynmFvBp$1q{rH|& z1_aDU&!mJ6CR)+tYC~B$gElPtxu%-Pj2C)gepm{8P^BLcux?ZnMnN7jI`vAJk^s!8`I_kw-H zs_)zYZ%bQq=F3_LjEC9Dd5_-)nC;HHCK|+&jQso)P)E_0l3?4$A6mL1x(d#S(|YpQ z_s_^g&F)~ytsd+|?g*qj$*-gCxQ=Hj8j`%vAL#ukd!3V~d(;#s!DW4~?Umtf2EfLK zNDLCK&v>Y+1~d19a+~wX=aoh?GNpGHyxH^lf~I=tJrZZ}Sa5EEc|7?)35w%L;*QMm zh~5aF4VcG$K#GvXW=`kD7@5eK@MRe;XN~0D8Jm!?$Axk|jYRxH`D{h;h5TX{F1nkb z{JI#?J|*x}^85VX;f6&6xgT`El@WPSn3;@s2(fC^7s}@KG6di27?Ids-f;z~Kd}py zKtHwCD+C>DdEGcx3sHU0esVBV3j4;&Ew$inM(etU1kbCUtz9mmh1|ud-oc;af?x9T z*)XJLQh8m{t!+`;3jIX&2=xE{QH0`{ok;c8ah;W?{A4o54MT$p`;Lew#x;P$#L5J! z(a$YRL#@>l)FZ|6t{D#Q&8?&mgG?#3TZAA?{T`G*b?jx5wH$bXwULao`h6bj_Y0e! zZ#~j5!suc0nh5irnoe?uf}Fj(JqNA|(_$jsUu|tW19HH%zRx@7HhsoF@6r$YJ9&%7 z^mF-JNr`Q<;J2m!u{U=9ju0Ht!=IM<)0%AV2qeu3|&j91jl%r&YjM7LO^Y7?b9HJu-@r?eUr~Osb%N z7hc0c^^JO=9Bg)NFL6x*9o*##ZMgFt3_Bl3 zh#qNu{?IdbR(V#*Z-_HVoKz-;^f2HiHbLN|0H{GnkRmbP6X?3y5;lIlKl$gH45BmH%n{4Ycj z{!rwXJ%60ngTKT2RvA)Qn7HdtBWT{x8Dr-s(1rH@{1aWVMw3DW_G{qY20~?6kp(j(GD0E3_jA$}jeC<$Fz0ox5c}LnIOQyf-Fb}72cKszR5}?08 z@cib$^l7u%D_T8IB;YLAQb0RGvphAwYHk{MdD@$dvl|#(+l`ZAWu~8m^zYQpaF8)S| zA~iG7uqdE3Ce-oQ*Q*>&z|GBH80TK?qYNbRa}r_c1tdTT4^jO2HY)FEv4Q8@3lS&J z%=X5qOHf1M0^I2Z;TLXXCDnjKX3&lbKgP41L$hWE(XfViJf1V6ETEE445%8(cWSvS zV7{A9T10YEJ{ zs~cXAx!P7*7}9xZUQz(i*^g|twhSGS0mBy6)SUo+2>dSRK=4_fFf{Gd;N2cDG;Bf6 z1jDur6ORo;H&iz_t-uxjM;b3Q4o%;k^m7Adi25I^&w`<=lYVga#NhqCi|GsaV>p>1 zTgEfL4CU}P1zx~!A)uASoH$R}uNT;`b}Cr#l<$2hpR6~L|6D9jQxjLfeqFG)E!5|O zaJi%*pNjJjyU3p{&aVzVc%8pHY1lGrtgq%&x1+nRw3`5a?eKD25rby_Hoyy=+v6V6 zTEH*CAXDmS;FtiIc+l~n=r#X$*4b%!l%h67sH58(d$E%7UydBXT`*%ic8G)XOp@U} zL6Lmy!P-{x1uw=-+rJoCJ}|sJVZSJq!{nbCWAl26(tj`53t!&~7f+Ut%yI?tzA!37 z%ANtJ6QNY{lNe6I`8l$rVZ-ZKNI`u?iruGGk|)eIB$$!JP}Iw0LHTR!(#q1 z?ec(k0-61DJN>h|I%W^~;;#sVa5wUL@=9*M1FmDt zZSI|iDEA$wKgaP56Nc>3r)Q;}b1)UM+eCFKEL~Xr>)6lNioabzn=g z-w*n7cx(Vr`uuAg^41x-K2Het9i+P@(dQquv&{=T*uz!i$$A^u)qI&lx#Ey!kZrr2M8ut^xU=|*f#;2+mp{MQ1-Ji~ z0D3QRpzWG@CgZ2ngU#rh`Cb^LVl~K;KMPdKM8CqPev(hU+EhPHk#EbAmN_F3cxYz^2H(Nx120^_^4%D4P27p(-BFDQ;wqsG= zlK-8p$XkC-@Y&9|;K`jNWcDZu%#(@!Fkw*$qZY(T$uY#~lF zuYbwSwQJq|hlI%p>NanBa-1|nC7DFcU^_uchKl$o0+?5)0&{L(Dqp_ShJ;A_O359R zun0XkyKvwRtG`Vk9aV^37mB=usa>_d1xYm-#tN$rTMhXYQ#XuIBmQqv03>$kkkYxA zex_fD^%L#0&9hy+L8|^Bdp(?8QF=O5byhU}5SA#lxwDn%0z>vB1Vm9dcFO{VUMMm) zZo+~)CU4k6FUGBYbG0ZG!zKjr4n_+0mjs;&<@4YF1n?~QRm)p30RTq-bq)Ui*FISP zlTZEQVqtA;;`o2JKPBp6df02Ye|xxdikAT3;xWOHC;T^r^>GB!k4ZvJpshm(*2!iG zaqU~d%-1<0lAMdXWZaf=W}Vp`lo~f#a4*E&vYhXJ)Sj32ys$W&XtQA|Ue1czU<8-#O;Z24CYEII^HxKXA!OUu672?6k%>(Hwf4?c;`w z&TL#E3# z4&BHqfMsWe67-}R@I)B&1~G?wi_-m=a54aUGh1ZaQ5fwssZy3*_O(_idp*G5?4-2Qv?v`Wg#zT*D1y*_S~}@!c&0j@Od)C5&q59r$U)*}Pq#Lp`Rrxr zDCd*{`m@UCJ$<8F|6o|(G^# zW8lyMhXVe-EWX#n|31R0Nhb-gLsf`hG#x+ZFksk%yN_e@n$RpvXV8B_(jg7=mf-NS zvHge`Ms4K?&!oM|grYBdGOc4gW70J45CidM3Q&=p-JW%}VPt)=puuSf-0F~J_HsSi zTQn17$){=nQ`0SHo98udCZ576P+sOcY?fZl5Eta6m#S<%_CBfV&hV;Tfr#9i+eR_CFQ~KtGymfheqCNF>2Hd-d zBFGxCUK$sl8xu>6mZ#wA;?_xk+&N+%Xa}Sps;AuZb=sQETsM1x5H|$(9K8S@uF!}X zLS_PFa&yzgdfWxVwt;Ys;1XGht{g&Ezi>vJaPQwMc;RN$T>ibm{f2)KqI95?gb6V1 z4xvX_5H15$+oDoifyA1%Mt@x3;-%^)pwYZ(5J0rjU}q{(J-M;-m!O*3tui)z4YQs5 zmSX@EdEql&5Y>xigF0DFweZR=r^^z-_rX;T<_08(=MdzeO@WLT?9-t*Veb;rb-+=& z47-K_7`;i?l}P}nbjW&0wJeAx?2|kA1R%M=0Nhi3IIAnK8{)o#0ZGE?T_l3_2|AW_BN;*19-}D=C0CDNujJ5wbH%{(fYxPxxM1f zw7CSTSI}~66LSyRZP{oK9N}PtIAw+NFjIvcN&(bva1EEVnG*q`-pZ;YZ#lwl7khd52#PLzAY<;*2FFL^lV#{Jm6hFNmsdW zOL(H{Qz_e>VI`g8U7*|2cn^3^ZxH_3;>dM0`97UW=Z6-+(&-P8`#vzrcK)KP=jLCg z_1Ysca31ld+@QGn38bBIUxKvWTLxZ!vOmb)+ko&UbG}HlGA4rttRXE&h7)QiR;AT| zKckKS{0~veLsvs)7uhsq%(VRUgJ=8D=|j)13~4KKfO>&pHsXJoF1stu6~0f&?em3m zZkr8%PaJm3b-ZapIMq^3HslADI#b7KytIRD+<}PE6xEhCz{->YkSO<* z?weshdPlciZ)!nv2e|7S8xVW6mrERbe8U8i-)Ov-!1ny@5IGbr4^c-7=D(%jL6Hnx zuhYu>cwm#xhC9$<1 zazpYq<)iXUsDCvbK$_DoGOqR{qe?H}(hQ&J^AUdP`@b4Jgom=RNbS#2b%N1x?y28d zZ_N7!B-xVvckQMge{y5z_~+r9gh8Upd5T9?E~KqRWM-AX7dxf%z0i}3MfaS98}7BR z!8{~o>d1-CwYsnOLB?JWAV!ZYnGjSIDN*%ooFb%|s%6ce&3CL@-O-wpLmQ7dV$DM? zL!(cw-MaO8A|*kNsvvQ~KlEOuZLbx8=KYZL8-%d$@5#NP2~&nzT8oaTo|SjKQNdab z%(3C@g0?$gk>mF9!2L%1OnJcd1N!#&csH0CAjQ(BHP8JCZvUn@v<>aqqe382$GfA% zp7ftO>dT;93nQwZTqoH_0s~8T!8KL*Z-6M(EBC{kFqUDE>DD-dJ+`MRNS8EGN2$UP zGKOb0W`l+^shgTElx-P+${7#LGBG3!-9T-R1BE*IOSNZ~kH^;D+Nf`Rfeg1AIAJf2 zq_@B{5l?CNC&wpFTnI04z7`X4slfT712d1{=Q!kqJhjk0gMOW)DH zzq!x$A%S|y?DlQle;T61&5n3FJ<+A^_bSr$#u@Y$=FbcItOLVb3mO&iwO1+lu-h&N-521@ zve+(SC_C#{^J#MNhB-e}Qur&QEH)9PkP7YscfZ<(c0RJ}Bdf2Gi#vGAotfr(ye#O z{m)VW(LG-8@O`Kkxsw+aIRC)${jdO388hLD^Z=rR6O7Y{`5WsO2lV6aT$u9AJRV^a z?)%DFfOS5{EL#rv>2ek9na@wlQGj?pvKO%-#IKxPkAHsWDQiB$T15;0SHBALcY zi|x0qH2y$OT%D+SO<_j^-Q*_pg)J4%TC*|P^kwLKN|QT_!Me8LVn#7uh1H6XX8GO@ zWeytW8~#7XnzOD=qPTy088w{$ZLIlk@znpPM^{I|Pwt=Ip{FjcRau}00_-d`e=1qp z0>jB*T%5}Vd4zyKT4!DHUV-Wab&ILd_{;Fi2wxxH!jGnF#G0}9_+%UZEO+~#fo(1> z58xgN2_&^Um-)42GvmN>+J?!GDK!8=y_>NYBh$uSsmjGpeJ(A4=!=j3>IG(t;J%m( znkDVUhQxA)z)F*h{X1gn6(W46j_(QLJ9YT3L+dfMa?mRQ;>$UqSoqJI1=50mcW^p4 z!J~$zCY^cJ$Wzj&YkRAlai%z`s8t;~lSB=&j`B#fir!iY#0;fN(Nm!prOMK0fUr?v zo8#&~=dD@~htAa72D4wMlde9wjYvr$!rr#Zr3DoUQDlm5Z{*8SuTx;m|A zUR+;;b)&x9WQm|EEnH|_>&%B7qTtdB%dPYi_hpSPeKdWN0<#oKpDvva40p$X#KxDr zhc-@AYhf5%$hdA<;%c0I9{aQSm%9CZK4aR0)v4w-k4r6PKuV4D%k68-7c7rjVn^-K zs(TcC2lGj%m8@v=7s$ElDOAn_*lhC&CRx?Pkbgu;hU&hc&9xSsSV9@RWXYwF(A%WA z((jkBe(i#7pvPqml0hUx5N;&jjUa~M1_W{nM|Q3y$WQ}Lc{I@X z|I^tFPI7#K|1Y>U{J)0R{#!Ci(Z$x*)R1(5`Du+!|^lO>C_6raE0eW;@<%MVNngP7zF<|D5|htS*nSJ&c?FTR@P)= z)>c%4SPiBS<#Ka#Jlt>H0u6cn@u+DnNr zShl1ewP?yj-uCAUy zv9I*sKqOAAC{1k04^xd)`639Z5EC{0iKFIqSt&kZ zS;?P>p;XG7nbBFA7#Txoo*kJ$Qae8_p8iiO9e^egXXs>!O{{DUgo-Q?M|Ke*DN{`20Z8&7im^U|0SP$YLLh{zo{m3P)S7tC6qURMs7~$eW-c z^a(biyPAbwk@&;e)y9Ox&sN6R(#B;8%ht4&m&w7zn*p5=f!f>%2i{_Uv87P}I3QCD zgIky2-E=O;^}PBbc`_TdZqFP-aa2uNZAFjaEiO-!jap$QHmlxl ze{4D)x->RR!0%`a_s-nGmpBMN?b{T{psc3AG$OhMNFVr5D~Qsb@{)Q>C>AWf zTlKs>Dqwjq=`fM4J9nrTPLgv7{wcsj3!=srO08*mP@)7wdbu8`7`Q;t3d9b{i;aLG z#$y=qG}bcVj9JH_G>ODzBcxS+s90|*N~@I|&NgXh<0|}9fU~AsgdWY-pZQ=>$c6}Y z`9ntTZS{u9#h5YoXCK0+{RTjF__2*tS-2edSn^pNk;$O+^^L#7w=RLGI-h<(+2iZE z!mBf&^z_nlko{mBDZ?v+RiEuf5hQrw3C*mm^XK46TjZfu+A1S32a~^!@|$-l^2j%6 z4+ESIxiQvT;Ae@ngxc_MYwW`2!fWjeXc`viSk9q(IHU) zau{O&dMcp`jc~@aWT$d)wdEOtoBC{I!BwJJ(&J9X-j(+ z7V;5Ydzs6B>}%MLggeoP%mB87&WRwpaSx zW-6)3*w zwVbUc*!eIsy35$Wa&p5~bC$YRbAr1C$3wOa+Eg>xk{fnXHXf^G*pnM%;*&|MvaB3$ zA*Jzi@oQt&T16`_MjOf#<#oFGP;bw~>?IlW_hi_&NjhQX@S9&Q(p!`=Qg@qrn53U# zAD|vYj&6P$`OJ$h<=VRx9pMgM%-S|H=Q%W_>!PCLXrW`aHTztuqn3tNRh_A^ik3UQ z4g3JE1H#Ln;gO(Q$U8HbvaEy`V9<^J77)C=8623luq*PpCyV-tsIW4EbR?ri91V0N zzB{-Rq2dLRBYJu`smXwLSji>)&eau7B)khyxE#=%!M?rb2AC-wpuHmx`sT#T;D3kk zFe{SFSP`+tzn2Y>AuYU}5D*|U$}4o4!p1ZLJXeA|XL9E^ zFbdR33D_azvj-)+ufx8%Ph{enhJD*$g~l4kOF`K@)Z*_3ya7Es7=0DVuzKGIq|b7o zo+NL+B!D^kqR$7x^AWWfdfa@1wiNRdQ*Z3L80}zTBV6&a{y=(T`NthFGi8n`v(^$B zz_6>Z)4`~*iv-U)8eF|L5U1x2p;z1!dQ+ad%F>WR6uke9kl%)TF2))J`=$oa8)AR` z=3M>QycBO2?f;2Y_n1!&kLpdR{EH5jJ1Zz1T{6k7?gmo7$%s$&_g~umu)=XTQpZAUgj0sjsB)wgQ zrkw&?3Mx3_TsR4p`H_&}v_vRN9uPl1Ob56gB8Wtn!Q7Yn4&Rlyp+&Ayenp^m-DU6w zU}^*(938y-Sx^2?2o}titEI4@EZ6H6k`6O1)ry_da38@Oj3Jfa71gmGHL;FeU@q_R zwQOlwU5Uq)6D$ld3!9GKk8^G1^-JWXyE3T~!?#WE|FPX6y%9H&3RR@LFGANN-pZ;= z;q~NFMh=CmL{U&Xbwy(4s8?pu2ejJvhtM<_kRu+`Kt6HNa7ELDg0qQ_hTwq1S@r|y zQ6&j%kV?2)CwRn{W|%Or&1N1+x46n)esitrOm9LYLR-!CE;KCzP{G9!`~ic-nj%;v4X4{iqu_%Vj| zoDGiEzb_dF|2LFOSOwNtr^<32m^d!Rc?67y(0}YG;<=k?(fn}YIs_-Kj6eV?H*~+s zGQGF7_CXz4t}O9*J$oRMIO;p0JU3ic^bxFde}km(*#+(bRTq=_K^sUch0TK_xae8} zG?$zV)t!&i4jn}BNFs!=%#KVKMvfs_YMZSlo0%r}<;XOy)o{tCd&Z>nmA~Mf{(~sT z{+fP_I-R|iWcMBT@Z>Lc&tKxAGd_z>E(k7Np-LkW8y^zwhDcc7$L@&c1DAGERQjPS zUJzGl>sAgz2Rd|i^PK&B)9wV$bF#zyEDzlyUO>m2#Tr3|dp3BUvC;c#X^`%=UGpq`zMk zlfZ)aPSk?zW$$L*;M5tBpew z${E@IJYR-}Pc>dMxTX5Rx;5!Nay9%>icueL3SAp!_gH#1@{R&0l)RpRedT#{`!c5c z#kI`*IJ5B%3p>!s^+0HZzKlaXfDArU_~HS}G2MN8xZ8dQKh|Vjb;KL=4cgS{LAjUt zhTt~^zfJ-$eFCGcE#kDZQ99a2RkF;oq{4>C&88)CmRQt3)=;e`+$pasuRKFzR#gZq zazblx$ZX{6D;6eGItjgG_&_l~Y-q+??ASF9$oF0_$$?q6?>*wwWPfwv5A1hRXM}8K zd(%NH(xDJj*FYtYvgwAont0sBPDgvK)E0XDBR<_8FQct0Sg14705C(3yi~+6=1i5^-;ifvleFmUt5N1=$Gu7LVo5j~ zu1;|VAGfi&5VUPc=I^#dD%qJRXqazoiXn-f>K}V$Or>F%dmCDr^`P7s6kq8K-7orT z+u6BNgc#$(fMzk2nO`+!yN`ra^pagsgC@1G6S7SvLauPMG~z-SW4@Oe^PD5Qes zSY-gmBmtdKG;y&`WZVTG@n0o)c>OYbQS#8lx-#o@b!Bz5yq4JGrdVv_H1sotpqXWV zAJw+NW(vlnGL>!8EuY5Oi&U{)3k*2*&d*qN>2R9{b%geApHVGyH1glJ-2F!*L{jAgU zyQoWOsO_Xrjw8&|il?E*BlzPE5cM|7t6gAxg?%w*0V#TSGV*X>nj?|M_c!Zu5ZD!S z<0@2`wHfK8%+1CEWR*CGs#D@TuLfrbHfM_3W;nvtS?zszJT-gD9#xss2D3YEU8uCr z(eb5as~(*f%0oL1OG;C6Q^)Pyc&Bo8Wo0c%lIBx z^HRqQN6xJrYVpBTSoReDd&3j36DnUC#uTgLqZZwEjzhQEPkPAQEC6eTTC>h=0cQ(Q zj#K`?j4tUNlwg_@)5STKA!W-;j%|iY5^+>Ne~^6clzPwd=RT=gEBOm^E5Gxyez1^f~$%GD|l*n zgw87^LklW1)NzArty5N554ePn3b-IP2M^nebX!87*f_qiGs>&1_aLm;j<>Q z8b63URd9k4*zX8oh<9`_<3s?|hK!sxwI=u4Rgk8u)zx_#Ty&I*_RW}IQ}LBJu{x== zbzE>XoLo@2wNft4KLrXcded>sO-i|>ac3(YmeYQ?VUkqs(U2YO)b!WOSIbQdQa6RB+BPbNIHEP9%1?qQiRs9$yb>U2>0W zhAvhR1;o>P z&r40N@1eUZK4G#L4x2*?h#2%{jrW`}ODiEnb2X@pAxi&q((@kLX)j_dNXw0_ZBV_X z>s|JTMO=xMWfj>@ZS)%rZiF+4ABJ0aWgubjF{&NaB`ABu6BXf)U!fkaAg_dUo2sx= zItwm{mROF^3(AY~BlYr3_&Y{|!>=Y_{?xhNQMFt{7wlR{ZVJ9d!vhd;wNcqki3s3QP);*(RSBsxzfwsM>Tr@m0nV$z3{%!#%M za$3ixa$Vx*y(U)MRp7iF1yzH0=`I4Q{#F>n3U*3R$Ft0^Uw!6FOdJk3VCpyA3)_Ki zqF41UArH`tY%W|vEi>--)_%lVxNOZY3H7yO;>1g?ycp92cd5PEHGqc(+C&CgT4h!S zn$5#lgv7I&Qy1S0p9c)}Ki$~_uS9be8FsU(T5p6Jl6d61$8`*5+jMJNCk%jp@W}cv)7h7dynqr56bS+EToQ?%m8! zkqATC)nINbU*A8dbNPv7fiyYE^yAx+az&XxiRu79*QI;rlfr7G`p33Q6qO3Oxb8(x z?$?FJ8OHvqVN3s4>L)b7SIX#72jR2IEQvZqQ0Ygx^55w2Gbf1Ae|ZIc0BW9YU@nOO z=II3}tptxEHX_fHk4&^05z)_~#LR+EocbsHgPZRb^@X=(nEr zRcT;;5(rS909K-_iV(0j`Et@yHf?G`zy--3PX@#EYa-P9kSn#wiE=hgY0(x&z;#d% zVhUj?Y_XYG_&I~`8)3j5&d%*6lV zbDJ=K)VceU5*uh4YqYB$EWwd}!9fc!cx|Y4z_Og&ikTHN9YkqeSHd8j_+mxel()#}M*g1St&6#`tsRl;tp( zjKw2gv6ZkXFM0zcvk`(78x%0PvnV-MZRm@dwAkQYc{Pq;v2T=jWj=`W_R2CMdQ#M6 zugjEK#;pi9N%>Q%N*pEAT>_>0(@GXa*SnrbV|PA~-iR|BdOT!o%l~N{cxT}UAxguv zsPX&_y^c0VkmgB2&KC)ypMjLA7H}`%<_H(mB;EZ8+|@u0lF_>nk#;HE+#7H$ZK8tR zcn7)&A&PqTHCoMC?ikk@gKhJTvJ^LKke+QoK3@r5HeW8YgmSfv_gWS9G=msa$D@!Z?UlN;y27Hi&vvb*SmIpfaETo~8YXDns;5b5 zx`c`QaEiIQaTRZbrggq^@jI9o$U12A+9Ly$EM8`_*s~v4AJiPvH zO{5FVXfR`zmHc2a8$}@(;1(VfWGL!%yv@ncwolLR8FBAN>x9A6HXJg62}NJ%kyg?; z4hJR++UBh2@3+*m+YhN-ovV`u%vIolwvrwIT|l?k_?+U zZajCEhN>vl^n?30oTTMs|F)q>LZOq%lA}ZfqOK&^_f%YY%dFAu9J&A88!+O#U(~Vr z)Acsy7Cs4j@x~jRS3sP6t*2JW)s%r2NXxyQ8%z%^Fq6XRK!oWdjC!a>d@y;oRxid> zI>QgT*CrAb*=G=UMl5e*U1@7Q`*&8H?L!vdzi2Cc2_J!C^|V#^kSTfKX^Y>^-~2Tj zoaJs~&F`U0ZppQ?w40cPB^X5xd(-F{&3Q++dx}5=y9fflT=Eq3Zf}@=y%5ojB8xB? z>4%3rANiD5`qKUi)H;*!^B!&+I<~&)=6=zGdXYP{>HQ$6<=&2q4p!vzNv?QXdNTrw zCS)U(v)GgE`Z4<)9%7?|__{h8xvkylIw;kxd`j^2DGc+EW@zb?^eyVpo+}pc9g{aB zHDP+6NEBrb7X=3~03wb@)Qg9bN#ejc4j2+Y2yu>Vr|Sj1FwG1|#BC+|>==M-91xQJ z5y;4#BOm=JmQl`f$9aC)oRd`d3GcG~x4+fH=*RI%sG#ngtf76C4~Vr=gWEiV>)Hq? z`8?RZMPz{zbM;2!!;-4QKk~%F3ZSVB- zXg72jTZ?Vaqx{-4SnzvmAy$Zph*b_8cGsO=$Bf|A)SE$4x*;TQ_-N22=Il!4=%Ry2 zdWOn8(y%2ZJm4L>`>!qKJ<{dIGgTd{{0O!+x79CFD5-*~^M zQYcP)AlOKRg&wXIEd67P7mf3iyIz_hLtsL>(5ltFn4_lBAi3>P+m@)Cev(V+ESaUZ zS9^ybXb}^2`Qe)D>5&HS(EsxZT&;YVVbTV=t{zWkm+t17xo+myu3&Zcs_^? zT1#}y(ZX1&G#f)r%vZ}lF!W3UyM!OakTOy@ZBkdw`#kjlAX2P&ZClRwlL26SF_-Dt zGz-4`!jF91*ADLH5}U*Hau&!CBO~}%mhfOn?^p_%=^prQ{(uK1Gv!tbSBq~D>j zK`*h@b%C?)vd*E-RjE#QZdng{(AhoRP6@&>S&od82l9;rwe0+kVa=gkojl@v;G0xc zJ**3b(_a#!8d&rpr`2#L=Y7-0PBJ>md&VcYV7j1j(3rdW;_AdE;#K9?54R6t zV^`Zl(XWz!=HCsYexocRFbKP$ewZQoKzn~(155k}&h`T0;^kUB1uc3QjYoKf;ZfSW zUB$MMvN>@`4BuWC@|w_NetvDiTqycW?232B6AUs~DP0>M-N*!4*FgGWq$m5O@nH$T zb#vzi;NQcqS@dfR4doKXZZ5+b*kgE0y^3+>T+!BnF$37&i7=uKX9&WT!OR|%rEx;~ zp>xaQ#9dw4ze9M|1aF~|qFI}84I&25MyYoacIeCaQubd@q1WW43FNOJF@pd8?gi5! z;j=>JuEVgs=UL*yGuujA`4ZJsgeF)6twM`2gm^SdHV%vR+|5Yy4r-9b_6Jvy$li>i z<74c9jzud5$}&gAjZiR6g1m9FF9Tw?T@J(ZmsJiz%bTpRjz%7Yjr`&)ixBJH_g*;v zx|s^ofm2Ql#KN8#_r_9>r5j#WJyV(L{K`b3zAlfuM303x!QDhFGHF58^;V8PUdA{c ztYCwCvIt1C|6S`lHzkyEfO4^ORS^Q#FiAY_c>GQFJY!^7;t&q*!FX!-X3H~!SyN$+ zZ1)y(ZyPu`ZQmw{G(E1dur#06!kf^Nkd=WQ;DsS{i;v>J=J+mk**&9|jw1lVNqyZ`ut#fR3 zk2PbL$_}#VAuoE;3NjLlVV1TjtM*E*;H6ROV~#NZ1DD3cmMN0%-7>~Pj*-abnqz@u zFm=2HT1q#WK3x_mZIJHm8fJ-2ykpA}9abNxn35?e3wA82fJvyRk~XQ9)-j@5GQQ+e z(kQ4tUVbTURPVK7OR1OMF{W~X0zbuWOTXm3?8)w&QRY|XKU~Hw{Ve%JExToE@rFFH zRk|v5Ia}^2MO*ZAw9KkFnOJsJx*}KNmbS@f3s-u}+T?6(0hhTU%J3Xtrc0|3lfKc+ z@SI+@O{^f7zM;$bEUNG+@|mhAlesa=AVSABzML!N)5;sF&?)UzEX`$qae9u)_FPz| zAK{YivA%S>(BgcFtnee7>Jin|_B9C>7Rzl&Xj?lYm!7K8Iyw`RQkgWgrEC0I0%Zi9 z6)79ZyvMXd0;j91u_?B2Y==7t{M)bcPN%=shraio_2Am?KIIvq^crgEW4C>lJE&y?I9t4#-2Em9})h7ldU2(tbsv>@oe4mJXfbF z(YUTGcOe}?Xwh_^2_Zr0acjz1*Bn`d;yov$?`xyvBVsIysy362L|Rlm_I5mN_L#P& zj7)cOY?N?DzT0mvFP{IwVi@jc7p~YAgpW30;6EDn+>C$nl(&qVPqPaqbr(u}dw4i1 z_G}@~I$1bJY=Bu_I2iXIjJ;!UZ&CB_8JyU*ZJyY+lM~yvPi)(^ZJyY+^^0vMlV_fq znyH$5|8-yNy{fBv?H8+h^{QQ~`}6%ZExr@!CP1bdmShoZGOVVK#;lp=$x?(C+@w~P zxd0oOA-Dw%=Wx9;_b%hv3%bkzkF~MOj)0ze%B?@JAE&kmO%eKFW51s5tu*nH#wQ-w z1MwCx0}+7$|I{aD*_QA{0GsEm`lP^bsKK{tYzDpQh5RHS@6(1L(?)Q&2aG9y>bPp* z-QOz>!F4zlywiWWSm-$F$FeKqDb5?%_$!|SEu;|)4t>D!1y6FiG)Zlj@_>a;y+Xm2 z+{9QZerLcVLEtO;VG}`sn^!6?$-JLH_E$mpqIrK5`TU|Ah~rCZwod`Ea@pR4M5S)^0c-Q^o43)i*tqPtVymMESR| zmp92E)i*X8bz%ICCtLC+I(YwFlTAYBuLWs0WB7uslJWAR6g&-ZOo5v8)ihcaT0#yx{P6~^>wp7Mi$W&=LQh4N>G(|WOnL(3F=G-ecL&@XyX z*pd$w%Ci*I%B)6VO+uA~zv9$zrC`8>bReZnY2ddbgeSbG7~?r24PbX*L9vE!8a5Sd zVNw{Qbn|tIq6v*#_bDseroxC!2QkS_*3nOJq%dNqTa(4NA|+fh`}83_S++-LV^D;* z(uQs`gcM!5Xg|%y zLke@;x=T#oS@uJdthX7i&)=?g2bgliSmCQKo86-5(?dUc;Lc~}lP-#fsUHjUg#}b& zu0@DD*+wr1Jo2DkElzEQoQq_)C|oO~s`1o-$*;pIUxX@qFy0G!sHni2>Y{(O1UguT zWGI-z8jj{wVhe!K7(Vbh0V+YH(sbUmQnQIv|jp@?Y@!jcX_T-g*e#+@#F(CQ@!YOGdg2 z0w403=47@P@!})Cwfg6u5#dbk#FjY{-1}P zmHnOPB=A+xV}Thxkp9q-cgBrSPChb$jwXeZTjMZ3+RZ;{qRM4=_)2G6zC<}e+xX0J ze|?xRZ$oKO|FOy_hFtsOj=nGXF>3>^fn64_uLWO$;j!n8;|ZbMJbSNKuZc3>DiN1* ze}&wxYYBJ}ex^3uBg|f$H;h8y1kKz~M-|MZLUpr`>8*kemCa?Aj@r3{QByu!yTe@t zY~8SS$tCaPCHMwD+f#W5hm!21=LU)!^3f0MxudcfV74l}xmFFnGX>PnJ#(uZ{nZZF z(~nLFY#z6+QidOD9xqm}aqPh9?D5hPp9Y9f8dysxc;okDbn^XFF3sTLkTXJ}CsEMSTKQ%(rT>JuI1E)*o zox_k1fe#sYLjX7h?6$`R=PFlV9Q{iSLOG-+P{{2qP|4|ljJU~7I)m}KbpOccDnf;{ zgnMC-dLkuPV(tW7>Zcp-sP30_9$h@ zDgXV{{f^#5>7kYUX&NspucPw9QS@8bGr#VHuNsT>QEh|h3Va=(IJ7?_CM}_;XHkKI z^Y5dKe=gPh-(+oUengIwG5|6>?`s1@5)$jzJgGvPKqRQ8OtWZkFL@79Fm$N%h+4i{933tn=k`eQmSxtZXWj z?DXCB^zxc)DA&bw3*GGW_SS69(P|bAhwSvLi%I9XbjOwHNry`rwa#oJeW&C=I(;`~ zqMT(}I&;+{8;UKc#>hcbBYUJN#v@d%dl`_Pu!WnJ%N5hAPwJ~5A3OD4*|k?twz6MRZ=+C z48l)bR<9lv1QcZ`NJ(1B?S*ncV`^yK`Zefxs}$5U?d3>G)uAxZS}2z;UXZ&qGa3`l zt&}4aYBO`^fULv-Wm>xv)Fa`CPVe4^eSsnJHzaa*)x z3`6xis13)QTmFccN|MBuur@spYQL#%Y z%$a_KCW{wMR*?&*E*XZwu*g@*aMJ|`6}B*(UZO}UL7oyOmrXKHFbSDoPtppSv)jIJ zaK}+bVsE^lJvc0hzR-(^g-fA0PlZv&DX0zZSRLKA5Y*0jX>bxe z;+7UgaX2ja?t!30-Bc175BDG!sF7l8x1Tumf{-=ACvJ7cc%T?@A@mkGl{aYH%^847 z_r@&Ul!Bgs5Y}&V#3@$V{RK(Yit_w2COfHcm8atO<&(Ebl~vWL-!Ljmwpu7!BS{DQ z=ZctK+9<_A`ADmN9XSyc@>iotZMC~|pPGqQ!z|185vS>iHVfJ1by0*&b1nhY3X`=J6)BYY<`%&ELDrqP< zr9w_Ks{k-nGm8=St_Cu8`JwLM&~k-kO_`i7r3Mc8nF>u}IY2sFR;+^4r|xOhNwSBNuO1%J~pUWen|UUoetM`gPkP%+vyK- zhd~+DLxd&a3GZ5DBT`abBS{Kha-SIFVNvo1m3K_MnisTU*Nl=mYf~@cz=eYWOhWxH zLHc3)-*H2|QEI-#^>1qhZ!2n#o;FGNcTmXQtvat*g1y)&(Ddv02#P}iY{^yPk!NsBn24#l+*HkSFpo3p}c zlkEVp6l7o1h+eNz_jM2R!}M_kMoBF3^z*EAKDMXgs=H(W7ZgLGiLW0unefNqP>wmU zGkO{cZFDl3n!|+*k@5LxASkA=BNzHxJpTsd!Du@+!t=Zv%>}~Fzh4*N%5?}bgMtsf zq%y;j58A@lI0n=?@DRJ?X(6fe-{%J4+mbVOv+uoqGA8_K#i+vV%n@Jm{((tr|M6Yv zPfMFuV$)|YZ%Tse*B41f|D8$IZQ7GIt0Zc&>^w|KYpyDdqB`9NuVXH8K0r0+R}BM2 z8aRD1wgRrHZ$}0 zyFCYd(J@sWrdfY{+piQOFj|s)-H>ylsM7g+f|JkR3jWvspg&NlZ}k+)DeHtJ1CyoT zRVcd+dIq}CR*$OxO>`}l&lLv_ElR8Pe&Q8Ux>|vCEh+z$mvwIE`Z87>;iQ)1BF|1=i+a=@K1rY#S0jz7#sv1~xM#srz%z z{j{7WBeQ#Iq%o#T?~b+%t~U_7gdKS?&%s8bXhy2?cvgBkDv_MoIc=ykJZUZMK(IHL zVKkMca*!w3u!{#x??~EIX=PAD*H;$Dn2demlG0nM)`n%;PFjRK(|yuN zyP=u13CLBxL5%zK&#N(aD&Uv|DT$a_|IJi66q5G9&Kz=Vs^&?Au89e}WE3faRz`+H zI_*c57f$-MzU)Lr{6RU4_$Re$>j){?!nrCw83Z%=>jMzCsIjhma?%G%i`XP9BzV za-?rYGRuPZnG-{nNJ}L02yjl#vgf-8IQ3<1S8Pv4M$JLub%T}eOj2G!)bk6*n9XS| zYO%5Gyk&ZbYIw3S{`4WWHZT-!PtVbGEQNWd+9)p(H#7{XO`I)@pgH5EO>%T(f%*L| zi9j%0cm{s>o&9x9qyx}3L~sTsp%<4UZHqZd7+AVNd`px4E>-_F3)_F4+b<|XNiyQR zMU@C;$%Dv(7Vo!scy6`l`>QLp^Jh+FPf>~=%51$W8D75JZK7M5`P6kY7$^+u{TbUBA7^tyhLK;8^rjyD>9N*Af2Z;pL?xMTpe$W z$dd~B?p)N}X0MZAE8t+5I>x5d%BIXr+v5W1D+x#r$5R5a)I*)awt;@y`EuRhtobcl zBBB!rFG$Y{x|19@NXaxHtOpNx$-#EkIiA?A{CflZVuU~#12S#Fui4@{IJN=XHdwxb z9}U@eoVG07lc_X_KkJ!Fq47ZSaCx$VG~O%W<61W6CxS!&7Zv6h222Hr7&X zB^ay~ExmNJn`%n~4TmrHbdF~cPtQhDNJ}eoIaq&nPpj}F(fvKM-Qts1L0s`rZ>>eH z-uMG@fsvijpeIh&tJ2$msBUBf8`Vsa5;VHPX>*3q1^HMA0%p^tKg7Z%i^9^8T{o8V zr(+U6izBw#0bg3vDmJnKfRoJae~<2H%^yk65_e7OfPdt?oqX2MMmN>p6bZVpdchlF z*)iL$HM*@0vtP_F<;}!FpC%X4jv3=W6+o@of3x7Y)tJ>51QK?6O=#y! zz|hhgo4T>%&oS4&CRhxt8M7>{VBwc?o|ljUnyy*%ucDP}uGmeFT)xQBEDL&Fxs#why?q9tzZeyo?{b=V!$TGpL+?v zO}V)z9CYOmVpr~z+#@>oqoiT!Q$JFoJO$}?J zU`0g~kYuvq7LLIRneAawlh(Jc@ULTf%IpY-w)6l{_*jRkAy*rugj)i2)cN(M;`+;Y z+RHFn8;un7?HW}}fjB^ZxM(oldPR0!JWw@KJ*kOjKB-vl$swO_mMSQXVL4(?H;O7Bp^ zkn$2d4;KTu0X<|Qs(v^UIKLOFcEvIfwnV<>sujc?-Jq?5Blm1QJ0PwCz4jc;iG0m7 zF(cDO0H`kt+<3kv_4IxeO)O!bsufcH18# zxTZcpP9NANv5@8AUv@j?I+nKBzqAo~sx%$asZczc*7=xZZXwg|a|4YC+KoNipLZvU znFcfM1Toa_oF+lJD9y|@PiK@p7r6z4y1%p8!v=;~k`7(5*wJN@;WH7~S$65Is_%GS z-3~U;P6cFZ$XLctv`AMotXi)yQGq&jm^p!oyBZK%@<=IzC0=?==iN&#hzw46gJ#^= zgA?D~4nqus4gj?2X>B5|`z$N78i&hC7(ADwbzeK}+enA(_UX0sa}hILm&?iMnrx5y z!s$)GQaZ^~3rpc9*S(UqnXRkqk!e1S?a#dIABXZEhr>Cn-@bO-EL+tq3?nY4m5nS~ zoF9I6e_Pjk7oqtvQ&4?w)LD${ZER6=Q1iiK$wIJU{fH%?f2T>CPSP#zGKoFbld@Jz zrnuHNpYzKgPCofxk(n7MV*2B;&0qaY7*hbf{3=oatrhFsh<0_eNfJBrpB_T!MLq`R zJt=w#1eu!vsF&6jN=oH{S%`-)?`bGRKHf^toEKmN3ccB*m&ZVT{>| zXzcQC^GDO76O0JdXK5s=t3RyvSrMjO?_y_rwXQpskhq|*WUe%XosX70{$}ols11tH zYm~v(NkW$eA^;zo+OfY|z6qP1-11jjk^rCX1%Qte!)SNsJwQ(El#Z?gmtzRpRDxj> z_!9%edSTmcj!!$uz6gHXm443BPAl{5be-GVlE@NzoBZY)@`j*2V8-Z%pwr*i?E0VY zKC};F;P)cjN2eFW7t5cUVAwAL+ufZF?wedIy*59B{@q?z&~G2y7lvlvcK>gs0E))v z=%?z-Itg1G#iS-SqnUW+%0R?Ql1G={!9ip72>c(9P3Y#Tv z(G!%YSe;`K%fb#=Ou8x3c?5IE6s$I%StaP-OWXg%^>fGoJ}tQycG58Gyd zu3eA0yaCVqUqE~SX1m*4qK?;lL~6DdxLT5Fel09_+evptG!vQ*Tix zh72F}MqO=OK5i`MgUsGXdz4h`+R`YR$OV+|zrryl=&p_s)UkV<95Lq)S95t2w`K&ms&Bp~5qzcPVJ@8PNbK1*GAc{W{FzZJRT_~fyV zcUvcUtx-NVC|;QqZcd1`|0z`<$IrYNGg9UrG2*&S6XZGi>Gs5UP9D*9KCHL!nlU>3 zM#2}Siy0~DyjhLRKCVAq_9JTte7s|N^%*s;AJlXF=Y!lH7emwcX%ORsMn5!odhT}5 z+`)6q4o){m8+7I%r!qmMX{#rfd)pA-8A72sRv%w=z12Qmm02y ztQ~~5(oJZ_*v^o^sw|%d`6DU5TJVIxK)lSi6UZ*UOHM>7Z7(dllSUK-!G)gwa4ecK z(A>A=p*?XxbzHgV)N?CSGr&-z0mpek1Tr8;1R_V;_Ng$=2IZ%LhZ=CdyN;n|k75~CHCvMh~peNFr9EmG)6| z>u3uP-sz^aHQaNfj5)aDc6FH-iO|V*CPIHVgM=`n|KwNqMAXIBlQ@mMoko;A8JCkf z@#{`d=<#^&rOCJYvO(7DML@3jM25O_Ho<_}%IwfZUf009lr)EzG^dv|XGoacCe7z0 z&G#V9|0^l<9v^fij=Y{q%9=~s#4mXQlrZa^Fx&MvQGxpTJ2WVveuAt(5~>^47^4J( zDfK!Cq4jL!CjA}#lOsd(r!tn`pwkChzLJj=zBK~XdPQD2PjySSc)AUIQt0h#tDp^r z+W8-WzNWQOAXr>%Fe7}VJ~lcRdF+A>viwS+o1)ALPWs?7K+(C`|BD^^&@rZGj*Rqh zq8nOr4@b-KVyLw(8w>XcR&s8p*;M=QgKW$TjAwTFgyasBIbM=~cuI{l9j*BS15&Ft z`32WdpWIL_?P|H>+3D)Y@mxWTZiEZ^g=1V|*9C}bP7IZKUk3Uo0%tPaTXT4Ilzme_ z1&=Y!+M7v?KA&f{Btu*B`2(FA4N8>@kwdhYV7`lR9?F9`#EG9zHyBsm&MxWn*p`#n%OKije{3?F2@i^8GQ>nrs?i69PKeXI84p`X7x~Bx8EM(M6s-H1G zXOPrHFm&jQ$aWSs0!GKA7*{S_sy%G#}Q1+pI}^*`|Bj%Ok;VAfzt~i zBAo$PJqhbs;P=DV5Mtps?b4}2UeET$ALDDM=kf)zf(0!_P*VP<5ab{kB;_I`+))h1X0R_#=BN+S27H^&+E(IHb+80ILS=kX?~c zRCd?Lpv*nmTY88qf0Ut4ZFP7Cs@8-m*TUta)9ce~VRRVNha-L-$sO`;Padj{B8ltO zrgGvTpCEFj3-J@;-%4+=DuJJnxe}M?&oqu_4i3G3w4 z^J~+)SVQN7EOv*rjf%AjU)9A5->nkg8Ov*kWq<1Yu26Xos8GISFrCCRf4%qtKGLGb z0ox$h34>=e=+Lb{o2KUQzB83lWM}6WfHd%EHHSdE+K;W0}Y%YSwubT@jqdYxbf}Swv(A zdSZQBceQPYq$VjTt$#l?2G|_Rf{O9ss2KqfoFJwT3k0zVYu7JqTB5?-AtWa;5T{7z z2+6qp;2Vne3>bki`kb{-(u5}KjDk!@F^S?0!JD6RucDdw=JeB$cwrpdg1yuf{aq3} zJBBWI6;j)%`uAdn8>5gv6j^gjlE!JwsDAg?znUZolqgDli$nI~$$`+}@NX!28bJri zd(N6-j+-4eSL*kIR1aaY@KHFe{@$G#!|e>_4;8^%0%Ui}+ZZd zpuN*%p|Ucj>>f(fOhFoV$AuPV#nQK9~P(u{;PZ>;Yg;_RlHBAsYVWuLw$qa=g7z{lh^-0F3h&PeIVg?|-&hi@nzc-;_ zvdFjVYYDQ)t}F45ESTnAfQ(84Q-}6F4I&*B{Ikk2#LUiWw6jr0mdrS-tQiDJ5vis) zTdkUKa!e*$ux%Ts4XY>%LM*t*epeCsSpDNjE6UuSNfpwiWD}S$_6K_cLvIj}jjWe2 z4;pHi7Ni^A(-@Ag&j7RbJ$RCZh;=*(-RaZk!GIr$HfCk#6mbs5)cI=c-;Pu#>M&to zQtvEMTS@t}WaZrnEOA1ypa#1x)00`K!;qzUiY~!GmSrHy(3N5BZW7Lzb}1}B!R8B{ zp{PkzC(lPFQf$=T)266z_Noy7MfrV~SZszp*o3`X-p@INAox8sTk1~nfPvwQt!m;a zD6wO^2-#}m%EFpxo3G^2ppx@IYB}KzMzrHv$ftQ`tYH~P`@4*mENR}5HR%;b=<9O0 z!@Rt>K_#D7b(Eq|E6QkG2}Y=VBl@7ASZrKL*tnd?#B|h}i7lx(zGA~R3zZH{Czw*s znOxa-KagrxKK$#j7-Gt-s>E%d9qDa|GjS!pwhjz@?~xJ0&QHubWa385QMaaXCf7L- zc2DG-aa-!uT#ZC|UsFC_DtLox2w0%1JBL|~nurNs-r{d`;^i%)+PJb2t9j(59wK$~ zgPkRzS6V>t8=n5DB8#hbFay$w3ZVGZniCX%&X96X-K* z429ZZe<}Ej;1wOg>;sUqW)20(`fef_LH8o4qx5UEOJ&k`-W4uj$QpAkId;RY!!bCxd+D1IjVt3I&L6D*27ASOx2?)|H%$V22hbH(Xwd}N14es5#~PT5E-qy% z_em?|idNo{7EyXRasPVT@APZ^JdzfMrJe-d|L1AmqFG}RJ}W#kvUTq1M*E6iJ!^Mx zj>%zo^4f~LXL!sM8Rdn#%cfrpPb7KggXFLZ=+pbeCoiG5`5v=wLVB6wHAL0VV}_|$EsQ)w5r zb@KPlgfNah2eRBG+BpXCsQfV!KhHO@Ui@Q1Xoq2SApl!wLvk4ZW(MIj_6>|deh6A+ zp*jM*I1tpg614su^Jt5O^m)2rpvmrp$pSVGV2^DuWf%tnWcUzd3auRhp7UUf(hhmZ z2u7xNSQhLG^6h?}obW31ilcEk1)bazGi^ZcgQqO34yVBHqyl-_i9ntu;=;a;7AH=z zAy4k?sF9m9Pv$2K^l+aG-9+5lyzTksMZCY8RQNY#t8$!f13HGFterh}t~b^GMt08+KHW(*vr%~;h2uCXfx;|NxAZ|XRFWrMV_Av_x4UYSFO90nD- zDteFlFKavUc*u2GNUa~uLSXGFE^IOS@tfF#;4o`(?9>lA!>FD}&1~gC{0$+5@D#N3%!T;W=YPAB-|_AS5WeBd>;ymP zi0lZTcv1dE2vx!q+$lWqV*MLie9ioZFTeA?@GSC{BeL@Y1E>BgUwV!8z?;}Jar#d9 zmLt03w5!h%)N{P>4C1)NZ{~@(t%rEmZclhY+OY{nR|ltQ!2NgpxR;!#7wtRBwEsRB zYUU3a&rZUPw_CrHR{woqj2WEUo^)Gejz|u&N{1uW#Nx z|9vsk4Er#DWk$t4%isA%Y=wnI=i4mX!((#5F&O}Z6o4Q(nwuwwJd;>;Oa^rrD?{1K zL*y$e^fd?d`Wx!ijO+f?Lt5xvp8VlEJLuyYtr>aFk?WV;Y+`?YRtFDoIBA1OuJl6{SkJ)l5eF~Z|~ts!5{eB*rQAYT8t#rZ0LzCz%}`5FViKBL6>9ss>k z;Ki@d#`%r{y^es#)l!J}ykNYhr~$$$?{q3gThWMTZsTgrMRLT6_432K_lWKgsEKPe z2zSWBytxVPbUa5f_K4&g<7yj(bI6GF2tvJ|aqbquUzL~v<&byTTBFJkfXu$QX=X6h?8NMrp)HpYe(0@#1Eh zi97Q~Aw=WQd&!rcn{U?Cgj?+Eag1-j#f9OajY@CHM@)8GK0_>a0p5$?nUd{`NbZk&$t0}o|N z1P%YxS^@l!0R$l;U*(d3gObry2@<{DNPALRVZQNb?_JH0L7M*SJsvlN$pm8nyBKQyV67e;+Oilp^XyfXC zf?ocAB%J@tBm6JK|F^P@^1cLOPO3~lB4|vTIfo)e#5k2btvih4g>HiKFK?KL>t(f| z(P3pqWY>v}t&VROf-8v4*!7N+ZP_Im`4#79W%-$fZ}0bWJ0Jn1D8W2f?m!6s)*bA} z_vyl4guf12pTxP{%$~j4KhL#F52S%0{J(>ZL-F3HL-bvb4->qcZLb2-HuoCcPM+Rc z_&uGe5#!D&cCds#6iG=>PbDCkv`xX0hYPaY6$tm4_mUz-#(yod4VNjUxRk&^$V|x# z!-aqwu30tF1XjKPBEX>%+|2ky6VSxw7w4UU#VhL%KGWx;8%HoPDCKNBCecL(CAs)H zCU!EVquhRx?nP%OFNq*g=@zDb=HJN$cn4(KPlmrY%NQQCQG7WjAjL~*QJ;sDV$x}a z)XCmtQaA273~@)wLzm#ol9iVt1sokOQ*91PNGEpn{8ja||2DVp#21Rd=T`mcg~XI~ zW6QS(u(^7E28CIvZUx8|6{@Hor;?RgFxs+0@kugIm}7uHz5pJ!O&qR22Q!MWltECt z(rl7=+)kxybBp@DtO~6Jn&XP(Q6|WZnJV6ZeP^Py<+gG$`ink2kqQnsbkD;!I`etz z?ZBc2qvg+KYp!89)P^?NBj^2wBNL#Gw=3dU4)pPfWaeS%4NuR7WSAY)0+5R`PbgA% zMYl4HSaleD^ilci!6IAZ!WS_c=^_gG_ksA($jfIo#b^*}o+epNd`rgm6d|RJIeyD2 zBuBX9WYTGv8XY-5OAUW`=MQbH**ZxxIukjjv8cRvbYqh*o7LdZFnE&)>Y5VUC_2NT z2|o@>kiT4eZu+euO7bZFK z@U2W3E_z_7-B%u)P&bN}omGaFe3XyUA~9g9JPbVM&xAy+}BR0O=l;4X-LHifwBx$^`8ORP! zR1eK7{eGn|C*_FKcz_=+*$Ov=tiYWs2_7JF3(&2`?cT+9mo7<=C4wY?7mLL+o9K2T zR0uqM-10hJ#p_sci`l+L@ZNBP_$2z3|80f=00seh>0!+43kL$;`!@~*!n8V%7z9G$ zP7e9;fAdByf$w5-L4klIfBjGUoB99M>acgVu(K60F(oB6u(h)_b+IKSwKj2bvaq#q z{-K(g7&!mHNSXe-{ezWs?2rXfc^kbYrD3WcD}9>ID)cjK&Al1(EvgpDDbYwq-|JwV z&lsgm&14_`oF;}Nd;$3;-A)G#&x%2LU0-mzU2!^@`F?yn;r&BV!E)Va%vjH3X=a`m zHw3(Ei+d)S@BAT-DNb1?!0D@I^yvl~zUjgX)xP~lx;`Eb2@g^Ko2O|c99}1}`*Yi% zaK-sMQ0zU*ch^5EpoTGl<~1B4$(+&pvs4^dBP2SK4I|Es^82+XH} z8(6q>U3XVck~gbUSvxkc=C@KTPNa!!&7xoEwJ(Yt7y+B*Cvu9SVcB4LeGem3a<3I0 zQ(Y?Oq%SNdUv@<-tbC;}l?%8TaZ~iY#3j#Qop!ctqZooqX<|bhk(Ip3WL>BEb8f5n z`wBzCsEQfHy0#EJJC<5Td<@-6%Zw_qL=_esRq}>XLkjiI>?C(;uucF$gj{4Wo}iJ!ITXGM!O60AMM;8H=t!kdx8O6gEE6mp=|X>?rK zvX!Puusu~2A(2H|+>6%$e<>JSnMmNGX+&6W^Yvl-+4iqO(ScRnkZ zvruDP89U$`BJ1x`ae?C-q9vkn>W0NHdPT-p(lx0`_?6C$JwVcWit(Q_#>Wg9pY(@! zJNgrc|9ia{^#4T+{x{B&RlSsPR8hZmbUo@w5jT`Ht5@$N+(q*=wTQ+C(TV0oUYrC-L{VbGrhjwp#NMx z24{OJHB2bF)m@z@vJNwOi5T~7E4?h&6{ZY59gH%q3 zgc8Ny(`4v}RRKyd{@gV>HNw(P%*M??jUA7t;%c!+lCIf*^L^6Fv#=gI;Uo25W|*i* z9i0Sp=)y_9G&WpRHH)~0ZbxksrkmD#5*6>zCZu3&=e7@>)?&u5reqHP?N zB)aAISi7I4cw*-f20a4P+gT! z3hC$^z*NX<%OY}Y-*^vVD#)8U>>ZmuUE$D~iw0>G#S)5=JcWD-Q7^ivdmp%5tAHh} zyMS=7p?pK>yPZWyJ#|}pb;$pG9EJRh_WU# zV@mp07Bft1d!YczTy>!3tfrFNi<0QV3q2N(Jow>FJNmJ+nKbpZX^HLOhcY)47HPId zPR31}>yYyUvi#3aZdaX9H6N2?hvAix#**tIajDpHIca-pdPA%m@oI>mMQf{f0w|2JP^?M;7}A^t*__%WwzlpnTTJaLy2yW(71fcQBT=-cqRKARY}tj< zYD3E}UG(_-()~)yMK1k~M$lJH{XyRxjl)hEc6L2{{s@bO7U+Db!(Hu%vVtXFfc z@;w8c6g*N}lB{C2#}5AFA5>dk0l01-j!_}aB+jZ1oVS)}f8ZUeL%yh$!uzO0P)@1E zVwrkU+I)g=Lff9qA>@v2-NSvxC}!#ZK{8oEG~-SB(A6yb+l2AXG?1|PMs?8uOnpX}Q%Ce6)6gUv zcTbE%G#X4N-bWI>Gq2&Wb6Y;if&x>6pZPWwdI>d1Ex2mH-@=Z#fgXhS zX!H(JUr%^ZMX*5-77bx={JCmO*uqOWb79ExHAYb9xv`8lnYaBcm5Z>v-RvR0jdsZF0cg`g8PhLH|#w5AFY-`u>~w zF1?}LamCZkRUaQFA7o-#tLK)utXr#`SQB^>Oe9GNPO-)sswNU>ClabxNi0aCtF=fb zrUm=!{SV34fcAQ(kXH5U5;ze1lk2pBQ@~s`rgc*6FC1xM3_Nz9|G3D{n3s^z_#b-3 zKEK?Qb)41qe!pG!R&eEh4m67+33-j#F^y}dtE)#XJ<<&qz}(x!Q{nVuUhdR_cgzGc z1f81>+%LHNJvb&tsb7wh-06FukJ>E%%VzA)j&)t8lMXo(!n8g&h3zsCU#{U-fm0+O zICuJLZ|%Yf683T{T|Wvv?bAOl9nVN!jbYy=OQpzo#JNocrb?^|m5mAE5J!{v5#;8G zrXHW z>T{aov)#`(K>5Q@58zdGAm{=s-36FAzTAW^m8$5VMT5yEhBvUyhl3cvgwa+t;Xlgu zCP?9tg3NVGiYLU_4BmK^le9Sukm{Xh*rnaydw=iO5QVQBcIZp|9Bp39>q%)?MALXWY@ODN6=v&s|qeuj7%pjsxbk}`a&^}cpAhg&} z(jJ81C1y6ELIsqd2+3@;e+fm@9AO1Ay*~~uRllaaNc40j^tJzT*#S8V$cI{*+3xtB zwjwBS!S6UBa-Yf?lqVWhei6()1{7a)P5O3~GAGe*L{H?lY8_|>dFX%voaZm>4E1jO z7V3;g#4%#w$kZ)*0GePsrv#~}Z6Bi#Um7!5bApWCg8XDVCA!&cv_2=n;QAM~a`|dgLY(Js5e7QU!T&Q~da3+qOM`Jdv$K z+-A79<`LRy#2J3a5FjA^g9UNksXqZjADnERr)9e*j6T7X#|?XsUgOGT%UM(QS@`S5 z)WW@woYuDgWeMsbhNJ26#?MZna0TWCyBeDhEjIKoY_4&ri=2XYpJBOr%8!hoL$MkT zzaf$}%+eFByIx+NX!XV%y!&z5-)3Xr+&hoZ%b0LSYKRRFt{MIkC9lC*yUfM6Y@6BM z*r#_vU)+`sz*mWgud<`BQ^B`_qpx&9FG)Lp+{tyOOhM^y!5MqzkFQ@J>3}cL@UK&j z95xv#j%r^DJB+*j&~#l?8pSMv{(d=0>=|1PJRZ#RGV0ZHfY{*IjrymddmbcBXuB3i zX`xdDh5K*H*Vydlcxl~y-`MdXuBt?j-?$zZ)6($0iym+P^#AyuAmmy{QT|9l`6Rd6 zr|*r|X|^CXtIQ-_9%{tg2o| zPK!@b=6Jgu-c1%wW}?hpj}rQj@&ITK32H0=m^^8E7!QM<{&E{}acG=KNQbMPC*CSt4RlL2T;>Yzc>$Z2#*tTuk_Ks~k*|BXqJGO1x*|BZgHahP)|68}a zZlBXtUA5+ywZ2XK<}>FS&luyt=;G@FoqZwDEJaFLJ& zN)F&TN&5l!Ik);?)evL*G3b(lblRYXJIsepcSFHinRZCFCHx3Q7pdswxd3d<%0gTR zf!u7DZnHr<=lnvJb3ol(Re!s=h6328g`lGV-oRP7>0sQroV$4fT$9#>sM!JOUPHpx zOt&B8P+PVYDc#8|M>S4~HsA~kbEI;E!2P7(#HYt0z=0h5&{S3!perGONuqJqAAS{x zuX1VhX{J7J)l*^Wn}wL~+VK-^FW9wBI$%?2Wk{Z7g8^e%ST0gbX<<82TuFCD%8F%kq4(cOu${)qd4X1gx z852^5S8**d1Se9S^?rA ztK@M(_8>yR%QWNoZj(El70|=SLqaK4t(`r7FXCG9G|Jp}Ma)BCc`|4$ex%TbcM|Oa z(4`SGRB1=mRSi@>@0?L(Q$h~p@5s?m+GLeKT$d=6GrV+u@Dl7Fm#=Ks^ijm}s^G&1 zev;zg_XSM((6X%b3MSZ1tP>#-B&(PGdtuamUY3+&t#vL5aqOJ4%e7qdPkxr9dkg^% z#rd?$-G_}_WWlBoQ!R<-K--_*4wq+74(=4p71%cwvZP;G$1&xpD@BO(&9ak8DR9r3 z)j4Mu%OemRGqoGgKG_I|eD!|(U~#@B`< zYE}-YT<%wJa*3u7NrwpQ1ALT@vQerONOkHe&by7StcrMAjvA28D2lP#J&L4|DeXyI zBP+*G8fn0YH+V@o_%Itw9PD%LOftB?eHf&fol_)m(+J8+>h=?xF8A8v-=O2S6wkz4 z3s~myM+=@v4CokG?enpLl!W1?x3eRKC#6^bOOrCf%qUbDUE7`Wm|IZ%u&14c2ulBM zST4JrB1!;E-NDL32AyM-4$vyRHpzEg8&BJRd!>jC6U{I(oda=|2N%_5yS0`MI329` z+p>$75yKlS+u1xzH*GlOQSabX)7q{1(Gz>`e%4M6C9qj%eZlO^-$4TTfT0+O4EAMw zItFSOit7OG8%1W^*`o{%1dHIEUyabvM1yn5z;y_~xn8vR;ec@nwy8&63edmEwKZ%Z0f(Ou~n%9UPk*!AehB?v^ zR;f^&wd*uRAVB^g4Q7&$<4-*=I7V1i&{{=^I2hq3+BTD+QXzU$H;<%9GPJSaR^HK5 z1r&8kKMCg#AJUj)IYqNZi91S_T+&S`o|Y3L3oeG}m}p4J`X5_?664fqSn4?bDJ)$X zgUq_5;#^-nrS%_+;P~BM!VE>ypOOR@+H37lJq4#mz9QT-Q%dS?eDiiF zI15vBz}pD$bJdsftFwVTTYgJ*iJUb$b}<5p^Dvfj=^}www5p8Y2g>@{{OA#4HiW0SO7E zOnh@(Md=Ie$-?8;5Ha`KPFomXOX9$LV^FlJ@_1(@7;vV8g@8V}2%o?@vk6xd^7C8zZSGJ*K62_k8ze zYI%{%kd;hANxdGi9P2A-{ckK32w^iz!dWUX@8(frpdIezDMs(-#Gk5ux7mG~dU(x^ zba2N)hFR7K$|C=RF|1P59=p4 zyT84qy?nYv2`d{m0E_*Fazp8GzE^ffRC~N*9YNySE+qkWonArGw?o^k6m(4$RF;6K$_dQ2(G!5_Mx*+6k3hq`Uqruxy(@{1w-?`Q_pr%lwIaB~{c7J3N zet;6_OAq0FITdQ@EwjkJEa&owmUSQ@fpAtXdBahIs(6KfqKGqy96p_*Sy(hB z0D%J+s-R)`n}y5QVArd#nj9%ZBb5g!J0~-`GSP*eCR0zRkq}&ryBVyB5Rte7EH<9r z1iPh?g{Oyszllpv6RMVa_SL-7$%7LqMl@OKlPxh^!DlS0`sBm7ter>4QW!}LFF^tO zPTx3>AY%ef)9>%EboAi>SU6h!>y- znb=GbTx=ulghZ?rnfPnM9blNEWE}*0)0&SNKRZ%CF{!bH7egy%N^T(6&eX)zfD_D- zVQl8PiWP)Gy*|&#_w6GPz?k2W&!H@(tIz&O$jyZ{pZCU$jF=i3V|6Ns{KP4W1b1_H z(S1n?z9CZa{Rv-9D>n4xo6;fPFiJM$bOuVSjq72spJr1dbgI2?1gUp21MWgj@Tz3w zv3pV7skxdLD+nuwDKiQj5=vX+o{{u(9qdEm^X-i2tSBw4bQA&tDt7L;?B?Ra z&25iI?2xjQz1j@^@JvugJ0ZR-j!{l_apXn5!bQT6t62}di`an>YC&2=^3zW}6fZ2O zOj7Ds?Am(Y6$>@N0u4?25chHaF>zo8GV%^pFCSIKTpJuRw~SmcT)H6nX>6K2gG0$1 zH8vL%+06Vh+rp-RwG{ObtQ3oDgob$z*#2(Wn^ z93J>HMhxwQXkW9XpM)4^0U`^M@vp}`S>RHo)tsqUbz`h#s(fVg)O-%epn%-|iiSF5 z$iT@MVkuQY#OQn_rzwjY__s{D$t_W*1~wH=T?0Gyv+mV~vu%kwCd2t~#ddpa;+%(~?zV5uO<|j79 zDsy_kV-vt`-Tsr3q^x2aJEi@(tj%P(j7b>|CdZyelbV>$21l05%_BCYB(AxLU$YHb z)n(M*2?85&Dx+VY)8~!fol~zvTO2BP8E=bKye8?ICpdf%%@z5%eh@$%wO1u=bAnOX zZ{w_S2N(*@LLx2s>o~P<>wTPqruo$2weiM+6oGHiikl5dZ=%WpE=t+F^v z_?tD@jG^oBFIf72kN?i~ijK zU;bn*9&PHHX-6&-OPh&c$rqu`n#kGxrK=)#>qte|-pD`^b+~zmGEzwj^M8v)2F#vi z5xt?kGeR1#jWuUoIfG7$n*TI@CSKiaycoBVBSFgnYCw;tSe@wgLiIP)74k)0N$S3# zb+DQ4dMAVr)6^sb^_kNEMZN*Pv4g*h@<5~|hIlIq(+$v-)apT+rEXfP5p{}P^3W8i zS=#y160sGsEw1_|&2RZ##UFOU6c|{K(iPhUjEv|l@LNOVLC`6 z$E950lUdDEiNZTDg_RQY4kEd!wAHw+rIz@7uZ=vQt%;3BNZpCC)wJfv^qS_4jkYAF zcCy9a!*vCUo;IP~F&c)(@&{NN{>`rlT5~bL$+E>&4OPs2tYW@aGq1#=^38Ce^%7$>BW;(3F~FZLN|@Q$Zq)*`gT5F0E!x;hmhHDvOzy8?)RZ9 z?i1pFA#N7};`sM67TD@(7{*63`bn-uHDY=u5;gu|<4u=->Eiu`>*2zjpy7=7rGsD( z|1?hu6Va;m8@A8#(OZtd-h!I=gZR&6mBcukl!vt&2(cNZlTe{nrj8EcE#*THa_ruG z?=maFUTxiD%8~w4D${HZn9II$&>&iru?#kS)9$TEeev_GF{~Vv8xSzOl=OWAY!f=` zg9W(XbRqT|o+iZ*DUu;}&ymBc5(=PJ)n@tS^V!Gdhz#@BQb~#L7WNfZ!}?bb%Uj)BJ{n@dat@y$`9m z`jd?fOBxG`PWZDkj1VrZ3NbmP8*o&ZhHbJX=4=&}}BcvEtbPU!C@~1XnQvqesRXk&ATmr$KZ2s$?IlnL^LuNh znGCGEn3U>!;Wd>&q(M<|9-<$DAC?gpQ13n_z_V;02JJ^`+_x&7a6bBmWK8yWD>k!m zs~6!)Jm}*&i-)I+oMKkPOZHUR3f4ElN8qH>%zcSBZbzd0_u;>uQjV}EUDc%7x}1a$ z`^V>wi&kyD)`-=g%`UVt=KFWf!h3g!KT{Nnz`OBtgrG`>pu~aBgCA zW0rl>?AY$v0v2E-H!?FXLC3vtzjVO)ecmDNtf`0n(6M|{hO=q>-5 zE16r-vmM|s{xRkue}jB4V3?Y>6D!rOeB15h%sOkH6dbuL>Ql`2^!^l=`aTx(sZ+rI zs!7Dzj5389llY1T{>I|B-Z_OFCNo`2NkLDxe(Aw|acv!a0kF1b!wGaSgWI}!9|UWh z9Z&Vq>GdUmVA^%E)*st$X;ri&mbXF6IEe%lR6vXr;OJNCFXcA}-mb+lIU+>DzONXR z65z$@9YZ;o@TcJ+TQT@>;uaenP5Pva`mO$sD zIz+|$c=`V%KPyCq6^bKxx1a+j3kP;_2ut2!jQbp8sI^UC4d^Z-Iq6OL1!0O?o8U47 zL{V6rkP7S$%Hu3PEpARH)=~*kTikmw5x&W8NVZLy3p8i#kY_j$O$@e1oohH38eflT z{^5Zbc!fSg#{_U~Mjk?DA2C+tk|3yLl80=Ucoj|~H{ej!u%-g&faDe-J{l$wQ(MLC z5W!S8?*#rZY#i0U1(SzASDrT0Z!AJ$mS+e!6(Tw(SWXcD8Lw5KXeSBzcj~eRORi zfs_sD!%gxATp|xSr-4*&>u8o%!MZ$M+_8y2FMm$?C`8v-eP?ZIn0DgqsT-F};Ev8g zFw0OE1hFx>yxJo#w)5(q9lCZY*n9^Ad>NKI=1cfhA)aYQ4Z_IyD769Z?PjGLO$uy` zEzZw<#zw(wdk54MSxK>_Vg^R z3z|nUv%YZNGE!VEA;!qhdVy|{?ts~DvsRoy_^N3`L&Ku*Cf363`&lx8M zIMy=%G;0&gy)dl+u(f2j;AjDVx+r>@K~=+XmeTEeGY&{L!H&l|hF8E>_MfQbJ7EY` zIYDQ(jCPp#k5n&y=ztqJebymg-Qcac(9AeIaDmU|4lZ^)4L(`tC{+jO-c)3RRQPF+ z60HIVNp=W|onb<(Rxl%iitL+wI3ky+Y4K#?hTWtjh%PqX*4lO+L{6L{qdUK$L*&^c z3V@3HxZ%GwfgOSNXuq#>I|>7pS+edM1hkGn7Jvr%mw*q5K@kV%0Rrn!NLkEHW<54 zMQgy@lEOD|V^zTkNG~7@1jRgH=#?2fP}hMK6vLe#90L?R3ou3`@J1(O?<$9Y8!{Hz z9*eY1fB{vEfd{gmInK@o89;-*Uz-d7+8#h;1^~@4pemcj-|}WC=^8467@!?8fcV^+ zGei+FC~ww!(Ib-ztAxvX0&ZionAH8T(Ku$4mgj+!Wbj$X6K;rC%nv-#2d*K2`rdUn zCmfAggnIut5QGHeED<`E046~)q_}gz5(PLcVRr%`%q+p+6B;Ton`@DufKuRtW4}|M zXapzl_JnwizfqtKXsqb{nhW|IOZj9*2DCpS=(hrMT|F8r0`_kO%2JNNL6{{Z?bw;@=B6>0b9VMjOu`?Dbsg*{>i z3~1xlgspoPvfQ>SYU37+9oGR^g^kc|kT%U41co-5JPACW`DUCIOdr^-mQK{hjXJtZ z8^2)`aj>OKf~!U3-b6{Sn-OskMoE7qT*I8V6J3_T&0e(gIP*;QV2Vs)D<$gSq(oxt z-`$cyqQGp9_mhhL@2QyTLPaDEiNQ1*&7>*J@i zyYXG968UqQY`10mQ>fyykJWrrjqvusNjl`8*kYp7ZIn^snP-Z()R;m{M6d*VQ15h) zedh<)*u3c?!$=Z?@fE*I#+PUJ2hhp;0zA8dg?KK?UyI$&4^3wvRN(i`%saFNFq?F+ z3pbOp4nKteVd1U}c6XW1Xr9npZmU@_?*Jt}GlQ)l*d#QC`) z_dZBuHAXj#tTL8H~zUT;gudjjOUb^t?JeC>Z!fwVd9sB5e=z)E# z-KE36`dLLlh=%lBm^)Kx~UxG2AG1~tp~Xd0uT{C zl!CSIMEO)w#CwUAhTsX2MF7|eMr8)nzy6K~Qvd2v0cho-1JJHl0N_hVt&cfZRP&jg zK-}eBsga_ul)5(A61UrzcnoY^RrcyJ*n6i%-o7qe0FP%{1^49P|7fk#{D) zvIb}gpHcC;{qVe!AH(dEaOf@LYgm2SI_HrSQUlrfafpRY-%2KR3&A7b1S&^$TZ*crt5vUH9cMcHsFp9Y{|>S+RO`K(W| zoJ*;2M=Bp=DP$9~w?i)Q3Bo)%IaD56u^iEv2&{CDb}9U#AD_Y`mJq6R4ijNErF70l zqOS$d6_b!^zhy;BiY3pxdeQC5v$Wx27p1D!EqUD<*MQ}@Ol9*}?b_z_nq^Cv%H~fp zC5hx-{4`p5$d_!5X1i@Y-R7D53z8f1(PiU`>$IcawjbjO0`yn&QX9mz7@93yor~u$ zt+u#15;|X63FTU${#*X4c9CLngdKCeC4dmaUAb!K1B; zCgWZegpY<{(sCG#eb(Y$TM6&eNYb{gAr7x#NtZ^WNtY&Hq&1^GLFN2c3Z{hsGKwO3 zko~N;Vdws4PT;iIQUi997Y$XtAuqQ&ld;-#DeSAJEwpw-W3@QnW1)xMatZ^O?TewC z0&&>dfM35EUFC3yFK2Soev0PWv3kViV{-QO5?Gu7pOKZY z(}=?=uoIy>#pRG1%9_x~pFpHZTzNwK3nfj329h`%qs` zTwi=7888D}Uj}|XQ7$@SnQQ>IFNn&7@cX{Udx4n~;4~?-K5GH!9~XSeRO@&H{LmaG z$6Q~Wgg>II0lw@+>v)6T=SEBqI8d$C2wuVJr?bmkh)dzWvsx>b zf4L9{PsQoLCjbRp32SI}ATYrxdSPmqEDr-L0;f|8#qP)fi2FcZ(i7csVF?DnB4T%2 z33tNwpc1~Npfr%R#T+CWV1Ica^*YD-Z(4CpR0XZ}4=HdV;P=4o)mo)SSic}ID-e%u zgvo#7!>mcr2??fp;|67LrJyipm6|MLbOR`yMVga)Ank3Z#G!j*GDX(pLeF$(;jVh4 zZo=>5i|QG*J7S%{2#(}o1_QqwhqMY27X;DmgVh5sy|6Y0UXXMU5by?Q){3CGFz#6p z^YBLFFG>}a+z#u58B`4u*f_N7_#_6?po9C_eEe+37_d5pK^IGl4bU%w*Xle)zl~T` z#44;z#@y<~=B0|G*vg}FGuoM;eje;Z`(rSZ$}MH|s&+cfGCD5f(CSE89rUcScJt_S zLxhJ#W%Thfu6E-T8mzOCwVyxi$Y(FI4>rQM{IZL6!t)q$mfAT;?Ws9TV$O`e5Unkc zVQDuQ1{>`Hp|BEIP_4u;u@$WI{C_Dq!#>ngvu*>yzOo(IZUdJ0KxY zC4Zb_5{I0t4FacB{!n?}KfCAybm2abxFQJS!QgTAj`Jur@Qn+ml|-19`2;D)8hd{W zDxMR1E{*CUJn_9W$fg4=#goTz&}iX{W2PtozQ`c~*lVQ*l7cgEdG0Vp_zwzh{C&>j z3KkPrQ1ZVtbf_hSdIriR%vn zLa^NK@%fBR!maVqYHup7c7R#%h)0$U*!h>ranho5SO;Xop((?e51iBsC|9gcTH_$6 zQMjY26p!J-ukGR^VBb)|O!1nyY@6nhvtfl3CI>%w$WFK>bK&8rN45UASlG*%5HQbG zc~~PEv7dHk7!v=`vjwzS^(XVLKjRqN;;d-M0_Po@cHf_i$>I;R74UA_?awm+?Mb0ioXRzyZuARx3{J zNHV#4iB5B6!tFERVD%}XyaoMb+QF8;NR>0@Vck&TEUW19WF=YMOVsire6dpywX-Jj>hiPEU3S)lEw&`X@V7!FC?ygVUVqZWQ4a zrh`yVA%}3tDO|vnf5=0X5QfVD0PT{Gbn)Zb$L|{?eVA$)6X|3$FP;M&k(}|BF4ox8 z4jG1UUuFjjoZamJ7f)zfGeL`^8o@Vk&>hhuMWmrV>kw$o1^bTki#2?Tsmk(rXjev`3M&YZOR*3T|Yo*W=nFZ3Abs z*ID@CQowU3G}dp-j5!EXkF&=;%{k3ov6W{b`vu9~l8Ss8I6br8rMs#8=8(^QaZc}5 zltjvmKS1&dk#eiD=<~W}t=H&_VxELDeJkpSImUiFY>HeUe3FOT3Pq9W*y?XQw~mr7 zt`jhQHdzp#7rK+BjXBA^Hq5=21*I*b#0PeR2X@n=0#M6BkVf3|g)ax;Lv~0$-%;7$ z1zupLlrV(M7eu@3-^RKSBxhVVm)1NKEeNV)RDGrLPLesTSg<D-OmGc~cMbNEFtWkr(LLM> zp!!4U&Cn+d@6Hjdt8FG`dw%p_I*SqE|JaIwJIFm_pq(gkju@@lBK=(v;bCbHr7E#s zU9u+LlJ3P?Nu$qyqz2H1#nD!rkr>L;Uv9tl7MAVgF(RJ#m$Bdv%|ZG)tbolO;>)wb zfy?+qk5WmGZ(2L)OGeIv%Lqf$n2CBbN!ZMvDAW-jBZOd8Oh!+GYG_V~Nf%0uS1^s& z1BG_%2~GR@yZKQMCt!`1{bP)Ey0xo9R3^H+TV+}8Ut@NaL)29(lWcs>YCtD>f%!72 z?uZ#NaiAN|z|z0}JoRrdePVGw3WX}ve=;nh#~nc9S^;DHZJ>ttrvJ=W9~P7P1yyWr zudLK7#{~M(Xi7yhwzF;X2p8-{bc%Z;ux%e(*PQjX_NN=CZxj!~Pp=2^MxDxz>|-m! zW_~_^9hm+k`7^!chRUOR*%h^GM#~Yk3nTwr$oWI)b#l*c0(d6f`kvMT{t>{SAWXb08a zB5VY?T^Qip)+br}v zYSBJ7e$54*>`ODR74g4iz$X<2xBQttYwJVzr**QQTsthzv&26DS^Msb>1~MOk?3{{ z{`fRPK>(={Fe!vysQNxA5O3yW;vPfas)L?V@Idrcgim-+z}}j?{X>Rb z@!CRPvF$+L?d7#rAzQ6m>zB3{_m|g`_ZRnzSJs!u7ubte*fkCfLdG{~!!?e!K%Nv{ zel=g8N3fUWIQG9eqptK4fJhYaaL`Kmh%s zf9!_}>7Y+jU=A?)hY&)myJZ;H^N*}6OXPPXG7>nSU#yUF3oZ(2I;QjDLxsm$D^9OPFE9jzPqE@S>AhvdAZ7{^A5KN7(y6Z>YeiyOMD4@JA zd>>?RA;^B&WOGatA(;}%O@W|I7jmhsio5_Sg8_42!Ut_6xHZ>=F4h~Jh_vN2gpaM$ z_uXLih-yRGXDbiFz`^rv;-{gK?2Kzwz{p3Pq&>ybM9>Nc%&9^+b z(~8deqb@%8yY(t0$u9ZOUpaBMu4Jq{ee+ZiE2fy+6YA}JFijunx-up#Xi9%amS%23 z$cdmXygWze9s-);$R1VCx16+eP89o8{oNQs5EAnt8qVl23>Fw9Ys-lga{Q>8JF- zs|vEz9gbA`iL*_W_zzFG?Yd>SjduUpw;Sj(e(qbcbXwJtygeazxjO4~C>d2&eG89Cw!NwPop^@Bkrs(^!;a=L|88&EC2!ki2qlEEZ%>a zCjYjJIV(!ZtqUN0k=gJ4gl~(xCyH~%0o$1m7N8O-(1l3GZyX^+4B8u^F<32+xV-3y z@)DqiaIFF?VHFzY-3 zidbAdSY=L?N1xu+mlWlIE-K_5^pz?4GdI>al0#;~ZLB&dkT40&7uX23jDJ zTnY_wk8y?UjqZcwZM2p{W79){$h?&0tLjzAUpz_|w73l1jT~{TcK)rl-e8n zcRBO1S3LRkpYoD@>z_^aqiZB<1U{+D8in|i8HBQmE4cfOL*n~1=)Ayx21EOU+c2g! zkfzX>Cb#fYb&jv;OKLr*_F%`SngLx7?ACvWN!EzKCDVrV1a&>Ks9KpqR#cL|Zm%Le zbqC3T-2weG+VRG^O8Gyd-SA_H{?B%3-2Xh<{~l~_WoxB%F@!DNQxd6E^i@cG0zVvN zE3%z60sj@ZBO2Ykr64S1Ch3waPOW~3AQY=KI1974lsO-Bv$s6{T>kR;gkMa!SmkN+ zjvX!U7nV()zMr4NIRLd_oI&Bb+-}%M@Y^9aJJ%d$XwRK!wtD4$5Ucf%`96KNZd?04 zYZo;U{0d@BbXQ)%Rtcasv9?YKFipVh=+=I3lq z9%0w05f!kq6oliIeUyrG`k5A`NX(1Oqfw?3TFn|spiG=Pi)Cbs2P|o*Zt0A!4a-*z zIb6iz6}T#O&w5#C7wl5$@urHcdhvQ-Vf&5p)S6+$#V*!7n|*b|D9EOd!Pcnz$SMoN z=8}%8N6Axgi9qABwz{p?bC6222PPX_lEkbOH7byjV_aAR+N2_z%&EBZh2)>a1~(WtW+B7Vtp)Z+rN&ihuN33wkP>~jSTK0Gn1vtp){zR-XYr?HCr>Dz7 z<5i+o<|K7$&(opL$I?c-jMlc?w^U18RaY2!nyzUQvr3WPp+&SmK8@1~+antM>^}Ck zA_zLQs{Rsi4gdZ)JoY>{$hoUiDTf#y1)pN3f*~#i59O{o@4yTy3k_o`;)v=`1tZoU z6bvQQx%dN7*V{5BN(a~P_0;Wn8n`#I>q6-opr5pAcHeWY&SzRAc=Sya=9B~o-Lscb_y4NVEjF;m_nw8!rD z;6spVh!_@GvCkM4xtYZSXyK3L{|h59Q5^$Sw39en#UBw_=M6XegQ?b+YO7tKm(?B` zm4Nu*B@1z)e*@q;l~f%g7iby;4iek`R-aWoR9K(2djB@oBc+MqlV@_Hz zHc5DFya;)0Xf;HV!9FqVfpyXj@SsAEa_&rWB2*AtIxU|VdhC!Lx4x$6K@QZvl2l(w z^X%Lf$XjWpgh6hAIZA`4$V?NaXrHN-Bi?f`bSf0(K;r2*Glxz-EilMxFhkPeXq6X(1>x9&rfJ@C#dG)(* z6nY7nEJ|8_b;6uHO`TmvpTdx7aq1Luw)l)^98iO5N?Mv; zAxmTnc&rda@wX%)jF(5*4jBb4hGVv8Qn-PC-4oVYMoQMH`2Bk3J9pU4Ze&g{sd&%8 z{G9Fhv}%^)cs+*i`}qXZtK&s%S7hy8m83T{m zM~U&Nt6oL1CS|qOJ50J*f>3JaHqI@}IPMgi`U509JDoc1cE7nBG;6!r{ym}CXwA1!0P*jRE;B)N2)8r|y22Xz@M^iAE zSqYFwr*-1YB}{?Y?UYdC&Ax>@+v%S#i1&`c$Iwi`l~R!zguYF-;bNSzHNMpO%b?F( z!4>*&4v#D@74Nxi^zkLh7=hO<$!}u>Hl8|lEOvAz%s4Kuf8xO}d{@4~SNj_!o6{UA z7cCq1ZS4Du9Amr6VQwkP>a?W`f?`YM?Kb{Qdhk;Nz~$JD(a!6?iIpKJoQB^Cn|(NP|Jbps`-|G0Usu3)E}lM^K2L5^+taol^dUoY!Rw5#Xrv4 zBk56u9V4jXG;A)FSRy6CEGbM9gwTj<&lzCWZN z-HIXf3!epJ`)YLHcx; zFfK%YWjhi+Vy!kDGcpag?9}^&oNW{58V{_t^Ce0Uk?s^AEGUWd4?afKoPqM5Q8M?p zMa}dGC|cF4& z5W8XBCjF|wP`J^wrj5&H;H7zcIq_fST~w+FMkpuo$1S?w{zqqlq1Y^K{gAmE;=hrC z;6IRA*xcmj`1Nl-|36u=2=&O^3|SPd|49|5nv3-d08;eUI#qk5aX>m#8s$T{`(C+QE0y<#*d*d*jvd9|Rzy=Ly@%e4}>oztLTub5MW6ptMgCl0>xiTP@OJG&UZ( zG^PHMfs(NVT%uOYwa5&AZEZLjBU$**%6`FSk;R!aLz7TrQ@f5=e5BLy_wirfd|3ei~3_i_v|g%SML#~`-wk(o(TlFc{0KdhEShvEjK+Y2Tvydm0*e!43s zhA+ad%m`J~XVRleoIWT8>%PRR1=&@M+XAUSm}+&A5B`<;e;pm#y4XE-H-Plm?7PCN@>3an|M(5QE2K%fvA`*5V%@Z1jm5*$vQl;D7Y53j8fihZBW#I+ z!)|Qd&_M-^ziSx+i0?S{gN)B&lOJSkIY9A@t@`X0o|!guUo0B4ydA`rGy>Ob0+xT_ z9wuwm@BYJ#Vz}OH&t_PHHHzpRF`PmRE&(w&Jk+( zH`H^e9eoO$d>mDARsD7YZbPV-kRly6lT|p0HE#qK8nni}CtEhP zqurQ#L?B7;;)5W<5`x&6>7;UIla3bg#fif_HSP{>tG$EOWJG0b5@Fq{`0zWq0G@P6 znPwTx86iPLo>mw+p)l6}(g;3k61sLpNk7&iEx|LeI5OM7YaCEck-)dRM5YPl7*ia) z{oO-2=i6{OwwE=wN2156w`wWg!Mu76gLEzZB=>DQO!NX%#PCR_mPCJ#@%!f*2673U z(3tCBKkHx6u;TeZXGR~02~h+hdr){&G=trx?nZyvHk9c5-P9!D(f?3;vR?qM`>ZTi zg(g%=3wc46^%IfxLycz(L7S5wY7G5XYWydCA#DA>G+mbJx&yW-0&hXb!J|x_upzm& zC=sV@kW8!S5P}tW5UG@UOkZbJQC*io6SXRJ?JJ?Kn}iUmOFUJ%+hI;F2eanEh@!F| zo=b~ayIckz0ZOTgjL@3{u)^|!u_789Ib{-e4d zxVU5p3htnLhhuL8b6`D3lJtgZ2ojYG*5h>_D*kqCEz}5Fv&H@v(nSbDYrQ|k9zW7| zO~tH{n6qdf>u3&KV6}&&j3joTTC_F~VYS$b_HEN-C>b(nk0g&37rdq&;C=~mpcpau zX)vKT!2Hkxm%gI2=H}unev!=3o`T4=+RPEqc(chmIUwR7vim`L`*Fm?V&Q8{|4wCS z0%la?E)p0idcTkPP{6s=rd*B=A@TVMqI2#i-~%A}@E zdlz#%tE)QIB1AmU#boMVC^v+tcXFEb3YTUkJH#8(v%5wv?wd|*-IuA&a|Us;F~pg8 zWU_lBR`^wIu$UndQ?pN-)nCe=o@2BvCgW`9cZTsE0PJtE@?^qVPa*1~B1^;M_FmNl z*~01#lP+3vi!73qR{5DiAQr4!g#%cLG~zbS>F;yv3Mu|ve&gC5WOWwckxC|~_-)bU zr*+hnFyaIn4RE;g*KQklW_jn^iIb{3HYm8_9$YQy$;y+LZqBd0ik=CY-}wXQLTFjQ zDOq`HH(1vp5dC3w-bx6q<#aGxQDA>k2T|0@8yy}Ldrr+DF0=OLrc=EmR++WE`~P7@ z)GaJ5W2k$3MXje-Mej=g2d1v~M2&pTHCs+f2ObGip3i{jknL8Uh1}BYk$Cu zo5H~UYFOZzm}ooB^nThr-sreH*6ZO1x5M6snrJ+;nV(im?>^+JaIoEUz)Az3`xh&a zV<+(cVa5CF*wz2A0wWIPhZT(~|HBHczeAwK|C<$~8%_VP;@0MiHj4~lG58-=oDIxj z^_WW49Q?3?X7L|ZnEb;ES_G}RV*g*#h5xXEV(5nz`ONV|^wry6d zif!ArQ(?unZL4D2wr$()x6V2DySIDX`}OG2W8@#m*!!Ko`OLM~T6yVTrA#EaxuBY@ zK+vvNAP`+ME{sinjwc4qT(gb|P|#-pw8BLHk5)VYv?4x_*GGx*unZa);4ExPTU5Rh ze)!B2>f7NHawpX`f2p}xVM*f?yAjfHE4*~utDzt3oYV10VOId5jCu3O5)`1sY6?6x zM^cmi@k`}?FVjiz?d-=gVQIj(F(`Dt9<9lnC?~w;&uVRD&l?xx7`E-aG2nI_YwgwR z3V~tDLYsLFySB-g8ci1!%%?9<6w+@&*sWh)@m@ap8ner1tR6JQjI0_mXfV0hU6#sc zqJw=?M+=A{pW+dp2c?#aA8Ht{Fe;1Cuh<9MtT`+;8>KXkr)0qz|rB=&FZ?#TEn9+Z3s2kS7g?0;#+Ei)RncB*jIdVT({Z%X8BQ-duw%G^+T7X) zz&4VSR?q$w1P4LYb9e@C;2M(?os>okZX4g2=Mb zO$0a#Sb(!&VRa8}#J#1OLjur9zw}oCjUX~;_9(qryd5OCi8;7}r+i_QksuK{l#am) zH+2LC?xVrErCmI*C0d#o|3aMJ!46G`{R3ic#!2bKBN`L(laZKdZrlS73g{NHA~-Zz zs}K_}!CTn%qq_1YdXl&gDt{+9ScTls5ry&hQw@KZdQMa;B+X4lERsw$*CW;i?5bX_ zNWM&yGaMCAWR2qXQ3NkMX4^7st!a{4e80*hlg6nz07TyPb~1)P`ajQAA>d@8j`bZobF@uCtzYL``j z&L9;A3E|;!U$qpunFHj)N=#SeAGt_s{j#(JFcv-k)>!;cav^QwX!I`{`LE6bgzwvS zE^+Lx;F7;bxzS;iSWa{WTvSdxRmmi*or^DG&&~$#+p{y$l%P zv&$T*`a5z=CRMY?mt|Y4wDD}>fLJ>2Sr=}5HS~QQOzMuY^b~>wQ7^9_xd;g`nu9R) zA=qU2U1dM*CpiectcxuX=6k*#fQI95XPP_@wnVLc3i6f#J-611reDc9`)ts%R_#75 z2!rwAeBDHQy$lVGuUFNgN<#i9W77-6tUo>+OrnN{Y1o*BMHFA55YW20XMr?OTE zw4+HYJa1k954oUOwHyM-1(4?DCVv1xE;#>-Tmb)(i&cPJJB0*eM!r)1}F34OB_%)^4mw?0m`&`j$c*X3*k zj<$VSAP=_vLSU=0s8n*xXHNb$8ayUTcZ);)b*!w8kdm-gl9{LYE&S?@NNXP`ODyyS14!|K4hPu~60jTx-cn`?xdm3cC-8XACO|0fYAv`fWJ1Zut-)!RxAVq9Ge5S6( zol}I|$8xDV+%lKdW&U7D)E^9)1YijN6L10kJuCo2?vYP9kEgz|2ovPH^%uF%db2o? z74v)mFr>QyfFT0_3{f|U*v9Gzdoy4t+^Szu$LH2_Q@y*M2B~r{EmDRem`nWX96#X= z@&`jAE&YFP|6kSOf5H$MTgQKi#eaAUjKC^na}9Ogzr95%OfE{XFe2ig>_U{5-YGdG zF2vWn7jHWZ&Pq!{)tP4TX8tpO)YE2Q>PKq9fu8XM_u*OXCC}kT!apE#mC#k-+-m_E zU{3X$+ePT2a@m?mf-21)KH1gK(*gy1be&4k1$S6DT2OJT=T|!M4shOi;J#`=Dj?^i zWcfSiluhceVt;sCi2OU}ys!$T<~Na1&LYoeJIvorQen^n3rwId3!oIj2=> za-Y8s1S6?1L*l_Aa)#PIu`#I%U|j2%O$wkSBOKjB(gMH`B@tXvR@Fw>{4U4Jc)Bcc zIl$cPbt2Gh`S9Cs<+0ovM)1EvEL_#*Jp#*l7ww{@F!j;26Wf9ieW z8A6RxE*nq8D=r8RuIK-ib5g>EkeB|+IfLNNt65dW=_pd0neV9=|XkoxE z9(3z?!_|`l$T=S>9zJUR1CLT1IhLwG{|{)4$fn$0+;}UMN*7q?{LT_ukb0n~`UYzKSy(hO zO2(zfROZn`MR{~wAIJ3#hl=doS?&>G){aWm3i>r_KxW}&<)j|ovUrVk<5S_WtNs}~ zddi=;rWFKxitXf!PQnnS~qpQZcLl6b9s+Oo9zjcH1VBy#06IXnD7D zyAJ>4oUTSYkjChhGZ)tth)A_eWUluNorIp%SRUGE!qG#?v@u;uZPMNun{6^x=CC&S zSp2A_C3{b2-){U6#;tz@H_Q}RCKj%Sf)z&<#ST8Yi;)lkk5a5r9~T8d=)@OE9ed4BPgy-atxhL^h|Y z>*#06sY58Y`6C#A!$>1ZbJv0qt2GPc2SF#Bfrg2{nMwL}S?3TP2hXE17A7K-InUWe z^C8zH`y>0|#_**#_d80Ll?Ms^YH6z!ua4Qvf7lB{)Ab~0CZr&MW|(?e99YdRPpUZM zjkMs2sBZOq(ZrVXnO0t}8~2!Zz_LQYLQ9^3PE4y3n`E>)b$3`yv?B%`XnoSaB#m~> z)WFxSEaxGwxIQ&EQ%wNPO+5L>U!<-6?JtN)|MC~e24Y@P(rOsX*JjgOM;XF$S(T-&MpAO5gh7#w)ac>58#VK&L_ATP_qO_ zrbBs3i`sL`=`DnoUay2eLF748S`xXgAjM%`>k;Al#y?4?TPPsuoH;G5eUMtMOMrdf z-*e5M_3IPEPOk7nX(Z@P@_O+jB=u;V1^FxLOsg?VbNbmKr{!zWu0dYQui*?=7aO94 zhckGclI!ZD*UzFs<5@#0C$5LHk4z})Fs8(Q#y4!gC;V!w;-+z;FNyqj{?1 z=xQ{STYG5Fcn7Jy`wq{C&Jbw}37j-v(498(-w+ALtPH(p=x9_k`4xK>LkC}Q*J!d{ zlkfVr29SXRQ<3XELMK0Wbs9i61b;^}WDo|b0c0a$vrWUq3C0E=N%p{u!q)Kuxw$)B zm<(TcZH57mU%;~Zp07cR_8h16lJ@`wbkSs}@EwAflE3Z38y1IoKtb{Cqo^aGFaRvZ z2G!>;fW^r8%VO}xgc1>c@Db#dMf>!lp{UP6wr?t##@K*La{)XCT@$BePzY`e&(;c= z>NnT;0z?s;x4@~bac9afXR0v9=ac7=g_f0!VK19xSCc>a1t)5cCo;&9RVAg)3C4oU zOb(JIw1KEooQ!kPr{#gP?9VrVZ1`G96?_dp2FQkR#Fj({)LRfk?$Q6nV+8Y_$Q=S? zW8&Wu$$#@Y?XOZQKsJ<(>>U8xBL1Zu8hW`#pa??~DHqefHBOICe*v3`bkj)N{*y_mDX z0z3?OTGLAbzdBn8X&0Rdo^PO!UU=p$HJhO<+<#(EoSS*_kX1^v&p|+R`)4Ya)qN-t zTs~I08aSXzqB54$(l-aZ>HMhbYb!SX{Ka@Ub9@G_s}H5E_(mHg81&USF1WuVxK49; zUtp-^kj)a>j2s!{Si|SAHgTEnA>eix4TEW#3@I#&U1a*#7-{8hActV&Ec}j=XR`$! zBJW}nOWx`bvhmk3`m;qevEAY2FYjs1R2n_BjYYTSZ!x}XR-U>s!!^!3 z)rqeVKC(vDQhDKMRL9IasDEquQ(P@R=sdbvh!%2L+%+_Xsk{yiCJ6mnwDhZs#L4Dr z;d{&g`9N`r{K%}t`#=_9jZ-)jukOt^QW@K0h6LcOtCTG)XcSi<1xFP<0H64T9G4)q z-39B!;BGqc&^2(Y4h2icbQ!ftx&y?+knR*yn~%kxT2{XM`WR{Nl_=FJ2;NTMwM~5e zyLI5;-<|{PZ_mL|1)1?pfN1&>Tu_)Jrb>^cyp5ltkgE`NctB(S5@J*)prHMAU71(CTemJ=(;b*$yd&2o?%>u2jo zb3En=WMh#f&zAbk@Y}5Rq;d%*gcAw2C+T~k=(y^P0u5I%j9vE=HbHvV>t%PAnrOVD z>)bE74=h1~YM3`yZ+|*uunH-I8zj4S zb?$=(wYmqKOn~Tta(oYT0MU0MMi*X1b#e94#l$%-W0Iu!x=J+{VB;|Ok$K6+FOsUq z71~+QgFZI<2JKeRV&B;&uA?$CInpo`tzL({TJJ{!Mw0}nIMJ3CgosI^2NM|RBO92# zq!Jn^V}9d|qk1&d0uT#Z)E{CQH3YoOP{El-w#FYuFLWsIcos}`+giQAE$GrjEaLs8 zT4SOH29(_7uR?NZ0e!8zX^o_BhEJ$QyMIHFzt0Yv5ExGp54?TbbxZNr!wjz*lF$^) zF2Ui+d$I5S%YDq6NkKz$y#4@SIa>ku&%z>K9V!toq!)>RA6UN!Y_m;>Geie$fU1IA z2P0uS$LEw;unzSaggGn3XT)7n))>@){>tv|U^Df-O`siJ|IE3htVGM)|94#UljD$P~h~twaj>shaS(z6iR-I@0-@$9IHX)6)oo6Pwwg`Jo8VttqrIIM4zI>av0a z2Xcp48Ssp?3zRh7#;9X3FO|J~SsrDp*NRLq&*;!OcFuT_8HoZUsneBB`6%wR^QVB@ zjciXC0MydIu16+$AAHAi?is!hFH%Wtw=-}V48vo|S}Pc@<~yV^VcdXe=0f<|4hTet zK88OlRH3tSkpnjhwal0@^{qIOID1~`zY-BA4bZ0-eGg24JP`=0+Y^@d*fQ^0f^7U-1;P05 z737}>&xsZ)m=dUgtu5rK=GKXt$T6k_!Nl4#l-&}N^4W522=urHZ5gN#e9gi9h?B%j zw*m)AV?k=S&u_)G#wu}a9-^91E>2bBtywFt=eeJ6r<?@z zWzE{pzZEPJnL!DRwnp9zC+5eEooKy(Dp5Fn2PNu%jb?LKVLT<3$30gMYhE1*;xHV? z87lKruQzjUX-rVcj~;!M-iMv`Uj7!5M&7EryHv4z#S{ei(VGCzs}l*Y;%xi~*m3jW zl@D=yYwH?REY+q#onq^gIVI&C6eQ6?9uEZ~BVbQN3hy@~Pec$M{BAaicrWxz9#!as zD$`(qMOg{&8pSbp_s(Fz6?JHMsK_3sA=Ea7 zKspJ})I`GT6)RBLs5@PNXHQt?shH?2EZ+}tto@KB`|KF>#(zb?J-;_Vc3ea)sFY^m zFc!8PZW%Li*z$*iLG6QuBH=|my0ra1xWdxeKMrxE1d}ztX>kOOCwli11K0uC@BZH3 z#ooHOI|g!ibI`Ci=YVOuAkfmk{B@#1$2oGNT$EDv?Wx0F%m)qoo+o9$z@W(9> z1J#$VyT@nUib?PkicxT_VRpc3SU*-&GA9YVx_chH@cZYjna?c{9=cQ7OC!sZ23pe@ z&FqWbL#(Mm%A<81)CwMXXtywgqWVjdY?Y-@G42Iip!S@EU;P+~x40`cY~#qb!W?22 zn|95YCfcq2DTysgC8v3JM01{Gr#E#6BoSXzw@!Y}k?(;_4JMstAF>_Y$M|k&--Xm) z3LKACH?60-Xk57OPVJNv+;`JHRC;c5I=f;N3Ua(AwDdg8@I!?a~1OtU#N(p zuI(XWgFCZ`lr+9i=f^9U9Bh>?i;`O&9A~%K1ckZ#P=->!trVBu{24V1mmc9~7Ir%Z zlpa>r?pZ`^vZEEH@NzRS(|7YAxI>cOOHyk(Zs+bP1kxk74@as);q5+!3I>B!vHwgdCLDu6eznR|hwDaF zq6Nmp3V#z}_(79cTl^S(;ygVp8npF_wcSv7y>wE`=FVLDc&R!4zIh%~o`<2g*LS~a z4t`AR3f>Rdl&>FGVWSbx$9)Cx6LEz5G64&fZNWJ8{AB^+wsu1f+kLJ`Mr@1oMHB-o zebQGz+?hX`Vzho{4nZ*ZtLd3uu1!%aqgx^=Ng%)Xz7~a(PN}+tL zC48(+7*Kz+c7SE~nsfKWF2_5Ms01S?=wK;mFlb!`*F++73*MJr)XlWhi3e1yPMPU-KZ)$Zv zN53ROK3s7Njw~k}cda!~i!!?L4vQokH<<#zs7ODr=Kgkcz;;yP-by;hV6%bAHxB+$ zJ4nS0^RzDO5&|*J;ki~J>C7{Fiq5e5T&w6}@)~l$%{;;>Gyt89x{)(Xk=%=h7!o?B zcuda*>Dl!hwo{jgLbo+%=E8jl<<-bmx$#D88#`kVgd@=Y>#aS6>{|{2fv|fzQVm_f zw=%julV_UV@H8pI+06cYZQmw=pv=dXhQ(W@U(pdT=?K_G+a7xzWa#OGQgCjXFAH;Ey$-zseYt1)*Yn zwpyJ2(8y~hdSowdd3so!bT<)Z(yzh;+FSt1Vl}=-q3Ia*>d0pvjKAg7;p2G};att@ z9iJu<#{3YA$uM8s;1#QzkY_b{1?z!_}93(n!@aS?0IFC@%A(hWIdY@7QxP+y}5+q~O?28%)x1Vi#EI6d4?v+@*U9|bWVm|ce zo)A5$bs2+Hj%f8TioCE_V*I-*g_b}n6ve~F3!3?|Fvd(0fzkJyP_C37$haLrL5hhC%GRR z-anq-fNlL)1USDr8dj3U#HhDlu_07nIus;q)^?*$+}?s$@0ppBHtSPLVlI<2&V7<; zlK{c7$Fyd$j6m;mmgF~^m^ul!#(KF3BkB|h_d)kdyC@5Qg2RdzGsKUHlR~4pBYwV| zGkt$}mcRKy_tlRxRy=(6UbC;t0~b*N&&>SifI-SO%`rDr?F`h&fd${V?DC2%1p*v@ zCb4h!Yq75^nSA@cJeW!8EE~KGBa>~>GAFc>=zgGi2}U`LA1|ru5C^$$YKR*B$#kJ{^}Gc+pjJLy4^k^hY^-C_uNs%3cwQ!PGdEn$qk7Lp@`7;hRA9 zY{r6YccverIW$RaG)3=nWM8M3J9LCrNBr8NL-$r>KH}uEJ!z~8PgrnC)c1O>{gAQi zz`IO;wIg<;+k$N4VoR&yc+nRG83n#6oMQZ$5=9#e3O}Z4HN;?%6s)GWH=IDqTzdf& zb1;kkElAK7DIWB3$Wni}Z|jJZQ|1}ox}O;=pmP+7Az%Y+xl5W*wqIO~{yrOzzs|-0 zcw*pRXTw-;%MUo4(%H*{zt4tnJ-|--|L<&={y7_kO&LJj>PG`j{K5h*3J?NHy}3sG z%V~GMe;>T0sJeOi)z+%L)~esB^?GZZ_Xv2zuMoHw(;Ymc^!3bYipQE;1Cx%FXXD4m ztV`Z6T!RLI30+Egzo#(*GGnWnVf`x=n-ptqsG$b7u&<-qwjGvj9ATsUv5aGk$p_VT z{VO5zYK)+bBnT5{2TIgMSu+*nr4BOIe2C8w)R*ZNK){+byw0v6{7h|oUyMYF)Ad#$J z`#Tr%3k~nxu!1!OrDs>Y$=OoMshj6;uV|e1S>PJC^{t%8VVw}0EO%*tkS`0LBZ_kY zvfJt*AN~;ax#*&bkKRfk<6bM}Or`5S#xMEBu@)*%b0d`wl{=Pla2Zo9j44-L>E-gE z%!+C=ZpRIxQwlL*`%16S8+KHlxXd0;4wH&cWVj>ha06SEFyfSD5&MskqLR1TJ`cjo zT*Mn2sYPCyp{kW+tUZn1bMzu9MxhzCPa(Wx6VG?({TEinj%d1wRPN=ouU9HiZEVt^ zJ`u*E`o(e5pVdcf$=w_nKkW-Ghq!RnQ61*yiB`o>v51q78%-od5^+bXapH6IWC#ih`|hod5xv+?uMmMD2|Be zB<^%3%Qm(_pJM$#J;Ug85wc4l_Uj&k%Vt$8FVu|Xd>ro$q ziMv88)Yrz0Knu@4aKe86KDP!9)#KO%sic}rtgzP$B3O9P0Gnw_?t`cSW29FQ)ej}8 ze6Y&W^ZN3UuYyeKj=GA~dh!#D)+NOOdN=c^DU+~F;^DdSol>C1!n>DS>?;VA)}&J) z@%&N)iOO6}N?ao7h;w;q#Y4%=@8FRygDcB@gfVEMMvVdYYuw1=i!;jmPEul_0vhuu z0gS(c)AWEF(MiGk@-M2E?{+wPExlx4olF3&2OyyF^1-{X_q97LCBc&8i91G98z>tr zn@)mD{7Hmowv(_~M0w2=a~-S1xHeEHK26ofF2Ef$dqs>EHCS$(}i2)6M4d^Fu3Ccjkxu71(K?KnjLZ$FxU zU-@r!cT7our%6?TX&m+g;Ud7iKB9qlUz?}wTMh6I)~9-FT`8jmOGpKtEC*YmtQ zw_;zGf;xq5`wj`ILJD&d1nCiZD*JcbB*6riT=1u+y<44?Eg%6C_W`>KR_~hy4|6^w zuV_69vIF>QSJq~Hs(&2jNc-PNJs8m=R7g^~?>eZ93KU-)(n&FR5(pBf3NJTKZ|SQ_ z5F2ph#2eEQ-?6Dpz;9U_Wz=N5nbAx*LJSQu>Rbw>t!`ac!;3aHck^U9 zJ2)Jh2W(xHJ!OBhUHq*c5lg?$Tz;NyQb%=SPe7T=uPDin(1M&KA#XYJtq&8KQuF+w zIAn`hEcw1n$u#M#gNs6@4Ln3=-l$6cgakU<^cE?TF|cS|(scj>w<7e)Q36^<3}&0c z*wr!QN|K&ynz5&LXir%N5w|E|I|MwJ_M9|OgaV(d5h6UxxMw#3Ba?3?tUdM$I&N*n z%hzEap#x%2MeGTfG>}gCX~ha%wr`sD&H}jmeqjYvEC!aTL!uuu=>#+J+a#?>D}^p% z6ntmt0el8{f1VWCDj}_dn8s{Fq(}7zW4RP-l_^oaVeM~LHeHeV(qv=BLDdL#^O%;X z`IeT`-0pQ38q~-->XC!z%xr<&xxJQZD+V9!QxP+9iCoRA86ftS- zo;eRd#uw~)FOH&1bBB9Q7FLVOq?k=t&0;Qi4i*$uh^;gGa*i9ATG;E3Qr0@RL#gRRR|^d-J27a6fE!*o|?r zUsR&oUg(f3t&E;baq-S_@m8OmwRsliZSGUrz)N^~zFN&Qn}9bkUsR(&6v4h~$vN~( z(e#V|J`1MASrmSmgi&6gg^t!nr4kG~ksS(Bl1p}cstesQo_6AE$gtK*!TpX>CO_Kq ztNGeg&*{CKXQ_$IK9{6<&&F|!MJS!(+@(aJUiUMJ{9$D9J+I)G*nbRU@3T4U1*=ZB@P84D{=m7%k5exR;6@E=0(b4^9ZiWbE5GfTbCM{*Rrs@SITD;7#-1TCxUiQX$o zXSa>3=OS}fxy_15Z{{g%NcY>p>e`am3}vMgO>>b_apO5ZoDA5{ZP19E$C+nRv1zGF zm>!tt-D`+A%r1Ca97``OZTpPyl;?4rix3q_V1yhFc#iv*s`OqlH(jYK?mLOj$~p@n2-wXqW8@#A9;hUFLILM3k=Na%+N z#faGy<@;$7+r%xAg_|yrZZ~M>sA0)^hAP-yFih?+Hn$^2`!kUpk%ab~&s<$~9V@q2 z<=N+MCC43UkUpBCpsJbEu>0*tce`LolRQC>mk4=<{=WT8C-{kS- zkAEwbE;G85h{|1Jwxk_4xNE0)VG87S34s9`>10MRoRpWk?++T#a^6hl;CF*|s|%DD zYH4+BQe>DEyiMo;?yn<9!IpbBua${mPT8wUW8QmAX4>C09=a@5fy}p#8xHcS?qZi~ zin!CTlq=tBWXO1}_^!!9w<@|hm~Y0kTb1ynFh=^)p~<4j=hWpaZ(C~4x~#@d#KhTX z5kH9(zX|xuD@GPr8?QV}ZTwli4 z5^=RiivF=GG)xBWPpS8oT+p8Qwz~itw9Y$&ajf@z5wAdQ%bbWNS>M+`^U_c_>Gzf;pjH3++@wd2_Te)(0KV6_MLZA9QXR?*r9Z7f%{_$VAtZY4(^ zi|8Cts6>38IH%502Xx;@R3^n;@dDKbkqrBuzwx(>xqZwgn~NA}mYMPu+C%Oc<^})H zfy+t=m4@o4Rc>l)q;xV#k@ks+0Gt6g3?~p~9;WH@T23j!Mrkt?(M&V5IqTHCyJ^$M zWlxZPAiWuzM~j8^bT}10QalF=9=8$^cq)ki;DozNZquE6uWLu0C@XhQkHVJx9t|~C z_nPu*VW;J@=Mnn|tz`{zis4kXyUV*&_j7ldb6%|PNq1)%vBYA|Ut49d(QzDAn*5!W ztK5Kny^|C#Oj%u^&Ry_sMU+&;a8l3EoO9U9R8$V;AwS&AqV@%0Skw*o`!usC!|!p9 zbM18|w#274F)?s*j2#x;ZZV;=BB+n0K-_jD4L^!eGvSWyT)c^E;x%Ks`Du>s`HX%O zCd0V;hnB-O(xGR%lvN8gLbLeqV7D?ZAxJ`h)zhe)^tZQH3S~L{i-az zw1nl$gf=CoWgxp+>~K((_6tTBk;6v`0o{AupV*VAI72YDoj}nV*ijL#0$!Jfe`AH! zA1Ccg)M+(a1^k<}|64eye@1g8c9amR!OBf`!|+cyHRjA%y^XZKIa2mChs7Nh4NVB~Tju8W7w#MKr@(FQbYi{;eKJo{Fgs}Brgyi(s*_~?VbRiLZx@iH|a);116>keC98AUh~ z2CRWL3~&ayP*Qd+0D3gHhshXbMCL)zh7_3yDA6TNx~CteT9}uqMhDF2zm!?5#m*t^ zJ*~J>cg+CZ_+n!i%7Mf_$ZbeIhLV6GC=8(h-&~sryVvwcNPy=Xgt5Zvu&5Ezhe#2= zc*I>0`(n4_#@;cs^YfS8dnAmeiGMqElg62ZnTg>gt+c$ej#AH3W zyW8$QQ+@+fcf7VNyK6Rf8Q4^0+S~3YanV+KR19&_@+<%DySNmre0nNPMiw4%iiDr& z{1WT;xsHla&I=|cri4YCM~bj!a8`Yex(YD)wBG}6ukV2q@}_sbU7LY6^fEz2gX57s zs*Vb_!Mze=)bSbw;62p=XZcRbT1g<5AXEnSgzuG%Bh4Ld-J<%w02k~US&5OAVwhcE zO55)}Nh)H^n*`8xC#7h31(=^qa6Mt(cP%a!LT}<*CnZ7OL9{xsdsfa}(L6cxcp!E7 z>5lI32VPd!lx7t{Y$hPB3paRw;jQa>+!mQ5+ZZw<|8o4@mk#{o)B;@Z>{sgP&Ff1t zYWUqnr(<;~9bQ~?a6XJoRFlcW9XWG)^6U6U6+T3u5!zNfF4}GVW~5C{aW_O-zB?2vCT^m@`TkH-Z$6M z0B-ZKt}xXzMvAV(&tfJO{JLm-RyiJ>zN-)Vpc{gM0~W|QGU8xa11s1A)h(oat56q3 z+{@+uWIu9!1EYHuRC%bO{u$5VAOB9}u$r)mZd*cyLN1hg1T|@%v&EHQC7?-l@q_FZ z9&`5`Yp>9F&h%dOalnlsze8t-8|!rTX#}_C2NyeQ(co_RcFATj5dZFE{m0t(UiVcC zLC4XhA+YT;Bic)C(Do(41|v}Wxvj}io;y|3j05|hd{BY04BTbo6IX)~^5Ir6H_anT zrk0ha4ifpQvF4o&nntwtDJv+Jy|AGZUY-Pcj%yfw%Y@zAKwPE-O#;Vyx}GWn8be+y zBjQK=%6eK@kTnR1JiK7k#rkOcwzVsd=~z)T$bBUIu_?%p1kl_f;%2|=vr?-n{4Brp zXdk={7Kf6ms4Ak1z+12UI1%R&-;XUO)>t{OOmtQow>o?%bIH-5Mdr=aDsrrE&Y3dLR)}NYD~~XfU+cG7 zO+(y!A=%pOX>FygA@SB{p*~iar(Yo4Ir~%qXYic#{-{Z+*@JS z*}%nF1#|Sx$|p5Z^vpNhg#4ynme2rZdqWaM^U#_jY0}2t_N*s#+&r9|3{h*H64FrkIXZ!zlZUWk@mcc8hwRC z&BCJxM8~7=L+a5Nnq-%tlr$N8@cipEN|3(=)tJJHl8K~fVOTk9kZ#I0OeY^XpTlRH@Qtt}|&oO(06ApN^fZ)(5Rv+{Z27g9OE=SgqCYZI<@C>&Om%8>DOqs#?27yjGz@I{WVu4Asb6BK=SIB#U-{L!Cf-&UF~tTB z?uhunF0dKuxNyV4kJ~U|MG)0bRGJAtQ$u0W>kN0jPnWP@5p3GG10bH)S9Ew&HSvFa zJrkDGeS9EZdOS}1!aDo;J~gnp`aIjs$l~qX-4^Pp)`t<}6?nc`kZ-OE{`?;*7 zihk#Xu(qKD;fdLUL+Tb%gLX`rp5mCAK7%6qp!0QA2)?SPS?m&}X;%RzX`2>K@`W7HNbI@9arlUi-cvb@4G z@EC8?8x@jIG6U!+b{jPC$Y||mFekWgjc*dy4Yt>=GBg99pGeUbk3L3csR@n#X^I&P zlS1E%DShS|zk(hmv8rrnrx}>84Wfo%I+eIDgy@H+aq^aH;J1-kQdfjFwt!dIo#3S) zoYK zkMDSkL*xZU9svZq?O2A;o3aBc*0gyZ5#e&QyPlfD>>2~FnT_G+%|`LFj2#2f*Byt{ zL^XJ$@=a+9cF7_Pw_TK6Pp-=3k;dth5?S65xY9)nH66HyVf9n`D4Z_B3BpSK7JEGNr> zKlI0{P@Nw9YZ!917{7jQ(fX`t{b5xjFX(3zSc#p%p*(i^(^VVA!##1 z(Wr^)B-w3BS2L^jnL6uTh%baKV*L3*a;Dkeo1cAQsc17PE9<4s_gtcBjo<#flKw&R zWDof%5!@mXvWK9%#>aTau zb31HOE!Avzkzkh7=dzhMMLoE4LLCi>XeC!iZoZuuMc+Q$UIWuO3+kTbiRvb`U;@hXVFU75PC*v}8Y!6G&?yuL!Yl>zWIUqT4BuFh7Jo=3K*+@M^YW`V35xKDGhBZMy=JQO zPH4N^MV8dTkC%zFl(AKNMA)NU3c>4vo7F&y-$r^Oeq61tBN(_ke~M9bc!O<=XX#sA zfaXI8xcrq%NY*MZj@1*a&UySyS@L#5gr7$1E9SvPgQqs)3}syWIUP>lu!~Z|bJe&z z2DcEbMW8>}Ja2GpOqVKNs4dfL)RqX}=(h3{-je{w7Jv!XEr2C!-(vxm;8Rkbi& zTwR!?C|n5jjnRuFAvA2UrsNQ?!L2LqEj^sKU=m$OmZzR5V2ik)4MNdJ-Ys#u);CjH z*ZX<@m$D5#7C|*m7TSG2urz z@A#8Lrfp0c3IUxo@VhT6rRW{KRptQuoE;F_@$D+{B=$$FbEovq977Uc;g8ENKrB#sMxuT>ZBPv1GCvfWD5@O{(kkZh=%d zagUl^KlCh=pMasS@RPx9gf~D*Qmev;T^h*FKYh+}!LL=usz`u7;Qo}%j26BFodafY zHgf&D2SEQ>GL!!^oaKLe_!FS0VS~tr&fQypyaZWLuWeCnNt2{5cv^u^SuZ7eg-GDJ z+0(ENSvy{n{FLP}C1`N!$J>Qx#8n%O3N)Ma+`;}jp2BpPw!G=>^#T0b$I3^r(G0Kk z`LS?%#z|mBp3Wctt9(7tZeENH)(!rr^W~6bOaIDGvl2Oq#4zCN>0EeV;F#MU_(C?7 zWw%DNIv61DK{ixX@x`{EUPWYSl}4ld3`~7GbMV4~_@-=$uVOzGQ#jwIP?B*pDCh^2 zF=KUH{ugEM7^KO&to=5or>$w5)3$9++qU(zt!dk~ZQHhO+xF@IT5Iof&WHV?A}T7Q zzEnlUeP={gUU~g+Byf?zW0{vebw>ex%5SpL9Dgz6eAyb`-F3V?LzsMV*Wl!bRH_m@d8F9 z?6JtauRF=U-~GsHe{@R?#mA_jiD{=B#?&`1TM7lEo*sOU?kfXP3<)6!%XlbDZR^zP z1KUo~&rZ=H6E+ku0cGbrXQC|7dV=_d!^(Tp@gT4JWe>EuJBYZVHwZE=M1f6c5K9%H zX3g9~hDeR)sDkCj;&)P2btW9J231nTa&;rkV`n9Ypmd+B4)7O?oPG2hBr=m4xk?30 z85NB)7pdukjYf4=&Sq9!@z!~Or}V-W19D$gt&#FkmZq{%&$OgXLD}p#{_FT~$OR3a zEq`<98bW)#-OVSpT#(;{t|C3?vd-32RvWLYF&^BNy7y)j!*Y07gY8MI% zE9;N|&y;4j936VqirOuA{vM6(7Ov97wY!GJK!zIAbZ?@vEIei+CmvFK=%{b_yWK&{U`IUnarvrD3Hu*h{8hx}6f9plt zjtQ_FS~A8c0(z{x!WazrbXibthc!S3In8tjMo%Hx+TBk1P5 zdK%1R0Vizwb)?|~Xd(|vxV$erX(@emls4Mv($-nnCez;Fn~Pb0PzyngHVa*p0Z3vw z{ltRWz>VK01dH*zwcRdr-0@D!4>&Ac7Z;3%Sd|W&PBM?!T}D@q!O5^uMVGho#hyQ; zyKH-jtiL)g)<~s~pVMRHl4ft3IGqsK){S+>oQ9y6<)cO=R_|NA)>dqld@L0j~Z?SKevP;r(g+~nr2hX9|?8=sy zRt8lP3p!UL*~RzZ{Y><*Wr|z5Z#yB)%4bmc5NFZIbw-4 zmDWiuhYUe}R&>WQ7ILmVV_#iK1>@`VsUI;TVlvpY4%mGXgJ52dv464}#iRJ2%8SU^ zpg;eu2Kp7I+7tG@pgI5V7xaHLY8}dEDo85mUI6^?5WoIr1#DQOAIy1#w*H}9UuhNM%T?w0%vs07Uc$4!?xTP zPVmwpk2aMl>Y}C5j1QHWiqyziR<>4hq27Zm)a>L}wMAZ() za$tx)96H+BGf^&Cc_#NWs#SZ-r0#dFoKo#~Kjvo@z@X9PLxTBa?O~kd`H0z^Ay{eY zn#6V|eG{Bu*G`F@;p49!zI78P9D&S>+(=KQUcJM|%IZ;$gB&eXzl-nd$2c7^>JnsD zc&3;utb|l_TE+Ka=a#J{icNb$S7f{E)ScIL@$bMX!-6->YcX9d02L5*Rve{%+@2bg zWmXyin>b-K3qv{crcq6TjiMnjWDpG^YvjDM-i4vOobF6fY(Xssv0W(^fszo zeip@-sQM4g_Wjhxj%u6nMY*F8Dl}EFUy@k{7O!JszTHkoxuQo3<4~-DUF&0d*uH4n<TTg1|N+yBkpy zPEgOi4j)J2 z7ym{on3{%*hYu&(^TS;`N)O|b#RqI*7f(4R03{GI?Lhd()X4FA+rN94ll4-sYQv=v zO792%No(@G`id=?15{k>{2U^-d<|q;pW$IjAO{y#&m(51AwT=|jCqOav7fpVab8V@ zMV|UN#L$Fnw>rxEt*ZWtu5lWpi!J}3?+8`&JjQ-ZqoJC?#&aPm3n7}rX zNF383)dV$LyJy3PlStA;U-dnAzl9F{?vR>zzoz{BzbMT{CWa5IW+KR_n zTxDV=`mCKWBD0=a>zuXuOZ((rATXuXs;kIVSuFwag>T%VGiGK_r$+zlkUSANQf##( z;UCq!c7J|r@Qij8ev$4hjo{IsFfhb~Dd;Dj9j?FbEyiVck7*sW-e-CkiT3aDWpG{r z?J_qOsxNs(w-`el*7m$SN5!uossRhPlQ}3>#W(Ry@*MaDdlyU7wl$@X0y??H)Fv0d zuXmpXRu2s#AXu@=wqG$a4w_??Y-`{ZN;O>#*vl1BjPS-^#o{cPg^9dl=QzA7BwVsT zpxmCyKXAa8w0i_uW0uv&MzYg?(CS_N&VLrw=~KBrmLglaLDyMYJ(~t;_6_%DQFlY7 z%EZBI{Tm2f`~r5k)1VUbW)&f%;YZ6}$v2_HHt6sG{@Ft{PYyvQW^?jk8=D;sV*zJK z%f*+Xm;aKmGXUuY?6fD&mQF29##75AV0J>?|XQYa0 z^Otp3_|9|c78J9?VZ5AWhi+>x$t&y3!7%4JXWh>=48l{3W4&TY0^kHAo}j zHzuQ3Kq6C`8OX&h3g|bOyX(S@KZ5KYmU=U1aS{b!mS9>*9#QjQnE)y8`Z;7TANcM8C*P7Z`Di=sj4+;tW^&WG~BuTG% zp{F{@_*61{3Gp?}d}TLOFT6(9b~z_4(Z|$RFjI+Xj7|dT9SC`;_DK&)IkS>?whD99 zX5Pptz42{Do4|zp)9R(uU-8?*5zdY%F8i&&-%LfTB!nRL&s+rKhln3R=Bb1^jn*uE zRDhYOsv-IlJT;+n4t6C%k7#Q8yry(OanTzh2JT^4+KxP`fUSv2y*e@XN3p9>4l+wH z@eDo=WsyVpVg8<#W(?-mOicF+dH4=RpCtu%K2%fh;+HZwj`;W} zn>B$l=##cH>nZq%lW&;#gSO#y54$hJZKR%0!I zhI0cP=bCil048xt7nRVjbiL2;&*^GGoc1P-QUU`guPtJPK<=-1p=^anxpmwYJg4PBt8 zhj77jDo@d4HVn>IcIuD5ru;&E9Jci<7hk)sgVg$gu|y&#&WY6P(spBLc6XZJ##x;U zw=EWuKf*8VqgVrIxl-ji_St&ZYF*o?kLkUJO4a~r^FJ%^Nfm54wY4lYpt4BkxLS3J8H&$37+BPnNg)-*}kbYi`d(Bo;Nj9&3td z=`%8r3@4-ap0QHF-nucwtNa?-e{O=;2s(a3%o~eTpEc;L~%PXwaB{| zqy%A9V%R}!HF443B3}NQOe91#J7V_b@LJY_`f)m_daxuZ?9=jEC@}Ru;2Z8&8}fhF z;GaK_I!RB&y=tXKmuO!;@|`a^&ob@5ot)Mwy>~K*rVwT;m?{6!cyqo4o}~^ zSm0yprluOBhMq@UvYcs*_g9+Q7~%hdNwf8~XKHP$>&qrAMEWVhJlv;fy2BW;^nR8! zsP6;#Diq7kBU^y9{w4jPce;*aBLI8ix496UI&A@$Kn;szqdYU zg5>}*S1p-^!4zZWU$&PVp4c$P%FL>7TrdIW1idrmLiqjG$k8KbE+NiHINQ00^`NY# zu>lf)<>y-|5$b~N^)&PfYq)z%Nze6nlFoxg`i$}Q`9;WLt20A;XYzS6adI-GMsCD0 z-l@}?z<;%!CYcda>!L#>rd8xT@+}jlasb6d6hn6OOsevEn8Zxj5m-cssB;?7GsYIn z5H8U+;W5GMXpsH-lRU=AHi1W2go06@XvIlyXq$4_`+E^X+<$fA)o6x>u^F;Bm5dgk z5B&1#4qbUQ*!B3ROJ_=-vA(635hB~%Nr1pY)WbI}pGzI@u-yFloI{2TpN3gSj7*Ot z;n$OlA=>})MzrVXsembpgppArD}5fe4$@Lit>GKV9P_iI z-WQWQ|CotZiolybGxd6wmbQkblp-xC78Fg{>T%ZGoF+%WT#uus);n9}0gocDK{d_o zrqNO4{p9yiR?0x1ld{qm0d0o#neZ2EAGDbPM#Yq1ByBXj;ls#Bt%ZHIrzqWDY%Ejg zdXijv;t^_9JRh50`ay>Tg=Zjk4?XVyJ4C?wB^??7XPJftn2@?1STAbCs=x}DBW!YT zpXaY;i2{Ryt5E{Z1tkX&N7LkwOLpXIy-m))Xnu%@R!9_YIZEvIDM`MDp*O4TObOD+ zM_2loX}4kwVJ{}Hpgnw|y)bZ>XzuFT97#^lXLO3zw0Rpm`l~wye7|N6S^ygyEs&qvjqyo_@+XX&uP2B$eh|VQISs z560guP%69$qlpwSUU|RV2#X}CNu?1BbSHiFYyw^ zFE{WYz&JvhT~^o{n20W?ClDnW5w?&WRtn=nZG3(%nH|EyJ0$2305{#1?OI8oBeD$^)=04*!YGf}-gET_ zSC15OT<(equeu7i{GoeonrtdsZ()G^JEcWIT0umag&kvcZ<{S}$gSCT$SA?ZiMZJT zr1sbI4|ufOABE&E2C3R1K9QMI&_8%Ny;5;1bT)_LZrs$&=~GQ#tYL8 zrYDj~`*jY=mErqhOpF99_J+z%ETfur0{R3ee(3hrWTu4nqayJ?jr9=s7q#6hRt5K3 ze*SJwNUTsOaS>&USG97ohV$o~_~Hs+tHl|5n30`6R}U*sje@Yey@kmn4|7o#*;?~w zZec{w##~z=mnf+zTR2DfLg&I-WpQ%s4mY;Z*WCrwx!-8ZIp~YxBUA3Su-67;UV6Y! z?Znl%?d>4I?5p}D&@f3!RZ;>7Xk$^DR7*J-YZ+_C#)^*b2Z{)})t$^BiPfE%2lZ!? zd&X*+MpaqHxYxTQ>~wbyt)2u4hya&0zV?y_K)@~E{))*hLoHSD4)RP-sxB!xPQOkk z?lFQ3V*0mc$D_wEIN%_29`_L~?8zb{W71l{wBV~Sw1+KH4q*`fwzS0GoT&X43?#yO`?&GQlR{Ua4regw)Oft&maT9=ohUr%E8O@xO!SIr`bx!IrCPr# zJTc){*2%$nW$8t0ZwBcA0WB5Jp204yTgfPEnekgT)&8*X=@@YAlf2SXp`U|KWjNYs z3nMw|Qp976j=%E+pA{YT=UKCaZ=4%z?rqTVODaoD(Z~vcyvxwdI1?#(ifOdPU*R;& zU44`GY1yLH?qPBW=v&$=jLc;(KPkT6R61%1kyC%C0 zsD51h%>oZ5$x7%<4RVNdh-~iK*wUPONr*L{{hpm=ngP7^bc6`#^u1ELB7%|zR=Wq1 zw@~9&RN*SnS?Kh(MsgrCXOKgNmj?aTXj9*NMoF6h?G;i0;DECtt;**TgE^`#tR(%4 ze-AB`wb7ZlHKW1*3=jo4(C(Z9Eq$9IIA=mKgQE2Y>Ag9O!(E0N=q4+xG!1Ta{-KXy zG%AL+*cyDgBLf)}B)ewnnIQx)@`zhoVdd?Of=U|FJ(>&#p!F}a8~^Cz?UDIYR*gqt z;%=d4LWa#G_lX@X5wTZpE|bLNiR%>#Pe@pZa-)YVr@sJ!%C`{>khbiUeI)Z1VdKsa zKC$DS$+}g`@qlyxtPja~?iXY7`6J(J?S|-$YMUBN;@*TdQwQ>3Ki#F226BK|QUUwZ zd$Xl7T?Lrk*SUpKte3($!a~t0k%bxJNCp%PxW2*4GV4*Kd^!ClrZtPyoJ$7AFKo1bF z{pC{5y-(L!`E=V?z$bD#t zs(hF7{5EeNiYl-z5|LU>7S+t}$FEWEyK9|i*cQIpNRj4|6qQ*OTy~NgC^JItRTu}q zFEHT-OJI9Qor8m~ohI&gYcJ8QZHd)mi26&obEc0#!hRL|!|Z*yf>4w)uIFj<;DDB~ z0Z1DqABuaRrDUpL(CZ$oa4)(rZ5W9tU2bfDiI(YP3iY+`-4;#2)2qx%sFzaJfAp1x!-rmsQj)WhwDMu) zS;#Ow7jfW24D;m6FLMzk>*o_mbs`1R?r6t*;n+_J8gEgq3w8^^@ukZ6LCu;TSmwX; zGtlBh3MVQB6BS!Gqv3B%L=js4REV(Wr^X=vk|R%!12^+iTriIiIG~fS5JV4HrJq@p zC0xHyI&*X_U>TNj&GvsRlL|iNZ^k%<*VVJv`A|xY>sZJ!b`rGmi`~pdnuJZI zoBo5%V(gemy15JnQM^3x1ducbu3#x|bELD3wnt$a{rJ9z7n2 zifIfV;zG3XX&nO}3ak2ukYQS~Crn&9!?Fd8>k)JH4oB)Yih)lkAguIT-oPsgqSc210&#|6ItJ>}22xVfc$ zP7-*FPTJb_9-SjvPGLeTqoJtMJTN5i%l4M!rn#39LqTQQGp0g@2%2QA(4l`xIc#~C zHWU0sX`0hAU`-M78(xHZ{=f_|kRuxk zLcL+@(0bvT+6RaU;sCm#M`51QXr28WD0Cv;NkV0rJ+&F8?gY4IC>uvq%{Z_n;~qz~ zYX@*mc$YxXOh}hRP#(x@OK>jmYfW%2_-hXij49j~dLeTUf^A_q7y9kraL>ryMI74& zf0Nj^f7*~09?S>Fm;}2Z5AJUviHcjXi&4T)mujm!1}|>kK{Wh&n3)7co|O%P9bj_E zgmtty_G57f39PKoDPwlfFD^rpQtxtt z&J5u&tcNP88zO0MqJeG%c3!|)fpJ4(?S#NQZ>T5Y1j8-ywqI;JuRaB;%mQxaC=*%G zd?ldU*YW|IM^qjCJ{FF})eZMjBK3p)q5VBKmfp0+YsGj&%$1nAR8C95J-G9D(mgjI zcGpU^{bBCtgjrTqUVBD9G$HZUmD&uLJ9vrEj02xwmIqXLLikhBfj8@Mw1}mxx zHe*PIzOg@Ih&5<(?+l%DA!5imaB@!rUE^?Y?@jRNMl1Z|ua~L2OgcV*wwRqyXN8wf z6FJ{Qg^$;XY6$Q5-tN$<2CwbGdxOEw`<&z?ul>RM#CLcnIoV}%@SgD z;hE$lKZDg|SWUfu^)p$-hP-|BXEYAf5N9)5Q8U_{^+^=@WtX_!SH&UE0`;K4O1S7z zcnz;!`D}zJRhp=^a^L~ zK7P=;q=b98VI_T$^HD=)^a6LWAlIw3H?CvrmdU+q;EbW255Y!@Vo^tEA7$HJRBC0H zhsP`g(;E+#bJV^u{;u7xeOv7ZC5Xr6bIZ#KdKG{8QN-}o-fuG(A+JyNXYEja%0bU; zu2EQx!LwqWn{uN4A-SG4CMaMIm5#6h#b_wU!*H=JsEx)PRgN^4S!L1uD={fo@TDT6 zjH0!eNdA!f7JxQ;y4BbPdxst7;NhHxGUVz0jRQ+m<0qHye!{vT)(dhQ17%4idvBTp zb;<&W}4u$#a$XF=f#G~S(?e6atWNtR^pR#iIVbiflr1} zxJUMUCM30#1<&`KqvHu5mWN-R(wNP}O=tdT>21sFUQy@xFFR1xtt|zQzgL&XoaY~J zv@G0S43^J%yhtfq^vqMvS!*>VoAepbvzr}?O@T82QN8-QWGWdUb_hi3&^Dj8- z5$(sYu3(Oi6B*F^*$xwuP8%_?7_H8gMC%-?Fb$#G8bNG-4Vb za3<%rM|Ir_1uES!{E63lPn|2RG7Ho(GNRvq%Zc%y#abw)Q#ZeW%41Q|TQ5i%)s{K- zhkWCnG0&CPYf5;2(AjZkow#V16R6u>2qk~+>`d>1OY^kIQe|2c46*x^hT>@p@;!L( zKyI%MVoAJ%m%kS0u5VBGj`yW>Gj(GBA_jv$Bk+co`jtdI(Kkfsno25Dw_hTiNinDW zUNRRp6@NFS)uAeyCtolHQuXIc<>fVtjai11SqVhVvmQ^&hItf^w=swUYKJpiz8-4} zZIaet03~z3C=~Jq^X>$kK;)saq zoV-OI+9Fh|oE%#(Tfeu=8kpH34m$XbR&X~>u7HIzaT&VgV54YJ5WAR;eZy-Vq5_d= z{U+ia;vJ7y+?P+yfnw#)0XFXa-l0jyv{X`l)`7@ zWai=0g<0myr&OKF!BYugie(ms=WQ}c8@hrj!?59)LL9Y})T3n6$fl2DbO(KKXy+*p zvt71)ix8~64JZ)6&d0(&&B&heREhNOLcgUlC3bnJVnCb{m}*2!7g4=LnU#|pj;oMV z++eAtV^t~Gl-oj)wA-WjMOwf}3R{4nx!xg5K57w?s?=)99{H6O1*u?0DQmU| z7rMF6LrM*3179EWvg0CQS`!;go$7>&#B5+nm5Lr?)ADJiRnv!(yy2K_p82st5qDAQ ztD-~}hnBUl`JR3KSM_Rmrh?UkQ*TS8K<*!EVUT!lC8q^T6moQ$xKNDPrgraGqVG$K z#Aae_yPt;D$P!_^k%cBKMn@@1Rzu3I^C&dcQYsIM-SKo8;eqCI(c^uIw8WIQqgU3e zZdNOmMpJWMvPQ*ZqoYOzk1m>hSwrF<3$;{me}?uy=BqvKmQu7$%vSGF%mKo6j^}pA z%f&QJj+Tll%N#7mr!MRc?Sut;FJCw~wByq^qw$d{EoUyj9oi|rN8CJGD)uZ?32Vg~ z7Yx%IxTwZS6kfBcG_^F6sKi3ui|d29I!;CIQxzgh(;5v23^(*1Tjz6O?Jp6%3+l`Dlf|X!-Vg(r5TzfjN+8B*NDdEXGW6L|6xEqu+ z?zGO=-HJZ0v|yFl$ZxXHh@@^$>3GRmeF@jEPl>U|U& z+G)ey8ZvMoj`*qQ!>#d&6I9XrnyKrJHcOnUsamd$JW=iE0jJdyg1!~WdS;3QwZT}O zW!<;~AQT92#_SyQT~Kt)?LHN9M1O3sPx5! zT>W-TtRSK9vmgVgjYMGZ5#p9u>6QOkZD~vO5>rrU62g;MoAld7 zwUHokyuTK*Zr?3&GSvw7Y)`}!P%@SFFp<_tG&i*Uimj1Fa+*fwNiu9#SUzQTZ|m2o zJquncEHhbQZ_%*^_%EaNiKnsW-jE{>t_zi}Gadm#2RfJlum?Qm5;z zis&m(#KPDwvoGj>q=nXrx8R}QN?Rz2|5YOk;s4jj`cEHA^+g3s&B?2(R6B%}m|t8B zA9V#x9}#39#Go$akW7D`P-%#^XP?R)5TMAEp{B-Y_^gkxoH1fH98 zg#88dR`g(BIiVU%WFsRk-QPa@9^kpvvDI&LaBI3OgJ@i7-s{u zKuk!}o6L>U-(UadfQMg_oWjUcXdaYd;U^Hd3^u;i5%36k!Hvda#>oGWEoU85StF3ppPRxM6y=HbHK~?R4^R2*c$;VYN!oFx@QRH_*As z7^Ob##`C&*KenxHro%|^Bcl*Vp={~&!}&rP;Hy8&jV4Do6s*I$o-{n2)H|fA<1N@03UB_r5pB$B zsc(kM&P{2ynJPgjlBQecRUR%9# z)Xq+kFsCzvpJi4$zBI_TsZ?~VCkersQWUw}mMzcv9x&>{+RwQsXb{uclBBJk*?W?RNLS3_=2sG?CYR0;Kg<04Cd)DR2fJY*RsMh4hyUE@we9zT7uQb3-k*;`UbhYXdeF zYbebZ2SKFS6SyuTpT-(LjT`g-{CT6+hKUlBJ_N-fS{?zUIF^f6tBzG!ABJ{_WRR}k zT2TnKxK^QR6`v6`+&$CGXVmT0d$Uwj1+`^>UvOFXm7Wi!55M0Q53X1ls;c$9{}DJp zjmevPIc_bHITXBoQPh2P*o$Q~ylI8Wqyo7@aOpjr(Oz1e2X^XDBppnjG70ypgJq<* zuTPhfdOZrar5IHurQ%M5kunTh`4E(g#0qH}qoQ|iyt3aftggU-_i(34$yBw!ob2FO z*S>85sT(PFpId}%n?eq;7u2M6HpyO1Fdom!gMtP>f;$&%^$Xy{zJ9KZ+WGl&zwYhiW9+qvt?pAeIB8ke z9yer`egb~XW^cWPJ5FlT?_q4UTgK+e!MhPX12CRPSkwrY;AYptV!n@4$h0W(%tTTI zQdJxE9Eqg12x#)7sfz7pYFt{_^PqQkV!KTG6{0OrteoYwU5aY@D}K~#-=GuxGpDx>weS2w;=|6aNDIFjr=VaW~+JvM4jmt)*nK{t&DR>zwRdl+>xL#5Leio%4H)B^Q1*!yiFk_2gsUN;{OYG#sdQ5&{UBO<=sGPh{7}-c)-$6ImvG!>0G0C#?g{#sw~{&KN$zk46C7kEY*8bIB1V!?$J z`Ph`VHnmpjA>Y&Nted1;5~01+y?J&ZPG)$lQe8hCVDG61bjwXsSSiYfm$A@pz}dyq zxG6|BA53}#Pun9MfA&C2k&%2ks%W(<70ML%;zxeQ=f;+-$9Rz-@KOqnp*G{C;M~Ea zKi||{k1M7?w{0!aX&qjU;K>Q~OjsjeS2L)!80V6?{_!B&!9c}GGOfTGHknSkfmBUn z94Hh15T%57+%~NKdTdkI=_#?rG!sAE^L`nUDwXnfn@N~df=Rg3!xYE;uAqK2@#7}t4S6IHumnESg^!qyt|Dfq)NM$_pG z3iPj1K3Kx5ei6Ql19ydo`kiS9J(Q8pO0hc?3a23-x9BY~FCZe(hd+~BUtN+1X{0t? zu5?FyO;jI(bPGkRDZf8Bzj*5qmL^jTSamXwiK9Lox+%UY~yve=7iW%V?hC(^~5Oo%&=uR=AnZYC%DPHv9l#i)eO}cdl z*G>mKCghJW+Zy);3|LQ!=ffJ_OK{~Rtnbfhs`&#zC-T7h_I`=fKX%S-QPCd+hOgYS zlKI(n7%V%4jcPtJ%Ti4*)RIm3nSrY}stX0cKC!{SJ|wsayLa`_tS37bDvr-nqI9T+ z8Dd=z=TTbL!B8q=;P#|WY2Ua#VYzqgUez2};~0}>OjR7Gyq73fb46|*-zb)Kgco0B z7sg4AjUW|+vW1{v-ErS1zyTS@@-_~yO;ZHO)0@bFSIP0FOX^;#j&rL5yHXZ{ayMAM zRjU+A6!=!6P`@#bePRMV8O7e}NQ9>3`wCMC6uMT|ebbaw$_9Owe9_&b7;w_n z;3%TsY(MSzH_%yhe3hw=Ny?0CwEIdtfO(6GRxB5De_H1*TD%Alm!jP3E0-n1ZK}fY z_`ppvouhiYo%hAEu&+>IT%Q#^?tQV81ke?Kq$ro2ppX@-(wV{CW4KwEeqe+Hwh)d| zaN#Y49b#njiR|I2TbsJyWdlXo z1o{nMKfEm}6)l+u>g8PX^&c-Ts~F%MJI`EU?0Vx7o&2mgja@aL>PiI~-jJ)ZzApqL z@fumSO`16Q9Hn~1K8~7+IxoigfUNfYdDaK%8zCN?Sj&N}cGa02Xd$Rs)j?&%yGXHG z0{8KA;cD3*Z|y!J0m@DnEBU9WYgoP z%xdw1p53RcDNX7OeiP$sNs<_b<}ayPE{XBHeR+)fJxsLJO^hF%#n#fK_!cjL*y6q zt0P;fm%rtER17{kjq5#YA?V}-LeuqTh*#e=+%IpW4+N^j*Da8et_ZIpf(5b?IRaa* zccgo89nCp&){Yk{A;Gen6Z`w1>rOcy!H1(^SvV8JJdZIkI`Kzu!Hc)RGu{u1B`1mE zmk~QF@sGT*UJtp965}S-?#9+K7d&?bga49x2mU16TT2KFNjslR zOLAqTeS7%$gxrQ{^FQR0*13Jmm^Vlv=RPSgSh?l%UsY@mbt1ga-}wIPo9<4Afax7S zbf-$}yZ!L00zcyzR*m#w;v!Avyenjupo0Jf9waDGVqg{w>Jmo&Ha=LX>2)5h)$)Iz}n z<81e<3zgH%HpM$ijxi&&sk#y3S~w2|bmP7b(+clDKQ7EtMVZLH?aqt7&;R**6aNq2 zTLxexXl?0e_5ZREziDQQ2;56s%JHYoKvu>fc6mkRfO)_(Kp1RE3=-4yy{(R*8oA#`}E#J1& z;M*JMkT%=2u@Slyzfwx6!d+B%WgPd-X^$$uD)%*LY5V4w5v@SP21BJ|?WPE6eskKZ zvCCxdI*dhENdDopU!a^aHDJGiTMXscrjmhvveuXVotfgpS1Z|U(b3*pI=DTy3owJSabevCkX=dGxB<64uS;D%%@9ewg@3a-OYobHU@Ibp-bkB>;K<+s?J@@_zVoQo(v zz4pXs7SQVs5=Zd3#rzI_+glyl-l9N|P(NeKN^X+^s4+M|L=|REA2UO~L3D+J z)2LO$8XxT+YBrzVMw)c%vs>!CP>tN(vE*>AbT&q3FX1lhXc}Dz$>e%AOR?K_Y~x$( zBHgePY{V`jkZCFfw=t^z0ni(Y=~z%^qCfNNBkq(%pv5oeP;RSmw!kz3eUha|5DfII zoYjLLZKPb{eB+$mQdIG$=r$;)4qJ}z>-+X%cx*SGxMfcx4h)N~Tx+XDaquV|S~(tM zMJYo`{pOe@bVgP<4HmoObP-&w{$VY7p>1hrG92+dwq>}7)INem6hwxEs{!_bK3(0e zFe8i*m%ParA(x?iNaNu*e1kah>N!^!$KC5i!iDk}G4Zv=pFE;W&TFx28)&kV9G}A3 zyEX6<{%Ohj%(c~^ONhiF1X8sNdwMo1AS=t>9`X;wEI;EYDh4moG;m9+U&`tZb?VTT zn(D|6;@5;G9vC7l!4JT3^Qa?%Lxhkw?heL@YiGm&-5o_ia&58(0oIj@myp9wO{87c z6jQ%Fx_Ey-FP-5dIz!Dpp`b)+4!j!-^-V>(f=ms=7bPI7l#ZEiHi+vDxr`t(R&o2e zffoTo`M_2VOjQ{Z8wE4c-|ktv>#E=T2r@`5=K{F}V2V<6dM(a6m2)_Y%l{O})4I}(AS zILKP)QP+2t0EbW(VaVD4-%=2N{|{M1(b@XnS;PLn5vu8kVz7FImkbfZ%Imo5BqyL(|Q$#$)RTGZLw3%g z7HjZE++u_jHpYCWzifSGj5qAc^%tHnsSnbSljk8CRmx`;?9TDZt%4@aa_{@MrgK1u zNXa0GDJ`5YlT@A^Ti)S4(0<5=ISx5p=!)Z~(po|hqdv?E{Y3gnIGl<;pqi=^$8;DU zGri)`67(dXH`lM$&g6@%UFh1?(Xl(see$zxF%vm?GzsdUlC6PHju33;R`&yVJeD)# zA7(qWi_$>{83MG^1<60mcC(gfTK{OrDO*+SHT$rCr;dFF*745eERPWSI8cU|cgrjx zL58$%aPujGtCLW$%EJNZ+u!FGpIVF!fkHY;-9WvjZ)p4cLOzs1$NFpN^rdXBFua|8 zeIv#{2-T;j*%Yd{9{n?ybJCIZytJ%;-OHcK(Xv0v8@N}=mb?l8F#lP zyVagP0?dOi$G6XOrTDRy;fA0R)8RRILc3`_;YvL*&*8X8VLR9aJS1+lA+>D`JM*~C zx^vP7$K`@S_CYjWqjJo1sB~Wp#Be@iVaX_dGDy;c9*Ggkv+iTue{pQn5NuT3oNquUTgI zp$6YXnL9FQt*=J?i=a#65yyfm`?4H*bM3LJv9`wA2#aq7qBX3V9iGcMOo!iCJE49s zVGj)pzK!$-Ry(^?K7AzQrD6-kw8RI)6ygd;Z%P*Z1G2&p+mnCV|5MpnKvmgv@t%+d zrCS=MLAnu;E@`B@GEVCf`UHHc{cj- z{kW#}HlHw|disMG>MTy5|=ESOy}f!u%CM6`hd_KK27&R&TY^N==Bs z{?7=i@-$r+UK33~1XYw(_pQI;ALc2{oqU}}#&H{EEp~bbL{QyMFf8rw%cnk{)S0t4 zxL&wcqVbZEg%`B4Q639gE-#A;#@DgO_UaQ$TD5y!wjA>1XhG{h9WfqP9PUFe5Pmu2 zXViB3o$VGsuMtx-PrG-khJEv?c$y;$j(L~@nWS*$l!;n@`3_{4+=A8rkNAhTW_W+U zGqF(El*1K6-+bhff`f0~BJ@=Ehj7?ogaG*`%kVfH@CIZEVRVu)ToBoOBN&9g(kAr= z!e*%Z8~4mS3(4HcJaOeo-T}vM9{Z~Eqs#SezN-gd8=f4ngR)h8*iUmxT`i_LEHeh{ zN^8Ib7+lTVOT#rfHpx2j)T(%nAZS*uNi9Ril}5Z~PUBlc7ZTkEFgh2;?Ch89)Xlgn zibIKr^4=Blc%3-AXQT!i$BqP8nlB4X@x3X!~yvfN;=&m z7DZGllo(A;n_2v=8eWh!nrR-oOMkm_zI>Togc-qnuhlUDi#7!q- z76t*ThJe)y_d$Mox4i~@L`6o;SIKkWQS)uuJ7Lgp58>RUKfzGGcF4ARkEyCB?{4OQ z65gVaJT%t-wuI!M?{qheFIE2XC}{PxnQ&inK>G*N5b?6dJ1g#v(Ts0wkIUX;qc?8j zaC^#$oOa<|_-T7JetbuiBqJZqG7Epj-(hZYP8(&zg1{rZZeQmAFl)2fObrYD2UVZfpwMy)3Zjg6E&GiL=pox*a#$_M(E* zCf;gmb5Hw+l7cF7*9qmcIu%<+1l!^>yJ@Ry#s$aatJCNx2(^5z zaYcwPzsqR0Q%4hQbM+%f$K#wUlRJnNI7|*Sjrzllm?bn$A_a9zWfwLMN#N!t2UHf$ zd`fE=`{Wy)Y^SVDC($*y5Hn}!*CQ`;R;(JhHbL_G)lgR=zq^s`>m@yxUUdT{M*`We zm9e6xB9LnR@@lG2M)INd0=!kBWO>Fo8=NVb2dQKEdGJ^KT&g}i^)>}Penv3*$ipw- zJk;mJRWwogy?RCLR!k1_SLmAKBh!r{yIQVXiT8oA_!~Cu#S_>SMSLtYru3G3Ltr9b zlVPTmN3gz&8g^#Am7+*I*5a8oOM@>i&T=5fEh1qIQ4W3Qq9P3IO6~Dpi{3>$ammh) zTN3rrF;@Yfl7mI@bmGB}4_Gf@FRt^6RjxGa&*?7kXtApCQS}2N;`zmi?C_vjKO=OK=HBnQ#;2_P>qF*35zF8WtOltew_Bzlb z`#io+=Xqd)2c_R+EZg?w)U)j_?%lQ5(V7oH$k*t`-Q-NK3d{z-eAS}aDPYnvhLHzr14*S-tYN!yk9jnMjllV zdLc;ao)?BTdd|1110sQ-jj{u`0G*6}cj6OSpT~H%iITZ3H6E?!{0_=%vr2f?v>?v6 z5G9Wj!Wco1ht-?CQX|E>lE@sD%nJU;G{G@b$RBY)_I83v#F1{n>ESBGkPY2LV_$$Q=H#p;el#!L zyimGjp53I;o-{&&$?qEW`4u%GP19oxax}JnJ<7K}dOF4U zPBvz7y-1gf40~4BWNG0Ka7q)ua7W0F2GTuFEPp4f&2FYRxih#knK%RvKM(e>lmWE> zZFDAv6n9IH<#TYZKyHwgPY8o%=oU0S!~nTmX8&yN0c?;YeWFv*z{)DH?b$~0Tr zD{XBnJtK64V3|sbikMLFl-XUC8-q4lC^k_PHg*a;FmZ*P3MlLI3kdp{@?H`iR{68Y zSToviGnrLAIzry_F5K^wdX4(+K@m)~;hCt0jNWi6C2W?9*d;0)wH@3={j1eRL1Ve5 zjA9j(qnwNV5NbJ~N3U2}j2@IKH$|$qM-~(7^M{sBwu2#+9HjIlf+A!ry|$+a>Pten zlPE+qprj3hpfN9e9kjA6oZf}JsxHRg;%}0WKB}_xh1<1!rOo?|k*c8cc*O~IJCES$ zYNYRR!HOaLy9D1yk>@`B2H|1FXwF97XuflAA>!v1*%gfW@EhOlphSoERAkPkLd-rL zB}!mu4K2@aV6ZDYCrD9rd+EivrsIa6+?%x(0pUVpwrsmb45~M3g61BGnro8oKbS6% zna6n*n5+|YNfiu!l29)^O+{0F<%7%{icmtXW$Akn@eZMBEFn4OTNFdBAN}f!^P+m5 zT6MEyz4pig-`=2Qm0qQMzQn`sZ=EYIYmE<%lU$UWQEkJtq#f&J3aOR!dSm=WD$A@D`)K-{c zk+qu58x4*}lmNb;=#N*{WD}7wCcJafTlRbPX5%RW}~M=b0NYRahfwF;}Og zLR&-ze(p?IRjvMN*d@?`s%CGCuIBT?pIT9Szhl@YDh9r=-en^l9*G{oyM+;lez~IP zvD4CZ@AXOj)F+%Xa?QS71oh>w=hW#rHRHhy9&gQPt3PNNkQ^AuZRo|%Me99W9MDVW zBB55bRPb%UW}#?uevd7#f)+Bns1ZU66-dCSPHM47Gy~1{gj-Ykt#D}@0RaeqV6!+_ zy?dc3scm60&G|>T+56Pb449zusWjy zEeYS_>fTzYyf7*Es?QR7k=&Xt5pa1NpxCAq)5G-zho2l2Z3S0udz?i613_Kb3QXDB zIMbFu1hco!`yH7zndsb#5F<2tWd6Y*slevznasCDDC7IE1U}}U9p@s8q(e%>p9~t~ z5v2Yg#AwI7@ZWy4fZ zhH}kjUa5^%3|71^5Dqi4J5`i|MR}=JbgGU>OHk$st+7z-`)#z^zTJ)^owN1$UN+80 z5UfJ$`MRZQfu;yfG3xoD!xGW3ukvTU%lB0ZRd0Vb?%LXV$(#nJrVPQ$!u*cdA4|^Z zSXdBMCUgyc+s#qX|8g}B3v{KxFdkMO5K22EZ?IaF9i}kkjFYTbHK>7?R}*sO%#D|) zQLkLtw11+?T>Zw1C$O6uHknGguGnu|tMy5@xc3Z%2fo|G!^dxJjpGF$&qg8jNF*e` z$NoVINzj~p>V~s!35sV%O1)@f$Whidn}IH?lN@%c$@0`6rq0|WX6I_J1Kzx~$FQ?- zD>k@73L2{y=JN_Y4A#YgI><)9krQH?MJE?K0OnwVNW2xGZ9NF z$DLR%Rr!?EQ7L{siMJv5yUa~`T#i@8KGBttP={iTn0-p*A+=S-am{r)apGPsjQKfi zh%}9DZ2|e@ox+vY&!voUHXKAqAV}&E>Yo-sG4Gj2{QWHAE^lEwE{r@C#Xi#+ND7X?uZ#^%6>nc(Y&wFCzGZGq9IHR=9_Yy}SI}+yX}k|+9Agx7 z>bLer%VJC}ei9ZHgq%i)EW;$62x%Ji0WAV{I9-Z3XXcBRP68r14rz0th_v3)*B^pv z8I}^m%d`x!`!a*^Fw~{O93|YGpC&NlXpmDao}R0v`c7*odh|$FrDbJd>HI0Z zz}JhBDzh|4Rmx%zhsZ0g=L?5LsCaSMm)wG`m*!ARaHdtbXCcn38LIm@@3*X|oa7o( z7G<`VU0qYz6&+-Hl{ZVMd+>1TIv-k#sEKilqv$p1J1Q?GoUz7D5e|(XmdR+LRHU{b z=2WelmayfVrESJYKBK}QspCz6O?6(qZ|7z-#CH0{K&hj}9VP0d=tABGwzv`vC7C-Dr+m~VSk36Q-;AM3L)UmeK( zhG%8Zt8o@Ir<@ClFFm1e3|Sr@*ndRi$a}Z}HzKv{%DW+L@!sSVK29c5`686WvM}Z< zl#stN&flcG((=RJ?w|oAvJfnDT$JS{Ss-%3v;cY|2nHQK2N?m<@s$`d0PNn=b^d`sq>_SFUt!4W+^Xfr&A zAfzE^s1=1}%=MQSP!Ur(Luf7|xP< z9?>fd^8OU76&d|!n;_u5y4ec$-bU+|;XMP(a zdkX_gJ0T}g9ZP+4AWHGGzdK=+vYI2>2*y>2J&u^)C_6R?qU*Ui*_gIYTv!XMWiWk% zKN7ZWrDL0d||CeeENC) z+dFo~P zY>!>_mjbHkila-EixGrIUd2#HKU3#YJCdU2GC31!dYnbOh~L5J6*1;KuR6c#Jk7E> zG}|}pW6he{G(-zZ5Jh*r~TbHQ_sO@ zduzYx;m$$0s#ZzN=vSU%c2UR1L6(kkBs4!HgW{~NZzgX#EU#qeAturcN;!Ip+=Zu^ zZ}c*y7)ORWsaQw8PSQ(7CE?d}fIk8rw!^UUuwfu;z_C z3`)mpfsRiR8Jug(;`e1r<@78?ipyFI_M%a%t(Sk~*&R8egy6@6gYO`+Iy;$5$& zI2hik5tRd-T9}MnZ1fb<=!xq}MQqo^!Ai!C0zOO%g11o+#L$Mc5iVsGX4DU2?!*-J z&~PT6_QSzNTqo1~yeN13{ajSJ<%gu7yFY(V?b1(BF5WkA^+X#VdkWGv#PhEQVon~+ zQ*0Nq=?Ck%_5%>@BWEd45)TaGL5Rdim5=6uM=|KUi%V z_%ZRbT~X-CS9Wp0FCzr`*fQCnx+SP0#c$WEz8DFGTJA;JV%$frd^!vFvjn<* z=aHT2B?^!CLQg&yV0Ed>vhhro6cpPn={dd9)=C*?V|7z(QW=Zknfs0lE;a+SzJd zMXWH$F2tE=E^$Yy5UE)~Nw)1uQ_`nr0Uu$`_FTqDo9t}!^kX>&mZh@oH67v43=~i3 zrIFYA7d^4feY)+sm``X#6?wEAK3D1#C+BA|xr&+95J?5D4F~?nv?@;UmVxo{AsT#NX49b+#Rf_840%*BjmmluqLKhJJX8R3FY}G2zQ)Db~Zp zZjoGK8=ZQhj$u&R#bv-|BpK`3{U&#yRA^|xp+RR1UWuViLgeH!h1mP)4)!?56{Yip z@59jPgZwzR$ize3Z1?CG}-rh=KI74cNiGz6{PV_ zE^OFqq*glbtAKedPQFWmr1f*Oq=Fg!Wuq|=cY4dbIhB*n6+t@nhdk|CFZzTEQp+iR zQBOK61eZea13Ac*7}d7~IiBqkDoDw&jw0Lq4}~g8F&4NGFx1DCMuwm@%#bP*qAPcL zxcuZal%3RiI1Zb;s%pJ-Egx`082Q z+gF9?25VJV41B~$K#xc#|hq}?~dv;9);#L4)_=knH`Rjt#$}LQpRg460#fUhpbRhO8}dN z!PB+H7k)*rfUkS-8fL!tn+KtL0n@{pje(#BbiEzaa}NB)uTYKeNF5BQZ_3%?_u77r>g+TC#?0mV;Ht&lX zj1-4iSC+v6yH76pXy9w_;XOcQ)l)#echh@hxJza+9jb&Cx5Rn_>UbCFW!Q z<DB~Scb#oF0-o``l4FTXC*`l>e(1b%2T!NQ3QXiI&WGRfV9uk%fnL^r=YM1jEQ z>acB!|I@eL1`c0&$d7Ca=m?)5VdoD?o6;vUV^|Ylsng8pqR>g>^a=SEf2Dls`>FNnV)1%g?@%^1DooKvr1q#QSO<%8 zK8V*O@r9AU$RKYneFOI#h>OP=?t#156FhvmrB6Q;fBo*OHDX0Y#;4>HX^J&UhqSl7 zW-u-?nZl-fsSN1D1MB{TxKHil4!bbjFpj9R@Ay66fQf_t zJnT$ZgDdtJ(Wi_+c4)Dl***kXBs9|_>KPe_X!VElf|KXH2a~C_t4Y()gn! z^^uon+6QzEEG{|tA$aF-*h(AMKGD-T6K!<~9yDc|&6YwmZ4>OCQO41d1AE)Q>!4ug7wq5#gckv>c37MDVqa`Z!M_wbMUIQb#6 zlyAq}C1rFRj^RufcEgT*5Mw*^DF%iZEyD)9{fcXfT>R7`NQNHyCwq8iuo`Ns#B;FiNs$eXbZL2A>wDnO7 z@mfJBwnm3dOi~P2^s;$7XJ9L)Am56T9>KIq4~=SxX8LQ&SEM=;CIbe^Iyp@{%}y6c zf4%V!o!->}X7G`~<)FXsqg224(U<>B<$qq?CuV7Dr(>ySVEcE+tx-O8#T&xlkqO~> zPtzKJ3L~1}qwt2dl>)&B6{f#A#GhZfpF&K`J^J_>3}bU-@B>{ot9 z_#w-uH;$EvAZ*yb)6LjdLxnQL zs+20yM^rT-5?MSD=T_ZsaRwOITFS~83^-%0si1@j$~l|{SgQqnyv!myYJI9yRZ^r4 zKjmYqR9-L9D5@8`!UA_p-)gtoaEtiN8}>6~xU6N2bF zM${X-*B!eMtJMEluk<;$xwv*~Jv_FxdDD^Qi!XvR-9yggVe0Typl$f{=#Qpf%ZEIM z-*1_f3lg!KIq9_oX%=#O21C9bGo-Ebz=GB-M|%t5s)nuQqARu_$hfBgVRpgHdse$` z0HtP57(Jf9NS8|mI!K??VvV1)PmJ_+Uuap_EgTplP1BHBaSPaejeIOT=D$7P^=|Y0 zv4cKnRSDu4;YWDCMQc*lXcn|m@kkIIo)GENwIsd;+~N?kH3wR6c45%-sdmU34X2md zG7?H(1x06?9w#s)?!8UbTMnN}8VVeMN_?!D+_#@J-)(}er#3=MU-A^hVqVep;8iq| z#G|A*Y8=wguQK+aH?t}n0}(WYt%A?+8)Tp8dyyB!hz}>=Leh2w7t=Fo7Vamlj=DOX zq3B0+Hj~LzR%h7s7T^xW!OycxH;V>^hA|?M`oF?8p0hXAR?JmbdrX60nkPM&0gr

FEdUtyDz0!+ykMq_?3xM3psrRQy_T<_5hDw!efDD zuJ35M`;h4tE@YNkIp-W`t;~DRR#G-;EmU%Ke9_$M`9O5OuRc`Qhi^qA#qJ-m5NpiQ zYQ7<-#Q@fKhbfEOQt_bU4%6UZ$W6S8bM?~O943-Ac*U1qEI^f(=JDfZ+xxF|bs%o3 zPwi7dvNtxGA=y4tk6s;D5JcP+^h%F`u~_nVp&svW?ibIVEv~i-No=xhJ@|yux@=AE z+cS$`KF%@${#^++U7XdxN{b~;Te&Gl&q>u6-S?{!Qv9LLwuyI_>4_?0kJxB_)Jk{KZSCQ^mbnSXfp9!w;t3^{=C z>+@0>rglfh` z6=-J$)RW=z_}ULsKOVly=fhOxYdLHcT$f>xa9c+#Qurhv?t00Vk}TEJ^r6~wtazXO zwYk$sFU#o2jIUgbLZ!Rkp4@PRWc+s`9M!mUS@DjY%nE{M3LsgZiO^OYvcUm`52&F` z<&^dY8|9u%=T0w{NL?UfJ~Jg-O6%7ZVID^ri;%E=iKb<*Z+|J4ZJ%B+AK1mNCdi)X z#2B=n)~J)Cxi&D+pHaZ9XJNLpYKpy{-KeXk6>yl)eCEP5d<30q)TGkGs3q$L*#n~j z{Hw6zJZ*%q4Almw7Y=*!2y2%|s0r#KrE+&(dp=_*SPL4jF5mKkZuG?c1uwLwMY@(Y zsY+|7mC>*R)3~4;=Xbjio-U|GG^chsvF06^YN^?(?EZ`R-u}Q7CWZGMxz~cbl#K#` z;q+y@lp#s^6jxcfj&oWU9$rU;OV=I_fr9KovL0vaR`VENJ;+t+0!9YUzG`10ROb&D zz^tic<%# zxSG|HtNO*XG&?VwHy>VBF&PK|F5-Lj*WTc_K2(4_y5Y0E1`Zq7jVX=#psNydL z&%@f^5+3Qie(o_i%&IbFZeHh;oy6pRcHVuuWH(~saotmQg#>njn~B^Rw07w#QL~M$ zRLr;0{&S~}(S>p5E5MS72_Uifj$waqGnR@6mGPsvDeqx}yO7}_Zcm;L9I zbQ$u!5eX%&o=>TX>yI0p-qUx(xGrgQ!2B!ibwW87$lbFBnsFX z97o`LI^^dqNA~$JCzk*G`LpPXpzuh+p0BLDlgD*iDBk_*I=iGen`soGw&oaVEkB+J z%Q$4FqZcGAN@J=+yH!jUB&cZ#uDn<$W2QKb;LlCLwtZmqg5$$1EKzoaY7G>eBCMX; z$C|iMrFCcHDr3SJ)f#HiB%^h*N1Fzh?0YT)=egE4$jRG6jPTA&HGU0Y5etvpkQd|L z?xX7EBkx&gb*z8PwMQKcT?1X=;Y;8^>DTjqj1y7VB&-T3;*{7epHM;!^(IVddQ&`h zUbY;44Mryff_*aRW4F)z(KwuBw$9NxmYOx>hcuKh<&=^%Hdk`PUVA2}C2=tuy>3&u zs3s~U=gVq`ipBTwvFi3Sv67X=Hb=(@Kf?EdPL0N=tGL1$T#->S`DLvt2wfEg1DBr` zv^47aJJH>V^10*mT1l>`VbZ@HavVc^`<_FHjvcw<(%CSkyOkgJ61tn{Q_3JCL1_}y zKy00X+Ks@TK{y&xI#tv+W&ng;c4YVCP-8;ilG+cagzP5GLZ)S05~M$&3&g|jLY>RA zrrYj?q3G@^Ct*>|`X-s0cv8V4$gmfl@A80p?J3Wy zzX>la+aP09dQ8!**XE9!?D#sl_(ew0b%kq7-6)B{b7ELGYdDDb(|im6rAk#v_l=bK zq@k_2wZK~YiLI}5pB%*@EQ6uO_r-W|oQT3?dTQMj+gpiWiYMnTt3LYHlIIMytf?^q?xMskl3kI^(^&RIrn2*^7)T_*;NTW>fAT^kN^8g8L*m5x7VnJ%^Lnw?6`nc9}5BWh5f zUeey)=RU7M(BMAuQCDliA0n=A`LYOMtL-6|1pA=m{4Me`#{F%gmvt!`=0k%=g}>{uf3=5ifzXTz6wP-6^vlPh_s1UMB{7#aInESDLFGWxolg>$c5m*@1 zJdfzrS*E)N_ha4f#El%}@T}<-aHHtMlo#RHd$6Mo(I9QF`oE72Ek#3tn*fidC%~KB zmlEI*=wP=G4go=u{z`B^w~XCNQbG#+v|`f2^jGb_W*t|Z^OFPqyDaeeInMo;c!00} z%PPe$Eha1^uRtdy{HGrWcB5ubK4?EUf-W_<7FizvTZLf-OkL#_Sgk_cmIHBRm*b03d_@KM3$`;Ex$Y z?VhBGr2+81@1LcDyEc-E(twKwmLqt9`ewKV&p`aeMt>FaZ;^N4|C~R#OSezSspfwO z2KI><428}=>O9CC~tv0{tU8o zrnNKIqqX_VcDM8u*srP5wjcE#09MNfn$qps9{K;lf~+j)oGi@mny#MonLiL96O0S^ zu-y_(N%6j&^tH&Q$BBY&S|yqgD)`x!k5XeeSp zbPS+%+)RLR|IYKmz);8D+)hTw(9l57PTs)I9&~>LF^|EvmjrCc3;=J#YUu95Uh3G` z8rb{+Mv5=iMFjNXDByG3%P2Aa3;RdXZ#selb8>yV>F5!iVE%0dJ ztY9T%WAhu_-1cTvBjDOk0Ea_#0|o}B3RLOerutXVP2Byq${%-jx?h|r&`^Fuld=C@ zr_Yv@;jO<{9OCmo;qDi=o>n&~2Uw04u-xsU;tJiR{q2hYvswMla5zJR96z-k0EWBW zEGk9+K)YXBdS6qVA|Q<)kOp|28>v<5eweb3jU{k+_cyirqJjKd6(H^c5O=$gm;)p7 z?RxmTsQ>WpmzQ`(8yp14y9DF`$BS1p^xk6H6Vtf6o-(?VI21Kr6^VS8@V| zo5wduU|`a~N#)zp{>Qps7A4<7?^^_b0mQjMyM@Zqx`VnO;J94IHU~JDYoKgDgZciK zEX?iz{?Ml{M)M~*!NI_GfzRzhAjh$9a`*Z@hlLD-=CLH|To zy$h;JAjnd^7gS<>Kj@#RmUlrCM}kzJ0SkWt8s%+wrEGf_biavB_>?kBalpV@fI;GR z9r3=tL%1KXTs2M-3bYkvd@!)vvnrO@I{*QD6La89`~4gkvV~Pbz_880=XPBqrr+WG zp{|inlQX4Xf`LtJ-8G1H=Km;i_Li2w7OVSpn1b(xCIjtF4CtP>4FZ08hj2f@!w8jt z3@Ah!00G8~8)^39e*nM=kCq_lEL+_{QEVEE2o}TGl79Yc>;@I{{et++7H10?d1PzydM!@F^oJ2v|$mT znB=z*TI|0d1a-{Kb%B}vpZnK)eNFjK0J0dc-fcJL3-sTAT+hF%{)fC@-caH@+_!)< z0l<~rc4Kzjzh&KzLYg|M_<55+D)718!UdlHf|4+?)c;M(f=0I-o&qG*!rm=j5&!)h z;4$GhtYZ^?%N2mt0%{S8{7Ym zeckmFn)WnJTL5wjKt8!8kyGz}Y1-wexoo6;J459K#jz8P)t zHU%f;9?Ea5d-JMWV8(hQ`K8^W{Kl*|F8Bc!Q*I>Lx|`YW&wcZ{n%jd+T=##uf4vgu zZnfOJz=G_C2H*zY-upRsue!NQym_qswrhG0jQ@YTx?4xt$$q&8<1X^%5!X9zWb|I- z{WiOK!sX|A*#A<~kAE@0oQ}P#<>n6l+tVq8#a|)!3%R+^kM%zlz&Fs!zl?w1A^tbx z`}5BKyE>I_>{GfuWeeH)MhsBb@oJh`~b{Z|>( VUu#9uVA5difYtjT03QkVe*m+)LWuwX literal 0 HcmV?d00001 From 0b1bd1f8b45c5593267d03a4a679c9205ec9850a Mon Sep 17 00:00:00 2001 From: Stacky McStackface <95074132+stackable-bot@users.noreply.github.com> Date: Thu, 10 Jul 2025 10:31:20 +0200 Subject: [PATCH 3/4] chore: Generated commit to update templated files since the last template run up to stackabletech/operator-templating@e3ffe71decf85f3a9780df44830dc0a588d3d68f (#590) Reference-to: stackabletech/operator-templating@e3ffe71 (chore: SDP 25.7 templating updates) --- .github/workflows/build.yml | 50 +++++++------- .github/workflows/integration-test.yml | 20 +++++- .github/workflows/pr_pre-commit.yaml | 4 +- .pre-commit-config.yaml | 2 +- Makefile | 2 +- .../templates/deployment.yaml | 15 ++++ docker/Dockerfile | 12 +++- nix/sources.json | 6 +- rust-toolchain.toml | 2 +- scripts/run-tests | 69 ++++++++++++++----- 10 files changed, 130 insertions(+), 52 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index de633f7c..50296286 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,9 +26,9 @@ env: CARGO_TERM_COLOR: always CARGO_INCREMENTAL: '0' CARGO_PROFILE_DEV_DEBUG: '0' - RUST_TOOLCHAIN_VERSION: "1.85.0" + RUST_TOOLCHAIN_VERSION: "1.87.0" RUST_NIGHTLY_TOOLCHAIN_VERSION: "nightly-2025-05-26" - PYTHON_VERSION: "3.12" + PYTHON_VERSION: "3.13" RUSTFLAGS: "-D warnings" RUSTDOCFLAGS: "-D warnings" RUST_LOG: "info" @@ -42,7 +42,7 @@ jobs: RUSTC_BOOTSTRAP: 1 steps: - name: Install host dependencies - uses: awalsh128/cache-apt-pkgs-action@5902b33ae29014e6ca012c5d8025d4346556bd40 # v1.4.3 + uses: awalsh128/cache-apt-pkgs-action@4c82c3ccdc1344ee11e9775dbdbdf43aa8a5614e # v1.5.1 with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https version: ubuntu-latest @@ -50,10 +50,10 @@ jobs: with: persist-credentials: false submodules: recursive - - uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b with: toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} - - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 + - uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 with: key: udeps cache-all-crates: "true" @@ -114,7 +114,7 @@ jobs: with: persist-credentials: false submodules: recursive - - uses: EmbarkStudios/cargo-deny-action@34899fc7ba81ca6268d5947a7a16b4649013fea1 # v2.0.11 + - uses: EmbarkStudios/cargo-deny-action@30f817c6f72275c6d54dc744fbca09ebc958599f # v2.0.12 with: command: check ${{ matrix.checks }} @@ -126,7 +126,7 @@ jobs: with: persist-credentials: false submodules: recursive - - uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b with: toolchain: ${{ env.RUST_NIGHTLY_TOOLCHAIN_VERSION }} components: rustfmt @@ -139,7 +139,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Install host dependencies - uses: awalsh128/cache-apt-pkgs-action@5902b33ae29014e6ca012c5d8025d4346556bd40 # v1.4.3 + uses: awalsh128/cache-apt-pkgs-action@4c82c3ccdc1344ee11e9775dbdbdf43aa8a5614e # v1.5.1 with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https version: ubuntu-latest @@ -147,11 +147,11 @@ jobs: with: persist-credentials: false submodules: recursive - - uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b with: toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} components: clippy - - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 + - uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 with: key: clippy cache-all-crates: "true" @@ -178,18 +178,18 @@ jobs: runs-on: ubuntu-latest steps: - name: Install host dependencies - uses: awalsh128/cache-apt-pkgs-action@5902b33ae29014e6ca012c5d8025d4346556bd40 # v1.4.3 + uses: awalsh128/cache-apt-pkgs-action@4c82c3ccdc1344ee11e9775dbdbdf43aa8a5614e # v1.5.1 with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https version: ubuntu-latest - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: submodules: recursive - - uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b with: toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} components: rustfmt - - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 + - uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 with: key: doc cache-all-crates: "true" @@ -201,7 +201,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Install host dependencies - uses: awalsh128/cache-apt-pkgs-action@5902b33ae29014e6ca012c5d8025d4346556bd40 # v1.4.3 + uses: awalsh128/cache-apt-pkgs-action@4c82c3ccdc1344ee11e9775dbdbdf43aa8a5614e # v1.5.1 with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https version: ubuntu-latest @@ -209,10 +209,10 @@ jobs: with: persist-credentials: false submodules: recursive - - uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b with: toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} - - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 + - uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 with: key: test cache-all-crates: "true" @@ -261,7 +261,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Install host dependencies - uses: awalsh128/cache-apt-pkgs-action@5902b33ae29014e6ca012c5d8025d4346556bd40 # v1.4.3 + uses: awalsh128/cache-apt-pkgs-action@4c82c3ccdc1344ee11e9775dbdbdf43aa8a5614e # v1.5.1 with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https version: ubuntu-latest @@ -274,10 +274,10 @@ jobs: with: version: v3.16.1 - name: Set up cargo - uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 + uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b with: toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} - - uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8 + - uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0 with: key: charts cache-all-crates: "true" @@ -332,7 +332,7 @@ jobs: IMAGE_TAG: ${{ steps.printtag.outputs.IMAGE_TAG }} steps: - name: Install host dependencies - uses: awalsh128/cache-apt-pkgs-action@5902b33ae29014e6ca012c5d8025d4346556bd40 # v1.4.3 + uses: awalsh128/cache-apt-pkgs-action@4c82c3ccdc1344ee11e9775dbdbdf43aa8a5614e # v1.5.1 with: packages: protobuf-compiler krb5-user libkrb5-dev libclang-dev liblzma-dev libssl-dev pkg-config apt-transport-https version: ${{ matrix.runner }} @@ -340,8 +340,8 @@ jobs: with: persist-credentials: false submodules: recursive - - uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31.4.0 - - uses: dtolnay/rust-toolchain@56f84321dbccf38fb67ce29ab63e4754056677e0 + - uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31.4.1 + - uses: dtolnay/rust-toolchain@b3b07ba8b418998c39fb20f53e8b695cdcc8de1b with: toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} components: rustfmt @@ -376,9 +376,9 @@ jobs: # Recreate charts and publish charts and docker image. - name: Install cosign - uses: sigstore/cosign-installer@3454372f43399081ed03b604cb2d021dabca52bb # v3.8.2 + uses: sigstore/cosign-installer@398d4b0eeef1380460a10c8013a76f728fb906ac # v3.9.1 - name: Install syft - uses: anchore/sbom-action/download-syft@e11c554f704a0b820cbf8c51673f6945e0731532 # v0.20.0 + uses: anchore/sbom-action/download-syft@cee1b8e05ae5b2593a75e197229729eabaa9f8ec # v0.20.2 - name: Build Docker image and Helm chart run: | # Installing helm and yq on ubicloud-standard-8-arm only @@ -421,7 +421,7 @@ jobs: OCI_REGISTRY_SDP_CHARTS_USERNAME: "robot$sdp-charts+github-action-build" steps: - name: Install cosign - uses: sigstore/cosign-installer@3454372f43399081ed03b604cb2d021dabca52bb # v3.8.2 + uses: sigstore/cosign-installer@398d4b0eeef1380460a10c8013a76f728fb906ac # v3.9.1 - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 321a0387..767f57e9 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -86,7 +86,7 @@ jobs: - name: Run Integration Test id: test - uses: stackabletech/actions/run-integration-test@5901c3b1455488820c4be367531e07c3c3e82538 # v0.4.0 + uses: stackabletech/actions/run-integration-test@4483641a7e24057bd2ba51cb4c3f2f0010ad21b7 # v0.8.4 with: test-platform: ${{ env.TEST_PLATFORM }}-${{ env.TEST_ARCHITECTURE }} test-run: ${{ env.TEST_RUN }} @@ -117,3 +117,21 @@ jobs: } ] } + # TODO: Update to version 2.1.0. This could look something like the following. + # The workflow is currently not in use, testing that the new version still works imposes effort. + # So I left it as a future exercise, but saved the current state. + # + # uses: slackapi/slack-github-action@b0fa283ad8fea605de13dc3f449259339835fc52 # v2.1.0 + # with: + # method: chat.postMessage + # token: ${{ secrets.SLACK_INTEGRATION_TEST_TOKEN }} + # payload: | + # channel: "C07UYJYSMSN" # notifications-integration-tests + # text: "Integration Test *${{ github.repository }}* failed" + # attachments: + # - pretext: "Started at ${{ steps.test.outputs.start-time }}, failed at ${{ steps.test.outputs.end-time }}" + # color: "#aa0000" + # actions: + # - type: button + # text: Go to integration test run + # url: "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" diff --git a/.github/workflows/pr_pre-commit.yaml b/.github/workflows/pr_pre-commit.yaml index 35dc6ac7..a781f1e6 100644 --- a/.github/workflows/pr_pre-commit.yaml +++ b/.github/workflows/pr_pre-commit.yaml @@ -7,10 +7,10 @@ on: env: CARGO_TERM_COLOR: always - NIX_PKG_MANAGER_VERSION: "2.28.3" + NIX_PKG_MANAGER_VERSION: "2.30.0" RUST_TOOLCHAIN_VERSION: "nightly-2025-05-26" HADOLINT_VERSION: "v2.12.0" - PYTHON_VERSION: "3.12" + PYTHON_VERSION: "3.13" jobs: pre-commit: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f1bc58c7..d8f954a5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -36,7 +36,7 @@ repos: # If you do not, you will need to delete the cached ruff binary shown in the # error message - repo: https://github.com/astral-sh/ruff-pre-commit - rev: d19233b89771be2d89273f163f5edc5a39bbc34a # 0.11.12 + rev: 0b19ef1fd6ad680ed7752d6daba883ce1265a6de # 0.12.2 hooks: # Run the linter. - id: ruff-check diff --git a/Makefile b/Makefile index 66e750bf..4ef4a35a 100644 --- a/Makefile +++ b/Makefile @@ -150,7 +150,7 @@ check-kubernetes: run-dev: check-nix check-kubernetes kubectl apply -f deploy/stackable-operators-ns.yaml - nix run --extra-experimental-features "nix-command flakes" -f. tilt -- up --port 5430 --namespace stackable-operators + nix run --extra-experimental-features "nix-command flakes" -f. tilt -- up --port 5442 --namespace stackable-operators stop-dev: check-nix check-kubernetes nix run --extra-experimental-features "nix-command flakes" -f. tilt -- down diff --git a/deploy/helm/spark-k8s-operator/templates/deployment.yaml b/deploy/helm/spark-k8s-operator/templates/deployment.yaml index 2429e0c3..9056e705 100644 --- a/deploy/helm/spark-k8s-operator/templates/deployment.yaml +++ b/deploy/helm/spark-k8s-operator/templates/deployment.yaml @@ -42,11 +42,26 @@ spec: - mountPath: /etc/stackable/{{ include "operator.appname" . }}/config-spec name: config-spec env: + # The following env vars are passed as clap (think CLI) arguments to the operator. + # They are picked up by clap using the structs defied in the operator. + # (which is turn pulls in https://github.com/stackabletech/operator-rs/blob/main/crates/stackable-operator/src/cli.rs) + # You can read there about the expected values and purposes. + + # Sometimes products need to know the operator image, e.g. the opa-bundle-builder OPA + # sidecar uses the operator image. - name: OPERATOR_IMAGE # Tilt can use annotations as image paths, but not env variables valueFrom: fieldRef: fieldPath: metadata.annotations['internal.stackable.tech/image'] + + # Operators need to know the node name they are running on, to e.g. discover the + # Kubernetes domain name from the kubelet API. + - name: KUBERNETES_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + {{- if .Values.kubernetesClusterDomain }} - name: KUBERNETES_CLUSTER_DOMAIN value: {{ .Values.kubernetesClusterDomain | quote }} diff --git a/docker/Dockerfile b/docker/Dockerfile index c70ba5d6..4c1b39d4 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -26,6 +26,7 @@ ARG RELEASE="1" # These are chosen at random and are this high on purpose to have very little chance to clash with an existing user or group on the host system ARG STACKABLE_USER_GID="574654813" ARG STACKABLE_USER_UID="782252253" +ARG STACKABLE_USER_NAME="stackable" # Sets the default shell to Bash with strict error handling and robust pipeline processing. # "-e": Exits immediately if a command exits with a non-zero status @@ -95,6 +96,12 @@ RUN <//archive/.tar.gz" } } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 9ae738fb..a9d21ba2 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ # DO NOT EDIT, this file is generated by operator-templating [toolchain] -channel = "1.85.0" +channel = "1.87.0" profile = "default" diff --git a/scripts/run-tests b/scripts/run-tests index 31b8e7ae..904f5811 100755 --- a/scripts/run-tests +++ b/scripts/run-tests @@ -353,22 +353,7 @@ def run_tests(test: str, parallel: int, namespace: str, skip_delete: bool) -> No if namespace: kuttl_cmd.extend(["--namespace", namespace]) # kuttl doesn't create the namespace so we need to do it ourselves - create_ns_cmd = ["kubectl", "create", "namespace", namespace] - try: - logging.debug(f"Running : {create_ns_cmd}") - subprocess.run( - create_ns_cmd, - check=True, - capture_output=True, - ) - except subprocess.CalledProcessError as e: - stderr = e.stderr.decode("utf-8") - # If the namespace already exists, this will fail and we ignore the - # error. If it fails for any other reason, we raise an exception. - if "already exists" not in stderr: - logging.error(stderr) - logging.error("namespace creation failed") - raise TestRunnerException() + ensure_namespace_exists(namespace) logging.debug(f"Running : {kuttl_cmd}") @@ -382,6 +367,58 @@ def run_tests(test: str, parallel: int, namespace: str, skip_delete: bool) -> No raise TestRunnerException() +def ensure_namespace_exists(namespace: str) -> None: + """ + Ensure the specified namespace exists, creating it if necessary. + + This function handles various permission scenarios: + - If the namespace already exists, it does nothing + - If it doesn't exist and we have permission, it creates it + - If we don't have permission to create/check namespaces, it logs a warning + and assumes the namespace exists or will be created externally (useful for OpenShift) + + Examples of (permission) errors we handle: + - Error from server (Forbidden): namespaces is forbidden: User "developer" cannot create resource "namespaces" in API group "" at the cluster scope + - Error from server (Forbidden): namespaces "foobar123" is forbidden: User "developer" cannot get resource "namespaces" in API group "" in the namespace "foobar123" + - Error from server (AlreadyExists): namespaces "kuttl-test-finer-caiman" already exists + """ + # First check if the namespace already exists + check_ns_cmd = ["kubectl", "get", "namespace", namespace] + try: + logging.debug(f"Checking if namespace exists: {check_ns_cmd}") + subprocess.run( + check_ns_cmd, + check=True, + capture_output=True, + ) + logging.debug(f"Namespace '{namespace}' already exists") + except subprocess.CalledProcessError: + # Namespace doesn't exist, try to create it + create_ns_cmd = ["kubectl", "create", "namespace", namespace] + try: + logging.debug(f"Creating namespace: {create_ns_cmd}") + subprocess.run( + create_ns_cmd, + check=True, + capture_output=True, + ) + logging.debug(f"Successfully created namespace '{namespace}'") + except subprocess.CalledProcessError as e: + stderr = e.stderr.decode("utf-8") + if "already exists" in stderr: + logging.debug( + f"Namespace '{namespace}' already exists (race condition)" + ) + elif "forbidden" in stderr.lower(): + logging.warning( + f"No permission to create namespace '{namespace}', assuming it exists or will be created externally" + ) + else: + logging.error(stderr) + logging.error("namespace creation failed") + raise TestRunnerException() + + def main(argv) -> int: ret = 0 try: From 75f91257304ffc0522686d5ad96b1df4ff5132f4 Mon Sep 17 00:00:00 2001 From: Nick <10092581+NickLarsenNZ@users.noreply.github.com> Date: Fri, 11 Jul 2025 18:40:39 +1200 Subject: [PATCH 4/4] chore: Bump Rust dependencies pre-25.7.0 (#592) * feat(helm): Add RBAC rule for automatic cluster domain detection * chore: Bump stackable-operator to 0.94.0 and update other dependencies * chore: Update changelog * chore: Add sparkhistory and shs shortnames --- CHANGELOG.md | 10 + Cargo.lock | 958 ++++---- Cargo.nix | 2035 +++++++---------- Cargo.toml | 2 +- crate-hashes.json | 14 +- deploy/helm/spark-k8s-operator/crds/crds.yaml | 7 +- .../spark-k8s-operator/templates/roles.yaml | 7 + rust/operator-binary/src/connect/crd.rs | 19 +- rust/operator-binary/src/connect/server.rs | 1 - rust/operator-binary/src/crd/history.rs | 20 +- rust/operator-binary/src/crd/mod.rs | 251 +- .../src/history/history_controller.rs | 1 - rust/operator-binary/src/main.rs | 24 +- .../src/pod_driver_controller.rs | 4 +- .../src/spark_k8s_controller.rs | 3 +- 15 files changed, 1391 insertions(+), 1965 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c11b169..84abaa97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ All notable changes to this project will be documented in this file. - Use `--console-log-format` (or `CONSOLE_LOG_FORMAT`) to set the format to `plain` (default) or `json`. - Expose history and connect services via listener classes ([#562]). - Support for Spark 3.5.6 ([#580]). +- Add RBAC rule to helm template for automatic cluster domain detection ([#592]). +- Add `sparkhistory` and `shs` shortnames for SparkHistoryServer ([#592]). ### Changed @@ -34,17 +36,24 @@ All notable changes to this project will be documented in this file. - The defaults from the docker images itself will now apply, which will be different from 1000/0 going forward - This is marked as breaking because tools and policies might exist, which require these fields to be set - Enable the built-in Prometheus servlet. The jmx exporter was removed in ([#584]) but added back in ([#585]). +- BREAKING: Bump stackable-operator to 0.94.0 and update other dependencies ([#592]). + - The default Kubernetes cluster domain name is now fetched from the kubelet API unless explicitly configured. + - This requires operators to have the RBAC permission to get nodes/proxy in the apiGroup "". The helm-chart takes care of this. + - The CLI argument `--kubernetes-node-name` or env variable `KUBERNETES_NODE_NAME` needs to be set. The helm-chart takes care of this. ### Fixed - Use `json` file extension for log files ([#553]). - The Spark connect controller now watches StatefulSets instead of Deployments (again) ([#573]). - BREAKING: Move `listenerClass` to `roleConfig` for Spark History Server and Spark Connect. Service names changed. ([#588]). +- Allow uppercase characters in domain names ([#592]). ### Removed - Support for Spark versions 3.5.2 has been dropped ([#570]). - Integration test spark-pi-public-s3 because the AWS SDK >2.24 doesn't suuport anonymous S3 access anymore ([#574]). +- Remove the `lastUpdateTime` field from the stacklet status ([#592]). +- Remove role binding to legacy service accounts ([#592]). [#539]: https://github.com/stackabletech/spark-k8s-operator/pull/539 [#547]: https://github.com/stackabletech/spark-k8s-operator/pull/547 @@ -64,6 +73,7 @@ All notable changes to this project will be documented in this file. [#584]: https://github.com/stackabletech/spark-k8s-operator/pull/584 [#585]: https://github.com/stackabletech/spark-k8s-operator/pull/585 [#588]: https://github.com/stackabletech/spark-k8s-operator/pull/588 +[#592]: https://github.com/stackabletech/spark-k8s-operator/pull/592 ## [25.3.0] - 2025-03-21 diff --git a/Cargo.lock b/Cargo.lock index baace8dd..57d361ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,21 +13,21 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", - "getrandom 0.2.15", + "getrandom 0.3.3", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -62,9 +62,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.18" +version = "0.6.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" dependencies = [ "anstyle", "anstyle-parse", @@ -77,44 +77,44 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "anstyle-parse" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.7" +version = "3.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", - "once_cell", + "once_cell_polyfill", "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "async-broadcast" @@ -147,7 +147,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -158,7 +158,7 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -169,15 +169,15 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de45108900e1f9b9242f7f2e254aa3e2c029c921c258fe9e6b4217eeebd54288" +checksum = "021e862c184ae977658b36c4500f7feac3221ca5da43e3f25bd04ab6c79a29b5" dependencies = [ "axum-core", "bytes", @@ -201,7 +201,7 @@ dependencies = [ "serde_urlencoded", "sync_wrapper", "tokio", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", "tracing", @@ -229,9 +229,9 @@ dependencies = [ [[package]] name = "backon" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd0b50b1b78dbadd44ab18b3c794e496f3a139abb9fbc27d9c94c4eebbb96496" +checksum = "302eaff5357a264a2c42f127ecb8bac761cf99749fc3dc95677e2743991f99e7" dependencies = [ "fastrand", "gloo-timers", @@ -240,9 +240,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", "cfg-if", @@ -250,15 +250,9 @@ dependencies = [ "miniz_oxide", "object", "rustc-demangle", - "windows-targets 0.52.6", + "windows-targets", ] -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -282,9 +276,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "block-buffer" @@ -307,9 +301,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytes" @@ -319,9 +313,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "cc" -version = "1.2.18" +version = "1.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" +checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" dependencies = [ "jobserver", "libc", @@ -330,15 +324,15 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ "android-tzdata", "iana-time-zone", @@ -349,9 +343,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.35" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" +checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" dependencies = [ "clap_builder", "clap_derive", @@ -359,9 +353,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.35" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" +checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" dependencies = [ "anstream", "anstyle", @@ -371,27 +365,27 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.32" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "colorchoice" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "concurrent-queue" @@ -443,9 +437,9 @@ dependencies = [ [[package]] name = "core-foundation" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" dependencies = [ "core-foundation-sys", "libc", @@ -521,7 +515,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -532,7 +526,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -543,7 +537,7 @@ checksum = "b9b6483c2bbed26f97861cf57651d4f2b731964a28cd2257f934a4b452480d21" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -572,7 +566,7 @@ checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -593,7 +587,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -631,7 +625,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -675,7 +669,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -724,9 +718,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "flate2" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" dependencies = [ "crc32fast", "miniz_oxide", @@ -815,7 +809,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -867,20 +861,20 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", ] [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "libc", @@ -896,9 +890,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "git2" -version = "0.20.1" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5220b8ba44c68a9a7f7a7659e864dd73692e417ef0211bea133c7b74e031eeb9" +checksum = "2deb07a133b1520dc1a5690e9bd08950108873d7ed5de38dcc74d3b5ebffa110" dependencies = [ "bitflags", "libc", @@ -927,9 +921,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.8" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" +checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" dependencies = [ "atomic-waker", "bytes", @@ -937,7 +931,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.9.0", + "indexmap", "slab", "tokio", "tokio-util", @@ -946,15 +940,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.15.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" dependencies = [ "allocator-api2", "equivalent", @@ -963,11 +951,11 @@ dependencies = [ [[package]] name = "headers" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" +checksum = "b3314d5adb5d94bcdf56771f2e50dbbc80bb4bdf88967526706205ac9eff24eb" dependencies = [ - "base64 0.21.7", + "base64", "bytes", "headers-core", "http", @@ -1100,11 +1088,10 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.5" +version = "0.27.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ - "futures-util", "http", "hyper", "hyper-util", @@ -1132,17 +1119,21 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.11" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" +checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" dependencies = [ + "base64", "bytes", "futures-channel", + "futures-core", "futures-util", "http", "http-body", "hyper", + "ipnet", "libc", + "percent-encoding", "pin-project-lite", "socket2", "tokio", @@ -1176,21 +1167,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -1199,31 +1191,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -1231,67 +1203,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -1311,9 +1270,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -1321,22 +1280,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", - "hashbrown 0.15.2", + "hashbrown", ] [[package]] @@ -1345,12 +1294,33 @@ version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" +[[package]] +name = "io-uring" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +dependencies = [ + "bitflags", + "cfg-if", + "libc", +] + [[package]] name = "ipnet" version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -1389,7 +1359,7 @@ version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", "libc", ] @@ -1444,7 +1414,7 @@ version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa60a41b57ae1a0a071af77dbcf89fc9819cfe66edaf2beeb204c34459dcf0b2" dependencies = [ - "base64 0.22.1", + "base64", "chrono", "schemars", "serde", @@ -1454,18 +1424,18 @@ dependencies = [ [[package]] name = "k8s-version" version = "0.1.3" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#d990019c690ed85aea29b095a03661c015676caa" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#958f62f2befdd984ad9fcd272d0214055c3a7601" dependencies = [ "darling", "regex", - "snafu 0.8.5", + "snafu 0.8.6", ] [[package]] name = "kube" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b49c39074089233c2bb7b1791d1b6c06c84dbab26757491fad9d233db0d432f" +checksum = "778f98664beaf4c3c11372721e14310d1ae00f5e2d9aabcf8906c881aa4e9f51" dependencies = [ "k8s-openapi", "kube-client", @@ -1476,11 +1446,11 @@ dependencies = [ [[package]] name = "kube-client" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e199797b1b08865041c9c698f0d11a91de0a8143e808b71e250cd4a1d7ce2b9f" +checksum = "7cb276b85b6e94ded00ac8ea2c68fcf4697ea0553cb25fddc35d4a0ab718db8d" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "chrono", "either", @@ -1506,16 +1476,16 @@ dependencies = [ "thiserror 2.0.12", "tokio", "tokio-util", - "tower 0.5.2", + "tower", "tower-http", "tracing", ] [[package]] name = "kube-core" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bdefbba89dea2d99ea822a1d7cd6945535efbfb10b790056ee9284bf9e698e7" +checksum = "e3c56ff45deb0031f2a476017eed60c06872251f271b8387ad8020b8fef60960" dependencies = [ "chrono", "derive_more", @@ -1532,23 +1502,23 @@ dependencies = [ [[package]] name = "kube-derive" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e609a3633689a50869352a3c16e01d863b6137863c80eeb038383d5ab9f83bf" +checksum = "079fc8c1c397538628309cfdee20696ebdcc26745f9fb17f89b78782205bd995" dependencies = [ "darling", "proc-macro2", "quote", "serde", "serde_json", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] name = "kube-runtime" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d4bd8a4554786f8f9a87bfa977fb7dbaa1d7f102a30477338b044b65de29d8e" +checksum = "2f1326e946fadf6248febdf8a1c001809c3899ccf48cb9768cbc536b741040dc" dependencies = [ "ahash", "async-broadcast", @@ -1556,7 +1526,7 @@ dependencies = [ "backon", "educe", "futures 0.3.31", - "hashbrown 0.15.2", + "hashbrown", "hostname", "json-patch", "k8s-openapi", @@ -1579,15 +1549,15 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.171" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libgit2-sys" -version = "0.18.1+1.9.0" +version = "0.18.2+1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1dcb20f84ffcdd825c7a311ae347cce604a6f084a767dec4a4929829645290e" +checksum = "1c42fe03df2bd3c53a3a9c7317ad91d80c81cd1fb0caec8d7cc4cd2bfa10c222" dependencies = [ "cc", "libc", @@ -1609,15 +1579,15 @@ dependencies = [ [[package]] name = "litemap" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -1646,9 +1616,9 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "mime" @@ -1658,22 +1628,22 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "wasi 0.11.1+wasi-snapshot-preview1", + "windows-sys 0.59.0", ] [[package]] @@ -1716,6 +1686,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "openssl-probe" version = "0.1.6" @@ -1724,9 +1700,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "opentelemetry" -version = "0.29.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e87237e2775f74896f9ad219d26a2081751187eb7c9f5c58dde20a23b95d16c" +checksum = "aaf416e4cb72756655126f7dd7bb0af49c674f4c1b9903e80c009e0c37e552e6" dependencies = [ "futures-core", "futures-sink", @@ -1738,9 +1714,9 @@ dependencies = [ [[package]] name = "opentelemetry-appender-tracing" -version = "0.29.1" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e716f864eb23007bdd9dc4aec381e188a1cee28eecf22066772b5fd822b9727d" +checksum = "e68f63eca5fad47e570e00e893094fc17be959c80c79a7d6ec1abdd5ae6ffc16" dependencies = [ "opentelemetry", "tracing", @@ -1750,25 +1726,23 @@ dependencies = [ [[package]] name = "opentelemetry-http" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46d7ab32b827b5b495bd90fa95a6cb65ccc293555dcc3199ae2937d2d237c8ed" +checksum = "50f6639e842a97dbea8886e3439710ae463120091e2e064518ba8e716e6ac36d" dependencies = [ "async-trait", "bytes", "http", "opentelemetry", "reqwest", - "tracing", ] [[package]] name = "opentelemetry-otlp" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d899720fe06916ccba71c01d04ecd77312734e2de3467fd30d9d580c8ce85656" +checksum = "dbee664a43e07615731afc539ca60c6d9f1a9425e25ca09c57bc36c87c55852b" dependencies = [ - "futures-core", "http", "opentelemetry", "opentelemetry-http", @@ -1784,9 +1758,9 @@ dependencies = [ [[package]] name = "opentelemetry-proto" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c40da242381435e18570d5b9d50aca2a4f4f4d8e146231adb4e7768023309b3" +checksum = "2e046fd7660710fe5a05e8748e70d9058dc15c94ba914e7c4faa7c728f0e8ddc" dependencies = [ "opentelemetry", "opentelemetry_sdk", @@ -1794,24 +1768,28 @@ dependencies = [ "tonic", ] +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83d059a296a47436748557a353c5e6c5705b9470ef6c95cfc52c21a8814ddac2" + [[package]] name = "opentelemetry_sdk" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afdefb21d1d47394abc1ba6c57363ab141be19e27cc70d0e422b7f303e4d290b" +checksum = "11f644aa9e5e31d11896e024305d7e3c98a88884d9f8919dbf37a9991bc47a4b" dependencies = [ "futures-channel", "futures-executor", "futures-util", - "glob", "opentelemetry", "percent-encoding", - "rand 0.9.1", + "rand", "serde_json", "thiserror 2.0.12", "tokio", "tokio-stream", - "tracing", ] [[package]] @@ -1837,9 +1815,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -1847,15 +1825,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -1864,7 +1842,7 @@ version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" dependencies = [ - "base64 0.22.1", + "base64", "serde", ] @@ -1876,9 +1854,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" +checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", "thiserror 2.0.12", @@ -1887,9 +1865,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5" +checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" dependencies = [ "pest", "pest_generator", @@ -1897,24 +1875,23 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841" +checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] name = "pest_meta" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0" +checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" dependencies = [ - "once_cell", "pest", "sha2", ] @@ -1936,7 +1913,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -1957,6 +1934,15 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -1969,7 +1955,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.24", + "zerocopy", ] [[package]] @@ -1983,9 +1969,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -2002,7 +1988,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "snafu 0.8.5", + "snafu 0.8.6", "xml-rs", ] @@ -2026,7 +2012,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -2040,20 +2026,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" @@ -2061,18 +2036,8 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", + "rand_chacha", + "rand_core", ] [[package]] @@ -2082,16 +2047,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.15", + "rand_core", ] [[package]] @@ -2100,14 +2056,14 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.2", + "getrandom 0.3.3", ] [[package]] name = "redox_syscall" -version = "0.5.11" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" dependencies = [ "bitflags", ] @@ -2164,11 +2120,11 @@ checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" [[package]] name = "reqwest" -version = "0.12.15" +version = "0.12.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-channel", "futures-core", @@ -2178,11 +2134,8 @@ dependencies = [ "http-body-util", "hyper", "hyper-util", - "ipnet", "js-sys", "log", - "mime", - "once_cell", "percent-encoding", "pin-project-lite", "serde", @@ -2190,13 +2143,13 @@ dependencies = [ "serde_urlencoded", "sync_wrapper", "tokio", - "tower 0.5.2", + "tower", + "tower-http", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "windows-registry", ] [[package]] @@ -2207,7 +2160,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.15", + "getrandom 0.2.16", "libc", "untrusted", "windows-sys 0.52.0", @@ -2239,15 +2192,15 @@ dependencies = [ "regex", "relative-path", "rustc_version", - "syn 2.0.100", + "syn 2.0.104", "unicode-ident", ] [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" [[package]] name = "rustc_version" @@ -2260,9 +2213,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.25" +version = "0.23.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +checksum = "2491382039b29b9b11ff08b76ff6c97cf287671dbb74f0be44bda389fffe9bd1" dependencies = [ "log", "once_cell", @@ -2309,15 +2262,18 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] [[package]] name = "rustls-webpki" -version = "0.103.1" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ "ring", "rustls-pki-types", @@ -2326,9 +2282,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" [[package]] name = "ryu" @@ -2367,7 +2323,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -2405,7 +2361,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ "bitflags", - "core-foundation 0.10.0", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -2454,7 +2410,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -2465,7 +2421,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -2508,7 +2464,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.9.0", + "indexmap", "itoa", "ryu", "serde", @@ -2528,9 +2484,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.8" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", "cpufeatures", @@ -2554,27 +2510,24 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.2" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" dependencies = [ "libc", ] [[package]] name = "slab" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "snafu" @@ -2588,11 +2541,11 @@ dependencies = [ [[package]] name = "snafu" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "223891c85e2a29c3fe8fb900c1fae5e69c2e42415e3177752e8718475efa5019" +checksum = "320b01e011bf8d5d7a4a4a4be966d9160968935849c83b918827f6a435e7f627" dependencies = [ - "snafu-derive 0.8.5", + "snafu-derive 0.8.6", ] [[package]] @@ -2608,21 +2561,21 @@ dependencies = [ [[package]] name = "snafu-derive" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c3c6b7927ffe7ecaa769ee0e3994da3b8cafc8f444578982c83ecb161af917" +checksum = "1961e2ef424c1424204d3a5d6975f934f56b6d50ff5732382d84ebf460e147f7" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2636,8 +2589,8 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stackable-operator" -version = "0.93.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#d990019c690ed85aea29b095a03661c015676caa" +version = "0.94.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#958f62f2befdd984ad9fcd272d0214055c3a7601" dependencies = [ "chrono", "clap", @@ -2647,7 +2600,8 @@ dependencies = [ "educe", "either", "futures 0.3.31", - "indexmap 2.9.0", + "http", + "indexmap", "json-patch", "k8s-openapi", "kube", @@ -2658,7 +2612,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "snafu 0.8.5", + "snafu 0.8.6", "stackable-operator-derive", "stackable-shared", "stackable-telemetry", @@ -2674,24 +2628,24 @@ dependencies = [ [[package]] name = "stackable-operator-derive" version = "0.3.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#d990019c690ed85aea29b095a03661c015676caa" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#958f62f2befdd984ad9fcd272d0214055c3a7601" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] name = "stackable-shared" version = "0.0.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#d990019c690ed85aea29b095a03661c015676caa" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#958f62f2befdd984ad9fcd272d0214055c3a7601" dependencies = [ "kube", "semver", "serde", "serde_yaml", - "snafu 0.8.5", + "snafu 0.8.6", ] [[package]] @@ -2710,7 +2664,7 @@ dependencies = [ "serde", "serde_json", "serde_yaml", - "snafu 0.8.5", + "snafu 0.8.6", "stackable-operator", "strum", "tokio", @@ -2720,8 +2674,8 @@ dependencies = [ [[package]] name = "stackable-telemetry" -version = "0.6.0" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#d990019c690ed85aea29b095a03661c015676caa" +version = "0.6.1" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#958f62f2befdd984ad9fcd272d0214055c3a7601" dependencies = [ "axum", "clap", @@ -2729,12 +2683,13 @@ dependencies = [ "opentelemetry", "opentelemetry-appender-tracing", "opentelemetry-otlp", + "opentelemetry-semantic-conventions", "opentelemetry_sdk", "pin-project", - "snafu 0.8.5", + "snafu 0.8.6", "strum", "tokio", - "tower 0.5.2", + "tower", "tracing", "tracing-appender", "tracing-opentelemetry", @@ -2743,26 +2698,32 @@ dependencies = [ [[package]] name = "stackable-versioned" -version = "0.7.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#d990019c690ed85aea29b095a03661c015676caa" +version = "0.8.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#958f62f2befdd984ad9fcd272d0214055c3a7601" dependencies = [ + "schemars", + "serde", + "serde_json", + "serde_yaml", + "snafu 0.8.6", "stackable-versioned-macros", ] [[package]] name = "stackable-versioned-macros" -version = "0.7.1" -source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#d990019c690ed85aea29b095a03661c015676caa" +version = "0.8.0" +source = "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#958f62f2befdd984ad9fcd272d0214055c3a7601" dependencies = [ "convert_case", "darling", + "indoc", "itertools", "k8s-openapi", "k8s-version", "kube", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -2790,7 +2751,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -2812,9 +2773,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.100" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -2832,13 +2793,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -2867,7 +2828,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -2878,17 +2839,16 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -2924,9 +2884,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -2934,17 +2894,19 @@ dependencies = [ [[package]] name = "tokio" -version = "1.44.2" +version = "1.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", + "slab", "socket2", "tokio-macros", "windows-sys 0.52.0", @@ -2958,7 +2920,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -2984,9 +2946,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.14" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" dependencies = [ "bytes", "futures-core", @@ -2998,29 +2960,29 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.9.0", + "indexmap", "toml_datetime", "winnow", ] [[package]] name = "tonic" -version = "0.12.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" +checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" dependencies = [ "async-trait", - "base64 0.22.1", + "base64", "bytes", "flate2", "http", @@ -3034,27 +2996,7 @@ dependencies = [ "prost", "tokio", "tokio-stream", - "tower 0.4.13", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util", + "tower", "tower-layer", "tower-service", "tracing", @@ -3068,7 +3010,9 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", + "indexmap", "pin-project-lite", + "slab", "sync_wrapper", "tokio", "tokio-util", @@ -3079,17 +3023,20 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.2" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "base64 0.22.1", + "base64", "bitflags", "bytes", + "futures-util", "http", "http-body", + "iri-string", "mime", "pin-project-lite", + "tower", "tower-layer", "tower-service", "tracing", @@ -3133,20 +3080,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -3177,9 +3124,9 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.30.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd8e764bd6f5813fd8bebc3117875190c5b0415be8f7f8059bffb6ecd979c444" +checksum = "ddcf5959f39507d0d04d6413119c04f33b623f4f951ebcbdddddfad2d0623a9c" dependencies = [ "js-sys", "once_cell", @@ -3284,12 +3231,6 @@ dependencies = [ "serde", ] -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -3331,9 +3272,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" @@ -3366,7 +3307,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", "wasm-bindgen-shared", ] @@ -3401,7 +3342,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3459,15 +3400,15 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.61.0" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", "windows-link", "windows-result", - "windows-strings 0.4.0", + "windows-strings", ] [[package]] @@ -3478,7 +3419,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -3489,49 +3430,29 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - -[[package]] -name = "windows-registry" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" -dependencies = [ - "windows-result", - "windows-strings 0.3.1", - "windows-targets 0.53.0", -] +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-result" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.3.1" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ "windows-link", ] [[package]] name = "windows-strings" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ "windows-link", ] @@ -3542,7 +3463,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -3551,7 +3472,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -3560,30 +3481,14 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" -dependencies = [ - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -3592,101 +3497,53 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - [[package]] name = "winnow" -version = "0.7.6" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" +checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" dependencies = [ "memchr", ] @@ -3700,29 +3557,23 @@ dependencies = [ "bitflags", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "xml-rs" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" +checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -3732,54 +3583,34 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", "synstructure", ] [[package]] name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy" -version = "0.8.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" -dependencies = [ - "zerocopy-derive 0.8.24", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", + "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.24" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] [[package]] @@ -3799,7 +3630,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", "synstructure", ] @@ -3809,11 +3640,22 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" dependencies = [ "yoke", "zerofrom", @@ -3822,11 +3664,11 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.100", + "syn 2.0.104", ] diff --git a/Cargo.nix b/Cargo.nix index f8f8d86e..4a31e0f5 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -120,25 +120,24 @@ rec { }; "adler2" = rec { crateName = "adler2"; - version = "2.0.0"; + version = "2.0.1"; edition = "2021"; - sha256 = "09r6drylvgy8vv8k20lnbvwq8gp09h7smfn6h1rxsy15pgh629si"; + sha256 = "1ymy18s9hs7ya1pjc9864l30wk8p2qfqdi7mhhcc5nfakxbij09j"; authors = [ "Jonas Schievink " "oyvindln " ]; features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; "default" = [ "std" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; + "rustc-dep-of-std" = [ "core" ]; }; }; "ahash" = rec { crateName = "ahash"; - version = "0.8.11"; + version = "0.8.12"; edition = "2018"; - sha256 = "04chdfkls5xmhp1d48gnjsmglbqibizs3bpbj6rsj604m10si7g8"; + sha256 = "0xbsp9rlm5ki017c0w6ay8kjwinwm8knjncci95mii30rmwz25as"; authors = [ "Tom Kaitchuck " ]; @@ -149,7 +148,7 @@ rec { } { name = "getrandom"; - packageId = "getrandom 0.2.15"; + packageId = "getrandom 0.3.3"; optional = true; } { @@ -161,7 +160,7 @@ rec { } { name = "zerocopy"; - packageId = "zerocopy 0.7.35"; + packageId = "zerocopy"; usesDefaultFeatures = false; features = [ "simd" ]; } @@ -173,7 +172,7 @@ rec { } ]; features = { - "atomic-polyfill" = [ "dep:atomic-polyfill" "once_cell/atomic-polyfill" ]; + "atomic-polyfill" = [ "dep:portable-atomic" "once_cell/critical-section" ]; "compile-time-rng" = [ "const-random" ]; "const-random" = [ "dep:const-random" ]; "default" = [ "std" "runtime-rng" ]; @@ -253,9 +252,9 @@ rec { }; "anstream" = rec { crateName = "anstream"; - version = "0.6.18"; + version = "0.6.19"; edition = "2021"; - sha256 = "16sjk4x3ns2c3ya1x28a44kh6p47c7vhk27251i015hik1lm7k4a"; + sha256 = "0crr9a207dyn8k66xgvhvmlxm9raiwpss3syfa35c6265s9z26ih"; dependencies = [ { name = "anstyle"; @@ -298,9 +297,9 @@ rec { }; "anstyle" = rec { crateName = "anstyle"; - version = "1.0.10"; + version = "1.0.11"; edition = "2021"; - sha256 = "1yai2vppmd7zlvlrp9grwll60knrmscalf8l2qpfz8b7y5lkpk2m"; + sha256 = "1gbbzi0zbgff405q14v8hhpi1kz2drzl9a75r3qhks47lindjbl6"; features = { "default" = [ "std" ]; }; @@ -308,9 +307,9 @@ rec { }; "anstyle-parse" = rec { crateName = "anstyle-parse"; - version = "0.2.6"; + version = "0.2.7"; edition = "2021"; - sha256 = "1acqayy22fwzsrvr6n0lz6a4zvjjcvgr5sm941m7m0b2fr81cb9v"; + sha256 = "1hhmkkfr95d462b3zf6yl2vfzdqfy5726ya572wwg8ha9y148xjf"; libName = "anstyle_parse"; dependencies = [ { @@ -328,9 +327,9 @@ rec { }; "anstyle-query" = rec { crateName = "anstyle-query"; - version = "1.1.2"; + version = "1.1.3"; edition = "2021"; - sha256 = "036nm3lkyk43xbps1yql3583fp4hg3b1600is7mcyxs1gzrpm53r"; + sha256 = "1sgs2hq54wayrmpvy784ww2ccv9f8yhhpasv12z872bx0jvdx2vc"; libName = "anstyle_query"; dependencies = [ { @@ -344,9 +343,9 @@ rec { }; "anstyle-wincon" = rec { crateName = "anstyle-wincon"; - version = "3.0.7"; + version = "3.0.9"; edition = "2021"; - sha256 = "0kmf0fq4c8yribdpdpylzz1zccpy84hizmcsac3wrac1f7kk8dfa"; + sha256 = "10n8mcgr89risdf35i73zc67aaa392bhggwzqlri1fv79297ags0"; libName = "anstyle_wincon"; dependencies = [ { @@ -354,8 +353,8 @@ rec { packageId = "anstyle"; } { - name = "once_cell"; - packageId = "once_cell"; + name = "once_cell_polyfill"; + packageId = "once_cell_polyfill"; target = { target, features }: (target."windows" or false); } { @@ -369,9 +368,9 @@ rec { }; "anyhow" = rec { crateName = "anyhow"; - version = "1.0.97"; + version = "1.0.98"; edition = "2018"; - sha256 = "0kvspbiwncmmkdgrwjrimsmbmhzxc641p5ql99l2rjq6smmdbznw"; + sha256 = "11ylvjdrcjs0q9jgk1af4r5cx1qppj63plxqkq595vmc24rjsvg1"; authors = [ "David Tolnay " ]; @@ -458,7 +457,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" "visit-mut" ]; } ]; @@ -485,7 +484,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; usesDefaultFeatures = false; features = [ "clone-impls" "full" "parsing" "printing" "proc-macro" "visit-mut" ]; } @@ -508,9 +507,9 @@ rec { }; "autocfg" = rec { crateName = "autocfg"; - version = "1.4.0"; + version = "1.5.0"; edition = "2015"; - sha256 = "09lz3by90d2hphbq56znag9v87gfpd9gb8nr82hll8z6x2nhprdc"; + sha256 = "1s77f98id9l4af4alklmzq46f21c980v13z2r1pcxx6bqgw0d1n0"; authors = [ "Josh Stone " ]; @@ -518,9 +517,9 @@ rec { }; "axum" = rec { crateName = "axum"; - version = "0.8.3"; + version = "0.8.4"; edition = "2021"; - sha256 = "1222spmyw5s2dfggwn62474jkh72ld52abkz5wjbkyg1024i0ify"; + sha256 = "1d99kb3vcjnhbgrf6hysllf25hzagw7m1i1nidjpgsaa30n8c7h2"; dependencies = [ { name = "axum-core"; @@ -625,7 +624,7 @@ rec { } { name = "tower"; - packageId = "tower 0.5.2"; + packageId = "tower"; usesDefaultFeatures = false; features = [ "util" ]; } @@ -668,7 +667,7 @@ rec { } { name = "tower"; - packageId = "tower 0.5.2"; + packageId = "tower"; rename = "tower"; features = [ "util" "timeout" "limit" "load-shed" "steer" "filter" ]; } @@ -693,7 +692,7 @@ rec { "tracing" = [ "dep:tracing" "axum-core/tracing" ]; "ws" = [ "dep:hyper" "tokio" "dep:tokio-tungstenite" "dep:sha1" "dep:base64" ]; }; - resolvedDefaultFeatures = [ "default" "form" "http1" "json" "matched-path" "original-uri" "query" "tokio" "tower-log" "tracing" ]; + resolvedDefaultFeatures = [ "default" "form" "http1" "http2" "json" "matched-path" "original-uri" "query" "tokio" "tower-log" "tracing" ]; }; "axum-core" = rec { crateName = "axum-core"; @@ -761,9 +760,9 @@ rec { }; "backon" = rec { crateName = "backon"; - version = "1.5.0"; + version = "1.5.1"; edition = "2021"; - sha256 = "15k4p6xyxi4lkiyw5yxrmcws3wwnwjacgcqqmd2dvfldnyqm02zx"; + sha256 = "1rwr3ycl69vycyaxrhwzfjcwyqf7pawfq9zi88n4l9ks6pssybih"; dependencies = [ { name = "fastrand"; @@ -814,9 +813,9 @@ rec { }; "backtrace" = rec { crateName = "backtrace"; - version = "0.3.74"; + version = "0.3.75"; edition = "2021"; - sha256 = "06pfif7nwx66qf2zaanc2fcq7m64i91ki9imw9xd3bnz5hrwp0ld"; + sha256 = "00hhizz29mvd7cdqyz5wrj98vqkihgcxmv2vl7z0d0f53qrac1k8"; authors = [ "The Rust Project Developers" ]; @@ -856,34 +855,20 @@ rec { } { name = "windows-targets"; - packageId = "windows-targets 0.52.6"; - target = { target, features }: (target."windows" or false); + packageId = "windows-targets"; + target = { target, features }: ((target."windows" or false) || ("cygwin" == target."os" or null)); } ]; features = { "cpp_demangle" = [ "dep:cpp_demangle" ]; "default" = [ "std" ]; + "ruzstd" = [ "dep:ruzstd" ]; "serde" = [ "dep:serde" ]; "serialize-serde" = [ "serde" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; - "base64 0.21.7" = rec { - crateName = "base64"; - version = "0.21.7"; - edition = "2018"; - sha256 = "0rw52yvsk75kar9wgqfwgb414kvil1gn7mqkrhn9zf1537mpsacx"; - authors = [ - "Alice Maz " - "Marshall Pierce " - ]; - features = { - "default" = [ "std" ]; - "std" = [ "alloc" ]; - }; - resolvedDefaultFeatures = [ "alloc" "default" "std" ]; - }; - "base64 0.22.1" = rec { + "base64" = rec { crateName = "base64"; version = "0.22.1"; edition = "2018"; @@ -938,9 +923,9 @@ rec { }; "bitflags" = rec { crateName = "bitflags"; - version = "2.9.0"; + version = "2.9.1"; edition = "2021"; - sha256 = "1gb5w7pxnmx8l2bjz1i6rkbwbm2167k294rhy6cl1y3vbc8i90jw"; + sha256 = "0rz9rpp5wywwqb3mxfkywh4drmzci2fch780q7lifbf6bsc5d3hv"; authors = [ "The Rust Project Developers" ]; @@ -1004,14 +989,15 @@ rec { }; "bumpalo" = rec { crateName = "bumpalo"; - version = "3.17.0"; + version = "3.19.0"; edition = "2021"; - sha256 = "1gxxsn2fsjmv03g8p3m749mczv2k4m8xspifs5l7bcx0vx3gna0n"; + sha256 = "0hsdndvcpqbjb85ghrhska2qxvp9i75q2vb70hma9fxqawdy9ia6"; authors = [ "Nick Fitzgerald " ]; features = { "allocator-api2" = [ "dep:allocator-api2" ]; + "bench_allocator_api" = [ "allocator_api" "blink-alloc/nightly" ]; "serde" = [ "dep:serde" ]; }; resolvedDefaultFeatures = [ "default" ]; @@ -1034,9 +1020,9 @@ rec { }; "cc" = rec { crateName = "cc"; - version = "1.2.18"; + version = "1.2.29"; edition = "2018"; - sha256 = "0p6d2pfyrjgqpf2w399wzj4hmyffj6g0gyzg3pdy6xl3gmhlcl2j"; + sha256 = "0qlkaspjmywvjyfqhpv2x4kwrqs6b69zg33wfi2l8fg2im9rj5aw"; authors = [ "Alex Crichton " ]; @@ -1066,24 +1052,23 @@ rec { }; "cfg-if" = rec { crateName = "cfg-if"; - version = "1.0.0"; + version = "1.0.1"; edition = "2018"; - sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds"; + sha256 = "0s0jr5j797q1vqjcd41l0v5izlmlqm7lxy512b418xz5r65mfmcm"; libName = "cfg_if"; authors = [ "Alex Crichton " ]; features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; + "rustc-dep-of-std" = [ "core" ]; }; }; "chrono" = rec { crateName = "chrono"; - version = "0.4.40"; + version = "0.4.41"; edition = "2021"; - sha256 = "0z334kqnvq5zx6xsq1k6zk8g9z14fgk2w3vkn4n13pvi3mhn8y8s"; + sha256 = "0k8wy2mph0mgipq28vv3wirivhb31pqs7jyid0dzjivz0i9djsf4"; dependencies = [ { name = "android-tzdata"; @@ -1142,10 +1127,10 @@ rec { }; "clap" = rec { crateName = "clap"; - version = "4.5.35"; + version = "4.5.41"; edition = "2021"; crateBin = []; - sha256 = "0i1rnz7mwbhs5qf10r6vmrkplkzm3477khkwz189rha49f9qdanq"; + sha256 = "1ydd3a22bxkn2a7bajnw57cwjhawqciyhz2x3rqm8fi4h0pd74my"; dependencies = [ { name = "clap_builder"; @@ -1184,9 +1169,9 @@ rec { }; "clap_builder" = rec { crateName = "clap_builder"; - version = "4.5.35"; + version = "4.5.41"; edition = "2021"; - sha256 = "1nczcw6cc49ap99nn3v3n0vrv7j74zin34palq6ji586vnrdn514"; + sha256 = "0g8w6da5y13kv93psl8c00c7f4q01753wmwx84wr2bv2x50snzkh"; dependencies = [ { name = "anstream"; @@ -1223,9 +1208,9 @@ rec { }; "clap_derive" = rec { crateName = "clap_derive"; - version = "4.5.32"; + version = "4.5.41"; edition = "2021"; - sha256 = "1mqcag8qapb5yhygg2hi153kzmbf7w5hqp3nl3fvl5cn4yp6l5q9"; + sha256 = "14glxqpfjs7z6m37f3ycrhgdkpyqmgwbr4vk1y34rjjrd8w54kzg"; procMacro = true; dependencies = [ { @@ -1242,7 +1227,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" ]; } ]; @@ -1255,16 +1240,16 @@ rec { }; "clap_lex" = rec { crateName = "clap_lex"; - version = "0.7.4"; + version = "0.7.5"; edition = "2021"; - sha256 = "19nwfls5db269js5n822vkc8dw0wjq2h1wf0hgr06ld2g52d2spl"; + sha256 = "0xb6pjza43irrl99axbhs12pxq4sr8x7xd36p703j57f5i3n2kxr"; }; "colorchoice" = rec { crateName = "colorchoice"; - version = "1.0.3"; + version = "1.0.4"; edition = "2021"; - sha256 = "1439m3r3jy3xqck8aa13q658visn71ki76qa93cy55wkmalwlqsv"; + sha256 = "0x8ymkz1xr77rcj1cfanhf416pc4v681gmkc9dzb3jqja7f62nxh"; }; "concurrent-queue" = rec { @@ -1376,11 +1361,11 @@ rec { "random" = [ "rand" ]; }; }; - "core-foundation 0.10.0" = rec { + "core-foundation 0.10.1" = rec { crateName = "core-foundation"; - version = "0.10.0"; - edition = "2018"; - sha256 = "0qscay14s2rwkg8nd8ljhiaf149hj8sfy95d70zssy64r3jp2lmm"; + version = "0.10.1"; + edition = "2021"; + sha256 = "1xjns6dqf36rni2x9f47b65grxwdm20kwdg9lhmzdrrkwadcv9mj"; libName = "core_foundation"; authors = [ "The Servo Project Developers" @@ -1401,8 +1386,7 @@ rec { "link" = [ "core-foundation-sys/link" ]; "mac_os_10_7_support" = [ "core-foundation-sys/mac_os_10_7_support" ]; "mac_os_10_8_features" = [ "core-foundation-sys/mac_os_10_8_features" ]; - "uuid" = [ "dep:uuid" ]; - "with-uuid" = [ "uuid" ]; + "with-uuid" = [ "dep:uuid" ]; }; resolvedDefaultFeatures = [ "default" "link" ]; }; @@ -1622,7 +1606,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" "extra-traits" ]; } ]; @@ -1652,7 +1636,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; } ]; @@ -1678,7 +1662,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" "visit-mut" ]; } ]; @@ -1780,7 +1764,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; } ]; features = { @@ -1856,7 +1840,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; } ]; features = { @@ -1949,13 +1933,13 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; } ]; devDependencies = [ { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" ]; } ]; @@ -2058,7 +2042,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; } ]; features = { @@ -2192,9 +2176,9 @@ rec { }; "flate2" = rec { crateName = "flate2"; - version = "1.1.1"; + version = "1.1.2"; edition = "2018"; - sha256 = "1kpycx57dqpkr3vp53b4nq75p9mflh0smxy8hkys4v4ndvkr5vbw"; + sha256 = "07abz7v50lkdr5fjw8zaw2v8gm2vbppc0f7nqm8x3v3gb6wpsgaa"; authors = [ "Alex Crichton " "Josh Triplett " @@ -2461,7 +2445,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" ]; } ]; @@ -2626,11 +2610,11 @@ rec { }; resolvedDefaultFeatures = [ "more_lengths" ]; }; - "getrandom 0.2.15" = rec { + "getrandom 0.2.16" = rec { crateName = "getrandom"; - version = "0.2.15"; + version = "0.2.16"; edition = "2018"; - sha256 = "1mzlnrb3dgyd1fb84gvw10pyr8wdqdl4ry4sr64i1s8an66pqmn4"; + sha256 = "14l5aaia20cc6cc08xdlhrzmfcylmrnprwnna20lqf746pqzjprk"; authors = [ "The Rand Project Developers" ]; @@ -2647,7 +2631,7 @@ rec { } { name = "wasi"; - packageId = "wasi 0.11.0+wasi-snapshot-preview1"; + packageId = "wasi 0.11.1+wasi-snapshot-preview1"; usesDefaultFeatures = false; target = { target, features }: ("wasi" == target."os" or null); } @@ -2660,13 +2644,12 @@ rec { "rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ]; "wasm-bindgen" = [ "dep:wasm-bindgen" ]; }; - resolvedDefaultFeatures = [ "std" ]; }; - "getrandom 0.3.2" = rec { + "getrandom 0.3.3" = rec { crateName = "getrandom"; - version = "0.3.2"; + version = "0.3.3"; edition = "2021"; - sha256 = "1w2mlixa1989v7czr68iji7h67yra2pbg3s480wsqjza1r2sizkk"; + sha256 = "1x6jl875zp6b2b6qp9ghc84b0l76bvng2lvm8zfcmwjl7rb5w516"; authors = [ "The Rand Project Developers" ]; @@ -2761,9 +2744,9 @@ rec { }; "git2" = rec { crateName = "git2"; - version = "0.20.1"; + version = "0.20.2"; edition = "2018"; - sha256 = "1fgf67h78yrw2gm1n8ghgr0jwsbkvmjfhnbng9zrm2n68jxbh82j"; + sha256 = "0451zzmvblvlrj6y6pgdsxrqh42hi789n3k9lp0hslmi6fhhgsrd"; authors = [ "Josh Triplett " "Alex Crichton " @@ -2849,9 +2832,9 @@ rec { }; "h2" = rec { crateName = "h2"; - version = "0.4.8"; + version = "0.4.11"; edition = "2021"; - sha256 = "1hp3lijg1br982kzgglb5ks2ibg68a76z3rl052r8c5vyi7jj5sh"; + sha256 = "118771sqbsa6cn48y9waxq24jx80f5xy8af0lq5ixq7ifsi51nhp"; authors = [ "Carl Lerche " "Sean McArthur " @@ -2885,7 +2868,7 @@ rec { } { name = "indexmap"; - packageId = "indexmap 2.9.0"; + packageId = "indexmap"; features = [ "std" ]; } { @@ -2919,33 +2902,11 @@ rec { features = { }; }; - "hashbrown 0.12.3" = rec { - crateName = "hashbrown"; - version = "0.12.3"; - edition = "2021"; - sha256 = "1268ka4750pyg2pbgsr43f0289l5zah4arir2k4igx5a8c6fg7la"; - authors = [ - "Amanieu d'Antras " - ]; - features = { - "ahash" = [ "dep:ahash" ]; - "ahash-compile-time-rng" = [ "ahash/compile-time-rng" ]; - "alloc" = [ "dep:alloc" ]; - "bumpalo" = [ "dep:bumpalo" ]; - "compiler_builtins" = [ "dep:compiler_builtins" ]; - "core" = [ "dep:core" ]; - "default" = [ "ahash" "inline-more" ]; - "rayon" = [ "dep:rayon" ]; - "rustc-dep-of-std" = [ "nightly" "core" "compiler_builtins" "alloc" "rustc-internal-api" ]; - "serde" = [ "dep:serde" ]; - }; - resolvedDefaultFeatures = [ "raw" ]; - }; - "hashbrown 0.15.2" = rec { + "hashbrown" = rec { crateName = "hashbrown"; - version = "0.15.2"; + version = "0.15.4"; edition = "2021"; - sha256 = "12dj0yfn59p3kh3679ac0w1fagvzf4z2zp87a13gbbqbzw0185dz"; + sha256 = "1mg045sm1nm00cwjm7ndi80hcmmv1v3z7gnapxyhd9qxc62sqwar"; authors = [ "Amanieu d'Antras " ]; @@ -2973,30 +2934,29 @@ rec { features = { "alloc" = [ "dep:alloc" ]; "allocator-api2" = [ "dep:allocator-api2" ]; - "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; "default" = [ "default-hasher" "inline-more" "allocator-api2" "equivalent" "raw-entry" ]; "default-hasher" = [ "dep:foldhash" ]; "equivalent" = [ "dep:equivalent" ]; - "nightly" = [ "allocator-api2?/nightly" "bumpalo/allocator_api" ]; + "nightly" = [ "bumpalo/allocator_api" ]; "rayon" = [ "dep:rayon" ]; - "rustc-dep-of-std" = [ "nightly" "core" "compiler_builtins" "alloc" "rustc-internal-api" "raw-entry" ]; + "rustc-dep-of-std" = [ "nightly" "core" "alloc" "rustc-internal-api" ]; "serde" = [ "dep:serde" ]; }; resolvedDefaultFeatures = [ "allocator-api2" "default" "default-hasher" "equivalent" "inline-more" "raw-entry" ]; }; "headers" = rec { crateName = "headers"; - version = "0.4.0"; - edition = "2015"; - sha256 = "1abari69kjl2yv2dg06g2x17qgd1a20xp7aqmmg2vfhcppk0c89j"; + version = "0.4.1"; + edition = "2018"; + sha256 = "1sr4zygaq1b2f0k7b5l8vx5vp05wvd82w7vpavgvr52xvdd4scdk"; authors = [ "Sean McArthur " ]; dependencies = [ { name = "base64"; - packageId = "base64 0.21.7"; + packageId = "base64"; } { name = "bytes"; @@ -3415,16 +3375,11 @@ rec { }; "hyper-rustls" = rec { crateName = "hyper-rustls"; - version = "0.27.5"; + version = "0.27.7"; edition = "2021"; - sha256 = "1cjr3yf3x5mr3194llsfibacl6j7n2dknii2dwjha4ysyf1ia69d"; + sha256 = "0n6g8998szbzhnvcs1b7ibn745grxiqmlpg53xz206v826v3xjg3"; libName = "hyper_rustls"; dependencies = [ - { - name = "futures-util"; - packageId = "futures-util"; - usesDefaultFeatures = false; - } { name = "http"; packageId = "http"; @@ -3564,14 +3519,19 @@ rec { }; "hyper-util" = rec { crateName = "hyper-util"; - version = "0.1.11"; + version = "0.1.15"; edition = "2021"; - sha256 = "1wj3svb1r6yv6kgk5fsz6wwajmngc4zxcw4wxpwlmpbgl8rvqys9"; + sha256 = "1pyi2h8idwyadljs95gpihjvkfkmcxi5vn7s882vy0kg9jyxarkz"; libName = "hyper_util"; authors = [ "Sean McArthur " ]; dependencies = [ + { + name = "base64"; + packageId = "base64"; + optional = true; + } { name = "bytes"; packageId = "bytes"; @@ -3581,9 +3541,14 @@ rec { packageId = "futures-channel"; optional = true; } + { + name = "futures-core"; + packageId = "futures-core"; + } { name = "futures-util"; packageId = "futures-util"; + optional = true; usesDefaultFeatures = false; } { @@ -3598,11 +3563,21 @@ rec { name = "hyper"; packageId = "hyper"; } + { + name = "ipnet"; + packageId = "ipnet"; + optional = true; + } { name = "libc"; packageId = "libc"; optional = true; } + { + name = "percent-encoding"; + packageId = "percent-encoding"; + optional = true; + } { name = "pin-project-lite"; packageId = "pin-project-lite"; @@ -3637,6 +3612,12 @@ rec { name = "bytes"; packageId = "bytes"; } + { + name = "futures-util"; + packageId = "futures-util"; + usesDefaultFeatures = false; + features = [ "alloc" ]; + } { name = "hyper"; packageId = "hyper"; @@ -3650,18 +3631,20 @@ rec { ]; features = { "client" = [ "hyper/client" "dep:tracing" "dep:futures-channel" "dep:tower-service" ]; - "client-legacy" = [ "client" "dep:socket2" "tokio/sync" "dep:libc" ]; - "full" = [ "client" "client-legacy" "server" "server-auto" "server-graceful" "service" "http1" "http2" "tokio" "tracing" ]; + "client-legacy" = [ "client" "dep:socket2" "tokio/sync" "dep:libc" "dep:futures-util" ]; + "client-proxy" = [ "client" "dep:base64" "dep:ipnet" "dep:percent-encoding" ]; + "client-proxy-system" = [ "dep:system-configuration" "dep:windows-registry" ]; + "full" = [ "client" "client-legacy" "client-proxy" "client-proxy-system" "server" "server-auto" "server-graceful" "service" "http1" "http2" "tokio" "tracing" ]; "http1" = [ "hyper/http1" ]; "http2" = [ "hyper/http2" ]; "server" = [ "hyper/server" ]; "server-auto" = [ "server" "http1" "http2" ]; - "server-graceful" = [ "server" "tokio/sync" "futures-util/alloc" ]; + "server-graceful" = [ "server" "tokio/sync" ]; "service" = [ "dep:tower-service" ]; "tokio" = [ "dep:tokio" "tokio/net" "tokio/rt" "tokio/time" ]; "tracing" = [ "dep:tracing" ]; }; - resolvedDefaultFeatures = [ "client" "client-legacy" "default" "http1" "server" "service" "tokio" "tracing" ]; + resolvedDefaultFeatures = [ "client" "client-legacy" "client-proxy" "default" "http1" "http2" "server" "service" "tokio" "tracing" ]; }; "iana-time-zone" = rec { crateName = "iana-time-zone"; @@ -3734,9 +3717,9 @@ rec { }; "icu_collections" = rec { crateName = "icu_collections"; - version = "1.5.0"; + version = "2.0.0"; edition = "2021"; - sha256 = "09j5kskirl59mvqc8kabhy7005yyy7dp88jw9f6f3gkf419a8byv"; + sha256 = "0izfgypv1hsxlz1h8fc2aak641iyvkak16aaz5b4aqg3s3sp4010"; authors = [ "The ICU4X Project Developers" ]; @@ -3746,6 +3729,12 @@ rec { packageId = "displaydoc"; usesDefaultFeatures = false; } + { + name = "potential_utf"; + packageId = "potential_utf"; + usesDefaultFeatures = false; + features = [ "zerovec" ]; + } { name = "yoke"; packageId = "yoke"; @@ -3766,15 +3755,16 @@ rec { } ]; features = { + "alloc" = [ "zerovec/alloc" ]; "databake" = [ "dep:databake" "zerovec/databake" ]; - "serde" = [ "dep:serde" "zerovec/serde" ]; + "serde" = [ "dep:serde" "zerovec/serde" "potential_utf/serde" "alloc" ]; }; }; - "icu_locid" = rec { - crateName = "icu_locid"; - version = "1.5.0"; + "icu_locale_core" = rec { + crateName = "icu_locale_core"; + version = "2.0.0"; edition = "2021"; - sha256 = "0dznvd1c5b02iilqm044q4hvar0sqibq1z46prqwjzwif61vpb0k"; + sha256 = "02phv7vwhyx6vmaqgwkh2p4kc2kciykv2px6g4h8glxfrh02gphc"; authors = [ "The ICU4X Project Developers" ]; @@ -3809,82 +3799,17 @@ rec { } ]; features = { - "bench" = [ "serde" ]; - "databake" = [ "dep:databake" ]; - "serde" = [ "dep:serde" "tinystr/serde" ]; - "zerovec" = [ "dep:zerovec" ]; + "databake" = [ "dep:databake" "alloc" ]; + "serde" = [ "dep:serde" "tinystr/serde" "alloc" ]; + "zerovec" = [ "dep:zerovec" "tinystr/zerovec" ]; }; resolvedDefaultFeatures = [ "zerovec" ]; }; - "icu_locid_transform" = rec { - crateName = "icu_locid_transform"; - version = "1.5.0"; - edition = "2021"; - sha256 = "0kmmi1kmj9yph6mdgkc7v3wz6995v7ly3n80vbg0zr78bp1iml81"; - authors = [ - "The ICU4X Project Developers" - ]; - dependencies = [ - { - name = "displaydoc"; - packageId = "displaydoc"; - usesDefaultFeatures = false; - } - { - name = "icu_locid"; - packageId = "icu_locid"; - usesDefaultFeatures = false; - features = [ "zerovec" ]; - } - { - name = "icu_locid_transform_data"; - packageId = "icu_locid_transform_data"; - optional = true; - usesDefaultFeatures = false; - } - { - name = "icu_provider"; - packageId = "icu_provider"; - usesDefaultFeatures = false; - features = [ "macros" ]; - } - { - name = "tinystr"; - packageId = "tinystr"; - usesDefaultFeatures = false; - features = [ "alloc" "zerovec" ]; - } - { - name = "zerovec"; - packageId = "zerovec"; - usesDefaultFeatures = false; - features = [ "yoke" ]; - } - ]; - features = { - "bench" = [ "serde" ]; - "compiled_data" = [ "dep:icu_locid_transform_data" ]; - "datagen" = [ "serde" "dep:databake" "zerovec/databake" "icu_locid/databake" "tinystr/databake" ]; - "default" = [ "compiled_data" ]; - "serde" = [ "dep:serde" "icu_locid/serde" "tinystr/serde" "zerovec/serde" "icu_provider/serde" ]; - }; - resolvedDefaultFeatures = [ "compiled_data" ]; - }; - "icu_locid_transform_data" = rec { - crateName = "icu_locid_transform_data"; - version = "1.5.1"; - edition = "2021"; - sha256 = "07gignya9gzynnyds88bmra4blq9jxzgrcss43vzk2q9h7byc5bm"; - authors = [ - "The ICU4X Project Developers" - ]; - - }; "icu_normalizer" = rec { crateName = "icu_normalizer"; - version = "1.5.0"; + version = "2.0.0"; edition = "2021"; - sha256 = "0kx8qryp8ma8fw1vijbgbnf7zz9f2j4d14rw36fmjs7cl86kxkhr"; + sha256 = "0ybrnfnxx4sf09gsrxri8p48qifn54il6n3dq2xxgx4dw7l80s23"; authors = [ "The ICU4X Project Developers" ]; @@ -3908,63 +3833,42 @@ rec { { name = "icu_properties"; packageId = "icu_properties"; + optional = true; usesDefaultFeatures = false; } { name = "icu_provider"; packageId = "icu_provider"; usesDefaultFeatures = false; - features = [ "macros" ]; } { name = "smallvec"; packageId = "smallvec"; usesDefaultFeatures = false; } - { - name = "utf16_iter"; - packageId = "utf16_iter"; - usesDefaultFeatures = false; - } - { - name = "utf8_iter"; - packageId = "utf8_iter"; - usesDefaultFeatures = false; - } - { - name = "write16"; - packageId = "write16"; - usesDefaultFeatures = false; - features = [ "alloc" ]; - } { name = "zerovec"; packageId = "zerovec"; usesDefaultFeatures = false; } ]; - devDependencies = [ - { - name = "write16"; - packageId = "write16"; - usesDefaultFeatures = false; - features = [ "arrayvec" ]; - } - ]; features = { - "compiled_data" = [ "dep:icu_normalizer_data" "icu_properties/compiled_data" ]; - "datagen" = [ "serde" "dep:databake" "icu_collections/databake" "zerovec/databake" "icu_properties/datagen" ]; - "default" = [ "compiled_data" ]; - "serde" = [ "dep:serde" "icu_collections/serde" "zerovec/serde" "icu_properties/serde" ]; - "std" = [ "icu_collections/std" "icu_properties/std" "icu_provider/std" ]; + "compiled_data" = [ "dep:icu_normalizer_data" "icu_properties?/compiled_data" "icu_provider/baked" ]; + "datagen" = [ "serde" "dep:databake" "icu_properties" "icu_collections/databake" "zerovec/databake" "icu_properties?/datagen" "icu_provider/export" ]; + "default" = [ "compiled_data" "utf8_iter" "utf16_iter" ]; + "icu_properties" = [ "dep:icu_properties" ]; + "serde" = [ "dep:serde" "icu_collections/serde" "zerovec/serde" "icu_properties?/serde" "icu_provider/serde" ]; + "utf16_iter" = [ "dep:utf16_iter" "write16" ]; + "utf8_iter" = [ "dep:utf8_iter" ]; + "write16" = [ "dep:write16" ]; }; - resolvedDefaultFeatures = [ "compiled_data" "default" ]; + resolvedDefaultFeatures = [ "compiled_data" ]; }; "icu_normalizer_data" = rec { crateName = "icu_normalizer_data"; - version = "1.5.1"; + version = "2.0.0"; edition = "2021"; - sha256 = "1dqcm86spcqcs4jnra81yqq3g5bpw6bvf5iz621spj5x52137s65"; + sha256 = "1lvjpzxndyhhjyzd1f6vi961gvzhj244nribfpdqxjdgjdl0s880"; authors = [ "The ICU4X Project Developers" ]; @@ -3972,9 +3876,9 @@ rec { }; "icu_properties" = rec { crateName = "icu_properties"; - version = "1.5.1"; + version = "2.0.1"; edition = "2021"; - sha256 = "1xgf584rx10xc1p7zjr78k0n4zn3g23rrg6v2ln31ingcq3h5mlk"; + sha256 = "0az349pjg8f18lrjbdmxcpg676a7iz2ibc09d2wfz57b3sf62v01"; authors = [ "The ICU4X Project Developers" ]; @@ -3990,11 +3894,10 @@ rec { usesDefaultFeatures = false; } { - name = "icu_locid_transform"; - packageId = "icu_locid_transform"; - optional = true; + name = "icu_locale_core"; + packageId = "icu_locale_core"; usesDefaultFeatures = false; - features = [ "compiled_data" ]; + features = [ "zerovec" ]; } { name = "icu_properties_data"; @@ -4006,36 +3909,41 @@ rec { name = "icu_provider"; packageId = "icu_provider"; usesDefaultFeatures = false; - features = [ "macros" ]; } { - name = "tinystr"; - packageId = "tinystr"; + name = "potential_utf"; + packageId = "potential_utf"; + usesDefaultFeatures = false; + features = [ "zerovec" ]; + } + { + name = "zerotrie"; + packageId = "zerotrie"; usesDefaultFeatures = false; - features = [ "alloc" "zerovec" ]; + features = [ "yoke" "zerofrom" ]; } { name = "zerovec"; packageId = "zerovec"; usesDefaultFeatures = false; - features = [ "derive" ]; + features = [ "derive" "yoke" ]; } ]; features = { - "bidi" = [ "dep:unicode-bidi" ]; - "compiled_data" = [ "dep:icu_properties_data" "dep:icu_locid_transform" ]; - "datagen" = [ "serde" "dep:databake" "zerovec/databake" "icu_collections/databake" "tinystr/databake" ]; + "alloc" = [ "zerovec/alloc" "icu_collections/alloc" ]; + "compiled_data" = [ "dep:icu_properties_data" "icu_provider/baked" ]; + "datagen" = [ "serde" "dep:databake" "potential_utf/databake" "zerovec/databake" "icu_collections/databake" "icu_locale_core/databake" "zerotrie/databake" "icu_provider/export" ]; "default" = [ "compiled_data" ]; - "serde" = [ "dep:serde" "tinystr/serde" "zerovec/serde" "icu_collections/serde" "icu_provider/serde" ]; - "std" = [ "icu_collections/std" "icu_provider/std" ]; + "serde" = [ "dep:serde" "icu_locale_core/serde" "potential_utf/serde" "zerovec/serde" "icu_collections/serde" "icu_provider/serde" "zerotrie/serde" ]; + "unicode_bidi" = [ "dep:unicode-bidi" ]; }; - resolvedDefaultFeatures = [ "compiled_data" "default" ]; + resolvedDefaultFeatures = [ "compiled_data" ]; }; "icu_properties_data" = rec { crateName = "icu_properties_data"; - version = "1.5.1"; + version = "2.0.1"; edition = "2021"; - sha256 = "1qm5vf17nyiwb87s3g9x9fsj32gkv4a7q7d2sblawx9vfncqgyw5"; + sha256 = "0cnn3fkq6k88w7p86w7hsd1254s4sl783rpz4p6hlccq74a5k119"; authors = [ "The ICU4X Project Developers" ]; @@ -4043,9 +3951,9 @@ rec { }; "icu_provider" = rec { crateName = "icu_provider"; - version = "1.5.0"; + version = "2.0.0"; edition = "2021"; - sha256 = "1nb8vvgw8dv2inqklvk05fs0qxzkw8xrg2n9vgid6y7gm3423m3f"; + sha256 = "1bz5v02gxv1i06yhdhs2kbwxkw3ny9r2vvj9j288fhazgfi0vj03"; authors = [ "The ICU4X Project Developers" ]; @@ -4056,14 +3964,8 @@ rec { usesDefaultFeatures = false; } { - name = "icu_locid"; - packageId = "icu_locid"; - usesDefaultFeatures = false; - } - { - name = "icu_provider_macros"; - packageId = "icu_provider_macros"; - optional = true; + name = "icu_locale_core"; + packageId = "icu_locale_core"; usesDefaultFeatures = false; } { @@ -4093,6 +3995,12 @@ rec { usesDefaultFeatures = false; features = [ "alloc" "derive" ]; } + { + name = "zerotrie"; + packageId = "zerotrie"; + optional = true; + usesDefaultFeatures = false; + } { name = "zerovec"; packageId = "zerovec"; @@ -4101,42 +4009,18 @@ rec { } ]; features = { - "datagen" = [ "serde" "dep:erased-serde" "dep:databake" "std" "sync" ]; + "alloc" = [ "icu_locale_core/alloc" "zerovec/alloc" "zerotrie/alloc" ]; + "baked" = [ "zerotrie" ]; "deserialize_bincode_1" = [ "serde" "dep:bincode" "std" ]; "deserialize_json" = [ "serde" "dep:serde_json" ]; "deserialize_postcard_1" = [ "serde" "dep:postcard" ]; - "log_error_context" = [ "logging" ]; + "export" = [ "serde" "dep:erased-serde" "dep:databake" "std" "sync" "dep:postcard" "zerovec/databake" ]; "logging" = [ "dep:log" ]; - "macros" = [ "dep:icu_provider_macros" ]; "serde" = [ "dep:serde" "yoke/serde" ]; - "std" = [ "icu_locid/std" ]; + "std" = [ "alloc" ]; + "zerotrie" = [ "dep:zerotrie" ]; }; - resolvedDefaultFeatures = [ "macros" ]; - }; - "icu_provider_macros" = rec { - crateName = "icu_provider_macros"; - version = "1.5.0"; - edition = "2021"; - sha256 = "1mjs0w7fcm2lcqmbakhninzrjwqs485lkps4hz0cv3k36y9rxj0y"; - procMacro = true; - authors = [ - "The ICU4X Project Developers" - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn 2.0.100"; - } - ]; - + resolvedDefaultFeatures = [ "baked" "zerotrie" ]; }; "ident_case" = rec { crateName = "ident_case"; @@ -4180,9 +4064,9 @@ rec { }; "idna_adapter" = rec { crateName = "idna_adapter"; - version = "1.2.0"; + version = "1.2.1"; edition = "2021"; - sha256 = "0wggnkiivaj5lw0g0384ql2d7zk4ppkn3b1ry4n0ncjpr7qivjns"; + sha256 = "0i0339pxig6mv786nkqcxnwqa87v4m94b2653f6k3aj0jmhfkjis"; authors = [ "The rust-url developers" ]; @@ -4190,10 +4074,12 @@ rec { { name = "icu_normalizer"; packageId = "icu_normalizer"; + usesDefaultFeatures = false; } { name = "icu_properties"; packageId = "icu_properties"; + usesDefaultFeatures = false; } ]; features = { @@ -4201,39 +4087,11 @@ rec { }; resolvedDefaultFeatures = [ "compiled_data" ]; }; - "indexmap 1.9.3" = rec { - crateName = "indexmap"; - version = "1.9.3"; - edition = "2021"; - sha256 = "16dxmy7yvk51wvnih3a3im6fp5lmx0wx76i03n06wyak6cwhw1xx"; - dependencies = [ - { - name = "hashbrown"; - packageId = "hashbrown 0.12.3"; - usesDefaultFeatures = false; - features = [ "raw" ]; - } - ]; - buildDependencies = [ - { - name = "autocfg"; - packageId = "autocfg"; - } - ]; - features = { - "arbitrary" = [ "dep:arbitrary" ]; - "quickcheck" = [ "dep:quickcheck" ]; - "rayon" = [ "dep:rayon" ]; - "rustc-rayon" = [ "dep:rustc-rayon" ]; - "serde" = [ "dep:serde" ]; - "serde-1" = [ "serde" ]; - }; - }; - "indexmap 2.9.0" = rec { + "indexmap" = rec { crateName = "indexmap"; - version = "2.9.0"; + version = "2.10.0"; edition = "2021"; - sha256 = "07m15a571yywmvqyb7ms717q9n42b46badbpsmx215jrg7dhv9yf"; + sha256 = "0qd6g26gxzl6dbf132w48fa8rr95glly3jhbk90i29726d9xhk7y"; dependencies = [ { name = "equivalent"; @@ -4242,7 +4100,7 @@ rec { } { name = "hashbrown"; - packageId = "hashbrown 0.15.2"; + packageId = "hashbrown"; usesDefaultFeatures = false; } ]; @@ -4267,24 +4125,88 @@ rec { ]; }; - "ipnet" = rec { - crateName = "ipnet"; - version = "2.11.0"; - edition = "2018"; - sha256 = "0c5i9sfi2asai28m8xp48k5gvwkqrg5ffpi767py6mzsrswv17s6"; + "io-uring" = rec { + crateName = "io-uring"; + version = "0.7.8"; + edition = "2021"; + sha256 = "04whnj5a4pml44jhsmmf4p87bpgr7swkcijx4yjcng8900pj0vmq"; + libName = "io_uring"; authors = [ - "Kris Price " + "quininer " ]; - features = { - "default" = [ "std" ]; - "heapless" = [ "dep:heapless" ]; - "json" = [ "serde" "schemars" ]; - "schemars" = [ "dep:schemars" ]; + dependencies = [ + { + name = "bitflags"; + packageId = "bitflags"; + } + { + name = "cfg-if"; + packageId = "cfg-if"; + } + { + name = "libc"; + packageId = "libc"; + usesDefaultFeatures = false; + } + ]; + features = { + "bindgen" = [ "dep:bindgen" ]; + "direct-syscall" = [ "sc" ]; + "overwrite" = [ "bindgen" ]; + "sc" = [ "dep:sc" ]; + }; + }; + "ipnet" = rec { + crateName = "ipnet"; + version = "2.11.0"; + edition = "2018"; + sha256 = "0c5i9sfi2asai28m8xp48k5gvwkqrg5ffpi767py6mzsrswv17s6"; + authors = [ + "Kris Price " + ]; + features = { + "default" = [ "std" ]; + "heapless" = [ "dep:heapless" ]; + "json" = [ "serde" "schemars" ]; + "schemars" = [ "dep:schemars" ]; "ser_as_str" = [ "heapless" ]; "serde" = [ "dep:serde" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; }; + "iri-string" = rec { + crateName = "iri-string"; + version = "0.7.8"; + edition = "2021"; + sha256 = "1cl0wfq97wq4s1p4dl0ix5cfgsc5fn7l22ljgw9ab9x1qglypifv"; + libName = "iri_string"; + authors = [ + "YOSHIOKA Takuma " + ]; + dependencies = [ + { + name = "memchr"; + packageId = "memchr"; + optional = true; + usesDefaultFeatures = false; + } + { + name = "serde"; + packageId = "serde"; + optional = true; + usesDefaultFeatures = false; + features = [ "derive" ]; + } + ]; + features = { + "alloc" = [ "serde?/alloc" ]; + "default" = [ "std" ]; + "memchr" = [ "dep:memchr" ]; + "serde" = [ "dep:serde" ]; + "std" = [ "alloc" "memchr?/std" "serde?/std" ]; + }; + resolvedDefaultFeatures = [ "alloc" "default" "std" ]; + }; "is_terminal_polyfill" = rec { crateName = "is_terminal_polyfill"; version = "1.70.1"; @@ -4363,7 +4285,7 @@ rec { dependencies = [ { name = "getrandom"; - packageId = "getrandom 0.3.2"; + packageId = "getrandom 0.3.3"; target = { target, features }: (target."windows" or false); features = [ "std" ]; } @@ -4525,7 +4447,7 @@ rec { dependencies = [ { name = "base64"; - packageId = "base64 0.22.1"; + packageId = "base64"; usesDefaultFeatures = false; features = [ "alloc" ]; } @@ -4568,8 +4490,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "d990019c690ed85aea29b095a03661c015676caa"; - sha256 = "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6"; + rev = "958f62f2befdd984ad9fcd272d0214055c3a7601"; + sha256 = "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd"; }; libName = "k8s_version"; authors = [ @@ -4587,7 +4509,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.5"; + packageId = "snafu 0.8.6"; } ]; features = { @@ -4598,9 +4520,9 @@ rec { }; "kube" = rec { crateName = "kube"; - version = "1.0.0"; + version = "1.1.0"; edition = "2021"; - sha256 = "0bs31pdk7lnrza8p8x96mgdq8v60nv8r25vvpg1374h8fj8c6j8v"; + sha256 = "0lcz9sm83j06i77sp6idbq7y06hd64a1wwkj2g0w7x7a9dk9i3vp"; authors = [ "clux " "Natalie Klestrup Röijezon " @@ -4671,9 +4593,9 @@ rec { }; "kube-client" = rec { crateName = "kube-client"; - version = "1.0.0"; + version = "1.1.0"; edition = "2021"; - sha256 = "17rbrvbs3m0c4lgbf2788f0hmpli3b8z1666r50m11h83dxpk6g1"; + sha256 = "13fv32vhljjxqgfmzciwanh7wsglzil2rsn81b8dx53fbfw7dckw"; libName = "kube_client"; authors = [ "clux " @@ -4683,7 +4605,7 @@ rec { dependencies = [ { name = "base64"; - packageId = "base64 0.22.1"; + packageId = "base64"; optional = true; } { @@ -4819,7 +4741,7 @@ rec { } { name = "tower"; - packageId = "tower 0.5.2"; + packageId = "tower"; optional = true; features = [ "buffer" "filter" "util" ]; } @@ -4912,9 +4834,9 @@ rec { }; "kube-core" = rec { crateName = "kube-core"; - version = "1.0.0"; + version = "1.1.0"; edition = "2021"; - sha256 = "1rwqwvwlna79dq2r1dqhzgxmwls5d76xg892m2gdk8nyi6xgpphv"; + sha256 = "0q09yvzbh840mn3q66r73wjp4s60c3npw0bnlkr3207bbps6zig3"; libName = "kube_core"; authors = [ "clux " @@ -4994,9 +4916,9 @@ rec { }; "kube-derive" = rec { crateName = "kube-derive"; - version = "1.0.0"; + version = "1.1.0"; edition = "2021"; - sha256 = "1gw3kymxb0w30gmhxj33g09vcqyq05pc38sjjf3516k86cv9lq4f"; + sha256 = "15frbch851xpi5zv37szfhkcrgbfd4hfxzcw60l8clwpqg0wi7q7"; procMacro = true; libName = "kube_derive"; authors = [ @@ -5028,7 +4950,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "extra-traits" ]; } ]; @@ -5043,9 +4965,9 @@ rec { }; "kube-runtime" = rec { crateName = "kube-runtime"; - version = "1.0.0"; + version = "1.1.0"; edition = "2021"; - sha256 = "13lxw9fvci5h71rlfc1a21zivanvnxzrgykvm3wzi1j7anjdhjqx"; + sha256 = "1p2021s6nlxwiivbk37lrjcki740070a3y5xzr465pzs8vljc4rg"; libName = "kube_runtime"; authors = [ "clux " @@ -5083,7 +5005,7 @@ rec { } { name = "hashbrown"; - packageId = "hashbrown 0.15.2"; + packageId = "hashbrown"; } { name = "hostname"; @@ -5175,9 +5097,9 @@ rec { }; "libc" = rec { crateName = "libc"; - version = "0.2.171"; + version = "0.2.174"; edition = "2021"; - sha256 = "1mipla3dy3l59pfa9xy4iw2vdgn8n30dzf4vdnasjflxdqhkg6f1"; + sha256 = "0xl7pqvw7g2874dy3kjady2fjr4rhj5lxsnxkkhr5689jcr6jw8i"; authors = [ "The Rust Project Developers" ]; @@ -5191,10 +5113,10 @@ rec { }; "libgit2-sys" = rec { crateName = "libgit2-sys"; - version = "0.18.1+1.9.0"; + version = "0.18.2+1.9.1"; edition = "2018"; links = "git2"; - sha256 = "03i98nb84aa99bn7sxja11pllq6fghsaw4d3qwjxikgzhh7v5p71"; + sha256 = "08n223x2pkf4gj6yrjmh3z6q236qj6nifwww78xcblrbvw1zwhhw"; libName = "libgit2_sys"; libPath = "lib.rs"; authors = [ @@ -5277,16 +5199,16 @@ rec { }; "litemap" = rec { crateName = "litemap"; - version = "0.7.5"; + version = "0.8.0"; edition = "2021"; - sha256 = "0mi8ykav0s974ps79p438x04snh0cdb7lc864b42jws5375i9yr3"; + sha256 = "0mlrlskwwhirxk3wsz9psh6nxcy491n0dh8zl02qgj0jzpssw7i4"; authors = [ "The ICU4X Project Developers" ]; features = { "databake" = [ "dep:databake" ]; "default" = [ "alloc" ]; - "serde" = [ "dep:serde" ]; + "serde" = [ "dep:serde" "alloc" ]; "testing" = [ "alloc" ]; "yoke" = [ "dep:yoke" ]; }; @@ -5294,9 +5216,9 @@ rec { }; "lock_api" = rec { crateName = "lock_api"; - version = "0.4.12"; + version = "0.4.13"; edition = "2021"; - sha256 = "05qvxa6g27yyva25a5ghsg85apdxkvr77yhkyhapj6r8vnf8pbq7"; + sha256 = "0rd73p4299mjwl4hhlfj9qr88v3r0kc8s1nszkfmnq2ky43nb4wn"; authors = [ "Amanieu d'Antras " ]; @@ -5373,19 +5295,18 @@ rec { }; "memchr" = rec { crateName = "memchr"; - version = "2.7.4"; + version = "2.7.5"; edition = "2021"; - sha256 = "18z32bhxrax0fnjikv475z7ii718hq457qwmaryixfxsl2qrmjkq"; + sha256 = "1h2bh2jajkizz04fh047lpid5wgw2cr9igpkdhl3ibzscpd858ij"; authors = [ "Andrew Gallant " "bluss" ]; features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; "default" = [ "std" ]; "logging" = [ "dep:log" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; + "rustc-dep-of-std" = [ "core" ]; "std" = [ "alloc" ]; "use_std" = [ "std" ]; }; @@ -5403,9 +5324,9 @@ rec { }; "miniz_oxide" = rec { crateName = "miniz_oxide"; - version = "0.8.8"; + version = "0.8.9"; edition = "2021"; - sha256 = "0al9iy33flfgxawj789w2c8xxwg1n2r5vv6m6p5hl2fvd2vlgriv"; + sha256 = "05k3pdg8bjjzayq3rf0qhpirq9k37pxnasfn4arbs17phqn6m9qz"; authors = [ "Frommi " "oyvindln " @@ -5420,10 +5341,9 @@ rec { ]; features = { "alloc" = [ "dep:alloc" ]; - "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; "default" = [ "with-alloc" ]; - "rustc-dep-of-std" = [ "core" "alloc" "compiler_builtins" "adler2/rustc-dep-of-std" ]; + "rustc-dep-of-std" = [ "core" "alloc" "adler2/rustc-dep-of-std" ]; "serde" = [ "dep:serde" ]; "simd" = [ "simd-adler32" ]; "simd-adler32" = [ "dep:simd-adler32" ]; @@ -5432,9 +5352,9 @@ rec { }; "mio" = rec { crateName = "mio"; - version = "1.0.3"; + version = "1.0.4"; edition = "2021"; - sha256 = "1gah0h4ia3avxbwym0b6bi6lr6rpysmj9zvw6zis5yq0z0xq91i8"; + sha256 = "073n3kam3nz8j8had35fd2nn7j6a33pi3y5w3kq608cari2d9gkq"; authors = [ "Carl Lerche " "Thomas de Zeeuw " @@ -5458,12 +5378,12 @@ rec { } { name = "wasi"; - packageId = "wasi 0.11.0+wasi-snapshot-preview1"; + packageId = "wasi 0.11.1+wasi-snapshot-preview1"; target = { target, features }: ("wasi" == target."os" or null); } { name = "windows-sys"; - packageId = "windows-sys 0.52.0"; + packageId = "windows-sys 0.59.0"; target = { target, features }: (target."windows" or false); features = [ "Wdk_Foundation" "Wdk_Storage_FileSystem" "Wdk_System_IO" "Win32_Foundation" "Win32_Networking_WinSock" "Win32_Storage_FileSystem" "Win32_System_IO" "Win32_System_WindowsProgramming" ]; } @@ -5589,6 +5509,15 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ]; }; + "once_cell_polyfill" = rec { + crateName = "once_cell_polyfill"; + version = "1.70.1"; + edition = "2021"; + sha256 = "1bg0w99srq8h4mkl68l1mza2n2f2hvrg0n8vfa3izjr5nism32d4"; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; "openssl-probe" = rec { crateName = "openssl-probe"; version = "0.1.6"; @@ -5602,9 +5531,9 @@ rec { }; "opentelemetry" = rec { crateName = "opentelemetry"; - version = "0.29.1"; + version = "0.30.0"; edition = "2021"; - sha256 = "0v6ijlxs486yip2zbjdpgqc525q8l8k9s8ddz6b4ixvm4xz271wy"; + sha256 = "1rjjwlvhr7h01kl0768v9i7ng77l1axxfzbg29ancxbjrgj1dx5a"; dependencies = [ { name = "futures-core"; @@ -5656,9 +5585,9 @@ rec { }; "opentelemetry-appender-tracing" = rec { crateName = "opentelemetry-appender-tracing"; - version = "0.29.1"; + version = "0.30.1"; edition = "2021"; - sha256 = "0zbjp4idhprbfxk21wpcivicx8c8w60w7bn4kpfpn013xdjgh5p7"; + sha256 = "05pwdypdbg8sxkbafy8cr1cyjyy19w4r7s001rbpxm7slpn673z6"; libName = "opentelemetry_appender_tracing"; dependencies = [ { @@ -5709,9 +5638,9 @@ rec { }; "opentelemetry-http" = rec { crateName = "opentelemetry-http"; - version = "0.29.0"; + version = "0.30.0"; edition = "2021"; - sha256 = "1vf86z9d4dr9msck3k2xan9w5k35rfk9bylhpnav9d97p0rapms6"; + sha256 = "0vf3d9p733ms312hcbhy14h32imf22bl7qw6i3mdp5rahjg67xjh"; libName = "opentelemetry_http"; dependencies = [ { @@ -5740,35 +5669,24 @@ rec { usesDefaultFeatures = false; features = [ "blocking" ]; } - { - name = "tracing"; - packageId = "tracing"; - optional = true; - usesDefaultFeatures = false; - } ]; features = { "default" = [ "internal-logs" ]; "hyper" = [ "dep:http-body-util" "dep:hyper" "dep:hyper-util" "dep:tokio" ]; - "internal-logs" = [ "tracing" "opentelemetry/internal-logs" ]; + "internal-logs" = [ "opentelemetry/internal-logs" ]; "reqwest" = [ "dep:reqwest" ]; "reqwest-rustls" = [ "reqwest" "reqwest/rustls-tls-native-roots" ]; "reqwest-rustls-webpki-roots" = [ "reqwest" "reqwest/rustls-tls-webpki-roots" ]; - "tracing" = [ "dep:tracing" ]; }; - resolvedDefaultFeatures = [ "default" "internal-logs" "reqwest" "tracing" ]; + resolvedDefaultFeatures = [ "default" "internal-logs" "reqwest" ]; }; "opentelemetry-otlp" = rec { crateName = "opentelemetry-otlp"; - version = "0.29.0"; + version = "0.30.0"; edition = "2021"; - sha256 = "0mjnx260qn4x1p9pyip35m7764kkszn087f0f6xcq5k9w07p56fq"; + sha256 = "0aw5amychdmwayfa0p724na1m7vd1jk9qlzw39riaxp08d56dvnv"; libName = "opentelemetry_otlp"; dependencies = [ - { - name = "futures-core"; - packageId = "futures-core"; - } { name = "http"; packageId = "http"; @@ -5843,7 +5761,7 @@ rec { name = "tonic"; packageId = "tonic"; usesDefaultFeatures = false; - features = [ "server" ]; + features = [ "router" "server" ]; } ]; features = { @@ -5868,8 +5786,8 @@ rec { "serde" = [ "dep:serde" ]; "serde_json" = [ "dep:serde_json" ]; "serialize" = [ "serde" "serde_json" ]; - "tls" = [ "tonic/tls" ]; - "tls-roots" = [ "tls" "tonic/tls-roots" ]; + "tls" = [ "tonic/tls-ring" ]; + "tls-roots" = [ "tls" "tonic/tls-native-roots" ]; "tls-webpki-roots" = [ "tls" "tonic/tls-webpki-roots" ]; "tokio" = [ "dep:tokio" ]; "tonic" = [ "dep:tonic" ]; @@ -5881,9 +5799,9 @@ rec { }; "opentelemetry-proto" = rec { crateName = "opentelemetry-proto"; - version = "0.29.0"; + version = "0.30.0"; edition = "2021"; - sha256 = "1cq96c16hxsfvcd26ip1v3sg9952mi89snqdawc5whw14cjdlh4c"; + sha256 = "1p4d1s7p4z5a9xy4x4dsjifc3385v5q8wx780mdgw407cvbny11f"; libName = "opentelemetry_proto"; dependencies = [ { @@ -5916,7 +5834,7 @@ rec { "gen-tonic" = [ "gen-tonic-messages" "tonic/channel" ]; "gen-tonic-messages" = [ "tonic" "prost" ]; "hex" = [ "dep:hex" ]; - "internal-logs" = [ "tracing" ]; + "internal-logs" = [ "opentelemetry/internal-logs" ]; "logs" = [ "opentelemetry/logs" "opentelemetry_sdk/logs" ]; "metrics" = [ "opentelemetry/metrics" "opentelemetry_sdk/metrics" ]; "prost" = [ "dep:prost" ]; @@ -5925,18 +5843,27 @@ rec { "testing" = [ "opentelemetry/testing" ]; "tonic" = [ "dep:tonic" ]; "trace" = [ "opentelemetry/trace" "opentelemetry_sdk/trace" ]; - "tracing" = [ "dep:tracing" ]; "with-schemars" = [ "schemars" ]; "with-serde" = [ "serde" "hex" "base64" ]; "zpages" = [ "trace" ]; }; resolvedDefaultFeatures = [ "gen-tonic" "gen-tonic-messages" "logs" "metrics" "prost" "tonic" "trace" ]; }; + "opentelemetry-semantic-conventions" = rec { + crateName = "opentelemetry-semantic-conventions"; + version = "0.30.0"; + edition = "2021"; + sha256 = "1hns9n0sh89cqp7rav7gf2a5nw65wv2m78sphms3cx54jsi5kl43"; + libName = "opentelemetry_semantic_conventions"; + features = { + }; + resolvedDefaultFeatures = [ "default" ]; + }; "opentelemetry_sdk" = rec { crateName = "opentelemetry_sdk"; - version = "0.29.0"; + version = "0.30.0"; edition = "2021"; - sha256 = "02r99lz30zrb8870vivww8cvwhdi78v5fv5sq6mr8wyls4hzppmg"; + sha256 = "0jvsqhdrka9ppyfr3y6rhj4ai61wgrfk0970jqcd2cayksm49xhi"; dependencies = [ { name = "futures-channel"; @@ -5952,11 +5879,6 @@ rec { usesDefaultFeatures = false; features = [ "std" "sink" "async-await-macro" ]; } - { - name = "glob"; - packageId = "glob"; - optional = true; - } { name = "opentelemetry"; packageId = "opentelemetry"; @@ -5968,7 +5890,7 @@ rec { } { name = "rand"; - packageId = "rand 0.9.1"; + packageId = "rand"; optional = true; usesDefaultFeatures = false; features = [ "std" "std_rng" "small_rng" "os_rng" "thread_rng" ]; @@ -5995,26 +5917,20 @@ rec { packageId = "tokio-stream"; optional = true; } - { - name = "tracing"; - packageId = "tracing"; - optional = true; - usesDefaultFeatures = false; - } ]; features = { "default" = [ "trace" "metrics" "logs" "internal-logs" ]; - "experimental_logs_batch_log_processor_with_async_runtime" = [ "logs" ]; + "experimental_logs_batch_log_processor_with_async_runtime" = [ "logs" "experimental_async_runtime" ]; "experimental_logs_concurrent_log_processor" = [ "logs" ]; + "experimental_metrics_custom_reader" = [ "metrics" ]; "experimental_metrics_disable_name_validation" = [ "metrics" ]; - "experimental_metrics_periodicreader_with_async_runtime" = [ "metrics" ]; - "experimental_trace_batch_span_processor_with_async_runtime" = [ "trace" ]; - "glob" = [ "dep:glob" ]; + "experimental_metrics_periodicreader_with_async_runtime" = [ "metrics" "experimental_async_runtime" ]; + "experimental_trace_batch_span_processor_with_async_runtime" = [ "trace" "experimental_async_runtime" ]; "http" = [ "dep:http" ]; - "internal-logs" = [ "tracing" ]; - "jaeger_remote_sampler" = [ "trace" "opentelemetry-http" "http" "serde" "serde_json" "url" ]; + "internal-logs" = [ "opentelemetry/internal-logs" ]; + "jaeger_remote_sampler" = [ "trace" "opentelemetry-http" "http" "serde" "serde_json" "url" "experimental_async_runtime" ]; "logs" = [ "opentelemetry/logs" "serde_json" ]; - "metrics" = [ "opentelemetry/metrics" "glob" ]; + "metrics" = [ "opentelemetry/metrics" ]; "opentelemetry-http" = [ "dep:opentelemetry-http" ]; "percent-encoding" = [ "dep:percent-encoding" ]; "rand" = [ "dep:rand" ]; @@ -6028,10 +5944,9 @@ rec { "tokio" = [ "dep:tokio" ]; "tokio-stream" = [ "dep:tokio-stream" ]; "trace" = [ "opentelemetry/trace" "rand" "percent-encoding" ]; - "tracing" = [ "dep:tracing" ]; "url" = [ "dep:url" ]; }; - resolvedDefaultFeatures = [ "default" "experimental_async_runtime" "glob" "internal-logs" "logs" "metrics" "percent-encoding" "rand" "rt-tokio" "serde_json" "spec_unstable_logs_enabled" "tokio" "tokio-stream" "trace" "tracing" ]; + resolvedDefaultFeatures = [ "default" "experimental_async_runtime" "internal-logs" "logs" "metrics" "percent-encoding" "rand" "rt-tokio" "serde_json" "spec_unstable_logs_enabled" "tokio" "tokio-stream" "trace" ]; }; "ordered-float" = rec { crateName = "ordered-float"; @@ -6088,9 +6003,9 @@ rec { }; "parking_lot" = rec { crateName = "parking_lot"; - version = "0.12.3"; + version = "0.12.4"; edition = "2021"; - sha256 = "09ws9g6245iiq8z975h8ycf818a66q3c6zv4b5h8skpm7hc1igzi"; + sha256 = "04sab1c7304jg8k0d5b2pxbj1fvgzcf69l3n2mfpkdb96vs8pmbh"; authors = [ "Amanieu d'Antras " ]; @@ -6115,9 +6030,9 @@ rec { }; "parking_lot_core" = rec { crateName = "parking_lot_core"; - version = "0.9.10"; + version = "0.9.11"; edition = "2021"; - sha256 = "1y3cf9ld9ijf7i4igwzffcn0xl16dxyn4c5bwgjck1dkgabiyh0y"; + sha256 = "19g4d6m5k4ggacinqprnn8xvdaszc3y5smsmbz1adcdmaqm8v0xw"; authors = [ "Amanieu d'Antras " ]; @@ -6142,7 +6057,7 @@ rec { } { name = "windows-targets"; - packageId = "windows-targets 0.52.6"; + packageId = "windows-targets"; target = { target, features }: (target."windows" or false); } ]; @@ -6164,7 +6079,7 @@ rec { dependencies = [ { name = "base64"; - packageId = "base64 0.22.1"; + packageId = "base64"; usesDefaultFeatures = false; features = [ "alloc" ]; } @@ -6199,9 +6114,9 @@ rec { }; "pest" = rec { crateName = "pest"; - version = "2.8.0"; + version = "2.8.1"; edition = "2021"; - sha256 = "1dp741bxqiracvvwl66mfvlr29byvvph28n4c6ip136m652vg38r"; + sha256 = "08s342r6vv6ml5in4jk7pb97wgpf0frcnrvg0sqshn23sdb5zc0x"; authors = [ "Dragoș Tiselice " ]; @@ -6233,9 +6148,9 @@ rec { }; "pest_derive" = rec { crateName = "pest_derive"; - version = "2.8.0"; + version = "2.8.1"; edition = "2021"; - sha256 = "1icp5i01mgpbgwbkrcy4d0ykbxmns4wyz8j1jg6dr1wysz7xj9fp"; + sha256 = "1g20ma4y29axbjhi3z64ihhpqzmiix71qjn7bs224yd7isg6s1dv"; procMacro = true; authors = [ "Dragoș Tiselice " @@ -6262,9 +6177,9 @@ rec { }; "pest_generator" = rec { crateName = "pest_generator"; - version = "2.8.0"; + version = "2.8.1"; edition = "2021"; - sha256 = "0hgqngsxfr8y5p47bgjvd038j55ix1x4dpzr6amndaz8ddr02zfv"; + sha256 = "0rj9a20g4bjb4sl3zyzpxqg8mbn8c1kxp0nw08rfp0gp73k09r47"; authors = [ "Dragoș Tiselice " ]; @@ -6288,7 +6203,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; } ]; features = { @@ -6301,17 +6216,13 @@ rec { }; "pest_meta" = rec { crateName = "pest_meta"; - version = "2.8.0"; + version = "2.8.1"; edition = "2021"; - sha256 = "182w5fyiqm7zbn0p8313xc5wc73rnn59ycm5zk8hcja9f0j877vz"; + sha256 = "1mf01iln7shbnyxpdfnpf59gzn83nndqjkwiw3yh6n8g2wgi1lgd"; authors = [ "Dragoș Tiselice " ]; dependencies = [ - { - name = "once_cell"; - packageId = "once_cell"; - } { name = "pest"; packageId = "pest"; @@ -6361,7 +6272,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; usesDefaultFeatures = false; features = [ "parsing" "printing" "clone-impls" "proc-macro" "full" "visit-mut" ]; } @@ -6398,6 +6309,31 @@ rec { ]; }; + "potential_utf" = rec { + crateName = "potential_utf"; + version = "0.1.2"; + edition = "2021"; + sha256 = "11dm6k3krx3drbvhgjw8z508giiv0m09wzl6ghza37176w4c79z5"; + authors = [ + "The ICU4X Project Developers" + ]; + dependencies = [ + { + name = "zerovec"; + packageId = "zerovec"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "alloc" = [ "serde?/alloc" "zerovec?/alloc" ]; + "databake" = [ "dep:databake" ]; + "serde" = [ "dep:serde" ]; + "writeable" = [ "dep:writeable" "alloc" ]; + "zerovec" = [ "dep:zerovec" ]; + }; + resolvedDefaultFeatures = [ "zerovec" ]; + }; "powerfmt" = rec { crateName = "powerfmt"; version = "0.2.0"; @@ -6424,7 +6360,7 @@ rec { dependencies = [ { name = "zerocopy"; - packageId = "zerocopy 0.8.24"; + packageId = "zerocopy"; features = [ "simd" ]; } ]; @@ -6454,9 +6390,9 @@ rec { }; "proc-macro2" = rec { crateName = "proc-macro2"; - version = "1.0.94"; + version = "1.0.95"; edition = "2021"; - sha256 = "114wxb56gdj9vy44q0ll3l2x9niqzcbyqikydmlb5f3h5rsp26d3"; + sha256 = "0y7pwxv6sh4fgg6s715ygk1i7g3w02c0ljgcsfm046isibkfbcq2"; libName = "proc_macro2"; authors = [ "David Tolnay " @@ -6519,7 +6455,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.5"; + packageId = "snafu 0.8.6"; } { name = "xml-rs"; @@ -6590,7 +6526,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "extra-traits" ]; } ]; @@ -6619,62 +6555,17 @@ rec { }; "r-efi" = rec { crateName = "r-efi"; - version = "5.2.0"; + version = "5.3.0"; edition = "2018"; - sha256 = "1ig93jvpqyi87nc5kb6dri49p56q7r7qxrn8kfizmqkfj5nmyxkl"; + sha256 = "03sbfm3g7myvzyylff6qaxk4z6fy76yv860yy66jiswc2m6b7kb9"; libName = "r_efi"; features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; "examples" = [ "native" ]; - "rustc-dep-of-std" = [ "compiler_builtins/rustc-dep-of-std" "core" ]; - }; - }; - "rand 0.8.5" = rec { - crateName = "rand"; - version = "0.8.5"; - edition = "2018"; - sha256 = "013l6931nn7gkc23jz5mm3qdhf93jjf0fg64nz2lp4i51qd8vbrl"; - authors = [ - "The Rand Project Developers" - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "libc"; - packageId = "libc"; - optional = true; - usesDefaultFeatures = false; - target = { target, features }: (target."unix" or false); - } - { - name = "rand_chacha"; - packageId = "rand_chacha 0.3.1"; - optional = true; - usesDefaultFeatures = false; - } - { - name = "rand_core"; - packageId = "rand_core 0.6.4"; - } - ]; - features = { - "alloc" = [ "rand_core/alloc" ]; - "default" = [ "std" "std_rng" ]; - "getrandom" = [ "rand_core/getrandom" ]; - "libc" = [ "dep:libc" ]; - "log" = [ "dep:log" ]; - "packed_simd" = [ "dep:packed_simd" ]; - "rand_chacha" = [ "dep:rand_chacha" ]; - "serde" = [ "dep:serde" ]; - "serde1" = [ "serde" "rand_core/serde1" ]; - "simd_support" = [ "packed_simd" ]; - "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ]; - "std_rng" = [ "rand_chacha" ]; + "rustc-dep-of-std" = [ "core" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "getrandom" "libc" "rand_chacha" "small_rng" "std" "std_rng" ]; }; - "rand 0.9.1" = rec { + "rand" = rec { crateName = "rand"; version = "0.9.1"; edition = "2021"; @@ -6686,13 +6577,13 @@ rec { dependencies = [ { name = "rand_chacha"; - packageId = "rand_chacha 0.9.0"; + packageId = "rand_chacha"; optional = true; usesDefaultFeatures = false; } { name = "rand_core"; - packageId = "rand_core 0.9.3"; + packageId = "rand_core"; usesDefaultFeatures = false; } ]; @@ -6707,37 +6598,7 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "os_rng" "small_rng" "std" "std_rng" "thread_rng" ]; }; - "rand_chacha 0.3.1" = rec { - crateName = "rand_chacha"; - version = "0.3.1"; - edition = "2018"; - sha256 = "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6"; - authors = [ - "The Rand Project Developers" - "The Rust Project Developers" - "The CryptoCorrosion Contributors" - ]; - dependencies = [ - { - name = "ppv-lite86"; - packageId = "ppv-lite86"; - usesDefaultFeatures = false; - features = [ "simd" ]; - } - { - name = "rand_core"; - packageId = "rand_core 0.6.4"; - } - ]; - features = { - "default" = [ "std" ]; - "serde" = [ "dep:serde" ]; - "serde1" = [ "serde" ]; - "std" = [ "ppv-lite86/std" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; - "rand_chacha 0.9.0" = rec { + "rand_chacha" = rec { crateName = "rand_chacha"; version = "0.9.0"; edition = "2021"; @@ -6756,13 +6617,13 @@ rec { } { name = "rand_core"; - packageId = "rand_core 0.9.3"; + packageId = "rand_core"; } ]; devDependencies = [ { name = "rand_core"; - packageId = "rand_core 0.9.3"; + packageId = "rand_core"; features = [ "os_rng" ]; } ]; @@ -6774,31 +6635,7 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "rand_core 0.6.4" = rec { - crateName = "rand_core"; - version = "0.6.4"; - edition = "2018"; - sha256 = "0b4j2v4cb5krak1pv6kakv4sz6xcwbrmy2zckc32hsigbrwy82zc"; - authors = [ - "The Rand Project Developers" - "The Rust Project Developers" - ]; - dependencies = [ - { - name = "getrandom"; - packageId = "getrandom 0.2.15"; - optional = true; - } - ]; - features = { - "getrandom" = [ "dep:getrandom" ]; - "serde" = [ "dep:serde" ]; - "serde1" = [ "serde" ]; - "std" = [ "alloc" "getrandom" "getrandom/std" ]; - }; - resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ]; - }; - "rand_core 0.9.3" = rec { + "rand_core" = rec { crateName = "rand_core"; version = "0.9.3"; edition = "2021"; @@ -6810,7 +6647,7 @@ rec { dependencies = [ { name = "getrandom"; - packageId = "getrandom 0.3.2"; + packageId = "getrandom 0.3.3"; optional = true; } ]; @@ -6823,9 +6660,9 @@ rec { }; "redox_syscall" = rec { crateName = "redox_syscall"; - version = "0.5.11"; + version = "0.5.13"; edition = "2021"; - sha256 = "18qijn18r10haiglv4261wb0yh1agqqlvs0nxfy8yjbpsb307wfj"; + sha256 = "1mlzna9bcd7ss1973bmysr3hpjrys82b3bd7l03h4jkbxv8bf10d"; libName = "syscall"; authors = [ "Jeremy Soller " @@ -7035,16 +6872,16 @@ rec { }; "reqwest" = rec { crateName = "reqwest"; - version = "0.12.15"; + version = "0.12.22"; edition = "2021"; - sha256 = "1fvvrl3jmsnlm99ldl0ariklrlsmrky06qabp7dc92ylznk4d76i"; + sha256 = "0cbmfrcrk6wbg93apmji0fln1ca9322af2kc7dpa18vcgs9k3jfb"; authors = [ "Sean McArthur " ]; dependencies = [ { name = "base64"; - packageId = "base64 0.22.1"; + packageId = "base64"; } { name = "bytes"; @@ -7064,6 +6901,7 @@ rec { { name = "futures-util"; packageId = "futures-util"; + optional = true; usesDefaultFeatures = false; } { @@ -7090,12 +6928,7 @@ rec { name = "hyper-util"; packageId = "hyper-util"; target = { target, features }: (!("wasm32" == target."arch" or null)); - features = [ "http1" "client" "client-legacy" "tokio" ]; - } - { - name = "ipnet"; - packageId = "ipnet"; - target = { target, features }: (!("wasm32" == target."arch" or null)); + features = [ "http1" "client" "client-legacy" "client-proxy" "tokio" ]; } { name = "js-sys"; @@ -7107,16 +6940,6 @@ rec { packageId = "log"; target = { target, features }: (!("wasm32" == target."arch" or null)); } - { - name = "mime"; - packageId = "mime"; - target = { target, features }: (!("wasm32" == target."arch" or null)); - } - { - name = "once_cell"; - packageId = "once_cell"; - target = { target, features }: (!("wasm32" == target."arch" or null)); - } { name = "percent-encoding"; packageId = "percent-encoding"; @@ -7159,11 +6982,18 @@ rec { } { name = "tower"; - packageId = "tower 0.5.2"; + packageId = "tower"; usesDefaultFeatures = false; target = { target, features }: (!("wasm32" == target."arch" or null)); features = [ "timeout" "util" ]; } + { + name = "tower-http"; + packageId = "tower-http"; + usesDefaultFeatures = false; + target = { target, features }: (!("wasm32" == target."arch" or null)); + features = [ "follow-redirect" ]; + } { name = "tower-service"; packageId = "tower-service"; @@ -7188,11 +7018,6 @@ rec { target = { target, features }: ("wasm32" == target."arch" or null); features = [ "AbortController" "AbortSignal" "Headers" "Request" "RequestInit" "RequestMode" "Response" "Window" "FormData" "Blob" "BlobPropertyBag" "ServiceWorkerGlobalScope" "RequestCredentials" "File" "ReadableStream" ]; } - { - name = "windows-registry"; - packageId = "windows-registry"; - target = { target, features }: (target."windows" or false); - } ]; devDependencies = [ { @@ -7213,7 +7038,7 @@ rec { name = "hyper-util"; packageId = "hyper-util"; target = { target, features }: (!("wasm32" == target."arch" or null)); - features = [ "http1" "http2" "client" "client-legacy" "server-auto" "tokio" ]; + features = [ "http1" "http2" "client" "client-legacy" "server-auto" "server-graceful" "tokio" ]; } { name = "serde"; @@ -7230,7 +7055,7 @@ rec { } { name = "tower"; - packageId = "tower 0.5.2"; + packageId = "tower"; usesDefaultFeatures = false; features = [ "limit" ]; } @@ -7242,24 +7067,24 @@ rec { } ]; features = { - "__rustls" = [ "dep:hyper-rustls" "dep:tokio-rustls" "dep:rustls" "__tls" "dep:rustls-pemfile" "dep:rustls-pki-types" ]; + "__rustls" = [ "dep:hyper-rustls" "dep:tokio-rustls" "dep:rustls" "__tls" ]; "__rustls-ring" = [ "hyper-rustls?/ring" "tokio-rustls?/ring" "rustls?/ring" "quinn?/ring" ]; - "__tls" = [ "dep:rustls-pemfile" "tokio/io-util" ]; - "blocking" = [ "dep:futures-channel" "futures-channel?/sink" "futures-util/io" "futures-util/sink" "tokio/sync" ]; - "brotli" = [ "dep:async-compression" "async-compression?/brotli" "dep:tokio-util" ]; - "charset" = [ "dep:encoding_rs" ]; + "__tls" = [ "dep:rustls-pki-types" "tokio/io-util" ]; + "blocking" = [ "dep:futures-channel" "futures-channel?/sink" "dep:futures-util" "futures-util?/io" "futures-util?/sink" "tokio/sync" ]; + "brotli" = [ "dep:async-compression" "async-compression?/brotli" "dep:futures-util" "dep:tokio-util" ]; + "charset" = [ "dep:encoding_rs" "dep:mime" ]; "cookies" = [ "dep:cookie_crate" "dep:cookie_store" ]; - "default" = [ "default-tls" "charset" "http2" "macos-system-configuration" ]; + "default" = [ "default-tls" "charset" "http2" "system-proxy" ]; "default-tls" = [ "dep:hyper-tls" "dep:native-tls-crate" "__tls" "dep:tokio-native-tls" ]; - "deflate" = [ "dep:async-compression" "async-compression?/zlib" "dep:tokio-util" ]; - "gzip" = [ "dep:async-compression" "async-compression?/gzip" "dep:tokio-util" ]; + "deflate" = [ "dep:async-compression" "async-compression?/zlib" "dep:futures-util" "dep:tokio-util" ]; + "gzip" = [ "dep:async-compression" "async-compression?/gzip" "dep:futures-util" "dep:tokio-util" ]; "h2" = [ "dep:h2" ]; - "hickory-dns" = [ "dep:hickory-resolver" ]; + "hickory-dns" = [ "dep:hickory-resolver" "dep:once_cell" ]; "http2" = [ "h2" "hyper/http2" "hyper-util/http2" "hyper-rustls?/http2" ]; - "http3" = [ "rustls-tls-manual-roots" "dep:h3" "dep:h3-quinn" "dep:quinn" "dep:slab" "dep:futures-channel" ]; + "http3" = [ "rustls-tls-manual-roots" "dep:h3" "dep:h3-quinn" "dep:quinn" "tokio/macros" ]; "json" = [ "dep:serde_json" ]; - "macos-system-configuration" = [ "dep:system-configuration" ]; - "multipart" = [ "dep:mime_guess" ]; + "macos-system-configuration" = [ "system-proxy" ]; + "multipart" = [ "dep:mime_guess" "dep:futures-util" ]; "native-tls" = [ "default-tls" ]; "native-tls-alpn" = [ "native-tls" "native-tls-crate?/alpn" "hyper-tls?/alpn" ]; "native-tls-vendored" = [ "native-tls" "native-tls-crate?/vendored" ]; @@ -7271,9 +7096,9 @@ rec { "rustls-tls-no-provider" = [ "rustls-tls-manual-roots-no-provider" ]; "rustls-tls-webpki-roots" = [ "rustls-tls-webpki-roots-no-provider" "__rustls-ring" ]; "rustls-tls-webpki-roots-no-provider" = [ "dep:webpki-roots" "hyper-rustls?/webpki-tokio" "__rustls" ]; - "socks" = [ "dep:tokio-socks" ]; - "stream" = [ "tokio/fs" "dep:tokio-util" "dep:wasm-streams" ]; - "zstd" = [ "dep:async-compression" "async-compression?/zstd" "dep:tokio-util" ]; + "stream" = [ "tokio/fs" "dep:futures-util" "dep:tokio-util" "dep:wasm-streams" ]; + "system-proxy" = [ "hyper-util/client-proxy-system" ]; + "zstd" = [ "dep:async-compression" "async-compression?/zstd" "dep:futures-util" "dep:tokio-util" ]; }; resolvedDefaultFeatures = [ "blocking" ]; }; @@ -7291,7 +7116,7 @@ rec { } { name = "getrandom"; - packageId = "getrandom 0.2.15"; + packageId = "getrandom 0.2.16"; } { name = "libc"; @@ -7417,7 +7242,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" "parsing" "extra-traits" "visit" "visit-mut" ]; } { @@ -7439,17 +7264,16 @@ rec { }; "rustc-demangle" = rec { crateName = "rustc-demangle"; - version = "0.1.24"; + version = "0.1.25"; edition = "2015"; - sha256 = "07zysaafgrkzy2rjgwqdj2a8qdpsm6zv6f5pgpk9x0lm40z9b6vi"; + sha256 = "0kxq6m0drr40434ch32j31dkg00iaf4zxmqg7sqxajhcz0wng7lq"; libName = "rustc_demangle"; authors = [ "Alex Crichton " ]; features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; - "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; + "rustc-dep-of-std" = [ "core" ]; }; }; "rustc_version" = rec { @@ -7467,9 +7291,9 @@ rec { }; "rustls" = rec { crateName = "rustls"; - version = "0.23.25"; + version = "0.23.29"; edition = "2021"; - sha256 = "0g5idwxm04i71k3n66ml30zyfbgv6p85a7jky2i09v64i8cfjbl2"; + sha256 = "1lcvzvzqk8xx8jzg0x5v3mkqgwkwr7v6zdq8zw8rp6xj74h3i494"; dependencies = [ { name = "log"; @@ -7520,7 +7344,7 @@ rec { "aws-lc-rs" = [ "aws_lc_rs" ]; "aws_lc_rs" = [ "dep:aws-lc-rs" "webpki/aws-lc-rs" "aws-lc-rs/aws-lc-sys" "aws-lc-rs/prebuilt-nasm" ]; "brotli" = [ "dep:brotli" "dep:brotli-decompressor" "std" ]; - "default" = [ "aws_lc_rs" "logging" "std" "tls12" ]; + "default" = [ "aws_lc_rs" "logging" "prefer-post-quantum" "std" "tls12" ]; "fips" = [ "aws_lc_rs" "aws-lc-rs?/fips" "webpki/aws-lc-rs-fips" ]; "hashbrown" = [ "dep:hashbrown" ]; "log" = [ "dep:log" ]; @@ -7620,11 +7444,19 @@ rec { }; "rustls-pki-types" = rec { crateName = "rustls-pki-types"; - version = "1.11.0"; + version = "1.12.0"; edition = "2021"; - sha256 = "0755isc0x5iymm3wsn59s0ad1pm9zidw7p34qfqlsjsac9jf4z4i"; + sha256 = "0yawbdpix8jif6s8zj1p2hbyb7y3bj66fhx0y7hyf4qh4964m6i2"; libName = "rustls_pki_types"; + dependencies = [ + { + name = "zeroize"; + packageId = "zeroize"; + optional = true; + } + ]; features = { + "alloc" = [ "dep:zeroize" ]; "default" = [ "alloc" ]; "std" = [ "alloc" ]; "web" = [ "web-time" ]; @@ -7634,9 +7466,9 @@ rec { }; "rustls-webpki" = rec { crateName = "rustls-webpki"; - version = "0.103.1"; + version = "0.103.4"; edition = "2021"; - sha256 = "00rcdz0rb9ia2ivrq7412ry9qkvbh78pra2phl4p7kxck9vbiy7y"; + sha256 = "1z4jmmgasjgk9glb160a66bshvgifa64mgfjrkqp7dy1w158h5qa"; libName = "webpki"; dependencies = [ { @@ -7660,6 +7492,7 @@ rec { "alloc" = [ "ring?/alloc" "pki-types/alloc" ]; "aws-lc-rs" = [ "dep:aws-lc-rs" "aws-lc-rs/aws-lc-sys" "aws-lc-rs/prebuilt-nasm" ]; "aws-lc-rs-fips" = [ "dep:aws-lc-rs" "aws-lc-rs/fips" ]; + "aws-lc-rs-unstable" = [ "aws-lc-rs" "aws-lc-rs/unstable" ]; "default" = [ "std" ]; "ring" = [ "dep:ring" ]; "std" = [ "alloc" "pki-types/std" ]; @@ -7668,9 +7501,9 @@ rec { }; "rustversion" = rec { crateName = "rustversion"; - version = "1.0.20"; + version = "1.0.21"; edition = "2018"; - sha256 = "1lhwjb16dsm8brd18bn2bh0ryzc7qi29bi2jjsc6ny2zbwn3ivgd"; + sha256 = "07bb1xx05hhwpnl43sqrhsmxyk5sd5m5baadp19nxp69s9xij3ca"; procMacro = true; build = "build/build.rs"; authors = [ @@ -7805,7 +7638,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "extra-traits" ]; } ]; @@ -7907,7 +7740,7 @@ rec { } { name = "core-foundation"; - packageId = "core-foundation 0.10.0"; + packageId = "core-foundation 0.10.1"; } { name = "core-foundation-sys"; @@ -8059,7 +7892,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; usesDefaultFeatures = false; features = [ "clone-impls" "derive" "parsing" "printing" "proc-macro" ]; } @@ -8091,7 +7924,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; usesDefaultFeatures = false; features = [ "clone-impls" "derive" "parsing" "printing" ]; } @@ -8202,7 +8035,7 @@ rec { dependencies = [ { name = "indexmap"; - packageId = "indexmap 2.9.0"; + packageId = "indexmap"; } { name = "itoa"; @@ -8264,9 +8097,9 @@ rec { }; "sha2" = rec { crateName = "sha2"; - version = "0.10.8"; + version = "0.10.9"; edition = "2018"; - sha256 = "1j1x78zk9il95w9iv46dh9wm73r6xrgj32y6lzzw7bxws9dbfgbr"; + sha256 = "10xjj843v31ghsksd9sl9y12qfc48157j1xpb8v1ml39jy0psl57"; authors = [ "RustCrypto Developers" ]; @@ -8340,9 +8173,9 @@ rec { }; "signal-hook-registry" = rec { crateName = "signal-hook-registry"; - version = "1.4.2"; + version = "1.4.5"; edition = "2015"; - sha256 = "1cb5akgq8ajnd5spyn587srvs4n26ryq0p78nswffwhv46sf1sd9"; + sha256 = "042lkqrpnlrgvrrcirgigxyp1zk70d8v0fsr5w7a18k3bw2vh0wj"; libName = "signal_hook_registry"; authors = [ "Michal 'vorner' Vaner " @@ -8358,18 +8191,12 @@ rec { }; "slab" = rec { crateName = "slab"; - version = "0.4.9"; + version = "0.4.10"; edition = "2018"; - sha256 = "0rxvsgir0qw5lkycrqgb1cxsvxzjv9bmx73bk5y42svnzfba94lg"; + sha256 = "03f5a9gdp33mngya4qwq2555138pj74pl015scv57wsic5rikp04"; authors = [ "Carl Lerche " ]; - buildDependencies = [ - { - name = "autocfg"; - packageId = "autocfg"; - } - ]; features = { "default" = [ "std" ]; "serde" = [ "dep:serde" ]; @@ -8378,9 +8205,9 @@ rec { }; "smallvec" = rec { crateName = "smallvec"; - version = "1.15.0"; + version = "1.15.1"; edition = "2018"; - sha256 = "1sgfw8z729nlxk8k13dhs0a762wnaxmlx70a7xlf3wz989bjh5w9"; + sha256 = "00xxdxxpgyq5vjnpljvkmy99xij5rxgh913ii1v16kzynnivgcb7"; authors = [ "The Servo Project Developers" ]; @@ -8431,18 +8258,18 @@ rec { }; resolvedDefaultFeatures = [ "default" "guide" "std" ]; }; - "snafu 0.8.5" = rec { + "snafu 0.8.6" = rec { crateName = "snafu"; - version = "0.8.5"; + version = "0.8.6"; edition = "2018"; - sha256 = "06ahz9g4f6475rspfcay8512x776wpxc205rizzc6a9abv492f12"; + sha256 = "09znwwss9xi7i28kpj29b29nh28nv5kfjjsa99x5v3dz27h022rj"; authors = [ "Jake Goulding " ]; dependencies = [ { name = "snafu-derive"; - packageId = "snafu-derive 0.8.5"; + packageId = "snafu-derive 0.8.6"; } ]; features = { @@ -8457,9 +8284,10 @@ rec { "rust_1_61" = [ "snafu-derive/rust_1_61" ]; "rust_1_65" = [ "rust_1_61" ]; "rust_1_81" = [ "rust_1_65" ]; + "std" = [ "alloc" ]; "unstable-provider-api" = [ "snafu-derive/unstable-provider-api" ]; }; - resolvedDefaultFeatures = [ "default" "rust_1_61" "rust_1_65" "std" ]; + resolvedDefaultFeatures = [ "alloc" "default" "rust_1_61" "rust_1_65" "std" ]; }; "snafu-derive 0.6.10" = rec { crateName = "snafu-derive"; @@ -8489,11 +8317,11 @@ rec { features = { }; }; - "snafu-derive 0.8.5" = rec { + "snafu-derive 0.8.6" = rec { crateName = "snafu-derive"; - version = "0.8.5"; + version = "0.8.6"; edition = "2018"; - sha256 = "05zr38bcngn8ha4mfi7lr2pqqfysjhwhxvk9lz57xzkzjavwdhq3"; + sha256 = "1xs7w5hg9sw45lw34mzza1nnpx9lz5snjp9s9lh2852c8bpy4q8r"; procMacro = true; libName = "snafu_derive"; authors = [ @@ -8515,7 +8343,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" ]; } ]; @@ -8525,9 +8353,9 @@ rec { }; "socket2" = rec { crateName = "socket2"; - version = "0.5.9"; + version = "0.5.10"; edition = "2021"; - sha256 = "1vzds1wwwi0a51fn10r98j7cx3ir4shvhykpbk7md2h5h1ydapsg"; + sha256 = "0y067ki5q946w91xlz2sb175pnfazizva6fi3kfp639mxnmpc8z2"; authors = [ "Alex Crichton " "Thomas de Zeeuw " @@ -8565,13 +8393,13 @@ rec { }; "stackable-operator" = rec { crateName = "stackable-operator"; - version = "0.93.1"; + version = "0.94.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "d990019c690ed85aea29b095a03661c015676caa"; - sha256 = "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6"; + rev = "958f62f2befdd984ad9fcd272d0214055c3a7601"; + sha256 = "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd"; }; libName = "stackable_operator"; authors = [ @@ -8614,9 +8442,13 @@ rec { name = "futures"; packageId = "futures 0.3.31"; } + { + name = "http"; + packageId = "http"; + } { name = "indexmap"; - packageId = "indexmap 2.9.0"; + packageId = "indexmap"; } { name = "json-patch"; @@ -8666,7 +8498,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.5"; + packageId = "snafu 0.8.6"; } { name = "stackable-operator-derive"; @@ -8684,7 +8516,6 @@ rec { { name = "stackable-versioned"; packageId = "stackable-versioned"; - features = [ "k8s" ]; } { name = "strum"; @@ -8729,8 +8560,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "d990019c690ed85aea29b095a03661c015676caa"; - sha256 = "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6"; + rev = "958f62f2befdd984ad9fcd272d0214055c3a7601"; + sha256 = "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd"; }; procMacro = true; libName = "stackable_operator_derive"; @@ -8752,7 +8583,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; } ]; @@ -8764,8 +8595,8 @@ rec { workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "d990019c690ed85aea29b095a03661c015676caa"; - sha256 = "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6"; + rev = "958f62f2befdd984ad9fcd272d0214055c3a7601"; + sha256 = "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd"; }; libName = "stackable_shared"; authors = [ @@ -8793,7 +8624,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.5"; + packageId = "snafu 0.8.6"; } ]; @@ -8854,7 +8685,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.5"; + packageId = "snafu 0.8.6"; } { name = "stackable-operator"; @@ -8902,13 +8733,13 @@ rec { }; "stackable-telemetry" = rec { crateName = "stackable-telemetry"; - version = "0.6.0"; + version = "0.6.1"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "d990019c690ed85aea29b095a03661c015676caa"; - sha256 = "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6"; + rev = "958f62f2befdd984ad9fcd272d0214055c3a7601"; + sha256 = "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd"; }; libName = "stackable_telemetry"; authors = [ @@ -8918,6 +8749,7 @@ rec { { name = "axum"; packageId = "axum"; + features = [ "http2" ]; } { name = "clap"; @@ -8943,6 +8775,10 @@ rec { packageId = "opentelemetry-otlp"; features = [ "grpc-tonic" "gzip-tonic" "logs" ]; } + { + name = "opentelemetry-semantic-conventions"; + packageId = "opentelemetry-semantic-conventions"; + } { name = "opentelemetry_sdk"; packageId = "opentelemetry_sdk"; @@ -8954,7 +8790,7 @@ rec { } { name = "snafu"; - packageId = "snafu 0.8.5"; + packageId = "snafu 0.8.6"; } { name = "strum"; @@ -8968,7 +8804,7 @@ rec { } { name = "tower"; - packageId = "tower 0.5.2"; + packageId = "tower"; features = [ "util" ]; } { @@ -9007,39 +8843,57 @@ rec { }; "stackable-versioned" = rec { crateName = "stackable-versioned"; - version = "0.7.1"; + version = "0.8.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "d990019c690ed85aea29b095a03661c015676caa"; - sha256 = "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6"; + rev = "958f62f2befdd984ad9fcd272d0214055c3a7601"; + sha256 = "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd"; }; libName = "stackable_versioned"; authors = [ "Stackable GmbH " ]; dependencies = [ + { + name = "schemars"; + packageId = "schemars"; + features = [ "url" ]; + } + { + name = "serde"; + packageId = "serde"; + features = [ "derive" ]; + } + { + name = "serde_json"; + packageId = "serde_json"; + } + { + name = "serde_yaml"; + packageId = "serde_yaml"; + } + { + name = "snafu"; + packageId = "snafu 0.8.6"; + } { name = "stackable-versioned-macros"; packageId = "stackable-versioned-macros"; } ]; - features = { - "full" = [ "k8s" ]; - "k8s" = [ "stackable-versioned-macros/k8s" ]; - }; - resolvedDefaultFeatures = [ "k8s" ]; + }; "stackable-versioned-macros" = rec { crateName = "stackable-versioned-macros"; - version = "0.7.1"; + version = "0.8.0"; edition = "2024"; workspace_member = null; src = pkgs.fetchgit { url = "https://github.com/stackabletech/operator-rs.git"; - rev = "d990019c690ed85aea29b095a03661c015676caa"; - sha256 = "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6"; + rev = "958f62f2befdd984ad9fcd272d0214055c3a7601"; + sha256 = "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd"; }; procMacro = true; libName = "stackable_versioned_macros"; @@ -9055,6 +8909,10 @@ rec { name = "darling"; packageId = "darling"; } + { + name = "indoc"; + packageId = "indoc"; + } { name = "itertools"; packageId = "itertools"; @@ -9062,7 +8920,6 @@ rec { { name = "k8s-openapi"; packageId = "k8s-openapi"; - optional = true; usesDefaultFeatures = false; features = [ "schemars" "v1_33" ]; } @@ -9074,7 +8931,6 @@ rec { { name = "kube"; packageId = "kube"; - optional = true; usesDefaultFeatures = false; features = [ "client" "jsonpatch" "runtime" "derive" "rustls-tls" "ring" ]; } @@ -9088,22 +8944,10 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; - } - ]; - devDependencies = [ - { - name = "k8s-openapi"; - packageId = "k8s-openapi"; - usesDefaultFeatures = false; - features = [ "schemars" "v1_33" ]; + packageId = "syn 2.0.104"; } ]; - features = { - "full" = [ "k8s" ]; - "k8s" = [ "dep:kube" "dep:k8s-openapi" ]; - }; - resolvedDefaultFeatures = [ "k8s" ]; + }; "strsim" = rec { crateName = "strsim"; @@ -9167,7 +9011,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "parsing" ]; } ]; @@ -9220,11 +9064,11 @@ rec { }; resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "full" "parsing" "printing" "proc-macro" "quote" ]; }; - "syn 2.0.100" = rec { + "syn 2.0.104" = rec { crateName = "syn"; - version = "2.0.100"; + version = "2.0.104"; edition = "2021"; - sha256 = "18623wdkns03blpv65xsjn8fipl9p9hj98vlrnhin7nqran496mh"; + sha256 = "0h2s8cxh5dsh9h41dxnlzpifqqn59cqgm0kljawws61ljq2zgdhp"; authors = [ "David Tolnay " ]; @@ -9277,9 +9121,9 @@ rec { }; "synstructure" = rec { crateName = "synstructure"; - version = "0.13.1"; + version = "0.13.2"; edition = "2018"; - sha256 = "0wc9f002ia2zqcbj0q2id5x6n7g1zjqba7qkg2mr0qvvmdk7dby8"; + sha256 = "1lh9lx3r3jb18f8sbj29am5hm9jymvbwh6jb1izsnnxgvgrp12kj"; authors = [ "Nika Layzell " ]; @@ -9296,7 +9140,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; usesDefaultFeatures = false; features = [ "derive" "parsing" "printing" "clone-impls" "visit" "extra-traits" ]; } @@ -9363,7 +9207,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; } ]; @@ -9389,16 +9233,16 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; } ]; }; "thread_local" = rec { crateName = "thread_local"; - version = "1.1.8"; + version = "1.1.9"; edition = "2021"; - sha256 = "173i5lyjh011gsimk21np9jn8al18rxsrkjli20a7b8ks2xgk7lb"; + sha256 = "1191jvl8d63agnq06pcnarivf63qzgpws5xa33hgc92gjjj4c0pn"; authors = [ "Amanieu d'Antras " ]; @@ -9407,10 +9251,6 @@ rec { name = "cfg-if"; packageId = "cfg-if"; } - { - name = "once_cell"; - packageId = "once_cell"; - } ]; features = { }; @@ -9534,9 +9374,9 @@ rec { }; "tinystr" = rec { crateName = "tinystr"; - version = "0.7.6"; + version = "0.8.1"; edition = "2021"; - sha256 = "0bxqaw7z8r2kzngxlzlgvld1r6jbnwyylyvyjbv1q71rvgaga5wi"; + sha256 = "12sc6h3hnn6x78iycm5v6wrs2xhxph0ydm43yyn7gdfw8l8nsksx"; authors = [ "The ICU4X Project Developers" ]; @@ -9554,6 +9394,7 @@ rec { } ]; features = { + "alloc" = [ "zerovec?/alloc" ]; "databake" = [ "dep:databake" ]; "default" = [ "alloc" ]; "serde" = [ "dep:serde" ]; @@ -9563,9 +9404,9 @@ rec { }; "tokio" = rec { crateName = "tokio"; - version = "1.44.2"; + version = "1.46.1"; edition = "2021"; - sha256 = "0j4w3qvlcqzgbxlnap0czvspqj6x461vyk1sbqcf97g4rci8if76"; + sha256 = "05sxldy7kcgysnxyzz1h1l8j3d9mjyqfh7r48ni27gmg9lsa5hqc"; authors = [ "Tokio Contributors " ]; @@ -9580,6 +9421,17 @@ rec { packageId = "bytes"; optional = true; } + { + name = "io-uring"; + packageId = "io-uring"; + usesDefaultFeatures = false; + target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); + } + { + name = "libc"; + packageId = "libc"; + target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); + } { name = "libc"; packageId = "libc"; @@ -9592,6 +9444,13 @@ rec { optional = true; usesDefaultFeatures = false; } + { + name = "mio"; + packageId = "mio"; + usesDefaultFeatures = false; + target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); + features = [ "os-poll" "os-ext" ]; + } { name = "parking_lot"; packageId = "parking_lot"; @@ -9607,6 +9466,11 @@ rec { optional = true; target = { target, features }: (target."unix" or false); } + { + name = "slab"; + packageId = "slab"; + target = { target, features }: ((target."tokio_uring" or false) && ("linux" == target."os" or null)); + } { name = "socket2"; packageId = "socket2"; @@ -9686,7 +9550,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" ]; } ]; @@ -9774,9 +9638,9 @@ rec { }; "tokio-util" = rec { crateName = "tokio-util"; - version = "0.7.14"; + version = "0.7.15"; edition = "2021"; - sha256 = "0d7hm1jrwpzryvni72fy5dg9blqs776wq5w38lwigk3g7swr15bb"; + sha256 = "1pypd9lm1fdnpw0779pqvc16qqrxjy63dgfm20ajhpbdmnlkk9b6"; libName = "tokio_util"; authors = [ "Tokio Contributors " @@ -9834,29 +9698,22 @@ rec { }; "toml_datetime" = rec { crateName = "toml_datetime"; - version = "0.6.8"; + version = "0.6.11"; edition = "2021"; - sha256 = "0hgv7v9g35d7y9r2afic58jvlwnf73vgd1mz2k8gihlgrf73bmqd"; - authors = [ - "Alex Crichton " - ]; + sha256 = "077ix2hb1dcya49hmi1avalwbixmrs75zgzb3b2i7g2gizwdmk92"; features = { "serde" = [ "dep:serde" ]; }; }; "toml_edit" = rec { crateName = "toml_edit"; - version = "0.22.24"; + version = "0.22.27"; edition = "2021"; - sha256 = "0x0lgp70x5cl9nla03xqs5vwwwlrwmd0djkdrp3h3lpdymgpkd0p"; - authors = [ - "Andronik Ordian " - "Ed Page " - ]; + sha256 = "16l15xm40404asih8vyjvnka9g0xs9i4hfb6ry3ph9g419k8rzj1"; dependencies = [ { name = "indexmap"; - packageId = "indexmap 2.9.0"; + packageId = "indexmap"; features = [ "std" ]; } { @@ -9871,17 +9728,19 @@ rec { ]; features = { "default" = [ "parse" "display" ]; + "display" = [ "dep:toml_write" ]; "parse" = [ "dep:winnow" ]; "perf" = [ "dep:kstring" ]; "serde" = [ "dep:serde" "toml_datetime/serde" "dep:serde_spanned" ]; + "unstable-debug" = [ "winnow?/debug" ]; }; resolvedDefaultFeatures = [ "parse" ]; }; "tonic" = rec { crateName = "tonic"; - version = "0.12.3"; + version = "0.13.1"; edition = "2021"; - sha256 = "0ljd1lfjpw0vrm5wbv15x6nq2i38llsanls5rkzmdn2n0wrmnz47"; + sha256 = "1acvnjzh61y0m829mijj6z2nzqnwshdsnmbcl2g4spw3bahinn3y"; authors = [ "Lucio Franco " ]; @@ -9893,7 +9752,7 @@ rec { } { name = "base64"; - packageId = "base64 0.22.1"; + packageId = "base64"; } { name = "bytes"; @@ -9961,7 +9820,7 @@ rec { } { name = "tower"; - packageId = "tower 0.4.13"; + packageId = "tower"; optional = true; usesDefaultFeatures = false; } @@ -9982,36 +9841,38 @@ rec { { name = "tokio"; packageId = "tokio"; - features = [ "rt" "macros" ]; + features = [ "rt-multi-thread" "macros" ]; } { name = "tower"; - packageId = "tower 0.4.13"; + packageId = "tower"; features = [ "full" ]; } ]; features = { + "_tls-any" = [ "dep:tokio-rustls" "dep:tokio" "tokio?/rt" "tokio?/macros" ]; "channel" = [ "dep:hyper" "hyper?/client" "dep:hyper-util" "hyper-util?/client-legacy" "dep:tower" "tower?/balance" "tower?/buffer" "tower?/discover" "tower?/limit" "tower?/util" "dep:tokio" "tokio?/time" "dep:hyper-timeout" ]; "codegen" = [ "dep:async-trait" ]; - "default" = [ "transport" "codegen" "prost" ]; + "default" = [ "router" "transport" "codegen" "prost" ]; + "deflate" = [ "dep:flate2" ]; "gzip" = [ "dep:flate2" ]; "prost" = [ "dep:prost" ]; "router" = [ "dep:axum" "dep:tower" "tower?/util" ]; - "server" = [ "router" "dep:async-stream" "dep:h2" "dep:hyper" "hyper?/server" "dep:hyper-util" "hyper-util?/service" "hyper-util?/server-auto" "dep:socket2" "dep:tokio" "tokio?/macros" "tokio?/net" "tokio?/time" "tokio-stream/net" "dep:tower" "tower?/util" "tower?/limit" ]; - "tls" = [ "dep:rustls-pemfile" "dep:tokio-rustls" "dep:tokio" "tokio?/rt" "tokio?/macros" ]; - "tls-native-roots" = [ "tls" "channel" "dep:rustls-native-certs" ]; - "tls-roots" = [ "tls-native-roots" ]; - "tls-webpki-roots" = [ "tls" "channel" "dep:webpki-roots" ]; + "server" = [ "dep:h2" "dep:hyper" "hyper?/server" "dep:hyper-util" "hyper-util?/service" "hyper-util?/server-auto" "dep:socket2" "dep:tokio" "tokio?/macros" "tokio?/net" "tokio?/time" "tokio-stream/net" "dep:tower" "tower?/util" "tower?/limit" ]; + "tls-aws-lc" = [ "_tls-any" "tokio-rustls/aws-lc-rs" ]; + "tls-native-roots" = [ "_tls-any" "channel" "dep:rustls-native-certs" ]; + "tls-ring" = [ "_tls-any" "tokio-rustls/ring" ]; + "tls-webpki-roots" = [ "_tls-any" "channel" "dep:webpki-roots" ]; "transport" = [ "server" "channel" ]; "zstd" = [ "dep:zstd" ]; }; resolvedDefaultFeatures = [ "channel" "codegen" "gzip" "prost" ]; }; - "tower 0.4.13" = rec { + "tower" = rec { crateName = "tower"; - version = "0.4.13"; + version = "0.5.2"; edition = "2018"; - sha256 = "073wncyqav4sak1p755hf6vl66njgfc1z1g1di9rxx3cvvh9pymq"; + sha256 = "1ybmd59nm4abl9bsvy6rx31m4zvzp5rja2slzpn712y9b68ssffh"; authors = [ "Tower Maintainers " ]; @@ -10030,12 +9891,7 @@ rec { } { name = "indexmap"; - packageId = "indexmap 1.9.3"; - optional = true; - } - { - name = "pin-project"; - packageId = "pin-project"; + packageId = "indexmap"; optional = true; } { @@ -10043,117 +9899,11 @@ rec { packageId = "pin-project-lite"; optional = true; } - { - name = "rand"; - packageId = "rand 0.8.5"; - optional = true; - features = [ "small_rng" ]; - } { name = "slab"; packageId = "slab"; optional = true; } - { - name = "tokio"; - packageId = "tokio"; - optional = true; - features = [ "sync" ]; - } - { - name = "tokio-util"; - packageId = "tokio-util"; - optional = true; - usesDefaultFeatures = false; - } - { - name = "tower-layer"; - packageId = "tower-layer"; - } - { - name = "tower-service"; - packageId = "tower-service"; - } - { - name = "tracing"; - packageId = "tracing"; - optional = true; - usesDefaultFeatures = false; - features = [ "std" ]; - } - ]; - devDependencies = [ - { - name = "pin-project-lite"; - packageId = "pin-project-lite"; - } - { - name = "tokio"; - packageId = "tokio"; - features = [ "macros" "sync" "test-util" "rt-multi-thread" ]; - } - ]; - features = { - "__common" = [ "futures-core" "pin-project-lite" ]; - "balance" = [ "discover" "load" "ready-cache" "make" "rand" "slab" ]; - "buffer" = [ "__common" "tokio/sync" "tokio/rt" "tokio-util" "tracing" ]; - "default" = [ "log" ]; - "discover" = [ "__common" ]; - "filter" = [ "__common" "futures-util" ]; - "full" = [ "balance" "buffer" "discover" "filter" "hedge" "limit" "load" "load-shed" "make" "ready-cache" "reconnect" "retry" "spawn-ready" "steer" "timeout" "util" ]; - "futures-core" = [ "dep:futures-core" ]; - "futures-util" = [ "dep:futures-util" ]; - "hdrhistogram" = [ "dep:hdrhistogram" ]; - "hedge" = [ "util" "filter" "futures-util" "hdrhistogram" "tokio/time" "tracing" ]; - "indexmap" = [ "dep:indexmap" ]; - "limit" = [ "__common" "tokio/time" "tokio/sync" "tokio-util" "tracing" ]; - "load" = [ "__common" "tokio/time" "tracing" ]; - "load-shed" = [ "__common" ]; - "log" = [ "tracing/log" ]; - "make" = [ "futures-util" "pin-project-lite" "tokio/io-std" ]; - "pin-project" = [ "dep:pin-project" ]; - "pin-project-lite" = [ "dep:pin-project-lite" ]; - "rand" = [ "dep:rand" ]; - "ready-cache" = [ "futures-core" "futures-util" "indexmap" "tokio/sync" "tracing" "pin-project-lite" ]; - "reconnect" = [ "make" "tokio/io-std" "tracing" ]; - "retry" = [ "__common" "tokio/time" ]; - "slab" = [ "dep:slab" ]; - "spawn-ready" = [ "__common" "futures-util" "tokio/sync" "tokio/rt" "util" "tracing" ]; - "timeout" = [ "pin-project-lite" "tokio/time" ]; - "tokio" = [ "dep:tokio" ]; - "tokio-stream" = [ "dep:tokio-stream" ]; - "tokio-util" = [ "dep:tokio-util" ]; - "tracing" = [ "dep:tracing" ]; - "util" = [ "__common" "futures-util" "pin-project" ]; - }; - resolvedDefaultFeatures = [ "__common" "balance" "buffer" "discover" "futures-core" "futures-util" "indexmap" "limit" "load" "make" "pin-project" "pin-project-lite" "rand" "ready-cache" "slab" "tokio" "tokio-util" "tracing" "util" ]; - }; - "tower 0.5.2" = rec { - crateName = "tower"; - version = "0.5.2"; - edition = "2018"; - sha256 = "1ybmd59nm4abl9bsvy6rx31m4zvzp5rja2slzpn712y9b68ssffh"; - authors = [ - "Tower Maintainers " - ]; - dependencies = [ - { - name = "futures-core"; - packageId = "futures-core"; - optional = true; - } - { - name = "futures-util"; - packageId = "futures-util"; - optional = true; - usesDefaultFeatures = false; - features = [ "alloc" ]; - } - { - name = "pin-project-lite"; - packageId = "pin-project-lite"; - optional = true; - } { name = "sync_wrapper"; packageId = "sync_wrapper"; @@ -10235,13 +9985,13 @@ rec { "tracing" = [ "dep:tracing" ]; "util" = [ "__common" "futures-util" "pin-project-lite" "sync_wrapper" ]; }; - resolvedDefaultFeatures = [ "__common" "buffer" "filter" "futures-core" "futures-util" "log" "make" "pin-project-lite" "sync_wrapper" "timeout" "tokio" "tokio-util" "tracing" "util" ]; + resolvedDefaultFeatures = [ "__common" "balance" "buffer" "discover" "filter" "futures-core" "futures-util" "indexmap" "limit" "load" "log" "make" "pin-project-lite" "ready-cache" "slab" "sync_wrapper" "timeout" "tokio" "tokio-util" "tracing" "util" ]; }; "tower-http" = rec { crateName = "tower-http"; - version = "0.6.2"; + version = "0.6.6"; edition = "2018"; - sha256 = "15wnvhl6cpir9125s73bqjzjsvfb0fmndmsimnl2ddnlhfvs6gs0"; + sha256 = "1wh51y4rf03f91c6rvli6nwzsarx7097yx6sqlm75ag27pbjzj5d"; libName = "tower_http"; authors = [ "Tower Maintainers " @@ -10249,7 +9999,7 @@ rec { dependencies = [ { name = "base64"; - packageId = "base64 0.22.1"; + packageId = "base64"; optional = true; } { @@ -10260,6 +10010,12 @@ rec { name = "bytes"; packageId = "bytes"; } + { + name = "futures-util"; + packageId = "futures-util"; + optional = true; + usesDefaultFeatures = false; + } { name = "http"; packageId = "http"; @@ -10269,6 +10025,11 @@ rec { packageId = "http-body"; optional = true; } + { + name = "iri-string"; + packageId = "iri-string"; + optional = true; + } { name = "mime"; packageId = "mime"; @@ -10279,6 +10040,11 @@ rec { name = "pin-project-lite"; packageId = "pin-project-lite"; } + { + name = "tower"; + packageId = "tower"; + optional = true; + } { name = "tower-layer"; packageId = "tower-layer"; @@ -10299,10 +10065,19 @@ rec { name = "bytes"; packageId = "bytes"; } + { + name = "futures-util"; + packageId = "futures-util"; + } { name = "http-body"; packageId = "http-body"; } + { + name = "tower"; + packageId = "tower"; + features = [ "buffer" "util" "retry" "make" "timeout" ]; + } ]; features = { "async-compression" = [ "dep:async-compression" ]; @@ -10320,7 +10095,7 @@ rec { "decompression-gzip" = [ "async-compression/gzip" "futures-core" "dep:http-body" "dep:http-body-util" "tokio-util" "tokio" ]; "decompression-zstd" = [ "async-compression/zstd" "futures-core" "dep:http-body" "dep:http-body-util" "tokio-util" "tokio" ]; "follow-redirect" = [ "futures-util" "dep:http-body" "iri-string" "tower/util" ]; - "fs" = [ "futures-util" "dep:http-body" "dep:http-body-util" "tokio/fs" "tokio-util/io" "tokio/io-util" "dep:http-range-header" "mime_guess" "mime" "percent-encoding" "httpdate" "set-status" "futures-util/alloc" "tracing" ]; + "fs" = [ "futures-core" "futures-util" "dep:http-body" "dep:http-body-util" "tokio/fs" "tokio-util/io" "tokio/io-util" "dep:http-range-header" "mime_guess" "mime" "percent-encoding" "httpdate" "set-status" "futures-util/alloc" "tracing" ]; "full" = [ "add-extension" "auth" "catch-panic" "compression-full" "cors" "decompression-full" "follow-redirect" "fs" "limit" "map-request-body" "map-response-body" "metrics" "normalize-path" "propagate-header" "redirect" "request-id" "sensitive-headers" "set-header" "set-status" "timeout" "trace" "util" "validate-request" ]; "futures-core" = [ "dep:futures-core" ]; "futures-util" = [ "dep:futures-util" ]; @@ -10342,7 +10117,7 @@ rec { "uuid" = [ "dep:uuid" ]; "validate-request" = [ "mime" ]; }; - resolvedDefaultFeatures = [ "auth" "base64" "default" "map-response-body" "mime" "trace" "tracing" "validate-request" ]; + resolvedDefaultFeatures = [ "auth" "base64" "default" "follow-redirect" "futures-util" "iri-string" "map-response-body" "mime" "tower" "trace" "tracing" "validate-request" ]; }; "tower-layer" = rec { crateName = "tower-layer"; @@ -10451,9 +10226,9 @@ rec { }; "tracing-attributes" = rec { crateName = "tracing-attributes"; - version = "0.1.28"; + version = "0.1.30"; edition = "2018"; - sha256 = "0v92l9cxs42rdm4m5hsa8z7ln1xsiw1zc2iil8c6k7lzq0jf2nir"; + sha256 = "00v9bhfgfg3v101nmmy7s3vdwadb7ngc8c1iw6wai9vj9sv3lf41"; procMacro = true; libName = "tracing_attributes"; authors = [ @@ -10472,7 +10247,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; usesDefaultFeatures = false; features = [ "full" "parsing" "printing" "visit-mut" "clone-impls" "extra-traits" "proc-macro" ]; } @@ -10482,9 +10257,9 @@ rec { }; "tracing-core" = rec { crateName = "tracing-core"; - version = "0.1.33"; + version = "0.1.34"; edition = "2018"; - sha256 = "170gc7cxyjx824r9kr17zc9gvzx89ypqfdzq259pr56gg5bwjwp6"; + sha256 = "0y3nc4mpnr79rzkrcylv5f5bnjjp19lsxwis9l4kzs97ya0jbldr"; libName = "tracing_core"; authors = [ "Tokio Contributors " @@ -10592,9 +10367,9 @@ rec { }; "tracing-opentelemetry" = rec { crateName = "tracing-opentelemetry"; - version = "0.30.0"; + version = "0.31.0"; edition = "2021"; - sha256 = "0i64g7cyrdpzkc2zixz8bd0v1icha63ifcdwpvc3z0gmsr5pd3px"; + sha256 = "171scb8d5ynxvnyvq7lm9wzn4fzk0jf124v49p8d01wmydcmkkyx"; libName = "tracing_opentelemetry"; dependencies = [ { @@ -10661,7 +10436,7 @@ rec { name = "opentelemetry_sdk"; packageId = "opentelemetry_sdk"; usesDefaultFeatures = false; - features = [ "trace" "rt-tokio" ]; + features = [ "trace" "rt-tokio" "experimental_metrics_custom_reader" ]; } { name = "tracing"; @@ -10991,16 +10766,6 @@ rec { }; resolvedDefaultFeatures = [ "default" "serde" "std" ]; }; - "utf16_iter" = rec { - crateName = "utf16_iter"; - version = "1.0.5"; - edition = "2021"; - sha256 = "0ik2krdr73hfgsdzw0218fn35fa09dg2hvbi1xp3bmdfrp9js8y8"; - authors = [ - "Henri Sivonen " - ]; - - }; "utf8_iter" = rec { crateName = "utf8_iter"; version = "1.0.4"; @@ -11073,19 +10838,18 @@ rec { ]; }; - "wasi 0.11.0+wasi-snapshot-preview1" = rec { + "wasi 0.11.1+wasi-snapshot-preview1" = rec { crateName = "wasi"; - version = "0.11.0+wasi-snapshot-preview1"; + version = "0.11.1+wasi-snapshot-preview1"; edition = "2018"; - sha256 = "08z4hxwkpdpalxjps1ai9y7ihin26y9f476i53dv98v45gkqg3cw"; + sha256 = "0jx49r7nbkbhyfrfyhz0bm4817yrnxgd3jiwwwfv0zl439jyrwyc"; authors = [ "The Cranelift Project Developers" ]; features = { - "compiler_builtins" = [ "dep:compiler_builtins" ]; "core" = [ "dep:core" ]; "default" = [ "std" ]; - "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ]; + "rustc-dep-of-std" = [ "core" "rustc-std-workspace-alloc" ]; "rustc-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ]; }; resolvedDefaultFeatures = [ "default" "std" ]; @@ -11189,7 +10953,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" ]; } { @@ -11290,7 +11054,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "visit" "visit-mut" "full" ]; } { @@ -11878,9 +11642,9 @@ rec { }; "windows-core" = rec { crateName = "windows-core"; - version = "0.61.0"; + version = "0.61.2"; edition = "2021"; - sha256 = "104915nsby2cgp322pqqkmj2r82v5sg4hil0hxddg1hc67gc2qs7"; + sha256 = "1qsa3iw14wk4ngfl7ipcvdf9xyq456ms7cx2i9iwf406p7fx7zf0"; libName = "windows_core"; authors = [ "Microsoft" @@ -11908,7 +11672,7 @@ rec { } { name = "windows-strings"; - packageId = "windows-strings 0.4.0"; + packageId = "windows-strings"; usesDefaultFeatures = false; } ]; @@ -11941,7 +11705,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; usesDefaultFeatures = false; features = [ "parsing" "proc-macro" "printing" "full" "clone-impls" ]; } @@ -11971,7 +11735,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; usesDefaultFeatures = false; features = [ "parsing" "proc-macro" "printing" "full" "clone-impls" ]; } @@ -11980,51 +11744,20 @@ rec { }; "windows-link" = rec { crateName = "windows-link"; - version = "0.1.1"; + version = "0.1.3"; edition = "2021"; - sha256 = "0f2cq7imbrppsmmnz8899hfhg07cp5gq6rh0bjhb1qb6nwshk13n"; + sha256 = "12kr1p46dbhpijr4zbwr2spfgq8i8c5x55mvvfmyl96m01cx4sjy"; libName = "windows_link"; authors = [ "Microsoft" ]; }; - "windows-registry" = rec { - crateName = "windows-registry"; - version = "0.4.0"; - edition = "2021"; - sha256 = "18wbgr6z6765qdnasi8mmvxhvp82xd1zlvd6s7pp2l5lvn8av1j2"; - libName = "windows_registry"; - authors = [ - "Microsoft" - ]; - dependencies = [ - { - name = "windows-result"; - packageId = "windows-result"; - usesDefaultFeatures = false; - } - { - name = "windows-strings"; - packageId = "windows-strings 0.3.1"; - usesDefaultFeatures = false; - } - { - name = "windows-targets"; - packageId = "windows-targets 0.53.0"; - } - ]; - features = { - "default" = [ "std" ]; - "std" = [ "windows-result/std" "windows-strings/std" ]; - }; - resolvedDefaultFeatures = [ "default" "std" ]; - }; "windows-result" = rec { crateName = "windows-result"; - version = "0.3.2"; + version = "0.3.4"; edition = "2021"; - sha256 = "0li2f76anf0rg7i966d9qs5iprsg555g9rgyzj7gcpfr9wdd2ky6"; + sha256 = "1il60l6idrc6hqsij0cal0mgva6n3w6gq4ziban8wv6c6b9jpx2n"; libName = "windows_result"; authors = [ "Microsoft" @@ -12041,31 +11774,11 @@ rec { }; resolvedDefaultFeatures = [ "std" ]; }; - "windows-strings 0.3.1" = rec { - crateName = "windows-strings"; - version = "0.3.1"; - edition = "2021"; - sha256 = "06bkhkyclbfchcsv5bnhz77r290k20m15glj2xq60ra0bp64iyl7"; - libName = "windows_strings"; - authors = [ - "Microsoft" - ]; - dependencies = [ - { - name = "windows-link"; - packageId = "windows-link"; - } - ]; - features = { - "default" = [ "std" ]; - }; - resolvedDefaultFeatures = [ "std" ]; - }; - "windows-strings 0.4.0" = rec { + "windows-strings" = rec { crateName = "windows-strings"; - version = "0.4.0"; + version = "0.4.2"; edition = "2021"; - sha256 = "15rg6a0ha1d231wwps2qlgyqrgkyj1r8v9vsb8nlbvih4ijajavs"; + sha256 = "0mrv3plibkla4v5kaakc2rfksdd0b14plcmidhbkcfqc78zwkrjn"; libName = "windows_strings"; authors = [ "Microsoft" @@ -12094,7 +11807,7 @@ rec { dependencies = [ { name = "windows-targets"; - packageId = "windows-targets 0.52.6"; + packageId = "windows-targets"; } ]; features = { @@ -12328,7 +12041,7 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_IO" "Win32_System_Pipes" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; + resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Console" "Win32_System_IO" "Win32_System_Pipes" "Win32_System_SystemServices" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ]; }; "windows-sys 0.59.0" = rec { crateName = "windows-sys"; @@ -12342,7 +12055,7 @@ rec { dependencies = [ { name = "windows-targets"; - packageId = "windows-targets 0.52.6"; + packageId = "windows-targets"; } ]; features = { @@ -12587,9 +12300,9 @@ rec { "Win32_Web" = [ "Win32" ]; "Win32_Web_InternetExplorer" = [ "Win32_Web" ]; }; - resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_System" "Win32_System_Com" "Win32_System_Console" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_SystemInformation" "Win32_UI" "Win32_UI_Shell" "default" ]; + resolvedDefaultFeatures = [ "Wdk" "Wdk_Foundation" "Wdk_Storage" "Wdk_Storage_FileSystem" "Wdk_System" "Wdk_System_IO" "Win32" "Win32_Foundation" "Win32_Networking" "Win32_Networking_WinSock" "Win32_Security" "Win32_Security_Authentication" "Win32_Security_Authentication_Identity" "Win32_Security_Credentials" "Win32_Security_Cryptography" "Win32_Storage" "Win32_Storage_FileSystem" "Win32_System" "Win32_System_Com" "Win32_System_Console" "Win32_System_IO" "Win32_System_LibraryLoader" "Win32_System_Memory" "Win32_System_Pipes" "Win32_System_SystemInformation" "Win32_System_WindowsProgramming" "Win32_UI" "Win32_UI_Shell" "default" ]; }; - "windows-targets 0.52.6" = rec { + "windows-targets" = rec { crateName = "windows-targets"; version = "0.52.6"; edition = "2021"; @@ -12601,101 +12314,48 @@ rec { dependencies = [ { name = "windows_aarch64_gnullvm"; - packageId = "windows_aarch64_gnullvm 0.52.6"; - target = { target, features }: (target.name == "aarch64-pc-windows-gnullvm"); - } - { - name = "windows_aarch64_msvc"; - packageId = "windows_aarch64_msvc 0.52.6"; - target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_i686_gnu"; - packageId = "windows_i686_gnu 0.52.6"; - target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_i686_gnullvm"; - packageId = "windows_i686_gnullvm 0.52.6"; - target = { target, features }: (target.name == "i686-pc-windows-gnullvm"); - } - { - name = "windows_i686_msvc"; - packageId = "windows_i686_msvc 0.52.6"; - target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_x86_64_gnu"; - packageId = "windows_x86_64_gnu 0.52.6"; - target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); - } - { - name = "windows_x86_64_gnullvm"; - packageId = "windows_x86_64_gnullvm 0.52.6"; - target = { target, features }: (target.name == "x86_64-pc-windows-gnullvm"); - } - { - name = "windows_x86_64_msvc"; - packageId = "windows_x86_64_msvc 0.52.6"; - target = { target, features }: ((("x86_64" == target."arch" or null) || ("arm64ec" == target."arch" or null)) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); - } - ]; - - }; - "windows-targets 0.53.0" = rec { - crateName = "windows-targets"; - version = "0.53.0"; - edition = "2021"; - sha256 = "12yakpjizhfpppz1i3zgcwxlbar8axrp9j87fmywpydarvlcgr5i"; - libName = "windows_targets"; - authors = [ - "Microsoft" - ]; - dependencies = [ - { - name = "windows_aarch64_gnullvm"; - packageId = "windows_aarch64_gnullvm 0.53.0"; + packageId = "windows_aarch64_gnullvm"; target = { target, features }: (target.name == "aarch64-pc-windows-gnullvm"); } { name = "windows_aarch64_msvc"; - packageId = "windows_aarch64_msvc 0.53.0"; + packageId = "windows_aarch64_msvc"; target = { target, features }: (("aarch64" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_i686_gnu"; - packageId = "windows_i686_gnu 0.53.0"; + packageId = "windows_i686_gnu"; target = { target, features }: (("x86" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); } { name = "windows_i686_gnullvm"; - packageId = "windows_i686_gnullvm 0.53.0"; + packageId = "windows_i686_gnullvm"; target = { target, features }: (target.name == "i686-pc-windows-gnullvm"); } { name = "windows_i686_msvc"; - packageId = "windows_i686_msvc 0.53.0"; + packageId = "windows_i686_msvc"; target = { target, features }: (("x86" == target."arch" or null) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnu"; - packageId = "windows_x86_64_gnu 0.53.0"; + packageId = "windows_x86_64_gnu"; target = { target, features }: (("x86_64" == target."arch" or null) && ("gnu" == target."env" or null) && (!("llvm" == target."abi" or null)) && (!(target."windows_raw_dylib" or false))); } { name = "windows_x86_64_gnullvm"; - packageId = "windows_x86_64_gnullvm 0.53.0"; + packageId = "windows_x86_64_gnullvm"; target = { target, features }: (target.name == "x86_64-pc-windows-gnullvm"); } { name = "windows_x86_64_msvc"; - packageId = "windows_x86_64_msvc 0.53.0"; + packageId = "windows_x86_64_msvc"; target = { target, features }: ((("x86_64" == target."arch" or null) || ("arm64ec" == target."arch" or null)) && ("msvc" == target."env" or null) && (!(target."windows_raw_dylib" or false))); } ]; }; - "windows_aarch64_gnullvm 0.52.6" = rec { + "windows_aarch64_gnullvm" = rec { crateName = "windows_aarch64_gnullvm"; version = "0.52.6"; edition = "2021"; @@ -12705,17 +12365,7 @@ rec { ]; }; - "windows_aarch64_gnullvm 0.53.0" = rec { - crateName = "windows_aarch64_gnullvm"; - version = "0.53.0"; - edition = "2021"; - sha256 = "0r77pbpbcf8bq4yfwpz2hpq3vns8m0yacpvs2i5cn6fx1pwxbf46"; - authors = [ - "Microsoft" - ]; - - }; - "windows_aarch64_msvc 0.52.6" = rec { + "windows_aarch64_msvc" = rec { crateName = "windows_aarch64_msvc"; version = "0.52.6"; edition = "2021"; @@ -12725,17 +12375,7 @@ rec { ]; }; - "windows_aarch64_msvc 0.53.0" = rec { - crateName = "windows_aarch64_msvc"; - version = "0.53.0"; - edition = "2021"; - sha256 = "0v766yqw51pzxxwp203yqy39ijgjamp54hhdbsyqq6x1c8gilrf7"; - authors = [ - "Microsoft" - ]; - - }; - "windows_i686_gnu 0.52.6" = rec { + "windows_i686_gnu" = rec { crateName = "windows_i686_gnu"; version = "0.52.6"; edition = "2021"; @@ -12745,17 +12385,7 @@ rec { ]; }; - "windows_i686_gnu 0.53.0" = rec { - crateName = "windows_i686_gnu"; - version = "0.53.0"; - edition = "2021"; - sha256 = "1hvjc8nv95sx5vdd79fivn8bpm7i517dqyf4yvsqgwrmkmjngp61"; - authors = [ - "Microsoft" - ]; - - }; - "windows_i686_gnullvm 0.52.6" = rec { + "windows_i686_gnullvm" = rec { crateName = "windows_i686_gnullvm"; version = "0.52.6"; edition = "2021"; @@ -12765,17 +12395,7 @@ rec { ]; }; - "windows_i686_gnullvm 0.53.0" = rec { - crateName = "windows_i686_gnullvm"; - version = "0.53.0"; - edition = "2021"; - sha256 = "04df1in2k91qyf1wzizvh560bvyzq20yf68k8xa66vdzxnywrrlw"; - authors = [ - "Microsoft" - ]; - - }; - "windows_i686_msvc 0.52.6" = rec { + "windows_i686_msvc" = rec { crateName = "windows_i686_msvc"; version = "0.52.6"; edition = "2021"; @@ -12785,17 +12405,7 @@ rec { ]; }; - "windows_i686_msvc 0.53.0" = rec { - crateName = "windows_i686_msvc"; - version = "0.53.0"; - edition = "2021"; - sha256 = "0pcvb25fkvqnp91z25qr5x61wyya12lx8p7nsa137cbb82ayw7sq"; - authors = [ - "Microsoft" - ]; - - }; - "windows_x86_64_gnu 0.52.6" = rec { + "windows_x86_64_gnu" = rec { crateName = "windows_x86_64_gnu"; version = "0.52.6"; edition = "2021"; @@ -12805,17 +12415,7 @@ rec { ]; }; - "windows_x86_64_gnu 0.53.0" = rec { - crateName = "windows_x86_64_gnu"; - version = "0.53.0"; - edition = "2021"; - sha256 = "1flh84xkssn1n6m1riddipydcksp2pdl45vdf70jygx3ksnbam9f"; - authors = [ - "Microsoft" - ]; - - }; - "windows_x86_64_gnullvm 0.52.6" = rec { + "windows_x86_64_gnullvm" = rec { crateName = "windows_x86_64_gnullvm"; version = "0.52.6"; edition = "2021"; @@ -12825,17 +12425,7 @@ rec { ]; }; - "windows_x86_64_gnullvm 0.53.0" = rec { - crateName = "windows_x86_64_gnullvm"; - version = "0.53.0"; - edition = "2021"; - sha256 = "0mvc8119xpbi3q2m6mrjcdzl6afx4wffacp13v76g4jrs1fh6vha"; - authors = [ - "Microsoft" - ]; - - }; - "windows_x86_64_msvc 0.52.6" = rec { + "windows_x86_64_msvc" = rec { crateName = "windows_x86_64_msvc"; version = "0.52.6"; edition = "2021"; @@ -12844,22 +12434,12 @@ rec { "Microsoft" ]; - }; - "windows_x86_64_msvc 0.53.0" = rec { - crateName = "windows_x86_64_msvc"; - version = "0.53.0"; - edition = "2021"; - sha256 = "11h4i28hq0zlnjcaqi2xdxr7ibnpa8djfggch9rki1zzb8qi8517"; - authors = [ - "Microsoft" - ]; - }; "winnow" = rec { crateName = "winnow"; - version = "0.7.6"; + version = "0.7.11"; edition = "2021"; - sha256 = "047abhm7qqgc32pf9a2arini5wsrx7p9wsbx3s106jx4pgczrlv3"; + sha256 = "1kfb2m5ahpqg037a34rgkm18x6nj2mw4fwn89ya0gdw06ipb5ivl"; dependencies = [ { name = "memchr"; @@ -12869,7 +12449,7 @@ rec { } ]; features = { - "debug" = [ "std" "dep:anstream" "dep:anstyle" "dep:is-terminal" "dep:terminal_size" ]; + "debug" = [ "std" "dep:anstream" "dep:anstyle" "dep:is_terminal_polyfill" "dep:terminal_size" ]; "default" = [ "std" ]; "simd" = [ "dep:memchr" ]; "std" = [ "alloc" "memchr?/std" ]; @@ -12896,22 +12476,11 @@ rec { }; resolvedDefaultFeatures = [ "bitflags" ]; }; - "write16" = rec { - crateName = "write16"; - version = "1.0.0"; - edition = "2021"; - sha256 = "0dnryvrrbrnl7vvf5vb1zkmwldhjkf2n5znliviam7bm4900z2fi"; - features = { - "arrayvec" = [ "dep:arrayvec" ]; - "smallvec" = [ "dep:smallvec" ]; - }; - resolvedDefaultFeatures = [ "alloc" ]; - }; "writeable" = rec { crateName = "writeable"; - version = "0.5.5"; + version = "0.6.1"; edition = "2021"; - sha256 = "0lawr6y0bwqfyayf3z8zmqlhpnzhdx0ahs54isacbhyjwa7g778y"; + sha256 = "1fx29zncvbrqzgz7li88vzdm8zvgwgwy2r9bnjqxya09pfwi0bza"; authors = [ "The ICU4X Project Developers" ]; @@ -12921,10 +12490,10 @@ rec { }; "xml-rs" = rec { crateName = "xml-rs"; - version = "0.8.26"; + version = "0.8.27"; edition = "2021"; crateBin = []; - sha256 = "1nkbzksai36pvx3ag1fn9b5cffwb1ldl66aglwcip42nkdnyfb56"; + sha256 = "1irplg223x6w3lvj0yig6czbiwci06495wc9xg3660kh6cvl1n3g"; libName = "xml"; authors = [ "Vladimir Matveev " @@ -12933,9 +12502,9 @@ rec { }; "yoke" = rec { crateName = "yoke"; - version = "0.7.5"; + version = "0.8.0"; edition = "2021"; - sha256 = "0h3znzrdmll0a7sglzf9ji0p5iqml11wrj1dypaf6ad6kbpnl3hj"; + sha256 = "1k4mfr48vgi7wh066y11b7v1ilakghlnlhw9snzz8vi2p00vnhaz"; authors = [ "Manish Goregaokar " ]; @@ -12978,13 +12547,13 @@ rec { "serde" = [ "dep:serde" ]; "zerofrom" = [ "dep:zerofrom" ]; }; - resolvedDefaultFeatures = [ "alloc" "default" "derive" "zerofrom" ]; + resolvedDefaultFeatures = [ "alloc" "derive" "zerofrom" ]; }; "yoke-derive" = rec { crateName = "yoke-derive"; - version = "0.7.5"; + version = "0.8.0"; edition = "2021"; - sha256 = "0m4i4a7gy826bfvnqa9wy6sp90qf0as3wps3wb0smjaamn68g013"; + sha256 = "1dha5jrjz9jaq8kmxq1aag86b98zbnm9lyjrihy5sv716sbkrniq"; procMacro = true; libName = "yoke_derive"; authors = [ @@ -13001,7 +12570,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "fold" ]; } { @@ -13011,47 +12580,11 @@ rec { ]; }; - "zerocopy 0.7.35" = rec { - crateName = "zerocopy"; - version = "0.7.35"; - edition = "2018"; - sha256 = "1w36q7b9il2flg0qskapgi9ymgg7p985vniqd09vi0mwib8lz6qv"; - authors = [ - "Joshua Liebow-Feeser " - ]; - dependencies = [ - { - name = "zerocopy-derive"; - packageId = "zerocopy-derive 0.7.35"; - optional = true; - } - { - name = "zerocopy-derive"; - packageId = "zerocopy-derive 0.7.35"; - target = { target, features }: false; - } - ]; - devDependencies = [ - { - name = "zerocopy-derive"; - packageId = "zerocopy-derive 0.7.35"; - } - ]; - features = { - "__internal_use_only_features_that_work_on_stable" = [ "alloc" "derive" "simd" ]; - "byteorder" = [ "dep:byteorder" ]; - "default" = [ "byteorder" ]; - "derive" = [ "zerocopy-derive" ]; - "simd-nightly" = [ "simd" ]; - "zerocopy-derive" = [ "dep:zerocopy-derive" ]; - }; - resolvedDefaultFeatures = [ "simd" ]; - }; - "zerocopy 0.8.24" = rec { + "zerocopy" = rec { crateName = "zerocopy"; - version = "0.8.24"; + version = "0.8.26"; edition = "2021"; - sha256 = "0yb8hyzfnwzr2wg4p7cnqmjps8fsw8xqnprafgpmfs8qisigx1i5"; + sha256 = "0bvsj0qzq26zc6nlrm3z10ihvjspyngs7n0jw1fz031i7h6xsf8h"; authors = [ "Joshua Liebow-Feeser " "Jack Wrenn " @@ -13059,19 +12592,19 @@ rec { dependencies = [ { name = "zerocopy-derive"; - packageId = "zerocopy-derive 0.8.24"; + packageId = "zerocopy-derive"; optional = true; } { name = "zerocopy-derive"; - packageId = "zerocopy-derive 0.8.24"; + packageId = "zerocopy-derive"; target = { target, features }: false; } ]; devDependencies = [ { name = "zerocopy-derive"; - packageId = "zerocopy-derive 0.8.24"; + packageId = "zerocopy-derive"; } ]; features = { @@ -13083,37 +12616,11 @@ rec { }; resolvedDefaultFeatures = [ "simd" ]; }; - "zerocopy-derive 0.7.35" = rec { + "zerocopy-derive" = rec { crateName = "zerocopy-derive"; - version = "0.7.35"; - edition = "2018"; - sha256 = "0gnf2ap2y92nwdalzz3x7142f2b83sni66l39vxp2ijd6j080kzs"; - procMacro = true; - libName = "zerocopy_derive"; - authors = [ - "Joshua Liebow-Feeser " - ]; - dependencies = [ - { - name = "proc-macro2"; - packageId = "proc-macro2"; - } - { - name = "quote"; - packageId = "quote"; - } - { - name = "syn"; - packageId = "syn 2.0.100"; - } - ]; - - }; - "zerocopy-derive 0.8.24" = rec { - crateName = "zerocopy-derive"; - version = "0.8.24"; + version = "0.8.26"; edition = "2021"; - sha256 = "1gk9047pbq1yjj2jyiv0s37nqc53maqbmhcsjp6lhi2w7kvai5m9"; + sha256 = "10aiywi5qkha0mpsnb1zjwi44wl2rhdncaf3ykbp4i9nqm65pkwy"; procMacro = true; libName = "zerocopy_derive"; authors = [ @@ -13131,7 +12638,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "full" ]; } ]; @@ -13180,7 +12687,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "fold" ]; } { @@ -13207,11 +12714,49 @@ rec { }; resolvedDefaultFeatures = [ "alloc" "default" ]; }; + "zerotrie" = rec { + crateName = "zerotrie"; + version = "0.2.2"; + edition = "2021"; + sha256 = "15gmka7vw5k0d24s0vxgymr2j6zn2iwl12wpmpnpjgsqg3abpw1n"; + authors = [ + "The ICU4X Project Developers" + ]; + dependencies = [ + { + name = "displaydoc"; + packageId = "displaydoc"; + usesDefaultFeatures = false; + } + { + name = "yoke"; + packageId = "yoke"; + optional = true; + usesDefaultFeatures = false; + features = [ "derive" ]; + } + { + name = "zerofrom"; + packageId = "zerofrom"; + optional = true; + usesDefaultFeatures = false; + } + ]; + features = { + "databake" = [ "dep:databake" "zerovec?/databake" ]; + "litemap" = [ "dep:litemap" "alloc" ]; + "serde" = [ "dep:serde" "dep:litemap" "alloc" "litemap/serde" "zerovec?/serde" ]; + "yoke" = [ "dep:yoke" ]; + "zerofrom" = [ "dep:zerofrom" ]; + "zerovec" = [ "dep:zerovec" ]; + }; + resolvedDefaultFeatures = [ "yoke" "zerofrom" ]; + }; "zerovec" = rec { crateName = "zerovec"; - version = "0.10.4"; + version = "0.11.2"; edition = "2021"; - sha256 = "0yghix7n3fjfdppwghknzvx9v8cf826h2qal5nqvy8yzg4yqjaxa"; + sha256 = "0a2457fmz39k9vrrj3rm82q5ykdhgxgbwfz2r6fa6nq11q4fn1aa"; authors = [ "The ICU4X Project Developers" ]; @@ -13220,6 +12765,7 @@ rec { name = "yoke"; packageId = "yoke"; optional = true; + usesDefaultFeatures = false; } { name = "zerofrom"; @@ -13233,21 +12779,28 @@ rec { usesDefaultFeatures = false; } ]; + devDependencies = [ + { + name = "yoke"; + packageId = "yoke"; + usesDefaultFeatures = false; + features = [ "derive" ]; + } + ]; features = { - "bench" = [ "serde" "databake" ]; "databake" = [ "dep:databake" ]; "derive" = [ "dep:zerovec-derive" ]; - "hashmap" = [ "dep:twox-hash" ]; - "serde" = [ "dep:serde" ]; + "hashmap" = [ "dep:twox-hash" "alloc" ]; + "serde" = [ "dep:serde" "alloc" ]; "yoke" = [ "dep:yoke" ]; }; - resolvedDefaultFeatures = [ "derive" "yoke" ]; + resolvedDefaultFeatures = [ "alloc" "derive" "yoke" ]; }; "zerovec-derive" = rec { crateName = "zerovec-derive"; - version = "0.10.3"; + version = "0.11.1"; edition = "2021"; - sha256 = "1ik322dys6wnap5d3gcsn09azmssq466xryn5czfm13mn7gsdbvf"; + sha256 = "13zms8hj7vzpfswypwggyfr4ckmyc7v3di49pmj8r1qcz9z275jv"; procMacro = true; libName = "zerovec_derive"; authors = [ @@ -13264,7 +12817,7 @@ rec { } { name = "syn"; - packageId = "syn 2.0.100"; + packageId = "syn 2.0.104"; features = [ "extra-traits" ]; } ]; diff --git a/Cargo.toml b/Cargo.toml index c2b251bc..691ee01d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://github.com/stackabletech/spark-k8s-operator" [workspace.dependencies] product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.7.0" } -stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["telemetry", "versioned"], tag = "stackable-operator-0.93.1" } +stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["telemetry", "versioned"], tag = "stackable-operator-0.94.0" } anyhow = "1.0" built = { version = "0.8", features = ["chrono", "git2"] } diff --git a/crate-hashes.json b/crate-hashes.json index 81f487ff..96482789 100644 --- a/crate-hashes.json +++ b/crate-hashes.json @@ -1,10 +1,10 @@ { - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#k8s-version@0.1.3": "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#stackable-operator-derive@0.3.1": "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#stackable-operator@0.93.1": "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#stackable-shared@0.0.1": "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#stackable-telemetry@0.6.0": "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#stackable-versioned-macros@0.7.1": "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6", - "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.93.1#stackable-versioned@0.7.1": "16faz0f3dsv095hk94kmb7mk3pr6lban1v3k0g6yawak6gk5xln6", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#k8s-version@0.1.3": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#stackable-operator-derive@0.3.1": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#stackable-operator@0.94.0": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#stackable-shared@0.0.1": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#stackable-telemetry@0.6.1": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#stackable-versioned-macros@0.8.0": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", + "git+https://github.com/stackabletech/operator-rs.git?tag=stackable-operator-0.94.0#stackable-versioned@0.8.0": "0hiymhr40ix4jv9dmvp5d009xs6v0frvllr2xkf5mw43rcg44mgd", "git+https://github.com/stackabletech/product-config.git?tag=0.7.0#product-config@0.7.0": "0gjsm80g6r75pm3824dcyiz4ysq1ka4c1if6k1mjm9cnd5ym0gny" } \ No newline at end of file diff --git a/deploy/helm/spark-k8s-operator/crds/crds.yaml b/deploy/helm/spark-k8s-operator/crds/crds.yaml index 4f8aeae9..c8adfce8 100644 --- a/deploy/helm/spark-k8s-operator/crds/crds.yaml +++ b/deploy/helm/spark-k8s-operator/crds/crds.yaml @@ -1105,6 +1105,8 @@ spec: plural: sparkhistoryservers shortNames: - sparkhist + - sparkhistory + - shs singular: sparkhistoryserver scope: Namespaced versions: @@ -2354,11 +2356,6 @@ spec: format: date-time nullable: true type: string - lastUpdateTime: - description: The last time this condition was updated. - format: date-time - nullable: true - type: string message: description: A human readable message indicating details about the transition. nullable: true diff --git a/deploy/helm/spark-k8s-operator/templates/roles.yaml b/deploy/helm/spark-k8s-operator/templates/roles.yaml index 110e5895..49849262 100644 --- a/deploy/helm/spark-k8s-operator/templates/roles.yaml +++ b/deploy/helm/spark-k8s-operator/templates/roles.yaml @@ -13,6 +13,13 @@ rules: verbs: - list - watch + # For automatic cluster domain detection + - apiGroups: + - "" + resources: + - nodes/proxy + verbs: + - get - apiGroups: - "" resources: diff --git a/rust/operator-binary/src/connect/crd.rs b/rust/operator-binary/src/connect/crd.rs index a87eed68..336e1109 100644 --- a/rust/operator-binary/src/connect/crd.rs +++ b/rust/operator-binary/src/connect/crd.rs @@ -55,24 +55,27 @@ pub enum Error { FragmentValidationFailure { source: ValidationError }, } -#[versioned(version(name = "v1alpha1"))] +#[versioned( + version(name = "v1alpha1"), + crates( + kube_core = "stackable_operator::kube::core", + kube_client = "stackable_operator::kube::client", + k8s_openapi = "stackable_operator::k8s_openapi", + schemars = "stackable_operator::schemars", + versioned = "stackable_operator::versioned" + ) +)] pub mod versioned { /// An Apache Spark Connect server component. This resource is managed by the Stackable operator /// for Apache Spark. Find more information on how to use it in the /// [operator documentation](DOCS_BASE_URL_PLACEHOLDER/spark-k8s/usage-guide/connect-server). - #[versioned(k8s( + #[versioned(crd( group = "spark.stackable.tech", - kind = "SparkConnectServer", plural = "sparkconnectservers", shortname = "sparkconnect", status = "SparkConnectServerStatus", namespaced, - crates( - kube_core = "stackable_operator::kube::core", - k8s_openapi = "stackable_operator::k8s_openapi", - schemars = "stackable_operator::schemars" - ) ))] #[derive(Clone, CustomResource, Debug, Deserialize, JsonSchema, Serialize)] #[serde(rename_all = "camelCase")] diff --git a/rust/operator-binary/src/connect/server.rs b/rust/operator-binary/src/connect/server.rs index a96022d6..d469dedb 100644 --- a/rust/operator-binary/src/connect/server.rs +++ b/rust/operator-binary/src/connect/server.rs @@ -341,7 +341,6 @@ pub(crate) fn build_stateful_set( &ListenerReference::ListenerName(listener_name.to_string()), &recommended_labels, ) - .context(BuildListenerVolumeSnafu)? .build_pvc(LISTENER_VOLUME_NAME.to_string()) .context(BuildListenerVolumeSnafu)?, ]); diff --git a/rust/operator-binary/src/crd/history.rs b/rust/operator-binary/src/crd/history.rs index 881eeade..efd48303 100644 --- a/rust/operator-binary/src/crd/history.rs +++ b/rust/operator-binary/src/crd/history.rs @@ -63,20 +63,26 @@ pub enum Error { }, } -#[versioned(version(name = "v1alpha1"))] +#[versioned( + version(name = "v1alpha1"), + crates( + kube_core = "stackable_operator::kube::core", + kube_client = "stackable_operator::kube::client", + k8s_openapi = "stackable_operator::k8s_openapi", + schemars = "stackable_operator::schemars", + versioned = "stackable_operator::versioned" + ) +)] pub mod versioned { /// A Spark cluster history server component. This resource is managed by the Stackable operator /// for Apache Spark. Find more information on how to use it in the /// [operator documentation](DOCS_BASE_URL_PLACEHOLDER/spark-k8s/usage-guide/history-server). - #[versioned(k8s( + #[versioned(crd( group = "spark.stackable.tech", shortname = "sparkhist", + shortname = "sparkhistory", + shortname = "shs", namespaced, - crates( - kube_core = "stackable_operator::kube::core", - k8s_openapi = "stackable_operator::k8s_openapi", - schemars = "stackable_operator::schemars" - ) ))] #[derive(Clone, CustomResource, Debug, Deserialize, JsonSchema, Serialize)] #[serde(rename_all = "camelCase")] diff --git a/rust/operator-binary/src/crd/mod.rs b/rust/operator-binary/src/crd/mod.rs index 9698fb48..eaf3960d 100644 --- a/rust/operator-binary/src/crd/mod.rs +++ b/rust/operator-binary/src/crd/mod.rs @@ -124,136 +124,141 @@ pub enum Error { ConstructJvmArguments { source: crate::config::jvm::Error }, } -#[derive(Clone, Debug, Deserialize, PartialEq, Serialize, JsonSchema)] -#[allow(clippy::derive_partial_eq_without_eq)] -#[serde(rename_all = "camelCase")] -pub struct SparkApplicationStatus { - pub phase: String, -} - -/// A Spark cluster stacklet. This resource is managed by the Stackable operator for Apache Spark. -/// Find more information on how to use it and the resources that the operator generates in the -/// [operator documentation](DOCS_BASE_URL_PLACEHOLDER/spark-k8s/). -/// -/// The SparkApplication CRD looks a little different than the CRDs of the other products on the -/// Stackable Data Platform. #[versioned( version(name = "v1alpha1"), - k8s( + crates( + kube_core = "stackable_operator::kube::core", + kube_client = "stackable_operator::kube::client", + k8s_openapi = "stackable_operator::k8s_openapi", + schemars = "stackable_operator::schemars", + versioned = "stackable_operator::versioned" + ) +)] +pub mod versioned { + + #[derive(Clone, Debug, Deserialize, PartialEq, Serialize, JsonSchema)] + #[allow(clippy::derive_partial_eq_without_eq)] + #[serde(rename_all = "camelCase")] + pub struct SparkApplicationStatus { + pub phase: String, + } + + /// A Spark cluster stacklet. This resource is managed by the Stackable operator for Apache Spark. + /// Find more information on how to use it and the resources that the operator generates in the + /// [operator documentation](DOCS_BASE_URL_PLACEHOLDER/spark-k8s/). + /// + /// The SparkApplication CRD looks a little different than the CRDs of the other products on the + /// Stackable Data Platform. + #[versioned(crd( group = "spark.stackable.tech", shortname = "sparkapp", status = "SparkApplicationStatus", namespaced, - crates( - kube_core = "stackable_operator::kube::core", - k8s_openapi = "stackable_operator::k8s_openapi", - schemars = "stackable_operator::schemars" - ) - ) -)] -#[derive(Clone, CustomResource, Debug, Deserialize, JsonSchema, Serialize)] -#[serde(rename_all = "camelCase")] -pub struct SparkApplicationSpec { - /// Mode: cluster or client. Currently only cluster is supported. - pub mode: SparkMode, - - /// The main class - i.e. entry point - for JVM artifacts. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub main_class: Option, - - /// The actual application file that will be called by `spark-submit`. - pub main_application_file: String, - - /// User-supplied image containing spark-job dependencies that will be copied to the specified volume mount. - /// See the [examples](DOCS_BASE_URL_PLACEHOLDER/spark-k8s/usage-guide/examples). - #[serde(default, skip_serializing_if = "Option::is_none")] - pub image: Option, - - // no doc - docs in ProductImage struct. - pub spark_image: ProductImage, - - /// Name of the Vector aggregator [discovery ConfigMap](DOCS_BASE_URL_PLACEHOLDER/concepts/service_discovery). - /// It must contain the key `ADDRESS` with the address of the Vector aggregator. - /// Follow the [logging tutorial](DOCS_BASE_URL_PLACEHOLDER/tutorials/logging-vector-aggregator) - /// to learn how to configure log aggregation with Vector. - #[serde(skip_serializing_if = "Option::is_none")] - pub vector_aggregator_config_map_name: Option, - - /// The job builds a spark-submit command, complete with arguments and referenced dependencies - /// such as templates, and passes it on to Spark. - /// The reason this property uses its own type (SubmitConfigFragment) is because logging is not - /// supported for spark-submit processes. - // - // IMPORTANT: Please note that the jvmArgumentOverrides have no effect here! - // However, due to product-config things I wasn't able to remove them. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub job: Option>, - - /// The driver role specifies the configuration that, together with the driver pod template, is used by - /// Spark to create driver pods. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub driver: Option>, - - /// The executor role specifies the configuration that, together with the driver pod template, is used by - /// Spark to create the executor pods. - /// This is RoleGroup instead of plain CommonConfiguration because it needs to allow for the number of replicas. - /// to be specified. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub executor: Option>, - - /// A map of key/value strings that will be passed directly to spark-submit. - #[serde(default)] - pub spark_conf: HashMap, - - /// Job dependencies: a list of python packages that will be installed via pip, a list of packages - /// or repositories that is passed directly to spark-submit, or a list of excluded packages - /// (also passed directly to spark-submit). - #[serde(default)] - pub deps: JobDependencies, - - /// Configure an S3 connection that the SparkApplication has access to. - /// Read more in the [Spark S3 usage guide](DOCS_BASE_URL_PLACEHOLDER/spark-k8s/usage-guide/s3). - #[serde(default, skip_serializing_if = "Option::is_none")] - pub s3connection: Option, - - /// Arguments passed directly to the job artifact. - #[serde(default)] - pub args: Vec, - - /// A list of volumes that can be made available to the job, driver or executors via their volume mounts. - #[serde(default)] - #[schemars(schema_with = "raw_object_list_schema")] - pub volumes: Vec, - - /// A list of environment variables that will be set in the job pod and the driver and executor - /// pod templates. - #[serde(default)] - pub env: Vec, - - /// The log file directory definition used by the Spark history server. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub log_file_directory: Option, -} + ))] + #[derive(Clone, CustomResource, Debug, Deserialize, JsonSchema, Serialize)] + #[serde(rename_all = "camelCase")] + pub struct SparkApplicationSpec { + /// Mode: cluster or client. Currently only cluster is supported. + pub mode: SparkMode, + + /// The main class - i.e. entry point - for JVM artifacts. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub main_class: Option, + + /// The actual application file that will be called by `spark-submit`. + pub main_application_file: String, + + /// User-supplied image containing spark-job dependencies that will be copied to the specified volume mount. + /// See the [examples](DOCS_BASE_URL_PLACEHOLDER/spark-k8s/usage-guide/examples). + #[serde(default, skip_serializing_if = "Option::is_none")] + pub image: Option, + + // no doc - docs in ProductImage struct. + pub spark_image: ProductImage, + + /// Name of the Vector aggregator [discovery ConfigMap](DOCS_BASE_URL_PLACEHOLDER/concepts/service_discovery). + /// It must contain the key `ADDRESS` with the address of the Vector aggregator. + /// Follow the [logging tutorial](DOCS_BASE_URL_PLACEHOLDER/tutorials/logging-vector-aggregator) + /// to learn how to configure log aggregation with Vector. + #[serde(skip_serializing_if = "Option::is_none")] + pub vector_aggregator_config_map_name: Option, + + /// The job builds a spark-submit command, complete with arguments and referenced dependencies + /// such as templates, and passes it on to Spark. + /// The reason this property uses its own type (SubmitConfigFragment) is because logging is not + /// supported for spark-submit processes. + // + // IMPORTANT: Please note that the jvmArgumentOverrides have no effect here! + // However, due to product-config things I wasn't able to remove them. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub job: Option>, + + /// The driver role specifies the configuration that, together with the driver pod template, is used by + /// Spark to create driver pods. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub driver: Option>, + + /// The executor role specifies the configuration that, together with the driver pod template, is used by + /// Spark to create the executor pods. + /// This is RoleGroup instead of plain CommonConfiguration because it needs to allow for the number of replicas. + /// to be specified. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub executor: Option>, + + /// A map of key/value strings that will be passed directly to spark-submit. + #[serde(default)] + pub spark_conf: HashMap, + + /// Job dependencies: a list of python packages that will be installed via pip, a list of packages + /// or repositories that is passed directly to spark-submit, or a list of excluded packages + /// (also passed directly to spark-submit). + #[serde(default)] + pub deps: JobDependencies, + + /// Configure an S3 connection that the SparkApplication has access to. + /// Read more in the [Spark S3 usage guide](DOCS_BASE_URL_PLACEHOLDER/spark-k8s/usage-guide/s3). + #[serde(default, skip_serializing_if = "Option::is_none")] + pub s3connection: Option, + + /// Arguments passed directly to the job artifact. + #[serde(default)] + pub args: Vec, + + /// A list of volumes that can be made available to the job, driver or executors via their volume mounts. + #[serde(default)] + #[schemars(schema_with = "raw_object_list_schema")] + pub volumes: Vec, + + /// A list of environment variables that will be set in the job pod and the driver and executor + /// pod templates. + #[serde(default)] + pub env: Vec, + + /// The log file directory definition used by the Spark history server. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub log_file_directory: Option, + } -#[derive(Clone, Debug, Default, Deserialize, JsonSchema, PartialEq, Eq, Serialize)] -#[serde(rename_all = "camelCase")] -pub struct JobDependencies { - /// Under the `requirements` you can specify Python dependencies that will be installed with `pip`. - /// Example: `tabulate==0.8.9` - #[serde(default)] - pub requirements: Vec, - - /// A list of packages that is passed directly to `spark-submit`. - #[serde(default)] - pub packages: Vec, - - /// A list of repositories that is passed directly to `spark-submit`. - #[serde(default)] - pub repositories: Vec, - - /// A list of excluded packages that is passed directly to `spark-submit`. - #[serde(default)] - pub exclude_packages: Vec, + #[derive(Clone, Debug, Default, Deserialize, JsonSchema, PartialEq, Eq, Serialize)] + #[serde(rename_all = "camelCase")] + pub struct JobDependencies { + /// Under the `requirements` you can specify Python dependencies that will be installed with `pip`. + /// Example: `tabulate==0.8.9` + #[serde(default)] + pub requirements: Vec, + + /// A list of packages that is passed directly to `spark-submit`. + #[serde(default)] + pub packages: Vec, + + /// A list of repositories that is passed directly to `spark-submit`. + #[serde(default)] + pub repositories: Vec, + + /// A list of excluded packages that is passed directly to `spark-submit`. + #[serde(default)] + pub exclude_packages: Vec, + } } impl v1alpha1::SparkApplication { diff --git a/rust/operator-binary/src/history/history_controller.rs b/rust/operator-binary/src/history/history_controller.rs index ce2f1a98..9367fd97 100644 --- a/rust/operator-binary/src/history/history_controller.rs +++ b/rust/operator-binary/src/history/history_controller.rs @@ -600,7 +600,6 @@ fn build_stateful_set( &ListenerReference::ListenerName(group_listener_name(shs, &rolegroupref.role)), &recommended_labels, ) - .context(BuildListenerVolumeSnafu)? .build_pvc(LISTENER_VOLUME_NAME.to_string()) .context(BuildListenerVolumeSnafu)?, ]); diff --git a/rust/operator-binary/src/main.rs b/rust/operator-binary/src/main.rs index 9470c0b0..220122ce 100644 --- a/rust/operator-binary/src/main.rs +++ b/rust/operator-binary/src/main.rs @@ -1,3 +1,6 @@ +// TODO: Look into how to properly resolve `clippy::result_large_err`. +// This will need changes in our and upstream error types. +#![allow(clippy::result_large_err)] use std::sync::Arc; use clap::Parser; @@ -27,13 +30,16 @@ use stackable_operator::{ use tracing::info_span; use tracing_futures::Instrument; -use crate::crd::{ - SparkApplication, - constants::{ - HISTORY_FULL_CONTROLLER_NAME, OPERATOR_NAME, POD_DRIVER_FULL_CONTROLLER_NAME, - SPARK_CONTROLLER_NAME, SPARK_FULL_CONTROLLER_NAME, +use crate::{ + connect::crd::SparkConnectServerVersion, + crd::{ + SparkApplication, + constants::{ + HISTORY_FULL_CONTROLLER_NAME, OPERATOR_NAME, POD_DRIVER_FULL_CONTROLLER_NAME, + SPARK_CONTROLLER_NAME, SPARK_FULL_CONTROLLER_NAME, + }, + history::SparkHistoryServer, }, - history::SparkHistoryServer, }; mod config; @@ -69,11 +75,11 @@ async fn main() -> anyhow::Result<()> { let opts = Opts::parse(); match opts.cmd { Command::Crd => { - SparkApplication::merged_crd(SparkApplication::V1Alpha1)? + SparkApplication::merged_crd(crd::SparkApplicationVersion::V1Alpha1)? .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; - SparkHistoryServer::merged_crd(SparkHistoryServer::V1Alpha1)? + SparkHistoryServer::merged_crd(crd::history::SparkHistoryServerVersion::V1Alpha1)? .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; - SparkConnectServer::merged_crd(SparkConnectServer::V1Alpha1)? + SparkConnectServer::merged_crd(SparkConnectServerVersion::V1Alpha1)? .print_yaml_schema(built_info::PKG_VERSION, SerializeOptions::default())?; } Command::Run(ProductOperatorRun { diff --git a/rust/operator-binary/src/pod_driver_controller.rs b/rust/operator-binary/src/pod_driver_controller.rs index 6ac3f461..879de7cb 100644 --- a/rust/operator-binary/src/pod_driver_controller.rs +++ b/rust/operator-binary/src/pod_driver_controller.rs @@ -13,7 +13,7 @@ use stackable_operator::{ }; use strum::{EnumDiscriminants, IntoStaticStr}; -use crate::crd::{SparkApplicationStatus, constants::POD_DRIVER_CONTROLLER_NAME, v1alpha1}; +use crate::crd::{constants::POD_DRIVER_CONTROLLER_NAME, v1alpha1}; const LABEL_NAME_INSTANCE: &str = "app.kubernetes.io/instance"; @@ -102,7 +102,7 @@ pub async fn reconcile(pod: Arc>, client: Arc) -> .apply_patch_status( POD_DRIVER_CONTROLLER_NAME, &app, - &SparkApplicationStatus { + &v1alpha1::SparkApplicationStatus { phase: phase.clone(), }, ) diff --git a/rust/operator-binary/src/spark_k8s_controller.rs b/rust/operator-binary/src/spark_k8s_controller.rs index e13cc57b..f24b6f36 100644 --- a/rust/operator-binary/src/spark_k8s_controller.rs +++ b/rust/operator-binary/src/spark_k8s_controller.rs @@ -58,7 +58,6 @@ use strum::{EnumDiscriminants, IntoStaticStr}; use crate::{ Ctx, crd::{ - SparkApplicationStatus, constants::*, logdir::ResolvedLogDir, roles::{RoleConfig, SparkApplicationRole, SparkContainer, SubmitConfig}, @@ -412,7 +411,7 @@ pub async fn reconcile( .apply_patch_status( SPARK_CONTROLLER_NAME, spark_application, - &SparkApplicationStatus { + &v1alpha1::SparkApplicationStatus { phase: "Unknown".to_string(), }, )