~ubuntu-branches/ubuntu/hoary/scilab/hoary

« back to all changes in this revision

Viewing changes to man/fr/scicos/CSCOPE.htm

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2005-01-09 22:58:21 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050109225821-473xr8vhgugxxx5j
Tags: 3.0-12
changed configure.in to build scilab's own malloc.o, closes: #255869

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 
2
 
 
3
<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
 
4
original version by:  Nikos Drakos, CBLU, University of Leeds
 
5
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 
6
* with significant contributions from:
 
7
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
 
8
<HTML>
 
9
<HEAD>
 
10
<TITLE>Scope </TITLE>
 
11
<META NAME="description" CONTENT="Scope ">
 
12
<META NAME="keywords" CONTENT="main">
 
13
<META NAME="resource-type" CONTENT="document">
 
14
<META NAME="distribution" CONTENT="global">
 
15
 
 
16
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
 
17
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
18
 
 
19
<LINK REL="STYLESHEET" HREF="main.css">
 
20
 
 
21
</HEAD>
 
22
 
 
23
<BODY bgcolor="#FFFFFF">
 
24
 
 
25
<!--Table of Child-Links-->
 
26
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
27
 
 
28
<UL>
 
29
<LI><A NAME="tex2html3240"
 
30
  HREF="CSCOPE.htm#SECTION00526100000000000000">Library</A>
 
31
<LI><A NAME="tex2html3241"
 
32
  HREF="CSCOPE.htm#SECTION00526200000000000000">Description</A>
 
33
<LI><A NAME="tex2html3242"
 
34
  HREF="CSCOPE.htm#SECTION00526300000000000000">Dialog Box</A>
 
35
<LI><A NAME="tex2html3243"
 
36
  HREF="CSCOPE.htm#SECTION00526400000000000000">Default properties</A>
 
37
<LI><A NAME="tex2html3244"
 
38
  HREF="CSCOPE.htm#SECTION00526500000000000000">Interfacing function</A>
 
39
<LI><A NAME="tex2html3245"
 
40
  HREF="CSCOPE.htm#SECTION00526600000000000000">Computational function (type 4)</A>
 
41
</UL>
 
42
<!--End of Table of Child-Links-->
 
43
<HR>
 
44
 
 
45
<H2><A NAME="SECTION00526000000000000000"></A><A NAME="CSCOPE"></A>
 
46
<BR>
 
47
Scope 
 
48
</H2>
 
49
<DIV ALIGN="CENTER">
 
50
<!-- MATH
 
51
 $\epsfig{file=CSCOPE.eps,width=90.00pt}$
 
52
 -->
 
53
<IMG
 
54
 WIDTH="143" HEIGHT="161" ALIGN="BOTTOM" BORDER="0"
 
55
 SRC="img42.gif"
 
56
 ALT="\epsfig{file=CSCOPE.eps,width=90.00pt}">
 
57
</DIV>
 
58
<H3><font color="blue"><A NAME="SECTION00526100000000000000">
 
59
Library</A>
 
60
</font></H3>
 
61
Sinks
 
62
 
 
63
<H3><font color="blue"><A NAME="SECTION00526200000000000000">
 
64
Description</A>
 
65
</font></H3>
 
66
 
 
67
<P>
 
68
 
 
69
<H3><font color="blue"><A NAME="SECTION00526300000000000000">
 
70
Dialog Box</A>
 
71
</font></H3>
 
72
<DIV ALIGN="CENTER">
 
73
<TABLE CELLPADDING=3 BORDER="1">
 
74
<TR><TD ALIGN="CENTER">Set Scope parameters</TD>
 
75
<TD></TD>
 
76
</TR>
 
77
<TR><TD ALIGN="CENTER">Color (<IMG
 
78
 WIDTH="18" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
 
79
 SRC="img2.gif"
 
80
 ALT="$ &gt;$">0) or mark (<IMG
 
81
 WIDTH="18" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
 
82
 SRC="img1.gif"
 
83
 ALT="$ &lt;$">0) vector (8 entries)</TD>
 
84
<TD ALIGN="CENTER">1 3 5 7 9 11 13 15</TD>
 
85
</TR>
 
86
<TR><TD ALIGN="CENTER">Output window number (-1 for automatic)</TD>
 
87
<TD ALIGN="CENTER">-1</TD>
 
88
</TR>
 
89
<TR><TD ALIGN="CENTER">Output window position</TD>
 
