From d8e81ffdad7553e545b6e45e4b2fbc8516d27879 Mon Sep 17 00:00:00 2001 From: ced2911 Date: Tue, 3 Feb 2026 14:47:00 +0100 Subject: [PATCH] Add spiOverJtag for 10CL006YE144C8G + fix for quartus 25 --- spiOverJtag/Makefile | 2 +- spiOverJtag/altclkctrl_inst.v | 11 +++++++++++ spiOverJtag/build.py | 3 +++ spiOverJtag/spiOverJtag_10cl006144.rbf.gz | Bin 0 -> 18034 bytes 4 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 spiOverJtag/altclkctrl_inst.v create mode 100644 spiOverJtag/spiOverJtag_10cl006144.rbf.gz diff --git a/spiOverJtag/Makefile b/spiOverJtag/Makefile index 344e714..91fd1de 100644 --- a/spiOverJtag/Makefile +++ b/spiOverJtag/Makefile @@ -17,7 +17,7 @@ XILINX_PARTS := xc3s500evq100 \ xcau15p-ffvb676 XILINX_BIT_FILES := $(addsuffix .bit.gz,$(addprefix spiOverJtag_, $(XILINX_PARTS))) -ALTERA_PARTS := 10cl025256 10cl016484 10cl055484 \ +ALTERA_PARTS := 10cl025256 10cl016484 10cl055484 10cl006144 \ ep4ce622 ep4ce1017 ep4ce2217 ep4ce1523 ep4ce11523 ep4cgx15027 5ce215 5ce223 5ce423 5ce523 5ce927 5sgsd5 ALTERA_BIT_FILES := $(addsuffix .rbf.gz, $(addprefix spiOverJtag_, $(ALTERA_PARTS))) diff --git a/spiOverJtag/altclkctrl_inst.v b/spiOverJtag/altclkctrl_inst.v new file mode 100644 index 0000000..bbe4b19 --- /dev/null +++ b/spiOverJtag/altclkctrl_inst.v @@ -0,0 +1,11 @@ +module altclkctrl_inst ( + input wire inclk, + input wire ena, + output wire outclk +); +altclkctrl u ( + .inclk(inclk), + .ena(ena), + .outclk(outclk) +); +endmodule diff --git a/spiOverJtag/build.py b/spiOverJtag/build.py index 7233563..8ae4ec3 100755 --- a/spiOverJtag/build.py +++ b/spiOverJtag/build.py @@ -222,6 +222,7 @@ else: "10cl016484" : "10CL016YU484C8G", "10cl025256" : "10CL025YU256C8G", "10cl055484" : "10CL055YU484C8G", + "10cl006144" : "10CL006YE144C8G", "ep4cgx15027": "EP4CGX150DF27I7", "ep4ce11523" : "EP4CE115F23C7", "ep4ce2217" : "EP4CE22F17C6", @@ -238,6 +239,8 @@ else: "5sgsd5" : "5SGSMD5K2F40I3"}[part] files.append({'name': currDir + 'altera_spiOverJtag.v', 'file_type': 'verilogSource'}) + files.append({'name': currDir + 'altclkctrl_inst.v', + 'file_type': 'verilogSource'}) files.append({'name': currDir + 'altera_spiOverJtag.sdc', 'file_type': 'SDC'}) tool_options = {'device': full_part, 'family':family} diff --git a/spiOverJtag/spiOverJtag_10cl006144.rbf.gz b/spiOverJtag/spiOverJtag_10cl006144.rbf.gz new file mode 100644 index 0000000000000000000000000000000000000000..72b3170404828f6e9d63d3dc61bc8a36d6859ea7 GIT binary patch literal 18034 zcmeGDQ*>rs)CC9!72B%VdXkErif!9g#WpH_V%xTDJ+W=0Qn8b+_v^2_$LOp7;=k<6 zea6}ItToR*`>ZwhTEtPXuu%trRuGWRzpND8%$%fMj4S|7#^zvGz6f0uVy^D4SM3LD z^?~Ny=ST&}PQeHTH38xW)QBiXb8717!QiR_#LwXwU{tt*#Eo^kWKrQ{Ap!U<2jl{` zDlb04LwOOA!hZcjFld74m5L?qoDr(}UcS}tOf z-TAR04x+i=q;a*K|1CxsD=DSBP`t(|!qZVUc9`0fhkzBa5(JzDUZ~*Xx;&s#Jilv6 zmrP!qJBmraKA4N`e?W^-3Cg{$OVO$&n-l*!!nH?F^d(MCKK5Dwj~6g4g7*=WZ- z3n+CsRb23zZx~8LEHJ5{?=ZQP+3~Zn$H%{X4o15053xclAd3|M3iS6g0GV+*Kz(Vs zb&)Z#MUkc>6lL_QUoz4CZX(PN~w^n@3XObrU?lr~s9{{uww?Ci> zt4`6N2~qO|WzY7LLAQ; zE~R*l)dIQ~xdaQj`iifBE(d>?Hi^$cVxFzMzP>~bUAz@j`rLWdk!dR z(*-UY|E&ZhMjjVM>4HVyf{C#3nKrUH|DA+{v($GA%KXl=Zx{AA?RB07U6c7U1VuZU zUQCjw0c#o}uIuc@DX+7X(#@@ zEXvYLldC|c7L!s&PvNYBa}T*ssL=_p>%%W8kYv|#eJUrxJ)xL`y;QWNnB;2mfinK> zO@Gt=>ubxnKXnz&)3t!xw##*`fdUH|9vYeOB6d7?x3peDj$>#lQ(ak@j29?>O=S8# zeo4PP+TaKI!2Obg4vs9?TpE7$3EUq7b*8h_8VPy11SdUYS38U8BU0Zx0+y%M_BgMo zvqQe#0ne}5v7SDkanh3%5frmEOhKtH&@EU(wLE9If*bIbK4Ku=Hy(UuGN1^h*!7GT z2ls6pW;LsP3(`QS#a^wPs+Nl4q3I1N9xYqFEB$<{i!H{EAD;gsaS>S3PHe{V3Napz z%AN&5b-?mH*Zb(34G~^*DAt)MZTFs(ibJ!Gz@33$R#`NBD~3A!M(1*ZnI_&Kvw+tV zft2`N08Iw1D2#!qwnRAWoGi(?-2AG~qXZ2tB9|bOd8%Zgh9az**)DQzj1G7539%IZ=de`Hx$lsd$OU!Amy7Yx=UHfD zKpB$nQ+;I#(fGvX+dZd}V1}EX&)KM?_OA% zWLD$bE|LVaamxY|+m;~T*bq@I8GPW_KX)_VJG3PJjfB~RM4MI;%rP*COd9zvyI!{c zIa)A|uIq*M@8kO)L>edI|7Fw?nYW&sVLaTF%@f4@|6WGg_0hO3hb+e8wg-m8XiGx) ztOW`+#oZ}QE4MvI-kjV)7}0Z$a36!T^k*!)mWINsblG97`WhW$8Y+B-o@|4&t$xix z%_BDzMvZq;t-7q6&Icrxv$(t7c@2?YUK@v3;A#FOiZ*xfX-pT|?|qr8L!qhxfqCC& zgMWjM`6s*l4LPpkl9d?5L~1dG1M<30>t3TZe6<-TGzyHgeC%3S$PMM~Nh;vf=Jjyr z{Mxd{mSG(z)XDf65o@XE*LrSBzsPo|U;m_JxXO8gD`rfb72*(?p1G1im3fosE&&&eRf)d5QdBUQz z;h^fyM>0qQ;vB*KP07A7)PgVs2UlChCt$T516y3%Kd7Uh9%B-QKS%5xJV~|OS4Wz? z8G{)bWsStrj|ez(3U6bGH_6&fUq+x6fWZilF0}2o1Pr+?Tzc^&mINQPb9Y}kQ+RSd z!z3Oj+=_w*p<$lWhouXs>((skHj$^-OzF#bFLf$&#NTISlh_TS)lgmw$&zD(m^g~; zM3EK|wznbt63TcozN#j4a1!5rS%k3KPHV8qCQ#Snes=#Po}};|2-HuAQ3xT`VvCz= z)!)W^>j)rwT_?8L<|K|>Ux;vL>x!o)?O!4vNN)NDsP><^k4+vliU!(zNDh=_^gOnY za3%B+sNaOeP(yBo)wFfF9)7Dd`(2`!)g-&XJ=W{%1j{co!8C`U4PwEoxkg-y?^!jT z8dv6@r9Cwf^tJ*4*h2g!96gmk&Yu44G}#O2N`*@A(T!UU{?XQ7_TKK{!SO567nkDbpjcndXEm8sqV=?+jTir+M2Mmj zfgtX7UBD?&t3<4wkkZbqNpsO{iuW*t7B$jy_~QfVy=`xI>!DH{AVNpZP()f8t)9-+ z5o#WP=&nI_Tf~@8StdDzmvKa32PW0f#OS+3OrbCoBSU6GE0Q0Dm%4=&a$oaa4n{GT z=DCbM8ZUI!Rc`ggiAGrwE9@esmqjGRPg2U?G$`~qMTRSWtwb{H7)wWkw*CMm251Lluy>Vb@`7Seo!!DXKec4D-Q zJ!yhC%Y>}M+onZ0$bDxcT*kOE!HZY&%Ra>wEm;aCkwWCK%xFsX*JSvEdCND zUIk$NIv^gEv8V3eKT0ZPvWoftM!eDF2?625Wx8pBrL2&iI zMb#)UBKe;)cN*$|Hm7;m*|S{BgZrjrrR_wfw&p$Mu!nEm%6Z?@pFJ z%1DqRa@%TE4!L{FmLO}99& zI#jGh5G|aM6Q5C%^a}zNwt#&5=^m`aS`RquWy8IX9v0m+=*AP-Nw93TEjQ<=qm15-ik8 zx*(+1cSU!o+2ZL==mT=|9V?d+saMaYqu=c_gO%)vroIp3ba5nyJ@Aq;rHS=rRQQ@C zkPOJSKa{{5mve9DOSs%DTc*$Fyjt%my^E39_Nt8a|KX>pNZfU%+8FxwAmUMA==HKc&@kGwo>TmhbyG&O*7|c@5^3r1rf5XbqdPMQZzerRa3V?NNEMD)-=)B?MxpTk62v$DwL*`#V&bSBIHDH5#1dft2fAZ5GHRKlf zZ%scWEk4c26`B`Iq{uGfG{Y+zycAjYAVJ8f3?e3YAD3JsAD-;`*K!emRye1T^lTe} zwX5l{kqEfF7)GRvpmR5>KV8(>>t`JDekjcqydqRJ<9z1FOsi zA*r22{p$@XtIYPDq$WG+)ZdJ{6OfOME;@k6=)P}eCX?C#Ig#aCER@z03Ej?}%}5@@ zW1ES78bZIUWJ?Bhlce`ll*(am8r}80O+@0&M_C=YB5V#@VrzM};rkYeQe#}Uj$|A> zGPCb_LjF=+Ys`w7^#oK9!Kiz z@8kOv3`KpCY#pjy-#`BfP34@ZCHgp|O01k5PHKN47VlB9-LVQAfHf!Z+=$5n!LVW> z+;dMNk!qcoebBVAz%ARELC8NfN*Qt-McK)itzkGQ#)yB8isn8LYq?O|DFx_hU8PS z9!YqAujsxPx~u`y19pC^*`?Zedx#=U>OiBDOdT_j3Md)h|dKMy=19!zCzJ|--O#fhx@bCR~#m$J|OS7y256m9WEQ}B^ zHL|!N-)w&~L28AY3<3KJOJXuj$yN55^{I4m(Qd(JyRFnF7-!nE$82li$OwZ!T55)B z;yJh=p!R^&mo2n>f$?ipaCciFO5r?9*>c%v_6fG3wQDK~niY8vz7jQo^seo18DKL66HxT(UpJ`e+V6$mm*ER88K|-2h zcwt-#!o4$f1DB8QF~|Yi)RZE|*{FXSJm}^Evpl#+V3@%=F{4AX`!`b#!;eEO0Aj(j zUrzpB-{hwGXc~d1EEp3($Ugg_Gy((e6F76td9ONCl$iDpk>UNxSc~uwG=tS&LfA`( zcmUS3KC|&DmTUNtkjPGQ)F<7eV=lGa?vReoNz)W9mgwC>%9dD*Y+27;)De2`#p$!owr6-`l zeRh?2%FS64Vd<{RSR!galFKgob{QXnWbp99)oqP+JS%9pSm>Pkl`k{_g_j4gyJ$Pj zI=yv`n^{DzZFA#B-$c9k+|wP)CDYDo?Y)mH?AUsjbiszQbXzs}am_ad za(a5da#^++8x;8*?x>PwI*A3VrgDU9qZ^F+4k3mk6L*!tPc|JGwI z|MB0D)z~8wH`U_?jGV0G0?lnp_3?v)G{3g zYx(K>euAK1=HC??OoU1Szf4QVG=rP0+SBICl|u}^9>;D%9c_aHv5AjxjIUvS+um-#wdV_%M0By9wy{M#JYxJ~p1120am55hR1 zD4&XB4k0=dhl<_rwHmP;yyWuG<{3JIIY$yPyP>M5((-fj9WU|1_H`{SjJ_8>xnI{l z5t7a*VQV(@l8F|fx>h$;CFKy2w+8#&z76Q4{8ub)J?Yc|nT z_OTlc$`c*cY`mHd^-k2`x+a6jXLNtBPAizr4fq^oyo=KMt-QKzGsuHuf&c28P@Swc zU=X}m!#0UtFniX_+#W{?7L44Yfi(9g?GT`=$Rqc@Bbwf9z3ptf1{h+=6uzrL97~bt zghBF=t2S;0fO0LZcj;d8IMWB{M<(3*S<2q^qp(q)n&X(v`?DxY{PpplS!{_fgLffM zO_S#4drz*;5`8_nBrNB$#EeB>k@PtEj;*?_xAX1*(?v7RtGt38YSBp+7hB2A7`1h_ z5Rt4T^``XJes&PrmYqnYb(po?rA}4B0ZsM&F6$kv;yapzuXt`7SC+1dlK1Hs_?C@! zc6A(J)=z++7+|&5jgdQ*);{)^SE;FF;w^JcPWj*SK&s|bngprxz-E-16{$l33JF4p zsifEq8{QcClXZ(JqAcQoZ)_Rt8ZEm11qUdA2uMDwc+HNytg8tgnt^@Y*mN2b#J;H- z_0f1@s`jzI@VTx-@ZA{^;|WPMBG?y6)-+weq= zunaZyl3(HrOnEF0K8?-Ja2N=dhFkbO@#+cO=^r`W?j59p?rg&7-iq903hqOo$yC~s zuU4*@8uYWStkJY&0u4!rDV4iPCN8Z2GWHCe$(xOJwkdDAA$(7?jVTDooBOmjql6}& z%PbpDo(oDxT%qxB^e0QVsz%F~>0@aVZgiDYETMWyc!TzjRubU#DFNWBU(ls*itcHDBi+$>s-+y)sH=1EDMeBD2ejDydnDpy8FY#=G}a{#xp6cbM7Hqw3!>2`wQt zk#n~0M7E4}flg|Y*{mAA%Fxs2JCw7vwt&wmg7mp?x?KiONv}$)u24e_I@8scR43-& zqUo;^G{giG`fFm#U2`%rm1<{^Pu8yrnRd>`h1ne+#J>Ki_bGVwu30D5O?ghaamkvd zkN4Jazn9ei9xfS@J}-SrAFs8S`t)p-S9uN(M+qt6aNnA*6dJE3JsXGnC+7mFK2oPjQ1hEFss0;cA!qm8}vv5L*URphB)Yx18Prr?r+7w!GMEz-V(R%&0mJE@%{Sx{-+ev>MwO zjZk3=J`Q@vP+PG|KTRx48Mp)0=2fP~zKrf%cBku`u z(UHz7o{Hj=^o1j(7@V3C6}<=J1~zk&f!|?KDC3;Ubj8)L7>TQcx2AHuH|@wlxhvaK z)a8B({6*ZAB|_Fj?|k+vKf-uiJ#U8X@Vh9T-%g-9?Yw6G-t)q6R%)^!{!z;xMRX4E zR<@W(oKGHa?*Hw-f%})IsN!J02S7{^-3sa0 zdn~7Tt^eiLk~DnG8(nL)3Xs}n2^PwIP%!RBVmKL)1xOV>GPY4vUnn2nrkpgiyk;id zy9X~IB)EyJdc4i2=#9>i4m15eW1|OZpRcFI45IYpE>p@dI!zbiOLek;M})505v*#> zr$+f68Y?+=tc&kPG+w-O@sLpDsTZWn;olXwOiAj~VTAsmlGC>p{E?BCcmscSWi!GO zCXaSQ9~PRh*e1Aca?-UH*5Eid)7l&d&ACItS0-_e-9wico141C&VIq~HgDdt2We|{ zbN)QlO}^v!u>D><6N#)nlZw3t&|B6rw5fo8aQS8U(Z7V8+E}BZyGnGhkM7>+Tw9g$ zb{Zi!N!Q4cKq*)4T+sf#^3B)%dyb9~zmLn{uo+s!2?wj&MF63Tt3PmCsuPjJ?FUtsAEJrzj2;LU#pJgyRt zI6LHECdDW0q<$)SPw8}Bs!yz1@%+4Jqe`OB=z*%k$1yozU7TVJ^!wrvBs)eU)MWAu zgGhd-DEQ9VHjx$yd*z08eb5k{N6~tZ1p|`IH;#Vgpt&c!7H>RiCk6{xK}dxx)A59T zz#J2UYuMUqu@Do>UWP0`_$+awc+K3n5tX^fVAq8aM#|L zxrpl{qB4ep)b!0T`@?qA2g^6M-re4o^TjeY&lgIj8A?YB63glQK2QWvfA>>`2@G*B zIN!WHBdFXd{Ft{AyB?J$Xis{`GuybbzDN&@2FX0&g(iTZmCX}HWu^5))MvEMqM*N& z&Cmtga{jWa0w{EvZ~Q&6u5XkByhU|&DjFM?_uhp)ERZ|prsW*Ry8r04~#MQSfTy^D}DX3IB`>Mmu_6J3`7fWq-yCp!p8-3C*XzKNf^J&Jx@x-D+E?-%z zD)I*3^&Z!^%#M=5mp*LLl&WurNaGo7scP==kE|L!pUO`M8RNcrXct`2PE5{Q02cAl zdia;0Db;soKBV3^$P_rJqxHZeih!HZdvRw+=UDKAC_jW4q1AGiA6jhL(rfm0kMNb* z!RGLH=OaXuyKRM*t;kQR*fN9&kg<&FCeDJ-OWAImd&ua2`$SN9X%rp;+L3wOiA3&_ z`xm>zNrjBc-TH_=NUnaBXz;|PJMK2j1np5n0OhQPyZ(M7C3cL*yXIjq33=I#^HZ?? zp#-dpyYSa_vAL=&cy{X>Se4q*;|y%LsH6D!dMCPBtQDMGUF$G$))O(o90RyCWx_e; zqji?}iUMKHbLKx3pogX{f7f zmWh2UNofUg@n73t7=ZS+ALyKnk|YV9B_0rk9=XeEjZvX3H>~pwg1c|7oPc`$$z?OA zkmjHlh{2k!%8jXKNfKqn6cOOYzdH>1Q=GI?Vy4CPxDs8Bs4(5D#1cVhIx2vVkgZ$m z1rlotPugTLj^G^8QZw^9vFvtH_^r)?aCgFOv5)e$RUHbV)M`1(}F=K?B_+MihXl*1gTBjDjpFS9&ndEJV*+auBiI0$;t0 z)l8K}Z~No06u!P};Rpr0nV`*tLgUVEw$@2hZ*79l=IZ{yUW2Z2nfhT%&ogzAN9~x= zOpSdSrjdmVkyN-8fgaCjX!Wf}H%GVA3>vJSt;rIS>^?HpwH4Og6*FOg8Izrn?ktmQ zLqwVOc^}bmEz|}X0d8FxvJ!AC8<~1f3AMO49XtB_WwI#yq>Qd$kWn|^9c@oCzHPWpY>f&{j90jZv>s)PuZ=in`TMpXWf{sUApq1Bv6XkSevaB z3xId}_Mg0O^SGt;FG9UEbCs3pFK)EjFnqawoaqpmi!|f4NTbgV8tc|`IVrP52@(4a zKWGG1cR>E|gP)$^YT7+kz-u}oWe!dQd#@u;Z0yr5UA~N~-di7yZ`Vs2K{KNf$FBur zRd_}fy&4f4+B^>y?c$3~m-1uCSpBz4h?J@-cr~}G*)L#b1;j|w6#Szm0N(2s!*bZr zc&CX-t^1F!%0XV!Qze~onI*K|?HUnRA$ZB7;VV@ zSe3v`(p~jc$jxw_=o0L=Z6a*bQMEU~a=Irf@DFbve^6}v#Wg+Uw)GSo9aBB0vGfkF6k4YoLhM^uA zVFhDIn0P=b90Eq&Tbg7EQJvMVrXHS0`N4Ko2I%BUyj6$5>3X@0?c!k5NKFeCx3+F`BdDGo&Uyd#De5>5@|ktbE7* zyIh^bB!rbc5OCTSFXbesdYPEjgh>3bv{UJ!7;S8x`4_&~vEW|O1;^0dtq*aE>~8gC zwJv&W_OUlA{Q4l5DhD4^ia|wl+Z24J^x#hiCW9(sev*B;d_&%n^pdshMgG;&54V}G z>Z=hx2TQ^ZR>mT%joso3Vajj6>K3brElnNVh)$P@HaQKabo=oO>s2YUw?)mxpW;)+ z(SEVkv?xIu>^JauQW<<*;lZq1iO<3z-7uF>K zU$kQ0bkAumUp1jPPdftfT#mm{+0rz`P_l=F!Mz4V@Er!r`-6M?iZe4>objWyh-%-& zDig)3MJ&$pzyqUxe>$SFei8LPlWYj{#thkHx&IAgF^)l-?1$7dP;#ZMlIefjr?iwX zh(?eBK5lT>cc7ZpVl<0{mN;L_`gROYpj{!~=HXR^hm$&s3p=-q!g<`E8hb3?ktI7! zZacdoHD(c*V)J2uY2+ZxP%qWLE{q3tu-u?mX6@JPL;esP@EIY059Kl#vXqB1S$JYU z>2~zvOsmhlG^i@YsTE`fLYb++{y8ILp^vcI0Ve;he0D9C!w}EcG|%k6D5-Lj+qtIe zI*iTgb2G&q&r-~v;4-$dg2P0YFu4@JQVP!)3j32k;j=$b{l*MOE5jhdRWS3BE}A?g z3Q(!7pU|G@B$eTaP~O>Ea%IJ!^4vy4`mHVT$1Gh?ZNhVX%{6*8#y!HPa6;QW-XR^1 zLwLoS`&-4NCYmMmvS4uSsNX;eua6#w-B9y9PJH`x>;yr?WLVlCvuh=15Tw zh~G$S#Jn-j9Yz@-9=Q^Dh>L)RC16Z1bI~vaXd8@Jl>zG-OR9WVY`xI2%^U3DF|QR& zw)KdWRF~?KDD(W2UrH{VQgXq9!8h#DEkD1S!_V0E5uU{)k)V8JaQ zY&aRxYdDnlM00JSyoPpE0}QA&Dg&5-iTwxy6g|F*PO^;Ekmlx;KLF4pvE<|*+2-<8 zsqvyiX{C@{)j&#v;bb%(6_RF5(ueM^zm&1jU2ELct{uebYjjmo_{_<7jJg!rA8xtO zoWx?A2t3=(P;*Wc?=mf29#K#Ajj_#!x98Vh z48i40o z1W;L{qGv4dh+Cjcma8N6&ZjV2qY^B#*e~Qpee5;{^lKDrc%3kvwn-U%8X977aFFjQ z0`yPf(a|kx8!{U_UzY1xr9)%1P$FvP8W`h*xclZ{OT1Dh1LS{d72{}K1oTOR1gaL_ z)D?C6COO4>*rlm({vHyf(-*>a3DHm|>$|jNf#{K)8&b%6X&O?rdK_)al03(JO?z%8 zefuV~bIf**1hS8aIn~S=In~S@Ry6mjDn2l?L^xm$ zzDIW|0%0_{@rIqk1r60@8n8%X6}xw9@fwQD7gLQi~H( zE9YWz|MnTh@eB07 zUiGJe6W=541r&;9N_|xaq%~xCSl}JEvLja=R6YZA7|&jCuT~ckvk0U`p0k*FI?&+h zorDl-C>+T+*PCaFC#YV6xy2h=fbh*DSF9V+kPJJp2Dqk!gDV(4%pV4))5v&*_p$hi zQV;|p8Ka#0Bc$;wqH(Vzgl;nr)k4z>FFh9I`yJ@a^3Z;$>%Ewxf$`Z!vc_b7ku*Yc!G8);6Q zl~sD;PX~P8y#q$Nu$};~g>3m8IW8;%==>8GcVo!{cfITw+VKR=1VZjoIBg_uo#0{cj1nH8YYaQPlAh#SJK4DD7;IC zw*2gV{pp%9+W9aRamqZA+l^Do+Nc|vRCzD~&z}EM{p1@uJJD^`k;vrs3 zDwW><+;uk)^@?)YPHR!R>)auCpEO{femV``gxS!mRSOJ*d#8Q*0>$a<6HV znc(eeDWjQI@ax1|e?{{!V78AWiJHZbvXzc%#Z8(eH&w_kc1?F>+@6=8#EGW*WA^Rg zA&rpLoi>a+qA{n;DO5Y{uXwAiVB0bsj!n?5n|O0k>2v8Q-WxLOH;5N05~9?8EgaaR zcmx*mZ%54qfPFnCI5)B~+~mzql%82*tI$;EXgIHgpPKs+^5%J_@mVXW*+fJ*d1TTy z212~)!B{*dL*#b>>_2CBu{Iv!+D{B{Kl-0XzPieaxvlrO4GE%7*8Qs1wSidK7yQ)R zIi!bIFe4RBT!M)rhlN5%tp}T%BRmOEX&TU?hBPU4huMz#;T^*!=9fTmmAS?om=`aw zb}4RzrfQ4N~$jqr=$0~jt=?9rzXS0)0z#W)O@qKf8I2TW8M7LjG0u&`kqg zb(uNQ2#!a z9FsiFn{&AJGyP)*{g;<~_f918S%JGeswd*8v3HSV_gjAGu9u_eud&0IX@fZ14xEWsoj>``etZ5(UCx(dN1P4mANvL z`b6%p#bl*&Ai)V|*Rzb6IbK0PB4l82B(&oC`1xhU5g)TN+w!n&vTh_lh$O5&9FJ;& z3ml4%BlawN#u%wzc|{|&4|yJ)O#Sy*_=lloY~jG0ny&1H?L!fI>cgc9XZqS#AA{iH zAl-RTO!h($f~Iblm%2W8nG9`VldFP0`r4P|9}Inc#TSpiX6s8t=7mXk?&+=9nx1du z{O%`5kHuY>x~U5+2W0L74q6Gi(<xB5L{%~=(vI!t&nG^i41?_BCC4ObsmS5kyzh@$?Jo#kAQ6EYkM1yD+^;|*chn!$r5f0F zub+7*?Ba(tE@Fr%Xh(n0;^M#lt`szXryTSW)v)LEz0NmXoQ>mUMI5S&{#Oy+c@TnD zE%taRlYs*G^D>3y=TUdT!_we1(0_xt5j{Yi+deQy^98taGI)9*H{Ek2l|<>ZxBMAn zx>!d{3cYV~W!CgbKSCO-L@&8Y#(Prl%8lJ`MxH^6+5`qo4qs z6>ysMs+)aq_bk)nCNwm(fEQD0^Oi3d^daD}lZjJnO=iYMP;YRRYpEJ_6&2pFzE@u7onNiMRi;K-+bj1ZJt zOtC>5;s5(4)y(s9leRP9;M-D=z$4WEmZASAYFmb)3S~Z<$QuK8 z9B}=!NK&Z@W&Z0;_*Xs;My9DJy5l*xO5ZsV?)U!3bCD+v&&&q>_H{y~L{w{J**GAv?OhLlQj`(uszoKzcS`@Wy=c8}0Y_h1Ryq`PwA?0#dhF+q^Dm*HDU92_O zziEXYGHvMTksDX?_3ui=?f68-h+fjtGuc#2rsKP>*XVVe)3_FMueOYLh8QMa3O1(o z^I!Wye&=TaUhDY+iV^8t_}H7Ek?4bmdL?PsIV(hde1}Mj{&=z_3i7uY?tz0P+*tQe ztX}u6N1ssF4koJa{qU-HD1h|Z2|*Zxk;+;~xyodA=Tp7x`I~4tiH`Gj$c;kMWN>B> z4SJO8IuAU`;1p3M<*|&lXRRg zm5@4k4x(sZXO{i^rV?U-*|n*Ykfpl51rKH>x+K zMpFZBW@i)9t+Z7=S@;qxv(K> zN>sC|j)*@jkN9WjNJS7Vd)L<1`Q)VK2XCULJ*Jtn42wgJq1mkWHZwOp|!t*$V&k>++?YOJ3c#8+Oa2` z6(ezPRpZ(@4`$Gi$FE8~RmDm{&be3T;2zVFm1DlbQ*npK0&@at>r>i(e*&GYx?xn% zjJ_j?T?S#4_RQ(Dth~xqVxwu2zHaxcsHXdP5QfUXE;UK)uFuyZr&IkrK%FOW$SL{k zm*|BdZgh@(ozrykv6$NEaq7BvW;ISC067|cxI}Xw=-4`+lSWsM)Bo{$ZsLdGd({teig=x7PI>I=>J~h@_?z2>_ zl5Weh4||)$4jpCA>#30$*Yf4K=ALp{-VLI?mauVc0x3ZcMyTe+ri1mkcVO|7`3(Z z)~w^EOO3!lBdox8#_F6!b~&i^C0TUC>UmggVR_7F2zP}R=-@+N6&bF*kU{Ft2s?6f zbU^u_qn4U2l2bumXoZ2c;fVQvHlQ3zuyN+-@xX9jtNuUx=|bRtJu=#&^5(-<&&Pur zKWy5`bdmEKdH!qV$!z)~5M=p>#n?IAvgT2{!NJdPUkl{ubYse>pp(U_ki6w}pOxNm z8bW_E`&5FazK{gK?s!YX!xT|=J)1Yc*5Dt78(-m?ibFry$-cfNYv|u=+LO}tkV;72 z|H}RB;HJ)kbA9iYvyGJ`@mfh{r7fU%pKBEKAtnI+l2)q}mi70maT#_#2s2|9@I6m? zMsiQ!5gKnveLf0O*?Oxy-5t(Lk>e~Qsf*%iaq~>Ff32fkl1Y140M_1mog`x2_N^_n zFS6*eW%dZ;uHD{E!4XeqY^eOvn=2*a2Ki+HiJo_5#WkN-kIxjs7dTQC{oE5geiz<< zZ87bjHo0mBWU)vNFXs29Y;@3XQ|m&T9^b@$I(acuVwnvQ`DBh^HsDQYQxVx%IBDI* zbF(5|n(XAvtPSN=bnZ66(<_-X(PA<$ExJDngZ;8ju3g7iUt@YA%Ci5-9@pb?Fqs(y zVIForPwFZ z4HM$F-WOLaQ54JSV6i@(9sHMj3KDG|bS7jbvcMbeb`BqzpJRIMZ8rO6NSfqP?z^IT%`RR7L zA(ZO=tjU}9Dsvk?3F^A&c7#rzO0{oN#M68iCvZx zBvElHFZq0B3ZgQ!Mx#u=;6dr3Dso*wpmn73ZdvwK8ofY$U`nh|{!%`}w9zw8t`O{g zBo|voCkL?@R!6febXs!@*rA!GJ4taM0KDG=_Y;sI@yN(E^yv%LgiQ$?C=2*dI{kXN z-}PkHZMctOw|ee8kq`6c=SI$&wn%s0)R;1_%7oMZDP7$^&27T&Q&G}_EhEH!XK^S5 zk_cVz*`#EW|!)9^kwet1eRI`$`qg1DhiB)PZxBm+$hAv&pYd?l^dZ%Nfg`Ifz zJGdQBoB~Gmtj3|&CK1j=a&v3da+jpHtQnet$zmx1| zi7A1X*{fymIz0qDynYm|3>FO)d+LerB_y?NUN1Ov{nj&PFrPK@k*i$BVr0d=*ZQJZ z-snr93|r_od*L}gWva1e!c7N-O*@GG?q7>qp(F*&bVpDIA%LCmSyP{>&O$CWKHk5naq9Ceu#yAEwNa@G@a5O_mo!d$q~I6u?%6qo0uZ z%?jfel~^K8wv64-0kGgE993?X#*`^mkk0mkt^-pR1vYj13o4VGG-AKfWPv9Q{g>e9 z?5Z_#WpzNq`vAfS6=E86woGNcFVzD*oX&3zV$M$f5e5H;hT|vs_+VAi!b|~qfx#x5 zoqvhJCo;ZC04;Qy*AAM=3K46>bq2*MKXGG0vjJ3lcFRmr4;)p1BCepvl}sR|MzmfyMPppf-zJ%3A^9u!7>y13w!(iV(s{)X(?oPKJt zPHpW_(fMn$^^Lh0|A||mYkA4#L9K2(D3;Ic{Uf~ETF~pwZt$L5i&IacvnH=3^iOHx zxx|jAJT{tCZ*@esO9x2Zhz(CCY|_nQMR}nUtfeYXTpV(|coZ`=%oWZtVuu$QKvfXm zj%biN6$JXcHn-K$!R!A&c52JJiXC@8lpL%6?RGM$K6(50JrmYg=RCf(cbelg>upu1 zd^gz`=}y1AY4giDx~DJLZ@c{a!L%u-m*wRjkNgx|J3X{&2bW&W;wOhxr}s|s-oRJc zX&dXMcbo0B_?}&Bms{Nx3_Vu2g@3kwm*0*_yykOfI8EC3egAxW_fIF4)YW55H;3|H z5dD58(tgob9!UN*Io!eanMr+a^PF-m$R6ht?HLB)9eK91Qe2E?eUY&KJ8^Q^)b1N+ z?WGKZE#}ocme?s%pbXuj9aVnc!9;iGnvVsQ|5IBs*aWtoiR#n5zauH~^kuP3GsCyZ zZ}vUku(L^IW4_%Sw+JWb9%Z1_z%ANa`k?F1fP2!V&Im8~*)u2L+9Vy|zH#MCy(PQ& z6r)6e8;WPwx!iunb2g3y!YK_Ug@~GyJOR|mW)L)izfRo**gui)!dft z{%q{7I|AG=Z4{*|$@`28Xa={?S%*mPO+4W3=^bIfVT>Of7hQG&T@Bg+ef)9tWe#un z&TK)Yt~nE~f!B^nr0ROQtyW!pFvfAwnpDR{l0Z|ZHG=eT0{sr$U-#$$C1ni`Ff(W&F|aA`ri-vH`Hl#|9>X_>z(tt)<4}s(-V{K z2VHO|I{8B0U!Z(dbm0AsQw+}BD>(P7_S)vG2Qd#Me}CzE!n9!BhChcM@XY4Uk-ZV~ zDZNO~GJbaV9#;o%9=%r+r*!Z5t;xQ`!Ql9ught)NQ*Pv*ymKtISL%9>w|7_brU>U- zfp-?k-AbtOW%Dw-VBR;&cxm!_>#iKgK6!z=?E<`E8-gxs@aNyCc>m$ce@51~6Lh=h HvN8Yw$GgZQ literal 0 HcmV?d00001