From: <ÓÉ Microsoft Internet Explorer 5 ±£´æ>
Subject: User Guide | SmallBASIC
Date: Fri, 17 Apr 2009 15:20:16 +0800
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0005_01C9BF70.02F93A60"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350

This is a multi-part message in MIME format.

------=_NextPart_000_0005_01C9BF70.02F93A60
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://smallbasic.sourceforge.net/?q=node/838

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML lang=3Den xml:lang=3D"en" =
xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD><TITLE>User Guide | =
SmallBASIC</TITLE>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dutf-8"><LINK=20
href=3D"/?q=3Dnode/861" rel=3Dprev><LINK href=3D"/?q=3Dnode/837" =
rel=3Dup><LINK=20
href=3D"/images/favicon.ico" type=3Dimage/x-icon rel=3D"shortcut icon">
<STYLE type=3Dtext/css media=3Dall>@import url( =
/persistent/files/css/be09042940858d327d86b5b73335ff4d.css );
</STYLE>

<SCRIPT type=3Dtext/javascript> </SCRIPT>

<META content=3D"MSHTML 6.00.2900.3492" name=3DGENERATOR></HEAD>
<BODY>
<TABLE id=3Dheader cellSpacing=3D0 cellPadding=3D0 border=3D0>
  <TBODY>
  <TR>
    <TD id=3Dlogo><A title=3DHome =
href=3D"http://smallbasic.sourceforge.net/"><IMG=20
      alt=3DHome =
src=3D"http://smallbasic.sourceforge.net/images/logo.png"></A>=20
      <H1 class=3Dsite-name><A title=3DHome=20
      =
href=3D"http://smallbasic.sourceforge.net/">SmallBASIC</A></H1></TD>
    <TD id=3Dmenu>
      <UL class=3Dlinks id=3Dnavlist>
        <LI class=3D"first menu-1-1-112"><A class=3Dmenu-1-1-112=20
        href=3D"http://smallbasic.sourceforge.net/?q=3Dforum">Forums</A> =

        <LI class=3Dmenu-1-2-112><A class=3Dmenu-1-2-112=20
        title=3D"SmallBASIC downloads"=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/195">Download</A>=20
        <LI class=3Dmenu-1-3-112><A class=3Dmenu-1-3-112=20
        href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/9">Code =
library</A>=20
        <LI class=3D"last menu-1-4-112"><A class=3Dmenu-1-4-112=20
        title=3D"SmallBASIC language reference"=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/201">Language=20
        reference</A> </LI></UL>
      <FORM id=3Dsearch-theme-form accept-charset=3DUTF-8 =
action=3D/?q=3Dnode/838=20
      method=3Dpost>
      <DIV>
      <DIV class=3Dcontainer-inline id=3Dsearch>
      <DIV class=3Dform-item =
id=3Dedit-search-theme-form-keys-wrapper><INPUT=20
      class=3Dform-text id=3Dedit-search-theme-form-keys=20
      title=3D"Enter the terms you wish to search for." maxLength=3D128 =
size=3D15=20
      name=3Dsearch_theme_form_keys> </DIV><INPUT class=3Dform-submit =
id=3Dedit-submit type=3Dsubmit value=3DSearch name=3Dop>=20
      <INPUT id=3Dedit-search-theme-form type=3Dhidden =
value=3Dsearch_theme_form=20
      name=3Dform_id> </DIV></DIV></FORM></TD></TR>
  <TR>
    <TD colSpan=3D2>
      <DIV></DIV></TD></TR></TBODY></TABLE>
<TABLE id=3Dcontent cellSpacing=3D0 cellPadding=3D0 border=3D0>
  <TBODY>
  <TR>
    <TD id=3Dsidebar-left>
      <DIV class=3D"block block-user" id=3Dblock-user-1>
      <H2 class=3Dtitle>Navigation</H2>
      <DIV class=3Dcontent>
      <UL class=3Dmenu>
        <LI class=3Dleaf><A title=3DChat=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Dforum/1">Forums</A>=20
        <LI class=3Dleaf><A title=3D"SmallBASIC downloads"=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/195">Download</A>=20
        <LI class=3Dleaf><A title=3D"User program submissions"=20
        href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/9">Code =
library</A>=20
        <LI class=3Dleaf><A title=3D"SmallBASIC language reference"=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/201">Language=20
        reference</A>=20
        <LI class=3Dleaf><A=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/837">Articles</A>=20
        <LI class=3Dleaf><A=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/835">Screenshots</A> =

        <LI class=3Dleaf><A =
href=3D"http://smallbasic.sourceforge.net/?q=3Dsfvote">Bug=20
        Tracker</A>=20
        <LI class=3Dleaf><A=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Dsearch">Search</A>=20
        <LI class=3Dleaf><A=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/17">Links</A>=20
      </LI></UL></DIV></DIV></TD>
    <TD vAlign=3Dtop>
      <DIV id=3Dmain>
      <DIV class=3Dbreadcrumb><A=20
      href=3D"http://smallbasic.sourceforge.net/">Home</A> =C2=BB <A=20
      =
href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/837">Articles</A></DI=
V>
      <H1 class=3Dtitle>User Guide</H1>
      <DIV class=3Dtabs></DIV>
      <DIV class=3Dnode><SPAN class=3Dsubmitted>Submitted by chrisws on =
Sat,=20
      12/22/2007 - 05:18.</SPAN> <SPAN class=3Dtaxonomy></SPAN>
      <DIV class=3Dcontent>
      <P><STRONG>Constants and Variables</STRONG></P>
      <UL>
        <LI>All user variables (include arrays) are =
=E2=80=98Variant=E2=80=99. That means the=20
        data-type is invisible to user. </LI></UL>
      <UL>
        <LI>Arrays are always dynamic, even if you had declared their =
size, with=20
        dynamic size and type of elements. </LI></UL>
      <P>However, SmallBASIC uses, internally, 4 data-types</P>
      <UL>
        <LI>Integer (32bit)=20
        <LI>Real (64bit)=20
        <LI>String (&lt;32KB on 16bit / 2GB on 32bit) </LI></UL>
      <UL>
        <LI>Array (~2970 elements on 16bit / ~50M elements on 32bit) =
</LI></UL>
      <P>Conversions between those types are performed internally. In =
any case=20
      there are functions for the user to do it manually.</P>
      <P><STRONG>Variable names</STRONG></P>
      <P>Variable names can use any alphanumeric characters, extended =
characters=20
      (<SPAN class=3Dcaps>ASCII</SPAN> codes 128-255 for non-English =
languages)=20
      the symbol =E2=80=98_=E2=80=99, and the symbol =
=E2=80=98$=E2=80=99. The first character of the name cannot=20
      be a digit nor a =E2=80=98$=E2=80=99.</P>
      <P><STRONG>About the dollar-symbol</STRONG></P>
      <P>The symbol =E2=80=98$=E2=80=99 is supported for compatibility. =
Since in SmallBASIC=20
      there are no data-types its use is meaningless.</P>
      <P>The dollar in function names will be ignored.</P>
      <P>The dollar in variable names will be count as part of the name =
(that=20
      means v and v$ are two different variables). It can be used only =
as the=20
      last character of the name, and only one allowed.</P>
      <P>The dollar in system variables names will be ignore it (that =
means=20
      <SPAN class=3Dcaps>COMMAND</SPAN> and COMMAND$ is the same)</P>
      <P>Example of variable names:</P><PRE><CODE>abc, a_c, _bc, ab2c, =
abc$ -&gt; valid names
1cd, a$b, $abc            -&gt; invalid names
</CODE></PRE>
      <P><STRONG>Integers</STRONG></P>
      <P>This is the default data type. You can declare integers in =
decimal,=20
      hexadecimal, octal and binary form.</P><PRE><CODE>x =3D 256   '
x =3D 0x100 ' Hexadecimal form 1
x =3D &amp;h100 ' Hexadecimal form 2
x =3D 0o400 ' Octal form 1
x =3D &amp;o400 ' Octal form 2
x =3D 0b111 ' Binary form 1
x =3D &amp;b111 ' Binary form 2
</CODE></PRE>
      <P><STRONG>Reals</STRONG></P>
      <P>Any number which out-bounds the limits or an =
=E2=80=98integer=E2=80=99 or had decimal=20
      digits will be converted automatically to real.</P><PRE><CODE>x =
=3D .25
x =3D 1.2
</CODE></PRE>
      <P>Reals can be also written by using scientific notation. 1E+2 or =
1E-+2,=20
      5E=E2=80=942, 2.6E-0.25, etc</P>
      <P><STRONG>Strings</STRONG></P>
      <P>Strings may be appended to one another using the + =
operator.</P><PRE><CODE>b =3D "Hello, " + "world!"
</CODE></PRE>
      <P><STRONG>Constants</STRONG></P>
      <P>Constant variables can be declared by using the keyword <SPAN=20
      class=3Dcaps>CONST</SPAN>.</P><PRE><CODE>CONST my_pi =3D 3.14
</CODE></PRE>
      <P><STRONG>System Variables</STRONG></P>
      <P>System variables, are constant variables for the programmer. =
Those=20
      variables get values or modified at run-time by the SB=E2=80=99s =