90
<TD ALIGN="CENTER">[]</TD>
 
91
</TR>
 
92
<TR><TD ALIGN="CENTER">Output window sizes</TD>
 
93
<TD ALIGN="CENTER">[600;400]</TD>
 
94
</TR>
 
95
<TR><TD ALIGN="CENTER">Ymin</TD>
 
96
<TD ALIGN="CENTER">-15</TD>
 
97
</TR>
 
98
<TR><TD ALIGN="CENTER">Ymax</TD>
 
99
<TD ALIGN="CENTER">15</TD>
 
100
</TR>
 
101
<TR><TD ALIGN="CENTER">Refresh period</TD>
 
102
<TD ALIGN="CENTER">30</TD>
 
103
</TR>
 
104
<TR><TD ALIGN="CENTER">Buffer size</TD>
 
105
<TD ALIGN="CENTER">2</TD>
 
106
</TR>
 
107
<TR><TD ALIGN="CENTER">Accept herited events 0/1</TD>
 
108
<TD ALIGN="CENTER">0</TD>
 
109
</TR>
 
110
<TR><TD ALIGN="CENTER">Name of Scope (label&amp;Id)</TD>
 
111
<TD ALIGN="CENTER">&nbsp;</TD>
 
112
</TR>
 
113
</TABLE>
 
114
</DIV>
 
115
 
 
116
<UL>
 
117
<LI>Color : a vector of integers. The i-th element is the color
 
118
  number (<IMG
 
119
 WIDTH="31" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
 
120
 SRC="img36.gif"
 
121
 ALT="$ &gt;0$">) or dash type (<IMG
 
122
 WIDTH="31" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
 
123
 SRC="img37.gif"
 
124
 ALT="$ &lt;0$">) used to draw the evolution of the i-th
 
125
  input port signal. See  <B>plot2d</B>  for color (dash type) definitions.   
 
126
</LI>
 
127
<LI>Output window number :The number of graphic window used for 
 
128
  the display. It is often good to use high values to avoid conflict 
 
129
  with palettes and Super Block windows. If default value is used <B>  (1)</B>, Scicos define the output window number.  
 
130
</LI>
 
131
<LI>Output window position:a 2 vector specifying the coordinates
 
132
  of the upper left corner of the graphic window. Answer [] for 
 
133
  default window position.   
 
134
</LI>
 
135
<LI>Output window sizes: a 2 vector specifying the coordinates of
 
136
  the upper left corner of the graphic window. Answer [] for default 
 
137
  window position.   
 
138
</LI>
 
139
<LI>Ymin: Minimum  values of the input; used to set up the Y-axis
 
140
  of the plot in the graphics window.   
 
141
</LI>
 
142
<LI>Ymax: Maximum values of the input; used to set up the Y-axis
 
143
  of the plot in the graphics window.   
 
144
</LI>
 
145
<LI>Refresh period: Maximum value on the X-axis (time). The plot
 
146
  is redrawn when time reaches a multiple of this value.  
 
147
</LI>
 
148
<LI>Buffer size:To improve efficiency it is possible to buffer the
 
149
  input data. The drawing is only done after each  <B>Buffer size</B>
 
150
  call to the block.   
 
151
</LI>
 
152
<LI>Accept herited events 0/1: if 0  <B>CSCOPE_f</B>  draws a new point
 
153
  only when an event occurs on its event input port. if 1  <B>CSCOPE_f</B>
 
154
  draws a new point when an event occurs on its event input port and
 
155
  when it's regular input changes due to an event on an other upstrem
 
156
  block (herited events).  
 
157
</LI>
 
158
<LI>Name of Scope : Name/label of the block.
 
159
</LI>
 
160
</UL>
 
161
 
 
162
<H3><font color="blue"><A NAME="SECTION00526400000000000000">
 
163
Default properties</A>
 
164
</font></H3>
 
165
 
 
166
<UL>
 
167
<LI>always active: no
 
168
</LI>
 
169
<LI>direct-feedthrough: yes
 
170
</LI>
 
171
<LI>zero-crossing: no
 
172
</LI>
 
173
<LI>mode: no
 
174
</LI>
 
175
<LI>number/sizes of inputs: 1 / -1
 
176
</LI>
 
177
<LI>number/sizes of outputs: 0 / 
 
178
</LI>
 
179
<LI>number/sizes of activation inputs: 1 / 1
 
180
</LI>
 
