MNT ZZ9000: Various additional drivers available.
Alain Runa <[email protected]> Sat, 28 Mar 2020 17:55:10 +0100
| Newsgroups | gmane.os.netbsd.ports.amiga |
|---|---|
| Message-ID | <[email protected]> |
Hi Amiga/NetBSD nerds, Hi Ignatios, I developed my ZZ9000 driver further to support the network interface and a RAM block device beside the framebuffer. The RAM block device is limited to Zorro III Amigas, due to the limited memory mapping area of Zorro II. The RAM block device can be used as a 240 MB swap partition via altmem(4). The main driver now checks for the firmware version of the ZZ9000, and prints a warning if it differs from the expected v1.5 one. There are also some dummy drivers included for the USB and the microSD card reader of the ZZ9000. But, they’re just skeletons for future driver development. As for today, the ZZ9000 with firmware 1.5. does not seem to expose the required register-sets for these functionalities. Each driver can be enabled individually from each other in the WSCONS config file: #mntzz* at zbus? # MNT ZZ9000 #zzgpu* at mntzz? # Framebuffer #options MNTZZ_CONSOLE # console on ZZ9000 #zz* at mntzz? # Network #options MNTZZ_MACADDR="68:82:F2:00:01:00" # your MAC address #zzusb* at mntzz? # USB #zzmcr* at mntzz? # microSD card reader #zzrbd* at mntzz? # RAM block device #altmem* at zzrbd? # altmem(4) on zzrbd Please notice the MNTZZ_MACADDR option. One should replace the default MAC address with the personalized one which came printed with MNT ZZ9000 setup manual. I would appreciate any feedback, especially how the framebuffer and network drivers behave in a Zorro II setup, as I’m unable to verify that for myself. Please find the driver(s) unencoded below. Regards, Alain Runa begin 644 mntzz9k_drivers_20200328.tgz M'XL(`````````^P[:5?C2)+]U?R*;&JJV@:##RB*,DU-&UN`MHW-^*".V7X: M69*Q%AU>20;,=.UOWXC(E)3R`8:JGC>[KWE5MI09=T9F1&:D72]Z>'A_HYF! M?6L%H58M5\OEO>KAKFF/1C]\G[\R_!WL[^-WY=W;LOQ=+E<KU;V#=S]4]@[V MWAT<[.T?0'OEH+Q7^8&5OQ/_1_^F8:0'C/T0WLS&^MW-2KBG^O^/_JF>:=W7 M6!@8I7`6EO3`&)=TU[[6Q:?A>Z-=8^/XV_\VNHT>&]F.56,EXS8,?#\J/<&V M>+L16%%@6[>V=\T"^`IMWV.5W7?[&^B?;&?*=@)\94+.G9V=IW3)[;&.$;$J M>!FK[->J![5RE>V@*^:(\/;V]I,DJH?L`KP&)PNKO`4"M?T*I['QRR]L9W^O M>,"VX?,=^^67#?;*]@QG:EILTXZLW?&FW`)D33N<./K,,.:Z7"^ZU;%M.]/V M\*`]/%Q/IG/0=Z&@0^T;K+1%HKPE4=[N"U'85FD#;15JIF4X^=`*"D=R`_&$ MINVTB9AI6;#K8)1MD-68@P6=H0%E.=A'60X.BN^%64:L?='N7]79!U;>8#G" ML3T[$F(4`<;R8*#1`ASVRQ?MRY>SRP%A;$L80LHB@'(43OYCKZGV+EOUSX+% M/YEIW7(,T*%H>)/`'UJ%XGPS/A;8UU2"U?,$7:+TL=?HM'O_PFDB<5T]2ZK9 M65)E0LP5LT2BF7N7.GBU7*N^J[W=3R=)==4DD2D\-4<.:(X<%&$:HC?0D&_E M<GK$'H;3\*^YW"L&`W[19E?U*B*Q5_XD`L7"'/F,ADPZ+05\??L538M%9/;E MRWM$W7Y%[L$!")8@3@/=M8;3T<@*`$2B#EXFJ",8.IGO6`QL*M&;)]:VHCL_ MN%D@=%%OU)O-[O'FP6'ML%H[K=;*Y5JY`I^;@#7SIP$#$*:;9F"%(9&>AL-Y MZH/>"76Y1C#?Y=I&X/>:S-`#$T9?-TF;AX=@:,Z#=NL7;.CXQ@VZNVU8`*<[ MD6NY6V0Y1"$XWIC?+Z#.U+RQ#?9GEPV5C5*CA=!V;7DC(>W$L`$;T!NSH15< MD1=>7C9*)X[]\`#")2U`U9EML%O?-WT?L67DO>;HGEU1%]MCML?.=KK*)_;4 M!,09$^Y2P[]Z%DJL5T[%RN%>9B[".Y-%?FQ&2G"/3DOD\=B\E.D\,3FK59R< M\,E7Z@WPE]'(T:]SX-N:B$NYQ7DHH)B`2B-5=E(1X$0'1Y(@[1$`)Y!BUJ#; MR:QO1KX7(>M?3SOM/M'3U%[G\/#M>ZVR/[email protected]'A:K?!72HT@WQCE2 MD8G59(-&*B>9$V9/B5O!R`E8S[+,<`>Y<T/@],J1]C5V%UKNU!'Q$;J*+-!# M?Q(>Q@^5M_'37K7(;G'!@2_;M'S7-V&6"JF('(MG-$C&[NQHS"1+;VRO$#49 M"B,GO<E2;TM2UY@]\JRHR*QH;`5%I@<328C5$CS&GH]ORGX5;UC\)%[PMIH= M@3ZF,`!(')'6"J:PK$I,X6TU4P)]C"D`2$R1U@JFL*S6Q%(+;1)_Z%C-GQ;C MQ_@#@,0?:67XPS+.)<#98GN6B6LL+A?I&H$P$',/P"OKKA78N$."Q\#63<_B M/@'>00$G3*8,!$@Q7[B\CJ7A2PT>JON/K-Z)Z-]]E_$$,[X<MY\"PY69&KRI MX^0J[#]T6,_?ORLS#./X3RR;*U9>B=13BVZY6&;;E6+EL()+T79I*_<72"I. M>LT:$Q2*MQ!*#HA`J;Q7*A^R:K56W:_M5UF]._5TIMQ/V%\PQ]]&_(UMML4: M_F06V-?CB.6-`N?='UN,4V:G_M0S=<Q7BDSUC%U"J3L.(Y000AAL$6XMDSJH MLS^V0TB)8,L!WY!KV-`+28'OLM`?17=Z8&'"!#%P.(V@)_*7LR-:PQGPTL'_ M4/B41=>"M9)3P.BI>R:;AA;Y*:1+X+G8,K0]/9BQD1^XL%B2R_D!??O3B,C` MVFF/;$-HAX)-K,"U(Q0+TGY<7T&^,7@M>#00<AS_#L,VB&_:E,(1&41TK:A& M+Y7=.>E"YH]BL<@J[C2,P&P1JH5T]:%_BUUB%)!*SO,CF(!%Z`<;.D`-B:1L M2;^L3,#2`$O!;.1#5%V4`_A)-HGE`$7-*<CV1XC"N(I$Q_2-J6MYD1X/60E& MP\>E@KEZ!&ZB.V%J=1HN)"NK(/G8N=ICO<YI_V.]JS!XONQVKM2FTF0GGZ%3 M8?5!_[S39?_X1[T'W3_]Q.KM)OS_S)1/EUVEUV.=+A%2+RY;*J`!G6Z]W5>5 M'KAYN]$:--7V69&=#/JLW>FSEGJA]@&LWRD2^44THM8Y91=*MW$.3?43M:7V M/Q/?4[7?1IZG(%&=7=:[?;4Q:-6[['+0O>ST0%I0`K:AC59=O5":?`#5-G!F MRI4"NY3>>;W5DO4Z44"D^DE+X31!KZ;:51I]%%X\"2(-L`I(TRJRWJ724/%! M^:2`^/7NYR)8@6'>H_QM`$#0R9KUB_J9TF/YK!&(V+PAP.:-05>Y0`E!\][@ MI-=7^X.^PLXZG2::F/64[I7:4'I'K-5!HY_"/D7AHC7K_3H)`&3`0`"">@UZ M*IE*;?>5;G=PV5<[[0([[WP$0X"L=4!ODDT[;51;.(/2Z7Y&XF@3,GN1?3Q7 MH+V+9@0-^]TZ&J?7[ZJ-O@P&//N=+M<OU9FUE;.6>J:T&PI"=)#21[6G%&"D MU!X"J,0>QA_X#DA]'!V0#AX7/;1(X\C44U9O7JFH@D"`T>^IPE/(A(US,03D M!+1,)R<X/U,0AJ`<[HX_;&QKVJ]*MZVT-`AH:C-?+K+-EX6#33S.P7``.\70 ML!Q']RP?HC2RSS*/9A,+F<,^#*!#^\'2HB5@863:F%H+N"F\?/JT"G+H^PZ! M`B0^)\&)\1/G_/L"$SC+1*)=0L*JW6DJ5TN@>$*3@#5.Z_U^O7&N-95&2VLK M'_/\@`=@M`EPS1>6T+""P/,3$KNIG)#$:.%$-RP4%9?#!S\(?&Q^3'#H3H@E M%+3[^WN4)=.P!-G`/9-`OKF-_,E2B>%_E-I&!\V\B'.8`TXS$<S(;O4@'A!\ [email protected])=>"N.'H$:6&2Q6<2VTDBCSMQ$S`>!PGL*YC''ZH`CRO(1A8`6=6 M*J5'F\DF<7>\21A_S=+>3#O)2V@+*50BI<:6`Z&?C::>P:,:]H48JPQRW\J! M)M)M#:30\!`E#W%I:D19A4*CF,(#),XL009:!2R-0_[6MTVVI4_OBW1^!-GR M&%*_K8DW2:9C.@&L,(3022%2DBPE"1'4&.>%!T<,)@6``^$1Y%(ZBH[]L&., M>4IR41NGPA/U13))0V@YHSDJBU-I8YOO+8JT0/BC)88"#Y?D+F;8%UE[T&KQ MSXUM;@NRAAK]%%)*,+-$CKS+ZC#;0I_9$1N"<WCA[FX\+U,3;6R_T$8;V_\$ M783TTDQXT"?LF`$$R);#,8!D[DIWH*U,TN;L$<L#T,X'5_>`V/$QB\\LVFJS MP)!J+H0,QQ@+.,S!;%/T&#JDLAP!0F-3;6I?]FK8D4OX5([H?0A^>'.T`J?Z M%`X$$GWJ1'-@Y7FPK_#QE=0"F&G@"6VACUK17+&%G^T_:UEX^3R#?FG!AK4H MC\0+\PA$D\3BI*6SC2-<"LX"?3*V#3ZMUL(\XDL(/\Q='VT:#HGAH'>R/I)K M!(0$&R-^;KL^*FSK"77^1%=,CQQ?<PC;-`.^6IV@%\7.VE7.M)-Z3SG*`(N8 M#\`]>,H`]]0O"O?_T-CY$!H:,`0`'):CM'$81KM#SB>?<B_0-+C5YP#U8>@" MX!L*#1KQA\V`:6D5"=#V(X1)T:2^AY!+2>3Q.9V@:8AU]4D^I56,+5&,M2PR MR*UB^M`V+HB9*B(J)`9^D-^LL5/==OB.%DA*Y84T<NW^IT?95DY,IJ-D<B51 M8WQW!>-\O!!M(+)P6Y]_U"`7[F%B?"0CCIY"/,TB"ND]V`OJ#HHO"9P__UAC MK^TB.Z7O77S\0EG-Z[``.A11!9*T*/A^^,`.X^<WK'Q?+H]&!)7+K''I8IBL M;06(UINJJFZR&GYS^Z3RF=9P>HV^E$_="E+=OS>5D\'9;U)2`-OTUY/2ZPG+ M3_02%@?9)O+?E-2"'2R,S"3>7[ZVV<4)[E%CU1@YQ&ZLH(C1!9YAQ6^R(Q!8 MZDFWZ,T97UH`3CR1E5B^4J[NXYD!?/'>%YH*_9F;_N?,6&?]E(_THBEAA]*& M/<V//_Y()S$C.W#IE`:L%?D^MV)NTW=,2FY=?<8\F'*T_!E@.,N(G%GJV.LS MNW0L7`BNK0@(L^D$XK`5<\/SHAH;1]$DK)4P(0RL7<-W2P\/.)`QLZ_,<O#< M)U'_PPO4G]?9L^Z`4C0&F80PUOT$E+2R^@\M%DXG$S_`CID5K6T!.A_CJ1V[ MT_&([-9R?'1*7!?-Q-Y>*A5>O,%3$YJ)Y)Z,@&1EQ0S,-,43L9"N,Q`2ZJ;) ML$).L40^^G]XT&&5?7QQC@)C,LLO8'FZ"^ND?/N`&P//C.UK;83'>IJM9RT1 M!S!0YXV$693S9)X`QF+#S@/:K&`$LPU/L6"PI#@<TWB!(DNU>*$*C\B?1'^Y M`/%\:1.L.8&A_84R`^8C8F>+QUD-L)KQ?`T2K#D-H/V%&@#F(QI(:9`=SKD+ MUD.>KT&"-:<!M+]0`\!<T."KM)>)(WV<;C]O)\IS;9'#IR$+"6C553&K&&]B MOR[?4SVYE<UP+1.A-2H]<2WP7UCO25BN4_5)@+]7[2<I?JY7`=K?JRZO`,5T MZ."O/'?PMU_]LP[T9QWHSSK0GW6@/^M`_Y_K0!!P-[\E+/P;UH,6ZAJ.?YW0 M@V>LF;0Z9QKXRK+ZT;]/V4A1VU<T]X@E?%_6>[W^>;<S.#M?JZ+T+86DI2;_ MUE(2I*R6BXGQMQ25]&`2J^H.IZ/%,8-]7LD>)0*`/_MT[#9O$`ZGT16DF!^] M&+Y;S%Q:@SDASJN7\+(%'0R3DY@./`(2W0%?)MYPDLH'SYH;Z1,TS\GEJ=;4 M<'58-"LJFR#A2U+OXR4/W.L&TTF4U-L62<!`!.D4G#BW+C*%!U[F8XM#PC_M M,#$0/*ZJ[SVKK#=_%OU-];TEU;WX"BBO\67N@2ZK]VD+)3]-JOJ]`F>`-93- M72=]Q2^]99MS"U>SXU\1L*6"I&0@TN3U0NZ5GC9]$FW\2U@=4U_=<5Q,MV:, M[^'XMFX:6*+FQZLD\0X/]U5I887VE5+Q(YWWD7[-TG/Q3#M'A#U?MF<,T]`1 M5'$3^$CO_2.=$>],98KG(7;&SZG(.?1"%"<,L!'WE%N<#+]+GFD,I,9DEPOM MH?7?4\LS\)C_:QS$@GO&@6F[`9EG.&=/NK!.]DQ)\5*!U$")Z=&<,MJ8'XCP MKQCAD$I?,\?7S;]3\@&^\4EK0>#?8?S]O-G%]]\R8@KO9T'I;KUZ])(C@+4J MT;1=%\AW@8VELZ>PI;=;W5E""RA47=W(I_O_+?1?C@<&@15"-Y*\@M;A9(TQ MP/&'NG&3T3(F3,OM$OF6R@#!:UU0/4C(<FFV[-%DKER/['TC<A8!02_-\7$+ MZ)IQ01/+R$L(P/(<'Y`$U\\J[7^'NOYW+^KC\29.@DQE/RWK0U=2U>?/HJ@/ M+U36%]^9PGYGS-P9._/!DC;6^$=3QZ'-,@Q2^..2>OXW%_.71ZNA5'46114\ M\W,G^2&>`BX_(68_'K-R(:WHQ7<`Q%ME[NR,E\N_N5;^M`*Y)1-AS9IYC#!9 MAL'EE''262&58>/U?=>"%7V4UI#YR2!@`BP%PDSP+,A+*.P[Q/*)7?%ZN7YY M.1TT;/C>E64,C-`YD5[7J2V+<ODG*JU+KU@\IPH@['RUWF6]H8!-+K46[(+K M7:GZ?/_\XC,,11H#5Q>@UY&[GY6[O[;<T0OECIZ6&Q80K"!*/Y'CAXPW^!L$ MA_%3>#H`INU%"+`VWP?EI+A%L0H\CGAD8V-2/P=G1$?5SM4BRZ-WEG]C/__, M#@OL=W+6RF_K8%\T!78UB[VW%G:K([#WL]AO?TOK'==<10RIW!1MM8'VI8HE M9)-WUD\!_5@1S]5"S'TF^C5/,M.$!XQRKN+-B:57"5)39.\@`-9%\TFLB^8" M5JOS)%:K0UC"\,="0JQZQLV5M!DKGZ-1W%$5'2";#+^7-F?A]T4'2"7#OTV; M$_AE%RF4^`<PL4.^#IFXC)"OE'$&[?2+K%(6CY^*>)S7H7L5(J\,B>0(1[I0 MR'#YYNL0:3J\"!&M[/LCKT0\3O/^&23OUZ$8/8,BK5O)Q,*U([@O)5:*;XW% ML,)VQVQ-RG(X>19RP)&Y5'R%PXF-\SDNB*=E<E[KY&<T$*1W/L`N^I[G,2*V MTYOD3^`)ZFF[?@&+.\D88_&\`&*N(;=2BLQG+SUF,##/YGWT*/?AS\U"Z%-/ M3[63;J?>;-1[?5C.\+V'!^O*)QG<C:8`3`G!17^0:,\3H.6J\[N@0"'.MD2* MGYL[`**$/E[\`1HVZA">+)/+S+<@!(.I:\8=IA/BG`\LP[+Q)[T%SIW.;+`@ MAC?N`G^*!TJXXD+G0<9I\!0&_M,V0=@0GHX6`2##2RP_CSM!\Q_0G2[3Q.;\ MFQ1DOGJ;9*`K=U:93'.][(X;Q/+TH6/),9ST32V2#3'HN"M7_4:G?:J>)85T M]OMQID-3V_V#1^(EAZ)Z]*@0)V:RW_W.':\[:.-UI$6_?'/,_@<!.O5&7[U2 MA&>$QM@RIXXUYR*Q8RVU\\IMZ8OM;-KA'V=H5/R[6CJV9&KJ%69:OB7/WA'. M[F8R"Y.\=]BB,YUCED\:"G.KM+SI@1:V14=1N.U.KHF*I#@_IP[+2]J(]4IX M28&V@U*WM#%\Q`E3'P,(O-64/SH2V;)Z"GOPOPV4@9)_DVCKX3T1G@VC@"[> M%.1[T.3>-KZ`IU"Q-AS[4P=_Y(LWSL9X_]$K\HKKG1U2U`@LV'9[/AT[<=_A MFKL[']Q$[0OM\M?^.6S2)'83W;.-_&8\?#5.A,[$T*HB91?"P-S!C!3T"^E6 M[7]AX=GVF$&7;6?^E-UX_IW@+R[ND@23FVAL!KN.Y24ZYZG_9Y;/'*B!_7__ MG03C_1_B?G$`M\/?&MT&AQ9&SH&2@66Y>6'4S!YE/M<B@!QD>?J09WR8-?$C M1.+IC_!>Z7`662$E=-@HR&8NU0NCN/J-A>4"&IB94#XI'U#4<:4:0M:@/F"8 M>.0YM7CAA.'Q!^;Z4:![+FX">%8!0F&<$HL%9T*.AIM@]XBYZ+<8W?!16-VS M[J/$0#Q](#6+O!LYB4<8&*$AM\/V<=(N:RM9&:6_LYCI>S]%].MSW+#HWLSU M@^2&.OFOY3BQU$*K$-6"].@&%@BZ'4!6QZT=]R](N*=.Q"L?N<>V4YAWIX,3 M7Q1?N07I?TIG'`'3P8^P#T]U(,H;?,C2^A1'$A=55P-SA6)H:5/^>$Q:N);U M@B/+9RVPR2EU0A]S5&2@X\VYN=8",HC7U>Q/3&BEQ8R&5ZS$R8[X40R(R"U+ MOVOIJ9V&VE;[ZBD>!-7X("Q91@>7?"0%$1`"8?ZWO2=M;N-6<K_*OV*>J]:1 M95DF*8EF3-LI4I=93U>1M&._["L6CZ'$,J]'4E<E_E?["_:7;1\X!QAR2,F. MG<Q4)19G&HU&HP$T&HWN)KGRP?!M-KK-0:]_9UZS*1W"\G90YSLP:JUN"VE6 M2I)\89P`BIYK.D/;NE:S&*5]T4;_5"VO0=..2T>U5V(I81X"%=C-#5`.!J,A M4T,=*ZW0+*@"_A_>]4$SRK.^O3\72YM<R4RV&>]?X0D8CC[TB89"/+>X#5^D M$[C7F9B*5XO81K!^DI?O`ZOS%G8-B./)^^-ZY97Y<O_@6+W4_<7G_D4+CUF9 M`A1;$QK#OEY5I7F"H'/>Z5/+YFQ?T(K.#O9YQ+S!#]]M0S+/[JQ;&:-=?WD: MV<TN;R5V5#*QQZ6I'21:J[CD.G\5XK(P#&_DBM"<H)VZ+S=^`2]94!F=WZ'F M(JJ6)X6VZ1[K&H[&L,9-1P.@#MW8:.:>37H7%Z`G=:3Q4&_#)"9HEU69-@<K M(BR=Y:1RZM-)A`9CE7D;6&J,SY3J4U-,)64R5TDQ*F,QF[-N5F'=S/(2CAY^ MZ!<NF,]CWS@'$4)**@52=1'.UM?Y".#I$U$GJXL6"73A2N[58<X8@Y",K_[3 M"(>DZJ@)2[R7RG`RF@6M[*TJNW+1:4VRXTT>3+BR]>0R)_<?="1#+6^S7-Q< MHD4:N`&0>![R[-G3X`G,O3TM(/+8`[TXE:ZJ%.!V\/9-\%/F)R[6#E[#KY]_ M4BKM+>!M!\\1PM1`C*(EJ^BAIVCII^!9D,W$E&]:Y;N>\DVWO(:0]E:I'2+F M6UJIX(/6JW#_!6M25NPZQ/LU8/=O/33.DLWWEN=QJXX(R+KY\_7K8`<MY[(< MU_7LF:E]^3WOESMS?SB?>R6)JQ_:,S&:"L*R@(Q->=S_Y='_!*<TT_;1E-6< M!2&L^3"-X,%*(I=^$5WL6[KTRRH3N?1+X`=SZ9?AU)*Y]!?RA1B7?H$G#>V4 MNO2G+OVI2W_JTI^Z]"^]+'R'+OV)7?0#>I+YZ6O0U%<_+NP34:V"P;N\1PWF M9HH['?%/CU@"A52L],I9X^-'V%(I++V1)U"5A4@`"I=QHF#:GH3A$`L:F!;A MP4"Y&LDOBT`;U[-L)A,MP`ZW%$]7MO_%BR`)Y='*&(GX1\HX_VI<#7&OB6?/ M$^Q>\;8W[([,?L`HQ,MT@K_)B$7\(ZG@7PWCO@+52,&#%U0H^X)@-?/HIY16 M_D&G`+S?6EOC5]RMS%3R3HBI#;\H*<4?Y,FR=]J@!>(45JP?XDZ"3+5@W$D0 M4:QC[B0XX)ROP+B7H*\EJ'C8\O(`P38J-5D%[`$Q2#ON>^.!NDW^'+FQ8)*I MM@QG4+X-6Y[VY6@T11T-[7B@VP47,E(21IQFW;`]ZH.BUPG'L\LIG>NQ5B=* M$#HE2Z(8CLE@703,Q[M#'(YE_1>>.SM7@U:W%:R'6Q=;P<<L[/KQ<')+A`HA MC%@6#WATAU'5S>MFKT^GXHL(U5$[6G>$49^,R959,A+96#N@V."-$U@$9.QQ M^+.1S14RMR]S&3]T^?Q\3<4T/SZK-@KE2MT%/3K\N`1BA'809_-QF`_+R^$& M>,3N0:ZD8Y\*`0]!1#JC*V#WA-B\Q5M#C)XRPIU'L]^_PWT;Q8YFO66+]H(R M/T*P8>'`LC!/P48!%`[8(ES"!-*#+>CYSWD9*@6W**,F;B"DI'5[$]BRS&`W M0OB@IA(.Y[/:5E#JPIB]P?#3:*^=SIIW(`CM&2`*KH:S7C\8CS#(2V=T,Y1G MHU16Z.=H[N7]ZR2$V0SCTN`>"9?H&?NH8S.;_1O$BSY'%,R?-MH8"89:VF]. M9ZJ=9#3!HWBT*@/!TT`,"PPJ,Q4MD8";)+.5X+()Y`Y'`>R:FL"2NRVQ!X<1 M$4S#<#"53IV`E(/!!].[81OJF5[!,!@A4;C[#:^!F\TNG=K1D0]^@*+5^I'< M*X/*!_MS9BO2!V@!2/CCM\(9EH42[,YE=HKB.=34YGYHA5T\Q05%;X85@?(Q MDB(@AM>+%_9,5=L#M?_L/>QYJJ;$?B"1!6F]W7V9'^]FEK\JA1E?OI_;4MV6 M<!$7M5K+)7P7LZ)X4XP"TM$^@%UWC$]*BX(N;$^X972JY"!1D+31QW,+^HF_ MA.\/OO9BW5#0T]^R_R:<O"^@1LF[4G2BVV[<]#JS2^/W98@=9;QHC<?2,JZN M;9'O??2M&"(HGM%/-*&K#PV!6;Z@/09YOPF6%I>Z9P6JH'O5"D7)M?QJ`4MP MX4JBB)AOY^!PKUU1$S2Y."9#6)N[MS2*-X-QLX^CE6_20ONA)5?=+GO7?X9) MJ=<-`UA*>^%D*])6@TA`V6@WQSB>YI*YG4/G,@8DYOO;C.CPZV)<4N^DMH@N MYTJPO^=4@8M'0[0]IAI_P6[OMG&-L^;B4N;9#T,Q56AQ:\[6409!M)T;8`AX M`1SHME#SC^.!.4[UGHK+!!OPK^I\8S*@5HOY0\J$YPZ=8A"#BM/?]FCTN8<' MG9[)""B:;(H1&]["<*'%@+Q'-G!^@1V-HJ?9;H>PA)-F#EL<'%FPS?%?730( M@A+3<#*ZF4;((4^1T0W_,40`47&WU^_+BEUT9-CT8YM.V@IA!UIK(8_'!IT[ MES9`"R`*+?XM.#;$HG[$U.J%F'&55;@)&Z)VN,#FAWZ/5F>AU6J^^]F.T?H0 MQ^+IY];X^V[3G']OC"^7YDR`P\'?[E9OUNK/'KA2+C$UBTP57_0F%@5TBEMO M,1<:C!F+V*=,T``O/7&_7$L/J6M`/^IV&V@:[TXQ>`#VR7@RFGD'.OMM>'#X M?:\8&[K$&!-`_V8<;(@[MO:,8#2%J]._WT#YWPT:-HTVF1&5X_ZOEL=D%U,) M];WOIE(3'OIZ*@80?.3>4%42)RZIJA;HGPFNJE:ZY*?:NNKUT1,$CT["N^`& M!A1(_R#TAY]>D5U?Y\8J168T?1===XT%SA`K]=K*MU>MF>+K7&"U#'.3GJ4S MVWFY+()O@'YR;J21+9;%XO=^0U5?'I%9"]]$[45:F&19#J/\]DT@KNNBI:!4 M.PB>!>HW7@25'B"B%&\-5(QH`41R9CAJ1('M.I\'5HU:2)-<5Q6%E%L#UY'@ MNBKLU):^KFJD/9QS6?6%3\6&%="_$19N3;82#=!1N]1FU/9DWQG4-Q.-A)9X MO#_JT^$KAGB^_>]>,+Z5EP3)5/:*?,3&L'ZPB@N_I_(>H&`4;?84?WFK9W[' MTNQ.YNC+&N*A;S@:/>'`&(&?_[0KC2A=25$J6'N81&)'/XU,.X8%P/#3M'?U M(-^/!>1C<KC+"'T`:RML!MG\9O!KK;97/3@X;6#&UN.S:BWX0[][AV>;6GM0 M[I#"4$!W=)_X2'*`R2+AH1/?/_T]JY@A4)NUX9"`HN;)%%F-#D[>'S-3KG4* M8$G-=0=1;OJI@]<1Y<J\IWG=V3)W76_<[95PQ>T9K;<-.UOP3X.6&36X[>UK M^ZF>@:.SM9B5=*/DILYLF[]>Z%(^J7EB;.'8H3">3GE)\P.EQQ0]7X&_ZJ5Z M9:^H:9F$G4GS)DJ-C=&IT&+\UBR\G9$N&SR9])Z_G?0:\*L8"P[39[/5@^U/ M+\0RH@B\G5.&]GP:&'_-`<:=EX$9?JD&:)V\/13*4(PT37IR=%ELEUQC>\?T M`J.>S>&:N6(:<N&5K"W1,LMC\EX2$Q$9R\]R?4-WUE:SWQ^U"7!=MQNS)]CE MU7I(.M26UD2BXEY4,$`1V3STJ++MEPQE;(B<81R%XKVW@9`,JX_LP,W6&O2$ MBF\Z:J$W6K.I+B<Q3[&&K#;3`MKT(9ZP5[_Z?1'YW?H@G<[I:A?NU/C@"WV1 MQ9^O@]QN7OQ`EV/>`O#5`Z$'MT&Q^8VA-X)MT/$R9/)=NY@/Q8;AM=9\J!Q# M23/E&_0F9L*`,O+)72=JX&<V3S\OQ$\*=8'8I8-ZQ)RJ_+W16>RLL5>O'C?0 M$8G"=<CZT/TWORP"C+DA$7#<!Q%1/QF.LW/Y\NR\<5XZ/JC76;'[LD!@EC/7 M!;:Q3NY+E+TN<M,CNJ]B_/&[(AXG>(_*6+TL%P.Y\-%DT,+3.[Q_VQ#N_@EU MG:)&03JHGA/$L8'X2(JG_J@.'<1GUD3U=WT((0!X+Z4!]`D$79LR*8!M#THF MCQ3^T.WC9?QJI5&N_5HZC\[/%I"QKU;L6[BH(IV2_<!:.96:W,%UCA2?B(96 MU&4G(<]D5-YFS`OY&_OO^5O\OU;>@\!BL@>6/IC47-X0*R>6#.""H,R\2E52 M;XHVI+3@*D#YHNC!*%;FB%'5@]$"E"]XIL8C;<_06_WP0\_@9(P<-X?GL\F[ M7M%]>3R*'&C&PJ>5]0C(%U"__0PP?^ M3HA$+-JB=QBEW6,B=99S=M@6VA\:?Z.3R<,=??($<R_Z#P\3=AGV,B8/RF26 MZ.-$!<K'%="`JHU:=2]Y+6:AI6O:K]67KPD+V349%A;MF8`&9J/K#%.!\E$( M`M*O9#<6K7G;+&S<>??X;+V*VMT`*WXS-[!*[P%X5L>M2\ON).=#6LCX<<HY M,19G?B=SNU/PXH1/7IP[A04XT;YU^S)?\+8>OOE;GR\LP(H\Q>)+,575%X_W MYQSB]?,`/\;@7<0%/?O[$+^,P0LE$I(;@_B>%,?(0ARY"V4!Y6LWFUM&O@#< MQFFNXBL/)GT$H2PQ`@GS3%R,54->I_(SEN2G@=33##@+C+POJ3YT%E:=A5YW MVSFTS$N'2].EU3R3D!?5I8ZHEY+H3*.=5$W.8!5O./[AFK51\NR\%B[.CLJ1 M"3A6CZ.Q(!EBU5938ZQD&*QR21<JV#S:\4+=`]-/Q"S9`!()MP';N20-V'G@ M!A`QR_;`[O?4`[L+&^"9"+Y;<?]BG!5$M4Y%B'3L:4NCZ[PS.C8FQ)F?%GK% ML2:JS(P<[B#`V`79#/ZA3(O+F>DRJYCFLJO:XC[4/IWNK5KX].Q\%6(S/LN? MX5DH>\#K6BA,>&(VQS=Z&B_(,#+HNO&X$+1ZL^#X??VQ&JO970LBNTL@U:.R M`9*W0?(NB-"8)$ANAT#*1U4-LIVS0'"E8I#2X^BXDS!7P\^CF^%C+>KN!]M@ M8P9D6-XS]]YA&2*^=285*SOWWC,\@W\@?WUWOT5[4KF=^IC=#&X3;KT^`>Q= M0MB/N<W@)BE>@+U,"%L]^[5Q7JGOO=NT3<1HV,DEQ$'3N[1,V'O"I%0<E6EB MY#,2?7J1K"1..%S2.K987!CFM\/*\3%?.]<IA..D;#7OSL"0,%/>YGEW_E6E M[>,VT#M-BAB`[Y("/[`<KZ,<O7Y=>/K'BA(-HK5W=OZ)12L[3ZI6=NFV3KK< M8RSGI,LY2]-G_I<W!IQ[:*9.=#1.)`/D',0;:+K$CBI&G3GDCM#KM"+TIEM- MP^UHTKOH<23-.\,?X8[?!\_BSG+P[ADQBHLN5Y+92B5O=,EP<*4UX$O]WH-@ MJ)PK[$D"),+DSZV2Y3G'H:M?%OBN9*$+"W8+U_W^2C+Q8L,*F8N7X`(Z,>N, MAO_WO[@@7X=\A:\]&HS[X2P,NBTCG&^P#M#"*03M$T/I)&)XPRBC!,?HHOXC MT1%_&K*@!<&4!'W2ZH;\\@CTLF(I93)6*!-+I0@[YKFK+X5G,WB"/?8$N^S) M5<3OP-AMF5VL3HZOR?6A=?'O1;*]XET3?3?D^Y+QVQ7GNZDC'SXYD/8"9DC1 M/U/.*\C<6V5"],R&+OJA<A*;(X8))L6I5$D638JKW"7Z"T^1RPF#9,YW(`Y? M>QKB'8!W,C+NJ"R^IZAO"/MO*4:\V%KC$O3GN(K_.\+_E;E;`118T.JQ*\S: MFEA?].L67[?R?$#_9RQ@:[,;KJ>/*L.]8911JX4"X5(&B`<-NC2-P\FX=QOV MUZ)N20J*Z7$(+%J&>,/W/6K!`8ZIU1889_Q]9/Q=UG];!EEAY&$D60/)KH%D MUT"RZT.2CZ'$1))?@$08BEPD!0-)P4#B.[$3IB1&4E@>B<?6Y`O$_"4ZU:`A M6+I]!3H8S&5S2G8L<1^"`E&L(]`3>1XC(NM+82!9P8A:Y*EU6,9=>=&"F%ZU M\/L6_CVY:`V:T\_H13N^;#9(T-_@$$I0A%*1B)$!+$I0XH)<[%4E1PF*M/I7 MH5%+\J;8@SE!4U2!9*WGMIB%GB5C`K4H6NZ9X(81\M:4"_1$C4H%]*LI%-E= M#%F;3T4B@4A`(61XP@Z+"$?Y63(R'0%)0J@M'!E#)'[W=^F:Z-*]2CQV7(]Q MN=S"/QHA!DL-IU`0W;(?1<S?F6+L2KWZ16.Y@HMKQI;V9\06V+CN@(2:05)< M?>ZZ\_SM`O5P,!5P''U'JGPJ1+VQ*-I)'TPM[ZC^Z?S@%7.=@WUL7(@A)!-, MK*DWJF`#2S7>G_[S].S7TZ)8`HP,%!$7.J?2@WH#8U;NBXH]B@\:ZY'#\&^O M8Q)#+YZ_Q>]1J@`SW3T\VUN!I,KIX=DK?0D$YR74B"DM&6WI!U/]6V[D=0X" MBF/H;LV=:^92H;N9PE]FNY95Q_&>#(T"5L$`U6`J/<BW;!."A%1.%S:DH2HK M4';/=D#I-4/:`<&CM#A'NBX1CC;HJ=U6!&4T<0'5'HAKK6)\.SW^97&WX^W4 M\J?Z0<T>`A@JJF4-`?G&\6E?3LQJV(U67</P1OJG;*R+ZE5N%Q(*!?$/5;WA MB:S&N`23[YVZE02QFZWG\BN_7TMT!58');2OIPVF\FN$,::_;PQQ)Z7S\X/] MI.3)`&^;T2!NJQ.P__ZD?%A>@@`1!V[3C?66A`C+[=F;T,0"9^FW;V?*7G>G M'A^Z!","Y^;#LC$;SM^5FH-DV1ELWFT8>2.4US;C:HS9,I,F8W^-=S)$6)\X MGKA[\K99QF&3-Y^,&;36M^N9ES-&A$=1$2R6BX_R8)K%(^EJQU7@SDQ8L,6+ MU_8%?[7T.2?\U(+`.%$GAE,<`6[JG`O;JH'8."[H"R+@W-841#S/"IY_D<%$ M=#2_GZ8<@IVCD>*EG:TV9ZR^N>S!M*F"_8E8A!3P#]:?<-@)AVW0'SF,Y4C$ M7"<T.@PF1W29<E1"D16;(I:@YR">%&!%O2YC'7552$P366\6OKB8="4NBHLO MLE!V"/'4)H@K:(F(G?VP.0P[P=68@@3RN44X:/:&%%)>H!R,KCFN`D>AQ5`J MEZ-QV+WJ]^]TQ&P1*A9OBU)H/<0@G>[E+9^AF=E4!)8--MH=[!H+#GJR%28" M'/7[;8QV@FX/'9;QT=`%NYI%H=IT`JR#YK2',)XUD`PM8QT(Q-)/(^J+A`]T M@=B&4`E_1-FU-HZQ(<9%@0%GA-TMZF\<P$2JC?/BQWYQ6Q'#-+L1!KB7>1K: MV/Q$F6CY\_"F*5E&DD%[\JTSDG"5"3.2,/`#9B0AA`DSDF1S+V,SDA`>"CV? M4:'G<QB%_M5.+LU(DF8D23.2I!E)THPD?[N,)$LL"S]R1I*U9,E(UAXJ$<F6 M)N_'S#;RO>1O>/'"G\$!Y5:D9(BDUWCL`3F5:1M.]JHJ;<-R@<D!VY\1F/R^ M0;"1;-?57C?&&P3;"3$ML41<Y>>@B8F#G2Q6*>*]?ZQ2Q/+@L4H''&8Y&JM4 M<4+$*E4MT#^3Q"I%NP'0U@3],AR-^Z$_-NE*[/DZL4F!%!F;U+"<9(I)HI*N MU#\K1R6U9#58&)74*K`@*NFC[SI\Z"-/4,E!KST9P7:*4@%/*)VOO)C:0S]4 M5,1AVL?,&"(PYJ/[!WO\2M$;!74O-D1N#;,!RL[ASHWT;I7YD0K^3O]?^4(2 ME(V0Q8/"(FGER=:D<,7;243@_?/'3EJ=;VVMX2H36FL8^`&M-80PJ;7F9;RU MAO!XU/)<:JU)K36IM2:UUJ36FK^CM6:)9>''M];L'WQHE&OO*H?U/]-DLVG8 M:W!VG([[?N+_9-/-)JQ:@_;XSEL,H":ZA\?]ZP$6@#\LFT^S/P,<_M2?_$W\ MH_.+\N\&_(<1?'\8ZQ&.HP76(P-$68^JY?T5K4>`[=M:CYH#L?<3B=9$RC=E M3N*.4UW4AG:TFNW/3NZG-4'[#--%7=RMJYVX\DIM775ASVUFT>(I1)2\"&?X M>]UGJ`':!!0)LHE<!]B`[?=PO*0!"5'>WX"$6![<@`1(?08D)2#"@*1:H'_. M-R!9@4D$6GMT"J3\XPT)HM5%NB;9VU)>B/.U2_0"N0&U&G/#-H.+YB#\Q6N? M6HG[7\<^!:2L;)]:J?M7MD_I&>*K9<T1XF`2TZ1\.'^V`>N1+W?-:YFZIEHZ ML7/7X`LS>4TTX<O[87@[#MLXKP%HP"&5KR:\5\'+'I1T9.TQ?FSU1^W/@G7Q M26"D>ZZ9'$=2H>E?E-Q&-D3'=4B6VP8G\V3);9*WR#$)1HO*/,\Z^\I6))/, MG+0F\TV%6-6]L[P@3Q+;"15P`M(INX'(,S!M%\4K-6T^,:?1(L;?-9,/-'K- M=9X2'O-H@Q8_AIYL8A("8ZF+1M'@)5/..NZ:&0D%'YTLU)PHIC2CF7,FMP2+ M>J)ZUX1C:?--D+0SBH]41MI1MXL3"\PKK4:K_WDXPM0!6O<O2AT&NX,UUV)` M;>4BDY!O<@@$;>@%8TKAMQR]_4E0;E0/2ONT$@AE>5W&NB<XOG=#[S:>7C=A MP@'[email protected](B*<4[?;.$QX']((#FP^:M_3J"`82^A"G<CC1'=_D^W5M/6M3;9< M94*3+0,_H,F6$#Z`@QWA\7I2Y%*3;6JR34VVJ<DV-=G^Q4VV@7A<R^T2J\./ M;[E-_>S^,GYV*+<++*4&B+*4OJ^55[24`K8?T<\.R7;]2'1CDOG922P1UX\Y M:.[E9X=X[V\F12P/;B8%I#XSJ>*$,).J%NB?"?SLCD9!\Q(Z:A-:]QD4PKN@ MT[SS^]JMQ**O8\L$4E:V9:[41RO;,BUY3>)K9Q3XR_G:X53(P_%OZF*W_-3X MU5WL[CW/?B<N=K2J?T-C#=>7Q%+#D`]EIB%L]W6K(R2D@F\K%3Q3"`!-;@>0 MI0::U$"3&FA2`TUJH/GQ##3=H0J74#TX:KR#=_`"UU3S'>G^!_)H^+(YZ=!< MB^.SVYL,Z`<&ME`[/0M)X]VO#6`Q1A\1"0:C`(<F0#:S^U14^2\R1%3V?4A/ M2J>5?2Z2[^1#!R?T_7YEO_&O;57O3BQ,3L%LRZI+H-;!#C`@_<13/7(&CZ1U MJ[PM0S`\Z][email protected]\#RC:RK)]-90M7MTM0E"\M'YR4@^=!?B?X9]E#[,<(K5XB M`"H!J?4HKD(,5`)<\EQ?]7P,$X7#@``[%\-Q.!ENNK$)[E`*$HAVY;-`I MJ!"14XV1T`R^9V.^4[XP^)Z+*[_+WY4D83)66JEU,BR?.)OI+[WDF:DLO?29 M>2F]!%I))@6)<50@&("X8\9.I@@@NWX0G<818/(+T##4RWA,W*1"?)MWLS"( MUW^63*]A@!^]W6.W%EKU!]0=Y)"*&72#;K,]&P'(]++7599$MPY+=J+B%.#) M>PQQME0YDK:PI)0W1P87U[GKJ7-W?DF1O@T%$*&R,4+$8%D4P\5@V#&YQ6#; M*)$*C'KQ`RAL(YEX'+,J^P:UG6!:3#BA?R:)I,C6P*U.)F:\VDF:;0(0PD[C M[1V85D9R,1IBJ[)R&L]I[]GAH7\64^F;!2U4TQEL/YIJS\!T<VVHP9QAPC=/ M79S[;<U;#WP#=A_4ZP?>F43FG%L3,P114>[-C.9"U8>5(^\\C1\P2%->2ICJ M'5A0*S50X&KFG(]N1#2D66#B-)!:!9F"/>X3PS7ZE/,3PQ]W2&FR/M?.JZ"U M-CXR0#[F\R?^7'#+ZQS4!-&,^WY\1M_;CFQ9XDDPH>1V'_>;$P\[=.HH+)!U MV*'31=%WAR<Z111]WXDMS]\=KC@)FPBL$%O--GUW>*.31-%WAS=V9C&"">?! M,(]SL>PP4H4A7"Q;C+Q/"!?+'H&O3GLF&$<`&\LJSB!.],7RB1.&$TPLKS@_ M.,'$\HO3@1-,++]4GBP$VXYE&9*D>G@[EF/`_9P@:SN6703$=&W'\@FGI=P> MP<3R"6#VJZ5?R5T4`6.91<CV"5DLLP"F<@J32UUT]W;H#G()"YNX*@VIG5B& M(0B-FIU89B$(2?Q.+*L09(=`\E(A&J.)-6A?3:8CWY0@)BK0#DY*YU3289\` MH9ZO$4A3(#\-9S>CR6</6M@IPUZ`9K^"TV;\6!4?G=;BQY.2%/J"TU3Y_83Z MI^`(A/S.`E,HR$EQA#?WU1;6I?C06BK:&5%.GLO:P/`6MSI((P!WG!:*[T@# M?G<:B=^KNKS32/%=EG<:B=]K]5+]/?5'Q^DR_%Y^?U@[.*;OCJ#C=U@\2GN5 M^B>":%N:UQX:4X4G@V?9L3+:TD+BKJQN8E@&=%AA)9_E92GC\,/5D!B0I#P2 MLY%L%TAZ@N,`\A#XAL<!7%^2XP"&?*CC`,*6\#A@=\=_&D`XZ#0@9YX&<."K MW$YZ&I">!J2G`>EI0'H:\$.?!GPH59W3`/%NCC.E]J;<%-<MXAT('0]"]A_D MX.0+?""QK/*^B7/?0Z<;Z?J'!=@)1SK\L:^/<R7PF_K.Z;L\\O*><JB;YSR$ M-")W,26"\';Z;3OW;UD=<W#-].!AG!$%B;H3>?%?Z9,^Z9,^Z9,^Z9,^Z9,^ MZ9,^Z9,^Z9,^Z9,^Z9,^Z9,^Z9,^Z9,^Z9,^Z9,^Z9,^Z9,^Z9,^Z9,^Z9,^ ,/^KS_RC_;+T`0`$` ` end