subsystem.</P>
      <UL>
        <LI><SPAN class=3Dcaps>OSNAME</SPAN> Operating System name=20
        <LI><SPAN class=3Dcaps>OSVER</SPAN> Operating System Version =
(0xAABBCC=20
        (A=3Dmajor, B=3Dminor, C=3Dpatch))=20
        <LI><SPAN class=3Dcaps>SBVER</SPAN> SmallBASIC Version =
(0xAABBCC)=20
        <LI>PI 3.14..=20
        <LI><SPAN class=3Dcaps>XMAX</SPAN> Graphics display, maximum x =
(width-1)=20
        <LI><SPAN class=3Dcaps>YMAX</SPAN> Graphics display, maximum y =
(height-1)=20
        value=20
        <LI><SPAN class=3Dcaps>BPP</SPAN> Graphics display: bits per =
pixel (color=20
        resolution)=20
        <LI><SPAN class=3Dcaps>VIDADR</SPAN> Video <SPAN =
class=3Dcaps>RAM</SPAN>=20
        address (only on specific drivers)=20
        <LI><SPAN class=3Dcaps>CWD</SPAN> Current Working Directory=20
        <LI><SPAN class=3Dcaps>HOME</SPAN> User=E2=80=99s home directory =

        <LI><SPAN class=3Dcaps>COMMAND</SPAN> Command-line parameters=20
        <LI><SPAN class=3Dcaps>TRUE</SPAN> The value 1 </LI></UL>
      <UL>
        <LI><SPAN class=3Dcaps>FALSE</SPAN> The value 0 </LI></UL>
      <P><STRONG>Operators</STRONG></P>
      <P>Sorted by priority=20
      <TABLE>
        <TBODY>
        <TR>
          <TD>( )</TD>
          <TD>Parenthesis</TD></TR>
        <TR></TR>
        <TR>
          <TD>+, =E2=80=93 </TD>
          <TD>Unary</TD></TR>
        <TR>
          <TD>~</TD>
          <TD>bitwise <SPAN class=3Dcaps>NOT</SPAN></TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>NOT</SPAN> or !</TD>
          <TD>Logical <SPAN class=3Dcaps>NOT</SPAN> (<SPAN =
class=3Dcaps>NOT</SPAN>=20
            false =3D true)</TD></TR>
        <TR></TR>
        <TR>
          <TD>^</TD>
          <TD>Exponentiation</TD></TR>
        <TR></TR>
        <TR>
          <TD>*, /, \</TD>
          <TD>Multiplication, Division, Integer Division</TD></TR>
        <TR>
          <TD>% or <SPAN class=3Dcaps>MOD</SPAN></TD>
          <TD>Reminder (QB compatible: a=3Dint(a), b=3Dint(b), =
a-b*(a/b))</TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>MDL</SPAN></TD>
          <TD>Modulus (a%b+b*(sgn(a)&lt;&gt;sgn(b)))</TD></TR>
        <TR></TR>
        <TR>
          <TD>+, =E2=80=93 </TD>
          <TD>Addition/Concatenation, Subtraction</TD></TR>
        <TR></TR>
        <TR>
          <TD>=3D</TD>
          <TD>Equal</TD></TR>
        <TR>
          <TD>&lt;&gt; or !=3D</TD>
          <TD>Not Equal</TD></TR>
        <TR>
          <TD>&gt;, &lt;</TD>
          <TD>Less Than, Greater Than</TD></TR>
        <TR>
          <TD>=3D&gt;, =3D&lt;</TD>
          <TD>Less or Equal, Greater or Equal</TD></TR>
        <TR>
          <TD>&gt;=3D, &lt;=3D</TD>
          <TD>Less or Equal, Greater or Equal</TD></TR>
        <TR>
          <TD>IN</TD>
          <TD>belongs to =E2=80=A6 (see =E2=80=9CThe IN =
operator=E2=80=9D)</TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>LIKE</SPAN></TD>
          <TD>Regular expression match (see =E2=80=9CThe <SPAN =
class=3Dcaps>LIKE</SPAN>=20
            operator=E2=80=9D)</TD></TR>
        <TR></TR>
        <TR>
          <TD><SPAN class=3Dcaps>AND</SPAN> or &amp;&amp;</TD>
          <TD>Logical <SPAN class=3Dcaps>AND</SPAN></TD></TR>
        <TR>
          <TD>OR or</TD>
          <TD>Logical OR</TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>BAND</SPAN> or &amp;</TD>
          <TD>bitwise <SPAN class=3Dcaps>AND</SPAN></TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>BOR</SPAN> or</TD>
          <TD>bitwise OR</TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>EQV</SPAN></TD>
          <TD>bitwise <SPAN class=3Dcaps>EQV</SPAN></TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>IMP</SPAN></TD>
          <TD>bitwise <SPAN class=3Dcaps>IMP</SPAN></TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>XOR</SPAN></TD>
          <TD>bitwise <SPAN class=3Dcaps>XOR</SPAN></TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>NAND</SPAN></TD>
          <TD>bitwise <SPAN class=3Dcaps>NAND</SPAN></TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>NOR</SPAN></TD>
          <TD>bitwise <SPAN class=3Dcaps>NOR</SPAN></TD></TR>
        <TR>
          <TD><SPAN class=3Dcaps>XNOR</SPAN></TD>
          <TD>bitwise <SPAN =
class=3Dcaps>XNOR</SPAN></TD></TR></TBODY></TABLE></P>
      <P><STRONG>Special Characters</STRONG></P>
      <TABLE>
        <TBODY>
        <TR>
          <TD>&amp;h or 0x</TD>
          <TD>Prefix for hexadecimal constant (0=C3=971F, =
&amp;h3C)</TD></TR>
        <TR>
          <TD>&amp;o or 0o</TD>
          <TD>Prefix for octal constant (0o33, &amp;o33)</TD></TR>
        <TR>
          <TD>&amp;b or 0b</TD>
          <TD>Prefix for binary constant (0b1010, &amp;b1110)</TD></TR>
        <TR>
          <TD>[,;]</TD>
          <TD>Array definition (function <ACRONYM =
title=3D"">ARRAY</ACRONYM>)=20
            ($1)</TD></TR>
        <TR>
          <TD>&lt;&lt;</TD>
          <TD>Appends to an array (command <SPAN =
class=3Dcaps>APPEND</SPAN>)=20
          ($1)</TD></TR>
        <TR>
          <TD>++</TD>
          <TD>Increase a value by 1 (x =3D x + 1) ($1)</TD></TR>
        <TR>
          <TD>=E2=80=94</TD>
          <TD>Decrease a value by 1 (x =3D x =E2=80=93 1) ($1)</TD></TR>
        <TR>
          <TD>p=3D</TD>
          <TD>Another <SPAN class=3Dcaps>LET</SPAN> macro (x =3D x p =
=E2=80=A6). Where p=20
            any character of -+/\*^%&amp;</TD></TR>
        <TR>
          <TD>:</TD>
          <TD>Separates commands typed on the same line</TD></TR>
        <TR>
          <TD>&amp;</TD>
          <TD>Join code lines (if its the last character of the line). =
The=20
            result line its must not exceed the max. line =
size.</TD></TR>
        <TR>
          <TD>#</TD>
          <TD>Meta-command (if its the first character of the line) or =
prefix=20
            for file handle</TD></TR>
        <TR>
          <TD>@</TD>
          <TD>The =E2=80=98at=E2=80=99 symbol can by used instead of =
<SPAN=20
            class=3Dcaps>BYREF</SPAN> ($1)</TD></TR>
        <TR>
          <TD>=E2=80=98</TD>
          <TD>Remarks</TD></TR></TBODY></TABLE>
      <P><EM>Pseudo operators</EM>. These operators are replaced by =
compiler=20
      with a command or an expression.</P>
      <P><STRONG>Statement <SPAN class=3Dcaps>OPTION</SPAN> keyword=20
      parameters</STRONG></P>
      <P>This special command is used to pass parameters to the =
SB-environment.=20
      There are two styles for that, the run-time (like <SPAN=20
      class=3Dcaps>BASE</SPAN>) which can change the value at run-time, =
and the=20
      compile-time (like <SPAN class=3Dcaps>PREDEF</SPAN>) which used =
only in=20
      compile-time and the value cannot be changed on run-time.</P>
      <P><STRONG><EM>Run-Time</EM></STRONG></P>
      <P><STRONG>Statement <SPAN class=3Dcaps>OPTION</SPAN> <SPAN=20
      class=3Dcaps>BASE</SPAN> lower-bound</STRONG></P>
      <P>The <CODE>OPTION BASE</CODE> statement sets the lowest =
allowable=20
      subscript of arrays to <EM>lower-bound</EM>. The default is zero. =
The=20
      <CODE>OPTION BASE</CODE> statement can be used in any place in the =
source=20
      code but that is the wrong use of this except if we have a=20
      <STRONG>good</STRONG> reason. In most cases the <CODE>OPTION =
BASE</CODE>=20
      must declared at first lines of the program before any =