181
<LI>number/sizes of activation outputs: 0 / 
 
182
</LI>
 
183
<LI>continuous-time state: no
 
184
</LI>
 
185
<LI>discrete-time state: yes
 
186
</LI>
 
187
<LI>name of computational function: <EM>cscope</EM>
 
188
</LI>
 
189
</UL>
 
190
<H3><font color="blue"><A NAME="SECTION00526500000000000000">
 
191
Interfacing function</A>
 
192
</font></H3>
 
193
<TT>scilab/macros/scicos_blocks/sinks/CSCOPE.sci</TT>
 
194
 
 
195
<H3><font color="blue"><A NAME="SECTION00526600000000000000">
 
196
Computational function (type 4)</A>
 
197
</font></H3>
 
198
<BR>
 
199
<PRE>#include "scicos_block.h"
 
200
#include &lt;math.h&gt;
 
201
#include "../machine.h"
 
202
 
 
203
#if WIN32
 
204
#define NULL    0
 
205
#endif
 
206
 
 
207
static int c__1 = 1;
 
208
static int c__0 = 0;
 
209
static int c_n1 = -1;
 
210
static int c__4 = 4;
 
211
static int c__21 = 21;
 
212
static int c__3 = 3;
 
213
static double c_b84 = 0.;
 
214
 
 
215
void cscope(scicos_block *block,int flag)
 
