blob: 998672cfc507c72a3c6387bf08313001c9629278 [file] [log] [blame]
Eric Andersenc9f20d92002-12-05 08:41:41 +00001#
2# For a description of the syntax of this configuration file,
3# see scripts/kbuild/config-language.txt.
4#
5
Mike Frysinger9ac178a2005-09-24 05:49:36 +00006menu "Shells"
Eric Andersenc9f20d92002-12-05 08:41:41 +00007
8choice
9 prompt "Choose your default shell"
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000010 default FEATURE_SH_IS_NONE
Eric Andersenc9f20d92002-12-05 08:41:41 +000011 help
Eric Andersene5642112003-07-14 19:37:08 +000012 Choose a shell. The ash shell is the most bash compatible
Eric Andersen88c916b2003-10-22 09:58:56 +000013 and full featured one.
Eric Andersenc9f20d92002-12-05 08:41:41 +000014
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000015config FEATURE_SH_IS_ASH
16 select ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000017 bool "ash"
18
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000019config FEATURE_SH_IS_HUSH
20 select HUSH
Eric Andersenc9f20d92002-12-05 08:41:41 +000021 bool "hush"
22
Denis Vlasenko96702ca2007-11-23 23:28:55 +000023####config FEATURE_SH_IS_LASH
24#### select LASH
25#### bool "lash"
Eric Andersenc9f20d92002-12-05 08:41:41 +000026
Denys Vlasenko1cc4b132009-08-21 00:05:51 +020027####config FEATURE_SH_IS_MSH
28#### select MSH
29#### bool "msh"
Eric Andersenc9f20d92002-12-05 08:41:41 +000030
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000031config FEATURE_SH_IS_NONE
Eric Andersena6b90512002-12-06 21:49:59 +000032 bool "none"
33
Eric Andersenc9f20d92002-12-05 08:41:41 +000034endchoice
35
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000036config ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000037 bool "ash"
Rob Landley49576c02006-01-30 06:11:42 +000038 default n
Eric Andersenc9f20d92002-12-05 08:41:41 +000039 help
Eric Andersenb287e2e2003-08-08 23:40:12 +000040 Tha 'ash' shell adds about 60k in the default configuration and is
41 the most complete and most pedantically correct shell included with
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +000042 busybox. This shell is actually a derivative of the Debian 'dash'
Eric Andersen88c916b2003-10-22 09:58:56 +000043 shell (by Herbert Xu), which was created by porting the 'ash' shell
Eric Andersenc7bda1c2004-03-15 08:29:22 +000044 (written by Kenneth Almquist) from NetBSD.
Eric Andersenc9f20d92002-12-05 08:41:41 +000045
Denis Vlasenko92e13c22008-03-25 01:17:40 +000046config ASH_BASH_COMPAT
47 bool "bash-compatible extensions"
48 default y
49 depends on ASH
50 help
Bernhard Reutner-Fischer1dbc6432008-08-06 17:39:30 +000051 Enable bash-compatible extensions.
Denis Vlasenko92e13c22008-03-25 01:17:40 +000052
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000053config ASH_JOB_CONTROL
Paul Fox7ba12c62006-06-08 21:48:47 +000054 bool "Job control"
Eric Andersenc9f20d92002-12-05 08:41:41 +000055 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000056 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000057 help
Eric Andersene5642112003-07-14 19:37:08 +000058 Enable job control in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +000059
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000060config ASH_READ_NCHARS
Paul Fox7ba12c62006-06-08 21:48:47 +000061 bool "'read -n N' and 'read -s' support"
Mike Frysinger9ac178a2005-09-24 05:49:36 +000062 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000063 depends on ASH
Mike Frysinger9ac178a2005-09-24 05:49:36 +000064 help
Paul Fox02eb9342005-09-07 16:56:02 +000065 'read -n N' will return a value after N characters have been read.
66 'read -s' will read without echoing the user's input.
Ned Ludd2123b7c2005-02-09 21:07:23 +000067
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000068config ASH_READ_TIMEOUT
Denis Vlasenkoc185e292008-07-16 23:45:11 +000069 bool "'read -t S' support"
Mike Frysinger9ac178a2005-09-24 05:49:36 +000070 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000071 depends on ASH
Mike Frysinger9ac178a2005-09-24 05:49:36 +000072 help
Paul Fox02eb9342005-09-07 16:56:02 +000073 'read -t S' will return a value after S seconds have passed.
74 This implementation will allow fractional seconds, expressed
75 as a decimal fraction, e.g. 'read -t 2.5 foo'.
Ned Ludd2123b7c2005-02-09 21:07:23 +000076
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000077config ASH_ALIAS
Paul Fox7ba12c62006-06-08 21:48:47 +000078 bool "alias support"
Eric Andersenc9f20d92002-12-05 08:41:41 +000079 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000080 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000081 help
Eric Andersene5642112003-07-14 19:37:08 +000082 Enable alias support in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +000083
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000084config ASH_GETOPTS
Paul Fox6ab03782006-06-08 21:37:26 +000085 bool "Builtin getopt to parse positional parameters"
Eric Andersenc9f20d92002-12-05 08:41:41 +000086 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000087 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +000088 help
Glenn L McGrath53090cd2004-09-24 09:09:44 +000089 Enable getopts builtin in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +000090
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000091config ASH_BUILTIN_ECHO
Paul Fox6ab03782006-06-08 21:37:26 +000092 bool "Builtin version of 'echo'"
93 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000094 depends on ASH
Paul Fox6ab03782006-06-08 21:37:26 +000095 help
Bernhard Reutner-Fischereb10e172007-01-29 23:56:13 +000096 Enable support for echo, builtin to ash.
Paul Fox6ab03782006-06-08 21:37:26 +000097
Denis Vlasenkocd2663f2008-06-01 22:36:39 +000098config ASH_BUILTIN_PRINTF
99 bool "Builtin version of 'printf'"
100 default y
101 depends on ASH
102 help
103 Enable support for printf, builtin to ash.
104
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000105config ASH_BUILTIN_TEST
Paul Fox6ab03782006-06-08 21:37:26 +0000106 bool "Builtin version of 'test'"
107 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000108 depends on ASH
Paul Fox6ab03782006-06-08 21:37:26 +0000109 help
Bernhard Reutner-Fischereb10e172007-01-29 23:56:13 +0000110 Enable support for test, builtin to ash.
Paul Fox6ab03782006-06-08 21:37:26 +0000111
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000112config ASH_CMDCMD
Paul Fox7ba12c62006-06-08 21:48:47 +0000113 bool "'command' command to override shell builtins"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000114 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000115 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000116 help
Eric Andersen3857a182003-07-22 10:14:32 +0000117 Enable support for the ash 'command' builtin, which allows
118 you to run the specified command with the specified arguments,
119 even when there is an ash builtin command with the same name.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000120
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000121config ASH_MAIL
Rob Landley2ec922e2006-04-13 23:22:16 +0000122 bool "Check for new mail on interactive shells"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000123 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000124 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000125 help
Eric Andersene5642112003-07-14 19:37:08 +0000126 Enable "check for new mail" in the ash shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000127
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000128config ASH_OPTIMIZE_FOR_SIZE
Rob Landley2ec922e2006-04-13 23:22:16 +0000129 bool "Optimize for size instead of speed"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000130 default y
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000131 depends on ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000132 help
Rob Landley32251b42006-02-08 18:34:21 +0000133 Compile ash for reduced size at the price of speed.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000134
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000135config ASH_RANDOM_SUPPORT
Denis Vlasenko18f2a792009-04-05 09:02:11 +0000136 bool "Pseudorandom generator and $RANDOM variable"
Eric Andersen16767e22004-03-16 05:14:10 +0000137 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000138 depends on ASH
Eric Andersen16767e22004-03-16 05:14:10 +0000139 help
140 Enable pseudorandom generator and dynamic variable "$RANDOM".
141 Each read of "$RANDOM" will generate a new pseudorandom value.
142 You can reset the generator by using a specified start value.
Denis Vlasenko18f2a792009-04-05 09:02:11 +0000143 After "unset RANDOM" the generator will switch off and this
Eric Andersen16767e22004-03-16 05:14:10 +0000144 variable will no longer have special treatment.
145
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000146config ASH_EXPAND_PRMT
Rob Landley2ec922e2006-04-13 23:22:16 +0000147 bool "Expand prompt string"
"Vladimir N. Oleynik"bef14d72005-09-05 13:25:11 +0000148 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000149 depends on ASH
"Vladimir N. Oleynik"bef14d72005-09-05 13:25:11 +0000150 help
Denis Vlasenko18f2a792009-04-05 09:02:11 +0000151 "PS#" may contain volatile content, such as backquote commands.
Rob Landley32251b42006-02-08 18:34:21 +0000152 This option recreates the prompt string from the environment
153 variable each time it is displayed.
"Vladimir N. Oleynik"bef14d72005-09-05 13:25:11 +0000154
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000155config HUSH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000156 bool "hush"
157 default n
158 help
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000159 hush is a small shell (22k). It handles the normal flow control
160 constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
161 case/esac. Redirections, here documents, $((arithmetic))
162 and functions are supported.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000163
Denis Vlasenko18f2a792009-04-05 09:02:11 +0000164 It will compile and work on no-mmu systems.
Denis Vlasenkobe709c22008-07-28 00:01:16 +0000165
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000166 It does not handle select, aliases, brace expansion,
167 tilde expansion, &>file and >&file redirection of stdout+stderr.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000168
Denys Vlasenko9ca656b2009-06-10 13:39:35 +0200169config HUSH_BASH_COMPAT
170 bool "bash-compatible extensions"
171 default y
172 depends on HUSH
173 help
174 Enable bash-compatible extensions.
175
Denis Vlasenko06810332007-05-21 23:30:54 +0000176config HUSH_HELP
177 bool "help builtin"
178 default n
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000179 depends on HUSH
Denis Vlasenko06810332007-05-21 23:30:54 +0000180 help
181 Enable help builtin in hush. Code size + ~1 kbyte.
182
Denis Vlasenkob81b3df2007-04-28 16:48:04 +0000183config HUSH_INTERACTIVE
184 bool "Interactive mode"
185 default y
186 depends on HUSH
187 help
Denis Vlasenkoe3f2f892007-04-28 16:48:27 +0000188 Enable interactive mode (prompt and command editing).
189 Without this, hush simply reads and executes commands
Denys Vlasenkod4276892009-10-06 22:13:37 +0200190 from stdin just like a shell script from a file.
Denis Vlasenkoe3f2f892007-04-28 16:48:27 +0000191 No prompt, no PS1/PS2 magic shell variables.
192
193config HUSH_JOB
194 bool "Job control"
195 default n
196 depends on HUSH_INTERACTIVE
197 help
198 Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
199 command (not entire shell), fg/bg builtins work. Without this option,
200 "cmd &" still works by simply spawning a process and immediately
201 prompting for next command (or executing next command in a script),
202 but no separate process group is formed.
Denis Vlasenkob81b3df2007-04-28 16:48:04 +0000203
Denis Vlasenko14b5dd92007-05-20 21:51:38 +0000204config HUSH_TICK
205 bool "Process substitution"
206 default n
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000207 depends on HUSH
Denis Vlasenko14b5dd92007-05-20 21:51:38 +0000208 help
209 Enable process substitution `command` and $(command) in hush.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000210
Denis Vlasenko06810332007-05-21 23:30:54 +0000211config HUSH_IF
212 bool "Support if/then/elif/else/fi"
213 default n
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000214 depends on HUSH
Denis Vlasenko06810332007-05-21 23:30:54 +0000215 help
216 Enable if/then/elif/else/fi in hush.
217
218config HUSH_LOOPS
219 bool "Support for, while and until loops"
220 default n
Denis Vlasenko42bffbf2007-06-08 08:02:53 +0000221 depends on HUSH
Denis Vlasenko06810332007-05-21 23:30:54 +0000222 help
223 Enable for, while and until loops in hush.
Denis Vlasenkobe709c22008-07-28 00:01:16 +0000224
225config HUSH_CASE
226 bool "Support case ... esac statement"
227 default n
228 depends on HUSH
229 help
230 Enable case ... esac statement in hush. +400 bytes.
Denis Vlasenko06810332007-05-21 23:30:54 +0000231
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000232config HUSH_FUNCTIONS
233 bool "Support funcname() { commands; } syntax"
234 default n
235 depends on HUSH
236 help
237 Enable support for shell functions in hush. +800 bytes.
238
Denys Vlasenko295fef82009-06-03 12:47:26 +0200239config HUSH_LOCAL
240 bool "Support local builtin"
241 default n
242 depends on HUSH_FUNCTIONS
243 help
244 Enable support for local variables in functions.
245
Denis Vlasenkoad4bd052009-04-20 22:04:21 +0000246config HUSH_EXPORT_N
247 bool "Support export '-n' option"
248 default n
249 depends on HUSH
250 help
251 Enable support for export '-n' option in hush. It is a bash extension.
252
Denys Vlasenko69d1f452009-10-09 22:11:30 +0200253config HUSH_RANDOM_SUPPORT
254 bool "Pseudorandom generator and $RANDOM variable"
255 default n
256 depends on HUSH
257 help
258 Enable pseudorandom generator and dynamic variable "$RANDOM".
259 Each read of "$RANDOM" will generate a new pseudorandom value.
260
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000261config LASH
Mike Frysinger70a2c8d2009-03-28 12:12:58 +0000262 bool "lash (deprecated: aliased to hush)"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000263 default n
Denis Vlasenko96702ca2007-11-23 23:28:55 +0000264 select HUSH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000265 help
Denis Vlasenko96702ca2007-11-23 23:28:55 +0000266 lash is deprecated and will be removed, please migrate to hush.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000267
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000268config MSH
Mike Frysingerb975feb2009-03-29 00:52:41 +0000269 bool "msh (deprecated: please use hush)"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000270 default n
Denys Vlasenko1cc4b132009-08-21 00:05:51 +0200271 select HUSH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000272 help
Mike Frysingerb975feb2009-03-29 00:52:41 +0000273 msh is deprecated and will be removed, please migrate to hush.
274 If there is a feature msh has but hush does not, please let us know.
275
Denis Vlasenko2b2183a2009-04-13 14:23:12 +0000276# The minix shell (adds just 30k) is quite complete and handles things
277# like for/do/done, case/esac and all the things you expect a Bourne
278# shell to do. It is not always pedantically correct about Bourne
279# shell grammar (try running the shell testscript "tests/sh.testcases"
280# on it and compare vs bash) but for most things it works quite well.
281# It uses only vfork, so it can be used on uClinux systems.
282
283
Mike Frysinger98c52642009-04-02 10:02:37 +0000284config SH_MATH_SUPPORT
285 bool "POSIX math support"
286 default y
287 depends on ASH || HUSH
288 help
289 Enable math support in the shell via $((...)) syntax.
290
291config SH_MATH_SUPPORT_64
292 bool "Extend POSIX math support to 64 bit"
293 default n
294 depends on SH_MATH_SUPPORT
295 help
296 Enable 64-bit math support in the shell. This will make the shell
297 slightly larger, but will allow computation with very large numbers.
298 This is not in POSIX, so do not rely on this in portable code.
299
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000300config FEATURE_SH_EXTRA_QUIET
Glenn L McGrath3b251852004-01-03 12:07:32 +0000301 bool "Hide message on interactive shell startup"
Eric Andersenc9f20d92002-12-05 08:41:41 +0000302 default n
Denis Vlasenko7d219aa2006-10-05 10:17:08 +0000303 depends on MSH || LASH || HUSH || ASH
Eric Andersenc9f20d92002-12-05 08:41:41 +0000304 help
Glenn L McGrath3b251852004-01-03 12:07:32 +0000305 Remove the busybox introduction when starting a shell.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000306
Denis Vlasenko80d14be2007-04-10 23:03:30 +0000307config FEATURE_SH_STANDALONE
Eric Andersenc9f20d92002-12-05 08:41:41 +0000308 bool "Standalone shell"
309 default n
Denis Vlasenko80d14be2007-04-10 23:03:30 +0000310 depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS
Eric Andersenc9f20d92002-12-05 08:41:41 +0000311 help
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000312 This option causes busybox shells to use busybox applets
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000313 in preference to executables in the PATH whenever possible. For
Eric Andersen075dd812004-04-07 09:34:27 +0000314 example, entering the command 'ifconfig' into the shell would cause
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000315 busybox to use the ifconfig busybox applet. Specifying the fully
Eric Andersen075dd812004-04-07 09:34:27 +0000316 qualified executable name, such as '/sbin/ifconfig' will still
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000317 execute the /sbin/ifconfig executable on the filesystem. This option
Rob Landley06ec8cf2006-03-03 19:02:50 +0000318 is generally used when creating a statically linked version of busybox
Eric Andersen075dd812004-04-07 09:34:27 +0000319 for use as a rescue shell, in the event that you screw up your system.
Eric Andersenc9f20d92002-12-05 08:41:41 +0000320
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000321 This is implemented by re-execing /proc/self/exe (typically)
322 with right parameters. Some selected applets ("NOFORK" applets)
323 can even be executed without creating new process.
324 Instead, busybox will call <applet>_main() internally.
Paul Fox6ab03782006-06-08 21:37:26 +0000325
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000326 However, this causes problems in chroot jails without mounted /proc
327 and with ps/top (command name can be shown as 'exe' for applets
328 started this way).
329# untrue?
330# Note that this will *also* cause applets to take precedence
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000331# over shell builtins of the same name. So turning this on will
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000332# eliminate any performance gained by turning on the builtin "echo"
333# and "test" commands in ash.
334# untrue?
335# Note that when using this option, the shell will attempt to directly
Bernhard Reutner-Fischer3e8669f2008-07-22 18:27:53 +0000336# run '/bin/busybox'. If you do not have the busybox binary sitting in
Denis Vlasenko92c0b822007-05-08 17:27:17 +0000337# that exact location with that exact name, this option will not work at
338# all.
Eric Andersen6f8542b2004-09-24 01:25:39 +0000339
Denis Vlasenko9bc80d72008-04-12 20:07:53 +0000340config FEATURE_SH_NOFORK
341 bool "Run 'nofork' applets directly"
342 default n
343 depends on (MSH || LASH || HUSH || ASH) && FEATURE_PREFER_APPLETS
344 help
345 This option causes busybox shells [currently only ash]
346 to not execute typical fork/exec/wait sequence, but call <applet>_main
347 directly, if possible. (Sometimes it is not possible: for example,
348 this is not possible in pipes).
349
350 This will be done only for some applets (those which are marked
351 NOFORK in include/applets.h).
352
353 This may significantly speed up some shell scripts.
354
355 This feature is relatively new. Use with care.
356
Denis Vlasenko6d709972007-05-18 09:45:36 +0000357config CTTYHACK
358 bool "cttyhack"
359 default n
360 help
361 One common problem reported on the mailing list is "can't access tty;
362 job control turned off" error message which typically appears when
363 one tries to use shell with stdin/stdout opened to /dev/console.
364 This device is special - it cannot be a controlling tty.
365
366 Proper solution is to use correct device instead of /dev/console.
367
368 cttyhack provides "quick and dirty" solution to this problem.
369 It analyzes stdin with various ioctls, trying to determine whether
370 it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
371 If it detects one, it closes stdin/out/err and reopens that device.
372 Then it executes given program. Usage example for /etc/inittab
373 (for busybox init):
374
375 ::respawn:/bin/cttyhack /bin/sh
376
Eric Andersenc9f20d92002-12-05 08:41:41 +0000377endmenu