<CODE>DIM</CODE>=20
      declaration.</P>
      <P><STRONG>Statement <SPAN class=3Dcaps>OPTION</SPAN> <SPAN=20
      class=3Dcaps>MATCH</SPAN> <CODE>PCRE =
[CASELESS]|SIMPLE</CODE></STRONG></P>
      <P>Sets as default matching algorithm to =
(P)erl-(C)ompatible=C2=AEegular=20
      (E)xpressions library or back to simple one. Matching-algorithm is =
used in=20
      <CODE>LIKE</CODE> and <CODE>FILES</CODE>.</P>
      <P><SPAN class=3Dcaps>PRCE</SPAN> works only in systems with this =
library=20
      and it must be linked with. Also, there is no extra code on =
compiler which=20
      means that SB compiles the pattern every time it is used.</P>
      <P><STRONG><EM>Compile-Time</EM></STRONG></P>
      <P><STRONG>Statement <SPAN class=3Dcaps>OPTION</SPAN> <SPAN=20
      class=3Dcaps>PREDEF</SPAN> parameter</STRONG></P>
      <P>Sets parameters of the compiler. Where =
<CODE>parameter</CODE></P>
      <UL>
        <LI><SPAN class=3Dcaps>QUIET</SPAN> Sets the quiet flag (-q =
option)=20
        <LI><SPAN class=3Dcaps>COMMAND</SPAN> cmdstr Sets the=20
        <CODE>COMMAND$</CODE> string to <CODE>var</CODE> (useful for =
debug=20
        reasons) </LI></UL>
      <UL>
        <LI><SPAN class=3Dcaps>GRMODE</SPAN> [widthxheight[xbpp]] Sets =
the=20
        graphics mode flag (-g option) or sets the preferred screen =
resolution.=20
        Example: (Clie HiRes) </LI></UL><PRE><CODE>OPTION PREDEF GRMODE =
320x320x16
</CODE></PRE>
      <UL>
        <LI><SPAN class=3Dcaps>TEXTMODE</SPAN> Sets the text mode flag =
(-g-=20
        option) </LI></UL>
      <UL>
        <LI><SPAN class=3Dcaps>CSTR</SPAN> Sets as default string style =
the=20
        C-style special character encoding (=E2=80=99\=E2=80=99) =
</LI></UL>
      <P><STRONG>Meta-commands</STRONG></P>
      <P>#!...<BR>Used by Unix to make source runs as a script =
executable</P>
      <P>#sec: section-name<BR>Used internally to store the section =
name.=20
      Sections names are used at limited OSes like PalmOS for multiple =
32kB=20
      source code sections.</P>
      <P>#inc: file<BR>Used to include a SmallBASIC source file into the =
current=20
      <SPAN class=3Dcaps>BASIC</SPAN> code</P>
      <P>#unit-path: path<BR>Used to setup additional directories for =
searching=20
      for unit-files This meta does nothing more than to setting up the=20
      environment variable SB_UNIT_PATH. Directories on Unix must =
separated by=20
      =E2=80=98:=E2=80=99, and on DOS/Windows by =E2=80=98;=E2=80=99</P>
      <P>Examples</P><PRE><CODE>#inc:"mylib.bas"
...
MyLibProc "Hi"
</CODE>
<CODE>*Arrays and Matrices*
</CODE>
<CODE>Define a 3x2 matrix
</CODE></PRE><PRE><CODE>A =3D [11, 12; 21, 22; 31, 32]
</CODE></PRE>
      <P>That creates the array</P><PRE><CODE>| 11  12|
| 21  22| =3D A
| 31  32|
</CODE></PRE>
      <P>The comma used to separate column items; the semi-colon used to =

      separate rows. Values between columns can be =
omitted.</P><PRE><CODE>A =3D [ ; ; 1, 2 ; 3, 4, 5]
</CODE></PRE>
      <P>This creates the array</P><PRE><CODE>| 0  0  0|
| 1  2  0| =3D A
| 3  4  5|
</CODE></PRE>
      <P>Supported operators:</P>
      <P>Add/sub:</P><PRE><CODE>B =3D [1, 2; 3, 4]: C =3D [5, 6; 7, 8]
</CODE></PRE>
      <P>A =3D B + C<BR>C =3D A =E2=80=93 B</P>
      <P>Equal:</P><PRE><CODE>bool=3D(A=3DB)
</CODE></PRE>
      <P>Unary:</P><PRE><CODE>A2 =3D -A
</CODE></PRE>
      <P>Multiplication:</P><PRE><CODE>A =3D [1, 2; 3, 4]: B =3D [5 ; 6]
C =3D A * B
D =3D 0.8 * A
</CODE></PRE>
      <P>Inverse:</P><PRE><CODE>A =3D [ 1, -1, 1; 2, -1, 2; 3, 2, -1]
? INVERSE(A)
</CODE></PRE>
      <P>Gauss-Jordan:</P><PRE><CODE>? "Solve this:"
? "  5x - 2y + 3z =3D -2"
? " -2x + 7y + 5z =3D  7"
? "  3x + 5y + 6z =3D  9"
?
A =3D [ 5, -2, 3; -2, 7, 5; 3, 5, 6]
B =3D [ -2; 7; 9]
C =3D LinEqn(A, B)
? "[x;y;z] =3D "; C
</CODE></PRE>
      <P>There is a problem with 1 dimension arrays, because 1-dim =
arrays does=20
      not specify how SmallBASIC must see them.</P><PRE><CODE>DIM A(3)
</CODE>
<CODE>| 1 2 3| =3D A
</CODE>
<CODE>or
</CODE>
<CODE>| 1|
| 2| =3D A
| 3|
</CODE></PRE>
      <P>And because this is not the same thing. (ex. for =
multiplication) So the=20
      default is columns</P><PRE><CODE>DIM A(3) ' or A(1,3)
</CODE>
<CODE>| 1 2 3| =3D A
</CODE></PRE>
      <P>For vertical arrays you must declare it as 2-dim arrays =
Nx1</P><PRE><CODE>DIM A(3,1)
</CODE>
<CODE>| 1|
| 2| =3D A
| 3|
</CODE></PRE>
      <P>Nested arrays are allowed</P><PRE><CODE>A =3D [[1,2] , [3,4]]
B =3D [1, 2, 3]
C =3D [4, 5]
B(2) =3D C
print B
</CODE></PRE>
      <P>This will be printed</P><PRE><CODE>[1, 2, [4, 5], 3]
</CODE></PRE>
      <P>You can access them by using a second (or third, etc) pair of=20
      parenthesis.</P><PRE><CODE>B(2)(1) =3D 16
print B(2)(1)
</CODE></PRE>
      <P>Result: 16</P>
      <P><STRONG>The operator IN</STRONG></P>
      <P>IN operator is used to compare if the left-value belongs=20
      to<BR>right-value.</P><PRE><CODE>' Using it with arrays
print 1 in [2,3]        :REM FALSE
print 1 in [1,2]        :REM TRUE
print "b" in ["a", "b", "c"] :REM TRUE
...
' Using it with strings
print "na" in "abcde"   :REM FALSE
print "cd" in "abcde"   :REM TRUE
...
' Using it with number (true only if left =3D right)
print 11 in 21          :REM FALSE
print 11 in 11          :REM TRUE
...
' special case
' auto-convert integers/reals
print 12 in "234567"    :REM FALSE
print 12 in "341256"    :REM TRUE
</CODE></PRE>
      <P><STRONG>The operator LIKE</STRONG></P>
      <P><SPAN class=3Dcaps>LIKE</SPAN> is a regular-expression =
operator. It is=20
      compares the left part of the expression with the pattern (right =
part).=20
      Since the original regular expression code is too big (for =
handhelds), I=20
      use only a subset of it, based on an excellent old stuff by J. =
Kercheval=20
      (match.c, public-domain, 1991). But there is an option to use =
<SPAN=20
      class=3Dcaps>PCRE</SPAN> (Perl-Compatible Regular Expression =
library) on=20
      systems that is supported (Linux); (see <SPAN=20
      class=3Dcaps>OPTION</SPAN>).</P>
      <P>The same code is used for filenames (<ACRONYM =
title=3D"">FILES</ACRONYM>,=20
      <SPAN class=3Dcaps>DIRWALK</SPAN>) too. In the pattern string:</P>
      <TABLE>
        <TBODY>
        <TR>
          <TD>*</TD>
          <TD>matches any sequence of characters (zero or =
more)</TD></TR>
        <TR>
          <TD>?</TD>
          <TD>matches any character</TD></TR>
        <TR>
          <TD>[SET]</TD>
          <TD>matches any character in the specified set,</TD></TR>
        <TR>
          <TD>[!SET] or [^SET]</TD>
          <TD>matches any character not in the specified=20
      set.</TD></TR></TBODY></TABLE>
      <P>A set is composed of characters or ranges; a range looks like =
character=20
      hyphen character (as in 0-9 or <SPAN class=3Dcaps>A-Z</SPAN>). =
[0-9a-zA-Z_]=20
      is the minimal set of characters allowed in the [..] pattern=20
construct.</P>
      <P>To suppress the special syntactic significance of any of =
