diff options
author | Peter Wemm <peter@FreeBSD.org> | 1996-05-04 07:22:23 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 1996-05-04 07:22:23 +0000 |
commit | 369dee27a38095a04cbcdab971ee5a44d002bcf9 (patch) | |
tree | e2ed2b657261333e0a31ba5afef466c804f5c85c | |
parent | c1e8e76993116fe1c8a47b7c92445c2033ba5b74 (diff) |
Import the user-mode parts of the v0.0.5alpha Stallion driver.vendor/stallion/v0_0_5_alphavendor/stallion
Submitted by: Greg Ungerer (gerg@stallion.oz.au)
(Note, patches to compile/install to follow)
Notes
Notes:
svn path=/vendor/stallion/dist/; revision=15606
svn path=/vendor/stallion/v0_0_5_alpha/; revision=15608; tag=vendor/stallion/v0_0_5_alpha
-rw-r--r-- | usr.sbin/stallion/bootcode/2681.sys.uu | 653 | ||||
-rw-r--r-- | usr.sbin/stallion/bootcode/cdk.sys.uu | 733 | ||||
-rw-r--r-- | usr.sbin/stallion/stlload/stlload.c | 564 | ||||
-rw-r--r-- | usr.sbin/stallion/stlstats/stlstats.c | 603 |
4 files changed, 2553 insertions, 0 deletions
diff --git a/usr.sbin/stallion/bootcode/2681.sys.uu b/usr.sbin/stallion/bootcode/2681.sys.uu new file mode 100644 index 000000000000..8da74933103d --- /dev/null +++ b/usr.sbin/stallion/bootcode/2681.sys.uu @@ -0,0 +1,653 @@ +begin 440 2681.sys +M```````````````````````````````````````````````````````````` +M``````!>`0`````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`-(1SV0``````````````````````````````````````!``````8V1K:"YC +M```F`````````````````(@5````````````````K@4```,``````````&YO +M(&-D,30P,"!D<FEV97(@:6YS=&%L;&5D`&YO(&5C8G5S(&1R:79E<B!I;G-T +M86QL960`;65M;W)Y(&UA;&QO8R!F86EL960```````!!4U-%4E1)3TX@1D%) +M3%5212!A="`E<R@E9"D*``"F`$E.1D]230!705).24Y'`$9!5$%,`%!!3DE# +M`$524D]2("5S.B`E<R@E9"DZ(``*`,8`S0#5`-L`X0`Q+C`N,P`H0RD@0V]P +M>7)I9VAT(%-T86QL:6]N(%1E8VAN;VQO9VEE<R`Q.3DS("T@,3DY-0`*"BTM +M+2TM+2TM+2TM+2TM+2`@4W1A;&QI;VX@26YT96QL:6=E;G0@0V]M;75N:6-A +M=&EO;G,@4')O8V5S<V]R("`M+2TM+2TM+2TM+2TM+2T*`"`@("`@("`@("`@ +M("`@("`E<PH*`"`@0F]A<F0@5'EP92`@("`@("`@("`@("`@("`@("`E,F0@ +M("`@("`@("`@("!#;V1E(%9E<G-I;VX@("`@("`@("`@("`@("`E<PH`("!- +M96UO<GD@5&]T86P@("`@("`@("`@(#!X)3`V;'@@("`@("`@("`@("!-96UO +M<GD@57-E9"`@("`@("`@("`@("`P>"4P-FQX"@`@($UE;6]R>2!&<F5E("`@ +M("`@("`@("`@,'@E,#9L>"`@("`@("`@("`@($UE;6]R>2!-87`@("`@("`@ +M("`@("`@(#!X)3`V;'@*`"`@0V]D92!3:7IE("`@("`@("`@("`@("`P>"4P +M-FQX("`@("`@("`@("`@1&%T82!3:7IE("`@("`@("`@("`@("`@,'@E,#9L +M>`H`("!#;V1E(%-E9VUE;G0@("`@("`@("`@("`@,'@E,#1X("`@("`@("`@ +M("`@1&%T82!396=M96YT("`@("`@("`@("`@("`P>"4P-'@*`"`@4W1A8VL@ +M4V5G;65N="`@("`@("`@("`@(#!X)3`T>"`@("`@("`@("`@($5X=')A(%-E +M9VUE;G0@("`@("`@("`@("`@,'@E,#1X"@H`("!!<WEN8VAR;VYO=7,@4&%N +M96QS("`@("`@("`@("`E9"`@("`@("`@("`@($%S>6YC:')O;F]U<R!0;W)T +M<R`@("`@("`@("`@("4R9`H`"BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2T*"@````$&`3`Q,C,T-38W.#EA8F-D968``!H$```_*T4K2RM1 +M*U<K72MC*VDK;RMU*WLK@2N'*XTKE"N;*Z(KJ2NP*[<KOBO%*\PKTRO:*^$K +MZ"OO*_8K_2L$+`LL$BP9+"`L)RPN+#4L/"Q#+$HL42Q8+%\L9BQM+'0L>RR" +M+(DLD"R7+)XLI2RL++,LNBS!+,@LSRS6+-TLY"SK+#(V.#$N8P``L`0````` +M````````,@```$L```!N````A@```)8```#(````+`$``%@"``"P!```"`<` +M`&`)``#`$@``@"4```!+````E@```.$``&``8`#@`&``8`#@`&``8`!@`&`` +MX`!@`&``8`#@`&``8``````````1`"(`,P`S`$0`50!F`*H`B`"9`+L`S`#, +M`,P``````!``@`"0```!$`&``9`!``(0`B`",`)``E`"8`)P`@``$`"``)`` +M``$0`2`!,`%``5`!8`%P`8`!D`&@`;`!P`'0`>`!\`$``A`"(`(P`D`"4`)@ +M`G`"@`*0`J`"L`)``$``FD=\0@``,"\`,?0Q``"4-18WUCBH2P`````````` +M`````"5D`"X```````````````#ZO``$,\".T([`N``!CM@SP([`)H$^``*G +M\G4G)H$^`@))H74>)H$^!`)28W45)H$^!@(A\74,)J$*`B:+'@P"ZV*0N5K0 +M,_:.QB:A```FB0X``+X`$(L6``".QB8Y#@``=`J!Q@`0@?X`@'+I,]*.PB:C +M``",R+M07(/C\,'K!`/80X[#)J$``":)#@``BQ8``"8Y#@``=0DFHP``0SO> +M<N$SP*,,`,<&#@```(O3P>($`18,`(,6#@``B]/!Z@P!%@X`H0P`BQ8.`+E0 +M7(D.&`"#P1^#X?"+\8OY*\&#V@#!Z`3!X@P+T(["3TZ,R([8_?.D_`9H^@#+ +MN``!CMBYH!Z+\8OYB]F)'B0``QX@`(/##X/C\(O#P>@$*]".PDY/_?.D_(S` +MCMB.P([0B^.#[`2_X`4SP+F@'HD.'``KS_SSJHS(HP8`C-BC!``NHW`!C-"C +M"@",P*,(`(S8P>`$HQ0`C-C!Z`RC%@#HRAWK_@``R`0``%=6BT8(F8L>#@<Y +M5Q!R;W<%.4<.<FB+=P29B_B+V@-^!!->!H/O`8/;`(O."LET"-'KT=_^R77X +MB\>9B\^+VHM&!(M6!HE._(E>_HO."LET"-'JT=C^R77X.T;\=04[5OYT.8O' +MF8O."LET"-'@T=+^R77XB48$B58&ZR"0D)DY5Q!W&'(%.4<.<Q%HWP#_-BX` +M_S;$`.@Y(H/$!HM&!(M6!EY?R</($```5U:+'@X'BT<2BU<4B4;ZB5;\H10` +MBQ86`#E6_'(==P4Y1OIV%BM&!!M6!M'JT=@#1@035@:)1OJ)5OR+1OJ+5OPK +M1@0;5@:)1O")5O(K_XM'#HM7$(E&](E6]CO7=00[QW0-4E#_=O+_=O#H>%B+ +M^`O_=`B+1O8+1O1U#[\!`(M&\(M6\HE&](E6]HM&"-'@`\<KTO?WB_`+]G4# +MO@$`:@!6_W;V_W;TZ#M8B4;XBT8(T>`#QVH`4/]V\O]V\.@E6(E&_HM&^#E& +M_G8&BT;^B4;X/8``<P7'1OB``(M&^%Y?R<.0R!P``%=6QT;N``/'1O```,<& +MFAZ``L<&G!X``,0>FAXFBT<$HYX>)HI''"4!`#T!`!K`_L"B5@`FBT<2)@M' +M$'0*)HM'$*/L!NB>&(M&[HM6\-'JT=C1ZM'8T>K1V-'JT=B*3NZ#X0^)#NX& +MH_`&@4;N@`"#5O``:(``4%'HV2:#Q`;$'NX&)L='!@$`Q![N!B;'1T+_`,0> +M[@8FQD=,`<0>[@8FQD=-`,0>[@8FQD=.`,0>FAXFBT<,B4;DBQX.!XL'+1<` +M?`1(2'X.H4H`HY`>QP9D'H93ZQ)H5P!H9`'_-BX`:@+H91J#Q`B+1N1`H^(% +MQ![N!B:)1U*AX@5(F3/"*\+!^`,SPBO"0*-4'J'B!04'`)DSPBO"P?@#,\(K +MPD`D_HE&[(M&[HM6\,0>[@8FB4=8)HE76HM&["O2`4;N$5;PBT;NBU;PQ![N +M!B:)1UPFB5=>BT;L*](!1NX15O!0Q![N!B:+1U@FBU=:T>K1V-'JT=C1ZM'8 +MT>K1V":*5UB#X@^+RE!1Z,TE@\0&_W;LQ![N!B:+1UPFBU=>T>K1V-'JT=C1 +MZM'8T>K1V":*5UR#X@^+RE!1Z)TE@\0&H>(%B4;LN`8`]V;LB4;LBT;NBU;P +MQ![N!B:)1U0FB5=6BT;L*](!1NX15O#$'NX&)HM'5":+5U;1ZM'8T>K1V-'J +MT=C1ZM'8)HI/5(/A#XE.Z(E&ZO]V[%!1Z#TE@\0&BQX.!XL'+1<`?`1(2'X( +MQP90```#ZQ#'!E````&+'@X'@W\H`'0(QT;\`0#K!I#'1OP"`&B2`/]V\/]V +M[N@/_(/$!HE&[HE6\(M&_,1>Z":)!XM&[HM6\,1>Z":)1P(FB5<$:)(`BT;N +MBU;PT>K1V-'JT=C1ZM'8T>K1V(I6[H/B#XO*4%'HL22#Q`:!1NZ2`(-6\`"# +M1N@&BQX.!X-_*`!^$(M&Y"M'*)GW?RB)1O3K!I#'1O0``(-^]`!]!<=&]``` +MQT;^``#'1N8``"OVZ0(!D(M^_M'GBT$8BT[T0??I.T;F?@O$7N@FQP<`!.L) +MD,1>Z";'!P``BT;NBU;PQ%[H)HE'`B:)5P1HO`"+1NZ+5O#1ZM'8T>K1V-'J +MT=C1ZM'8BE;N@^(/B\I04>@*)(/$!H%&[KP`@U;P`/]&YHM^_M'GBQX.!XM! +M&(M.]$'WZ3M&YG]YQT;F``#_1OZ#?OX(?&O$'IH>)HM'%(E&\B:+1QB)1O:# +M?O(`=`D+P'4%QT;V``&#?O8`=`N#?O(`=07'1O(``8-^\@!U&X-^]@!U%?]V +MY/]V\/]V[NA+^X/$!HE&\HE&]L0>[@8FBT=4)HM75HE&Z(E6ZBOVZT60D$:# +M1N@&.7;D?HMHO`#_=O#_=N[H:OJ#Q`:)1NZ)5O"+1N:+?O[1YXL>#@<Y01A_ +M`^G1_L1>Z";'!R``Z>S^1H-&Z`8Y-N(%?P/IH@#$7N@F]P?@_W3H)HM'`B:+ +M5P31ZM'8T>K1V-'JT=C1ZM'8)HI/`H/A#XE.^(E&^O]V\O]V\/]V[NCY^8/$ +M!HE&[HE6\,1>^":)A[(`)HF7M`"+1O+$7O@FB8>V`(M&\BO2`4;N$5;P_W;V +M_W;P_W;NZ,'Y@\0&B4;NB5;PQ%[X)HF'I@`FB9>H`(M&]L1>^":)AZH`BT;V +M*](!1NX15O#I4/]J`&H$:+P*:@SH6":#Q`B+1NZ+5O"C4`:)%E(&HQ``B182 +M`"O`7E_)PY#(%@``5U9K!N(%*E#H'1J#Q`*C"`:)%@H&BQZ0'O\7H0H&"P8( +M!G42:(P`:#<"_S8N`&H"Z!$6@\0(:P;B!2I0_S8*!O\V"`;H""*#Q`;$'NX& +M)HM'5":+5U;1ZM'8T>K1V-'JT=C1ZM'8)HI/5(/A#XE.[HE&\,=&]#``H0@& +MBQ8*!HE&^HE6_,=&_O__QT;R`0`K_ROVZ8@!)HM'!":+5P:)1NJ)5NS$7NHF +MBX>R`":+E[0`T>K1V-'JT=C1ZM'8T>K1V":*C[(`@^$/Q%[Z)HE/"":)1PK$ +M7NHFBX>F`":+EZ@`T>K1V-'JT=C1ZM'8T>K1V":*CZ8`@^$/Q%[Z)HE/#":) +M1P[$7OHF]T<FX`-U`^FG`(-^\@!U`^F>`/]&_HM>_M'CB;?:!HM&_HL>#@<Y +M1Q9^!3T(`'Q\BQX.!XM?%M'CB;?:!L0>[@8FBT=8)HM76M'JT=C1ZM'8T>K1 +MV-'JT=@FBD]8@^$/B0Y6'J-8'B:+1UPFBU=>T>K1V-'JT=C1ZM'8T>K1V":* +M3UR#X0^)#O(&H_0&QT;V8@+'1O@``,1>]B;&!PW$7O8F@#\`=0/IY`#K\BO_ +MB7[RB\<JY)F+R(I&_HO:F8/*_XKRBM2*X"K`"\$+T\1>^B:)!R:)5P*+'I`> +M@W\"`'08C4;T4,1>^B;_=P(F_S>+'I`>_U<"@\0&1XM>_M'C`QX.!SE_&'\% +MQT;R`0!&@T;Z*H-&[@8Y-N(%?P/I$?_$7OHFB7<DQ%[N)HL'Q%[Z)HE')L1> +M[B:+1P(FBU<$T>K1V-'JT=C1ZM'8T>K1V":*3P*#X0_$7OHFB4\$)HE'!HO& +MP>`#F?<^X@6+R+`!TN#$7OHFB$<HQ%[Z)O9')A]UC":#?R8`=`/I`_[I?__$ +M'NX&)H-_0@!U!L<&4````"O`7E_)PY#(#```5U;$'NX&)H-_4`!T0J&B`/\& +MH@`]9`!V"O\&I`#'!J(````F@']/`'0+QP:D````)L9'3P"AI`#$'NX&)CE' +M4'<-Z#<0Q![N!B;'1U```,0>[@8F@']A`'1>*__K)H5V^'03:\`J`P8(!HL6 +M"@924.@-`8/$!/]&^M'FBT;Z.4;^?]M'.3Y4'GXNQ![R!B:*`9B)1O@+P'3J +MB\?!X`.)1OH%"`")1OZAX@4Y1OY^`XE&_KX!`.O$D,0>[@8F@']@`'4#Z8<` +MQT;V```K_^M`D(5V^'0L:\`J`P8(!HL6"@924.CS!X/$!`O`?15K7OHJ`QX( +M!HX&"@8FBD<H*N0)1O;_1OK1YHM&^CE&_G_"1SD^5!Y^+<0>5AXFB@&8B4;X +M"\!TZHO'P>`#B4;Z!0@`B4;^H>(%.4;^?@.)1OZ^`0#KQ(I&]L0>[@8FB$=@ +M@SY0``!T&8,^4@``=!)J`/\V4`#HX1V#Q`3'!E(```"+'I`>@W\4`'0#_U<4 +M*\!>7\G#R"H``%=6Q%X$)HM'!":+5P:)1NB)5NHF]D<F'W0,)HI')BO2M/\* +M].L')HL')HM7`HE&_(E6_L1>Z":`/P!U`^EL`2:+1P(FBU<$B4;@B5;B*\`F +MB4<$)HE'`L1>Z";&!P"+'I`>.4<&=#O$7N@F_W<$)O]W`O]V_O]V_(L>D![_ +M5P:#Q`B+^(/_`70F"_]\`XU%`8E&WIG$7N@FB4<")HE7!.L.D,1>Z";'1P(! +M`":)1P2+'I`>@W\*`'4#Z;H`C4;LB\B+%@0`4E%J`&@-8?]V_O]V_(L>D![_ +M5PJ#Q`R+^(/_`741:/\"_S8N`/\VQ`#H$Q>#Q`8+_WQ^]D;P!'4B@$[P!,1> +M!":`3Q`(Q%[H)HN'M@"Y!0`KTO?QQ%X$)HE'$O9&\`)U#(!.\`+$7@0F@$\0 +M$/9&\0%U#(!.\0'$7@0F@$\0@,1>!";V1Q"8=""-1NR+R(L6!`!246H`:`YA +M_W;^_W;\BQZ0'O]7"H/$#,1>!":`9Q";QP92``$`Q%X$)HI/)(#A![`!TN`F +MBU\DP>L#`QY6'HX&6!XF"`?$7@0FBD<HQ![N!B8(1V#$7N@FBT<,)@M'"G4# +MZ>("Q%[H)HM'"B:+5PR)1N")5N*+1N"+5N(F.4<*=>,F.5<,==TKP":)1Q`F +MB4<.Q%[H)HE'#":)1PJ)1N2+1N#I4@&0D(M&Z(M6Z@42`(E&VHE6W,1>VB;V +M1P0$=1/$7@0F@$\0",1>VB:`3P0$ZPF0Q%X$)H!G$/?$7MHF]D<$`G42Q%X$ +M)H!/$!#$7MHF@$\$`NL(Q%X$)H!G$._$7MHF]D<%`744Q%X$)H!/$(#$7MHF +M@$\%`>D'`9#$7@0F@&<0?^G[`)#$7N@FBT<2B4;D_W;D_W8&_W8$Z+0+@\0& +MZ=X`QT;D`@"!?N`,874&@W[B`'0-@7[@"F%UU8-^X@!USX!.Y`'KR9#'1N0" +M`(%^X`=A=0:#?N(`=`V!?N`%874*@W[B`'4$@$[D`?]VY/]V!O]V!.A9"X/$ +M!HM&Z(M6Z@42`(E&VHE6W,1>Z":+A[8`Q%[:)CE')'(1Q%[H)HN'M@!(2,1> +MVB:)1R3$7MHF@W\D`'41Q%[H)HN'M@"Y!0`KTO?QZP0FBT<DQ%X$)HE'$NLM +MD"T!83T-`'<DT>"3+O^GH@_$#KX/O@\X#P8/!@\+#[X/O@_@#N`.Y0Z^#T(. +MBQZ0'H-_"@!U`^G/`/]VXO]VX.BB"H/$!`O`=`W$7N@FBT<2)HM7%.L)BT;H +MBU;J!1(`B4;:B5;<4E#_=N+_=N#_=O[_=OR+'I`>_U<*@\0,B_@+_W5CBT;@ +M+1)A=5N+1NB+5NH%$@")1M:)5MB+1N@%L@!24.C'!(/$!,1>UB8!!XM&Z(M6 +MZ@6F`%)0Z&X$@\0$Q%[6)@%'`L1>Z":+A[8`2,1>UB8!1P3$7N@FBX>J`$C$ +M7M8F`4<&@_\!="\+_WP%C44!ZP*+QXE&UIG$7N@FB4<.)HE7$.L3D,1>Z";' +M1PX!`";'1Q```+___\<&4@`!`,1>!":*3R2`X0>P`=+@)HM?),'K`P,>5AZ. +M!E@>)@@'Q%X$)HI'*,0>[@8F"$=@Q%X$)O9'$0%T3\=&\`(`QT;R```KP(E& +M]HE&](E&[HE&[":`9Q'^Q%X$)H!/$"#'!E0``0"-3NR+%@0`4E%J`&@/8<1> +M!";_=P(F_S?H5P2#Q`S'!E0```#$7@0F]D<0!'0#Z:@!BT;HBU;J!;(`4E#H +MJ0.#Q`2+\`OV?P/IC@'$7@0F.7<2=P4F@&<0W\1>!":`9Q"_@#Y6``!T*(L> +MD!Z#?PH`=!Z-1N`64&H`:!-A_W;^_W;\BQZ0'O]7"H/$#`O`=`@KP(E&XHE& +MX(M&X@M&X'0#Z38!BQZ0'H-_$`!U`^DI`<1>Z":+A[8`)HN/N@`KP3O&=P\F +MBX>Z`":+O[8`*_CK`Y"+_E?$7@0FBT<()HM7"L1>Z":+C[H``\%24/]V_O]V +M_(L>D![_5Q"#Q`J)1M8+P'T%QT;6```Y=M9],SE^UG4NB\8K1M90Q%X$)O]W +M"B;_=PC_=O[_=OR+'I`>_U<0@\0*B_@+_WT"*_\!?M;K`BO_@W[6`'\#Z8X` +M.7;6=`C$7@0F@$\0!"MVUL1>Z":+A[H``4;6BT;6)CF'M@!W`XE^UHM&UB:) +MA[H`Q%X$)CEW$G95)O9'$"AU3BO`B4;RB4;PB4;VB4;TB4;NB4;L)O9'$"!U +M"8!.\`0F@$\0(,<&5``!`(U.[(L6!`!246H`:`]AQ%X$)O]W`B;_-^BB`H/$ +M#,<&5````,1>Z":`?P$`=0/IE@`FBT<&)HM7"(E&X(E6XBO`)HE'"":)1P;$ +M7N@FQD<!`(L>D!XY1PAT*_]V_O]V_/]7"(/$!(OX@_\!="4+_WP#C44!B4;6 +MF<1>Z":)1P8FB5<(ZPW$7N@FQT<&`0`FB4<(QP92``$`Q%X$)HI/)(#A![`! +MTN`FBU\DP>L#`QY6'HX&6!XF"`?$7@0FBD<HQ![N!B8(1V`KP%Y?R</(!``` +M5L1>!":+1P0FBU<&B4;\B5;^Q%[\)H"_D@``=`>X__]>R<.0Q%X$)O9'$`%T +M0&H0!90`4E"+PXS"!10`4E#H3!:#Q`K$7@0FBD<0)((\`G4)Q%[\)H"/F0`! +MQ%[\)L:'D@`!Q%X$)H!G$/[KL)`FBD<0)((\`G4\:A"+1OP%E`!24.@\%H/$ +M!L1>_":`CYD``8M&_(M6_@64`%)0:@!H#V'$7@0F_W<")O\WZ#X!@\0,Z6G_ +MQ%[\)HM'!"8+1P)T`^E9_R:+1P@F"T<&=`/I3/\FBT<0)@M'#G0#Z3__Q%X$ +M)O9')A]U%8M&_`6F`%)0Z"T`@\0$"\!T`^D@_\1>!":*3R2`X0>P`=+@]M`F +MBU\DP>L#Q#96'B8@`"O`7LG#R`(``%=6Q%X$)HMW"":+?P@[_G0*B_<FBW\( +M._YU]B:+1P:)1OXY=OYR"8M&_BO&7E_)PR:+1P0KQ@-&_EY?R<.0R`(``%=6 +MQ%X$)HMW!B:+?P8[_G0*B_<FBW\&._YU]B:+1PB)1OXY=OYW"8O&*T;^7E_) +MPR:+1P0K1OX#QEY?R<.058OL5HMV"(/^`74@BT8$BU8&!;(`4E#HI/^#Q`3$ +M7@0F*X>V`/?82%[)PY"+1@2+5@8%I@!24.A"_X/$!,1>!"8KAZH`Z]Z0R!0` +M`%=6@WX$_W4&@WX&_W03BT8$BU8&*M(]__]U'X'Z`/]U&6C&!/\V+@#_-L0` +MZ(T.@\0&N/__7E_)PY"+5@8JP"K2/0#_=48[T'5"*_;K`48Y-N(%?A:*1@0J +MY&O>*@,>"`:.!@H&)CE')G7CBD8$*N1KWBH#'@@&C@8*!B8Y1R9T!6C/!.N> +M:\8JZUV0BT8$BU8&BL2*UBKV*N2)1OZ*1@2)1O"#?OX`?`R+1OZ+'@X'.4<6 +M?P=HUP3I:?^0B]C1XXNWV@:#?O``?!"+1O`#QHM>_M'C.8?<!G\&:-P$Z43_ +MBT;P`\9KP"H#!@@&BQ8*!HE&\HE6],1>\B:+1P0FBU<&B4;ZB5;\@7X(#V%T +M`^GY`H-^"@!T`^GP`HM&#@M&#'42BT8."T8,=`/I!?]HY@3I\?Z0BT8,BU8. +MB4;VB5;X)O9')A]T`^D&`2;V1Q`"=0W$7O8F]D<%`74#Z?(`:@#_=OS_=OKH +M2_Z#Q`:)1NP+P'4+Q%[R)H!/$`+IT@#$7OHFBX>J`":+CZP`*\$[1NQW#B:+ +MAZP`)HN_J@`K^.L#BW[L5R:+AZP`Q%[R)@-'#":+5PY24/]V!O]V!(L>D![_ +M5PZ#Q`J+\`OV?0(K]@OV?C([_G4NBT;L*\90Q%[R)O]W#B;_=PS_=@;_=@2+ +M'I`>_U<.@\0*B_@+_WT"*_\#]^L#D"O_.7;L?B%J`/]V!O]V!(L>D![_5Q*# +MQ`8+P'4+Q%[R)H!G$/WK"9#$7O(F@$\0`@OV?AC$7OHFBX>L``/P)CFWJ@!W +M`HOW)HFWK`"#/E0``'0#Z:``Q%[V)O='!`8!=0/ID@`F]D<$!G0(Q%[R)H!G +M$/O$7O8F@&<$^\1>]B;V1P0"=!6+1OJ+5OP%L@!24.C;_(/$!`O`?PK$7O(F +M]D<00'0(Q%[V)H!G!/W$7O(F]D<0$'0(Q%[V)H!G!/W$7O(F]D<0@'0(Q%[V +M)H!G!?[$7O8FBT<")@L'=1HFBT<*)@M'"'40)HM'!B8+1P1U!BO`7E_)P\1> +M^B:`OY(``'4#Z:H`Q%[R)O9'$`%U$6H0B\.,P@44`%)0Z+$1@\0&Q%[V)HL' +M)HM7`L1>\B8)1Q0F"5<6Q%[V)O9'!!YT",1>\B:`9QCAQ%[V)O9'!1YT",1> +M\B:`9QGAQ%[V)HM'!":+5P;$7O(F"4<8)@E7&L1>]B:+1P@FBU<*Q%[R)@E' +M'"8)5Q[$7O8FBT<*)@M'"'03)HM'#":+5P[$7O(FB4<@)HE7(L1>\B:`3Q`! +MZR!J$(O#C,(%E`!24/]V#O]V#.C7$(/$"L1>^B;&AY(``<<&4@`!`,1>\B:* +M3R2`X0>P`=+@)HM?),'K`P,>5AZ.!E@>)@@'Q%[R)HI'*,0>[@8F"$=@Z8$` +M@7X(`&=U(X-^"@!U'8-^#@!\`_]&#(M&#(M6#L1>^B:)1PXFB5<0ZUB0@7X( +M`6=U(X-^"@!U'8-^#@!\`_]&#(M&#(M6#L1>^B:)1P(FB5<$ZRZ0@7X(`F=T +M`^G*^X-^"@!T`^G!^X-^#@!\`_]&#(M&#(M6#L1>^B:)1P8FB5<(QP92``$` +MQ%[R)HI/)(#A![`!TN`FBU\DP>L#`QY6'HX&6!XF"`?$7O(FBD<HQ![N!B8( +M1V"#/E```'4#Z2K^@SY2``!U`^D@_FH`_S90`.B<#X/$!,<&4@```.D+_I!5 +MB^R+1@0M`&%\"4A(?P6X`0#)PRO`R</("```5HMV".C"$HE&^,1>!":+1P0F +MBU<&B4;ZB5;\]\8!`'0JQ%[Z)HN'K``FB8>N`,1>^B:+AZX`B4;^BT;^)CF' +MK`!UWL1>!":`9Q#]]\8"`'1+Q%X$)O9'$!!U%\1>^B:+A[@`)CF'N@!T",1> +M!":`3Q$!Q%[Z)HN'N``FB8>Z`,1>^B:+A[@`B4;^BT;^)CF'N@!UWL1>!":` +M9Q";_W;XZ#82@\0"*\!>R</($```5U;H%A*+^*$(!HL6"@:)1OR)5OZ+P@M& +M_'4'*\!>7\G#D&H,C4[PBQ8$`%)1Z.T.@\0&QT;T___'1O;__ROVZUR0Q%[\ +M)O9')B!T+HL>D!Z#?PH`="2-1O"+R(L6!`!246H`:`EABU[\)O]W`B;_-XL> +MD![_5PJ#Q`R+'I`>@W\(`'04Q%[\)O]W`B;_-XL>D![_5PB#Q`1&@T;\*CDV +MX@5_GU?H@Q&#Q`+I;O^0R`H``%;'!@X'9A['1OP``L=&_@``Q%[\)H$_I_)T +M`^DG`2:!?P))H70#Z1P!)H%_!%)C=`/I$0$F@7\&(?%T`^D&`2:+1Q2C9A[K +M3L<&>!X``,<&>AX!`,<&=!X`0,<&=AX``,<&:AX.`.M2QP9X'@``QP9Z'@$` +MQP9T'@``QP9V'@$`QP9J'A``ZS+'!G@>``#'!GH>`@#KWD@]"@!W'M'@DR[_ +MIY8<6APZ'%H<6APZ'#H<>ARL'%H<6AQ:',<&:!X!`,1>_":#?Q@`=08FQT<8 +M4`!J`6B@AL1>_&H`)O]W&.B9/J-L'HD6;AYJ`&H$4E#HV3RC<!Z)%G(>Q%[\ +M)H-_&@!T$":+1QJ)1O;'!HX>$`#K#I`FBT<.B4;VQP:.'@``*_;K`I!&@_X0 +M?0N+SHM&]M/@"\!U[P$VCA['!GP>`0"ACAZC?A['1O@``L=&^@``Q%[X)H$_ +M14-T`^G^`":!?P)0(70#Z?,`QP9F'A<`@S[L!@!T'8,^[`88=0G'!F8>&`#K +M#I"#/NP&&74&QP9F'AD`H68>+1@`=!7'!G0>`!#'!G8>``#'!FH>#`#K$Y#' +M!G0>``#'!G8>`0#'!FH>$`#'!G@>``#'!GH>`@#$7O@FBT<&HV@>QP9L'D!X +MQP9N'GT!:@!J!/\V;A[_-FP>Z-D[HW`>B19R'L<&CAX``,<&?!X``"OVZQ:# +M!HX>"(L>?![1X\>'?AX(`/\&?!Y&@_X(?3?$7OB#PP@FB@`JY(E&]CW_`'0D +MBD;V)0<`.\9U&O9&]B!TPH,&CAX0BQY\'M'CQX=^'A``1NN_*\!>R<.058OL +M_W8(_W8&BUX$T>/_M_8`_S;^`.C=!8OEC48,4/]V"FH`:@#H"0:+Y6CT`.B' +M!2O`R<.0:#8!Z+H%@\0"_S88!&B)`>BM!8/$!/\V%@3_-F8>:)X!Z)P%@\0& +M_S:6'O\VE![_-@X`_S8,`&CK`>B#!8/$"O\V4@;_-E`&_S;^!O\V_`9H.`+H +M:@6#Q`K_-AX`_S8<`/\V&@#_-A@`:(4"Z%$%@\0*_S8$`/\V!@!HT@+H0`6# +MQ`;_-@@`_S8*`&@A`^@O!8/$!O\VCA[_-GP>:'$#Z!X%@\0&:,(#Z!4%@\0" +MPY#HL_SH6`[H-0OHP./H#P#HP.CH.__HH@WI>PJ0PY#(!```H10`BQ86`"L& +M$``;%A(`H_P&B1;^!J$,`(L6#@`K!OP&&Q;^!J.4'HD6EAZA$`"+%A(`T>K1 +MV-'JT=C1ZM'8T>K1V(H.$`"#X0^)3OR)1OZA_`:+%OX&Q%[\)HD')HE7`L1> +M_"O`)HE'!B:)1P3$7OPFB4<*)HE'"(M&_(M6_J,*!XD6#`>C7!Z)%EX>*\#) +MPY#(!```H0H'BQ8,!^L)D":+1P0FBU<&B4;\B5;^B\(+1OQT%HM&!(M6!L1> +M_"8Y5P)RW'<%)CD'<M6+1OR+5O[)PY#(!```BT8&"T8$=%>A"@>+%@P'Q%X$ +M)HE'!":)5P;$7@0KP":)1PHFB4<(H0P'"P8*!W40BT8$BU8&HUP>B19>'NL3 +MD(M&!(M6!L0>"@<FB4<()HE7"HM&!(M6!J,*!XD6#`<KP,G#D%6+[(M&!@M& +M!'1GQ%X$)HM'"B8+1PAU$B:+1P0FBU<&HPH'B18,!^L5D":+1P0FBU<&)L1? +M"":)1P0FB5<&Q%X$)HM'!B8+1P1U$R:+1P@FBU<*HUP>B19>'BO`R<,FBT<( +M)HM7"B;$7P0FB4<()HE7"BO`R</(%```BT8$BU8&@.0/BL2*XHK6*O;1ZM'8 +MT>K1V-'JT=C1ZM'8`T8$@](`B4;XB5;ZQ%X$)HL')HM7`@-&^!-6^HE&[(E6 +M[J$*!XL6#`?K2(M&](M6]CE&^'4U.5;Z=3#$7@0FBP<FBU<"Q%[\)@$')A%7 +M`O]V_O]V_.@-_X/$!(M&_(M6_HE&!(E6!NF(`)`FBT<$)HM7!HE&_(E6_HO" +M"T;\='*+1OR`Y`^*Q(KBBM8J]M'JT=C1ZM'8T>K1V-'JT=@#1OR#T@")1O") +M5O+$7OPFBP<FBU<"`T;P$U;RB4;TB5;VBT;PBU;R.4;L=`/I7?\Y5NYT`^E5 +M_P93Z(K^@\0$Q%[\)HL')HM7`L1>!"8!!R815P*+1OX+1OQT`^GB_HM&!(M6 +M!LG#R!(``(M&!`4%`"3^B48$+0P`&\GWT2/!!0P`B4;TQT;V``#H_PJ)1O+_ +M=O;_=O3HA/V#Q`2)1OR)5OZ+P@M&_'4._W;RZ.P*@\0"*\"9R<-2_W;\Z`G^ +M@\0$BT;\BU;^B4;NB5;PQ%[\)HL')HM7`BM&]!M6]HE&^(E6^@O2=04]#`!R +M98O#C,*`Y`^*Q(KBBM8J]M'JT=C1ZM'8T>K1V-'JT=@#PX/2``-&]!-6]M'J +MT=C1ZM'8T>K1V-'JT=B*3OP"3O2#X0^)3OR)1OZ+1OB+5OK$7OPFB0<FB5<" +M_W;^_W;\Z!']@\0$_W;RZ$0*BT;TBU;VQ%[N)HD')HE7`H-&[@2+1O2+5O8! +M!I0>$1:6'BD&_`89%OX&BT;NBU;PR</(#@``BT8$BU8&@.0/BL2*XHK6*O;1 +MZM'8T>K1V-'JT=C1ZM'8`T8$@](`.182`'<6<@8Y!A``=PXY%A8`=PUR!CD& +M%`!S!;C__\G#@VX$!(M&!(M6!HE&\HE6],1>\B:+!R:+5P*)1OR)5O[HE`F) +M1O;_=O3_=O+H.?V#Q`2)1O*+P@M&\G0*4O]V\NA'_(/$!/]V]NAZ"8M&_(M6 +M_BD&E!X9%I8>`0;\!A$6_@8KP,G#58OL@SZ>'@!T$(,^9!X`=`G_=@1J`/\6 +M9!XKP,G#58OL@SZ>'@!T$8,^9!X`=`K_=@;_=@3_%F0>*\#)PY!5B^R-1@90 +M_W8$:@!J`.@K`,G#D%6+[(U&"%#_=@;_=@1J`.@6`,G#58OLC48(4/]V!FH` +M_W8$Z`(`R</(#@``5U:+1@J)1O*+7@C_1@B*!YB+^(/_)70R"_]U$CE^!G0& +MBUX&Q@<`*\!>7\G#D(-^!@!T"HM>!H@'_T8&Z\I7_W8$Z%O_@\0$Z[Z+7@B` +M/R5U$H-^!@!T"(M>!L8')>O9:B7KVX`_+74+_T8(QT;V`0#K!I#'1O8``(M> +M"(`_,'4+_T8(QT;\`0#K!I#'1OP``(M>"(`_*W4+_T8(QT;Z`0#K!I#'1OH` +M`(M>"(`_('4+_T8(QT;T`0#K!I#'1O0``(M>"(`_(W4#_T8(*_;K%8/_.7\@ +MB\;!X`(#QM'@`\<M,`"+\(M>"/]&"(H'F(OX@_\P?=N#_RYU%8M>"/]&"(H' +MF(OX@_\P?`6#_SE^ZSUD`'4#Z?L`?@/I#`(]50!U`^DC`7X#Z><!+40`=0/I +M%@$M"P!U`^D.`>D<`H-^]@!U+,=&^`$`ZP^0:B#_=@3H3OZ#Q`3_1O@Y=OA] +M$8-^!@!TYXM>!L8'(/]&!NOG@WX&`'0>BU[RB@>+7@:(!_]&!H-^]@!U`^G. +M`<=&^`$`ZR.0BU[RB@<JY%#_=@3H`/Z#Q`3KW)!J(/]V!.CR_8/$!/]&^#EV +M^'P#Z9P!@WX&`'3DBUX&Q@<@_T8&Z^20:@!J`/]V]O]V_%9J`HM>\FH`_S>- +M1@90_W8$Z'0!@\04Z68!:@!J`/]V]O]V_%9J$.O:D&H`:@#_=O;_=OQ6:@CK +MRI#_=O3_=OK_=O;_=OQ6:@J+7O*+!YE24.NWD&H`:@#_=O;_=OQ6:@KKH)"+ +M7@C_1@B*!YB+^(/_07P(@_]:?P.#QR"+QSUI`'17?VTM8@!T!DA(=$SK(FH` +M:@#_=O;_=OQ6:@*+7O+_=P+_-XU&!E#_=@3HV0"#Q!2#1O("Z<<`D&H`:@#_ +M=O;_=OQ6:A#KU)!J`&H`_W;V_W;\5FH(Z\20_W;T_W;ZZP1J`&H`_W;V_W;\ +M5FH*ZZR0+6\`=-,M!@!TYBT#`'2YZZ^0BU[RBP>)1OZ+7O[_1OZ*!YB+^`O_ +M=&6#?@8`=`N+7@:(!_]&!NOAD%?_=@3HE?R#Q`3KU"U8`'4#Z2__+0H`=0/I +MKOY(=0/I%O[K,"UI`#T/`'<HT>"3+O^GP">:)N`GX"?$)N`GX">*)N`GX"?@ +M)V0GX">T)N`GX"=Z)H-&\@+IJ?R0R"8``%=6BT8(BU8*B4;\B5;^"])]"O=> +M_(-6_@#W7OXK]HM&#)E24/]V_O]V_.A',HO8`QXL!(H'B$+<1HM&#)E24(U& +M_%#H2#&#?OX`?])\!H-^_`!URH-^"@!]#X-^%`!U!H-^%@!T`_].#H-^$@!U +M,8-^$`!U*XO^ZPV0:B#_=@3HNON#Q`1'.7X.?A6+7@:#/P!TYXL?Q@<@BUX& +M_P?KYI"#?A8`=0:#?A0`=!B#?@H`?1*+7@:#/P!T*HL?Q@<MBUX&_P>#?A0` +M=#.#?@H`?"V+7@:#/P!T&HL?Q@<KBUX&_P?K&6HM_W8$Z%#[@\0$Z].0:BO_ +M=@3H0ON#Q`2#?A8`=!Z#?A0`=1B#?@H`?!*+7@:#/P!T&XL?Q@<@BUX&_P># +M?A(`=3^#?A``=#F+_NL;D&H@_W8$Z`+[@\0$Z^*0:C#_=@3H]/J#Q`1'.7X. +M?A6+7@:#/P!TYXL?Q@<PBUX&_P?KYI"-1/^)1MKK&(M>VHU&W`/8B@>84/]V +M!.B\^H/$!/].VH-^V@!\((M>!H,_`'3:BU[:C4;<`]B*!XM>!HL?B`>+7@;_ +M!^O7@WX2`'0JB_[K#&H@_W8$Z'[Z@\0$1SE^#GX5BUX&@S\`=.>+'\8'((M> +M!O\'Z^:0*\!>7\G#@P80!P&#%A('`.OT````````^KHB_[@`@.^Z*/^P;>[K +M`+IF_S/`[^L`,\".V([0CL#J``#__XO<BU<"BD<$[L.+W(M7`C/`[,.+W(M7 +M`HM'!._#B]R+5P+MPU6+[%97'@;$?@C%=@2+3@R+QC/'J0$`=1/WQ@$`=`8+ +MR70+I$G1Z?.E@]$`\Z0''U]>7<-5B^Q7!L1^!(M."#/`T>GSJW,!J@=?7<,` +MR`(``&H`:F3_-G(>_S9P'NA],(E&_F@!X&AF_^B#_X/$!/]V_FAB_^AW_X/$ +M!&H`:@1HK%MJ$^B4`X/$"-%N_O]V_FA@_^A9_X/$!.L*@P8"!P&#%@0'`&A@ +M_^A._X/$`CM&_G?HZPJ#!@('`8,6!`<`:&#_Z#3_@\0".T;^<NAJ"&@"!^B> +M+BO`R<,``````````````````!X&4RZ.'G`!NBK_[5"+AUH&[_O_!F(>_Y?4 +M'?JZ(O^X`(#O6+HJ_^^#Q`(''V'/8+L``.O+8+L"`.O%8+L$`.N_8+L&`.NY +M8+L(`.NS8+L*`.NM8+L,`.NG8+L.`.NA8+L0`.N;8+L2`.N58+L4`.N/8+L6 +M`.N)8+L8`.N#8+L:`.E\_V"['`#I=?]@NQX`Z6[_8+L@`.EG_V"[(@#I8/]@ +MNR0`Z5G_8+LF`.E2_V"[*`#I2_]@NRH`Z43_8+LL`.D]_V"[+@#I-O]@NS`` +MZ2__8+LR`.DH_V"[-`#I(?]@NS8`Z1K_8+LX`.D3_V"[.@#I#/]@NSP`Z07_ +M8+L^`.G^_F"[0`#I]_Y@NT(`Z?#^8+M$`.GI_F"[1@#IXOY@NT@`Z=O^8+M* +M`.G4_F"[3`#IS?Y@NTX`Z<;^8+M0`.F__F"[4@#IN/Y@NU0`Z;'^8+M6`.FJ +M_F"[6`#IH_Y@NUH`Z9S^8+M<`.F5_F"[7@#ICOY@NV``Z8?^8+MB`.F`_F"[ +M9`#I>?Y@NV8`Z7+^8+MH`.EK_F"[:@#I9/Y@NVP`Z5W^8+MN`.E6_F"[<`#I +M3_Y@NW(`Z4C^8+MT`.E!_F"[=@#I.OY@NW@`Z3/^8+MZ`.DL_F"[?`#I)?Y@ +MNWX`Z1[^^KHJ_^V+V+@'`._[B\/#^KHJ_^V+V+@&`._[B\/#^KHJ_^V+V+@% +M`._[B\/#^KHJ_^V+V+@$`._[B\/#^KHJ_^V+V+@#`._[B\/#^KHJ_^V+V+@" +M`._[B\/#^KHJ_^V+V+@!`._[B\/#^KHJ_^V+V+@``._[B\/#^HO<BT<"NBK_ +M[_O#NBK_[??0)0<`P_K#^\.<^EC#B]S_=P*=P\S#`,.0PY#("```5F@`@&@B +M_^AT_(/$!&@`@&@B_^AH_(/$!&C]`&@H_^A<_(/$!&H`:"K_Z%'\@\0$:@AH +M./_H1OR#Q`1J"&@Z_^@[_(/$!&H(:#S_Z##\@\0$:@AH/O_H)?R#Q`0K]HO> +MT>/'A]0=E"V+WM'CQX=:!@``1H/^0'SF*\")1OJ)1O@K]HY&^HO>T>.+AS`$ +MBPX&`(M>^":)!R:)3P)&@T;X!(/^0'S@*\!>R<-5B^R#?@0`?!*#?@1`?0R# +M?@@`?`:#?@@'?@6X___)P[@(`"M&"(E&"#T'`'X%QT8(!P"+1@:+7@31XXF' +MU!V+1@A(BUX$T>.)AUH&BT8$ZV^0_W8(:#+_Z'G[B^7IB`"#?@H!]1O`)1`` +M"T8(4&@X_^OED(-^"@'U&\`E$``+1@A0:#K_Z]&0@WX*`?4;P"40``M&"%!H +M//_KO9"#?@H!]1O`)1``"T8(4&@^_^NID/]V"&@T_^N@_W8(:#;_ZY@M"``] +M"P!W(-'@DR[_IQ0O+"\L+_0N_"ZD+K@NS"[@+BPO+"\L+Y8N*\#)P\@"``!7 +M5HM^!('G_P!\!CD^8!Y_![C__UY?R<-I][8`@<84!_:$@0"`=>KVA(```70& +M*\!>7\G#@(R!`!"-10$[!I(>?0.ADAZCDA['1`2`)<=$!@``QT0(@"7'1`H` +M`,9$-@#&1#0(QD0U`,=$#(`0QT0.```KP(E$$HE$$(E$%HE$%(E$'HE$',=$ +M)`$`QT0F`0#&1#<3QD0X$<9$.1/&1#H1H?@&B40HH08&B40JH?8&B40LH50& +MB40NH5H>B40PQT;^``"+7O[&0#T`_T;^@W[^"WSP*\")1%:)1%2)1%J)1%B) +M1%Z)1%R)1&:)1&2)1&J)1&B)1&Z)1&S&A)D``<:$F```B82&`%!05NCC#(/$ +M!E;HQ@N#Q`(Y='AU%HN$E``%'`!0Z+3Y@\0"QT;^``#K!I#'1OX!`(M<>(N' +ME``%"`!0Z);Y@\0"BD[^@,$"T_@E`0`]`0`:P/;8B(2<`(M<>(N'E``%"`!0 +MZ&_Y@\0"BD[^T_@E`0`]`0`:P/;8B(2>`&H@BX24``4$`%#H0OF#Q`1J`8N$ +ME``%!`!0Z#+Y@\0$:@2+A)0`!00`4.@B^8/$!(",@``!@*2!`._$7'0F@P<! +M)H-7`@#I8_Z0R`0``%=6BWX$@>?_`'P&.3Y@'G\'N/__7E_)PVGWM@"!QA0' +M]H2```%U!RO`7E_)PY#VA(``@'0'5N@1#X/$`CET>'4+BUQX@*>B`/GK"9"+ +M7'B`IZ(`GXM<>(J'H@`JY%#_M(P`Z)SX@\0$:B"+A)0`!00`4.B,^(/$!,:$ +MF```Z+G[B4;^QX2D````QX2R````QX2T````QX2J````QX2L````5NC1#X/$ +M`BO`B82"`(F$@`")A(0`5NA0"H/$`O]V_NBC^X/$`J&2'DB)1OSK$)!I7ORV +M`/:'E`<!=0G_3OR#?OP`?>N+1OQ`HY(>Z3C_D,A4``!75HI&!"KDB4;X"\!\ +M!CD&8!Y_"+C__UY?R<.0:?"V`('&%`?'1OH``(M&".DM`Y#_=@Q6Z%D;@\0$ +MZ5<#D/]V#%;H^P_K\)"+1@R+5@Z)1O")5O)6C70$Q'[PN2(`\Z5>Z3`#BT8, +MBU8.B4;PB5;RQ%[P)O9'!!!T&^C(^HE&]H"D@`#W5NC'#H/$`O]V]NC@^H/$ +M`L1>\";V1P0@=!OHH_J)1O:`C(``"%;HU`Z#Q`+_=O;HN_J#Q`+$7O`F]@<@ +M=!CH?_J)1O9J`%;HV0V#Q`3_=O;HFOJ#Q`+$7O`F]@<0=!CH7OJ)1O9J`5;H +MN`V#Q`3_=O;H>?J#Q`+$7O`F]D<$0'4#Z8L":@&+PP4)`%#_=@;_=@3H!`2# +MQ`CI=`(K_X%^"`5A=04Y?@IT#(%^"`=A=0@Y?@IU`[\!`(%^"`5A=0:#?@H` +M=`V!?@@&874)@WX*`'4#@\\"5U;H,1J#Q`2+1@R+5@Z)1O")5O)6C7ZLC70$ +MC-".P+DB`/.E7HM&\(M6\E8>C7P$B_`>!X[:N2(`\Z4?7HU&K!905NB,"8/$ +M!NGN`?]V#O]V#%;HE!KK[O]V#O]V#%;H1`[KXE;H^!R#Q`)6Z#<;@\0"BT8, +MBU8.B4:LB5:N5HUT2,1^K+D&`/.E7HM>K";'1P0_`";'1P8``(!D27_IF0&0 +M*_^!?@@*874%.7X*=`R!?@@,874(.7X*=0._`0"!?@@*874&@WX*`'0-@7X( +M"V%U"8-^"@!U`X//`E=6Z%49@\0$BT8,BU8.B4:LB5:NQ%ZL)O9'!`1T&B:* +M1P@E!``]`0#U&\`E!``,`5!6Z`D=@\0$Q%ZL)O9'!`%U`^D9`2:*1P@E`0`] +M`0#U&\`E!``,`5!6Z+(=Z:+]D(M&#(M6#HE&K(E6KE:-=%3$?JRY"`#IK_V0 +MBT8,BU8.B4:LB5:N5AZ-?%2+\!X'CMJY"`#SI1]>C40$'NG&_I"+1@R+5@Z) +M1JR)5JZ+1'2+5'96'HOPCMK$?JRY.@#SI1]>!O]VK%;H#AOIG?Z0BT1V"T1T +M=0/IA0#$7'0FBT=PB4;V:G3_=';_='3H0?6#Q`:+1O:9Q%QT)HE'<":)5W+_ +M-JP%C82N`%#H)AZ#Q`29Q%QT)HE'!":)5P;K09#'1OK__^LYD"T!83T3`'?P +MT>"3+O^G9#4H,C8R0#):,Q@S&#,8,[8S-C3T,_0S]#..-*@T3#5<,LXTGC.J +M,_PTBT;Z7E_)PY#("```5U:*1@0JY(E&_&GPM@"!QA0']H2```%U![C__UY? +MR<.+A*H`B4;^BX2L`(E&^HM&_CE&^G<(B_@K?OKK"I"+^"M^^@,^J@4Y?"QS +M!8"DA0#[BT8,.\=^`HO'B48,"\!_`^F:`*&J!2M&^CM&#'X#BT8,B4;X"\!U +M$6CO`O\VN`3_-L0`Z"GN@\0&H:H%.4;X<A%H\`+_-K@$_S;$`.@0[H/$!O]V +M^/]V"O]V"(N$I@"+E*@``T;Z4E#HU?.#Q`J+1@PY1OA]'2M&^%"+1@B+5@H# +M1OA24/^TJ`#_M*8`Z+#S@\0*@WX,`'X4*WX,BT8,`4;ZH:H%.4;Z<@,I1OJA +MJ@4Y1OIR$6@'`_\VN`3_-L0`Z)SM@\0&Z(OVB4;\BT;ZB82L`(M&_CE&^G4* +M@*2``+^`I(4`@#E\+G8%@*2%`/?'A(8```#_=OSHAO:#Q`*+1@P+P'T"*\"9 +MQ%QT)@%'""815PHY?"QR#O:$@`"`=`=6Z$()@\0"BT8,7E_)P\@*``!75HI& +M!"KD:?"V`('&%`?VA(```74(N/__7E_)PY#H`O:)1OKVA($`"'0'BX2D`.L% +MD(N$L@")1OZ+A+0`B4;X_W;ZZ`KV@\0"BT;^.4;X=PN+?O@K^`,^K`7K!8M^ +M^"OX3SE&^'4%@*2$`("AK`4KQT`[1"IS!8"DA`#W@^\$.3ZL!7,3:%T#_S:X +M!/\VQ`#HF^R#Q`8K_XM&##O'?@*+QXE&#`O`?P/II@"AK`4K1OX[1@Q^`XM& +M#(E&]@O`=1%H;P/_-K@$_S;$`.A@[(/$!J&L!3E&]G(1:'`#_S:X!/\VQ`#H +M1^R#Q`;_=O:+A*X`BY2P``-&_E)0_W8*_W8(Z`SR@\0*BT8,.4;V?1TK1O90 +M_[2P`/^TK@"+1@B+5@H#1O924.CG\8/$"H-^#`!^((M&#)G$7'0F`4<$)A%7 +M!HM&#`%&_J&L!3E&_G(#*4;^H:P%.4;^<A%HA0/_-K@$_S;$`.C'ZX/$!NBV +M](E&^O:$@0`(=`F+1OZ)A*0`ZP>+1OZ)A+(`H:P%*\=`B_@Y?"AS!8"DA`#[ +M]H2```IU!U;HB@B#Q`+_=OKHH_2#Q`*+1@Q>7\G#D"O`PY#(`@``5HMV"(I& +M!"KDB48$QT8&``"A8!Z9.U8&=PYR!3M&!'<'N/__7LG#D&E&!+8`!10'B]CV +MAX$`@'7H"_9U$?\VJ@4%I@!0Z#X:@\0$7LG#@_X!=0G_-JP%!:X`Z^B#_@)U +M!Z&J!4A>R<.#_@-U!:&L!>OR*\!>R<.0R`8``%=6BW8$]H2```)U(/:$@``$ +M=`Z`3&@"@(R``""`I(0`@("D@`#[*\!>7\G#Z+CSB4;\]H2!``AT!XN$I`#K +M!9"+A+(`B4;^BX2T`(E&^O]V_.C`\X/$`HM&_CE&^G<'B_@K?OKK"8OX*W[Z +M`SZL!3E\*'(8]H2$``1UJX",A``$@$QH!(",@``@ZYN0.7PJ=Y7V1%@(=(_V +MA(0`"'6(@(R$``B`3&@(Z]N0R`8``%=6BW8$BX2J`(E&_HN$K`")1OR+1OXY +M1OQW!XOX*W[\ZPF+^"M^_`,^J@6+QRN$A@#VA(4``749.82(`',%.7PF=PZ` +MC(4``8!,:0&`C(``(#E\+G<8]D19"'0R]H2%``AU*X",A0`(@$QI".L;.7PL +M<AOV1%D$=!7VA(4`!'4.@(R%``2`3&D$@(R``"")O(8`*\!>7\G#R`@``%=6 +MBW8(]\80`'07BUX$Q%]T)H-')`$F@U<F`(M>!(!/:A#WQB``=!>+7@3$7W0F +M@T<L`2:#5RX`BUX$@$]J(/?&0`!T%XM>!,1?=":#1R@!)H-7*@"+7@2`3VI` +M]\:``'0>BUX$Q%]T)H-'9`$F@U=F`(M>!(!/28"+7@2`3VF`]\;P`'0(BUX$ +M@(^``""+7@2*AY\`*N3WT"/PBH>@`"KDA<9T!RO`7E_)PY"+AZ8`BY>H`(E& +M_(E6_HN_J@"+AZP`.\=W""O'`P:J!>L"*\>)1OC_3OB*AZ$`*N2%QG1*@W[X +M`WTBBUX$Q%]T)H-',`$F@U<R`(M>!,1?=":#1S0!)H-7-@#KG<1>_";&`?]' +M.3ZJ!7<"*__$7OPFQ@$`1SD^J@5W(RO_ZQ_WQO``=!F#?O@!?+#WQH``=`:* +M1SSK!)"*1SN8B48&BD8&Q%[\)H@!1SD^J@5W`BO_BUX$B;^J`(M>!("/@`!` +MZ3C_D,@"``!75HM>!(MW>(V\M@"*G:,`*O_1XXN'!`6)1O[WA(```1!T#H!. +M_@3V1!P@=`2`3OX!]X6```$0=`Z`3OX(]D4<('0$@$[^`O]V_HN$E``%"`!0 +MZ)[M@\0$7E_)P\@"``!75HMV!(N$E`")1OZ`?#8"=00K_^L/@'PV`74&OP0` +MZP20OQ``@'PT!70@@'PT!G4%@\\!ZQ6`?#0'=0:#SP+K"I"`?#0(=0.#SP/V +M1!P0=`2!SX``:A"+1OX%!`!0Z#+M@\0$5_]V_N@H[8/$!"O_]D0<('0#OQ`` +M@'PU`G4%@\\/ZP^`?#4!=0:#SPCK!)"#SP?V1!@0=`2!SX``5_]V_NCO[(/$ +M!%;H\?Z#Q`)>7\G#R!0``%=6BW8$BT1XB4;\C7P$QT;^``#V10D0=`2`3OYP +M]D4(@'0$@$[^@(I&_HB$GP#'1O8``/9%"2!T!(!.]G#V10D!=`2`3O:`BD;V +MB(2@`,=&]```]D4)0'0$@$[T<(I&](B$H0#V110!=`2`31@0]D44`G0$@$T8 +M((-])`!T"*&L!3E%)'(&H?@&B44D@WTF`'0(H:P%.44F<@:A!@:)12:#?2@` +M=`BAJ@4Y12AV!J'V!HE%*(-]*@!T"*&J!3E%*G(&H50&B44J@WTL`'0(H:H% +M.44L<@:A6AZ)12S'1O@``.L$D/]&^(-^^!%]&8L%BU4"BU[XP>,".9?"!'+F +M=P8YA\`$<MZ#?O@1=0/_3OB#/KH$`'0&Z/SNB4;ZBT8("T8&=`[$7@8FBT<8 +M)HM7&NL'D(M%&(M5&E)05NAH`8/$!HM&"`M&!G05BT4(BU4*Q%X&)CE'"'4& +M)CE7"G14]D4(`70:.7;\=0N+7OR`IZ(`^>LCD(M>_("GH@"?ZQ@Y=OQU"XM> +M_("/H@`&ZPF0BU[\@(^B`&"+7OR`CZ(`@(M>_(J'H@`JY%#_M(P`Z"[K@\0$ +MBT8("T8&=#"*13+$7@8F.$<R=22*13`F.$<P=1N+11B+51HF.4<8=0\F.5<: +M=0F*13$F.$<Q=`=6Z%C]@\0"BT4""P5U`^F6`(M&"`M&!G03BP6+50+$7@8F +M.0=U!B8Y5P)T>XI&^(B$HP!J`&ID:@!J!?]U`O\UZ+$;4E#HK!M`B826`#ET +M>'0<5NBF_(/$`HJ<HP`J_]'C_[<F!8N$E`!`0.LSD/]T!O]T!&H!:`#"Z'@; +MB4;PBD;Q*N10BX24``4,`%#H8^J#Q`2*1O`JY%"+A)0`!0X`4.A/ZH/$!(,^ +MN@0`=`G_=OKHI.V#Q`)>7\G#D%6+[%:+=@2+1!R+5!XQ1@8Q5@CVA(``@'1$ +M]D8&$'03]D0<$'0$:@+K`FH&5NAN$8/$!/9&!@)T%/9$'`)T!6H`ZP.0:@%6 +MZ(@`@\0$]D8&0'0I]D0<0'0::@+K&)#V1@80=`EJ!E;H-!&#Q`3V1@9`=`EJ +M!E;H]1&#Q`1>R<.058OL5U:+=@3VA(``@'0^Z-WLB_CV1!P"=`EJ`5;H,@"# +MQ`3V1!P0=`EJ!E;H[Q"#Q`3V1!Q`=`EJ!E;HL!&#Q`2`I(``?U?HTNR#Q`)> +M7\G#D,@"``!75HMV!(-^!@!T%8I$.HA&_L1<=":#1S@!)H-7.@#K$XI$.8A& +M_L1<=":#1SP!)H-7/@#_M)``Z#'I@\0"J`1T$8I&_IA0_[22`.@4Z8/$!.M` +MB[RT`/:$@0`(=1B`C($`"(N$L@")A*0`B;RR`%;H,@"#Q`(YO+(`=0D+_W4$ +MBSZL!4_$G*X`BD;^)H@!B;RT`,1<=":#1P0!)H-7!@!>7\G#D%6+[%:+=@2# +M?`(`=2&AO`2)!,=$`KP$@SZ\!`!T!XL>O`2)=P*)-KP$@(R```)>R<.058OL +M5HMV!(-\`@!T)X,\`'0(BT0"BQR)1P*+!(M<`HD'QP0``,=$`@``@(R```2` +MI(``_5[)PY#(!```5HMV!(M$'(M4'HE&_/9&_`)T"6H`5NC1_H/$!/9&_!!T +M"6H"5NB.#X/$!/9&_$!T"6H"5NA/$(/$!(",@`"`7LG#58OL5HMV!%;HKPZ# +MQ`+$7@8KP":)1P(FB0?VA(``"'0(Q%X&)H!/`@'V1!P@=`[V1%`(=0C$7@8F +M@$\"!%[)PU6+[%:+=@2`C($`!&I@BX24``4$`%#HM.>#Q`2+1@:+R,'@`@/! +MT>"Y9``KTO?QB82*`,1<=":#1V`!)H-78@!>R<.0R`(``%=6BW8(@WX$_W4& +M@WX&_W03BT8$BU8&*M(]__]U#('Z`/]U!BO`7E_)PXI&!"KDB4;^"\!\"*%@ +M'CE&_GP(N/__7E_)PY!I?OZV`(''%`<+]G3KBP2)17KKRE6+[%=6*_^+]^L2 +MD-'_]D8%P'0$@<^``,%F!`)&@_X(?.J+Q_?07E_)PU=6_S96!NC-_X/$`HOP +M_S98!NC!_X/$`HOX@SY8!@!U/X,^X`4`=0/I_0!J%VB``NC.YH/$!&H@:((" +MZ,/F@\0$:@=H@@+HN.:#Q`16:(("Z*[F@\0$:(``:(`"Z<,`D&H5:,`"Z)GF +M@\0$:B!HP@+HCN:#Q`1J`VC"`NB#YH/$!&H':,("Z'CF@\0$:/P`:,("Z&SF +M@\0$:(``:,`"Z&#F@\0$:A5HQ`+H5>:#Q`1J(&C&`NA*YH/$!&H`:,8"Z#_F +M@\0$:@5HQ@+H-.:#Q`16:,8"Z"KF@\0$:(``:,0"Z![F@\0$:A5HR`+H$^:# +MQ`1J*&C*`N@(YH/$!&H!:,H"Z/WE@\0$:@5HR@+H\N6#Q`17:,H"Z.CE@\0$ +M:(``:,@"Z-SE@\0$7E_#D,@8``!75J%@'CT0`'X#N!``B4;XQT;J```K_^GT +M`6IT4O]T=.@&YH/$!HO')/Z)1OYIP+8`!10'B4;VB\?1X`5J!8E&](M&_M'@ +M!6H%B4;HB]B+!P4*`(F$C@"+7NB+!P4*`(F$C`"+7NB+!P4*`(M>]HF'C@"+ +M7NB+!P4*`(M>]HF'C`"+7O2+!XF$E`"+7NB+!XM>]HF'E`"+7O2+!T!`B820 +M`(M>](L'!08`B822`(M&]HE$>(O'*N29@,[_B41\B51^B\>Y$`"9]_F+QXO* +MF3/"*\+!^`0SPBO"B]C1X[@`@-/HA8=6!G4#Z0$"@W[J`'T#Z?@!BT;LBU;N +MT>K1V-'JT=C1ZM'8T>K1V(I.[(/A#XF,K@")A+``QX2D````QX2R````QX2T +M````H:P%*](!1NP15NZ+1O"+5O+1ZM'8T>K1V-'JT=C1ZM'8BD[P@^$/B8RF +M`(F$J`#'A*H```#'A*P```"AJ@4KT@%&\!%6\CET>'5/4HN$E``%&@!0Z%#D +M@\0$:B.+A)0`!1P`4.A`Y(/$!&K<BX24``4>`%#H,.2#Q`1HW0"+A)0`0$!0 +MZ"#D@\0$:F^+A)0`!0@`4.@0Y(/$!#ET>'4%*LGK`Y"Q`8#!`K@!`-/@4(M< +M>(N'E``%'@!0Z.KC@\0$.71X=04JR>L#D+$!N`$`T^!0BUQXBX>4``4>`%#H +MQ^.#Q`1'.3Y@'G\#Z>4`:?>V`('&%`?WQP\`=`/IK`"+1OCW)JH%!1``4.C, +MVX/$`HE&\(E6\HM&^/<FK`4%$`!0Z+7;@\0"B4;LB5;NBT;R"T;P=`>+P@M& +M['4%QT;J__^+1O"+5O*`Y`^*Q(KBBM8J]M'JT=C1ZM'8T>K1V-'JT=@#1O"# +MT@`%#P"#T@`D\(E&\(E6\HM&[(M6[H#D#XK$BN**UBKVT>K1V-'JT=C1ZM'8 +MT>K1V`-&[(/2``4/`(/2`"3PB4;LB5;N:G3H*=N#Q`*)1'2)5':+P@M$='0# +MZ2[]QX2```"`QX2"````Z1+_D*&J!<'@`KD%`"O2]_&C5`:AJ@4K!E0&/1`` +M=@BAJ@4M$`#K!:&J!4A(HUH>H50&.09:'G,&H5H>HU0&H:H%T>BC^@:AJ@4K +MTO?QH_8&H:P%*]+W\:/X!J&L!<'@`BO2]_&C!@8KP%Y?R</(%@``5U;'1O@` +M`L=&^@``Q%[X)HM'#J-6!B:+1QJC6`8FBT<0H^`%H58&B4;PH5@&B4;RQT;T +M'P#K&I"+1O29,\(KPL'X!#/"*\*+^-'GT6OP_T[T@W[T`'P9BT;TF3/"*\+! +M^`0SPBO"B_C1Y_9#\`%TR(M&]$"C8!X](`!^!L<&8!X@`(-^\@!U(,=&]``` +MBU[TT>.+ATH%BU[TT>.)AVH%_T;T@W[T$'SEQP:\!```QP:^!```:@!J!6A6 +M5&H(Z.;E@\0(Z*#Z@SY@'@!^;X,^X`4`=$IJ`&H%:(%8:B#HQN6#Q`AJ`&H% +M:)18:B'HM^6#Q`AJ`&H%:-(X:@WHJ.6#Q`AJ`&H%:-(X:@[HF>6#Q`AJ(F@Z +M_^ABX8/$!.L?D&H`:@5H@5AJ#>A\Y8/$"&H`:@5HE%AJ#NAMY8/$"(,^8!X$ +M?AYJ`&H%:*=8:B+H5^6#Q`AJ`&H%:+I8:B/H2.6#Q`B#/F`>"'X>:@!J!6C- +M6&HDZ#+E@\0(:@!J!6C@6&HEZ"/E@\0(@SY@'@Q^'FH`:@5H\UAJ)N@-Y8/$ +M"&H`:@5H!EEJ)^C^Y(/$"(,^8!X0?GAJ`&H%:!E9:BCHZ.2#Q`AJ`&H%:"59 +M:BGHV>2#Q`AJ`&H%:#%9:BKHRN2#Q`AJ`&H%:#U9:BOHN^2#Q`AJ`&H%:$E9 +M:BSHK.2#Q`AJ`&H%:%59:BWHG>2#Q`AJ`&H%:&%9:B[HCN2#Q`AJ`&H%:&U9 +M:B_H?^2#Q`BA<!Z+%G(>B4;\B5;^QT;T``!J`&H*_S;F!/\VY`3H'1%24/]V +M_O]V_.C(#XM>]-'CB8?D!?]&](-^]`I\U,=&]`H`:@!J"HM>],'C`O^WP@3_ +MM\`$Z.804E#_=O[_=OSHD0^+7O31XXF'Y`7_1O2#?O01?,['!JH%``#'!JP% +M``"#/F`>`'YGH6`>T>"94E"#/F`>$'X%N%``ZP.X*`"9BP[\!HL>_@8KR!O: +M:P9@'GB9*\@;VE-1Z(,0B4;JB5;L"])U!3T`#'8(QP:J!0`,ZQ<+TG4./4`` +M<PG'!JH%0`#K!I`D\*.J!:&J!:.L!>AV^;X4!\=$!(`EQT0&``#&1#0(QD0V +M`,9$-0`KP(E$'HE$'%!05NA#\H/$!L=&]```Z.;M_T;T@W[T9'STQT;J(`#' +M1NP``*$&`,1>ZB;'!T!4)HE'`L<&N@0!`"O`7E_)P\@$``!6BW8$@WQZ`'0) +MBUQZ@W\,`'4+@*2``-\KP%[)PY"+1%2+5%8A1&0A5&:+1%B+5%HA1&@A5&J+ +M1%R+5%XA1&PA5&Z+1&8+1&1U$(M$:@M$:'4(BT1N"T1L=+F-1&0>4&H`:`]A +M_W1^_W1\BUQZ_U<,@\0,*\")1&:)1&2)1&J)1&B)1&Z)1&SKBI#(!@``5U;' +M1OX``&D&DAZV``44!XE&^BO_:3;&!;8`@<84!^MOD#EV^G4#OA0']H2```%T +M6O:$@``&=`=6Z&KM@\0"]H2``$!T!U;H"NZ#Q`*`O)H``'0'5NB0`(/$`H.\ +MB@``=`W_C(H`=0=6Z,8&@\0"]H2``"!T!U;H]/Z#Q`**A*,`*N0[1OY^`XE& +M_H'&M@!'.3Z2'G^,H<8%.0:2'G\)QP;&!0``ZP60_P;&!:%(!3E&_G0NBT;^ +MHT@%"\!U!E!H5O_K&&@!X&A6_^B?W8/$!(M>_M'C_[?D!6A2_^B-W8/$!"O` +M7E_)P\@$``!6BW8$Z)[@B4;^BUQXBX>4``4(`%#H7]V#Q`(*A)H`B$;\QH2: +M``#_=O[HI>"#Q`(Y='AU"X!F_%5J`6H$ZPF0@&;\JFH":@B*1OQ05N@&`(/$ +M"%[)P\@"``!6BW8$BD8((D8&/`$:P/;8B(2<`(I&"B)&!CP!&L#VV(B$G@"* +M1@;`Z`2(1OZ*1@B$1OYT$<1<=":#1T@!)H-72@"`3&P"BD8*A$;^="OV1!@( +M=!3$7'0F@T=(`2:#5TH`@$QL`NL2D,1<=":#1U`!)H-74@"`3&P(5NA#`X/$ +M`HM$4(M44HE$<(E4<H",@``@*\!>R</(`@``5U:+=@3V1@8"=$KHH]^)1O[_ +M-JP%C82N`%#HMP6#Q`2+^)G$7'0F*4<$)AE7!H"DA`#`]H2!``AT"HN$L@") +MA*0`ZPB+A+0`B82R`/]V_NB,WX/$`O9&!@%T4.A3WXE&_O\VJ@6-A*8`4.AG +M!8/$!(OXF<1<="8!1P@F$5<*QX2J````QX2L````@*2%`,"`I(``O_]V_NA$ +MWX/$`O:$@`"`=`=6Z!KR@\0"7E_)PY#(`@``5HMV!*&L!4C$7@8FB4<$H:H% +M2,1>!B:)1P;HX-Z)1O[_-JP%C82N`%#H]`2#Q`3$7@8FB0?_-JH%C82F`%#H +MWP2#Q`3$7@8FB4<"_W;^Z-G>@\0"Q%X&*\`FB4<*)HE'"/:$@``"=`:X`0#K +M!)"X`@`KTL1>!B8)1PCVA(``0'0%N``!ZP.X``+$7@8F"4<(]H2``(!T!;@` +M0.L"*\#$7@8F"4<(]H2```AT",1>!B:`3PH!7LG#D,@(``!75HMV!(U\2(IE +M`24`@(D%QT4"``#H*=Z)1OS_-JP%C82N`%#H/02#Q`2)1OC_-JH%C82F`%#H +M*P2#Q`2)1OK_=OSH*=Z#Q`+VA(```G0%N`$`ZP.X`@`KT@D%]H2!``1T!KB` +M`.L#D"O`"07VA(``"'0$@$T"`?9$'"!T"O9%"`AU!(!-`@3V10('=`.`#4"+ +M1O@Y1"AR`X`-!(M&^#E$*G<#@`T(H:P%*T;X2'4#@`T0]H2``$!T!;@``>L# +MN``""07VA(``@'0&N`!`ZP.0*\`)!8M&^CE$+'($@$T!!(M&^CE$+G<$@$T! +M"(M&^CE$,'<$@$T!(*&J!2M&^DAU!(!-`1!>7\G#D%6+[%:+=@0+]G4#Z9L` +MBT8("T8&=0/ID`!6Z(\`@\0"5NC._H/$`HM$2(M42L1>!B:)1VPFB5=NBT10 +MBU12Q%X&)HE':":)5VK_-JP%C82N`%#H!0.#Q`29Q%X&)HE'#":)5P[_-JH% +MC82F`%#HZ@*#Q`29Q%X&)HE'$":)5Q+$7@8FBT<,)HM7#B8I1P0F&5<&Q%X& +M)HM'$":+5Q(F`4<()A%7"H!D27]>R</("```5HMV!(I$4"4$`(E$4,=$4@`` +MBUQXBX>4``4(`%#H.=F#Q`*)1OXY='AU!\=&_```ZP7'1OP!`(I._(#!`M/X +M)0$`/0$`&\#WV(E&^(I._(M&_M/X)0$`/0$`&\#WV(E&^O9$&`AT"X!,4`B# +M?OH`ZPV0"\!T!(!,4`B#?O@`=`2`3%`"]D08!'0(@+R=``#K&)"`O)T``'0' +M@$Q0!.L%D(!D4/N`O)L``'0$@$Q0`8!,4!!>R</(!@``5U:+=@2+?@;V1!@$ +M=`/IM@#WQP(`=0;HL]N)1OKWQP$`=`?'1OP``>L%QT;\``+'1OX``/?'!`!T +M%(M&_(M6_O?0]](AA(``(92"`.L.BT;\BU;^"82```F4@@#WQP0`="+&A)T` +M`3ET>'4$*LGK`K$!N`$`T^!0BUQXBX>4``4<`.L@QH2=```Y='AU!"K)ZP*Q +M`;@!`-/@4(M<>(N'E``%'@!0Z.W7@\0$Q%QT)H-'5`$F@U=6`/?'`@!U"?]V +M^N@VVX/$`EY?R<.0R`0``%=6BW8$BWX&]\<"`'4&Z.S:B4;^]D08!'0(QT;\ +M``#K!I#'1OP"`/?'!`!T)\:$FP`!.71X=04JR>L#D+$!`D[\N`$`T^!0BUQX +MBX>4``4<`.LDD,:$FP``.71X=00JR>L"L0$"3ORX`0#3X%"+7'B+AY0`!1X` +M4.A*UX/$!,1<=":#1TP!)H-73@#WQP(`=0G_=O[HD]J#Q`)>7\G#58OL5HMV +M!&IPBX24``4$`%#H$]>#Q`2`I($`^\>$B@```%[)PY!5B^Q75HMV!.@NVHOX +M@*2``.]J!(N$E``%!`!0Z.+6@\0$5^A`VH/$`EY?R<.058OL5U:+=@3H`-J+ +M^(",@``0:@B+A)0`!00`4.BTUH/$!%?H$MJ#Q`)>7\G#D%6+[%=6BUX$BW<$ +MBW\&._YW"(O&*\=>7\G#BT8&*\<#QEY?R<.0R`8``%=6BW8$Z,G9B_AIQK8` +M!10'B4;ZB]B+AX``BY>"`(E&_/9&_!!T!U/H3_^#Q`*#?@8*=2F+WM'CBX=J +M!4!`4.A#UH/$`J@$=.MJ#8O>T>.+AVH%!08`4.@AUH/$!(O>T>.+AVH%0$!0 +MZ!K6@\0"J`1TZ_]V!HO>T>.+AVH%!08`4.CWU8/$!/9&_!!T'HO>T>.+AVH% +M0$!0Z.K5@\0"J`1TZ_]V^N@`_X/$`E?H,=F#Q`)>7\G#8!X&+HX><`'H"P"Z +M(O^X`(#O!Q]AS[N\!(L?@_L`="Z+EY``[*@$=/"+C[(`B[^T`#OY=![$MZX` +M)HH%BY>2`.Y'.SZL!70'B;^T`.O+PS/_Z_7WAX````AT&HN/I`")C[(`@:>` +M`/_W._ET"/>'@``(`'3`BW\"BS>)-8/^`'0#B7P"QT<"``#'!P``@X^```2# +MIX``_8O>ZX"+E90`@\(([(K@)%!T!`B%F@"+]X'&M@"`Y*!T!`BDF@#K%Y"+ +ME8P`,\#NBY6.`.PBA:(`B^BH@'7&]\4&`'4#Z:0!Q(6F`(NUJ@"+G:P`._-R +M!XO&*\/K")`KWJ&J!2O#.T4N<A'WA8``@`!U"097Z&3L@\0"!XN=E`"#PP:+ +MC9``B]'LBN#VQ`%U`^DP`8O3[/;$\'0#Z0D!/`!U!_=%#@(`==WW10P$`'0" +M)'^*51SVP@%U`^F,`(JU@``Z13ET1CI%.G0*]L8(='GVP@1T=(O3!L1==":# +M1T`!)H-70@`'@Z6``/>#?0(`=1A6N[P$BS>#_@!T`XE\`HD_B36)70)>B]KI +M>O^+TP;$770F@T=$`2:#5T8`!X.-@``(]X6````(=1I6BUT"BS6)-X/^`'0# +MB5P"7L=%`@``QP4``(O:Z3W_]H6A`/]T&#S_=10FB`1&.S:J!74$*S:J!3NU +MK`!T%R:(!$8[-JH%=00K-JH%.[6L`'0#Z0?_5P;$?70F@T4P`2:#53(`)H-% +M-`$F@U4V``=?@_X`=02+-JH%3NG?_HFUJ@!@,O:*U%(RY%!7Z`WD@\0&88NU +MJ@#IP_Z)M:H`]\4$`'0*BY64`(/"!+!0[H.-@`!`@+V8``!U"(J%F0"(A9@` +M]\5@`'4#Z:P!@<>V`,2%I@"+M:H`BYVL`#OS<@>+QBO#ZPB0*]ZAJ@4KPSM% +M+G(1]X6``(``=0D&5^BSZH/$`@>+G90`@\,&BXV0`(O1[(K@]L0!=0/I,`&+ +MT^SVQ/!T`^D)`3P`=0?W10X"`'7=]T4,!`!T`B1_BE4<]L(!=0/IC`"*M8`` +M.D4Y=$8Z13IT"O;&"'1Y]L($='2+TP;$770F@T=``2:#5T(`!X.E@`#W@WT" +M`'485KN\!(LW@_X`=`.)?`*)/XDUB5T"7HO:Z7K_B],&Q%UT)H-'1`$F@U=& +M``>#C8``"/>%@```"'4:5HM=`HLUB3>#_@!T`XE<`E['10(``,<%``"+VND] +M__:%H0#_=!@\_W44)H@$1CLVJ@5U!"LVJ@4[M:P`=!<FB`1&.S:J!74$*S:J +M!3NUK`!T`^D'_U<&Q'UT)H-%,`$F@U4R`":#130!)H-5-@`'7X/^`'4$BS:J +M!4[IW_Z)M:H`8#+VBM12,N105^A<XH/$!F&+M:H`Z</^B;6J`/?%0`!T"HN5 +ME`"#P@2P4.Z#C8``0("]F```=0B*A9D`B(68`('OM@"+E8P`BH6B`.[#@SY8 +M!@!T!KK$`K`@[K\4!^EK_(,^6`8`=`:ZQ`*P(.Z_@`CI6/R#/E@&`'0&NL0" +ML"#NO^P)Z47\@SY8!@!T!KK$`K`@[K]8"^DR_(,^6`8`=`:ZQ`*P(.Z_Q`SI +M'_R#/E@&`'0&NL0"L"#NOS`.Z0S\@SY8!@!T!KK$`K`@[K^<#^GY^X,^6`8` +M=`:ZQ`*P(.Z_"!'IYONZR`*P(.Z_=!+IVONZR`*P(.Z_X!/ISONZR`*P(.Z_ +M3!7IPONZR`*P(.Z_N!;IMONZR`*P(.Z_)!CIJONZR`*P(.Z_D!GIGONZR`*P +M(.Z__!KIDONZR`*P(.Z_:!SIAOL`58OLBUX$_W8(_W8&_W<"_S?H+@"+7@2) +M5P*)!XOE7<(&`%6+[(M>!(L'BU<"BTX&Z/,!BUX$B0>)5P*+Y5W"!```58OL +M5U93,_^+1@8+P'T2]]>+5@3WV/?:'0``B48&B58$BT8*"\!]$O?7BU8(]]CW +MVAT``(E&"HE6"`O`=1:+3@B+1@8STO?QB]B+1@3W\8O3ZSR0B]B+3@B+5@:+ +M1@31Z]'9T>K1V`O;=?3W\8OP,])24/]V"O]V".@T`3M6!G<'<@@[1@1V`X/N +M`3/2B\8+_W0']]KWV(/:`%M>7XOE7<((``!5B^Q35S/_BT8&"\!]$O?7BU8$ +M]]CWVAT``(E&!HE6!(M&"@O`?1"+5@CWV/?:'0``B48*B58("\!U&HM."(M& +M!C/2]_&+1@3W\8O",](+_W5%ZTJ0B]B+3@B+5@:+1@31Z]'9T>K1V`O;=?3W +M\3/24E#_=@K_=@CHD0`[5@9W!W(+.T8$=@8K1@@;5@HK1@0;5@8+_W4']]KW +MV(/:`%];B^5=P@@`58OL4U:+1@H+P'46BTX(BT8&,]+W\8O8BT8$]_&+T^L\ +MD(O(BUX(BU8&BT8$T>G1V]'JT=@+R77T]_.+\#/24E#_=@K_=@CH'``[5@9W +M!W((.T8$=@.#[@$STHO&7EN+Y5W""```58OLBT8&BUX*"]B+7@AU"XM&!/?C +MB^5=P@@`]^.+R(M&!/=F"@/(BT8$]^,#T8OE7<((`#+MXP;1X-'2XOK#`(,& +M3`8!@Q9.!@#_!@`'@SX`!V1S`^F!`(,&!@<!@Q8(!P#'!@`'``"A!`<+!@(' +M="C_-@0'_S8"!VH`:F2A`@>+%@0'*P80!QL6$@=24.AO_U)0Z`3_HY@>@SZ8 +M'@!\!X,^F!YD?@;'!I@>``"#/IX>`WP-_S:8'FC0!>@>R(/$!(,^GAX"?`EH +;TP7H#LB#Q`(KP*,2!Z,0!^ETK@`````````` +` +end diff --git a/usr.sbin/stallion/bootcode/cdk.sys.uu b/usr.sbin/stallion/bootcode/cdk.sys.uu new file mode 100644 index 000000000000..8d000833916f --- /dev/null +++ b/usr.sbin/stallion/bootcode/cdk.sys.uu @@ -0,0 +1,733 @@ +begin 440 cdk.sys +M```````````````````````````````````````````````````````````` +M``````!@`0`````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M`-(1SV0``````````````````````````````````````!``````8V1K:"YC +M```F`````````````````.`5`````````````,($``!F!0,``````````&YO +M(#(V.#$@9')I=F5R(&EN<W1A;&QE9`!M96UO<GD@;6%L;&]C(&9A:6QE9``` +M`````$%34T525$E/3B!&04E,55)%(&%T("5S*"5D*0H``(H`24Y&3U)-`%=! +M4DY)3D<`1D%404P`4$%.24,`15)23U(@)7,Z("5S*"5D*3H@``H`J@"Q`+D` +MOP#%`#$N,"XS`"A#*2!#;W!Y<FEG:'0@4W1A;&QI;VX@5&5C:&YO;&]G:65S +M(#$Y.3,@+2`Q.3DU``H*+2TM+2TM+2TM+2TM+2TM("!3=&%L;&EO;B!);G1E +M;&QI9V5N="!#;VUM=6YI8V%T:6]N<R!0<F]C97-S;W(@("TM+2TM+2TM+2TM +M+2TM+0H`("`@("`@("`@("`@("`@("5S"@H`("!";V%R9"!4>7!E("`@("`@ +M("`@("`@("`@("`@("4R9"`@("`@("`@("`@($-O9&4@5F5R<VEO;B`@("`@ +M("`@("`@("`@("5S"@`@($UE;6]R>2!4;W1A;"`@("`@("`@("`@,'@E,#9L +M>"`@("`@("`@("`@($UE;6]R>2!5<V5D("`@("`@("`@("`@(#!X)3`V;'@* +M`"`@365M;W)Y($9R964@("`@("`@("`@("`P>"4P-FQX("`@("`@("`@("`@ +M365M;W)Y($UA<"`@("`@("`@("`@("`@,'@E,#9L>`H`("!#;V1E(%-I>F4@ +M("`@("`@("`@("`@(#!X)3`V;'@@("`@("`@("`@("!$871A(%-I>F4@("`@ +M("`@("`@("`@("`P>"4P-FQX"@`@($-O9&4@4V5G;65N="`@("`@("`@("`@ +M("`P>"4P-'@@("`@("`@("`@("!$871A(%-E9VUE;G0@("`@("`@("`@("`@ +M(#!X)3`T>`H`("!3=&%C:R!396=M96YT("`@("`@("`@("`@,'@E,#1X("`@ +M("`@("`@("`@17AT<F$@4V5G;65N="`@("`@("`@("`@("`P>"4P-'@*"@`@ +M($%S>6YC:')O;F]U<R!086YE;',@("`@("`@("`@("5D("`@("`@("`@("`@ +M07-Y;F-H<F]N;W5S(%!O<G1S("`@("`@("`@("`@)3)D"@`*+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM +M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0H*``#D`.H`,#$R,S0U-C<X.6%B +M8V1E9@``_@,``````````````````)\KI2NK*[$KMRN]*\,KR2O/*]4KVROA +M*^<K[2OT*_LK`BP)+!`L%RP>+"4L+"PS+#HL02Q(+$\L5BQ=+&0L:RQR+'DL +M@"R'+(XLE2R<+*,LJBRQ++@LORS&+,TLU"S;+.(LZ2SP+/<L_BP%+0PM$RT: +M+2$M*"TO+38M/2U$+4LM8V0Q-#`P+F,``*`$````````@````(``"``@`(`` +M``(`".I-UB^04"@P4#'L,0``5CP8.J`UE%#P8V-D,30P,"YC`&-D,30P,"!N +M;W0@<F5S<&]N9&EN9RP@8F]A<F0])60@<&%N96P])60@9&5V:6-E/25D``H` +M`````&-D,30P,"YC``H`8V0Q-#`P+F,`8V0Q-#`P(&YO="!R97-P;VYD:6YG +M+"!B;V%R9#TE9"!P86YE;#TE9"!D979I8V4])60`"@``DF```````````)9@ +M`````````````,AA``!C9#$T,#`Z('-T<F%Y(%)8(&EN=&5R<G5P="`H86-K +M/25X*0H`8V0Q-#`P.B!S=')A>2!46"!I;G1E<G)U<'0@*&%C:STE>"D*`&-D +M,30P,#H@<W1R87D@34]$14T@:6YT97)R=7!T("AA8VL])7@I"@``````)60` +M+@```````/J\``0SP([0CL"X``&.V#/`CL`F@3X``J?R=2<F@3X"`DFA=1XF +M@3X$`E)C=14F@3X&`B'Q=0PFH0H")HL>#`+K8I"Y6M`S]H[&)J$``":)#@`` +MO@`0BQ8``([&)CD.``!T"H'&`!"!_@"`<NDSTH[")J,``(S(NS!J@^/PP>L$ +M`]A#CL,FH0``)HD.``"+%@``)CD.``!U"2:C``!#.]YRX3/`HPP`QP8.```` +MB]/!X@0!%@P`@Q8.``"+T\'J#`$6#@"A#`"+%@X`N3!JB0X8`(/!'X/A\(OQ +MB_DKP8/:`,'H!,'B#`O0CL)/3HS(CMC]\Z3\!FCZ`,NX``&.V+D0.HOQB_F+ +MV8D>)``#'B``@\,/@^/PB\/!Z`0KT(["3D_]\Z3\C,".V([`CM"+XX/L!+\` +M!C/`N1`ZB0X<`"O/_/.JC,BC!@",V*,$`"ZC<`&,T*,*`(S`HP@`C-C!X`2C +M%`",V,'H#*,6`.@F'NO^``#(!```5U:+1@B9BQXP.3E7$')O=P4Y1PYR:(MW +M!)F+^(O:`WX$$UX&@^\!@]L`B\X*R70(T>O1W_[)=?B+QYF+SXO:BT8$BU8& +MB4[\B5[^B\X*R70(T>K1V/[)=?@[1OQU!3M6_G0YB\>9B\X*R70(T>#1TO[) +M=?B)1@2)5@;K()"0F3E7$'<8<@4Y1PYS$6C?`/\V+@#_-J@`Z)4B@\0&BT8$ +MBU8&7E_)P\@0``!75HL>,#F+1Q*+5Q0Y%A8`=Q]R!CD&%`!S%Z$4`(L6%@`K +M1@0;5@;1ZM'8`T8$$U8&*T8$&U8&B4;PB5;R*_^+1PZ+5Q")1O2)5O8[UW4$ +M.\=T#5)0_W;R_W;PZ&IFB_@+_W0(BT;V"T;T=0^_`0"+1O"+5O*)1O2)5O:+ +M1@C1X`/'*]+W]XOP"_9U`[X!`&H`5O]V]O]V].@M9HE&^(M&"-'@`\=J`%#_ +M=O+_=O#H%V:)1OZ+1O@Y1OYV!HM&_HE&^#V``',%QT;X@`"+1OA>7\G#D,@< +M``!75L=&[@`#QT;P``#'!@@Z@`+'!@HZ``#$'@@Z)HM'!*,,.B:*1QPE`0`] +M`0`:P/[`HE8`)HM'$B8+1Q!T"B:+1Q"C5@[H"AF+1NZ+5O#1ZM'8T>K1V-'J +MT=C1ZM'8BD[N@^$/B0Y8#J-:#H%&[H``@U;P`&B``%!1Z$DG@\0&Q!Y8#B;' +M1P8!`,0>6`XFQT="_P#$'E@.)L9'3`'$'E@.)L9'30#$'E@.)L9'3@#$'@@Z +M)HM'#(E&Y(L>,#F+!RT7`'P$2$A^%&A7`&A\`?\V+@!J`NC?&H/$".MS:@!J +M`&H`:`=#:O]J__\6<`6#Q`P+P'TPBQXP.8-_*`!T)J%(`*/V.8O8@W\6`'0/ +M:@%J!?]W%FH-Z)0J@\0(QP;*.3Q?ZRR0H4P`H_8YB]B#?Q8`=`]J`6H%_W<6 +M:@WH;BJ#Q`C'1N0``(L>,#G'1R@``(M&Y$"C$`;$'E@.)HE'4J$0!DB9,\(K +MPL'X`S/"*\)`H[XYH1`&!0<`F3/"*\+!^`,SPBO"0"3^B4;LBT;NBU;PQ!Y8 +M#B:)1U@FB5=:BT;L*](!1NX15O"+1NZ+5O#$'E@.)HE'7":)5UZ+1NPKT@%& +M[A%6\%#$'E@.)HM'6":+5UK1ZM'8T>K1V-'JT=C1ZM'8)HI76(/B#XO*4%'H +MUB6#Q`;_=NS$'E@.)HM'7":+5U[1ZM'8T>K1V-'JT=C1ZM'8)HI77(/B#XO* +M4%'HIB6#Q`:A$`:)1NRX!@#W9NR)1NR+1NZ+5O#$'E@.)HE'5":)5U:+1NPK +MT@%&[A%6\,0>6`XFBT=4)HM75M'JT=C1ZM'8T>K1V-'JT=@FBD]4@^$/B4[H +MB4;J_W;L4%'H1B6#Q`:+'C`YBP<M%P!\!$A(?@G'!E````/K$9#'!E````&+ +M'C`Y@W\H`'0(QT;\`0#K!I#'1OP"`&B2`/]V\/]V[NBW^X/$!HE&[HE6\(M& +M_,1>Z":)!XM&[HM6\,1>Z":)1P(FB5<$:)(`BT;NBU;PT>K1V-'JT=C1ZM'8 +MT>K1V(I6[H/B#XO*4%'HN22#Q`:!1NZ2`(-6\`"#1N@&BQXP.8-_*`!^$(M& +MY"M'*)GW?RB)1O3K!I#'1O0``(-^]`!]!<=&]```QT;^``#'1N8``"OVZ0(! +MD(M^_M'GBT$8BT[T0??I.T;F?@O$7N@FQP<`!.L)D,1>Z";'!P``BT;NBU;P +MQ%[H)HE'`B:)5P1HO`"+1NZ+5O#1ZM'8T>K1V-'JT=C1ZM'8BE;N@^(/B\I0 +M4>@2)(/$!H%&[KP`@U;P`/]&YHM^_M'GBQXP.8M!&(M.]$'WZ3M&YG]YQT;F +M``#_1OZ#?OX(?&O$'@@Z)HM'%(E&\B:+1QB)1O:#?O(`=`D+P'4%QT;V``&# +M?O8`=`N#?O(`=07'1O(``8-^\@!U&X-^]@!U%?]VY/]V\/]V[NCS^H/$!HE& +M\HE&]L0>6`XFBT=4)HM75HE&Z(E6ZBOVZT60D$:#1N@&.7;D?HMHO`#_=O#_ +M=N[H$OJ#Q`:)1NZ)5O"+1N:+?O[1YXL>,#DY01A_`^G1_L1>Z";'!R``Z>S^ +M1H-&Z`8Y-A`&?P/IH@#$7N@F]P?@_W3H)HM'`B:+5P31ZM'8T>K1V-'JT=C1 +MZM'8)HI/`H/A#XE.^(E&^O]V\O]V\/]V[NBA^8/$!HE&[HE6\,1>^":)A[(` +M)HF7M`"+1O+$7O@FB8>V`(M&\BO2`4;N$5;P_W;V_W;P_W;NZ&GY@\0&B4;N +MB5;PQ%[X)HF'I@`FB9>H`(M&]L1>^":)AZH`BT;V*](!1NX15O#I4/]J`&H$ +M:!0+:@SH8":#Q`B+1NZ+5O"CN@V)%KP-HQ``B182`"O`7E_)PY#(%@``5U9K +M!A`&*E#H(1J#Q`*C$@:)%A0&BQ[V.?\7H10&"P82!G42:'``:#<"_S8N`&H" +MZ!46@\0(:P80!BI0_S84!O\V$@;H$"*#Q`;$'E@.)HM'5":+5U;1ZM'8T>K1 +MV-'JT=C1ZM'8)HI/5(/A#XE.[HE&\,=&]#``H1(&BQ84!HE&^HE6_,=&_O__ +MQT;R`0`K_ROVZ8@!)HM'!":+5P:)1NJ)5NS$7NHFBX>R`":+E[0`T>K1V-'J +MT=C1ZM'8T>K1V":*C[(`@^$/Q%[Z)HE/"":)1PK$7NHFBX>F`":+EZ@`T>K1 +MV-'JT=C1ZM'8T>K1V":*CZ8`@^$/Q%[Z)HE/#":)1P[$7OHF]T<FX`-U`^FG +M`(-^\@!U`^F>`/]&_HM>_M'CB;=$#HM&_HL>,#DY1Q9^!3T(`'Q\BQXP.8M? +M%M'CB;=$#L0>6`XFBT=8)HM76M'JT=C1ZM'8T>K1V-'JT=@FBD]8@^$/B0[` +M.:/".2:+1UPFBU=>T>K1V-'JT=C1ZM'8T>K1V":*3UR#X0^)#MXXH^`XQT;V +M8@+'1O@``,1>]B;&!PW$7O8F@#\`=0/IY`#K\BO_B7[RB\<JY)F+R(I&_HO: +MF8/*_XKRBM2*X"K`"\$+T\1>^B:)!R:)5P*+'O8Y@W\"`'08C4;T4,1>^B;_ +M=P(F_S>+'O8Y_U<"@\0&1XM>_M'C`QXP.3E_&'\%QT;R`0!&@T;Z*H-&[@8Y +M-A`&?P/I$?_$7OHFB7<DQ%[N)HL'Q%[Z)HE')L1>[B:+1P(FBU<$T>K1V-'J +MT=C1ZM'8T>K1V":*3P*#X0_$7OHFB4\$)HE'!HO&P>`#F?<^$`:+R+`!TN#$ +M7OHFB$<HQ%[Z)O9')A]UC":#?R8`=`/I`_[I?__$'E@.)H-_0@!U!L<&4``` +M`"O`7E_)PY#(#```5U;$'E@.)H-_4`!T0J&&`/\&A@`]9`!V"O\&B`#'!H8` +M```F@']/`'0+QP:(````)L9'3P"AB`#$'E@.)CE'4'<-Z#L0Q!Y8#B;'1U`` +M`,0>6`XF@']A`'1>*__K)H5V^'03:\`J`P82!HL6%`924.@-`8/$!/]&^M'F +MBT;Z.4;^?]M'.3Z^.7XNQ![>.":*`9B)1O@+P'3JB\?!X`.)1OH%"`")1OZA +M$`8Y1OY^`XE&_KX!`.O$D,0>6`XF@']@`'4#Z8<`QT;V```K_^M`D(5V^'0L +M:\`J`P82!HL6%`924.CS!X/$!`O`?15K7OHJ`QX2!HX&%`8FBD<H*N0)1O;_ +M1OK1YHM&^CE&_G_"1SD^OCE^+<0>P#DFB@&8B4;X"\!TZHO'P>`#B4;Z!0@` +MB4;^H1`&.4;^?@.)1OZ^`0#KQ(I&]L0>6`XFB$=@@SY0``!T&8,^4@``=!)J +M`/\V4`#HZ1V#Q`3'!E(```"+'O8Y@W\4`'0#_U<4*\!>7\G#R"H``%=6Q%X$ +M)HM'!":+5P:)1NB)5NHF]D<F'W0,)HI')BO2M/\*].L')HL')HM7`HE&_(E6 +M_L1>Z":`/P!U`^EL`2:+1P(FBU<$B4;@B5;B*\`FB4<$)HE'`L1>Z";&!P"+ +M'O8Y.4<&=#O$7N@F_W<$)O]W`O]V_O]V_(L>]CG_5P:#Q`B+^(/_`70F"_]\ +M`XU%`8E&WIG$7N@FB4<")HE7!.L.D,1>Z";'1P(!`":)1P2+'O8Y@W\*`'4# +MZ;H`C4;LB\B+%@0`4E%J`&@-8?]V_O]V_(L>]CG_5PJ#Q`R+^(/_`741:/\" +M_S8N`/\VJ`#H%Q>#Q`8+_WQ^]D;P!'4B@$[P!,1>!":`3Q`(Q%[H)HN'M@"Y +M!0`KTO?QQ%X$)HE'$O9&\`)U#(!.\`+$7@0F@$\0$/9&\0%U#(!.\0'$7@0F +M@$\0@,1>!";V1Q"8=""-1NR+R(L6!`!246H`:`YA_W;^_W;\BQ[V.?]7"H/$ +M#,1>!":`9Q";QP92``$`Q%X$)HI/)(#A![`!TN`FBU\DP>L#`Q[`.8X&PCDF +M"`?$7@0FBD<HQ!Y8#B8(1V#$7N@FBT<,)@M'"G4#Z>("Q%[H)HM'"B:+5PR) +M1N")5N*+1N"+5N(F.4<*=>,F.5<,==TKP":)1Q`FB4<.Q%[H)HE'#":)1PJ) +M1N2+1N#I4@&0D(M&Z(M6Z@42`(E&VHE6W,1>VB;V1P0$=1/$7@0F@$\0",1> +MVB:`3P0$ZPF0Q%X$)H!G$/?$7MHF]D<$`G42Q%X$)H!/$!#$7MHF@$\$`NL( +MQ%X$)H!G$._$7MHF]D<%`744Q%X$)H!/$(#$7MHF@$\%`>D'`9#$7@0F@&<0 +M?^G[`)#$7N@FBT<2B4;D_W;D_W8&_W8$Z+@+@\0&Z=X`QT;D`@"!?N`,874& +M@W[B`'0-@7[@"F%UU8-^X@!USX!.Y`'KR9#'1N0"`(%^X`=A=0:#?N(`=`V! +M?N`%874*@W[B`'4$@$[D`?]VY/]V!O]V!.A="X/$!HM&Z(M6Z@42`(E&VHE6 +MW,1>Z":+A[8`Q%[:)CE')'(1Q%[H)HN'M@!(2,1>VB:)1R3$7MHF@W\D`'41 +MQ%[H)HN'M@"Y!0`KTO?QZP0FBT<DQ%X$)HE'$NLMD"T!83T-`'<DT>"3+O^G +M^@\<#Q80%A"0#UX/7@]C#Q80%A`X#S@//0\6$)H.BQ[V.8-_"@!U`^G/`/]V +MXO]VX.BF"H/$!`O`=`W$7N@FBT<2)HM7%.L)BT;HBU;J!1(`B4;:B5;<4E#_ +M=N+_=N#_=O[_=OR+'O8Y_U<*@\0,B_@+_W5CBT;@+1)A=5N+1NB+5NH%$@") +M1M:)5MB+1N@%L@!24.C'!(/$!,1>UB8!!XM&Z(M6Z@6F`%)0Z&X$@\0$Q%[6 +M)@%'`L1>Z":+A[8`2,1>UB8!1P3$7N@FBX>J`$C$7M8F`4<&@_\!="\+_WP% +MC44!ZP*+QXE&UIG$7N@FB4<.)HE7$.L3D,1>Z";'1PX!`";'1Q```+___\<& +M4@`!`,1>!":*3R2`X0>P`=+@)HM?),'K`P,>P#F.!L(Y)@@'Q%X$)HI'*,0> +M6`XF"$=@Q%X$)O9'$0%T3\=&\`(`QT;R```KP(E&]HE&](E&[HE&[":`9Q'^ +MQ%X$)H!/$"#'!E0``0"-3NR+%@0`4E%J`&@/8<1>!";_=P(F_S?H5P2#Q`S' +M!E0```#$7@0F]D<0!'0#Z:@!BT;HBU;J!;(`4E#HJ0.#Q`2+\`OV?P/IC@'$ +M7@0F.7<2=P4F@&<0W\1>!":`9Q"_@#Y6``!T*(L>]CF#?PH`=!Z-1N`64&H` +M:!-A_W;^_W;\BQ[V.?]7"H/$#`O`=`@KP(E&XHE&X(M&X@M&X'0#Z38!BQ[V +M.8-_$`!U`^DI`<1>Z":+A[8`)HN/N@`KP3O&=P\FBX>Z`":+O[8`*_CK`Y"+ +M_E?$7@0FBT<()HM7"L1>Z":+C[H``\%24/]V_O]V_(L>]CG_5Q"#Q`J)1M8+ +MP'T%QT;6```Y=M9],SE^UG4NB\8K1M90Q%X$)O]W"B;_=PC_=O[_=OR+'O8Y +M_U<0@\0*B_@+_WT"*_\!?M;K`BO_@W[6`'\#Z8X`.7;6=`C$7@0F@$\0!"MV +MUL1>Z":+A[H``4;6BT;6)CF'M@!W`XE^UHM&UB:)A[H`Q%X$)CEW$G95)O9' +M$"AU3BO`B4;RB4;PB4;VB4;TB4;NB4;L)O9'$"!U"8!.\`0F@$\0(,<&5``! +M`(U.[(L6!`!246H`:`]AQ%X$)O]W`B;_-^BB`H/$#,<&5````,1>Z":`?P$` +M=0/IE@`FBT<&)HM7"(E&X(E6XBO`)HE'"":)1P;$7N@FQD<!`(L>]CDY1PAT +M*_]V_O]V_/]7"(/$!(OX@_\!="4+_WP#C44!B4;6F<1>Z":)1P8FB5<(ZPW$ +M7N@FQT<&`0`FB4<(QP92``$`Q%X$)HI/)(#A![`!TN`FBU\DP>L#`Q[`.8X& +MPCDF"`?$7@0FBD<HQ!Y8#B8(1V`KP%Y?R</(!```5L1>!":+1P0FBU<&B4;\ +MB5;^Q%[\)H"_D@``=`>X__]>R<.0Q%X$)O9'$`%T0&H0!90`4E"+PXS"!10` +M4E#H5!:#Q`K$7@0FBD<0)((\`G4)Q%[\)H"/F0`!Q%[\)L:'D@`!Q%X$)H!G +M$/[KL)`FBD<0)((\`G4\:A"+1OP%E`!24.A$%H/$!L1>_":`CYD``8M&_(M6 +M_@64`%)0:@!H#V'$7@0F_W<")O\WZ#X!@\0,Z6G_Q%[\)HM'!"8+1P)T`^E9 +M_R:+1P@F"T<&=`/I3/\FBT<0)@M'#G0#Z3__Q%X$)O9')A]U%8M&_`6F`%)0 +MZ"T`@\0$"\!T`^D@_\1>!":*3R2`X0>P`=+@]M`FBU\DP>L#Q#;`.28@`"O` +M7LG#R`(``%=6Q%X$)HMW"":+?P@[_G0*B_<FBW\(._YU]B:+1P:)1OXY=OYR +M"8M&_BO&7E_)PR:+1P0KQ@-&_EY?R<.0R`(``%=6Q%X$)HMW!B:+?P8[_G0* +MB_<FBW\&._YU]B:+1PB)1OXY=OYW"8O&*T;^7E_)PR:+1P0K1OX#QEY?R<.0 +M58OL5HMV"(/^`74@BT8$BU8&!;(`4E#HI/^#Q`3$7@0F*X>V`/?82%[)PY"+ +M1@2+5@8%I@!24.A"_X/$!,1>!"8KAZH`Z]Z0R!0``%=6@WX$_W4&@WX&_W03 +MBT8$BU8&*M(]__]U'X'Z`/]U&6C&!/\V+@#_-J@`Z)$.@\0&N/__7E_)PY"+ +M5@8JP"K2/0#_=48[T'5"*_;K`48Y-A`&?A:*1@0JY&O>*@,>$@:.!A0&)CE' +M)G7CBD8$*N1KWBH#'A(&C@84!B8Y1R9T!6C/!.N>:\8JZUV0BT8$BU8&BL2* +MUBKV*N2)1OZ*1@2)1O"#?OX`?`R+1OZ+'C`Y.4<6?P=HUP3I:?^0B]C1XXNW +M1`Z#?O``?!"+1O`#QHM>_M'C.8=&#G\&:-P$Z43_BT;P`\9KP"H#!A(&BQ84 +M!HE&\HE6],1>\B:+1P0FBU<&B4;ZB5;\@7X(#V%T`^G]`H-^"@!T`^GT`HM& +M#@M&#'42BT8."T8,=`/I!?]HY@3I\?Z0BT8,BU8.B4;VB5;X)O9')A]T`^D* +M`2;V1Q`"=0W$7O8F]D<%`74#Z?8`:@#_=OS_=OKH2_Z#Q`:)1NP+P'4+Q%[R +M)H!/$`+IU@#$7OHFBX>J`":+CZP`*\$[1NQW#B:+AZP`)HN_J@`K^.L#BW[L +M5\1>\B:+1PPFBU<.Q%[Z)HN/K``#P5)0_W8&_W8$BQ[V.?]7#H/$"HOP"_9] +M`BOV"_9^,3O^=2V+1NPKQE#$7O(F_W<.)O]W#/]V!O]V!(L>]CG_5PZ#Q`J+ +M^`O_?0(K_P/WZP(K_SEV['XA:@#_=@;_=@2+'O8Y_U<2@\0&"\!U"\1>\B:` +M9Q#]ZPF0Q%[R)H!/$`(+]GX8Q%[Z)HN'K``#\"8YMZH`=P*+]R:)MZP`@SY4 +M``!T`^F@`,1>]B;W1P0&`74#Z9(`)O9'!`9T",1>\B:`9Q#[Q%[V)H!G!/O$ +M7O8F]D<$`G05BT;ZBU;\!;(`4E#HU_R#Q`0+P'\*Q%[R)O9'$$!T",1>]B:` +M9P3]Q%[R)O9'$!!T",1>]B:`9P3]Q%[R)O9'$(!T",1>]B:`9P7^Q%[V)HM' +M`B8+!W4:)HM'"B8+1PAU$":+1P8F"T<$=08KP%Y?R</$7OHF@+^2``!U`^FJ +M`,1>\B;V1Q`!=1%J$(O#C,(%%`!24.BU$8/$!L1>]B:+!R:+5P+$7O(F"4<4 +M)@E7%L1>]B;V1P0>=`C$7O(F@&<8X<1>]B;V1P4>=`C$7O(F@&<9X<1>]B:+ +M1P0FBU<&Q%[R)@E'&"8)5QK$7O8FBT<()HM7"L1>\B8)1QPF"5<>Q%[V)HM' +M"B8+1PAT$R:+1PPFBU<.Q%[R)HE'(":)5R+$7O(F@$\0`>L@:A"+PXS"!90` +M4E#_=@[_=@SHVQ"#Q`K$7OHFQH>2``''!E(``0#$7O(FBD\D@.$'L`'2X":+ +M7R3!ZP,#'L`YC@;".28(!\1>\B:*1RC$'E@.)@A'8.F!`(%^"`!G=2.#?@H` +M=1V#?@X`?`/_1@R+1@R+5@[$7OHFB4<.)HE7$.M8D(%^"`%G=2.#?@H`=1V# +M?@X`?`/_1@R+1@R+5@[$7OHFB4<")HE7!.LND(%^"`)G=`/IQON#?@H`=`/I +MO?N#?@X`?`/_1@R+1@R+5@[$7OHFB4<&)HE7",<&4@`!`,1>\B:*3R2`X0>P +M`=+@)HM?),'K`P,>P#F.!L(Y)@@'Q%[R)HI'*,0>6`XF"$=@@SY0``!U`^DJ +M_H,^4@``=0/I(/YJ`/\V4`#HH`^#Q`3'!E(```#I"_Z058OLBT8$+0!A?`E( +M2'\%N`$`R<,KP,G#R`@``%:+=@CHQA*)1OC$7@0FBT<$)HM7!HE&^HE6_/?& +M`0!T*L1>^B:+AZP`)HF'K@#$7OHFBX>N`(E&_HM&_B8YAZP`==[$7@0F@&<0 +M_??&`@!T2\1>!";V1Q`0=1?$7OHFBX>Z`"8YA[@`=`C$7@0F@$\1`<1>^B:+ +MA[@`)HF'N@#$7OHFBX>X`(E&_HM&_B8YA[H`==[$7@0F@&<0F_]V^.@Z$H/$ +M`BO`7LG#R!```%=6Z!H2B_BA$@:+%A0&B4;\B5;^B\(+1OQU!RO`7E_)PY!J +M#(U.\(L6!`!24>CQ#H/$!L=&]/__QT;V__\K]NM<D,1>_";V1R8@="Z+'O8Y +M@W\*`'0DC4;PB\B+%@0`4E%J`&@)88M>_";_=P(F_S>+'O8Y_U<*@\0,BQ[V +M.8-_"`!T%,1>_";_=P(F_S>+'O8Y_U<(@\0$1H-&_"HY-A`&?Y]7Z(<1@\0" +MZ6[_D,@*``!6QP8P.<PYQT;\``+'1OX``,1>_":!/Z?R=`/I)P$F@7\"2:%T +M`^D<`2:!?P128W0#Z1$!)H%_!B'Q=`/I!@$FBT<4H\PYZT['!MXY``#'!N`Y +M`0#'!MHY`$#'!MPY``#'!M`Y#@#K4L<&WCD``,<&X#D!`,<&VCD``,<&W#D! +M`,<&T#D0`.LRQP;>.0``QP;@.0(`Z]Y(/0H`=Q[1X),N_Z?R'+8<EARV'+8< +MEAR6'-8<"!VV'+8<MAS'!LXY`0#$7OPF@W\8`'4&)L='&%``:@%HH(;$7OQJ +M`";_=QCH'TRCTCF)%M0Y:@!J!%)0Z%]*H]8YB1;8.<1>_":#?QH`=!`FBT<: +MB4;VQP;T.1``ZPZ0)HM'#HE&]L<&]#D``"OVZP*01H/^$'T+B\Z+1O;3X`O` +M=>\!-O0YQP;B.0$`H?0YH^0YQT;X``+'1OH``,1>^":!/T5#=`/I_@`F@7\" +M4"%T`^GS`,<&S#D7`(,^5@X`=!V#/E8.&'4)QP;,.1@`ZPZ0@SY6#AEU!L<& +MS#D9`*',.2T8`'05QP;:.0`0QP;<.0``QP;0.0P`ZQ.0QP;:.0``QP;<.0$` +MQP;0.1``QP;>.0``QP;@.0(`Q%[X)HM'!J/..<<&TCE`>,<&U#E]`6H`:@3_ +M-M0Y_S;2.>A?2:/6.8D6V#G'!O0Y``#'!N(Y```K]NL6@P;T.0B+'N(YT>/' +MA^0Y"`#_!N(Y1H/^"'TWQ%[X@\,()HH`*N2)1O8]_P!T)(I&]B4'`#O&=1KV +M1O8@=,*#!O0Y$(L>XCG1X\>'Y#D0`$;KORO`7LG#D%6+[/]V"/]V!HM>!-'C +M_[?:`/\VX@#HW06+Y8U&#%#_=@IJ`&H`Z`D&B^5HV`#HAP4KP,G#D&@:`>BZ +M!8/$`O\V_`-H;0'HK06#Q`3_-OH#_S;,.6B"`>B<!8/$!O\V^CG_-O@Y_S8. +M`/\V#`!HSP'H@P6#Q`K_-KP-_S:Z#?\VY#C_-N(X:!P"Z&H%@\0*_S8>`/\V +M'`#_-AH`_S88`&AI`NA1!8/$"O\V!`#_-@8`:+8"Z$`%@\0&_S8(`/\V"@!H +M!0/H+P6#Q`;_-O0Y_S;B.6A5`^@>!8/$!FBF`^@5!8/$`L.0Z+/\Z%P.Z#D+ +MZ%3CZ`\`Z+SHZ#O_Z*8-Z7L*D,.0R`0``*$4`(L6%@`K!A``&Q82`*/B.(D6 +MY#BA#`"+%@X`*P;B.!L6Y#BC^#F)%OHYH1``BQ82`-'JT=C1ZM'8T>K1V-'J +MT=B*#A``@^$/B4[\B4;^H>(XBQ;D.,1>_":)!R:)5P+$7OPKP":)1P8FB4<$ +MQ%[\)HE'"B:)1PB+1OR+5OZC+#F)%BXYH\0YB1;&.2O`R<.0R`0``*$L.8L6 +M+CGK"9`FBT<$)HM7!HE&_(E6_HO""T;\=!:+1@2+5@;$7OPF.5<"<MQW!28Y +M!W+5BT;\BU;^R<.0R`0``(M&!@M&!'17H2PYBQ8N.<1>!":)1P0FB5<&Q%X$ +M*\`FB4<*)HE'"*$N.0L&+#EU$(M&!(M6!J/$.8D6QCGK$Y"+1@2+5@;$'BPY +M)HE'"":)5PJ+1@2+5@:C+#F)%BXY*\#)PY!5B^R+1@8+1@1T9\1>!":+1PHF +M"T<(=1(FBT<$)HM7!J,L.8D6+CGK%9`FBT<$)HM7!B;$7P@FB4<$)HE7!L1> +M!":+1P8F"T<$=1,FBT<()HM7"J/$.8D6QCDKP,G#)HM'"":+5PHFQ%\$)HE' +M"":)5PHKP,G#R!0``(M&!(M6!H#D#XK$BN**UBKVT>K1V-'JT=C1ZM'8T>K1 +MV`-&!(/2`(E&^(E6^L1>!":+!R:+5P(#1O@35OJ)1NR)5NZA+#F+%BXYZTB+ +M1O2+5O8Y1OAU-3E6^G4PQ%X$)HL')HM7`L1>_"8!!R815P+_=O[_=OSH#?^# +MQ`2+1OR+5OZ)1@2)5@;IB`"0)HM'!":+5P:)1OR)5OZ+P@M&_'1RBT;\@.0/ +MBL2*XHK6*O;1ZM'8T>K1V-'JT=C1ZM'8`T;\@](`B4;PB5;RQ%[\)HL')HM7 +M`@-&\!-6\HE&](E6]HM&\(M6\CE&['0#Z5W_.5;N=`/I5?\&4^B*_H/$!,1> +M_":+!R:+5P+$7@0F`0<F$5<"BT;^"T;\=`/IXOZ+1@2+5@;)P\@2``"+1@0% +M!0`D_HE&!"T,`!O)]]$CP04,`(E&],=&]@``Z`,+B4;R_W;V_W;TZ(3]@\0$ +MB4;\B5;^B\(+1OQU#O]V\NCP"H/$`BO`F<G#4O]V_.@)_H/$!(M&_(M6_HE& +M[HE6\,1>_":+!R:+5P(K1O0;5O:)1OB)5OH+TG4%/0P`<F6+PXS"@.0/BL2* +MXHK6*O;1ZM'8T>K1V-'JT=C1ZM'8`\.#T@`#1O035O;1ZM'8T>K1V-'JT=C1 +MZM'8BD[\`D[T@^$/B4[\B4;^BT;XBU;ZQ%[\)HD')HE7`O]V_O]V_.@1_8/$ +M!/]V\NA("HM&](M6]L1>[B:)!R:)5P*#1NX$BT;TBU;V`0;X.1$6^CDI!N(X +M&1;D.(M&[HM6\,G#R`X``(M&!(M6!H#D#XK$BN**UBKVT>K1V-'JT=C1ZM'8 +MT>K1V`-&!(/2`#D6$@!W%G(&.080`'<..186`'<-<@8Y!A0`<P6X___)PX-N +M!`2+1@2+5@:)1O*)5O3$7O(FBP<FBU<"B4;\B5;^Z)@)B4;V_W;T_W;RZ#G] +M@\0$B4;RB\(+1O)T"E+_=O+H1_R#Q`3_=O;H?@F+1OR+5OXI!O@Y&1;Z.0$& +MXC@1%N0X*\#)PU6+[(,^##H`=!"#/LHY`'0)_W8$:@#_%LHY*\#)PU6+[(,^ +M##H`=!&#/LHY`'0*_W8&_W8$_Q;*.2O`R<.058OLC48&4/]V!&H`:@#H*P#) +MPY!5B^R-1@A0_W8&_W8$:@#H%@#)PU6+[(U&"%#_=@9J`/]V!.@"`,G#R`X` +M`%=6BT8*B4;RBUX(_T8(B@>8B_B#_R5T,@O_=1(Y?@9T!HM>!L8'`"O`7E_) +MPY"#?@8`=`J+7@:(!_]&!NO*5_]V!.A;_X/$!.N^BUX(@#\E=1*#?@8`=`B+ +M7@;&!R7KV6HEZ]N`/RUU"_]&",=&]@$`ZP:0QT;V``"+7@B`/S!U"_]&",=& +M_`$`ZP:0QT;\``"+7@B`/RMU"_]&",=&^@$`ZP:0QT;Z``"+7@B`/R!U"_]& +M",=&]`$`ZP:0QT;T``"+7@B`/R-U`_]&""OVZQ6#_SE_((O&P>`"`\;1X`/' +M+3``B_"+7@C_1@B*!YB+^(/_,'W;@_\N=16+7@C_1@B*!YB+^(/_,'P%@_\Y +M?NL]9`!U`^G[`'X#Z0P"/54`=0/I(P%^`^GG`2U$`'4#Z18!+0L`=0/I#@'I +M'`*#?O8`=2S'1O@!`.L/D&H@_W8$Z$[^@\0$_T;X.7;X?1&#?@8`=.>+7@;& +M!R#_1@;KYX-^!@!T'HM>\HH'BUX&B`?_1@:#?O8`=0/IS@''1O@!`.LCD(M> +M\HH'*N10_W8$Z`#^@\0$Z]R0:B#_=@3H\OV#Q`3_1O@Y=OA\`^F<`8-^!@!T +MY(M>!L8'(/]&!NODD&H`:@#_=O;_=OQ6:@*+7O)J`/\WC48&4/]V!.AT`8/$ +M%.EF`6H`:@#_=O;_=OQ6:A#KVI!J`&H`_W;V_W;\5FH(Z\J0_W;T_W;Z_W;V +M_W;\5FH*BU[RBP>94E#KMY!J`&H`_W;V_W;\5FH*ZZ"0BUX(_T8(B@>8B_B# +M_T%\"(/_6G\#@\<@B\<]:0!T5W]M+6(`=`9(2'1,ZR)J`&H`_W;V_W;\5FH" +MBU[R_W<"_S>-1@90_W8$Z-D`@\04@T;R`NG'`)!J`&H`_W;V_W;\5FH0Z]20 +M:@!J`/]V]O]V_%9J".O$D/]V]/]V^NL$:@!J`/]V]O]V_%9J"NNLD"UO`'33 +M+08`=.8M`P!TN>NOD(M>\HL'B4;^BU[^_T;^B@>8B_@+_W1E@WX&`'0+BUX& +MB`?_1@;KX9!7_W8$Z)7\@\0$Z]0M6`!U`^DO_RT*`'4#Z:[^2'4#Z1;^ZS`M +M:0`]#P!W*-'@DR[_IQPH]B8\*#PH("<\*#PHYB8\*#PH/"C`)SPH$"<\*#PH +MUB:#1O("Z:G\D,@F``!75HM&"(M6"HE&_(E6_@O2?0KW7OR#5OX`]U[^*_:+ +M1@R94E#_=O[_=OSHS3^+V`,>$`2*!XA"W$:+1@R94E"-1OQ0Z,X^@W[^`'_2 +M?`:#?OP`=<J#?@H`?0^#?A0`=0:#?A8`=`/_3@Z#?A(`=3&#?A``=2N+_NL- +MD&H@_W8$Z+K[@\0$1SE^#GX5BUX&@S\`=.>+'\8'((M>!O\'Z^:0@WX6`'4& +M@WX4`'08@WX*`'T2BUX&@S\`="J+'\8'+8M>!O\'@WX4`'0S@WX*`'PMBUX& +M@S\`=!J+'\8'*XM>!O\'ZQEJ+?]V!.A0^X/$!.O3D&HK_W8$Z$+[@\0$@WX6 +M`'0>@WX4`'48@WX*`'P2BUX&@S\`=!N+'\8'((M>!O\'@WX2`'4_@WX0`'0Y +MB_[K&Y!J(/]V!.@"^X/$!.OBD&HP_W8$Z/3Z@\0$1SE^#GX5BUX&@S\`=.>+ +M'\8',(M>!O\'Z^:0C43_B4;:ZQB+7MJ-1MP#V(H'F%#_=@3HO/J#Q`3_3MJ# +M?MH`?""+7@:#/P!TVHM>VHU&W`/8B@>+7@:+'X@'BUX&_P?KUX-^$@!T*HO^ +MZPQJ(/]V!.A^^H/$!$<Y?@Y^%8M>!H,_`'3GBQ_&!R"+7@;_!^OFD"O`7E_) +MPX,&-#D!@Q8V.0#K]`````````````#ZNB+_N`"`[[HH_[!M[NL`NF;_,\#O +MZP`SP([8CM".P.H``/__B]R+5P**1P3NPXO<BU<",\#LPXO<BU<"BT<$[\.+ +MW(M7`NW#58OL5E<>!L1^",5V!(M.#(O&,\>I`0!U$_?&`0!T!@O)=`ND2='I +M\Z6#T0#SI`<?7UY=PU6+[%<&Q'X$BTX(,\#1Z?.K<P&J!U]=PP#(`@``:@!J +M9/\VV#G_-M8YZ/\]B4;^:`'@:&;_Z(/_@\0$_W;^:&+_Z'?_@\0$:@!J!&B. +M:6H3Z)0#@\0(T6[^_W;^:&#_Z%G_@\0$ZPJ#!B0Y`8,6)CD`:&#_Z$[_@\0" +M.T;^=^CK"H,&)#D!@Q8F.0!H8/_H-/^#Q`([1OYRZ&H(:"0YZ"`\*\#)PP`` +M````````````````'@93+HX><`&Z*O_M4(N'Q`WO^_\&R#G_ESHY^KHB_[@` +M@.]8NBK_[X/$`@<?8<]@NP``Z\M@NP(`Z\5@NP0`Z[]@NP8`Z[E@NP@`Z[-@ +MNPH`ZZU@NPP`ZZ=@NPX`ZZ%@NQ``ZYM@NQ(`ZY5@NQ0`ZX]@NQ8`ZXE@NQ@` +MZX-@NQH`Z7S_8+L<`.EU_V"['@#I;O]@NR``Z6?_8+LB`.E@_V"[)`#I6?]@ +MNR8`Z5+_8+LH`.E+_V"[*@#I1/]@NRP`Z3W_8+LN`.DV_V"[,`#I+_]@NS(` +MZ2C_8+LT`.DA_V"[-@#I&O]@NS@`Z1/_8+LZ`.D,_V"[/`#I!?]@NSX`Z?[^ +M8+M``.GW_F"[0@#I\/Y@NT0`Z>G^8+M&`.GB_F"[2`#IV_Y@NTH`Z=3^8+M, +M`.G-_F"[3@#IQOY@NU``Z;_^8+M2`.FX_F"[5`#IL?Y@NU8`Z:K^8+M8`.FC +M_F"[6@#IG/Y@NUP`Z97^8+M>`.F._F"[8`#IA_Y@NV(`Z8#^8+MD`.EY_F"[ +M9@#I<OY@NV@`Z6O^8+MJ`.ED_F"[;`#I7?Y@NVX`Z5;^8+MP`.E/_F"[<@#I +M2/Y@NW0`Z4'^8+MV`.DZ_F"[>`#I,_Y@NWH`Z2S^8+M\`.DE_F"[?@#I'O[Z +MNBK_[8O8N`<`[_N+P\/ZNBK_[8O8N`8`[_N+P\/ZNBK_[8O8N`4`[_N+P\/Z +MNBK_[8O8N`0`[_N+P\/ZNBK_[8O8N`,`[_N+P\/ZNBK_[8O8N`(`[_N+P\/Z +MNBK_[8O8N`$`[_N+P\/ZNBK_[8O8N```[_N+P\/ZB]R+1P*Z*O_O^\.Z*O_M +M]]`E!P##^L/[PYSZ6,.+W/]W`IW#S,,`PY##D,@(``!6:`"`:"+_Z'3\@\0$ +M:`"`:"+_Z&C\@\0$:/T`:"C_Z%S\@\0$:@!H*O_H4?R#Q`1J"&@X_^A&_(/$ +M!&H(:#K_Z#O\@\0$:@AH//_H,/R#Q`1J"&@^_^@E_(/$!"OVB][1X\>'.CGT +M+8O>T>/'A\0-``!&@_Y`?.8KP(E&^HE&^"OVCD;ZB][1XXN'(`2+#@8`BU[X +M)HD')HE/`D:#1O@$@_Y`?.`KP%[)PU6+[(-^!`!\$H-^!$!]#(-^"`!\!H-^ +M"`=^!;C__\G#N`@`*T8(B48(/0<`?@7'1@@'`(M&!HM>!-'CB8<Z.8M&"$B+ +M7@31XXF'Q`V+1@3K;Y#_=@AH,O_H>?N+Y>F(`(-^"@'U&\`E$``+1@A0:#C_ +MZ^60@WX*`?4;P"40``M&"%!H.O_KT9"#?@H!]1O`)1``"T8(4&@\_^N]D(-^ +M"@'U&\`E$``+1@A0:#[_ZZF0_W8(:#3_ZZ#_=@AH-O_KF"T(`#T+`'<@T>"3 +M+O^G="^,+XPO5"]<+P0O&"\L+T`OC"^,+XPO]BXKP,G#R`0``%:+1@2+5@:* +MQ(K6*O8JY(OPT>:+'KHYBT`6B4;^BD8$*N2+\-'FBU[^BT`TB4;\B]CV1W>` +M=`7'1OP``(M&_%[)PU6+[%=6BW8(@WX$_W4&@WX&_W03BT8$BU8&*M(]__]U +M#8'Z`/]U!RO`7E_)PY#_=@90Z(7_@\0$B_@+_W4(N/__7E_)PY`+]G3TBP2) +M173KUI!5B^Q75H-^!/]U$8-^!O]U"X`.O@T!*\!>7\G#_W8&_W8$Z$/_@\0$ +MB_`+]G4(N/__7E_)PY#V1'8!==K'!(`EQT0"``#'1`2`)<=$!@``QD0R`,9$ +M,`C&1#$`QT0(@!#'1`H``"O`B40.B40,B402B400B40:B408QT0@"@#'1"(( +M`,9$,Q/&1#01QD0U$\9$-A&A.#F)1"2A(#F)1":A,CF)1"BA(CF)1"JAW#B) +M1"PK_XO?`][&1SD`1X/_"WSR*\")1%*)1%")1%:)1%2)1%J)1%B)1&*)1&") +M1&:)1&2)1&J)1&B)A(X`BT04BU06)']24&H`:@!6Z&$/@\0*5NC`*X/$`E;H +M-RR#Q`)6Z$XF@\0"@$QV`<1<<":#!P$F@U<"`.GN_E6+[%=6@WX$_W45@WX& +M_W4/*\"CP`VCO@TKP%Y?R<.0_W8&_W8$Z!?^@\0$B_`+]G4(N/__7E_)PY#V +M1'8!=-E6Z)0K@\0":@-6Z"LC@\0$5N@>+(/$`E;H;RR#Q`+H,_R+^,>$I@`` +M`,>$J````,>$G@```,>$H````,:$E@``QH27``#'1'8``,=$?@``5^@%_(/$ +M`NN!N/__P\@0``!75H-^!/]U(H-^!O]U'/]V#O]V#/]V"O]V"/]V!O]V!.C5 +M_X/$#%Y?R</_=@;_=@3H;?V#Q`2+\`OV=0BX__]>7\G#D,=&_@``BT8(Z2$# +MD/]V#O]V#%;H/B:#Q`:)1O[I10.0_W8,5NAM(H/$!.DW`Y#_=@Q6Z)\HZ_"0 +MBT8,BU8.B4;XB5;Z5L1^^+DB`/.E7ND3`Y"+1@R+5@Z)1OB)5OK$7O@F]D<$ +M$'0AZ$7[B4;\@&1W]_]V_.@\^X/$`E;H.2J#Q`)6Z(PI@\0"Q%[X)O9'!"!T +M!U;HURF#Q`+$7O@F]@<@=`EJ`%;H.16#Q`3$7O@F]@<0=`EJ`5;H)Q6#Q`3$ +M7O@F]D<$0'4#Z9D":@&+PXS"!0D`4E#_=@;_=@3H!0>#Q`KI?P*0*_^!?@@% +M874%.7X*=`R!?@@'874(.7X*=0._`0"!?@@%874&@WX*`'0-@7X(!F%U"8-^ +M"@!U`X//`E=6Z&\A@\0$BT8,BU8.B4;XB5;ZBT08BU0:B4;TB5;VBT04BU06 +MB4;PB5;RBT;XBU;Z5AZ+_HOP'@>.VKDB`/.E'U[_=O+_=O#_=O;_=O16Z-\, +MZ6G__W8._W8,5NA,)8/$!NG>`5;HRB.#Q`)6Z!DF@\0"BT8,BU8.B4;PB5;R +M5HUT1,1^\+D&`/.E7HM>\";'1P0_`";'1P8``(!D17_IH0&0*_^!?@@*874% +M.7X*=`R!?@@,874(.7X*=0._`0"!?@@*874&@WX*`'0-@7X("V%U"8-^"@!U +M`X//`E=6Z)$@@\0$BT8,BU8.B4;PB5;RQ%[P)O9'!`1T&B:*1P@E!``]`0#U +M&\`E!``,`5!6Z+LA@\0$Q%[P)O9'!`%U`^DA`2:*1P@E`0`]`0#U&\`E!``, +M`5!6Z&0BZ<K]D(M&#(M6#HE&\(E6\E:-=%#$?O"Y"`#IU/V0BT8,BU8.B4;P +MB5;R5AZ-?%"+\!X'CMJY"`#SI1]>_W06_W04_W0:_W08Z<K^D(M&#(M6#HE& +M\(E6\HM$<(M4<E8>B_".VL1^\+DZ`/.E'UX&_W;P5NB@$^FM_I"+1'(+1'!U +M`^F%`,1<<":+1W")1OQJ=/]T<O]T<.B5]8/$!HM&_)G$7'`FB4=P)HE7<O\V +MK@2-A*(`4.AB*8/$!)G$7'`FB4<$)HE7!NM!D,=&_O__ZSF0+0%A/1,`=_#1 +MX),N_Z=P-50R8C)L,EPS&C,:,QHSNC,Z-/@S^#/X,Y(TK#18-88RVC2J,T`R +M"#6+1OY>7\G#D,@$``!75HMV",=&_```_W8&_W8$Z-GY@\0$B_@+_W4(N/__ +M7E_)PY#H&?B)1OX+]G4*_S:L!(V%F@#K#8/^`741_S:N!(V%H@!0Z+LH@\0$ +MZQ.#_@)U!:&L!.L(@_X#=0>AK@1(B4;\_W;^Z-KW@\0"BT;\7E_)P\@&``!6 +MBW8$Z,'WB4;^@&1V?_]V_NBX]X/$`H-\=`!T"8M<=(-_#`!U!BO`7LG#D(M$ +M4(M44B%$8"%48HM$5(M45B%$9"%49HM$6(M46B%$:"%4:HM$8@M$8'40BT1F +M"T1D=0B+1&H+1&ATOHU$8!Y0:@!H#V'_='S_='J+7'3_5PR#Q`PKP(E$8HE$ +M8(E$9HE$9(E$:HE$:.N/D,@B``!6Q%X,)HLWBUX$BX>B`(N7I`")1OR)5OZA +MK@2)1N*+1PR+5PZ)1NB)5NJ*AYD`*N2)1N3'1O8``,=&[@``]D;I@'01]D;J +M`74+B&;RQT;L!0#K&)#V1NF`=0;V1NH!=`;&1O)_Z^;'1NP#`,=&[@``ZPG_ +M3A#_1N3_1NZ+1@HY1NY\`^FN`L1>!O]&!B:*!XA&WCP@?#(\?G\N@WX0`'4# +MZ9$"]D;H`70,/&%\"#QZ?P2`;MX@BD;>Q%[\)H@`1CEVXG>N*_;KJHM&Y(E& +MYL=&X```QT;T``"+1NR)1OB*1O*(1OJ*1MZ8/0H`='=^`^F8`0O`=0/I?P$M +M"`!T!DAT?^L:D/9&Z$!T"L=&X`H`QT;T`0"#?N0`?@/_3N3'1O```/9&^`%T +M`_]&\/9&^`)T!(-&\`/V1O@$=`^`?OH`=0/19O2+1O0!1O"+1O`Y1A!\`^E1 +M`8M&YHE&Y,=&$```Z=$!D/9&Z!)T`^FK`/9&Z"!TJL=&X!0`QT;T`@#KGI#V +M1ND"="**1N0E!P`M"`#WV-'XB4;@"\!^!K@"`.L#D"O`B4;TZS"0]D;I!'0, +MQT;@%`#'1O0"`.L=]D;I"'07QT;X!`"*1N0E!P`M"`#WV(E&],9&^B"+1N0, +M!T")1N3I.O^0]D;H@'4#Z3#_QT;@_P#'1O3__^DC__9&Z0'KZ/9&Z`1T`^ED +M__9&Z`AT"8-^Y`!U`^E@_O9&Z1!T*HM&Y,'@`@4*`#T4`'T#N!0`B4;@BT;D +M!3(`P>`%/0(`?0.X`@")1O3K(O9&Z2!T#,=&X!0`QT;T`@#K$/9&Z4!T"L=& +MX!X`QT;T!`#'1N0``.FK_O]&Y.FE_L9&^@#'1O0!`,=&^`0`Z93^D"T+`'4# +MZ5+_2'4#Z6+_2'4#Z6+_+0X`=,_I=_[V1O@!=!&*1M[$7OPFB`!&.7;B=P(K +M]H-^X`!^-?9&^`)T+\1>_";&``!&.7;B=P(K]L1>_";&`()&.7;B=P(K]HI& +MX,1>_":(`$8Y=N)W`BOV@W[T`'XL]D;X!'0FBT;T2`%&]NL$D/].](-^]`!^ +M$XI&^L1>_":(`$8Y=N)WZ"OVZ^2+1O`I1A#I1?V0BT;V`T;NF8M>!,1?<"8! +M1P0F$5<&BD;DBUX$B(>9`,1>#":)-XM&[E[)PY#("```5U;_=@;_=@3H:?6# +MQ`2+\`OV=0BX__]>7\G#D/9$=@%T\NBC\XE&_(N$I@")1OZ+A*@`B4;Z_W;\ +MZ)#S@\0"BT;^.4;Z=PN+?OHK^`,^K@3K!8M^^BOX3SE&^G4$@&1^@*&N!"O' +M0#M$)G,$@&1^]XM$#(M4#B3Y"]!T'%>-1OX64/]V#/]V"O]V"%;H"?R#Q`Z) +M1@SIN0"+1@P[QWX"B\>)1@P+P'\#Z:8`H:X$*T;^.T8,?@.+1@R)1O@+P'41 +M:#8%_S:J!/\VJ`#HNNF#Q`:AK@0Y1OAR$6@W!?\VJ@3_-J@`Z*'I@\0&_W;X +MBX2B`(N4I``#1OY24/]V"O]V".AJ[X/$"HM&##E&^'T=*T;X4/^TI`#_M*(` +MBT8(BU8*`T;X4E#H1>^#Q`J#?@P`?B"+1@R9Q%QP)@%'!"815P:+1@P!1OZA +MK@0Y1OYR`RE&_J&N!#E&_G(1:$H%_S:J!/\VJ`#H(>F#Q`;H6_*)1OR+1OZ) +MA*8`BX2H`(E&^HM&_CE&^G<(B_@K?OKK"I"+^"M^^@,^K@0Y?"1S!(!D?OM6 +MZ(8@@\0"_W;\Z!_R@\0"BT8,7E_)PY#("```5U;$7@PFBP>)1OJ+7@2+AYH` +MBY><`(E&_(E6_HM&$"M&"AO)(\$#1@J)1A`K]NLYQ%[\BW[Z)HH!B$;X_T;Z +MH:P$.4;Z<@7'1OH``(!^^$%\"H!^^%I_!(!&^""*1OC$7@;_1@8FB`=&.780 +M?\*+1OK$7@PFB0>+1A!>7\G#R`H``%=6_W8&_W8$Z"OS@\0$B_`+]G4(N/__ +M7E_)PY#V1'8!=/+H9?&)1OR+A)X`B4;^BX2@`(E&^O]V_.A2\8/$`HM&_CE& +M^G<'B_@K?OKK"8L^K`0K?OH#^(E^^#E\*',$@&1_^_9$"`AT'5>-1OH64/]V +M#/]V"O]V"%;H_OZ#Q`Z)1@SIM@"0BT8,.\=^`HO'B48,"\!_`^FB`*&L!"M& +M^CM&#'X#BT8,B4;V"\!U$6C;!?\VJ@3_-J@`Z([G@\0&BT;V.0:L!'<1:-P% +M_S:J!/\VJ`#H=.>#Q`;_=O;_=@K_=@B+A)H`BY2<``-&^E)0Z#WM@\0*BT;V +M.48,?B"+1@PK1O90BT8(BU8*`T;V4E#_M)P`_[2:`.@5[8/$"H-^#`!^&"M^ +M#(M&#`%&^HM&^CD&K`1W!J&L!"E&^HM&^CD&K`1W$6CQ!?\VJ@3_-J@`Z/CF +M@\0&Z#+PB4;\BT;ZB82@`(N$G@")1OXY1OIW"(OX*W[ZZPJ0BSZL!"M^^@/X +M.4;Z=0J`9';W@&1_@.L,BT;X.48,=02`9'_^.7PJ=@2`9'_WQX2.````.7PH +M<@=6Z(X)@\0"_W;\Z-/O@\0"BT8,"\!]`BO`F<1<<"8!1P@F$5<*BT8,7E_) +MP\@*``!75HMV"/?&`0!T%XM>!,1?<":#1R0!)H-7)@"+7@2`3W@!]\8$`'07 +MBUX$Q%]P)H-'+`$F@U<N`(M>!(!/>`+WQ@(`=!>+7@3$7W`F@T<H`2:#5RH` +MBUX$@$]X!/?&"`!T%XM>!,1?<":#1V0!)H-79@"+7@2`3W@(]\9P`'1TB\8D +M<#P@=1"+7@3$7W`F@T=$`2:#5T8`B\8D<#P0=3^+7@3$7W`F@T=``2:#5T(` +MBUX$]D=W"'0F@&=W]XM>!(!/=@)J!O]V!.A])(/$!"3]#`10:@;_=@3HA22# +MQ`:+QB1P/'!U*(M>!/9'"@AT'X!/>!"+7@2*AY(`*N3WT"/PBH>3`"KDA<9T +M&NL2D)"+7@3$7W`F@T<(`2:#5PH`*\!>7\G#BX>:`(N7G`")1OR)5OZ+OYX` +MBX>@`(E&^CO'=PNAK`0KQP-&^NL#D"O'B4;X/0(`?2#$7W`F@T<P`2:#5S(` +MBUX$Q%]P)H-'-`$F@U<V`.NID(J'E``JY(7&=0/ICP"#?O@%?,WVAY4``70B +MQ%[\)L8!_T<Y/JP$=P(K_\1>_";&`0!'.3ZL!'=]*__K>8I'.\1>_":(`4<Y +M/JP$=P(K_\1>_";&`0%'.3ZL!'<"*__$7OPFQ@$!]\8!`'0'Q%[\)H`)`O?& +M!`!T!\1>_":`"03WQ@(`=`?$7OPF@`D(]\8(`'2?Q%[\)H`)$.N6D/?&#P!T +M$_?&"`!T!HI'..L$D(I'-YB)1@:*1@;$7OPFB`%'.3ZL!'<"*_^+7@2)OYX` +MBUX$@$]V".G0_L@P``!75HMV!(O^@[R```AR`^E6!HN<@`#1XXN'NCF)1N`+ +MP'4#Z4(&BYR"`-'C`]B+1Q:)1OX+P'4#Z2T&*L"(1MZ(1N*(1NJ(1NZ(1O"( +M1M2(1M:(1OJ(1OR(1N:(1MCV10D0=`2`3M@']D4(@'0$@$[8",9&]@#V10D@ +M=`2`3O8']D4)`70$@$[V"/9%"@AT!X!.V'#K"Y#V10H"=`B`3O9P@$[J@,9& +M\@#V10E`=`2`3O(']D4)`G0$@$[R"(-])`!T"*&N!#E%)'(&H3@YB44D@WTF +M`'0(H:X$.44F<@:A(#F)12:#?2@`=`BAK`0Y12AV!J$R.8E%*(-]*@!T"*&L +M!#E%*G(&H2(YB44J@WTL`'0(H:P$.44L<@:AW#B)12SV110!=`2`31@0]D44 +M`G0$@$T8(/9%%!!T!(!.[A#V110@=`2`3NX$BD4R*N1(=`Q(="E(="Q(="_K +M!9"`3O#`@'TQ`G4H@$[P"(!],`5T.H!],`9U)(!.\`'K+H!.\$#KWH!.\*#K +MV(!.\"#KTH!],0%UUH!.\`3KT(!],`=U!H!.\`+K!(!.\`/V110(=`:`91A? +MZPKV11@@=`2`3NX"]D44!'0$@&48K_9%&`%T$H!.[D"`3NH0]D48!'0$@$[N +M@/9%%$!U(O9$6`)T'/9%%`AT"H!._$"`3OI`ZPB`3OR`@$[Z@(!.UH#V110( +M=1+V1%@(=`R`3OQ`@$[Z0(!.UH"+7N"#?P(4=0:#?PH&=0F+7O[V1P@(=2;V +M1%@0=`R`3OP0@$[Z$(!.UH#V1%@@=!*`3OP@@$[Z((!.UH#K!(!E&?SV1M:` +M=02`3M2`]D4(!'0$@$[>@/9%"$!T!(!.XH#V10@@=`2`3N)`]D4($'0$@$[B +M(/9%#`)T!(!.W@+V10P$=`2`3MX!]D4(`G48@'[R`'02]D4*$'0&QD;L`NL* +MQD;L`>L$QD;L`,9&W/^#?0(`=06#/0!T98-]`@-W7W(&@3T`A'=7_W4"_S6+ +M7O[_=PS_=PKH9"6)1M")5M+'1N@``.L$D/]&Z(-^Z`5]+XM>Z-'CBX>X!)E2 +M4(M>Z-'CBX?^.9D#1M`35M)24.@L)8E&VCT``7/.BD;HB$;<@'[<_W44*\") +M10*)!8E%!HE%!,9&W`")1MIJ`&C0!_]U`O\UZ/<DB82,`(-](`!U((-](@!U +M&FH`:@K_=0+_->C;)(E%(J'F.#E%(G8#B44B@WT@`'4%QT4@"@"*13J(1O0* +MP'0$/`QV!,9&]`B*1O0JY#E%(G,,@WTB`'0&BD4BB$;TBD;T"$;J/`QS`_Y& +M](%](/L$<@;&1N;_ZPV+12"Y!0`KTO?QB$;F]D4(`70'@$[4$.L%D(!.UA"+ +M10R+50XD^0O0=`2`3NX@Z$OIB4;HBH2&`"4#`%!J:%;H[AZ#Q`;_=@S_=@K_ +M=@C_=@96Z#D"@\0*:@96Z+H>@\0$"$;6BD;4]M`@1M9J`&H&5NB\'H/$!O9$ +M=D!T!(!.[B#&1N0`BD;P*N10:@A6Z+H>@\0&"\!T!(!.Y$**1NXJY%!J"5;H +MHQZ#Q`8+P'0$@$[D1(I&ZBKD4&H*5NB,'H/$!@O`=`2`3N1(BD;B*N10:AY6 +MZ'4>@\0&BD;>*N10:A]6Z&8>@\0&:A56Z"H>@\0$)0\`"D;\4&H55N@R'H/$ +M!HI&^BKD4&H65N@^'H/$!HI&YBKD4&HA5N@O'H/$!HM%`@L%=#:*1MPJY%!J +M=E;H&1Z#Q`;_=MIJ<E;H#1Z#Q`:*1MPJY%!J?%;H_AV#Q`;_=MIJ>%;H\AV# +MQ`:*1O0JY(F$D`"*1MB(A)(`BD;VB(23`(I&\HB$E`"*1NR(A)4`BD4VF%!J +M&E;HOQV#Q`:*13684&H;5NBQ'8/$!HI%-)A0:AQ6Z*,=@\0&BD4SF%!J'5;H +ME1V#Q`;V10H(=!6*13F84&HB5NB!'8/$!HI%.9A0ZPUJ`&HB5NAO'8/$!FH` +M:B-6Z&0=@\0&@'[D`'065NCR%X/$`HI&Y"KD4&H%5N@M'8/$!O9%&`%U&/9& +M!@%T$E;HT!>#Q`)J&&H%5N@/'8/$!O9$=P%T'O9%"`%T&%;HLA>#Q`)J$6H% +M5NCQ'(/$!H!D=_[K(O9$=P%U'/9%"`%U%E;HCA>#Q`)J$FH%5NC-'(/$!H!, +M=P%6Z'@7@\0"BD;6*N10:@96Z,X<@\0&_W;HZ/KF@\0"7E_)PY!5B^Q6BW8$ +MBT08BU0:,48&,58(BT04BU06,48*,58,]D1V$'1%]D8&$'04]D08$'0%:@+K +M`Y!J!E;H\`Z#Q`3V1@8"=!3V1!@"=`5J`.L#D&H!5N@"`8/$!/9&!D!T*?9$ +M&$!T&FH"ZQB0]D8&$'0):@96Z+8.@\0$]D8&0'0):@96Z'</@\0$]D8*@'03 +M]D04@'0$:@+K`FH&5NB.#H/$!%[)P\@"``!6BW8$]D1V$'1JBH2&`"4#`%!J +M:%;HXAN#Q`;V1!@"=`EJ`5;HB0"#Q`3V1!@0=`EJ!E;H3@Z#Q`3V1!A`=`EJ +M!E;H#P^#Q`2`9';OBH2&`"4#`%!J:%;HH!N#Q`9J!E;H?QN#Q`0,$"KD4&H& +M5NB)&X/$!E[)PY#(`@``5U:+=@2+?@;HO^6)1OZ*A(8`)0,`4&IH5NAB&X/$ +M!E=6Z!``@\0$_W;^Z*'E@\0"7E_)PU6+[%:+=@16Z/45@\0"@WX&`'0::B-J +M!5;H+AN#Q`;$7'`F@T<X`2:#5SH`ZQAJ)&H%5N@4&X/$!L1<<":#1SP!)H-7 +M/@#$7'`F@T<$`2:#5P8`7LG#58OL5HMV!`OV=0/IFP"+1@@+1@9U`^F0`%;H +MQPZ#Q`)6Z!81@\0"BT1$BU1&Q%X&)HE';":)5VZ+1$R+5$[$7@8FB4=H)HE7 +M:O\VK@2-A*(`4.BO%8/$!)G$7@8FB4<,)HE7#O\VK`2-A)H`4.B4%8/$!)G$ +M7@8FB4<0)HE7$L1>!B:+1PPFBU<.)BE'!"895P;$7@8FBT<0)HM7$B8!1P@F +M$5<*@&1%?U[)P\@B``!75HM>!(L'B4;LBUX&T>,#7@2+1Q:)1OZ+V(M'!L'H +M`HE&\&H`:,@`BT<*BU<,BL2*XHK6*O;1ZM'84E#H51^(1OS'1O@``.MND$>! +M_Q`G?2B+1NX%0`!0_W;ZZ+/@@\0$BT;Z!0@`4.BPX(/$`HA&]CQ`<M4\8'?1 +M@?\0)WT#Z:H`:&,):-H$_S;<`/\VX@#HO=J#Q`C_=OB+7O[_=P+_=NQHXP3H +MJ-J#Q`AH%@7HG]J#Q`+_1OB+1O`Y1OA\`^F^`(M>^-'C`U[^BT<4B4;ZBU[X +MT>.+A[`$B4;NBU[XT>,#7OZ)1R2+1NX%0`!0_W;ZZ!W@@\0$:@"+1OH%"`!0 +MZ`[@@\0$BT;N!04`4/]V^NC^WX/$!&B!`(M&^@4(`%#H[M^#Q`0K_^D@_Y"* +M3OBX`0#3X(M>_@E'$HM&[@5+`%#_=OKHRM^#Q`1J`(M&^@4(`%#HN]^#Q`2+ +M1NX%?@!0_W;ZZ*O?@\0$BD;\*N10BT;Z!0@`4.B8WX/$!.DU_Y"+7OZ`3PX! +MBU[^BT<&B4;RQT;>```+P'\#Z:H`H:P$]V;R!1``4.B5UX/$`HE&Z(E6ZJ&N +M!/=F\@40`%#H?]>#Q`*)1N")5N*+1NH+1NAT!XO""T;@=07'1M[__XM&Z(M6 +MZH#D#XK$BN**UBKVT>K1V-'JT=C1ZM'8T>K1V`-&Z(/2``4/`(/2`"3PB4;H +MB5;JBT;@BU;B@.0/BL2*XHK6*O;1ZM'8T>K1V-'JT=C1ZM'8`T;@@](`!0\` +M@](`)/")1N")5N(K_^E]`9!J=(O?P>,"`U[^_W=V_W=TZ`K?@\0&BT;LB82` +M`(M&!HF$@@")O(8`BD8&*N29BO**U(K@*L"+3NR`S?^+V`O*B\<JY)D+V`O* +MB5QZB4Q\B\?!^`.+7OX#1P2)A(0`QT1V``*+W\'C`@->_HM'=(M7=HE$<(E4 +M<HI&]BKDQ%QP)HE'<";'1W(``(O'F3/"*\+!^`(SPBO"B4;XB]C1XP->_HM' +M)(F$B@"+7OC1XP->_HM'%(F$B`"+7OZ*3OBX`0#3X(5'$G4#Z0X!B\<E`P!0 +M:FA6Z"(7@\0&B\?!X`-0:AA6Z!,7@\0&@W[>`'T#Z><`BX2D``N$H@!U.XM& +MX(M6XM'JT=C1ZM'8T>K1V-'JT=B*3N"#X0^)C*(`B82D`,>$I@```,>$J``` +M`*&N!"O2`4;@$5;BBX2<``N$F@!U.XM&Z(M6ZM'JT=C1ZM'8T>K1V-'JT=B* +M3NB#X0^)C)H`B82<`,>$G@```,>$H````*&L!"O2`4;H$5;J1XM>_CE_!GY< +M:388!:H`@<9<#O\&&`6+W]'C`U[^B7<TB]_!XP(#7OZ+1W8+1W1T`^E1_FIT +MZ#[5@\0"B]_!XP(#7OZ)1W2)5W:+W\'C`@->_HM'=@M'='0#Z2C^QT1V`(#K +MG)"AK`2Y!0`KTO?QHS(YH:P$P>`"*]+W\:,B.:&L!"L&(CD]$`!V"*&L!"T0 +M`.L%H:P$2$BCW#BA(CDY!MPX<P:AW#BC(CFAK`31Z*/F.*&N!"O2]_&C.#FA +MK@3!X`(KTO?QHR`Y*\!>7\G#R!8``%=6H0`&_P8`!@O`=`<KP%Y?R<.0QT;T +MZ#B+1O2CNCF+V,<'``"+7O3'1P(7`(M>],='#@``BU[TQT<0@`"+7O3'1Q(` +M`(M>],='%```BU[TQT<(``#'1OR``,=&\`@"QT;R``#'1OX``,9&^``K_^GS +M`(I&^B0'.D;X=`/I`@%I]_0`@<8:!L<$``"+1OZ)1`**1OHE?P")1`C'1`I` +M>,=$#'T!BT;\B404BT;\B406BU[TBU\(T>,#7O2)=R:+7O3_1PCV1OH@=&"+ +M1OP%!@!0Z*W;@\0"BD[Z*NT[P74$@$P(@,=$!A``BT;\!1``B408BT;\!1`` +MB40:@T;\((M>](M?"-'C`U[TB7<FBU[T_T<(BE[X*O\#7O".1O**1`@FB`>` +M1O@"ZQW'1`8(`(-&_!"*7O@J_P->\(Y&\HI$"":(!_Y&^(M>]/]'!(M>_M'C +M`U[TB7<6BT0&BU[T`4<&_T;^1X/_"'T7BT;\!00`4.@-VX/$`HA&^CS_=`/I +M\?['!JP$``#'!JX$``"+7O2#?P8`=%N+1P;1X&H`4*'B.(L6Y#AK3P0H*\&# +MV@!K3P9X*\&#V@!24.@^&8E&ZHE6[`O2=04]``QV"<<&K`0`#.L8D`O2=0X] +M0`!S"<<&K`1``.L&D"3PHZP$H:P$HZX$*__K`I!'BU[T.7\$=@Q74^A>^8/$ +M!`O`?>N+7O2`3PP#*_^+W]'CBX>X!)DKPM'XB]_1XXF'_CE'@_\%?.7_!KPY +MBU[TBU\6BT<TB4;JB]C'!X`EQT<"``"+7NK&1S`(BU[JQD<R`(M>ZL9',0"+ +M7NHKP(E'&HE'&(M>ZO]W%O]W%%!04^@?\(/$"O]VZNA\#(/$`L=&ZC0`QT;L +M``"A!@#$7NHFQP?:8R:)1P+I;/V0*\##D,@(``!75J&Z.8E&^@O`=08KP%Y? +MR<.A&@6)1O['1O@``.MID$>+7OPY?P9^68O?T>,#7OR+=S0+]G3I]D1V`73C +M]D1V!G0'5NCI`(/$`H-\>`!T!U;H?`"#Q`*`O)8``'0'5N@$`X/$`O9$=@AT +M!U;H5P&#Q`+V1':`=*A6Z`3E@\0"ZY^0_T;^_T;XBT;XBU[Z.4<$?B6+1OXY +M1P1_!<=&_@``BU[^T>,#7OJ+1Q:)1OP+P'30*__I:O^0@SX:!0A\"<<&&@4` +M`.E$__\&&@7I/?^0R`0``%:+=@3H<=R)1OR+1'B)1O['1'@``(!,=H#_=OSH +M7=R#Q`+V1OX!=`2`3&80]D;^`G0$@$QF(/9&_@1T!(!,9D#V1OX(=`B`3$6` +M@$QE@/9&_A!T!(!,9H!>R<.0R`8``%=6BW8$Z!#<B4;\]D1V`G4E]D1V!'0, +M@$QD`H!,=H"`9'Z`@&1V^_]V_.COVX/$`BO`7E_)PXN$I@")1OZ+A*@`B4;Z +MBT;^.4;Z=PB+^"M^^NL*D(OX*W[Z`SZN!#E\)'(4]D1^!'6_@$Q^!(!,9`2` +M3':`Z[$Y?"9WK/9$5`ATIO9$?@AUH(!,?@B`3&0(Z]^0R`@``%=6BW8$Z'K; +MB4;\BX2>`(E&_HN$H`")1OJ+1OXY1OIW!XOX*W[ZZPF+^"M^^@,^K`2+QRN$ +MC@#V1'\!=1TYA(P`<PLY?")V!O9$9H!T#(!,?P&`3&4!@$QV@#E\*G<7]D15 +M"'0N]D1_"'4H@$Q_"(!,90CK&I`Y?"AR&/9$501T$O9$?P1U#(!,?P2`3&4$ +M@$QV@/]V_.CMVH/$`HF\C@`KP%Y?R</(#```5U:+=@3HT-J)1OJ+A)H`BY2< +M`(E&_(E6_HN\G@"+A*``.\=W"2O'`P:L!.L#D"O'/0,`?1_$7'`F@T<P`2:# +M5S(`Q%QP)H-'-`$F@U<V`%Y?R<.0BD0[Q%[\)H@!1SD^K`1W`BO_Q%[\)L8! +M`T<Y/JP$=P(K_\9&]@#V1@:`=`2`3O8(]D8&0'0$@$[V`?9&!A!T!(!.]@+V +M1@8@=`2`3O8$]D1,`G0$@$[V@/9$3`AT!(!.]A#V1$P0=`2`3O8@]D1,('0$ +M@$[V0(I&]L1>_":(`4<Y/JP$=P(K_XF\G@"`3'8(_W;ZZ/+9@\0"7E_)PY#( +M!```5HMV!.C;V8E&_HJ$E@"(1OS&A)8``(!,=H#_=O[HQMF#Q`+V1OR`=!'$ +M7'`F@T=(`2:#5TH`@$QH`O9&_$!T*_9$%`AT%,1<<":#1T@!)H-72@"`3&@" +MZQ*0Q%QP)H-'4`$F@U=2`(!,:`CV1OP0=!'$7'`F@T=8`2:#5UH`@$QH$/9& +M_"!T$<1<<":#1UP!)H-77@"`3&@@5NCI`H/$`HM$3(M43HE$;(E4;O:$E0`" +M=`V*1OPJY%!6Z$G^@\0$*\!>R<.0R`8``%=6BW8$BWX&]\<"`'1NQ%QP)H-' +M'`$F@U<>`.CZV(E&^O\VK@2-A*(`4.BO"8/$!)G$7'`F*4<$)AE7!HN$I@") +MA*@`@&1^P(J$A@`E`P!0:FA6Z'8.@\0&5N@E"8/$`FB"`&H%5NAC#H/$!E;H +M$@F#Q`+_=OKHH]B#Q`+WQP$`=0/IS0#$7'`F@T<@`2:#5R(`Z(/8B4;ZBH2& +M`"4#`%!J:%;H)@Z#Q`9J"E;H!0Z#Q`2(1OPE\0`,`5!J"E;H"PZ#Q`96Z+H( +M@\0":DAJ!5;H^0V#Q`;_=OKH0-B#Q`+H-MB)1OJ*A(8`)0,`4&IH5NC9#8/$ +M!HI&_"KD4&H*5NC*#8/$!E;H>0B#Q`)J2&H%5NBX#8/$!O\VK`2-A)H`4.BY +M"(/$!)G$7'`F`4<()A%7"HN$G@")A*``@&1_P(!D=O=6Z(CQ@\0"_W;ZZ,W7 +M@\0"7E_)P\@$``!75HMV!/9$%`1T`^FZ`/9&!@)U%NBGUXOXBH2&`"4#`%!J +M:%;H2PV#Q`;V1@8!=`C'1OP``NL&D,=&_``$]D8&!'0+BT;\]]`A1';K!Y"+ +M1OP)1';V1'<&=1;V1!@0=!!J%5;H]`R#Q`0+A)``ZPR0:A56Z.0,@\0$)/!0 +M:A56Z/`,@\0&]D8&!'0/]D1W!G4)@$Q,!&H"ZP>0@&1,^VK]:FU6Z,P,@\0& +M@(R6``+$7'`F@T=4`2:#5U8`]D8&`G4'5^C]UH/$`EY?R</(!```5U:+=@3V +M1@8"=1;HX-:+^(J$A@`E`P!0:FA6Z(0,@\0&]D04!'0-QT;^;0#'1OP"`.L+ +MD,=&_FP`QT;\`0#V1@8$=!2`3$P!_W;\_W;^5NA0#(/$!NL5D(M&_/?04/]V +M_E;H/0R#Q`:`9$S^BD;\"(26`,1<<":#1TP!)H-73@#V1@8"=0=7Z&C6@\0" +M7E_)PY#("```5U:+=@2+G(``T>.+A[HYB4;ZZ$/6B4;\BH2&`"4#`%!J:%;H +MY@N#Q`9J;%;HQ0N#Q`2(1OAJ;5;HN0N#Q`2(1O[_=OSH%=:#Q`**1$PE!`") +M1$S'1$X``/9$%`AT$(!,3`CV1!1`=2OV1OA`ZR/V1OA`=`2`3$P(BU[Z@W\" +M%'4&@W\*!G0,]D040'4&]D;X@'0$@$Q,`O9$%`1T!_9&_@+K%9#V1OX"=`:` +M3$P$ZP2`9$S[]D;X`70$@$Q,`8M>^H-_`A1U!H-_"@9U#XN\@@#1YXM9%O9' +M"`AU&/9&^!!T!(!,3!#V1O@@=`R`3$P@7E_)PX!,3!!>7\G#R`8``%:+=@3H +M4=6)1OZ*A(8`)0,`4&IH5NCT"H/$!FH+5NC3"H/$!(A&^FIL5NC'"H/$!(A& +M_/]V_N@CU8/$`L1>!BO`)HE'`B:)!_9&^@1T#O9&^@)U",1>!B:`3P(!]D08 +M('0.]D;\0'4(Q%X&)H!/`@1>R<.0R`0``%:+=@2AK@0%"P#$7@8FB4<$H:P$ +M2,1>!B:)1P;HP=2)1O[_-JX$C82B`%#H=@6#Q`3$7@8FB0?_-JP$C82:`%#H +M806#Q`3$7@8FB4<"BH2&`"4#`%!J:%;H.0J#Q`9J"U;H&`J#Q`2(1OS_=O[H +M=-2#Q`+$7@8KP":)1PHFB4<(]D1V`G0&N`$`ZP20N`(`*]+$7@8F"4<(]D1V +M"'0&N``!ZP20N``"Q%X&)@E'"/9$=A!T!K@`0.L#D"O`Q%X&)@E'"/9&_`1T +M#O9&_`)U",1>!B:`3PH!7LG#R`@``%=6BW8$C7Q$BF4!)0"`B07'10(``.CJ +MTXE&_/\VK@2-A*(`4.B?!(/$!(E&^/\VK`2-A)H`4.B-!(/$!(E&^HJ$A@`E +M`P!0:FA6Z&D)@\0&:@M6Z$@)@\0$B$;^_W;\Z*33@\0"]D1V`G0%N`$`ZP.X +M`@`KT@D%]D1V0'0%N(``ZP(KP`D%]D;^!'0*]D;^`G4$@$T"`?9$&"!T"O9% +M"`AU!(!-`@3V10('=`.`#4"+1O@Y1"1R`X`-!(M&^#E$)G<#@`T(H:X$*T;X +M2'4#@`T0]D1V"'0%N``!ZP.X``()!?9$=A!T!;@`0.L"*\`)!8M&^CE$*'($ +M@$T!!(M&^CE$*G<$@$T!"(M&^CE$+'<$@$T!(*&L!"M&^DAU!(!-`1!>7\G# +MD,@"``!75HMV!(M^!NC-THE&_H!,=B"#__]U#<:$EP`"QH28``#K+)"#__YU +M!\:$EP`#Z^P+_WX;QH27``&Y!0"+QYGW^8OX/?\`?@.X_P"(A)@`5NCG`(/$ +M`O]V_NB`TH/$`H/__G0-Q%QP)H-'8`$F@U=B`%Y?R<.0R`(``%:+=@1J"5;H +M\`>#Q`0,("KD4&H)5NCZ!X/$!E;HJ0*#Q`)J1&H%5NCH!X/$!E;HEP*#Q`*` +M3'9`*\!>R<.0R`(``%:+=@2+1`R+5`XD^0O0=3!J"5;HH@>#Q`0DWRKD4&H) +M5NBL!X/$!E;H6P*#Q`)J1&H%5NB:!X/$!E;H20*#Q`*`9':?*\!>R<.058OL +M5U:+=@2+?@9H5Q!H'`7_-MP`_S;B`.AVR(/$"%=6Z&[(@\0$:"4%Z&7(@\0" +M7E_)P\@"``!75HMV!/9$=PAU2>B,T8OX@$QV`HJ$A@`E`P!0:FA6Z"P'@\0& +M:@96Z`L'@\0$)/T,!"KD4&H&5N@3!X/$!O9$%(!T"6H&5NB.^8/$!%?H3=&# +MQ`)>7\G#R`(``%=6BW8$Z#;1B_B`9';]@$QW"(J$A@`E`P!0:FA6Z-(&@\0& +M:@96Z+$&@\0$)/DJY%!J!E;HNP:#Q`97Z`31@\0"7E_)PY!5B^Q75HMV!.CM +MT(OXBH2&`"4#`%!J:%;HD0:#Q`96Z$`!@\0":AAJ!5;H?P:#Q`97Z,C0@\0" +M7E_)PY!5B^Q75HMV!.BQT(OXBH2&`"4#`%!J:%;H50:#Q`96Z`0!@\0":A1J +M!5;H0P:#Q`96Z/(`@\0"5^B%T(/$`EY?R</(`@``5U:+=@3H;M"+^(J$A@`E +M`P!0:FA6Z!(&@\0&5NC!`(/$`FH2:@56Z``&@\0&:@96Z-\%@\0$#!`JY%!J +M!E;HZ06#Q`:`3'<!5^@NT(/$`EY?R<.0R`(``%=6BW8$Z!;0B_B*A(8`)0,` +M4&IH5NBZ!8/$!FH&5NB9!8/$!"3O*N10:@96Z*,%@\0&5NA2`(/$`FH1:@56 +MZ)$%@\0&@&1W_E?HUL^#Q`)>7\G#D%6+[%=6BW8$Z+_/B_B*A(8`)0,`4&IH +M5NAC!8/$!FH`:@96Z%@%@\0&5^BASX/$`EY?R<-5B^Q75HMV!"O_ZP%'@?_H +M`WT1:@56Z!D%@\0$"\!U[%Y?R<-H91%H)P7_-MP`_S;B`.@AQH/$"/^TA@#_ +MM((`_[2``&@P!>@,QH/$"&AC!>@#QH/$`EY?R<-5B^Q75HM>!(MW!(M_!CO^ +M=PB+QBO'7E_)PXM&!BO'`\9>7\G#D,@$``!6BW8$BT08BU0:B4;\]D;\`G0R +M:@56Z)4$@\0$"\!U1VHD:@56Z)X$@\0&Q%QP)H-'/`$F@U<^`,1<<":#1P0! +M)H-7!@#V1OP0=`EJ`E;H__:#Q`3V1OQ`=`EJ`E;HP/>#Q`2`3'807LG#R!`` +M`%=6@SZ\.0!U!RO`7E_)PY"ANCF)1O8+P'4(N/__7E_)PY"+7O:+1Q:)1OX+ +MP'3K@WX$`'SEBT8$BU[^.4<&=MJ+V-'C`U[^BW<T"_9TS.A3SHE&^(J$A@`D +M`XA&]&IH5NC=`X/$!(A&_(I&]"KD4&IH5NCC`X/$!FH+5NC"`X/$!(A&\O9& +M\@AU!U;H'OV#Q`)J'5;HJ0.#Q`2(1O`K_^L"D$>!_Q`G?0UJ!5;HD0.#Q`0+ +MP'7L_W8&:AU6Z)D#@\0&:B1J!5;HC@.#Q`8K_^L"D$>!_Q`G?0UJ!5;H80.# +MQ`0+P'7L@WX&"G4N:@UJ'5;H9`.#Q`9J)&H%5NA9`X/$!BO_ZP%'@?\0)WT- +M:@56Z"T#@\0$"\!U[(I&\"KD4&H=5N@R`X/$!O9&\@AU!U;HM?R#Q`**1OPJ +MY%!J:%;H%@.#Q`;_=OCH7<V#Q`+IN/Z0*\##D,@,``"#?@3_=2"#?@;_=1K_ +M=@[_=@S_=@K_=@C_=@;_=@3H[0"#Q`S)PX%^"`%D=0:#?@H`=`6X___)PXM& +M#(M6#HE&_(E6_HI&!BKD"\!UYL=&](``QT;Z@`#$7OPFB@<E!P`FB0<FQT<" +M``#$7OPKP":)1P8FB4<$Q%[\)O8'`70I_W;TZ+L`@\0""\!T"L1>_":`3P0! +MZQ+$7OPFB@<E`0`FB0<FQT<"``#$7OPF]@<$="&+1O0%!@!0Z!K)@\0"QP9^ +M!0``:@&+1O1`0%#H_,B#Q`3$7OPF]@<"=!H&4_]V^O]V].C6`(/$"`O`=`C$ +M7OPF@$\$`L1>_";V!P1T#(,^?@4`=`4F@$\$!"O`R</(!@``QT;Z@`#_=OKH +M(P"#Q`(+P'0$*\#)P[C__\G#D,<&?@4!`&B&`.B;R(/$`BO`P\@$``"+1@0% +M!`!0Z(?(@\0"B$;^]M`JY%"+1@0%!`!0Z&C(@\0$:@3_=@3H7<B#Q`2+1@0% +M"`!0Z%K(@\0"BT8$!00`4.A-R(/$`HA&_(I&_BKD4(M&!`4$`%#H+<B#Q`2* +M1OPJY/?0*N2*3OXJ[3O!=06X`0#)PRO`R</(!@``5U;'1OP!`(MV!(O^`WX& +MZP.01D8[_GY<:@!6Z.W'@\0$5NCPQX/$`HA&_@K`=..+QBM&!)DKPM'XQ%X( +M)HA'",1>"";&1PD`B\8K1@29*\+1^,1>"":(1PJ*1O[$7@@FB$<+QT;\``"+ +M=@2+_@-^!NFG`)`K]NMSD)!'1SE^!GY1BT8$`\=0Z(O'@\0"B$;Z._YU"(I& +M_CA&^G4*._YTVH!^^@!TU(O&F2O"T?C$7@@FB$<(BD;^Q%X()HA'"8O'F2O" +MT?C$7@@FB$<*BD;ZZXN0T&;^@'[^`'4<:@"+1@0#QE#H)<>#Q`1&1CEV!G\# +MZ77_QD;^`8I&_BKD4(M&!`/&4.@%QX/$!"O_Z6[_:/\`5NCVQH/$!$9&._Y_ +M\(M&_%Y?R<.0B]R+7P*+EX@`BX>*`(O<`T<$[H/"".S#B]R+7P*+EX@`BX>* +M`(O<`T<$[HM'!H/"".[#B]R+7P*+EX@`BX>*`(O<`T<$[H/"".P[1P9T"(M' +M!NZX`0##,\##8!X&+HX><`'H"P"Z(O^X`(#O!Q]ASS/;NH0`[*B`=#F#Z@2P +MY^Z#P@CLBN"#Z@BP9^Z#P@CL"L1T'(D>\@6)%O0%T>.+OPXYJ`%U):@"=2>H +M!'4@T>N#Z@2#PA!#.Q[P.'*XPXL>\@6+%O0%@^H$ZZKIG`'IOP*#P@0SP.R+ +MV('C^`#!ZP*+>30D!SP"=57W178@`'5<Q(6B`(N=I@"+M:@`.]YT<G<$BQZN +M!(/J#(J%B@`$8^Z#P@BX#`#\B\LKSCO(<@*+R"O!\R9N._-S)8FUJ`"#Z@B* +MA8H`!&#N@\(([NN`8%!HI07HWK^#Q`1AZ_#K8)"+G:8`._-T!C/V._-UNH/J +M"(J%B@`$!NZ#P@CL)/D,`N[KN(N5B`"*A8H`!`;N@\(([*@$=`<D^0P"[NNB +M)/GN@V5V_8--=@3V112`=0+KCU*X`@!05^CZ\(/$!%KK@(J%EP`\!'1M/`!U +M"E?HAO:#Q`+I:O]7Z#KV@\0"BH67`#P!=`\\`G0X/`-T7<:%EP``Z]B+E8@` +MBH6*``1C[H/""+``[K"![K``[K""[HJ%F`#NL`#NL(/NQH67``#I'_^+E8@` +MBH6*``1C[H/""+``[K"![HN5B`"*A8H`!`;N@\((["3Y[NGV_HN5B`"*A8H` +M!&/N@\((L`#NL(/NQH67``#IVOX\!W4#Z1,!8%!H@`7HP;Z#Q`1AZ:,`@\(" +M,\#LB]B!X_@`P>L"BWDT)`<\`W72,\F+E8@`BH6*``0.[H/"".R*R`K)=0/K +M8Y"+M9X`BY6@`#OR<@>+QBO"ZPB0*]:AK`0KP@/!.T4J<U/$A9H`BY6(`(J% +MB@`$8NZ#P@B*I94`BYV@`(/[`'4$BQZL!$OL._-T,2:(!$8[-JP$=",*Y'5" +MXNN)M9X`@TUV"(N5B`"*A8H`!&#N@\(([NFN_>M)D#/VZ]E6!L1U<":#1#`! +M)H-4,@`F@T0T`2:#5#8`!U[BG^O`]L0"=`HZ13MUM+``ZP60//]UJSOS=,HF +MB`1&.S:L!'6=,_;KF?=%=A``=0E15^CG]X/$`EGI3_^+E8@`BH6*``1B[H/" +M".PSVXK8,\#L4U!7Z"K7@\0&Z6[_@\(&,\#LB]B!X_@`P>L"BWDT)`<\`70/ +M8%!HR@7H=+V#Q`1AZR.0BY6(`(J%B@`$3.Z#P@CL"(66`(N5B`"*A8H`!&#N +M@\(([NGB_%6+[(M>!/]V"/]V!O]W`O\WZ"X`BUX$B5<"B0>+Y5W"!@!5B^R+ +M7@2+!XM7`HM.!NCS`8M>!(D'B5<"B^5=P@0``%6+[%=64S/_BT8&"\!]$O?7 +MBU8$]]CWVAT``(E&!HE6!(M&"@O`?1+WUXM6"/?8]]H=``")1@J)5@@+P'46 +MBTX(BT8&,]+W\8O8BT8$]_&+T^L\D(O8BTX(BU8&BT8$T>O1V='JT=@+VW7T +M]_&+\#/24E#_=@K_=@CH-`$[5@9W!W((.T8$=@.#[@$STHO&"_]T!_?:]]B# +MV@!;7E^+Y5W""```58OL4U<S_XM&!@O`?1+WUXM6!/?8]]H=``")1@:)5@2+ +M1@H+P'T0BU8(]]CWVAT``(E&"HE6"`O`=1J+3@B+1@8STO?QBT8$]_&+PC/2 +M"_]U1>M*D(O8BTX(BU8&BT8$T>O1V='JT=@+VW7T]_$STE)0_W8*_W8(Z)$` +M.U8&=P=R"SM&!'8&*T8(&U8**T8$&U8&"_]U!_?:]]B#V@!?6XOE7<((`%6+ +M[%-6BT8*"\!U%HM."(M&!C/2]_&+V(M&!/?QB]/K/)"+R(M>"(M6!HM&!-'I +MT=O1ZM'8"\EU]/?SB_`STE)0_W8*_W8(Z!P`.U8&=P=R"#M&!'8#@^X!,]*+ +MQEY;B^5=P@@``%6+[(M&!HM>"@O8BUX(=0N+1@3WXXOE7<((`/?CB\B+1@3W +M9@H#R(M&!/?C`]&+Y5W""``R[>,&T>#1TN+ZPP"#!A8&`8,6&`8`_P8>.8,^ +M'CED<P/I@0"#!B@Y`8,6*CD`QP8>.0``H28Y"P8D.70H_S8F.?\V)#EJ`&ID +MH20YBQ8F.2L&-#D;%C8Y4E#H;_]24.@$_Z/\.8,^_#D`?`>#/OPY9'X&QP;\ +M.0``@SX,.@-\#?\V_#EH]@7HF+J#Q`2#/@PZ`GP):/D%Z(BZ@\0"*\"C-CFC ++-#GIZJ`````````V +` +end diff --git a/usr.sbin/stallion/stlload/stlload.c b/usr.sbin/stallion/stlload/stlload.c new file mode 100644 index 000000000000..d44c052de96b --- /dev/null +++ b/usr.sbin/stallion/stlload/stlload.c @@ -0,0 +1,564 @@ +/*****************************************************************************/ + +/* + * stlload.c -- stallion intelligent multiport down loader. + * + * Copyright (c) 1994-1996 Greg Ungerer (gerg@stallion.oz.au). + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Greg Ungerer. + * 4. Neither the name of the author nor the names of any co-contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/*****************************************************************************/ + +#include <stdio.h> +#include <errno.h> +#include <fcntl.h> +#include <unistd.h> +#include <stdlib.h> +#include <time.h> +#include <sys/stat.h> +#include <sys/ioctl.h> + +#include "cdk.h" + +/*****************************************************************************/ + +char *version = "0.0.5"; +char *defdevice = "/dev/staliomem%d"; +char *image = "/usr/lib/stallion/cdk.sys"; +char *oldimage = "/usr/lib/stallion/2681.sys"; + +char *progname; +char *memdevice; +char devstr[128]; +int brdnr = 0; +int verbose = 0; +int reset = 0; + +/* + * Define a local buffer for copying the image into the shared memory. + */ +#define BUFSIZE 4096 + +char buf[BUFSIZE]; + +/* + * Define the timeout length when waiting for slave to start up. + * The quantity is measured in seconds. + */ +#define TIMEOUT 5 + +/* + * Set up a default feature area structure. + */ +cdkfeature_t feature = { 0, 0, ETYP_CDK, 0, 0, 0, 0, 0 }; + +/* + * Have local copys of the board signatures ready. + */ +cdkecpsig_t ecpsig; +cdkonbsig_t onbsig; + +/*****************************************************************************/ + +/* + * Declare internal function prototypes here. + */ +void usage(void); +int ecpfindports(cdkecpsig_t *sigp); +int onbfindports(cdkonbsig_t *sigp); +int download(void); + +/*****************************************************************************/ + +void usage() +{ + fprintf(stderr, "Usage: %s [OPTION]\n\n", progname); + fprintf(stderr, " -h print this information\n"); + fprintf(stderr, " -v print full diagnotsic trace\n"); + fprintf(stderr, " -V show version information and exit\n"); + fprintf(stderr, " -i specify image file to use\n"); + fprintf(stderr, " -b download board number\n"); + fprintf(stderr, " -d specify memory device to use\n"); + fprintf(stderr, " -B enable slave boot banner\n"); + fprintf(stderr, " -R reset board only\n"); + fprintf(stderr, " -t set size of TX slave buffer\n"); + fprintf(stderr, " -r set size of RX slave buffer\n"); + exit(0); +} + +/*****************************************************************************/ + +/* + * Given a boards signature determine how many ports it has. We need to + * know this to setup the slave feature arguments. This function is for + * ECP boards only. + */ + +int ecpfindports(cdkecpsig_t *sigp) +{ + unsigned int id; + int bank, nrports; + + nrports = 0; + for (bank = 0; (bank < 8); bank++) { + id = (unsigned int) sigp->panelid[bank]; + if (id == 0xff) + break; + if ((id & 0x07) != bank) + break; + if (id & 0x20) { + nrports += 16; + bank++; + } else { + nrports += 8; + } + } + + return(nrports); +} + +/*****************************************************************************/ + +/* + * Given a boards signature determine how many ports it has. We need to + * know this to setup the slave feature arguments. This function is for + * ONboards and Brumbys. + */ + +int onbfindports(cdkonbsig_t *sigp) +{ + int i, nrports; + + if (sigp->amask1) { + nrports = 32; + } else { + for (i = 0; (i < 16); i++) { + if (((sigp->amask0 << i) & 0x8000) == 0) + break; + } + nrports = i; + } + + return(nrports); +} + +/*****************************************************************************/ + +/* + * Download an image to the slave board. There is a long sequence of + * things to do to get the slave running, but it is basically a simple + * process. Main things to do are: copy slave image into shared memory, + * start slave running and then read shared memory map. + */ + +int download() +{ + unsigned char alivemarker; + time_t strttime; + int memfd, ifd; + int nrdevs, sigok, n, rc; + + if (verbose) + printf("Opening shared memory device %s\n", memdevice); + if ((memfd = open(memdevice, O_RDWR)) < 0) { + fprintf(stderr, + "%s: failed to open memory device %s, errno=%d\n", + progname, memdevice, errno); + return(-1); + } + +/* + * Before starting the download must tell driver that we are about to + * stop its slave. This is only important if it is already running. + * Once we have told the driver its stopped then do a hardware reset + * on it, to get it into a known state. + */ + if (verbose) + printf("Stoping any current slave\n"); + if (ioctl(memfd, STL_BSTOP, 0) < 0) { + fprintf(stderr, "%s: ioctl(STL_BSTOP) failed, errno=%d\n", + progname, errno); + return(-1); + } + + if (verbose) + printf("Reseting the board\n"); + if (ioctl(memfd, STL_BRESET, 0) < 0) { + fprintf(stderr, "%s: ioctl(STL_BRESET) failed, errno=%d\n", + progname, errno); + return(-1); + } + if (reset) + return(0); + +/* + * After reseting the board we need to send an interrupt to the older + * board types to get them to become active. Do that now. + */ + if (verbose) + printf("Interrupting board to activate shared memory\n"); + if (ioctl(memfd, STL_BINTR, 0) < 0) { + fprintf(stderr, "%s: ioctl(STL_BINTR) failed, errno=%d\n", + progname, errno); + return(-1); + } + /*sleep(1);*/ + + if (verbose) + printf("Opening slave image file %s\n", image); + if ((ifd = open(image, O_RDONLY)) < 0) { + fprintf(stderr, "%s: failed to open image file %s, errno=%d\n", + progname, image, errno); + return(-1); + } + +/* + * At this point get the signature of the board from the shared memory. + * Do a double check that it is a board we know about. We will also need + * to calculate the number of ports on this board (to use later). + */ + sigok = 0; + if (verbose) + printf("Reading ROM signature from board\n"); + + if (lseek(memfd, CDK_SIGADDR, SEEK_SET) != CDK_SIGADDR) { + fprintf(stderr, + "%s: lseek(%x) failed on memory file, errno=%d\n", + progname, CDK_FEATADDR, errno); + return(-1); + } + if (read(memfd, &ecpsig, sizeof(cdkecpsig_t)) < 0) { + fprintf(stderr, "%s: read of ROM signature failed, errno=%d\n", + progname, errno); + return(-1); + } + if (ecpsig.magic == ECP_MAGIC) { + nrdevs = ecpfindports(&ecpsig); + if (nrdevs < 0) + return(-1); + sigok++; + } + + if (lseek(memfd, CDK_SIGADDR, SEEK_SET) != CDK_SIGADDR) { + fprintf(stderr, + "%s: lseek(%x) failed on memory file, errno=%d\n", + progname, CDK_FEATADDR, errno); + return(-1); + } + if (read(memfd, &onbsig, sizeof(cdkonbsig_t)) < 0) { + fprintf(stderr, "%s: read of ROM signature failed, errno=%d\n", + progname, errno); + return(-1); + } + if ((onbsig.magic0 == ONB_MAGIC0) && (onbsig.magic1 == ONB_MAGIC1) && + (onbsig.magic2 == ONB_MAGIC2) && + (onbsig.magic3 == ONB_MAGIC3)) { + nrdevs = onbfindports(&onbsig); + if (nrdevs < 0) + return(-1); + sigok++; + } + + if (! sigok) { + fprintf(stderr, "%s: unknown signature from board\n", progname); + return(-1); + } + + if (verbose) + printf("Board signature reports %d ports\n", nrdevs); + +/* + * Start to copy the image file into shared memory. The first thing to + * do is copy the vector region in from shared memory address 0. We will + * then skip over the signature and feature area and start copying the + * actual image data and code from 4k upwards. + */ + if (verbose) + printf("Copying vector table into shared memory\n"); + if ((n = read(ifd, buf, CDK_SIGADDR)) < 0) { + fprintf(stderr, "%s: read of image file failed, errno=%d\n", + progname, errno); + return(-1); + } + if (lseek(memfd, 0, SEEK_SET) != 0) { + fprintf(stderr, + "%s: lseek(%x) failed on memory file, errno=%d\n", + progname, CDK_FEATADDR, errno); + return(-1); + } + if (write(memfd, buf, n) < 0) { + fprintf(stderr, + "%s: write to memory device failed, errno=%d\n", + progname, errno); + return(-1); + } + + if (lseek(ifd, 0x1000, SEEK_SET) != 0x1000) { + fprintf(stderr, + "%s: lseek(%x) failed on image file, errno=%d\n", + progname, CDK_FEATADDR, errno); + return(-1); + } + if (lseek(memfd, 0x1000, SEEK_SET) != 0x1000) { + fprintf(stderr, + "%s: lseek(%x) failed on memory device, errno=%d\n", + progname, CDK_FEATADDR, errno); + return(-1); + } + +/* + * Copy buffer size chunks of data from the image file into shared memory. + */ + do { + if ((n = read(ifd, buf, BUFSIZE)) < 0) { + fprintf(stderr, + "%s: read of image file failed, errno=%d\n", + progname, errno); + return(-1); + } + if (write(memfd, buf, n) < 0) { + fprintf(stderr, + "%s: write to memory device failed, errno=%d\n", + progname, errno); + return(-1); + } + } while (n == BUFSIZE); + + close(ifd); + +/* + * We need to down load the start up parameters for the slave. This is + * done via the feature area of shared memory. Think of the feature area + * as a way of passing "command line" arguments to the slave. + * FIX: should do something here to load "brdspec" as well... + */ + feature.nrdevs = nrdevs; + if (verbose) + printf("Loading features into shared memory\n"); + if (lseek(memfd, CDK_FEATADDR, SEEK_SET) != CDK_FEATADDR) { + fprintf(stderr, + "%s: lseek(%x) failed on memory device, errno=%d\n", + progname, CDK_FEATADDR, errno); + return(-1); + } + if (write(memfd, &feature, sizeof(cdkfeature_t)) < 0) { + fprintf(stderr, + "%s: write to memory device failed, errno=%d\n", + progname, errno); + return(-1); + } + +/* + * Wait for board alive marker to be set. The slave image will set the + * byte at address CDK_RDYADDR to 0x13 after it has successfully started. + * If this doesn't happen we timeout and fail. + */ + if (verbose) + printf("Setting alive marker to 0\n"); + if (lseek(memfd, CDK_RDYADDR, SEEK_SET) != CDK_RDYADDR) { + fprintf(stderr, + "%s: lseek(%x) failed on memory device, errno=%d\n", + progname, CDK_RDYADDR, errno); + return(-1); + } + alivemarker = 0; + if (write(memfd, &alivemarker, 1) < 0) { + fprintf(stderr, + "%s: write to memory device failed, errno=%d\n", + progname, errno); + return(-1); + } + +/* + * At this point the entire image is loaded into shared memory. To start + * it executiong we poke the board with an interrupt. + */ + if (verbose) + printf("Interrupting board to start slave image\n"); + if (ioctl(memfd, STL_BINTR, 0) < 0) { + fprintf(stderr, "%s: ioctl(STL_BINTR) failed, errno=%d\n", + progname, errno); + return(-1); + } + + strttime = time((time_t *) NULL); + if (verbose) + printf("Waiting for slave alive marker, time=%x timeout=%d\n", + strttime, TIMEOUT); + while (time((time_t *) NULL) < (strttime + TIMEOUT)) { + if (lseek(memfd, CDK_RDYADDR, SEEK_SET) != CDK_RDYADDR) { + fprintf(stderr, + "%s: lseek(%x) failed on memory device, " + "errno=%d\n", progname, CDK_RDYADDR, errno); + return(-1); + } + if (read(memfd, &alivemarker, 1) < 0){ + fprintf(stderr, + "%s: read of image file failed, errno=%d\n", + progname, errno); + return(-1); + } + if (alivemarker == CDK_ALIVEMARKER) + break; + } + + if (alivemarker != CDK_ALIVEMARKER) { + fprintf(stderr, "%s: slave image failed to start\n", progname); + return(-1); + } + + if (lseek(memfd, CDK_RDYADDR, SEEK_SET) != CDK_RDYADDR) { + fprintf(stderr, + "%s: lseek(%x) failed on memory device, errno=%d\n", + progname, CDK_RDYADDR, errno); + return(-1); + } + alivemarker = 0; + if (write(memfd, &alivemarker, 1) < 0) { + fprintf(stderr, "%s: write to memory device failed, errno=%d\n", + progname, errno); + return(-1); + } + + if (verbose) + printf("Slave image started successfully\n"); + +/* + * The last thing to do now is to get the driver started. Now that the + * slave is operational it must read in the memory map and gets its + * internal tables initialized. + */ + if (verbose) + printf("Driver initializing host shared memory interface\n"); + if (ioctl(memfd, STL_BSTART, 0) < 0) { + fprintf(stderr, "%s: ioctl(STL_BSTART) failed, errno=%d\n", + progname, errno); + return(-1); + } + + close(memfd); + return(0); +} + +/*****************************************************************************/ + +void main(int argc, char *argv[]) +{ + struct stat statinfo; + int optind, c; + + optind = 0; + progname = argv[0]; + + while ((c = getopt(argc, argv, "hvVRB:i:b:d:t:r:")) != -1) { + switch (c) { + case 'V': + printf("%s version %s\n", progname, version); + exit(0); + break; + case 'B': + feature.banner = atol(optarg); + break; + case 'h': + usage(); + break; + case 'v': + verbose++; + break; + case 'i': + image = optarg; + break; + case 'R': + reset++; + break; + case 'b': + brdnr = atoi(optarg); + break; + case 'd': + memdevice = optarg; + break; + case 't': + feature.txrqsize = atol(optarg); + break; + case 'r': + feature.rxrqsize = atol(optarg); + break; + case '?': + default: + usage(); + break; + } + } + + if (memdevice == (char *) NULL) { + if ((brdnr < 0) || (brdnr >= 8)) { + fprintf(stderr, + "%s: invalid board number %d specified\n", + progname, brdnr); + exit(1); + } + sprintf(devstr, defdevice, brdnr); + memdevice = &devstr[0]; + if (verbose) + printf("Using shared memory device %s\n", memdevice); + } + + if (verbose) + printf("Downloading image %s to board %d\n", image, brdnr); + +/* + * Check that the shared memory device exits and is a character device. + */ + if (stat(memdevice, &statinfo) < 0) { + fprintf(stderr, "%s: memory device %s does not exist\n", + progname, memdevice); + exit(1); + } + if ((statinfo.st_mode & S_IFMT) != S_IFCHR) { + fprintf(stderr, "%s: memory device %s is not a char device\n", + progname, memdevice); + exit(1); + } + + if (stat(image, &statinfo) < 0) { + fprintf(stderr, "%s: image file %s does not exist\n", + progname, image); + exit(1); + } + +/* + * All argument checking is now done. So lets get this show on the road. + */ + if (download() < 0) + exit(1); + exit(0); +} + +/*****************************************************************************/ diff --git a/usr.sbin/stallion/stlstats/stlstats.c b/usr.sbin/stallion/stlstats/stlstats.c new file mode 100644 index 000000000000..fcce5c6ae873 --- /dev/null +++ b/usr.sbin/stallion/stlstats/stlstats.c @@ -0,0 +1,603 @@ +/*****************************************************************************/ + +/* + * stlstats.c -- stallion intelligent multiport stats display. + * + * Copyright (c) 1994-1996 Greg Ungerer (gerg@stallion.oz.au). + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Greg Ungerer. + * 4. Neither the name of the author nor the names of any co-contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/*****************************************************************************/ + +#include <stdio.h> +#include <errno.h> +#include <fcntl.h> +#include <unistd.h> +#include <stdlib.h> +#include <time.h> +#include <ncurses.h> +#include <sys/stat.h> +#include <sys/ioctl.h> + +#include "cdk.h" +#include "comstats.h" + +/*****************************************************************************/ + +char *version = "0.0.5"; +char *defdevice = "/dev/staliomem0"; + +char *progname; +char *ctrldevice; +int ctrlfd; +int displaybrdnr = 0; +int displaypanelnr = 0; +int displayportnr = 0; +int displayportbank = 0; + +#define MAXBRDS 8 +#define MAXPORTS 32 + +combrd_t brdstats; +comstats_t stats[MAXPORTS]; + +char *line = " "; + +/*****************************************************************************/ + +/* + * Declare internal function prototypes here. + */ +void usage(void); +void useportdevice(char *devname); +void localexit(int nr); +void menuport(); +void displayport(); +void menuallports(); +void displayallports(); +void getallstats(); +void getbrdstats(); +void clearportstats(); +void clearallstats(); + +/*****************************************************************************/ + +void usage() +{ + fprintf(stderr, "Usage: %s [-hVbpdc]\n\n", progname); + fprintf(stderr, " -h print this information\n"); + fprintf(stderr, " -V show version information and exit\n"); + fprintf(stderr, " -b display board\n"); + fprintf(stderr, " -p display panel\n"); + fprintf(stderr, " -d display port device stats\n"); + fprintf(stderr, " -c specify control device to use\n"); + exit(0); +} + +/*****************************************************************************/ + +void useportdevice(char *devname) +{ + struct stat statinfo; + int portnr, portcnt; + int i, fd; + + if (stat(devname, &statinfo) < 0) { + fprintf(stderr, "%s: port device %s does not exist\n", + progname, devname); + exit(1); + } + if ((statinfo.st_mode & S_IFMT) != S_IFCHR) { + fprintf(stderr, "%s: port device %s is not a char device\n", + progname, devname); + exit(1); + } + + displaybrdnr = (statinfo.st_rdev & 0x00700000) >> 20; + portnr = (statinfo.st_rdev & 0x1f) | + ((statinfo.st_rdev & 0x00010000) >> 11); + getbrdstats(); + if (brdstats.ioaddr == 0) { + fprintf(stderr, "%s: device %s does not exist\n", progname, + devname); + exit(1); + } + + for (portcnt = 0, i = 0; (i < brdstats.nrpanels); i++) { + if ((portnr >= portcnt) && + (portnr < (portcnt + brdstats.panels[i].nrports))) + break; + portcnt += brdstats.panels[i].nrports; + } + if (i >= brdstats.nrpanels) { + fprintf(stderr, "%s: device %s does not exist\n", progname, + devname); + exit(1); + } + displaypanelnr = i; + displayportnr = portnr - portcnt; + if (displayportnr >= 16) + displayportbank = 16; +} + +/*****************************************************************************/ + +/* + * Get the board stats for the current display board. + */ + +void getbrdstats() +{ + brdstats.brd = displaybrdnr; + if (ioctl(ctrlfd, COM_GETBRDSTATS, &brdstats) < 0) + memset((combrd_t *) &brdstats, 0, sizeof(combrd_t)); +} + +/*****************************************************************************/ + +/* + * Zero out stats for the current display port. + */ + +void clearportstats() +{ + stats[displayportnr].brd = displaybrdnr; + stats[displayportnr].panel = displaypanelnr; + stats[displayportnr].port = displayportnr; + ioctl(ctrlfd, COM_CLRPORTSTATS, &stats[displayportnr]); +} + +/*****************************************************************************/ + +/* + * Zero out all stats for all ports on all boards. + */ + +void clearallstats() +{ + int brdnr, panelnr, portnr; + + for (brdnr = 0; (brdnr < MAXBRDS); brdnr++) { + for (panelnr = 0; (panelnr < COM_MAXPANELS); panelnr++) { + for (portnr = 0; (portnr < MAXPORTS); portnr++) { + stats[0].brd = brdnr; + stats[0].panel = panelnr; + stats[0].port = portnr; + ioctl(ctrlfd, COM_CLRPORTSTATS, &stats[0]); + } + } + } +} + +/*****************************************************************************/ + +/* + * Get the stats for the current display board/panel. + */ + +void getallstats() +{ + int i; + + for (i = 0; (i < brdstats.panels[displaypanelnr].nrports); i++) { + stats[i].brd = displaybrdnr; + stats[i].panel = displaypanelnr; + stats[i].port = i; + if (ioctl(ctrlfd, COM_GETPORTSTATS, &stats[i]) < 0) { + fprintf(stderr, "\n\r\nERROR: ioctl(COM_GETPORTSTATS) " + "failed, errno=%d\n\r\n", errno); + localexit(1); + } + } +} + +/*****************************************************************************/ + +/* + * Display the per ports stats screen. + */ + +void displayport() +{ + mvprintw(0, 0, "STALLION SERIAL PORT STATISTICS"); + mvprintw(2, 0, + "Board=%d Type=%d HwID=%02x State=%06x TotalPorts=%d", + displaybrdnr, brdstats.type, brdstats.hwid, brdstats.state, + brdstats.nrports); + mvprintw(3, 0, "Panel=%d HwID=%02x Ports=%d", displaypanelnr, + brdstats.panels[displaypanelnr].hwid, + brdstats.panels[displaypanelnr].nrports); + + attron(A_REVERSE); + mvprintw(5, 0, line); + mvprintw(5, 0, "Port=%d ", displayportnr); + attroff(A_REVERSE); + + mvprintw(7, 0, "STATE: State=%08x", stats[displayportnr].state); + mvprintw(7, 29, "Tty=%08x", stats[displayportnr].ttystate); + mvprintw(7, 47, "Flags=%08x", stats[displayportnr].flags); + mvprintw(7, 65, "HwID=%02x", stats[displayportnr].hwid); + + mvprintw(8, 0, "CONFIG: Cflag=%08x", stats[displayportnr].cflags); + mvprintw(8, 29, "Iflag=%08x", stats[displayportnr].iflags); + mvprintw(8, 47, "Oflag=%08x", stats[displayportnr].oflags); + mvprintw(8, 65, "Lflag=%08x", stats[displayportnr].lflags); + + mvprintw(10, 0, "TX DATA: Total=%d", stats[displayportnr].txtotal); + mvprintw(10, 29, "Buffered=%d ", stats[displayportnr].txbuffered); + mvprintw(11, 0, "RX DATA: Total=%d", stats[displayportnr].rxtotal); + mvprintw(11, 29, "Buffered=%d ", stats[displayportnr].rxbuffered); + mvprintw(12, 0, "RX ERRORS: Parity=%d", stats[displayportnr].rxparity); + mvprintw(12, 29, "Framing=%d", stats[displayportnr].rxframing); + mvprintw(12, 47, "Overrun=%d", stats[displayportnr].rxoverrun); + mvprintw(12, 65, "Lost=%d", stats[displayportnr].rxlost); + + mvprintw(14, 0, "FLOW TX: Xoff=%d", stats[displayportnr].txxoff); + mvprintw(14, 29, "Xon=%d", stats[displayportnr].txxon); +#if 0 + mvprintw(14, 47, "CTSoff=%d", stats[displayportnr].txctsoff); + mvprintw(14, 65, "CTSon=%d", stats[displayportnr].txctson); +#endif + mvprintw(15, 0, "FLOW RX: Xoff=%d", stats[displayportnr].rxxoff); + mvprintw(15, 29, "Xon=%d", stats[displayportnr].rxxon); + mvprintw(15, 47, "RTSoff=%d", stats[displayportnr].rxrtsoff); + mvprintw(15, 65, "RTSon=%d", stats[displayportnr].rxrtson); + + mvprintw(17, 0, "OTHER: TXbreaks=%d", + stats[displayportnr].txbreaks); + mvprintw(17, 29, "RXbreaks=%d", stats[displayportnr].rxbreaks); + mvprintw(17, 47, "Modem=%d", stats[displayportnr].modem); + + mvprintw(19, 0, "SIGNALS: DCD=%d DTR=%d CTS=%d RTS=%d " + "DSR=%d RI=%d", + (stats[displayportnr].signals & TIOCM_CD) ? 1 : 0, + (stats[displayportnr].signals & TIOCM_DTR) ? 1 : 0, + (stats[displayportnr].signals & TIOCM_CTS) ? 1 : 0, + (stats[displayportnr].signals & TIOCM_RTS) ? 1 : 0, + (stats[displayportnr].signals & TIOCM_DSR) ? 1 : 0, + (stats[displayportnr].signals & TIOCM_RI) ? 1 : 0); + + attron(A_REVERSE); + mvprintw(22, 0, line); + attroff(A_REVERSE); + + mvprintw(24, 19, "(q=Quit,0123456789abcdef=Port,Z=ZeroStats)"); + refresh(); +} + +/*****************************************************************************/ + +/* + * Continuously update and display the per ports stats screen. + * Also checks for keyboard input, and processes it as appropriate. + */ + +void menuport() +{ + int ch, done; + + clear(); + done = 0; + + while ((ch = getch()) != 27) { + switch (ch) { + case ERR: + break; + case '': + refresh(); + break; + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + ch = (ch - 'a' + '0' + 10); + /* fall thru */ + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + ch -= '0'; + if (ch >= brdstats.panels[displaypanelnr].nrports) { + beep(); + } else { + displayportnr = displayportbank + ch; + clear(); + } + break; + case 'Z': + clearportstats(); + clear(); + break; + case 'q': + done = 1; + break; + default: + beep(); + break; + } + + if (done) + break; + + getallstats(); + displayport(); + } +} + +/*****************************************************************************/ + +/* + * Display the all ports stats screen. + */ + +void displayallports() +{ + int i, nrports, portnr;; + + nrports = brdstats.panels[displaypanelnr].nrports; + + mvprintw(0, 0, "STALLION SERIAL PORT STATISTICS"); + mvprintw(2, 0, "Board=%d Type=%d HwID=%02x State=%06x TotalPorts=%d", + displaybrdnr, brdstats.type, brdstats.hwid, brdstats.state, + brdstats.nrports); + mvprintw(3, 0, "Panel=%d HwID=%02x Ports=%d", displaypanelnr, + brdstats.panels[displaypanelnr].hwid, nrports); + + attron(A_REVERSE); + mvprintw(5, 0, "Port State Tty Flags Cflag Iflag Oflag Lflag " + "Sigs TX Total RX Total "); + attroff(A_REVERSE); + + if (nrports > 0) { + if (nrports > 16) + nrports = 16; + portnr = displayportbank; + for (i = 0; (i < nrports); i++, portnr++) { + mvprintw((6 + i), 1, "%2d", portnr); + mvprintw((6 + i), 5, "%06x", stats[portnr].state); + mvprintw((6 + i), 12, "%06x", stats[portnr].ttystate); + mvprintw((6 + i), 19, "%08x", stats[portnr].flags); + mvprintw((6 + i), 28, "%05x", stats[portnr].cflags); + mvprintw((6 + i), 34, "%05x", stats[portnr].iflags); + mvprintw((6 + i), 40, "%05x", stats[portnr].oflags); + mvprintw((6 + i), 46, "%05x", stats[portnr].lflags); + mvprintw((6 + i), 52, "%04x", stats[portnr].signals); + mvprintw((6 + i), 58, "%10d", stats[portnr].txtotal); + mvprintw((6 + i), 69, "%10d", stats[portnr].rxtotal); + } + } else { + mvprintw(12, 32, "NO BOARD %d FOUND", displaybrdnr); + i = 16; + } + + attron(A_REVERSE); + mvprintw((6 + i), 0, line); + attroff(A_REVERSE); + + mvprintw(24, 14, + "(q=Quit,01234567=Board,n=Panels,p=Ports,Z=ZeroStats)"); + refresh(); +} + +/*****************************************************************************/ + +/* + * Continuously update and display the all ports stats screen. + * Also checks for keyboard input, and processes it as appropriate. + */ + +void menuallports() +{ + int ch, done; + + clear(); + getbrdstats(); + + done = 0; + while ((ch = getch()) != 27) { + switch (ch) { + case ERR: + break; + case '': + refresh(); + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + displaybrdnr = ch - '0'; + displaypanelnr = 0; + getbrdstats(); + if (brdstats.state == 0) + beep(); + clear(); + break; + case 'n': + if (brdstats.panels[displaypanelnr].nrports > 16) { + if (displayportbank == 0) { + displayportbank = 16; + clear(); + break; + } + } + displayportbank = 0; + displaypanelnr++; + if (displaypanelnr >= brdstats.nrpanels) + displaypanelnr = 0; + clear(); + break; + case 'p': + if (brdstats.panels[displaypanelnr].nrports > 0) { + displayportnr = displayportbank; + menuport(); + clear(); + } else { + beep(); + } + break; + case 'Z': + clearallstats(); + clear(); + break; + case 'q': + done = 1; + break; + default: + beep(); + break; + } + + if (done) + break; + + getallstats(); + displayallports(); + } +} + +/*****************************************************************************/ + +/* + * A local exit routine - shuts down curses before exiting. + */ + +void localexit(int nr) +{ + refresh(); + endwin(); + exit(nr); +} + +/*****************************************************************************/ + +void main(int argc, char *argv[]) +{ + struct stat statinfo; + int optind, c, useport; + char *portdev; + + optind = 0; + progname = argv[0]; + ctrldevice = defdevice; + useport = 0; + + while ((c = getopt(argc, argv, "hvVb:p:d:c:")) != -1) { + switch (c) { + case 'V': + printf("%s version %s\n", progname, version); + exit(0); + break; + case 'h': + usage(); + break; + case 'b': + displaybrdnr = atoi(optarg); + break; + case 'p': + displaypanelnr = atoi(optarg); + break; + case 'd': + useport++; + portdev = optarg; + break; + case 'c': + ctrldevice = optarg; + break; + case '?': + default: + usage(); + break; + } + } + +/* + * Check that the control device exits and is a character device. + */ + if (stat(ctrldevice, &statinfo) < 0) { + fprintf(stderr, "%s: control device %s does not exist\n", + progname, ctrldevice); + exit(1); + } + if ((statinfo.st_mode & S_IFMT) != S_IFCHR) { + fprintf(stderr, "%s: control device %s is not a char device\n", + progname, ctrldevice); + exit(1); + } + if ((ctrlfd = open(ctrldevice, O_RDWR)) < 0) { + fprintf(stderr, "%s: open of %s failed, errno=%d\n", progname, + ctrldevice, errno); + exit(1); + } + +/* + * Validate the panel number supplied by user. We do this now since we + * need to have parsed the entire command line first. + */ + getbrdstats(); + if (displaypanelnr >= brdstats.nrpanels) + displaypanelnr = 0; + + if (useport) + useportdevice(portdev); + +/* + * Everything is now ready, lets go! + */ + initscr(); + cbreak(); + halfdelay(5); + noecho(); + clear(); + if (useport) { + menuport(); + clear(); + } + menuallports(); + refresh(); + endwin(); + + close(ctrlfd); + printf("\n"); + exit(0); +} + +/*****************************************************************************/ |