From 14efd25374f50b2407e8609c6a826927348c3e0f Mon Sep 17 00:00:00 2001 From: Yukizhu001 Date: Mon, 10 Mar 2025 19:37:00 +0800 Subject: [PATCH] init: trove_classifiers-2025.1.15.22 project: TC2024080206 --- build.sh | 47 ++++++++++++++++++++++++++ buildspec.yaml | 7 ++++ source | 1 + trove_classifiers-2025.1.15.22.tar.gz | Bin 0 -> 16236 bytes 4 files changed, 55 insertions(+) create mode 100644 build.sh create mode 100644 buildspec.yaml create mode 100644 source create mode 100644 trove_classifiers-2025.1.15.22.tar.gz diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..31764d5 --- /dev/null +++ b/build.sh @@ -0,0 +1,47 @@ +#!/bin/bash +set -euo pipefail + +# 导入通用函数 +git clone https://gitee.com/src-anolis-whl/build-common.git +. build-common/common.sh + +# =======构建前准备,可以安装一些构建依赖等========== +setup_py310 # for Python 3.10, default +#setup_py38 # for Python 3.8 +#setup_py312 # for Python 3.12 +## 其他系统依赖 +#yum install -y +# =================================================== + +prepare_source +apply_patches + +# 对于每个Python版本,构建相应的whl +for pybin in "${PYTHON_BINS[@]}"; do + get_build_env $pybin + + # 构建Python环境准备 + #$PIPBIN install -i https://pypi.openanolis.cn/prod/simple + + # ==========构建环境变量========== + export BUILD_WHEEL_FLAGS= + #export CUDA_C_FLAGS= + # ================================ + build_wheel $pybin + + # 测试Python环境准备 + #$PIPBIN install + + # ==========测试环境变量========== + export PYTEST_FLAGS= + export SETUPPYTEST_FLAGS= + # ================================ + build_test $pybin +done + +# 调用auditwheel将运行依赖捆绑至whl中 +# 使用 --exclude xxx.so 来跳过加入某些动态链接库 +bundle_libs + +# 构建产物收集 +output_whls diff --git a/buildspec.yaml b/buildspec.yaml new file mode 100644 index 0000000..e9c4b84 --- /dev/null +++ b/buildspec.yaml @@ -0,0 +1,7 @@ +wheel: + region: cn-hangzhou # Optional, default [cn-hangzhou]. One of [cn-hangzhou, cn-hongkong]. + device_type: cpu # Optional, default [cpu]. One of [cpu, gpu, cpu-large]. + script: # Required, at least have one of + generic: build.sh # [generic, x86_64, aarch64] key. + #x86_64: build-x86_64.sh + #aarch64: build-aarch64.sh diff --git a/source b/source new file mode 100644 index 0000000..d83ad9e --- /dev/null +++ b/source @@ -0,0 +1 @@ +https://files.pythonhosted.org/packages/f3/cb/8f6a91c74049180e395590901834d68bef5d6a2ce4c9ca9792cfadc1b9b4/trove_classifiers-2025.1.15.22.tar.gz diff --git a/trove_classifiers-2025.1.15.22.tar.gz b/trove_classifiers-2025.1.15.22.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..2f1c5dd1647f465675bd142e9644c6bc5c57989a GIT binary patch literal 16236 zcmY+L18ind*Y9iF=G3-rOxvk#Pi@<_-KjmbZQHi(>GRya-+goQ-Q?tdc1}*Rlbv}+LjW#;6}z{AuNbd-t#7gRbfProx%4#e`30b8AuHa!uyamMD+g%EDejK~AozIFjD_S^8im7x)D( zEkLa^`{Vk`oi0Cf1Pc@eLIwpyrhM718OTD3d`mN5@wmwKZWFDzvU`2KqwtR~-@T-@%a?^Z`65> z@T)p=$Tc=ogs^pe`(^;e($!68+wODy1X#7L_ixj)d2_#)&)YkaXLsGRc@a{gzVj9C z1bCxhaZBa;>OJE>+FH#ISpDd=?U;zjqGP{7-JZ);<636O6yH&+vQ>tY1x-2hKk+6Lr30-=|IOiQ4R z{G%Bkc}CNzuUGod8I>}#cdhOwZIwTpbXdz6Bs}j$1)v@8MK8Q+!FrdN;GN{&Zo__T|oxN06t0lrIQuyzafx zFKg{I23}vgcsGB&3J6-ymm!-IXGn~ONiw9<@+1%&J>g6#ch+1pJm(KRL^i5+Zf^2r zN^|8|+_rAMzP>UHR9UfD>~Kn`+3AQ3MGrnEM{WoaR_;Y3NMRQ@E=GE}xYg<_Ahj+% z4&J}7-#G=uw{kBzu*34FHL55SEP_qigr%V}pSGj~WXBdr;8%K!$*bro89Rc{70(PD zub^x8cl0S+O#Sjrw=3*EV%}c8yH^*6GjgqO3K>Q~BVokxQKHanTP)!%%pzF;{Xlv= z<+{LU_iF!zI5=UTG^ukO&GS3PYD%AXUJ?VSWccET|Qvud~0I?(u_iZAo)9ywXBB-Z@Ibk{~vrkN)OU zzTxR&tr@Dy#1@MNM%2}faXVQ4P}}?2K7J0Tb|TIA#-OYF5P`pp+F@h{K!@`)`e$)H zqD1*~w$%Ryg2twr4>UC(<|xImVY9QjwW1@YHDfnDDOlQLpGUNJ7IcWH+FMOd1BP-o zIZ7Omk$FaSk@uye%Rt&HMc9g9NyM?)e}npk%ics7B~{?g_{%Wa7IF@Qj%^zf$o^P> zFLVQE0de@V6Y>XSZO@n@FZ{RM(LQ-AXe1PSfM7x>B8N!`cnm4Iu=rSytxEYjC}r~a z4VMWGLWRjzAV$BZRA3u^6*f&{~2*Os6XOViI&`5;^dQlKdti*gdcPc&xiCQ*ilYv+qBo0qrf`NMUPD-jiL z_e)`)<}_l$Yy{6RYdrgg@Sg)uSid^kREd~0{iD3N%R zbQu6N&J!lbD}{0FAW}+Bs~*E}O0Si|uB{$0ntrBXB*ilz2Zx#eYI}hFP4Tzcw9sD0 z`UeZ#53Ay>zL900^ty+x5y;i_K-~Ap-(4P7MaYFHNw$ciLO zRiGQt*Y<1vbT$8DMfuwduIdjhth59s7{4=J+$N+Ufhb-7Kw|}T5^Okexu8lf*W5~d z#`2NCt!VVU1$s4+MO+-Z4%(s)rv*}|0Thm#yS$i0PfHdwfLI;JOD6!-d1}P5tMuI1 z)$UWJ50Yj;xcMg-xPTWJe{{*pu_D-@=*y-lo6y4WmZp9ciy6;phlGog;za?ANXe&v zfjeG+q%ATPP8)%~B^hXNtwRK-nog72g}_$YdXT4sRC_8m>(G}aXLeyObTkNu$XArV zNHOy$IwAUbV4o6FwP>yRKw2S;IB{q*+9v1xwkehiZ#wHmZ2-sg52!JnKG|4s8Yi;9 zF67--{a3Df2RJ@%GX!&jg;HX%4%f+4euLW(Tp3#Iny4aQff8t1&jhxZq&5k64#CS< zYuJ+dN$mwu-d9l$HNPv0abNt8;M)r-9OR{P4{)9P!7|b5Ph=S#w(#$RFxOX*oVO{l zaX7_H1UD29xSsfb{dBth2n+woajr`bM$(Y*zDB7zALR)bR|gy9$mP&%!mGW-Gg+@? z^iqTP2ZT7o#2|A|* zTP!(`Fv`s+JyOO54@(AW%x-=Y$~SRiUu4(S9<+D0?4lCEm?oZw=qp%%@Q&pG%A$p& zpSxpxL$lgqum;5H0+GOzNlVRB)k+lzJ7X2RFY2dV38m3~Qiz*iqkV4Fonkt*cv?oh z1!;7>R~~FAOqV2%-^$ZS&xS#^p>B;w1J1V~+}gG|s*b8g{3I<7VZ&92>dYOjN(>hm z*QE^O8GB+&(PcVwoTx$4`xa^?lnh*j0%CYMJh_g+Sn9Yolu;^E+@sOhwR1rRwwB74 zAC$B;N2?yZ3F*F8ti!zTC(;bfgksXV~r_9D?Ml-YxFXa@v zJ4EF_>^hk=TLB=*N-kI^E>D!4PPospq4zuv8T0i8L;b-F1Mp&B&5Y(1z3ulTy64nm z(1PMuT}7curc@a^x+VX)uliicMfct^gBxa5)<^-i(153v>9276+O`{_j6w{joB5ho=*0C)eF% zi0SHCHV<7c%{KRSj8TG^MBUS%+e}tsn1(SjfuJ{>Cb-guH-=ieqZ%iu;W!P(7TrjL zh$AAJQR~(ANqwi787@74gJ@t-D$i}kZF{=aJ!lrvc=AzC(56~uOb$~PxI`f$G0=em zsvJMUI8WfiD|naQkFZaK>syfZ=b-%{7UE!z$8o43i2wD76B23i~AOPW1jag zYZ0BYwTV0=2$^#!h4;3P|a{nJWks(GXXFmb6|yXxz7f`()5WR89jStz!1N*#$mZQr^dxOGrNsATY$PgS_}z%5dXm%+65C8+s5Rr>gax9&`^IdDp;^LtvhB#x;&*-Xqkkp$jPtv46uz z>Ol$F##x6Ux{HM(1-)m>C@1jw!SUy?^t z1mcE4a?tyIkk!(*R>o_=!4R-PbsLHTP;%prHd1U9L=N_mtpIxj4L;*p0*!mini0K2 zHK}yD#dwz(raT<=xy&T}RC1`;ErI(4I-8d9p@3Yr(p~&g0=}+LiOhA*ernPU2tigs z^00G0V-B*DsaE5|Fs2|HDiH^45a>F378UR> zWUkqqvS`$Anx|Z%E4k)~8C$8c4`3P134b!Yw-v*~$EOW}vXH8?9qE~=utkVEc9z6i zLo*mOEQ4M5zoWfrgk`VYfI=S%bV?~ow5*!XVVgJg0nrhgiDk zp(Cz8hCO&cLQhq6FSEMSgCp83hK6Go}DA+-YcHredouW7lN*$HeP57zX=?nyvSqW%69) zY!Nb_S$UaArsosh^10M*YMi;2As@jc!7|=Zi38n97&aGn=w~q9VL$$nZonKXbQ^*^ zL6BrI+9|=FktpC_au^j6yiz7yp;EIJ<-^`Z$1k+x#|WQC;H+wFH2o36Kn zTbc21zA}?V?ZwPf!@*I3_k-B$wboOq13rHke9Nhj(--m*kgE&WxqUwHn)>YT-8ut& z&=Z6%Ufe&^^{oPwumIS%Y+B#2e6qFOZ8di>B|dDKZub=BvZr6se|zYZxij4Ms{oGZ zmrB`GObCt@Uluxz(l&IgP>-6vS_P~D{C-O3R2^S zrYqB|xq|;u$AH8P4<#z)h_h;Putb05e0@L3>D;xO zMZ6u!Z((l%iSDPoc9s12M|Ll`yLXK7`2jXnvFC|yACvt_+aC^uxl|UMI~H(uaTiLo zcR=yo)d+uz%bGgb>_xBF?o-~{)o@=f<&9IAYbgY|jT`qM=Ld_}Z1pwZx}(M@f*ex6 zglXLZIj~_JAOK(ECG>~JFHdIHk;rh7l7yD*ThXI;khrf%w7ZcMz3WPF+EMFMIKFSvA9fG)hMxu&S|r znMM{l4XIhLb^5QCmneNG`&YnX=ZKz?FfTz>_w~&4@{FroH$rP|Fhr)u+BYrl{@a`9o+6+32Z?vNfn?2m zYM5f(u`R11G%BPU9R2nasxfTlwqX%&zcrBC*BXnHnBOskNz2P(Uk0u>N;8B$lC|;E@4@8 zoMxtemel!yo}S8iScMztCBxoz)_CO4Z6D?GK2A3u=D~MlMCtO*$%TuYB$z{pz7wKH z(sKsJLz427@*Lm#1HBy_jeq(T)xbiA&M~nyjmY^)ih}hx_|P)P{i`!bhXK-jh_>-w z9tuIHaQ_~Y8gk)jIm^RVR#w5G(GF~4OGzYII^?Kfp=VOS`>uyR=rI|IpUCU-@k zJ&?3<(1bx|4(Glxe@E|Szm8cnmF4H@IJ!*?EF z!9z!8@mOf*`6q^#upeq|}Gn zqx2EL)~aW>32z7t6 z$GXK<>Y7ptozKbuozW`Xjer%Au!+9KaUS=I#jX=G8~$!BLf-1*eYh_0@(oDb3Rt}d zdVS661JPS^^I3s(!@$mO$3TG)Soigx7yuZ2y(`WGMOvaQUV$y{>N7w$K0dzZuie{+ z{dTSt1H?;>1+^gVPP8Kuk=Yt`$Y!9%r@v4ZP~#L>zUtoth_?B)VFOrt&+i4?*5m-a zmTMk+{qkoqb7zGPqcLkSg{q&6MSV+8fgg`1wLnFle;QqY zL%UmT!0U{DH^4t0S?J6nL__MGh0XCTUc&v|=3pCw3an(Sa^FhC=Wodjf*g=wXI%}$ z2Om!pDPo;W1slluhP>@?SDITGXYq3wfJzS{IOJkc82#r@19|$^@M> zGw7Jq%Q|Rn7^-t2>7wTgZa`yUg<#NfalKD~D$@h zc5N%x^;@3o&h3z8d=`wiYO71nHv#E|hr4Aoo)awH2~ZpG_cp_xOSVi6K0%zZt`(nd zd>O4I-?Q|4IF9ifG(!C0TFnK^zF5?)IrdF&7awwb*>vurecAL1tzy~qE_KRUWWMu50`4vRB(*uL)4u3iuE-3_*UH-Or3~)tJYPXE1AQ0k!_@jRSrq-1lB{ z)p>90*R6mwf5ngQ=9>XDx`6B3J2kWZOCR4plYa={*2ewf(Z3mh{0#h<6zXXP+zuFC zEq?&R=Yg*Ofbomp`u(EXbMMnb+22PYHo)$=+y42)dvES_?lms}C?H5Sz(|%UB28>B zVPD}9>@An8gbe=Vi-1YVhVU@gRuvKb^l-LzTCP!hs(Z-5N6wYLy-ZSmWewz@GmqqRR(Q6$PH#+EInArE!mjZ<%~nd zFe#{MAANczWXZp(+qNZ!utQwQGJuU_uJN9V*Da=4ySuY7-XcPu`{Cpjn*R9cyu*?P zbo!v5m9U_T_9o^&U+P{b=D9oF;;nkfty<8n+EK4YB2Zrf;7{m7!V zSqIjyj_j*D>d8Ru53rK#YZddnw*q0e0>+@mpKntQbI4614y2Gw4)a_?-BHbz;QQn( zBEbLw!>5MoRz-HDCgGumx$nvm5+!;aS);+FE)vXdK+1? ztEA$-d1wSQOY3$KZEB4Ckn^JvQogg##}Gq|U^7#PzlQ)4lJzLHc$2DGVGH>X4@Mn6^cjpt4{MPT0~=4FYu6cWf!LF%df8svr2k^ z!Jb+kqY}$kVG4imxm*}t(!~q?l;;QwzpZfn!ji&Q@60(A0r-oauP+HH?upLMfSd@~H@4 z>Bc;)9J=5(=a?IOF&__aYG-MH)X|<5j{iV;R?foZjjrK@zKq)2RPOlxZzgPm4orgv z%zY)wfh*}ywrIqR8;f+Jc!$Js&9!L60I#-0^HbCWeES)u(>&c#k)_QQhEs#e*suaA zw#1=*YeMw4D5KkB``7}FV*|>W0!{h0vXXa6fqrU`mmb{3Pnz<7GFZW`vH_R~1u&Ha zHBXHEVBNdK@e7mkPI3konC-0<6t|IOC3IJ>a@m2~mw0y8_m&<$8Tuq~z|yp@#nGw< z1^vvY=M4EtF>@xA%)M>vy>9D0zU4mh;(lLxBCfAkNXV)IFnn4;p)YD#lkkIM$y*xs zHlw7OVdzS}^UE)m?q|&p6dqE>#uxdR+xJwjBhXhDBSwJpXz&2UH_dr7eBr^zN^0fC{Fc@rgpl(oan%KYcW-d7T?Sq6}* z`7CD#_eo#Ca7boUz(VDuV!oJ_*(a5~6lr`ef@TjpCbOa*eVWvbH&e#P^VeCf3-#wn zJ&{w?8;mJ@QnUd9XXO50=<`sqrWmkbGYtCf7&s;$i;10INe%2n!(=JVM6Oey29eE_ zq_;*L3s3zIky8T38J=eAg9cz{SfEc)Aa37RG{}P90FVct=nr;%j4&>i3!9u*CdIlF zjNGH6yOZ2vwjx4Ux}3@+dnpUkwp(+=PXhAhF_ZZ%x$ak@KGl4s)0sI-#=8xQ zd6#;zZEP_C;)#WOv(~sxB4uoOFFx##vHFM-+#yxiy}-<4K8R?^G$e)yOg-8MZ&~?U z$-&>1C3{jUF+A`)5YIu@Tv%-D{KUr@Gl8wjONtT4vk@onaW3+7n95glp^8o-v;7^} z*pWU(_jT9K7eS?wUmq@pc>}szYLeiA0jsIIx0bNKZ5r;r%U{N7BnzPjJ&|>WErx_e zs)U~^bMgBW#?A9Wc*ORlB#2O(9;!0kO)-2pyd)2jcb05_NLSEssyY%0LRoQnaR`aI zkj0Oy+%uK|1VoR786$g2!gl5=xGANq(#5R&SzRhJ4voAe|K>8L%PWXj?&yp`35iN3 z!kxhi?g=1J^(0sSs)+0!(s?-JduxVE;wW^LMMb+g~8XnJrM*Ts)7K9PD(*dY!G zh~R+n{}PFDeA%~23L`ftWuiV&ks#;Q17Xq~TKK`ULm!;$ts+E>zH3D|M!Md{x)ukW zi!WD?5QWV{X1$B(>f`w@c)T8ty+`yiW~-7)J{%Wo95a9LkP?Avj?N5*<;3d}4g^!} z(9kI+WFi5V;AOf0{2ijH6kO~gV;WIujk5Kayi$jjRuDs}bs2P;%mu}VNo{c4Y-=ic zUILvcWgvKcie637BYLv_iknhL00(K3O9w?!p%u*|Jj-hBW`qCunK({PBVVKxKj}Q} z2RY4Fpe97O*_IV?v4Ys&;0IHcCVyP^T~NMQ%{HalF?Dze7al?N$%*m+T`ICwPb8=9 z2;EkMcK5P$YvNf$wr9d->K+xp61H2fS#hXcTXQr7Tdt4Wkx}>V-c+-MsvFY9gFQoj z^!Tt*vvE_06%Q^y+Q?4EGN)Bv-ds)ToW0#V*#;_@=R5_fajo|qzEZ|ETF)ZB+8>>w zUM$6<%ch#b?bs++0{GpS3Up(tA>|3eeiS(lxRtj?0>((QxE!T30}kyI0%nFGa}NCr z^2P5!0Q8}w z{3ioIwKvQ%B$f2bWT&renW90N6g@xIF&A)!r6jq>Nc#aaETpDR3}lpNuy8y@S*EwL zFBzfzpF?&>dS#G{*r0taG#r8b>FuN&wj)EdVkDF8G=Y;1J3LdZ%kWVz4fYKW;vqNRO{2whC$HS>`s>8zxFK` z9xiq_^p{PLU3HyyAXTx+JTjdhr+ix@IeUZL&$dXJif)L_SSMxSy875hyDA*Sb7mX6g6dY@3gyPU-qi={tm8_hY%8KJcr8t6XUn7;wEw zkTEpsfZVnaYx~wJ-{`5@>16NA5o?7HXk`&HY|)zOZq^OU=DGe z4$*+%p-h@!P20Z(cnr}O4T>y{NEs`~Opm@&DfinWRIA$F3FvoiR;LH|Iz-sP%<>ZV z8x`oldjMn)>)rAC5;ViIk@vmde<0PgYY89DH5&K zpf0#qG)^vBe^GSOfO!n$Vec(9!2w8sxI=CcnJDNe|FKYrkQDI?Rie~70p}j-9KXI- zvBoYRRyo;PEZXOzT&XMg<1FH^%~&uHMfsA!lPB~F-@zKDj1P?jYX3*tGjA|T{l|^- zE`xPn2=5{pO7eE%CK-(O(9{s4>YrrqO6&mL1PPxkQp|uXk}=%~{G`om>=BIWsI3;= zw;5Z|;`CM|O#(>Pc9$nzb)g{N!Nvgb;8TQjSY+o&h|Y$8vZ*)qZw0^b#y|zKk5V6X zl0rf5)44DW{l`N&*u&cmC(^(Ugea$tKV$7Sbf#6Ob`~EGFG6`Jijs>FRIU3o z8`9a!0LDXNcU5KviUl-i(!G7r&om-%ihdM^&H^8qHOESptWp`mZ5 zfh^*6sJq0xP<|I%0m|imvQOSaJ%(%y*(0&0-qY;kEn^x!)Zq&Iub*&Ejs)yKPz6iHby6Xsr}_#aq_x+H2Y=xK!7&Iqblg|WNXl{@#2-Ve@&1f!=G zw=>98p_3v!=P?y32qs$#qBsaf7)UxEc7H`fSs6?84_jee=>i^znxa-2VJUis)u24e z;O^`&_qu8O>L$Q7EcNR;-u`Tsm<8~u1$3$fRIxY8GQCtj8P|Q^XrGO9UJDTJvSo9X zYvAdgjmng%+`b={iE_o=9T>TA-Zpq_@m5#%uE@j?mP} zc~Aeb+b8qZhjH+5P;VQ^TMQTV{pax!A*Qa2f4+loWm z)qz6PsTqv(}x+^EH&KI~KR{9QEy zjwdy^Sq8=uy5mHw2(IoQhbIAAv+?QxFIgLn3FDOD_dNO~=c3W{S!cuIb-tcNWtSt8 zJy&^r!*mKmCcUUXisxS+djnHGDhCTwK|`;7gmxB)YPjbxQv`LMmgh8v2MP|_qD%Z4 z<$MYekdpz2X%b%UUa-FA=}_tDK3Jgs(hQb9I7D`W;E~TEj1og5VIzO|2`Ty;7jRUC z>qbt*ovHIOez;?P{Ibzhy8&RbJ3b-1`i8P3N)>xuE|%}R%HPspAjvcTDZARomFAa= zhQiKQ$cq5b`w(cCvh?0tQV6JshYNW)rPm~4#Hxj#=5E`Ix!rCi_&!7Yl_Jh(S3vpF z8W~SK7vi`5fWXKL%}$ie|A7?;q|eDwibp`Oe@FO{7n;u&{xkEtEE{RDZy|bPu>kvb zR3)Kw$&F6I;Eo=`Hk>nG`U!ofhFp>Ij-EB1XuCAyAfEh@Kl+Y#n5y+Dz4)zdk$nE~ zE#a2_G`;rpGiqE!GMxDMC6{ zKfMrm*m`r<=z*iahux4fZ-=epq@Zna=b}F%k-g1m zE8MxsGEJ90QL+bbBVg?zTX)hVf`8a~aPUdC z9)kPGk)0B+{}rt>e)xoR{Gx_?36aOw*b~7n(oox>Y&`vK^w*m-$D4Mh=o4XzPJ(MS z*vnd>UFmK@?8|(?>o6gEzbc&Vl;HS;Sk$EouB0U6ieb56Q7sDHTb`M`dZDA;+KY;n zj}t;2FCxpy=BcVloIYXq6^wR29hakef`a7WFA0RhK=m5P&c_C60!A}McIFVTKVTxs77R}uD~x`Th%TT}>|irRYjhx|MBk#R-hYoZ)hv?X!79r} z``~3*Z=RyXH!MCq0?}$@G-mZjZjT_#@KG3^g%H7VvYjGSXlZ1h`S?hYv%$Ss2J-9` z5Txlrh{u)z^XMnZu3a*Go8FNu&8rV)(IgD*cEya?-6aeDtKeWkuoa>1pQgdjv^*=_ z<3i{IScSNz;x@E+_RJqY6D^YYNQt0K=#c8s^XRt_pgFt}?5e;3nUayAWhmF#v;v$x zphjxOPZs%_dA%?PN6WlgIRorHrT9namG250So)eI%2)KZOpUqnY^)X?$_mNJ4llsI|>aVD03FaGq1&YENi zCF1!~{w$pl4r2vl$G_ZS`s%^ql#90aMyJtER%4vDAxr)n>OiaD)spvY7QA4<`AKW> z6zE6UROw1<%~5_XS2tHl6-r_$iJWWccaak6bFPXN;&1V6C=Oj>*PE|I{GZTty8MaR zw=Ye?3~o#!xd7hMHrRJdxDf_lGDye80~z+akHJN1T}$%`K8C9K`gG?cCj>V1bgSiX zUx(GFKBHFL6JHr|!Ti}7uA=YD0)A0J%%g+B?1? zwk~~e-(*ffv)N2bG?aqScg&%`hL!9GZMq>t`p6;QuIG+0l>XaAfFX+qeV%mdT`I~c z4F(i3m7<8hhKN4R8P$@ANeaIV%xN$chY@Re0F(YvSlxu&`Rx;-D$Qa#IMI>b1&Bd7 z>UP!khntoqJ3(#?Vn0F(`k-TmN?-EJ*FUrmFi?t`ZCd8`5YKtsUe-&tgg@?m&u}U_ zr_L>@hU(1~F6L8RLdKoG(|<@5$A!_ENbx^t5p2wg)Cx`x#k$RoJUnYYte}F-DqIdk zKPwo(W@7=Pr$+Y2%1G2`2mwyN(Ra((Jo2=|pfYu0c5N{@_~Dmd0Z*A{hDY>Bu#lpb zUBrm_W$#qf)38&btp0gv`8c&z>r{!K(hRu* z$QJ!a?f>574?mLkmAXh7+oyP3?saKchFLl}{o`$s?pU(1s|~5%R^E$TS?;zc!63`n z&js$z(?-h2WY8!`?-hp@?OfFJ;t? zqcW<_?`Vst{;rqo#jOkUWSlthk7uLfl!QmtPr)%s2K=-3V-z-RD(wQ{N7VPBE5(PX z|DzF}M%oocqON@lHMnl9W`k@bYI$z7Pla;m%O=kQcvmedquG?ieshA2{sY5I3yYLo z(#`{$0dHMOxULt7DrEfF_$9}PjI4i>3Ey7N-O~v-y*Ps@y1yYbDmLXckeX!260ksA zvYn$>GUR`H6;?CgZyZN7VA0YOp|6{l&P0O9zPu?7ilBe20>#cxp$&!Qvbc51!!#kB zAJCfi*W6q*D!A4$uFVN&^e70Rj0o9#ezj8>#^I@v+8lqX#^P5IwKoUb`+2~pD%Hnv zB{$2As2FF)bR94;^jKy`_De$-YWIz_@3+MKTzemvBR8Wp!7UudX7h)-YsG2+4@mM| zBgEed>IwMfIz||wpwbzF7A2AQ3f^Xs^Lrlr;Hr#q-RBHhRera?y21CTI(5^y4#WDB zE!4%iz&uq@6!N@_9p>Go!uOU)#(;eqmakdZxbUzMt(}8$7VgKfFZ*G8i@`yxird3= zjk?-s1KmeO)?DMP11WTFT)iA(7W?ilpOql5H3`3}*8ln>q^(8NNvX@6qs ze!>}a#Cj&v6C$tHb!U38X357*F8nKjOw-qfZ)Dwn6n_KJNT3CF_&j6+)*F~N?$N+{ z=o1X6QLFzkj+9tUm{`ei&`&?z7Z`uMxnMF^Cm+(_NpM5H-Pt=pt(FCSa0!;<>v^U=b`VEc5I!CT7> zaC?2Vw>wj{jRf3Yk3RLWaK9~^nW@UXakIB@FZ*0{bGPX1{7UZl5;*NWJQT>b;m);c z-IWyq1QHuz)VexubjA3$y&$ zzY<_S|K4S#$+p5M1T?t5Nm~SZ*R=s|ZvcO8Rz7-LfWNly=JG{Cvz`VT_+K=pfn)}a z%|_EBFgK%;?!`X2K~%#Gt4GJ;59d{hZBqu@t_@AbMV(bLkE+L^XUqRaV>A~3gT~xp zpgVgYDTyQ!yTIjh(e$hu8Bo045gX}EKzDRm#NFIbwWvYQzkUs&=0!^JCn~sW*dA0s z>-~7K5$j+21Ixcv(0a%CBd_U%>+dVMah2@&HwBsF{ESXZL&4=ssxh`d`>fv^BmP#9zT*D3a|7 z?TZm53N!^<4LUe(Lu!#7dtBuAPw?^Uau$YYB472AEK6Bd_|U+r8A9u-X)*9V!yLR0 zG`$eaK~?@EpIG{gB3{M4`c#yCIgRUJo4r8y*`R5d92eTdbd1FRvM&ZJt2F1I>HlG0 z94lTWhVMhEcn#IZa=3)iJgS$nI>OaX6nA_QCr#`~%%! zM1-r^Q1ZG24x*C9L_I{ECU$`UcMktUi5t-nzsy1o{eyy}Kqi8GxES*9bi}XnQROK# zLT=&!4c&1iAwJ^V$!1=F`oQQyD@E0+jF=HMXcck#^DidhFd42zJzfzwXYy&iDb}q$ z!Zjto4dlUtD8X6Nf&iL^euK_J_P1S*>yg;CobD-={9o=R)&JyNyWK0(`{ew%83(R_ z;qaJ8S83BpUK5nC1F0xrA|)@Z^-^2(ASdFt3gV)FgqW&rEKgHAOm)&rbX(L3n7x(A zEvGLEp5;!)&DU4A{I4>1+w2WSz~UB^0OHhj={+&^i|c36*Pw@RGtl4@_&*Z=2&A$| zKMfv~ne@KPs|P}p+YbYGuU++*0l?Qcg#WK2vNj}c=l_9$X+idYj6nSI9O9R6#25xj zu3VE(he#(QDp~{02v)r`YG8LtCWne}(SeB6Ehh`;QOpcNeaSLXugY;5gp z)yoIg{s-gmcL&z>0JScGYF|v(YyxfojZR>DcdO2+fB7}=oAP+^|9U@s7RsZ2t9=1h z5oLsY|GqYX&49Y=Zww>90GPiAj zczGY{v^Murv4~wwe;X>q6O7D8Eh$XYVdVkF%2oZa_LcU# zmAM(9|G0-7tfGd@Gq62kt3P!9ea+6?j!E}PKy`Y=&Qc=n2&XcU?7PnGl_D&Y^QUA7 z9ympCl*Qhp4Skp=T?d@#sEt)V)3Je#Rrwxzv4O(dK2b2-QL~vUSpwqwjKoO4doiS8Zn=Q?J4*7i=Lh2 zvPDcd4Na>fFH+yHTLv*NA713$#ovh?!ns{=psz+v`O&z+xyf>)UYl0Ru`tx?EKJTr z#i+is2BXBq*(;;s32qQ4LC8eBE$E{&th}5tUfmpKdu4yOQ@5Z6YhE&$&-9wi4@Ex? z&O(mv&W)w=tS5@7kiPEzstwgsR80CTA^LkhRW4fCVnVpjgKinE}f-H}xOC=^$(1t+$VO z5BSwF){|4lsj%C9%0edXUjku?iYwL?yz>7B_2sPpz(>9l{5$R{@S7N&nfTb<_Ea17 z@13O59KNP_X(+U<6(Sn|fBLhKc0s4@L}YC*p8{=H{Ed9wjF-hS4eyfQqu#)2RImPR$erNT4-5*g~- z(`1vW#-WcsbNCn;hbnoxI-m1+8OoI)b1w5&Vn0K2dYQ=mjG|P@+2?y)F*#%k?33g9 zp}z%Pc-BC-=g$N7$QtIA3BzhHFqoljyL-XR4U?elV zNEyEl5Zz