`[]*?!^-\=E2=80=99,=20
      and match the character exactly, precede it with a =
`\=E2=80=99.</P><PRE><CODE>? "Hello" LIKE "*[oO]" : REM TRUE
? "Hello" LIKE "He??o" : REM TRUE
? "Hello" LIKE "hello" : REM FALSE
? "Hello" LIKE "[Hh]*" : REM TRUE
</CODE></PRE>
      <P><STRONG>The pseudo-operator &lt;&lt;</STRONG></P>
      <P>This operator can be used to append elements to an =
array.</P><PRE><CODE>A &lt;&lt; 1
A &lt;&lt; 2
A &lt;&lt; 3
</CODE>
<CODE>? A(1)
</CODE></PRE>
      <P><STRONG>Syntax of procedure (<SPAN class=3Dcaps>SUB</SPAN>)=20
      statements</STRONG></P><PRE><CODE>SUB name [([BYREF] par1 [, =
...[BYREF] parN)]]
  [LOCAL var[, var[, ...]]]
  [EXIT SUB]
  ...
END
</CODE></PRE>
      <P><STRONG>Syntax of function (<SPAN class=3Dcaps>FUNC</SPAN>)=20
      statements</STRONG></P><PRE><CODE>FUNC name[([BYREF] par1 [, =
...[BYREF] parN)]]
  [LOCAL var[, var[, ...]]]
  [EXIT FUNC]
  ...
  name=3Dreturn-value
END
</CODE></PRE>
      <P>On functions you must use the function=E2=80=99s name to return =
the value. That=20
      is, the function-name acts like a variable and it is the =
function=E2=80=99s=20
      returned value.</P>
      <P>The parameters are =E2=80=98by value=E2=80=99 by default. =
Passing parameters by value=20
      means the executor makes a copy of the parameter to stack. The =
value in=20
      caller=E2=80=99s code will not be changed.</P>
      <P>Use <CODE>BYREF</CODE> keyword for passing parameters =
=E2=80=98by reference=E2=80=99.=20
      Passing parameters by reference means the executor push the =
pointer of=20
      variable into the stack. The value in caller=E2=80=99s code will =
be the=20
      changed.</P><PRE><CODE>' Passing 'x' by value
SUB F(x)
  x=3D1
END
x=3D2
F x
? x:REM displays 2
</CODE></PRE><PRE><CODE>' Passing 'x' by reference
SUB F(BYREF x)
  x=3D1
END
x=3D2
F x
? x:REM displays 1
</CODE></PRE>
      <P>You can use the symbol <CODE>instead of </CODE>BYREF@. There is =
no=20
      difference between <CODE>and </CODE>BYREF@.</P><PRE><CODE>SUB =
F(@@x)
  x=3D1
END
</CODE></PRE>
      <P>On a multi-section (PalmOS) applications sub/funcs needs =
declaration on=20
      the main section.</P><PRE><CODE>sec:Main
declare func f(x)
</CODE>
<CODE>#sec:another section
func f(x)
...
end
</CODE></PRE>
      <P>Use the <CODE>LOCAL</CODE> keyword for local variables.=20
      <CODE>LOCAL</CODE> creates variables (dynamic) at =
routine=E2=80=99s code.</P><PRE><CODE>SUB MYPROC
  LOCAL N:REM LOCAL VAR
  N=3D2
  ? N:REM displays 2
END
</CODE>
<CODE>N=3D1:REM GLOBAL VAR
MYPROC
? N:REM displays 1
</CODE></PRE>
      <P>You can send arrays as parameters.</P>
      <P>When using arrays as parameters its better to use them as=20
      <CODE>BYREF</CODE>; otherwise their data will be duplicated in =
memory=20
      space.</P><PRE><CODE>SUB FBR(BYREF tbl)
  ? FRE(0)
  ...
END
</CODE>
<CODE>SUB FBV(tbl)
  ? FRE(0)
  ...
END
</CODE>
<CODE>' MAIN
DIM dt(128)
...
? FRE(0)
FBR dt
? FRE(0)
FBV dt
? FRE(0)
</CODE></PRE>
      <P>Passing &amp; returning arrays, using local =
arrays.</P><PRE><CODE>func fill(a)
  local b, i
</CODE>
<CODE>  dim b(16)
  for i=3D0 to 16
    b(i)=3D16-a(i)
  next
  fill=3Db
end
</CODE>
<CODE>DIM v()
v=3Dfill(v)
</CODE></PRE>
      <P><STRONG>Single-line Functions</STRONG></P>
      <P>There is also an alternative <CODE>FUNC/DEF</CODE> syntax =
(single-line=20
      functions). This is actually a macro for compatibility with the =
BASIC=E2=80=99s=20
      <SPAN class=3Dcaps>DEF</SPAN> FN command, but quite =
useful.</P><PRE><CODE>FUNC name[(par1[,...])] =3D expression
or
DEF name[(par1[,...])] =3D expression
</CODE>
<CODE>DEF MySin(x) =3D SIN(x)
? MySin(pi/2)
</CODE></PRE>
      <P><STRONG>Nested procedures and functions</STRONG></P>
      <P>One nice feature, are the nested procedures/functions. The =
nested=20
      procedures/functions are visible only inside the =
=E2=80=9Cparent=E2=80=9D=20
      procedure/function.</P>
      <P>There is no way to access a global procedure with the same name =
of a=20
      local.</P><PRE><CODE>FUNC f(x)
    Rem Function: F/F1()
    FUNC f1(x)
        Rem Function: F/F1/F2()
        FUNC f2(x)
            f2=3Dcos(x)
        END
        f1 =3D f2(x)/4
    END
    Rem Function: F/F3()
    FUNC f3
        f3=3Df1(pi/2)
    END
REM
? f1(pi) : REM OK
? f2(pi) : REM ERROR
f =3D x + f1(pi) + f3 : REM OK
END
</CODE></PRE>
      <P><STRONG>Units</STRONG></P>
      <P>Units are a set of procedures, functions and/or variables that =
can be=20
      used by another SB program or SB unit. The main section of the =
unit=20
      (commands out of procedure or function bodies) is the =
initialization=20
      code.</P>
      <P>A unit declared by the use of <CODE>UNIT</CODE> =
keyword.</P><PRE><CODE>UNIT MyUnit
</CODE></PRE>
      <P>The functions, procedure or variables which we want to be =
visible to=20
      another programs must be declared with the <CODE>EXPORT</CODE>=20
keyword.</P><PRE><CODE>UNIT MyUnit
EXPORT MyF
...
FUNC MyF(x)
...
END
</CODE></PRE>
      <P>Keep file-name and unit-name the same. That helps the SB to=20
      automatically recompile the required units when it is needed. To =
link a=20
      program with a unit we use the <CODE>IMPORT</CODE> =
keyword.</P><PRE><CODE>IMPORT MyUnit
</CODE></PRE>
      <P>To access a member of a unit we must use the unit-name, a point =
and the=20
      name of the member.</P><PRE><CODE>IMPORT MyUnit
...
PRINT MyUnit.MyF(1/1.6)
</CODE></PRE>
      <P>Full example:</P>
      <P>file my_unit.bas:</P><PRE><CODE>UNIT MyUnit
</CODE>
<CODE>EXPORT F, V
</CODE>
<CODE>REM a shared function
FUNC F(x)
    F =3D x*x
END
</CODE>
<CODE>REM a non-shared function
FUNC I(x)
    I =3D x+x
END
</CODE>
<CODE>REM Initialization code
V=3D"I am a shared variable"
L=3D"I am invisible to the application"
PRINT "Unit 'MyUnit' initialized :)"
</CODE>
<CODE>file my_app.bas:
</CODE></PRE><PRE><CODE>IMPORT MyUnit
</CODE>
<CODE>PRINT MyUnit.V
PRINT MyUnit.F(2)
</CODE></PRE>
      <H2>The pseudo-operators ++/=E2=80=94/p=3D</H2>
      <P>The ++ and =E2=80=94 operators are used to increase or decrease =
the value of=20
      a<BR>variable by 1.</P><PRE><CODE>x =3D 4
x ++ : REM x &lt;- x + 1 =3D 5
x -- : REM x &lt;- x - 1 =3D 4
</CODE></PRE>
      <P>The generic p=3D operators are used as in C Where p any =
character of=20
      -+/\*^%&amp;|</P><PRE><CODE>x +=3D 4 : REM x &lt;- x + 4
x *=3D 4 : REM x &lt;- x * 4
</CODE></PRE>
      <P>All these pseudo-operators are not allowed inside of =
expressions</P><PRE><CODE>y =3D x ++ ' ERROR
z =3D (y+=3D4)+5 ' ALSO ERROR
</CODE></PRE>
      <P><STRONG>The <SPAN class=3Dcaps>USE</SPAN> keyword</STRONG></P>
      <P>This keyword is used on specific commands to passing a =
user-defined=20
      expression.</P><PRE><CODE>SPLIT s," ",v USE TRIM(x)
</CODE></PRE>
      <P>In that example, every element of V() will be =
=E2=80=98trimmed=E2=80=99.</P>
      <P>Use the x variable to specify the parameter of the expression. =
If the=20
      expression needs more parameter, you can use also the names y and =
z</P>
      <P><STRONG>The DO keyword</STRONG></P>
      <P>This keyword is used to declare single-line commands. It can be =
