parsedata.html revision 1.1.1.3 1 1.1 kardel <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 1.1 kardel
3 1.1 kardel <html>
4 1.1 kardel
5 1.1 kardel <head>
6 1.1 kardel <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
7 1.1 kardel <meta name="generator" content="HTML Tidy, see www.w3.org">
8 1.1 kardel <title>NTP PARSE clock data formats</title>
9 1.1 kardel <link href="scripts/style.css" type="text/css" rel="stylesheet">
10 1.1 kardel </head>
11 1.1 kardel
12 1.1 kardel <body>
13 1.1 kardel <h3>NTP PARSE clock data formats</h3>
14 1.1 kardel <p>The parse driver currently supports several clocks with different query mechanisms. In order for you to find a sample that might be similar to a clock you might want to integrate into parse I'll sum up the major features of the clocks (this information is distributed in the parse/clk_*.c and ntpd/refclock_parse.c files).</p>
15 1.1.1.3 christos <p>Last update:
16 1.1.1.3 christos <!-- #BeginDate format:En2m -->21-Oct-2010 23:44<!-- #EndDate -->
17 1.1.1.3 christos UTC</p>
18 1.1 kardel <hr>
19 1.1 kardel <h4>Meinberg clocks</h4>
20 1.1 kardel <pre>
21 1.1 kardel Meinberg: start=<STX>, end=<ETX>, sync on start
22 1.1 kardel pattern="\2D: . . ;T: ;U: . . ; \3"
23 1.1 kardel pattern="\2 . . ; ; : : ; \3"
24 1.1 kardel pattern="\2 . . ; ; : : ; : ; ; . . "
25 1.1 kardel </pre>
26 1.1 kardel <p>Meinberg is a German manufacturer of time code receivers. Those clocks have a pretty common output format in the stock version. In order to support NTP Meinberg was so kind to produce some special versions of the firmware for the use with NTP. So, if you are going to use a Meinberg clock please ask whether there is a special Uni Erlangen version. You can reach <a href="http://www.meinberg.de/">Meinberg</a> via the Web. Information can also be ordered via eMail from <a href="mailto:%20info (a] meinberg.de">info (a] meinberg.de</a></p>
27 1.1 kardel <p>General characteristics:<br>
28 1.1 kardel Meinberg clocks primarily output pulse per second and a describing ASCII string. This string can be produced in two modes: either upon the reception of a question mark or every second. NTP uses the latter mechanism. DCF77 AM clocks have a limited accuracy of a few milliseconds. The DCF77 PZF5xx variants provide higher accuracy and have a pretty good relationship between RS232 time code and the PPS signal. Except for early versions of the old GPS166 receiver type, Meinberg GPS receivers have a very good timing relationship between the datagram and the pulse. The beginning of the start bit of the first character has basically the same accuracy as the PPS signal, plus a jitter of up to 1 bit time depending on the selected baud rate, i.e. 52 μs @ 19200. PPS support should always be used, if possible, in order to yield the highest possible accuracy.</p>
29 1.1 kardel <p>The preferred tty setting for Meinberg DCF77 receivers is 9600/7E2:</p>
30 1.1 kardel <pre>
31 1.1 kardel CFLAG (B9600|CS7|PARENB|CREAD|HUPCL)
32 1.1 kardel IFLAG (IGNBRK|IGNPAR|ISTRIP)
33 1.1 kardel OFLAG 0
34 1.1 kardel LFLAG 0
35 1.1 kardel </pre>
36 1.1 kardel <p>The tty setting for Meinberg GPS16x/17x receivers is 19200/8N1:</p>
37 1.1 kardel <pre>
38 1.1 kardel CFLAG (B19200|CS8|PARENB|CREAD|HUPCL)
39 1.1 kardel IFLAG (IGNBRK|IGNPAR|ISTRIP)
40 1.1 kardel OFLAG 0
41 1.1 kardel LFLAG 0
42 1.1 kardel </pre>
43 1.1 kardel <p>All clocks should be run at datagram once per second.<br><br></p>
44 1.1 kardel <p>Format of the Meinberg standard time string:</p>
45 1.1 kardel <pre>
46 1.1 kardel <b><i><STX></i>D:<i>dd.mm.yy</i>;T:<i>w</i>;U:<i>hh.mm.ss</i>;<i>uvxy</i><i><ETX></i></b>
47 1.1 kardel pos: 0 000000001111111111222222222233 3
48 1.1 kardel 1 234567890123456789012345678901 2
49 1.1 kardel
50 1.1 kardel <i><STX></i> = start-of-text, ASCII code 0x02
51 1.1 kardel <i>dd.mm.yy</i> = day of month, month, year of the century, separated by dots
52 1.1 kardel <i>w</i> = day of week (1..7, Monday = 1)
53 1.1 kardel <i>hh:mm:ss</i> = hour, minute, second, separated by dots
54 1.1 kardel <i>u</i> = '#' for GPS receivers: time is <b>not</b> synchronized
55 1.1 kardel '#' for older PZF5xx receivers: no correlation, not synchronized
56 1.1 kardel '#' for other devices: never sync'ed since powerup
57 1.1 kardel ' ' if nothing of the above applies
58 1.1 kardel <i>v</i> = '*' for GPS receivers: position has <b>not</b> been verified
59 1.1 kardel '*' for other devices: freewheeling based on internal quartz
60 1.1 kardel ' ' if nothing of the above applies
61 1.1 kardel <i>x</i> = 'U' if UTC time is transmitted
62 1.1 kardel 'S' if daylight saving time is active
63 1.1 kardel ' ' if nothing of the above applies
64 1.1 kardel <i>y</i> = '!' during the hour preceding start or end of daylight saving time
65 1.1 kardel 'A' during the hour preceding a leap second
66 1.1 kardel ' ' if nothing of the above applies
67 1.1 kardel <i><ETX></i> = end-of-text, ASCII code 0x03
68 1.1 kardel </pre>
69 1.1 kardel <p>Format of the Uni Erlangen time string for PZF5xx receivers:</p>
70 1.1 kardel <pre>
71 1.1 kardel <b><i><STX></i><i>dd.mm.yy</i>; <i>w</i>; <i>hh:mm:ss</i>; <i>tuvxyza</i><i><ETX></i></b>
72 1.1 kardel pos: 0 000000001111111111222222222233 3
73 1.1 kardel 1 234567890123456789012345678901 2
74 1.1 kardel
75 1.1 kardel <i><STX></i> = start-of-text, ASCII code 0x02
76 1.1 kardel <i>dd.mm.yy</i> = day of month, month, year of the century, separated by dots
77 1.1 kardel <i>w</i> = day of week (1..7, Monday = 1)
78 1.1 kardel <i>hh:mm:ss</i> = hour, minute, second, separated by colons
79 1.1 kardel
80 1.1 kardel <i>t</i> = 'U' if UTC time is transmitted, else ' '
81 1.1 kardel <i>u</i> = '#' for older PZF5xx receivers: no correlation, not synchronized
82 1.1 kardel '#' for PZF511 and newer: never sync'ed since powerup
83 1.1 kardel ' ' if nothing of the above applies
84 1.1 kardel <i>v</i> = '*' if freewheeling based on internal quartz, else ' '
85 1.1 kardel <i>x</i> = 'S' if daylight saving time is active, else ' '
86 1.1 kardel <i>y</i> = '!' during the hour preceding start or end of daylight saving time, else ' '
87 1.1 kardel <i>z</i> = 'A' during the hour preceding a leap second, else ' '
88 1.1 kardel <i>a</i> = 'R' alternate antenna (reminiscent of PZF5xx), usually ' ' for GPS receivers
89 1.1 kardel <i><ETX></i> = end-of-text, ASCII code 0x03
90 1.1 kardel </pre>
91 1.1 kardel <p>Format of the Uni Erlangen time string for GPS16x/GPS17x receivers:</p>
92 1.1 kardel <pre>
93 1.1 kardel <b><i><STX></i><i>dd.mm.yy</i>; <i>w</i>; <i>hh:mm:ss</i>; <i>+uu:uu</i>; <i>uvxyzab</i>; <i>ll.lllln</i> <i>lll.lllle</i> <i>hhhh</i>m<i><ETX></i></b>
94 1.1 kardel pos: 0 0000000011111111112222222222333333333344444444445555555555666666 6
95 1.1 kardel 1 2345678901234567890123456789012345678901234567890123456789012345 6
96 1.1 kardel
97 1.1 kardel <i><STX></i> = start-of-text, ASCII code 0x02
98 1.1 kardel <i>dd.mm.yy</i> = day of month, month, year of the century, separated by dots
99 1.1 kardel <i>w</i> = day of week (1..7, Monday = 1)
100 1.1 kardel <i>hh:mm:ss</i> = hour, minute, second, separated by colons
101 1.1 kardel <i>+uu:uu</i> = offset to UTC in hours and minutes, preceded by + or -
102 1.1 kardel <i>u</i> = '#' if time is <b>not</b> synchronized, else ' '
103 1.1 kardel <i>v</i> = '*' if position has <b>not</b> been verified, else ' '
104 1.1 kardel <i>x</i> = 'S' if daylight saving time is active, else ' '
105 1.1 kardel <i>y</i> = '!' during the hour preceding start or end of daylight saving time, else ' '
106 1.1 kardel <i>z</i> = 'A' during the hour preceding a leap second, else ' '
107 1.1 kardel <i>a</i> = 'R' alternate antenna (reminiscent of PZF5xx), usually ' ' for GPS receivers
108 1.1 kardel <i>b</i> = 'L' during a leap second, i.e. if the seconds field is 60, else ' '
109 1.1 kardel <i>ll.lllln</i> = position latitude in degrees, 'n' can actually be 'N' or 'S', i.e. North or South
110 1.1 kardel <i>lll.lllle</i> = position longitude in degrees, 'e' can actually be 'E' or 'W', i.e. East or West
111 1.1 kardel <i>hhhh</i> = position altitude in meters, always followed by 'm'
112 1.1 kardel <i><ETX></i> = end-of-text, ASCII code 0x03
113 1.1 kardel </pre>
114 1.1 kardel <p>Examples for Uni Erlangen strings from GPS receivers:</p>
115 1.1 kardel <pre>
116 1.1 kardel \x02 09.07.93; 5; 08:48:26; +00:00; ; 49.5736N 11.0280E 373m \x03
117 1.1 kardel \x02 08.11.06; 3; 14:39:39; +00:00; ; 51.9828N 9.2258E 176m \x03
118 1.1 kardel </pre>
119 1.1 kardel <p>The Uni Erlangen formats should be used preferably. Newer Meinberg GPS receivers can be configured to transmit that format, for older devices there may be a special firmware version available.</p>
120 1.1 kardel <p>For the Meinberg parse look into clk_meinberg.c<br><br></p>
121 1.1 kardel <hr>
122 1.1 kardel <h4>Raw DCF77 Data via serial line</h4>
123 1.1 kardel <p>RAWDCF: end=TIMEOUT>1.5s, sync each char (any char),generate psuedo time codes, fixed format</p>
124 1.1 kardel <p>direct DCF77 code input</p>
125 1.1 kardel <p>In Europe it is relatively easy/cheap the receive the german time code transmitter DCF77. The simplest version to process its signal is to feed the 100/200ms pulse of the demodulated AM signal via a level converter to an RS232 port at 50Baud. parse/clk_rawdcf.c holds all necessary decoding logic for the time code which is transmitted each minute for one minute. A bit of the time code is sent once a second.</p>
126 1.1 kardel <pre>
127 1.1 kardel The preferred tty setting is:
128 1.1 kardel CFLAG (B50|CS8|CREAD|CLOCAL)
129 1.1 kardel IFLAG 0
130 1.1 kardel OFLAG 0
131 1.1 kardel LFLAG 0
132 1.1 kardel </pre>
133 1.1 kardel <h4>DCF77 raw time code</h4>
134 1.1 kardel <p>From "Zur Zeit", Physikalisch-Technische Bundesanstalt (PTB), Braunschweig und Berlin, März 1989<br>
135 1.1 kardel </p>
136 1.1 kardel <p>Timecode transmission:</p>
137 1.1 kardel <pre>
138 1.1 kardel AM:
139 1.1 kardel
140 1.1 kardel time marks are send every second except for the second before the
141 1.1 kardel next minute mark
142 1.1 kardel time marks consist of a reduction of transmitter power to 25%
143 1.1 kardel of the nominal level
144 1.1 kardel the falling edge is the time indication (on time)
145 1.1 kardel time marks of a 100ms duration constitute a logical 0
146 1.1 kardel time marks of a 200ms duration constitute a logical 1
147 1.1 kardel </pre>
148 1.1 kardel <p>see the spec. (basically a (non-)inverted psuedo random phase shift) encoding:</p>
149 1.1 kardel <pre>
150 1.1 kardel FM:
151 1.1 kardel
152 1.1 kardel Second Contents
153 1.1 kardel 0 - 10 AM: free, FM: 0
154 1.1 kardel 11 - 14 free
155 1.1 kardel 15 R - alternate antenna
156 1.1 kardel 16 A1 - expect zone change (1 hour before)
157 1.1 kardel 17 - 18 Z1,Z2 - time zone
158 1.1 kardel 0 0 illegal
159 1.1 kardel 0 1 MEZ (MET)
160 1.1 kardel 1 0 MESZ (MED, MET DST)
161 1.1 kardel 1 1 illegal
162 1.1 kardel 19 A2 - expect leap insertion/deletion (1 hour before)
163 1.1 kardel 20 S - start of time code (1)
164 1.1 kardel 21 - 24 M1 - BCD (lsb first) Minutes
165 1.1 kardel 25 - 27 M10 - BCD (lsb first) 10 Minutes
166 1.1 kardel 28 P1 - Minute Parity (even)
167 1.1 kardel 29 - 32 H1 - BCD (lsb first) Hours
168 1.1 kardel 33 - 34 H10 - BCD (lsb first) 10 Hours
169 1.1 kardel 35 P2 - Hour Parity (even)
170 1.1 kardel 36 - 39 D1 - BCD (lsb first) Days
171 1.1 kardel 40 - 41 D10 - BCD (lsb first) 10 Days
172 1.1 kardel 42 - 44 DW - BCD (lsb first) day of week (1: Monday -> 7: Sunday)
173 1.1 kardel 45 - 49 MO1 - BCD (lsb first) Month
174 1.1 kardel 50 MO10 - 10 Months
175 1.1 kardel 51 - 53 Y1 - BCD (lsb first) Years
176 1.1 kardel 54 - 57 Y10 - BCD (lsb first) 10 Years
177 1.1 kardel 58 P3 - Date Parity (even)
178 1.1 kardel 59 - usually missing (minute indication), except for leap insertion
179 1.1 kardel </pre>
180 1.1 kardel <hr>
181 1.1 kardel <h4>Schmid clock</h4>
182 1.1 kardel <p>Schmid clock: needs poll, binary input, end='\xFC', sync start</p>
183 1.1 kardel <p>The Schmid clock is a DCF77 receiver that sends a binary time code at the reception of a flag byte. The contents if the flag byte determined the time code format. The binary time code is delimited by the byte 0xFC.</p>
184 1.1 kardel <pre>
185 1.1 kardel TTY setup is:
186 1.1 kardel CFLAG (B1200|CS8|CREAD|CLOCAL)
187 1.1 kardel IFLAG 0
188 1.1 kardel OFLAG 0
189 1.1 kardel LFLAG 0
190 1.1 kardel
191 1.1 kardel </pre>
192 1.1 kardel <p>The command to Schmid's DCF77 clock is a single byte; each bit allows the user to select some part of the time string, as follows (the output for the lsb is sent first).</p>
193 1.1 kardel <pre>
194 1.1 kardel Bit 0: time in MEZ, 4 bytes *binary, not BCD*; hh.mm.ss.tenths
195 1.1 kardel Bit 1: date 3 bytes *binary, not BCD: dd.mm.yy
196 1.1 kardel Bit 2: week day, 1 byte (unused here)
197 1.1 kardel Bit 3: time zone, 1 byte, 0=MET, 1=MEST. (unused here)
198 1.1 kardel Bit 4: clock status, 1 byte, 0=time invalid,
199 1.1 kardel 1=time from crystal backup,
200 1.1 kardel 3=time from DCF77
201 1.1 kardel Bit 5: transmitter status, 1 byte,
202 1.1 kardel bit 0: backup antenna
203 1.1 kardel bit 1: time zone change within 1h
204 1.1 kardel bit 3,2: TZ 01=MEST, 10=MET
205 1.1 kardel bit 4: leap second will be
206 1.1 kardel added within one hour
207 1.1 kardel bits 5-7: Zero
208 1.1 kardel Bit 6: time in backup mode, units of 5 minutes (unused here)
209 1.1 kardel </pre>
210 1.1 kardel <hr>
211 1.1 kardel <h4>Trimble SV6 ASCII time code (TAIP)</h4>
212 1.1 kardel <p>Trimble SV6: needs poll, ascii timecode, start='>', end='<', query='>QTM<', eol='<'</p>
213 1.1 kardel <p>Trimble SV6 is a GPS receiver with PPS output. It needs to be polled. It also need a special tty mode setup (EOL='<').</p>
214 1.1 kardel <pre>
215 1.1 kardel TTY setup is:
216 1.1 kardel CFLAG (B4800|CS8|CREAD)
217 1.1 kardel IFLAG (BRKINT|IGNPAR|ISTRIP|ICRNL|IXON)
218 1.1 kardel OFLAG (OPOST|ONLCR)
219 1.1 kardel LFLAG (ICANON|ECHOK)
220 1.1 kardel </pre>
221 1.1 kardel <p>Special flags are:</p>
222 1.1 kardel <pre> PARSE_F_PPSPPS - use CIOGETEV for PPS time stamping
223 1.1 kardel PARSE_F_PPSONSECOND - the time code is not related to
224 1.1 kardel the PPS pulse (so use the time code
225 1.1 kardel only for the second epoch)
226 1.1 kardel
227 1.1 kardel Timecode
228 1.1 kardel 0000000000111111111122222222223333333 / char
229 1.1 kardel 0123456789012345678901234567890123456 \ posn
230 1.1 kardel >RTMhhmmssdddDDMMYYYYoodnnvrrrrr;*xx< Actual
231 1.1 kardel ----33445566600112222BB7__-_____--99- Parse
232 1.1 kardel >RTM 1 ;* < Check
233 1.1 kardel </pre>
234 1.1 kardel <hr>
235 1.1 kardel <h4>ELV DCF7000</h4>
236 1.1 kardel <p>ELV DCF7000: end='\r', pattern=" - - - - - - - \r"</p>
237 1.1 kardel <p>The ELV DCF7000 is a cheap DCF77 receiver sending each second a time code (though not very precise!) delimited by '`r'</p>
238 1.1 kardel <pre>
239 1.1 kardel Timecode
240 1.1 kardel YY-MM-DD-HH-MM-SS-FF\r
241 1.1 kardel
242 1.1 kardel FF&0x1 - DST
243 1.1 kardel FF&0x2 - DST switch warning
244 1.1 kardel FF&0x4 - unsynchronised
245 1.1 kardel </pre>
246 1.1 kardel <hr>
247 1.1 kardel <h4>HOPF 6021 und Kompatible</h4>
248 1.1 kardel <p>HOPF Funkuhr 6021 mit serieller Schnittstelle Created by F.Schnekenbuehl <frank (a] comsys.dofn.de> from clk_rcc8000.c Nortel DASA Network Systems GmbH, Department: ND250 A Joint venture of Daimler-Benz Aerospace and Nortel.</p>
249 1.1 kardel <pre>
250 1.1 kardel hopf Funkuhr 6021
251 1.1 kardel used with 9600,8N1,
252 1.1 kardel UTC via serial line
253 1.1 kardel "Sekundenvorlauf" ON
254 1.1 kardel ETX zum Sekundenvorlauf ON
255 1.1 kardel dataformat 6021
256 1.1 kardel output time and date
257 1.1 kardel transmit with control characters
258 1.1 kardel transmit evry second
259 1.1 kardel </pre>
260 1.1 kardel <p>Type 6021 Serial Output format</p>
261 1.1 kardel <pre>
262 1.1 kardel 000000000011111111 / char
263 1.1 kardel 012345678901234567 \ position
264 1.1 kardel sABHHMMSSDDMMYYnre Actual
265 1.1 kardel C4110046231195 Parse
266 1.1 kardel s enr Check
267 1.1 kardel
268 1.1 kardel s = STX (0x02), e = ETX (0x03)
269 1.1 kardel n = NL (0x0A), r = CR (0x0D)
270 1.1 kardel
271 1.1 kardel A B - Status and weekday
272 1.1 kardel
273 1.1 kardel A - Status
274 1.1 kardel
275 1.1 kardel 8 4 2 1
276 1.1 kardel x x x 0 - no announcement
277 1.1 kardel x x x 1 - Summertime - wintertime - summertime announcement
278 1.1 kardel x x 0 x - Wintertime
279 1.1 kardel x x 1 x - Summertime
280 1.1 kardel 0 0 x x - Time/Date invalid
281 1.1 kardel 0 1 x x - Internal clock used
282 1.1 kardel 1 0 x x - Radio clock
283 1.1 kardel 1 1 x x - Radio clock highprecision
284 1.1 kardel
285 1.1 kardel B - 8 4 2 1
286 1.1 kardel 0 x x x - MESZ/MEZ
287 1.1 kardel 1 x x x - UTC
288 1.1 kardel x 0 0 1 - Monday
289 1.1 kardel x 0 1 0 - Tuesday
290 1.1 kardel x 0 1 1 - Wednesday
291 1.1 kardel x 1 0 0 - Thursday
292 1.1 kardel x 1 0 1 - Friday
293 1.1 kardel x 1 1 0 - Saturday
294 1.1 kardel x 1 1 1 - Sunday
295 1.1 kardel </pre>
296 1.1 kardel <hr>
297 1.1 kardel <h4>Diem Computime Clock</h4>
298 1.1 kardel <p>The Computime receiver sends a datagram in the following format every minute</p>
299 1.1 kardel <pre>
300 1.1 kardel Timestamp T:YY:MM:MD:WD:HH:MM:SSCRLF
301 1.1 kardel Pos 0123456789012345678901 2 3
302 1.1 kardel 0000000000111111111122 2 2
303 1.1 kardel Parse T: : : : : : : \r\n
304 1.1 kardel
305 1.1 kardel T Startcharacter "T" specifies start of the timestamp
306 1.1 kardel YY Year MM Month 1-12
307 1.1 kardel MD Day of the month
308 1.1 kardel WD Day of week
309 1.1 kardel HH Hour
310 1.1 kardel MM Minute
311 1.1 kardel SS Second
312 1.1 kardel CR Carriage return
313 1.1 kardel LF Linefeed
314 1.1 kardel </pre>
315 1.1 kardel <hr>
316 1.1 kardel <h4>WHARTON 400A Series Clock with a 404.2 Serial interface</h4>
317 1.1 kardel <p>The WHARTON 400A Series clock is able to send date/time serial messages in 7 output formats. We use format 1 here because it is the shortest. We set up the clock to send a datagram every second. For use with this driver, the WHARTON 400A Series clock must be set-up as follows :</p>
318 1.1 kardel <pre>
319 1.1 kardel Programmable Selected
320 1.1 kardel Option No Option
321 1.1 kardel BST or CET display 3 9 or 11
322 1.1 kardel No external controller 7 0
323 1.1 kardel Serial Output Format 1 9 1
324 1.1 kardel Baud rate 9600 bps 10 96
325 1.1 kardel Bit length 8 bits 11 8
326 1.1 kardel Parity even 12 E
327 1.1 kardel </pre>
328 1.1 kardel <p>WHARTON 400A Series output format 1 is as follows :</p>
329 1.1 kardel <pre>
330 1.1 kardel Timestamp STXssmmhhDDMMYYSETX
331 1.1 kardel Pos 0 12345678901234
332 1.1 kardel 0 00000000011111
333 1.1 kardel
334 1.1 kardel STX start transmission (ASCII 0x02)
335 1.1 kardel ETX end transmission (ASCII 0x03)
336 1.1 kardel ss Second expressed in reversed decimal (units then tens)
337 1.1 kardel mm Minute expressed in reversed decimal
338 1.1 kardel hh Hour expressed in reversed decimal
339 1.1 kardel DD Day of month expressed in reversed decimal
340 1.1 kardel MM Month expressed in reversed decimal (January is 1)
341 1.1 kardel YY Year (without century) expressed in reversed decimal
342 1.1 kardel S Status byte : 0x30 +
343 1.1 kardel bit 0 0 = MSF source 1 = DCF source
344 1.1 kardel bit 1 0 = Winter time 1 = Summer time
345 1.1 kardel bit 2 0 = not synchronised 1 = synchronised
346 1.1 kardel bit 3 0 = no early warning 1 = early warning
347 1.1 kardel </pre>
348 1.1 kardel <hr>
349 1.1 kardel <script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
350 1.1 kardel </body>
351 1.1 kardel
352 1.1.1.2 christos </html>
353