216
{
 
217
  double t;
 
218
  double *z__;
 
219
  double *rpar;
 
220
  int *ipar, nipar,nu,kfun;
 
221
  
 
222
 
 
223
  /* Initialized data */
 
224
  
 
225
  static double frect[4] = { 0.,0.,1.,1. };
 
226
  static int cur = 0;
 
227
  static int verb = 0;
 
228
  
 
229
  int i__1,i;
 
230
  
 
231
  static double rect[4];
 
232
  extern int C2F(getlabel)(), C2F(dset)();
 
233
  static double ymin, ymax;
 
234
  static int i__, k, n, v;
 
235
  static double tsave;
 
236
  static int n1, n2;
 
237
  extern int C2F(plot2d)(), C2F(setscale2d)();
 
238
  static int na;
 
239
  extern int C2F(dr)();
 
240
  static double dt, dv;
 
241
  static int nxname;
 
242
  extern int C2F(sciwin)(), C2F(dr1)(), C2F(scicosclip)();
 
243
  static char buf[40];
 
244
  static int wid, iwd;
 
245
  static double per;
 
246
  static int nax[4], iwp;
 
247
  
 
248
  /*     Copyright INRIA */
 
249
  /*     Scicos block simulator */
 
250
  /*     ipar(1) = win_num */
 
251
  /*     ipar(2) = 0/1 color flag */
 
252
  /*     ipar(3) = buffer size */
 
253
  /*     ipar(4:11) = line type for ith curve */
 
254
  
 
255
  /*     ipar(12:13) : window position */
 
256
  /*     ipar(14:15) : window dimension */
 
257
  
 
258
  /*     rpar(1)=dt */
 
259
  /*     rpar(2)=ymin */
 
260
  /*     rpar(3)=ymax */
 
261
  /*     rpar(4)=periode */
 
262
  
 
263
   nu=block-&gt;insz[0];
 
264
  if (nu&gt;8) {nu=8;}
 
265
  rpar=block-&gt;rpar;
 
266
  ipar=block-&gt;ipar;
 
267
  nipar=block-&gt;nipar;
 
268
  t=get_scicos_time();
 
269
  
 
270
  /*      character*(4) logf */
 
271
  /* Parameter adjustments */
 
272
  --ipar;
 
273
  --rpar;
 
274
  
 
275
  iwp = nipar - 3;
 
276
  iwd = nipar - 1;
 
277
 
 
278
  wid = ipar[1];
 
279
  if(wid==-1){
 
280
    wid=20000+get_block_number();
 
281
  }
 
282
  
 
283
  if (flag == 2) {
 
284
    z__=*block-&gt;work; 
 
285
    --z__;
 
286
    dt = rpar[1];
 
287
    ymin = rpar[2];
 
288
    ymax = rpar[3];
 
289
    per = rpar[4];
 
290
    n = ipar[3];
 
291
    k = (int) z__[1];
 
292
    if (k &gt; 0) {
 
293
      n1 = (int) (z__[k + 1] / per);
 
294
      if (z__[k + 1] &lt; 0.) {
 
295
        --n1;
 
296
      }
 
297
    } else {
 
298
      n1 = 0;
 
299
    }
 
300
    
 
301
    tsave = t;
 
302
    if (dt &gt; 0.) {
 
303
      t = z__[k + 1] + dt;
 
304
    }
 
305
    
 
306
    n2 = (int) (t / per);
 
307
    if (t &lt; 0.) {
 
308
      --n2;
 
309
    }
 
310
    
 
311
    /*     add new point to the buffer */
 
312
    ++k;
 
313
    z__[k + 1] = t;
 
314
    for (i = 0; i &lt; nu; ++i) {
 
315
      z__[n + 1 + i * n + k] = block-&gt;inptr[0][i];
 
316
      /* L1: */
 
317
    }
 
318
    z__[1] = (double) k;
 
319
    if (n1 == n2 &amp;&amp; k &lt; n) {
 
320
      t = tsave;
 
321
      return ;
 
322
    }
 
323
    
 
324
    /*     plot 1:K points of the buffer */
 
325
    C2F(dr1)("xget\000", "window\000", &amp;verb, &amp;cur, &amp;na, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
326
             &amp;dv, &amp;dv);
 
327
    if (cur != wid) {
 
328
      C2F(dr1)("xset\000", "window\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
329
               &amp;dv, &amp;dv);
 
330
    }
 
331
    C2F(dr1)("xsetdr\000", "Rec\000", &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;
 
332
             dv);
 
333
    if (k &gt; 0) {
 
334
      C2F(scicosclip)(&amp;c__1);
 
335
      for (i__ = 0; i__ &lt; nu; ++i__) {
 
336
        C2F(dr1)("xpolys\000", "v\000", &amp;v, &amp;v, &amp;ipar[i__ + 4], &amp;c__1, &amp;k,
 
337
                 &amp;v, &amp;z__[2], &amp;z__[n + 2 + i__  * n], &amp;dv, &amp;dv);
 
338
      }
 
339
      C2F(scicosclip)(&amp;c__0);
 
340
    }
 
341
    /*     shift buffer left */
 
342
    z__[2] = z__[k + 1];
 
343
    for (i__ = 0; i__ &lt; nu; ++i__) {
 
344
      z__[n + 1 + i__ * n + 1] = z__[n + 1 + i__ * n + k];
 
345
    }
 
346
    z__[1] = 1.;
 
347
        if (n1 != n2) {
 
348
          /*     clear window */
 
349
          nax[0] = 2;
 
350
          nax[1] = 10;
 
351
            nax[2] = 2;
 
352
            nax[3] = 10;
 
353
            C2F(dr1)("xclear\000", "v\000", &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv,
 
354
                     &amp;dv);
 
355
            C2F(dr1)("xset\000", "use color\000", &amp;ipar[2], &amp;c__0, &amp;c__0, &amp;c__0, &amp;
 
356
                     c__0, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
357
            C2F(dr)("xstart\000", "v\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;
 
358
                    dv, &amp;dv);
 
359
            rect[0] = per * (n1 + 1);
 
360
            rect[1] = ymin;
 
361
            rect[2] = per * (n1 + 2);
 
362
            rect[3] = ymax;
 
363
            C2F(dr1)("xset\000", "dashes\000", &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, 
 
364
                     &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
365
            C2F(plot2d)(rect, &amp;rect[1], &amp;c__1, &amp;c__1, &amp;c_n1, "011", buf, rect, nax,
 
366
                        &amp;c__4, &amp;c__21);
 
367
        }
 
368
        t = tsave;
 
369
        
 
370
  } else if (flag == 4) {/* the workspace is used to store buffer 
 
371
                             */
 
372
    if ((*block-&gt;work=
 
373
         scicos_malloc(sizeof(double)*(1+ipar[3]*(1+nu))))== NULL ) {
 
374
      set_block_error(-16);
 
375
      return;
 
376
    }
 
377
    z__=*block-&gt;work; 
 
378
    --z__;
 
379
    z__[1]=-1.0;
 
380
 
 
381
 
 
382
    n = ipar[3];
 
383
    ymin = rpar[2];
 
384
    ymax = rpar[3];
 
385
    per = rpar[4];
 
386
    nax[0] = 2;
 
387
    nax[1] = 10;
 
388
    nax[2] = 2;
 
389
    nax[3] = 10;
 
390
    n1 = (int) (t / per);
 
391
    if (t &lt;= 0.) {
 
392
      --n1;
 
393
    }
 
394
    C2F(sciwin)();
 
395
    C2F(dr1)("xset\000", "window\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;
 
396
             dv, &amp;dv);
 
397
    C2F(dr1)("xsetdr\000", "Rec\000", &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;
 
398
             dv);
 
399
    if (ipar[iwp] &gt;= 0) {
 
400
            C2F(dr1)("xset\000", "wpos\000", &amp;ipar[iwp], &amp;ipar[iwp + 1], &amp;v, &amp;v, &amp;
 
401
                     v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
402
    }
 
403
    if (ipar[iwd] &gt;= 0) {
 
404
      C2F(dr1)("xset\000", "wdim\000", &amp;ipar[iwd], &amp;ipar[iwd + 1], &amp;v, &amp;v, &amp;
 
405
               v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
406
      /*     to force dimensions update */
 
407
      C2F(dr1)("xset\000", "window\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
408
               &amp;dv, &amp;dv);
 
409
    }
 
410
    rect[0] = per * (n1 + 1);
 
411
    rect[1] = ymin;
 
412
    rect[2] = per * (n1 + 2);
 
413
    rect[3] = ymax;
 
414
    C2F(setscale2d)(frect, rect, "nn\000");
 
415
    C2F(dr1)("xset\000", "use color\000", &amp;ipar[2], &amp;c__0, &amp;c__0, &amp;c__0, &amp;
 
416
             c__0, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
417
    C2F(dr1)("xset\000", "alufunction\000", &amp;c__3, &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0,
 
418
             &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
419
    C2F(dr1)("xclear\000", "v\000", &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;
 
420
             dv);
 
421
    C2F(dr)("xstart\000", "v\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;
 
422
            dv);
 
423
    C2F(dr1)("xset\000", "dashes\000", &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;v, 
 
424
             &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
425
    C2F(plot2d)(rect, &amp;rect[1], &amp;c__1, &amp;c__1, &amp;c_n1, "011", buf, rect, nax, &amp;
 
426
                c__4, &amp;c__21);
 
427
    C2F(scicosclip)(&amp;c__1);
 
428
    nxname = 40;
 
429
    kfun=get_block_number();
 
430
    C2F(getlabel)(&amp;kfun, buf, &amp;nxname);
 
431
    if (nxname &gt; 39) {
 
432
      nxname = 39;
 
433
    }
 
434
    i__1 = nxname;
 
435
    *(buf+i__1)=*"\000";
 
436
    if ((nxname == 1 &amp;&amp; *(unsigned char *)buf == ' ') || (nxname == 0)) {
 
437
    } else {
 
438
      C2F(dr)("xname\000", buf, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
439
    }
 
440
    z__[1] = 0.;
 
441
    z__[2] = t;
 
442
    i__1 = nu * n;
 
443
    C2F(dset)(&amp;i__1, &amp;c_b84, &amp;z__[3], &amp;c__1);
 
444
  } else if (flag == 5) {
 
445
    z__=*block-&gt;work; 
 
446
    --z__;
 
447
    n = ipar[3];
 
448
    k = (int) z__[1];
 
449
    if (k &lt;= 1) {
 
450
      scicos_free(*block-&gt;work);
 
451
      return ;
 
452
    }
 
453
    C2F(dr1)("xget\000", "window\000", &amp;verb, &amp;cur, &amp;na, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
454
             &amp;dv, &amp;dv);
 
455
    if (cur != wid) {
 
456
      C2F(dr1)("xset\000", "window\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
457
               &amp;dv, &amp;dv);
 
458
    }
 
459
    C2F(scicosclip)(&amp;c__1);
 
460
    for (i__ = 0; i__ &lt; nu; ++i__) {
 
461
      C2F(dr1)("xpolys\000", "v\000", &amp;v, &amp;v, &amp;ipar[i__ + 4], &amp;c__1, &amp;k, &amp;v,
 
462
               &amp;z__[2], &amp;z__[n + 2 + i__ * n], &amp;dv, &amp;dv);
 
463
    }
 
464
    C2F(scicosclip)(&amp;c__0);
 
465
    scicos_free(*block-&gt;work);
 
466
  }
 
467
}
 
468
</PRE>
 
469
<HR>
 
470
<ADDRESS>
 
471
Ramine Nikoukhah
 
472
2004-06-22
 
473
</ADDRESS>
 
474
</BODY>
 
475
</HTML>