used=20
      with <SPAN class=3Dcaps>WHILE</SPAN> and FOR-family =
commands.</P><PRE><CODE>FOR f IN files("*.txt") DO PRINT f
...
WHILE i &lt; 4 DO i ++
</CODE></PRE>
      <P>Also, it can be used by IF command (instead of <SPAN=20
      class=3Dcaps>THEN</SPAN>), but is not suggested.</P>
      <P><STRONG>Using <CODE>LOCAL</CODE> variables</STRONG></P>
      <P>When a variable is not declared it is by default a global =
variable. A=20
      usual problem is that name may be used again in a function or=20
      procedure.</P><PRE><CODE>FUNC F(x)
  FOR i=3D1 TO 6
    ...
  NEXT
END
</CODE>
<CODE>FOR i=3D1 TO 10
  PRINT F(i)
NEXT
</CODE></PRE>
      <P>In this example, the result is a real mess, because the=20
      <CODE>var{i</CODE> of the main loop will always (except the first =
time)=20
      have the value 6!</P>
      <P>This problem can be solved if we use the <CODE>LOCAL</CODE> =
keyword to=20
      declare the <CODE>var</CODE> in the function =
body.</P><PRE><CODE>FUNC F(x)
  LOCAL i
</CODE>
<CODE>  FOR i=3D1 TO 6
    ...
  NEXT
END
</CODE>
<CODE>FOR i=3D1 TO 10
  PRINT F(i)
NEXT
</CODE></PRE>
      <P>It is good to declare all local variables on the top of the =
function.=20
      For compatibility reasons, the func./proc. variables are not =
declared as=20
      =E2=80=98local=E2=80=99 by default. That it is <SPAN =
class=3Dcaps>WRONG</SPAN> but as I said=20
      =E2=80=A6 compatibility.</P>
      <P><STRONG>Loops and variables</STRONG></P>
      <P>When we write loops it is much better to initialize the =
counters on the=20
      top of the loop instead of the top of the program or =
nowhere.</P><PRE><CODE>i =3D 0
REPEAT
  ...
  i =3D i + 1
UNTIL i &gt; 10
</CODE></PRE>
      <P>Initializing the variables at the top of the loop, can make =
code better=20
      readable, and can protect us from usual pitfalls such as =
forgetting to=20
      giving init value or re-run the loop without reset the =
variables.</P>
      <P><STRONG>Loops and expressions</STRONG></P>
      <P>FOR-like commands are evaluate the =
=E2=80=98destination=E2=80=99 every time. Also,=20
      loops are evaluate the exit-expression every time =
too.</P><PRE><CODE>FOR i=3D0 TO LEN(FILES("*.txt"))-1
    PRINT i
NEXT
</CODE></PRE>
      <P>In that example the =E2=80=98destination=E2=80=99 is the =
<ACRONYM=20
      title=3DFILES(=E2=80=9D*.txt=E2=80=9D>LEN</ACRONYM>)-1 For each =
value of i the destination=20
      will be evaluated. That is <SPAN class=3Dcaps>WRONG</SPAN> but it =
is=20
      supported by <SPAN class=3Dcaps>BASIC</SPAN> and many other =
languages.</P>
      <P>So, it is much better to be rewritten =
as</P><PRE><CODE>idest=3DLEN(FILES("*.txt"))-1
FOR i=3D0 TO idest
    PRINT i
NEXT
</CODE></PRE>
      <P>Of course, it is much faster too.</P>
      <DIV class=3Dbook-navigation>
      <DIV class=3D"page-links clear-block"><A class=3Dpage-previous=20
      title=3D"Go to previous page"=20
      href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/861">=E2=80=B9 =
New features</A><A=20
      class=3Dpage-up title=3D"Go to parent page"=20
      =
href=3D"http://smallbasic.sourceforge.net/?q=3Dnode/837">up</A></DIV></DI=
V></DIV>
      <DIV class=3Dlinks>=C2=BB=20
      <UL class=3D"links inline">
        <LI class=3D"first last comment_forbidden"><SPAN=20
        class=3Dcomment_forbidden><A=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Duser/login&amp;destination=
=3Dcomment/reply/838%23comment-form">Login</A>=20
        or <A=20
        =
href=3D"http://smallbasic.sourceforge.net/?q=3Duser/register&amp;destinat=
ion=3Dcomment/reply/838%23comment-form">register</A>=20
        to post comments</SPAN> </LI></UL></DIV></DIV>
      <DIV id=3Dcomments></DIV></DIV></TD></TR></TBODY></TABLE>
<DIV id=3Dfooter>
<DIV class=3D"block block-block" id=3Dblock-block-1>
<H2 class=3Dtitle></H2>
<DIV class=3Dcontent>
<P><A href=3D"http://sourceforge.net/projects/smallbasic"><IMG =
height=3D15=20
alt=3D"Get SmallBASIC at SourceForge.net. Fast, secure and Free Open =
Source software downloads"=20
src=3D"http://sflogo.sourceforge.net/sflogo.php?group_id=3D22348&amp;type=
=3D10"=20
width=3D80 border=3D0></A></P></DIV></DIV></DIV></BODY></HTML>

------=_NextPart_000_0005_01C9BF70.02F93A60
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: http://smallbasic.sourceforge.net/images/logo.png

iVBORw0KGgoAAAANSUhEUgAAADEAAAA5BAMAAABt4d5CAAAAAXNSR0IArs4c6QAAACRQTFRFAAAA
AAAAAAD//wAAAD25uT0A3EkAALkA/3NIANxJwMDA//vwAQQBHQAAAAF0Uk5TAEDm2GYAAAABYktH
RACIBR1IAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1wsKBgs3hEZXNAAAAIZJREFUOMtj
YBgFQxnsRgEbEBLcqDK7UWQWCgoKSm0EEoKr0WQEBaU3CgJldgtKkyKzezdWGdz27AbpIN0eHDJ4
7cERBk7albPD0kCgG01mi9L2mVuTjY2NLdD1QDQBZboxZKCaLDDsgWnqxiID1pSxG4vMbu/d1buj
scpg8w/udDAKRggAAKetp8Yl5FouAAAAAElFTkSuQmCC

------=_NextPart_000_0005_01C9BF70.02F93A60
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: http://sflogo.sourceforge.net/sflogo.php?group_id=22348&type=10

R0lGODlhUAAPAKIAAP9mAGp0fP///2ZmZu7u7gAAAAAAAAAAACH5BAAAAAAALAAAAABQAA8AAAOa
OLrc/jDKSZe4OOvNu/9gqAhEaZ5oqq5s67bC+M50bafxQN587xO5XSlAHAaGSOLReFQ2lUamqUhw
TpNQaCl47TaT4C7SWw1/UcWzGCibLt/lsnYprVLh85MWa6fT2TopZ4NyY4ZxY194amR/iIBCe1R2
iVJWjneJb1AAcU+ZJlw/o6QsoqWoqKeprD5BIbCxsrMcFba3uLkOCQA7

------=_NextPart_000_0005_01C9BF70.02F93A60
Content-Type: text/css;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://smallbasic.sourceforge.net/persistent/files/css/be09042940858d327d86b5b73335ff4d.css

.book-navigation .menu {
	PADDING-RIGHT: 0px; BORDER-TOP: #888 1px solid; PADDING-LEFT: 3em; =
PADDING-BOTTOM: 0px; PADDING-TOP: 1em
}
.book-navigation .page-links {
	PADDING-RIGHT: 0.5em; BORDER-TOP: #888 1px solid; PADDING-LEFT: 0.5em; =
PADDING-BOTTOM: 0.5em; PADDING-TOP: 0.5em; BORDER-BOTTOM: #888 1px =
solid; TEXT-ALIGN: center
}
.book-navigation .page-previous {
	DISPLAY: block; FLOAT: left; WIDTH: 42%; TEXT-ALIGN: left
}
.book-navigation .page-up {
	DISPLAY: block; FLOAT: left; MARGIN: 0px 5%; WIDTH: 4%
}
.book-navigation .page-next {
	DISPLAY: block; FLOAT: right; WIDTH: 42%; TEXT-ALIGN: right
}
DIV.codeblock {
	BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px =
solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: #ccc 1px =
solid; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; =
BACKGROUND-COLOR: #eee
}
.node-unpublished {
	BACKGROUND-COLOR: #fff4f4
}
.preview .node {
	BACKGROUND-COLOR: #ffffea
}
#node-admin-filter UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; WIDTH: 100%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
#node-admin-buttons {
	CLEAR: right; FLOAT: left; MARGIN-LEFT: 0.5em
}
TD.revision-current {
	BACKGROUND: #ffc
}
.node-form .form-text {
	DISPLAY: block; WIDTH: 95%
}
.node-form .container-inline .form-text {
	DISPLAY: inline; WIDTH: auto
}
.node-form .standard {
	CLEAR: both
}
.node-form TEXTAREA {
	DISPLAY: block; WIDTH: 95%
}
.node-form .attachments FIELDSET {
	DISPLAY: block; FLOAT: none
}
FIELDSET {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; MARGIN-BOTTOM: 1em; =
PADDING-BOTTOM: 0.5em; PADDING-TOP: 0.5em
}
FORM {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
HR {
	BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: =
gray 1px solid; BORDER-BOTTOM: gray 1px solid; HEIGHT: 1px
}
IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
TABLE {
	BORDER-COLLAPSE: collapse
}
TH {
	PADDING-RIGHT: 1em; BORDER-BOTTOM: #ccc 3px solid; TEXT-ALIGN: left
}
.clear-block:unknown {
	CLEAR: both; DISPLAY: block; VISIBILITY: hidden; HEIGHT: 0px; content: =
"."
}
.clear-block {
	DISPLAY: inline-block
}
 HTML .clear-block {
	HEIGHT: 1%
}
.clear-block {
	DISPLAY: block
}
TH.active IMG {
	DISPLAY: inline
}
TR.even {
	PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 0.1em; =
PADDING-TOP: 0.1em; BORDER-BOTTOM: #ccc 1px solid; BACKGROUND-COLOR: =
#eee
}
TR.odd {
	PADDING-RIGHT: 0.6em; PADDING-LEFT: 0.6em; PADDING-BOTTOM: 0.1em; =
PADDING-TOP: 0.1em; BORDER-BOTTOM: #ccc 1px solid; BACKGROUND-COLOR: =
#eee
}
TD.active {
	BACKGROUND-COLOR: #ddd
}
TBODY {
	BORDER-TOP: #ccc 1px solid
}
TBODY TH {
	BORDER-BOTTOM: #ccc 1px solid
}
THEAD TH {
	PADDING-RIGHT: 1em; BORDER-BOTTOM: #ccc 3px solid; TEXT-ALIGN: left
}
.breadcrumb {
	PADDING-BOTTOM: 0.5em
}
.error {
	COLOR: #f00
}
DIV.error {
	BORDER-RIGHT: #d77 1px solid; BORDER-TOP: #d77 1px solid; BORDER-LEFT: =
#d77 1px solid; BORDER-BOTTOM: #d77 1px solid
}
DIV.error {
	BACKGROUND: #fcc; COLOR: #200
}
TR.error {
	BACKGROUND: #fcc; COLOR: #200
}
DIV.warning {
	BACKGROUND: #ffd
}
TR.warning {
	BACKGROUND: #ffd
}
DIV.ok {
	BACKGROUND: #dfd
}
TR.ok {
	BACKGROUND: #dfd
}
.item-list .icon {
	CLEAR: right; PADDING-LEFT: 0.25em; FLOAT: right; COLOR: #555
}
.item-list .title {
	FONT-WEIGHT: bold
}
.item-list UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 0.75em; PADDING-TOP: 0px
}
.item-list UL LI {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 0.25em 1.5em; PADDING-TOP: 0px; LIST-STYLE-TYPE: disc
}
.form-item {
	MARGIN-TOP: 1em; MARGIN-BOTTOM: 1em
}
TR.odd .form-item {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WHITE-SPACE: nowrap
}
TR.even .form-item {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WHITE-SPACE: nowrap
}
TR.merge-down {
	BORDER-BOTTOM-WIDTH: 0px! important
}
TR.merge-down TD {
	BORDER-BOTTOM-WIDTH: 0px! important
}
TR.merge-down TH {
	BORDER-BOTTOM-WIDTH: 0px! important
}
TR.merge-up {
	BORDER-TOP-WIDTH: 0px! important
}
TR.merge-up TD {
	BORDER-TOP-WIDTH: 0px! important
}
TR.merge-up TH {
	BORDER-TOP-WIDTH: 0px! important
}
.form-item INPUT.error {
	BORDER-RIGHT: red 2px solid; BORDER-TOP: red 2px solid; BORDER-LEFT: =
red 2px solid; BORDER-BOTTOM: red 2px solid
}
.form-item TEXTAREA.error {
	BORDER-RIGHT: red 2px solid; BORDER-TOP: red 2px solid; BORDER-LEFT: =
red 2px solid; BORDER-BOTTOM: red 2px solid
}
.form-item SELECT.error {
	BORDER-RIGHT: red 2px solid; BORDER-TOP: red 2px solid; BORDER-LEFT: =
red 2px solid; BORDER-BOTTOM: red 2px solid
}
.form-item .description {
	FONT-SIZE: 0.85em
}
.form-item LABEL {
	DISPLAY: block; FONT-WEIGHT: bold
}
.form-item LABEL.option {
	DISPLAY: inline; FONT-WEIGHT: normal
}
.form-checkboxes {
	MARGIN: 1em 0px
}
.form-radios {
	MARGIN: 1em 0px
}
.form-checkboxes .form-item {
	MARGIN-TOP: 0.4em; MARGIN-BOTTOM: 0.4em
}
.form-radios .form-item {
	MARGIN-TOP: 0.4em; MARGIN-BOTTOM: 0.4em
}
.marker {
	COLOR: #f00
}
.form-required {
	COLOR: #f00
}
.more-link {
	TEXT-ALIGN: right
}
.more-help-link {
	FONT-SIZE: 0.85em; TEXT-ALIGN: right
}
.nowrap {
	WHITE-SPACE: nowrap
}
.pager {
	CLEAR: both; TEXT-ALIGN: center
}
.pager A {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0.5em; =
PADDING-TOP: 0.5em
}
.pager STRONG.pager-current {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0.5em; =
PADDING-TOP: 0.5em
}
.tips {
	MARGIN-TOP: 0px; FONT-SIZE: 0.9em; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: =
0px; PADDING-TOP: 0px
}
DL.multiselect DD.b {
	WIDTH: 14em; FONT-FAMILY: inherit
}
DL.multiselect DD.b .form-item {
	WIDTH: 14em; FONT-FAMILY: inherit
}
DL.multiselect DD.b SELECT {
	WIDTH: 14em; FONT-FAMILY: inherit
}
DL.multiselect DD.a {
	WIDTH: 8em
}
DL.multiselect DD.a .form-item {
	WIDTH: 8em
}
DL.multiselect DT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0px 1em 0px 0px; LINE-HEIGHT: 1.75em; PADDING-TOP: 0px
}
DL.multiselect DD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
0px; MARGIN: 0px 1em 0px 0px; LINE-HEIGHT: 1.75em; PADDING-TOP: 0px
}
DL.multiselect .form-item {
	MARGIN: 0px; HEIGHT: 1.75em
}
.container-inline DIV {
	DISPLAY: inline
}
.container-inline LABEL {
	DISPLAY: inline
}
UL.menu {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; LIST-STYLE-TYPE: none; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none
}
UL.menu LI {
	MARGIN: 0px 0px 0px 0.5em
}
LI.expanded {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: =
url(/modules/system/../../misc/menu-expanded.png); PADDING-BOTTOM: 0px; =
MARGIN: 0px; PADDING-TOP: 0.2em; LIST-STYLE-TYPE: circle
}
LI.collapsed {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: =
url(/modules/system/../../misc/menu-collapsed.png); PADDING-BOTTOM: 0px; =
MARGIN: 0px; PADDING-TOP: 0.2em; LIST-STYLE-TYPE: disc
}
LI.leaf {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0px; LIST-STYLE-IMAGE: =
url(/modules/system/../../misc/menu-leaf.png); PADDING-BOTTOM: 0px; =
MARGIN: 0px; PADDING-TOP: 0.2em; LIST-STYLE-TYPE: square
}
LI A.active {
	COLOR: #000
}
TD.menu-disabled {
	BACKGROUND: #ccc
}
UL.links {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
UL.inline {
	DISPLAY: inline
}
UL.links LI {
	PADDING-RIGHT: 0.5em; DISPLAY: inline; PADDING-LEFT: 0.5em; =
PADDING-BOTTOM: 0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
.block UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 1em; PADDING-BOTTOM: 0.25em; MARGIN: =
0px; PADDING-TOP: 0px
}
UL.primary {
	PADDING-RIGHT: 0px; PADDING-LEFT: 1em; PADDING-BOTTOM: 0px; MARGIN: =
5px; LINE-HEIGHT: normal; PADDING-TOP: 0px; BORDER-BOTTOM: #bbb 1px =
solid; WHITE-SPACE: nowrap; LIST-STYLE-TYPE: none; BORDER-COLLAPSE: =
collapse; HEIGHT: auto
}
UL.primary LI {
	DISPLAY: inline
}
UL.primary LI A {
	BORDER-RIGHT: #bbb 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: #bbb 1px =
solid; PADDING-LEFT: 1em; PADDING-BOTTOM: 0px; BORDER-LEFT: #bbb 1px =
solid; MARGIN-RIGHT: 0.5em; PADDING-TOP: 0px; BORDER-BOTTOM: #bbb 1px; =
HEIGHT: auto; BACKGROUND-COLOR: #ddd; TEXT-DECORATION: none
}
UL.primary LI.active A {
	BORDER-RIGHT: #bbb 1px solid; BORDER-TOP: #bbb 1px solid; BORDER-LEFT: =
#bbb 1px solid; BORDER-BOTTOM: #fff 1px solid; BACKGROUND-COLOR: #fff
}
UL.primary LI A:hover {
	BORDER-LEFT-COLOR: #ccc; BORDER-BOTTOM-COLOR: #eee; BORDER-TOP-COLOR: =
#ccc; BACKGROUND-COLOR: #eee; BORDER-RIGHT-COLOR: #ccc
}
UL.secondary {
	PADDING-RIGHT: 1em; PADDING-LEFT: 1em; PADDING-BOTTOM: 0.5em; MARGIN: =
5px; PADDING-TOP: 0.5em; BORDER-BOTTOM: #bbb 1px solid
}
UL.secondary LI {
	BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 1em; DISPLAY: inline; =
PADDING-LEFT: 1em; PADDING-BOTTOM: 0px; PADDING-TOP: 0px
}
UL.secondary A {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px; TEXT-DECORATION: none
}
UL.secondary A.active {
	BORDER-BOTTOM: #999 4px solid
}
#autocomplete {
	BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; Z-INDEX: 100; OVERFLOW: =
hidden; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; POSITION: =
absolute
}
#autocomplete UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
#autocomplete LI {
	BACKGROUND: #fff; CURSOR: default; COLOR: #000; WHITE-SPACE: pre
}
#autocomplete LI.selected {
	BACKGROUND: #0072b9; COLOR: #fff
}
HTML.js INPUT.form-autocomplete {
	BACKGROUND-POSITION: 100% 2px; BACKGROUND-IMAGE: =
url(/modules/system/../../misc/throbber.gif); BACKGROUND-REPEAT: =
no-repeat
}
HTML.js INPUT.throbbing {
	BACKGROUND-POSITION: 100% -18px
}
HTML.js FIELDSET.collapsed {
	BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN-BOTTOM: 0px; =
HEIGHT: 1em; BORDER-RIGHT-WIDTH: 0px
}
HTML.js FIELDSET.collapsed  {
	DISPLAY: none
}
HTML.js FIELDSET.collapsed LEGEND {
	DISPLAY: block
}
HTML.js FIELDSET.collapsible LEGEND A {
	PADDING-LEFT: 15px; BACKGROUND: =
url(/modules/system/../../misc/menu-expanded.png) no-repeat 5px 75%
}
HTML.js FIELDSET.collapsed LEGEND A {
	BACKGROUND-POSITION: 5px 50%; BACKGROUND-IMAGE: =
url(/modules/system/../../misc/menu-collapsed.png)
}
 HTML.js FIELDSET.collapsed LEGEND {
	DISPLAY: inline
}
 HTML.js FIELDSET.collapsed LEGEND  {
	DISPLAY: inline
}
 HTML.js FIELDSET.collapsed TABLE  {
	DISPLAY: inline
}
HTML.js FIELDSET.collapsible LEGEND A {
	DISPLAY: block
}
HTML.js FIELDSET.collapsible .fieldset-wrapper {
	OVERFLOW: auto
}
.resizable-textarea {
	WIDTH: 95%
}
.resizable-textarea .grippie {
	BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 0px solid; BACKGROUND: =
url(/modules/system/../../misc/grippie.png) #eee no-repeat center 2px; =
OVERFLOW: hidden; BORDER-LEFT: #ddd 1px solid; CURSOR: s-resize; =
BORDER-BOTTOM: #ddd 1px solid; HEIGHT: 9px
}
HTML.js .resizable-textarea TEXTAREA {
	DISPLAY: block; MARGIN-BOTTOM: 0px; WIDTH: 100%
}
.progress {
	FONT-WEIGHT: bold
}
.progress .bar {
	BORDER-RIGHT: #00375a 1px solid; BORDER-TOP: #00375a 1px solid; =
MARGIN-TOP: 0.2em; BACKGROUND: =
url(/modules/system/../../misc/progress.gif) #fff; BORDER-LEFT: #00375a =
1px solid; BORDER-BOTTOM: #00375a 1px solid; HEIGHT: 1.5em
}
.progress .filled {
	BACKGROUND: #0072b9; WIDTH: 0%; BORDER-BOTTOM: #004a73 0.5em solid; =
HEIGHT: 1em
}
.progress .percentage {
	FLOAT: right
}
#first-time STRONG {
	PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0.5em; PADDING-TOP: 1.5em
}
TR.selected TD {
	BACKGROUND: #ffc
}
#permissions TD.module {
	FONT-WEIGHT: bold
}
#permissions TD.permission {
	PADDING-LEFT: 1.5em
}
#access-rules .access-type {
	FLOAT: left; MARGIN-RIGHT: 1em
}
#access-rules .rule-type {
	FLOAT: left; MARGIN-RIGHT: 1em
}
#access-rules .access-type .form-item {
	MARGIN-TOP: 0px
}
#access-rules .rule-type .form-item {
	MARGIN-TOP: 0px
}
#access-rules .mask {
	CLEAR: both
}
#user-login-form {
	TEXT-ALIGN: center
}
#user-admin-filter UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; WIDTH: 100%; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
#user-admin-buttons {
	CLEAR: right; FLOAT: left; MARGIN-LEFT: 0.5em
}
.profile {
	CLEAR: both; MARGIN: 1em 0px
}
.profile .picture {
	FLOAT: right; MARGIN: 0px 1em 1em 0px
}
.profile DT {
	FONT-WEIGHT: bold; MARGIN: 1em 0px 0.2em
}
.profile DD {
	MARGIN: 0px
}
.indented {
	MARGIN-LEFT: 25px
}
.comment-unpublished {
	BACKGROUND-COLOR: #fff4f4
}
.preview .comment {
	BACKGROUND-COLOR: #ffffea
}
BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; FONT: 76% Verdana,Arial,Helvetica,sans-serif; COLOR: #000; =
PADDING-TOP: 0px; BACKGROUND-COLOR: #fff
}
TR.odd TD {
	PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.3em; =
PADDING-TOP: 0.3em
}
TR.even TD {
	PADDING-RIGHT: 0.3em; PADDING-LEFT: 0.3em; PADDING-BOTTOM: 0.3em; =
PADDING-TOP: 0.3em
}
H1 {
	MARGIN-BOTTOM: 0.5em
}
H2 {
	MARGIN-BOTTOM: 0.5em
}
H3 {
	MARGIN-BOTTOM: 0.5em
}
H4 {
	MARGIN-BOTTOM: 0.5em
}
H5 {
	MARGIN-BOTTOM: 0.5em
}
H6 {
	MARGIN-BOTTOM: 0.5em
}
H1 {
	FONT-SIZE: 1.3em
}
H2 {
	FONT-SIZE: 1.2em
}
H3 {
	FONT-SIZE: 1.1em
}
H4 {
	FONT-SIZE: 1.1em
}
H5 {
	FONT-SIZE: 1.1em
}
H6 {
	FONT-SIZE: 1.1em
}
P {
	MARGIN-TOP: 0.5em; MARGIN-BOTTOM: 0.9em
}
A {
	FONT-WEIGHT: bold; TEXT-DECORATION: none
}
A:link {
	COLOR: #39c
}
A:visited {
	COLOR: #369
}
A:hover {
	COLOR: #39c; TEXT-DECORATION: underline
}
FIELDSET {
	BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: =
#ccc 1px solid; BORDER-BOTTOM: #ccc 1px solid
}
PRE {
	BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 1.5em; BORDER-TOP: #ddd =
1px solid; PADDING-LEFT: 1.5em; FONT-SIZE: 12px; PADDING-BOTTOM: 0.75em; =
BORDER-LEFT: #ddd 1px solid; PADDING-TOP: 0.75em; BORDER-BOTTOM: #ddd =
1px solid; BACKGROUND-COLOR: #eee
}
TABLE {
	FONT-SIZE: 1em
}
.form-item LABEL {
	FONT-SIZE: 1em; COLOR: #222
}
.item-list .title {
	FONT-SIZE: 1em; COLOR: #222
}
.links {
	MARGIN-BOTTOM: 0px
}
.comment .links {
	MARGIN-BOTTOM: 0px
}
#header {
	WIDTH: 100%
}
#content {
	WIDTH: 100%
}
#header {
	BACKGROUND-COLOR: #69c
}
#logo {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; VERTICAL-ALIGN: middle; BORDER-RIGHT-WIDTH: 0px
}
#logo IMG {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 1em; PADDING-LEFT: 1em; =
BORDER-LEFT-WIDTH: 0px; FLOAT: left; BORDER-BOTTOM-WIDTH: 0px; =
PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px
}
#menu {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0px; =
VERTICAL-ALIGN: middle; PADDING-TOP: 0.5em; TEXT-ALIGN: right
}
#navlist {
	PADDING-RIGHT: 0.8em; PADDING-LEFT: 0px; FONT-SIZE: 1em; =
