1vdr(5) Video Disk Recorder Files vdr(5)
2
3
4
6 vdr_files - the Video Disk Recorder Files
7
9 This page describes the formats of the various files vdr uses to store
10 configuration data and recordings.
11
13 CHANNELS
14 The file channels.conf contains the channel configuration. Each line
15 defines either a group delimiter or a channel.
16
17 A group delimiter is a line starting with a ':' as the very first char‐
18 acter, followed by arbitrary text. Example:
19
20 :First group
21
22 Group delimiters may also be used to specify the number of the next
23 channel. To do this, the character '@' and a number must immediately
24 follow the ':', as in
25
26 :@201 First group
27
28 The given number must be larger than the number of any previous channel
29 (otherwise it is silently ignored).
30
31 A group delimiter can also be used to just set the next channel's num‐
32 ber, without an explicit delimiter text, as in
33
34 :@201
35
36 Such a delimiter will not appear in the Channels menu.
37
38 A channel definition is a line with channel data, where the fields are
39 separated by ':' characters. Example:
40
41 RTL Television,RTL:12188:h:S19.2E:27500:163:104:105:0:12003:1:1089:0
42
43 The line number of a channel definition (not counting group separators,
44 and based on a possible previous '@...' parameter) defines the chan‐
45 nel's number in OSD menus and the timers.conf file.
46
47 The fields in a channel definition have the following meaning (from
48 left to right):
49
50 Name The channel's name (if the name originally contains a ':' char‐
51 acter it has to be replaced by '|'). Some TV stations provide a
52 way of deriving a "short name" from the channel name, which can
53 be used in situations where there is not much space for display‐
54 ing a long name. If a short name is available for this channel,
55 it follows the full name and is delimited by a comma, as in
56
57 RTL Television,RTL:...
58
59 If present, the name of the service provider or "bouquet" is
60 appended to the channel name, separated by a semicolon, as in
61
62 RTL Television,RTL;RTL World:...
63
64 Frequency
65 The transponder frequency (as an integer). For DVB-S this value
66 is in MHz. For DVB-C and DVB-T it can be given either in MHz,
67 kHz or Hz (the actual value given will be multiplied by 1000
68 until it is larger than 1000000).
69
70 Parameters
71 Various parameters, depending on whether this is a DVB-S, DVB-C
72 or DVB-T channel. Each parameter consist of a key character,
73 followed by an integer number that represents the actual setting
74 of that parameter. The valid key characters, their meaning (and
75 allowed values) are
76
77 B Bandwidth (6, 7, 8)
78 C Code rate high priority (0, 12, 23, 34, 45, 56, 67, 78, 89)
79 D Code rate low priority (0, 12, 23, 34, 45, 56, 67, 78, 89)
80 G Guard interval (4, 8, 16, 32)
81 H Horizontal polarization
82 I Inversion (0, 1)
83 L Left circular polarization
84 M Modulation (0, 16, 32, 64, 128, 256)
85 R Right circular polarization
86 T Transmission mode (2, 8)
87 V Vertical polarization
88 Y Hierarchy (0, 1, 2, 4)
89 The polarization parameters have no integer numbers following
90 them. This is for compatibility with files from older versions
91 and also to keep the DVB-S entries as simple as possible.
92
93 The special value 999 is used for "automatic", which means the
94 driver will automatically determine the proper value (if possi‐
95 ble).
96
97 An example of a parameter field for a DVB-T channel might look
98 like this:
99
100 B8C23D12M64T2G32Y0
101
102 Source The signal source of this channel, as defined in the file
103 sources.conf. For compatibility with files from older versions
104 numeric values will be accepted and also written back correctly,
105 but they will have no meaning for the DiSEqC settings. You
106 should replace the numerical values with the proper source iden‐
107 tifiers defined in sources.conf.
108
109 Srate The symbol rate of this channel (DVB-S and DVB-C only).
110
111 VPID The video PID (set to '0' for radio channels). If this channel
112 uses a separate PCR PID, it follows the VPID, separated by a
113 plus sign, as in ...:164+17:...
114
115 APID The audio PID (either one number, or several, separated by com‐
116 mas). If this channel also carries Dolby Digital sound, the
117 Dolby PIDs follow the audio PIDs, separated by a semicolon, as
118 in
119
120 ...:101,102;103,104:...
121
122 If certain audio PIDs broadcast in specific languages, the lan‐
123 guage codes for these can be appended to the individual audio or
124 Dolby PID, separated by an '=' sign, as in
125
126 ...:101=deu,102=eng;103=deu,104=eng:...
127
128 Some channels broadcast two different languages in the two
129 stereo channels, which can be indicated by adding a second lan‐
130 guage code, delimited by a '+' sign, as in
131
132 ...:101=deu,102=eng+spa;103=deu,104=eng:...
133
134
135 TPID The teletext PID.
136
137 Conditional access
138 A hexadecimal integer defining how this channel can be accessed:
139
140 0000 Free To Air
141 0001...000F explicitly requires the device with the given number
142 0010...00FF reserved for user defined assignments
143 0100...FFFF specific decryption methods as broadcast in the data stream
144 Values in the range 0001...00FF will not be overwritten, all
145 other values will be automatically replaced by the actual CA
146 system identifiers received from the data stream. If there is
147 more than one CA system id broadcast, they will be separated by
148 commas, as in
149
150 ...:1702,1722,1801:...
151
152 The values are in hex because that's the way they are defined in
153 the "ETR 162" document. Leading zeros may be omitted.
154
155 SID The Service ID of this channel.
156
157 NID The Network ID of this channel.
158
159 TID The Transport stream ID of this channel.
160
161 RID The Radio ID of this channel (typically 0, may be used to dis‐
162 tinguish channels where NID, TID and SID are all equal).
163
164 A particular channel can be uniquely identified by its channel ID,
165 which is a string that looks like this:
166
167 S19.2E-1-1089-12003-0
168
169 The components of this string are the Source (S19.2E), NID (1), TID
170 (1089), SID (12003) and RID (0) as defined above. The last part can be
171 omitted if it is 0, so the above example could also be written as
172 S19.2E-1-1089-12003).
173 The channel ID is used in the timers.conf and epg.data files to prop‐
174 erly identify the channels.
175
176 If a channel has both NID and TID set to 0, the channel ID will use the
177 Frequency instead of the TID. For satellite channels an additional off‐
178 set of 100000, 200000, 300000 or 400000 is added to that number,
179 depending on the Polarization (H, V, L or R, respectively). This is
180 necessary because on some satellites the same frequency is used for two
181 different transponders, with opposite polarization.
182
183 TIMERS
184 The file timers.conf contains the timer setup. Each line contains one
185 timer definition, with individual fields separated by ':' characters.
186 Example:
187
188 1:10:-T-----:2058:2150:50:5:Quarks & Co:
189
190 The fields in a timer definition have the following meaning (from left
191 to right):
192
193 Flags The individual bits in this field have the following meaning:
194
195 1 the timer is active (and will record if it hits)
196 2 this is an instant recording timer
197 4 this timer uses VPS
198
199 8 this timer is currently recording (may only be up-to-date with SVDRP)
200
201 All other bits are reserved for future use.
202
203 Channel
204 The channel to record from. This is either the channel number as
205 shown in the on-screen menus, or a complete channel ID. When
206 reading timers.conf any channel numbers will be mapped to the
207 respective channel ids and when the file is written again, there
208 will only be channel ids. Channel numbers are accepted as input
209 in order to allow easier creation of timers when manually edit‐
210 ing timers.conf. Also, when timers are listed via SVDRP com‐
211 mands, the channels are given as numbers.
212
213 Day The day when this timer shall record.
214
215 If this is a `single-shot' timer, this is the date on which this
216 timer shall record, given in ISO notation (YYYY-MM-DD), as in:
217
218 2005-03-19
219
220 For compatibility with earlier versions of VDR this may also be
221 just the day of month on which this timer shall record (must be
222 in the range 1...31).
223
224 In case of a `repeating' timer this is a string consisting of
225 exactly seven characters, where each character position corre‐
226 sponds to one day of the week (with Monday being the first day).
227 The character '-' at a certain position means that the timer
228 shall not record on that day. Any other character will cause the
229 timer to record on that day. Example:
230
231 MTWTF--
232
233 will define a timer that records on Monday through Friday and
234 does not record on weekends. Note that only letters may be used
235 here, no digits. For compatibility with timers created with
236 earlier versions of VDR, the same result could be achieved with
237 ABCDE-- (which was used to allow setting the days with language
238 specific characters). Since version 1.5.3 VDR can use UTF-8
239 characters to present data to the user, but the weekday encoding
240 in the timers.conf file always uses single byte characters.
241
242 The day definition of a `repeating' timer may be followed by the
243 date when that timer shall hit for the first time. The format
244 for this is @YYYY-MM-DD, so a complete definition could look
245 like this:
246
247 MTWTF--@2002-02-18
248
249 which would implement a timer that records Monday through Fri‐
250 day, and will hit for the first time on or after February 18,
251 2002. This first day feature can be used to disable a repeating
252 timer for a couple of days, or for instance to define a new
253 Mon...Fri timer on Wednesday, which actually starts "Monday next
254 week". The first day date given need not be that of a day when
255 the timer would actually hit.
256
257 Start A four digit integer defining when this timer shall start
258 recording. The format is hhmm, so 1430 would mean "half past
259 two" in the afternoon.
260
261 Stop A four digit integer defining when this timer shall stop record‐
262 ing. The format is the same as for the start time.
263
264 Priority
265 An integer in the range 0...99, defining the priority of this
266 timer and of recordings created by this timer. 0 represents the
267 lowest value, 99 the highest. The priority is used to decide
268 which timer shall be started in case there are two or more
269 timers with the exact same start time. The first timer in the
270 list with the highest priority will be used.
271
272 This value is also stored with the recording and is later used
273 to decide which recording to remove from disk in order to free
274 space for a new recording. If the disk runs full and a new
275 recording needs more space, an existing recording with the low‐
276 est priority (and which has exceeded its guaranteed lifetime)
277 will be removed.
278
279 If all available DVB cards are currently occupied, a timer with
280 a higher priority will interrupt the timer with the lowest pri‐
281 ority in order to start recording.
282
283 Lifetime
284 The guaranteed lifetime (in days) of a recording created by this
285 timer. 0 means that this recording may be automatically deleted
286 at any time by a new recording with higher priority. 99 means
287 that this recording will never be automatically deleted. Any
288 number in the range 1...98 means that this recording may not be
289 automatically deleted in favour of a new recording, until the
290 given number of days since the start time of the recording has
291 passed by.
292
293 File The file name this timer will give to a recording. If the name
294 contains any ':' characters, these have to be replaced by '|'.
295 If the name shall contain subdirectories, these have to be
296 delimited by '~' (since the '/' character may be part of a regu‐
297 lar programme name).
298
299 The special keywords TITLE and EPISODE, if present, will be
300 replaced by the title and episode information from the EPG data
301 at the time of recording (if that data is available). If at the
302 time of recording either of these cannot be determined, TITLE
303 will default to the channel name, and EPISODE will default to a
304 blank.
305
306 Auxiliary data
307 An arbitrary string that can be used by external applications to
308 store any kind of data related to this timer. The string must
309 not contain any newline characters. If this field is not empty,
310 its contents will be written into the info.vdr file of the
311 recording with the '@' tag.
312
313 SOURCES
314 The file sources.conf defines the codes to be used in the Source field
315 of channels in channels.conf and assigns descriptive texts to them.
316 Example:
317
318 S19.2E Astra 1
319
320 Anything after (and including) a '#' character is comment.
321
322 The first character of the code must be one of
323
324 S Satellite
325 C Cable
326 T Terrestrial
327 and is followed by further data pertaining to that particular source.
328 In case of Satellite this is the orbital position in degrees, followed
329 by E for east or W for west.
330
331 DISEQC
332 The file diseqc.conf defines the DiSEqC control sequences to be sent to
333 the DVB-S card in order to access a given satellite position and/or
334 band. Example:
335
336 S19.2E 11700 V 9750 t v W15 [E0 10 38 F0] W15 A W15 t
337
338 Anything after (and including) a '#' character is comment.
339
340 The first word in a parameter line must be one of the codes defined in
341 the file sources.conf and tells which satellite this line applies to.
342
343 Following is the "switch frequency" of the LNB (slof), which is the
344 transponder frequency up to which this entry shall be used; the first
345 entry with an slof greater than the actual transponder frequency will
346 be used. Typically there is only one slof per LNB, but the syntax
347 allows any number of frequency ranges to be defined. Note that there
348 should be a last entry with the value 99999 for each satellite, which
349 covers the upper frequency range.
350
351 The third parameter defines the polarization to which this entry
352 applies. It can be either H for horizontal or V for vertical.
353
354 The fourth parameter specifies the "local oscillator frequency" (lof)
355 of the LNB to use for the given frequency range. This number will be
356 subtracted from the actual transponder frequency when tuning to the
357 channel.
358
359 The rest of the line holds the actual sequence of DiSEqC actions to be
360 taken. The code letters used here are
361
362 t 22kHz tone off
363 T 22kHz tone on
364 v voltage low (13V)
365 V voltage high (18V)
366 A mini A
367 B mini B
368 Wnn wait nn milliseconds (nn may be any positive integer number)
369 [xx ...] hex code sequence (max. 6)
370 There can be any number of actions in a line, including none at all -
371 in which case the entry would be used only to set the LOF to use for
372 the given frequency range and polarization.
373
374 REMOTE CONTROL KEYS
375 The file remote.conf contains the key assignments for all remote con‐
376 trol units. Each line consists of one key assignment in the following
377 format:
378
379 name.key code
380
381 where name is the name of the remote control (for instance KBD for the
382 PC keyboard, RCU for the home-built "Remote Control Unit", or LIRC for
383 the "Linux Infrared Remote Control"), key is the name of the key that
384 is defined (like Up, Down, Menu etc.), and code is a character string
385 that this remote control delivers when the given key is pressed.
386
387 KEY MACROS
388 The file keymacros.conf contains user defined macros that will be exe‐
389 cuted whenever the given key is pressed. The format is
390
391 macrokey [@plugin] key1 key2 key3...
392
393 where macrokey is the key that shall initiate execution of this macro
394 and can be one of Up, Down, Ok, Back, Left, Right, Red, Green, Yellow,
395 Blue, 0...9 or User1...User9. The rest of the line consists of a set of
396 keys, which will be executed just as if they had been pressed in the
397 given sequence. The optional @plugin can be used to automatically
398 select the given plugin. plugin is the name of the plugin, exactly as
399 given in the -P option when starting VDR. There can be only one @plugin
400 per key macro. For instance
401
402 User1 @abc Down Down Ok
403
404 would call the main menu function of the "abc" plugin and execute two
405 "Down" key presses, followed by "Ok".
406 Note that the color keys will only execute their macro function in
407 "normal viewing" mode (i.e. when no other menu or player is active).
408 The User1...User9 keys will always execute their macro function. There
409 may be up to 15 keys in such a key sequence.
410
411 COMMANDS
412 The file commands.conf contains the definitions of commands that can be
413 executed from the vdr main menu's "Commands" option. Each line con‐
414 tains one command definition in the following format:
415
416 title : command
417
418 where title is the string that will be displayed in the "Commands"
419 menu, and command is the actual command string that will be executed
420 when this option is selected. The delimiting ':' may be surrounded by
421 any number of white space characters. If title ends with the character
422 '?', there will be a confirmation prompt before actually executing the
423 command. This can be used for commands that might have serious results
424 (like deleting files etc) to make sure they are not executed inadver‐
425 tently.
426
427 Everything following (and including) a '#' character is considered to
428 be comment.
429
430 By default the menu entries in the "Commands" menu will be numbered
431 '1'...'9' to make them selectable by pressing the corresponding number
432 key. If you want to use your own numbering scheme (maybe to skip cer‐
433 tain numbers), just precede the titles with the numbers of your choice.
434 vdr will suppress its automatic numbering if the first entry in com‐
435 mands.conf starts with a digit in the range '1'...'9', followed by a
436 blank.
437
438 In order to avoid error messages to the console, every command should
439 have stderr redirected to stdout. Everything the command prints to std‐
440 out will be displayed in a result window, with title as its title.
441
442 Examples:
443
444 Check for new mail?: /usr/local/bin/checkmail 2>&1
445 CPU status: /usr/local/bin/cpustatus 2>&1
446 Disk space: df -h | grep '/video' | awk '{ print 100 - $5 "% free"; }'
447 Calendar: date;echo;cal
448
449 Note that the commands 'checkmail' and 'cpustatus' are only examples!
450 Don't send emails to the author asking where to find these ;-)
451 The '?' at the end of the "Check for new mail?" entry will prompt the
452 user whether this command shall really be executed.
453
454 RECORDING COMMANDS
455 The file reccmds.conf can be used to define commands that can be
456 applied to the currently highlighted recording in the "Recordings"
457 menu. The syntax is exactly the same as described for the file com‐
458 mands.conf. When executing a command, the directory name of the record‐
459 ing will be appended to the command string, separated by a blank and
460 enclosed in single quotes.
461
462 SVDRP HOSTS
463 The file svdrphosts.conf contains the IP numbers of all hosts that are
464 allowed to access the SVDRP port. Each line contains one IP number in
465 the format
466
467 IP-Address[/Netmask]
468
469 where IP-Address is the address of a host or a network in the usual dot
470 separated notation (as in 192.168.100.1). If the optional Netmask is
471 given only the given number of bits of IP-Address are taken into
472 account. This allows you to grant SVDRP access to all hosts of an
473 entire network. Netmask can be any integer from 1 to 32. The special
474 value of 0 is only accepted if the IP-Address is 0.0.0.0, because this
475 will give access to any host (USE THIS WITH CARE!).
476
477 Everything following (and including) a '#' character is considered to
478 be comment.
479
480 Examples:
481
482 127.0.0.1 # always accept localhost
483 192.168.100.0/24 # any host on the local net
484 204.152.189.113 # a specific host
485 0.0.0.0/0 # any host on any net (USE WITH CARE!)
486
487 SETUP
488 The file setup.conf contains the basic configuration options for vdr.
489 Each line contains one option in the format "Name = Value". See the
490 MANUAL file for a description of the available options.
491
492 THEMES
493 The files /var/lib/vdr/data/themes/<skin>-<theme>.theme contain the
494 color theme definitions for the various skins. In the actual file names
495 <skin> will be replaced by the name if the skin this theme belongs to,
496 and <theme> will be the name of this theme. Each line in a theme file
497 contains one option in the format "Name = Value". Anything after (and
498 including) a '#' character is comment.
499
500 The definitions in a theme file are either colors or a description.
501 Colors are in the form
502
503 clrTitle = FF123456
504
505 where the name (clrTitle) is one of the names defined in the source
506 code of the skin that uses this theme, through the THEME_CLR() macro.
507 The value (FF123456) is an eight digit hex number that consist of four
508 bytes, representing alpha (transparency), red, green and blue component
509 of the color. An alpha value of 00 means the color will be completely
510 transparent, while FF means it will be opaque. An RGB value of 000000
511 results in black, while FFFFFF is white.
512
513 A description can be given as
514
515 Description = Shades of blue
516
517 and will be used in the Setup/OSD menu to select a theme for a given
518 skin. The description should give the user an idea what this theme
519 will be like (for instance, in the given example it would use various
520 shades of blue), and shouldn't be too long to make sure it fits on the
521 Setup screen. The default description always should be given in Eng‐
522 lish. If you want, you can provide language specific descriptions as
523
524 Description.eng = Shades of blue
525 Description.ger = Blautöne
526
527 where the language code is added to the keyword "Description", sepa‐
528 rated by a dot. You can enter as many language specific descriptions as
529 you like, but only those that have a corresponding locale messages file
530 will be actually used. If a theme file doesn't contain a Description,
531 the name of the theme (as given in the theme's file name) will be used.
532
533 AUDIO/VIDEO DATA
534 The files 001.vdr...255.vdr are the actual recorded MPEG data files. In
535 order to keep the size of an individual file below a given limit, a
536 recording is split into several files. The contents of these files is
537 Packetized Elementary Stream (PES) and contains ES packets with ids
538 0xE0...0xEF for video (only one of these may actually occur in a file),
539 0xC0...0xDF for audio 1...32 (up to 32 audio tracks may occur). Dolby
540 Digital data is stored in packets with ids 0xBD ("Private Stream 1")
541 and substream ids 0x80...0x87. DVB subtitle data is stored in packets
542 with ids 0xBD ("Private Stream 1") and substream ids 0x20...0x27.
543
544 INDEX
545 The file index.vdr (if present in a recording directory) contains the
546 (binary) index data into each of the the recording files
547 001.vdr...255.vdr. It is used during replay to determine the current
548 position within the recording, and to implement skipping and fast for‐
549 ward/back functions. See the definition of the cIndexFile class for
550 details about the actual contents of this file.
551
552 INFO
553 The file info.vdr (if present in a recording directory) contains a
554 description of the recording, derived from the EPG data at recording
555 time (if such data was available). The Aux field of the corresponding
556 timer (if given) is copied into this file, using the '@' tag. This is
557 a plain ASCII file and contains tagged lines like the EPG DATA file
558 (see the description of the epg.data file). Note that the lowercase
559 tags ('c' and 'e') will not appear in an info.vdr file. Lines tagged
560 with '#' are ignored and can be used by external tools to store arbi‐
561 trary information.
562
563 RESUME
564 The file resume.vdr (if present in a recording directory) contains the
565 position within the recording where the last replay session left off.
566 The data is a four byte (binary) integer value and defines an offset
567 into the file index.vdr.
568
569 MARKS
570 The file marks.vdr (if present in a recording directory) contains the
571 editing marks defined for this recording. Each line contains the defi‐
572 nition of one mark in the following format:
573
574 hh:mm:ss.ff comment
575
576 where hh:mm:ss.ff is a frame position within the recording, given as
577 "hours, minutes, seconds and (optional) frame number". comment can be
578 any string and may be used to describe this mark. If present, comment
579 must be separated from the frame position by at least one blank.
580
581 The lines in this file need not necessarily appear in the correct tem‐
582 poral sequence, they will be automatically sorted by time index.
583
584 CURRENT RESTRICTIONS:
585
586 - the comment is currently not used by VDR
587 - marks must have a frame number, and that frame MUST be an I-frame
588 (this means that only marks generated by VDR itself can be used, since
589 they will always be guaranteed to mark I-frames).
590
591 EPG DATA
592 The file epg.data contains the EPG data in an easily parsable format.
593 The first character of each line defines what kind of data this line
594 contains.
595
596 The following tag characters are defined:
597
598 C <channel id> <channel name>
599 E <event id> <start time> <duration> <table id> <version>
600 T <title>
601 S <short text>
602 D <description>
603 X <stream> <type> <language> <descr>
604 V <vps time>
605 e
606
607 c
608
609 Lowercase characters mark the end of a sequence that was started by the
610 corresponding uppercase character. The outer frame consists of a
611 sequence of one or more C...c (Channel) entries. Inside these any num‐
612 ber of E...e (Event) entries are allowed. All other tags are optional
613 (although every event should at least have a T entry). There may be
614 several X tags, depending on the number of tracks (video, audio etc.)
615 the event provides. The special tag character @ is used to mark the
616 auxiliary data from a timer definition in the info.vdr file.
617
618
619 <channel id> is the "channel ID", made up from the parameters defined in 'channels.conf'
620 <channel name> is the "name" as in 'channels.conf' (for information only, may be left out)
621 <event id> is a 32 bit unsigned int, uniquely identifying this event
622 <start time> is the time (as a time_t integer) in UTC when this event starts
623 <duration> is the time (in seconds) that this event will take
624 <table id> is a hex number that indicates the table this event is contained in (if this is left empty or 0 this event will not be overwritten or modified by data that comes from the DVB stream)
625 <version> is a hex number that indicates the event's version number inside its table (optional, ignored when reading EPG data)
626 <title> is the title of the event
627 <short text> is the short text of the event (typically the name of the episode etc.)
628 <description> is the description of the event (any '|' characters will be interpreted as newlines)
629 <stream> is the stream content (1 = video, 2 = audio, 3 = subtitles)
630 <type> is the stream type according to ETSI EN 300 468
631 <language> is the three letter language code (optionally two codes, separated by '+')
632 <descr> is the description of this stream component
633 <vps time> is the Video Programming Service time of this event
634
635 This file will be read at program startup in order to restore the
636 results of previous EPG scans.
637
638 Note that the event id that comes from the DVB data stream is actually
639 just 16 bit wide. The internal representation in VDR allows for 32 bit
640 to be used, so that external tools can generate EPG data that is guar‐
641 anteed not to collide with the ids of existing data.
642
644 vdr(8)
645
647 Written by Klaus Schmidinger.
648
650 Report bugs to <vdr-bugs@cadsoft.de>.
651
653 Copyright © 2008 Klaus Schmidinger.
654
655 This is free software; see the source for copying conditions. There is
656 NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
657 PURPOSE.
658
659
660
6611.6 10 Feb 2008 vdr(5)