PADDING-BOTTOM: 1.2em; COLOR: #9cf; PADDING-TOP: 0px
}
#navlist A {
	FONT-WEIGHT: bold; COLOR: #fff
}
#subnavlist {
	PADDING-RIGHT: 1.2em; PADDING-LEFT: 0px; FONT-SIZE: 0.8em; =
PADDING-BOTTOM: 0.4em; COLOR: #9cf; PADDING-TOP: 0.5em
}
#subnavlist A {
	FONT-WEIGHT: bold; COLOR: #9cf
}
UL.links LI {
	BORDER-LEFT: #9cf 1px solid
}
UL.links LI.first {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
#search .form-text {
	BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; FONT-SIZE: =
1.1em; VERTICAL-ALIGN: middle; BORDER-LEFT: #369 1px solid; =
BORDER-BOTTOM: #369 1px solid; HEIGHT: 1.5em
}
#search .form-submit {
	BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; FONT-SIZE: =
1.1em; VERTICAL-ALIGN: middle; BORDER-LEFT: #369 1px solid; =
BORDER-BOTTOM: #369 1px solid; HEIGHT: 1.5em
}
#search .form-text {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0px; WIDTH: =
8em; PADDING-TOP: 0px
}
#mission {
	PADDING-RIGHT: 2em; PADDING-LEFT: 2em; PADDING-BOTTOM: 1.5em; COLOR: =
#fff; PADDING-TOP: 1.5em; BACKGROUND-COLOR: #369
}
#mission A {
	FONT-WEIGHT: bold; COLOR: #9cf
}
#mission A:visited {
	FONT-WEIGHT: bold; COLOR: #9cf
}
.site-name {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 2em; PADDING-BOTTOM: =
0px; MARGIN: 0.6em 0px 0px; PADDING-TOP: 0px
}
.site-name A:link {
	COLOR: #fff
}
.site-name A:visited {
	COLOR: #fff
}
.site-name A:hover {
	COLOR: #369; TEXT-DECORATION: none
}
.site-slogan {
	DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 1em; MARGIN: 0px; COLOR: =
#eee; FONT-STYLE: italic
}
#main {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#mission {
	LINE-HEIGHT: 1.4em
}
.node .content {
	LINE-HEIGHT: 1.4em
}
.comment .content {
	LINE-HEIGHT: 1.4em
}
#help {
	FONT-SIZE: 0.9em; MARGIN-BOTTOM: 1em
}
.breadcrumb {
	MARGIN-BOTTOM: 0.5em
}
.messages {
	BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 0.3em; BORDER-TOP: #ccc =
1px solid; PADDING-LEFT: 0.3em; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: =
0.3em; BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 0.3em; BORDER-BOTTOM: =
#ccc 1px solid; BACKGROUND-COLOR: #eee
}
.error {
	BORDER-LEFT-COLOR: red; BORDER-BOTTOM-COLOR: red; BORDER-TOP-COLOR: =
red; BORDER-RIGHT-COLOR: red
}
#sidebar-left {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
VERTICAL-ALIGN: top; WIDTH: 16em; PADDING-TOP: 10px; BACKGROUND-COLOR: =
#ddd
}
#sidebar-right {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
VERTICAL-ALIGN: top; WIDTH: 16em; PADDING-TOP: 10px; BACKGROUND-COLOR: =
#ddd
}
#footer {
	PADDING-RIGHT: 1em; PADDING-LEFT: 1em; FONT-SIZE: 0.8em; =
PADDING-BOTTOM: 1em; PADDING-TOP: 1em; BACKGROUND-COLOR: #eee
}
.title {
	FONT-WEIGHT: bold; FONT-SIZE: 1.3em; MARGIN: 0px auto; COLOR: #777
}
.title A {
	FONT-WEIGHT: bold; FONT-SIZE: 1.3em; MARGIN: 0px auto; COLOR: #777
}
.submitted {
	FONT-SIZE: 0.8em; COLOR: #999
}
.links {
	COLOR: #999
}
.links A {
	FONT-WEIGHT: bold
}
.block {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1.5em; =
PADDING-TOP: 0px
}
.box {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1.5em; =
PADDING-TOP: 0px
}
.block {
	MARGIN-BOTTOM: 1.5em; PADDING-BOTTOM: 0.75em; BORDER-BOTTOM: #bbb 1px =
solid
}
.block .title {
	MARGIN-BOTTOM: 0.25em
}
.box .title {
	FONT-SIZE: 1.1em
}
.node {
	MARGIN: 0.5em 0px 2em
}
.sticky {
	BORDER-RIGHT: #ddd 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #ddd =
1px solid; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0.5em; BORDER-LEFT: #ddd =
1px solid; PADDING-TOP: 0.5em; BORDER-BOTTOM: #ddd 1px solid; =
BACKGROUND-COLOR: #eee
}
.node .content {
	MARGIN: 0.5em 0px
}
.comment .content {
	MARGIN: 0.5em 0px
}
.node .taxonomy {
	PADDING-LEFT: 1.5em; FONT-SIZE: 0.8em; COLOR: #999
}
.node .picture {
	BORDER-RIGHT: #ddd 1px solid; BORDER-TOP: #ddd 1px solid; FLOAT: right; =
MARGIN: 0.5em; BORDER-LEFT: #ddd 1px solid; BORDER-BOTTOM: #ddd 1px =
solid
}
.comment {
	BORDER-RIGHT: #abc 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #abc =
1px solid; PADDING-LEFT: 0.5em; MARGIN-BOTTOM: 1em; PADDING-BOTTOM: =
0.5em; BORDER-LEFT: #abc 1px solid; PADDING-TOP: 0.5em; BORDER-BOTTOM: =
#abc 1px solid
}
.comment .title A {
	FONT-WEIGHT: normal; FONT-SIZE: 1.1em
}
.comment .new {
	FONT-WEIGHT: bold; FONT-SIZE: 0.8em; FLOAT: right; COLOR: red; =
TEXT-ALIGN: right
}
.comment .picture {
	BORDER-RIGHT: #abc 1px solid; BORDER-TOP: #abc 1px solid; FLOAT: right; =
MARGIN: 0.5em; BORDER-LEFT: #abc 1px solid; BORDER-BOTTOM: #abc 1px =
solid
}
#aggregator .feed-source {
	BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: #ccc 1px =
solid; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; MARGIN: 1em 0px; =
BORDER-LEFT: #ccc 1px solid; PADDING-TOP: 1em; BORDER-BOTTOM: #ccc 1px =
solid; BACKGROUND-COLOR: #eee
}
#aggregator .news-item .categories {
	FONT-SIZE: 0.9em; COLOR: #999; FONT-STYLE: italic
}
#aggregator .source {
	FONT-SIZE: 0.9em; COLOR: #999; FONT-STYLE: italic
}
#aggregator .age {
	FONT-SIZE: 0.9em; COLOR: #999; FONT-STYLE: italic
}
#aggregator .title {
	FONT-SIZE: 1em; MARGIN-BOTTOM: 0.5em
}
#aggregator H3 {
	MARGIN-TOP: 1em
}
#forum TABLE {
	WIDTH: 100%
}
#forum TD {
	PADDING-RIGHT: 0.5em; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0.5em; =
PADDING-TOP: 0.5em
}
#forum TD.forum {
	BACKGROUND-COLOR: #eee
}
#forum TD.posts {
	BACKGROUND-COLOR: #eee
}
#forum TD.topics {
	BACKGROUND-COLOR: #ddd
}
#forum TD.last-reply {
	BACKGROUND-COLOR: #ddd
}
#forum TD.container {
	BACKGROUND-COLOR: #ccc
}
#forum TD.container A {
	COLOR: #555
}
#forum TD.statistics {
	BORDER-RIGHT: #bbb 1px solid; BORDER-TOP: #bbb 1px solid; BORDER-LEFT: =
#bbb 1px solid; BORDER-BOTTOM: #bbb 1px solid; HEIGHT: 1.5em
}
#forum TD.settings {
	BORDER-RIGHT: #bbb 1px solid; BORDER-TOP: #bbb 1px solid; BORDER-LEFT: =
#bbb 1px solid; BORDER-BOTTOM: #bbb 1px solid; HEIGHT: 1.5em
}
#forum TD.pager {
	BORDER-RIGHT: #bbb 1px solid; BORDER-TOP: #bbb 1px solid; BORDER-LEFT: =
#bbb 1px solid; BORDER-BOTTOM: #bbb 1px solid; HEIGHT: 1.5em
}
#forum TD .name {
	COLOR: #96c
}
#forum TD .links {
	FONT-SIZE: 0.9em; PADDING-TOP: 0.7em
}
#profile .profile {
	CLEAR: both; BORDER-RIGHT: #abc 1px solid; PADDING-RIGHT: 0.5em; =
BORDER-TOP: #abc 1px solid; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0.5em; =
MARGIN: 1em 0em; BORDER-LEFT: #abc 1px solid; PADDING-TOP: 0.5em; =
BORDER-BOTTOM: #abc 1px solid
}
#profile .profile .name {
	PADDING-BOTTOM: 0.5em
}
.block-forum H3 {
	MARGIN-BOTTOM: 0.5em
}
DIV.admin-panel .description {
	COLOR: #999
}
DIV.admin-panel .body {
	BACKGROUND: #f4f4f4
}
DIV.admin-panel H3 {
	PADDING-RIGHT: 8px; PADDING-LEFT: 8px; PADDING-BOTTOM: 5px; MARGIN: =
0px; COLOR: #fff; PADDING-TOP: 5px; BACKGROUND-COLOR: #69c
}

------=_NextPart_000_0005_01C9BF70.02F93A60--
