]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
commit bash-20190612 snapshot
authorChet Ramey <chet.ramey@case.edu>
Fri, 14 Jun 2019 13:31:42 +0000 (09:31 -0400)
committerChet Ramey <chet.ramey@case.edu>
Fri, 14 Jun 2019 13:31:42 +0000 (09:31 -0400)
24 files changed:
CWRU/CWRU.chlog
bashline.c
doc/bash.0
doc/bash.1
doc/bash.html
doc/bash.info
doc/bash.pdf
doc/bash.ps
doc/bashref.dvi
doc/bashref.html
doc/bashref.info
doc/bashref.log
doc/bashref.pdf
doc/bashref.ps
doc/bashref.texi
doc/builtins.0
doc/builtins.ps
doc/rbash.ps
doc/version.texi
jobs.c
lib/readline/bind.c
lib/readline/doc/rluser.texi
test.c
variables.c

index de1394d918d9ad0e675dd170dcbc4a08f3dfad5c..f3639b01b764e4ea4edfe06be7d1fa0ea2743955 100644 (file)
@@ -6061,3 +6061,46 @@ execute_cmd.c
          conversion from a WORD_LIST into a string. This makes it more
          consistent with other arithmetic expansions. Inspired by a
          discussion begun by Nils Emmerich <nemmerich@ernw.de>
+
+                                  6/10
+                                  ----
+jobs.c
+       - waitchld: since process substitutions are asynchronous, save the
+         status of one that exits (that we still know about) in the bgpids
+         list
+
+                                  6/12
+                                  ----
+jobs.c
+       - wait_for_background_pids: wait for the last procsub only if it's the
+         same as last_asynchronous_pid
+
+bashline.c
+       - bash_backward_shellword: changes to behave better when at the
+         beginning of the last character on the line and to leave point at
+         the beginning of the shellword, like backward-word. Fixes from
+         Andrew Gaylard <a.gaylard@gmail.com>
+
+                                  6/13
+                                  ----
+bashline.c
+       - __P: Replaced with PARAMS. First of many
+       - bash_transpose_shellwords: transpose-words, but using `shellword'
+         word boundaries like shell-forward-word and shell-backward-word.
+         Contributed by Andrew Gaylard <a.gaylard@gmail.com>
+       - "shell-transpose-words": new name binding for bash_transpose_shellwords
+       - bash_readline_initialize: add default bindings for shell-forward-word,
+         shell-backward-word, shell-transpose-words, and shell-kill-word.
+         Suggested by Andrew Gaylard <a.gaylard@gmail.com>
+
+lib/readline/doc/rluser.texi
+       - shell-transpose-words: document
+       - {shell-forward-word,shell-backward-word,shell-kill-word,shell-transpose-words}:
+         document new default bindings bash now adds
+
+variables.c
+       - set_argv0: function to assign argv0 if it's found in the initial
+         shell environment. Suggested by Cuong Manh Le
+         <coung.manhle.vn@gmail.com>
+       - initialize_shell_variables: call set_argv0() as part of shell
+         initialization
index 87c5d146b14222357e812c2b4dd10683b4d7474b..81bc214d4233549318c0b2e58564a8bd9e77338f 100644 (file)
 #define RL_BOOLEAN_VARIABLE_VALUE(s)   ((s)[0] == 'o' && (s)[1] == 'n' && (s)[2] == '\0')
 
 #if defined (BRACE_COMPLETION)
-extern int bash_brace_completion __P((int, int));
+extern int bash_brace_completion PARAMS((int, int));
 #endif /* BRACE_COMPLETION */
 
 /* To avoid including curses.h/term.h/termcap.h and that whole mess. */
 #ifdef _MINIX
-extern int tputs __P((const char *string, int nlines, void (*outx)(int)));
+extern int tputs PARAMS((const char *string, int nlines, void (*outx)(int)));
 #else
-extern int tputs __P((const char *string, int nlines, int (*outx)(int)));
+extern int tputs PARAMS((const char *string, int nlines, int (*outx)(int)));
 #endif
 
 /* Forward declarations */
 
 /* Functions bound to keys in Readline for Bash users. */
-static int shell_expand_line __P((int, int));
-static int display_shell_version __P((int, int));
-static int operate_and_get_next __P((int, int));
+static int shell_expand_line PARAMS((int, int));
+static int display_shell_version PARAMS((int, int));
+static int operate_and_get_next PARAMS((int, int));
 
-static int bash_ignore_filenames __P((char **));
-static int bash_ignore_everything __P((char **));
-static int bash_progcomp_ignore_filenames __P((char **));
+static int bash_ignore_filenames PARAMS((char **));
+static int bash_ignore_everything PARAMS((char **));
+static int bash_progcomp_ignore_filenames PARAMS((char **));
 
 #if defined (BANG_HISTORY)
-static char *history_expand_line_internal __P((char *));
-static int history_expand_line __P((int, int));
-static int tcsh_magic_space __P((int, int));
+static char *history_expand_line_internal PARAMS((char *));
+static int history_expand_line PARAMS((int, int));
+static int tcsh_magic_space PARAMS((int, int));
 #endif /* BANG_HISTORY */
 #ifdef ALIAS
-static int alias_expand_line __P((int, int));
+static int alias_expand_line PARAMS((int, int));
 #endif
 #if defined (BANG_HISTORY) && defined (ALIAS)
-static int history_and_alias_expand_line __P((int, int));
+static int history_and_alias_expand_line PARAMS((int, int));
 #endif
 
-static int bash_forward_shellword __P((int, int));
-static int bash_backward_shellword __P((int, int));
-static int bash_kill_shellword __P((int, int));
-static int bash_backward_kill_shellword __P((int, int));
+static int bash_forward_shellword PARAMS((int, int));
+static int bash_backward_shellword PARAMS((int, int));
+static int bash_kill_shellword PARAMS((int, int));
+static int bash_backward_kill_shellword PARAMS((int, int));
+static int bash_transpose_shellwords PARAMS((int, int));
 
 /* Helper functions for Readline. */
-static char *restore_tilde __P((char *, char *));
-static char *maybe_restore_tilde __P((char *, char *));
+static char *restore_tilde PARAMS((char *, char *));
+static char *maybe_restore_tilde PARAMS((char *, char *));
 
-static char *bash_filename_rewrite_hook __P((char *, int));
+static char *bash_filename_rewrite_hook PARAMS((char *, int));
 
-static void bash_directory_expansion __P((char **));
-static int bash_filename_stat_hook __P((char **));
-static int bash_command_name_stat_hook __P((char **));
-static int bash_directory_completion_hook __P((char **));
-static int filename_completion_ignore __P((char **));
-static int bash_push_line __P((void));
+static void bash_directory_expansion PARAMS((char **));
+static int bash_filename_stat_hook PARAMS((char **));
+static int bash_command_name_stat_hook PARAMS((char **));
+static int bash_directory_completion_hook PARAMS((char **));
+static int filename_completion_ignore PARAMS((char **));
+static int bash_push_line PARAMS((void));
 
-static int executable_completion __P((const char *, int));
+static int executable_completion PARAMS((const char *, int));
 
-static rl_icppfunc_t *save_directory_hook __P((void));
-static void restore_directory_hook __P((rl_icppfunc_t));
+static rl_icppfunc_t *save_directory_hook PARAMS((void));
+static void restore_directory_hook PARAMS((rl_icppfunc_t));
 
-static int directory_exists __P((const char *, int));
+static int directory_exists PARAMS((const char *, int));
 
-static void cleanup_expansion_error __P((void));
-static void maybe_make_readline_line __P((char *));
-static void set_up_new_line __P((char *));
+static void cleanup_expansion_error PARAMS((void));
+static void maybe_make_readline_line PARAMS((char *));
+static void set_up_new_line PARAMS((char *));
 
-static int check_redir __P((int));
-static char **attempt_shell_completion __P((const char *, int, int));
-static char *variable_completion_function __P((const char *, int));
-static char *hostname_completion_function __P((const char *, int));
-static char *command_subst_completion_function __P((const char *, int));
+static int check_redir PARAMS((int));
+static char **attempt_shell_completion PARAMS((const char *, int, int));
+static char *variable_completion_function PARAMS((const char *, int));
+static char *hostname_completion_function PARAMS((const char *, int));
+static char *command_subst_completion_function PARAMS((const char *, int));
 
-static void build_history_completion_array __P((void));
-static char *history_completion_generator __P((const char *, int));
-static int dynamic_complete_history __P((int, int));
-static int bash_dabbrev_expand __P((int, int));
+static void build_history_completion_array PARAMS((void));
+static char *history_completion_generator PARAMS((const char *, int));
+static int dynamic_complete_history PARAMS((int, int));
+static int bash_dabbrev_expand PARAMS((int, int));
 
-static void initialize_hostname_list __P((void));
-static void add_host_name __P((char *));
-static void snarf_hosts_from_file __P((char *));
-static char **hostnames_matching __P((char *));
+static void initialize_hostname_list PARAMS((void));
+static void add_host_name PARAMS((char *));
+static void snarf_hosts_from_file PARAMS((char *));
+static char **hostnames_matching PARAMS((char *));
 
-static void _ignore_completion_names __P((char **, sh_ignore_func_t *));
-static int name_is_acceptable __P((const char *));
-static int test_for_directory __P((const char *));
-static int test_for_canon_directory __P((const char *));
-static int return_zero __P((const char *));
+static void _ignore_completion_names PARAMS((char **, sh_ignore_func_t *));
+static int name_is_acceptable PARAMS((const char *));
+static int test_for_directory PARAMS((const char *));
+static int test_for_canon_directory PARAMS((const char *));
+static int return_zero PARAMS((const char *));
 
-static char *bash_dequote_filename __P((char *, int));
-static char *quote_word_break_chars __P((char *));
-static void set_filename_bstab __P((const char *));
-static char *bash_quote_filename __P((char *, int, char *));
+static char *bash_dequote_filename PARAMS((char *, int));
+static char *quote_word_break_chars PARAMS((char *));
+static void set_filename_bstab PARAMS((const char *));
+static char *bash_quote_filename PARAMS((char *, int, char *));
 
 #ifdef _MINIX
-static void putx __P((int));
+static void putx PARAMS((int));
 #else
-static int putx __P((int));
+static int putx PARAMS((int));
 #endif
 
-static Keymap get_cmd_xmap_from_edit_mode __P((void));
-static Keymap get_cmd_xmap_from_keymap __P((Keymap));
+static Keymap get_cmd_xmap_from_edit_mode PARAMS((void));
+static Keymap get_cmd_xmap_from_keymap PARAMS((Keymap));
 
-static int bash_execute_unix_command __P((int, int));
-static void init_unix_command_map __P((void));
-static int isolate_sequence __P((char *, int, int, int *));
+static int bash_execute_unix_command PARAMS((int, int));
+static void init_unix_command_map PARAMS((void));
+static int isolate_sequence PARAMS((char *, int, int, int *));
 
-static int set_saved_history __P((void));
+static int set_saved_history PARAMS((void));
 
 #if defined (ALIAS)
-static int posix_edit_macros __P((int, int));
+static int posix_edit_macros PARAMS((int, int));
 #endif
 
-static int bash_event_hook __P((void));
+static int bash_event_hook PARAMS((void));
 
 #if defined (PROGRAMMABLE_COMPLETION)
-static int find_cmd_start __P((int));
-static int find_cmd_end __P((int));
-static char *find_cmd_name __P((int, int *, int *));
-static char *prog_complete_return __P((const char *, int));
+static int find_cmd_start PARAMS((int));
+static int find_cmd_end PARAMS((int));
+static char *find_cmd_name PARAMS((int, int *, int *));
+static char *prog_complete_return PARAMS((const char *, int));
 
 static char **prog_complete_matches;
 #endif
@@ -231,40 +232,40 @@ extern STRING_INT_ALIST word_token_alist[];
 #define SPECIFIC_COMPLETION_FUNCTIONS
 
 #if defined (SPECIFIC_COMPLETION_FUNCTIONS)
-static int bash_specific_completion __P((int, rl_compentry_func_t *));
-
-static int bash_complete_filename_internal __P((int));
-static int bash_complete_username_internal __P((int));
-static int bash_complete_hostname_internal __P((int));
-static int bash_complete_variable_internal __P((int));
-static int bash_complete_command_internal __P((int));
-
-static int bash_complete_filename __P((int, int));
-static int bash_possible_filename_completions __P((int, int));
-static int bash_complete_username __P((int, int));
-static int bash_possible_username_completions __P((int, int));
-static int bash_complete_hostname __P((int, int));
-static int bash_possible_hostname_completions __P((int, int));
-static int bash_complete_variable __P((int, int));
-static int bash_possible_variable_completions __P((int, int));
-static int bash_complete_command __P((int, int));
-static int bash_possible_command_completions __P((int, int));
-
-static int completion_glob_pattern __P((char *));
-static char *glob_complete_word __P((const char *, int));
-static int bash_glob_completion_internal __P((int));
-static int bash_glob_complete_word __P((int, int));
-static int bash_glob_expand_word __P((int, int));
-static int bash_glob_list_expansions __P((int, int));
+static int bash_specific_completion PARAMS((int, rl_compentry_func_t *));
+
+static int bash_complete_filename_internal PARAMS((int));
+static int bash_complete_username_internal PARAMS((int));
+static int bash_complete_hostname_internal PARAMS((int));
+static int bash_complete_variable_internal PARAMS((int));
+static int bash_complete_command_internal PARAMS((int));
+
+static int bash_complete_filename PARAMS((int, int));
+static int bash_possible_filename_completions PARAMS((int, int));
+static int bash_complete_username PARAMS((int, int));
+static int bash_possible_username_completions PARAMS((int, int));
+static int bash_complete_hostname PARAMS((int, int));
+static int bash_possible_hostname_completions PARAMS((int, int));
+static int bash_complete_variable PARAMS((int, int));
+static int bash_possible_variable_completions PARAMS((int, int));
+static int bash_complete_command PARAMS((int, int));
+static int bash_possible_command_completions PARAMS((int, int));
+
+static int completion_glob_pattern PARAMS((char *));
+static char *glob_complete_word PARAMS((const char *, int));
+static int bash_glob_completion_internal PARAMS((int));
+static int bash_glob_complete_word PARAMS((int, int));
+static int bash_glob_expand_word PARAMS((int, int));
+static int bash_glob_list_expansions PARAMS((int, int));
 
 #endif /* SPECIFIC_COMPLETION_FUNCTIONS */
 
-static int edit_and_execute_command __P((int, int, int, char *));
+static int edit_and_execute_command PARAMS((int, int, int, char *));
 #if defined (VI_MODE)
-static int vi_edit_and_execute_command __P((int, int));
-static int bash_vi_complete __P((int, int));
+static int vi_edit_and_execute_command PARAMS((int, int));
+static int bash_vi_complete PARAMS((int, int));
 #endif
-static int emacs_edit_and_execute_command __P((int, int));
+static int emacs_edit_and_execute_command PARAMS((int, int));
 
 /* Non-zero once initalize_readline () has been called. */
 int bash_readline_initialized = 0;
@@ -464,6 +465,7 @@ initialize_readline ()
   rl_add_defun ("shell-backward-word", bash_backward_shellword, -1);
   rl_add_defun ("shell-kill-word", bash_kill_shellword, -1);
   rl_add_defun ("shell-backward-kill-word", bash_backward_kill_shellword, -1);
+  rl_add_defun ("shell-transpose-words", bash_transpose_shellwords, -1);
 
 #ifdef ALIAS
   rl_add_defun ("alias-expand-line", alias_expand_line, -1);
@@ -616,6 +618,13 @@ initialize_readline ()
   rl_filename_dequoting_function = bash_dequote_filename;
   rl_char_is_quoted_p = char_is_quoted;
 
+  /* Add some default bindings for the "shellwords" functions, roughly
+     parallelling the default word bindings in emacs mode. */
+  rl_bind_key_if_unbound_in_map (CTRL('B'), bash_backward_shellword, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map (CTRL('D'), bash_kill_shellword, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map (CTRL('F'), bash_forward_shellword, emacs_meta_keymap);
+  rl_bind_key_if_unbound_in_map (CTRL('T'), bash_transpose_shellwords, emacs_meta_keymap);
+
 #if 0
   /* This is superfluous and makes it impossible to use tab completion in
      vi mode even when explicitly binding it in ~/.inputrc.  sv_strict_posix()
@@ -1197,7 +1206,7 @@ bash_backward_shellword (count, key)
      int count, key;
 {
   size_t slen;
-  int c, p;
+  int c, p, prev_p;
   DECLARE_MBSTATE;
 
   if (count < 0)
@@ -1206,9 +1215,6 @@ bash_backward_shellword (count, key)
   p = rl_point;
   slen = rl_end;
 
-  if (p == rl_end && p > 0)
-    p--;  
-
   while (count)
     {
       if (p == 0)
@@ -1217,7 +1223,10 @@ bash_backward_shellword (count, key)
          return 0;
        }
 
-      /* Move backward until we hit a non-metacharacter. */
+      /* Move backward until we hit a non-metacharacter. We want to deal
+        with the characters before point, so we move off a word if we're
+        at its first character. */
+      BACKUP_CHAR (rl_line_buffer, slen, p);
       while (p > 0)
        {
          c = rl_line_buffer[p];
@@ -1232,12 +1241,18 @@ bash_backward_shellword (count, key)
          return 0;
        }
 
-      /* Now move backward until we hit a metacharacter or BOL. */
+      /* Now move backward until we hit a metacharacter or BOL. Leave point
+        at the start of the shellword or at BOL. */
+      prev_p = p;
       while (p > 0)
        {
          c = rl_line_buffer[p];
          if (WORDDELIM (c) && char_is_quoted (rl_line_buffer, p) == 0)
-           break;
+           {
+             p = prev_p;
+             break;
+           }
+         prev_p = p;
          BACKUP_CHAR (rl_line_buffer, slen, p);
        }
 
@@ -1291,6 +1306,64 @@ bash_backward_kill_shellword (count, key)
   return 0;
 }
 
+static int
+bash_transpose_shellwords (count, key)
+     int count, key;
+{
+  char *word1, *word2;
+  int w1_beg, w1_end, w2_beg, w2_end;
+  int orig_point = rl_point;
+
+  if (count == 0)
+    return 0;
+
+  /* Find the two shell words. */
+  bash_forward_shellword (count, key);
+  w2_end = rl_point;
+  bash_backward_shellword (1, key);
+  w2_beg = rl_point;
+  bash_backward_shellword (count, key);
+  w1_beg = rl_point;
+  bash_forward_shellword (1, key);
+  w1_end = rl_point;
+
+  /* check that there really are two words. */
+  if ((w1_beg == w2_beg) || (w2_beg < w1_end))
+    {
+      rl_ding ();
+      rl_point = orig_point;
+      return 1;
+    }
+
+  /* Get the text of the words. */
+  word1 = rl_copy_text (w1_beg, w1_end);
+  word2 = rl_copy_text (w2_beg, w2_end);
+
+  /* We are about to do many insertions and deletions.  Remember them
+     as one operation. */
+  rl_begin_undo_group ();
+
+  /* Do the stuff at word2 first, so that we don't have to worry
+     about word1 moving. */
+  rl_point = w2_beg;
+  rl_delete_text (w2_beg, w2_end);
+  rl_insert_text (word1);
+
+  rl_point = w1_beg;
+  rl_delete_text (w1_beg, w1_end);
+  rl_insert_text (word2);
+
+  /* This is exactly correct since the text before this point has not
+     changed in length. */
+  rl_point = w2_end;
+
+  /* I think that does it. */
+  rl_end_undo_group ();
+  xfree (word1);
+  xfree (word2);
+
+  return 0;
+}
 
 /* **************************************************************** */
 /*                                                                 */
index 97265a7634df86d4fdae0851eeb234d97c732e3a..3a78deffd0787d715247464aa92fee03ab5b7d64 100644 (file)
@@ -6041,21 +6041,22 @@ S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               Wait for each specified child process and return its termination
               status.   Each _\bi_\bd may be a process ID or a job specification; if
               a job spec is given, all processes in that  job's  pipeline  are
-              waited for.  If _\bi_\bd is not given, all currently active child pro-
-              cesses are waited for, and the return status is zero.  If the -\b-n\bn
-              option is supplied, w\bwa\bai\bit\bt waits for a single job to terminate and
-              returns its exit status.  Supplying the -\b-f\bf option, when job con-
-              trol  is enabled, forces w\bwa\bai\bit\bt to wait for _\bi_\bd to terminate before
-              returning its status, instead of returning when it changes  sta-
-              tus.   If _\bi_\bd specifies a non-existent process or job, the return
-              status is 127.  Otherwise, the return status is the exit  status
-              of the last process or job waited for.
+              waited  for.   If  _\bi_\bd  is  not given, w\bwa\bai\bit\bt waits for all running
+              background jobs and the last-executed process  substitution,  if
+              its process id is the same as $\b$!\b!, and the return status is zero.
+              If the -\b-n\bn option is supplied, w\bwa\bai\bit\bt waits for  a  single  job  to
+              terminate and returns its exit status.  Supplying the -\b-f\bf option,
+              when job control is enabled, forces w\bwa\bai\bit\bt to wait for _\bi_\bd to  ter-
+              minate before returning its status, instead of returning when it
+              changes status.  If _\bi_\bd specifies a non-existent process or  job,
+              the  return  status is 127.  Otherwise, the return status is the
+              exit status of the last process or job waited for.
 
 R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        If b\bba\bas\bsh\bh is started with the name r\brb\bba\bas\bsh\bh, or the -\b-r\br option is supplied at
-       invocation, the shell becomes restricted.  A restricted shell  is  used
-       to  set  up an environment more controlled than the standard shell.  It
-       behaves identically to b\bba\bas\bsh\bh with the exception that the  following  are
+       invocation,  the  shell becomes restricted.  A restricted shell is used
+       to set up an environment more controlled than the standard  shell.   It
+       behaves  identically  to b\bba\bas\bsh\bh with the exception that the following are
        disallowed or not performed:
 
        +\bo      changing directories with c\bcd\bd
@@ -6064,16 +6065,16 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
 
        +\bo      specifying command names containing /\b/
 
-       +\bo      specifying  a  filename  containing  a /\b/ as an argument to the .\b.
+       +\bo      specifying a filename containing a /\b/ as an  argument  to  the  .\b.
               builtin command
 
-       +\bo      specifying a filename containing a slash as an argument  to  the
+       +\bo      specifying  a  filename containing a slash as an argument to the
               -\b-p\bp option to the h\bha\bas\bsh\bh builtin command
 
-       +\bo      importing  function  definitions  from  the shell environment at
+       +\bo      importing function definitions from  the  shell  environment  at
               startup
 
-       +\bo      parsing the value of S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from  the  shell  environment  at
+       +\bo      parsing  the  value  of  S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell environment at
               startup
 
        +\bo      redirecting output using the >, >|, <>, >&, &>, and >> redirect-
@@ -6082,10 +6083,10 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        +\bo      using the e\bex\bxe\bec\bc builtin command to replace the shell with another
               command
 
-       +\bo      adding  or  deleting builtin commands with the -\b-f\bf and -\b-d\bd options
+       +\bo      adding or deleting builtin commands with the -\b-f\bf and  -\b-d\b options
               to the e\ben\bna\bab\bbl\ble\be builtin command
 
-       +\bo      using the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled  shell
+       +\bo      using  the  e\ben\bna\bab\bbl\ble\be  builtin  command  to  enable  disabled shell
               builtins
 
        +\bo      specifying the -\b-p\bp option to the c\bco\bom\bmm\bma\ban\bnd\bd builtin command
@@ -6095,14 +6096,14 @@ R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
        These restrictions are enforced after any startup files are read.
 
        When a command that is found to be a shell script is executed (see C\bCO\bOM\bM-\b-
-       M\bMA\bAN\bND\bE\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN above), r\brb\bba\bas\bsh\bh turns off any restrictions  in  the  shell
+       M\bMA\bAN\bND\b E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN  above),  r\brb\bba\bas\bsh\bh turns off any restrictions in the shell
        spawned to execute the script.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
        _\bB_\ba_\bs_\bh _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bM_\ba_\bn_\bu_\ba_\bl, Brian Fox and Chet Ramey
        _\bT_\bh_\be _\bG_\bn_\bu _\bR_\be_\ba_\bd_\bl_\bi_\bn_\be _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
        _\bT_\bh_\be _\bG_\bn_\bu _\bH_\bi_\bs_\bt_\bo_\br_\by _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
-       _\bP_\bo_\br_\bt_\ba_\bb_\bl_\b _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg  _\bS_\by_\bs_\bt_\be_\bm  _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b: _\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\b-
+       _\bP_\bo_\br_\bt_\ba_\bb_\bl_\b_\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b:  _\bS_\bh_\be_\bl_\bl  _\ba_\bn_\b _\bU_\bt_\bi_\bl_\bi_\b-
        _\bt_\bi_\be_\bs, IEEE --
               http://pubs.opengroup.org/onlinepubs/9699919799/
        http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode
@@ -6120,7 +6121,7 @@ F\bFI\bIL\bLE\bES\bS
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc
               The individual per-interactive-shell startup file
        _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt
-              The individual login shell cleanup file, executed when  a  login
+              The  individual  login shell cleanup file, executed when a login
               shell exits
        _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc
               Individual _\br_\be_\ba_\bd_\bl_\bi_\bn_\be initialization file
@@ -6134,14 +6135,14 @@ A\bAU\bUT\bTH\bHO\bOR\bRS\bS
 
 B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
        If you find a bug in b\bba\bas\bsh\bh,\b, you should report it.  But first, you should
-       make sure that it really is a bug, and that it appears  in  the  latest
-       version   of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available  from
+       make  sure  that  it really is a bug, and that it appears in the latest
+       version  of  b\bba\bas\bsh\bh.   The  latest  version  is  always  available   from
        _\bf_\bt_\bp_\b:_\b/_\b/_\bf_\bt_\bp_\b._\bg_\bn_\bu_\b._\bo_\br_\bg_\b/_\bp_\bu_\bb_\b/_\bg_\bn_\bu_\b/_\bb_\ba_\bs_\bh_\b/.
 
-       Once you have determined that a bug actually exists,  use  the  _\bb_\ba_\bs_\bh_\bb_\bu_\bg
-       command  to submit a bug report.  If you have a fix, you are encouraged
-       to mail that as well!  Suggestions and `philosophical' bug reports  may
-       be  mailed  to  _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg  or  posted  to  the  Usenet newsgroup
+       Once  you  have  determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
+       command to submit a bug report.  If you have a fix, you are  encouraged
+       to  mail that as well!  Suggestions and `philosophical' bug reports may
+       be mailed  to  _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg  or  posted  to  the  Usenet  newsgroup
        g\bgn\bnu\bu.\b.b\bba\bas\bsh\bh.\b.b\bbu\bug\bg.
 
        ALL bug reports should include:
@@ -6152,7 +6153,7 @@ B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
        A description of the bug behaviour
        A short script or `recipe' which exercises the bug
 
-       _\bb_\ba_\bs_\bh_\bb_\bu_\binserts the first three items automatically into  the  template
+       _\bb_\ba_\bs_\bh_\bb_\bu_\b inserts  the first three items automatically into the template
        it provides for filing a bug report.
 
        Comments and bug reports concerning this manual page should be directed
@@ -6169,10 +6170,10 @@ B\bBU\bUG\bGS\bS
        Shell builtin commands and functions are not stoppable/restartable.
 
        Compound commands and command sequences of the form `a ; b ; c' are not
-       handled gracefully  when  process  suspension  is  attempted.   When  a
-       process  is stopped, the shell immediately executes the next command in
-       the sequence.  It suffices to place the sequence  of  commands  between
-       parentheses  to  force  it  into  a subshell, which may be stopped as a
+       handled  gracefully  when  process  suspension  is  attempted.   When a
+       process is stopped, the shell immediately executes the next command  in
+       the  sequence.   It  suffices to place the sequence of commands between
+       parentheses to force it into a subshell, which  may  be  stopped  as  a
        unit.
 
        Array variables may not (yet) be exported.
index 1982f3832b1283f539978c5b3628ed3d3f488f4a..b372c258be51ec3825484b3a88060a83b2a221f4 100644 (file)
@@ -10263,7 +10263,8 @@ Return a status of 0 (true) or 1 (false) depending on
 the evaluation of the conditional expression
 .IR expr .
 Each operator and operand must be a separate argument.
-Expressions are composed of the primaries described above under
+.if \n(zZ=0 Expressions are composed of the primaries described above under
+.if \n(zZ=1 Expressions are composed of the primaries described in the \fBbash\fP manual page under
 .SM
 .BR "CONDITIONAL EXPRESSIONS" .
 \fBtest\fP does not accept any options, nor does it accept and ignore
@@ -10775,8 +10776,11 @@ may be a process
 ID or a job specification; if a job spec is given, all processes
 in that job's pipeline are waited for.  If
 .I id
-is not given, all currently active child processes
-are waited for, and the return status is zero.
+is not given,
+\fBwait\fP waits for all running background jobs and
+the last-executed process substitution, if its process id is the same as
+\fB$!\fP,
+and the return status is zero.
 If the \fB\-n\fP option is supplied, \fBwait\fP waits for a single job
 to terminate and returns its exit status.
 Supplying the \fB\-f\fP option, when job control is enabled,
index 41fccffc6f7a7c9af533342981909546456f0303..2483695c63f41e6403f37211377cbded6c5d08ea 100644 (file)
@@ -13658,8 +13658,11 @@ ID or a job specification; if a job spec is given, all processes
 in that job's pipeline are waited for.  If
 <I>id</I>
 
-is not given, all currently active child processes
-are waited for, and the return status is zero.
+is not given,
+<B>wait</B> waits for all running background jobs and
+the last-executed process substitution, if its process id is the same as
+<B>$!</B>,
+and the return status is zero.
 If the <B>-n</B> option is supplied, <B>wait</B> waits for a single job
 to terminate and returns its exit status.
 Supplying the <B>-f</B> option, when job control is enabled,
@@ -14065,6 +14068,6 @@ There may be only one active coprocess at a time.
 </DL>
 <HR>
 This document was created by man2html from bash.1.<BR>
-Time: 20 May 2019 14:36:28 EDT
+Time: 12 June 2019 15:27:00 EDT
 </BODY>
 </HTML>
index 4e5864b80e386ff9ea85cdd0ffa5a7b79859bbfe..8c7359a45aa5656a39f6ddbeaedf795f00ade84d 100644 (file)
@@ -2,9 +2,9 @@ This is bash.info, produced by makeinfo version 6.5 from
 bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 20 May 2019).
+Bash shell (version 5.0, 12 June 2019).
 
-   This is Edition 5.0, last updated 20 May 2019, of 'The GNU Bash
+   This is Edition 5.0, last updated 12 June 2019, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.0.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 20 May 2019).  The Bash home page is
+Bash shell (version 5.0, 12 June 2019).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.0, last updated 20 May 2019, of 'The GNU Bash
+   This is Edition 5.0, last updated 12 June 2019, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.0.
 
    Bash contains features that appear in other popular shells, and some
@@ -7019,15 +7019,16 @@ File: bash.info,  Node: Job Control Builtins,  Next: Job Control Variables,  Pre
      Wait until the child process specified by each process ID PID or
      job specification JOBSPEC exits and return the exit status of the
      last command waited for.  If a job spec is given, all processes in
-     the job are waited for.  If no arguments are given, all currently
-     active child processes are waited for, and the return status is
-     zero.  If the '-n' option is supplied, 'wait' waits for a single
-     job to terminate and returns its exit status.  Supplying the '-f'
-     option, when job control is enabled, forces 'wait' to wait for each
-     PID or JOBSPEC to terminate before returning its status, intead of
-     returning when it changes status.  If neither JOBSPEC nor PID
-     specifies an active child process of the shell, the return status
-     is 127.
+     the job are waited for.  If no arguments are given, 'wait' waits
+     for all running background jobs and the last-executed process
+     substitution, if its process id is the same as $!, and the return
+     status is zero.  If the '-n' option is supplied, 'wait' waits for a
+     single job to terminate and returns its exit status.  Supplying the
+     '-f' option, when job control is enabled, forces 'wait' to wait for
+     each PID or JOBSPEC to terminate before returning its status,
+     intead of returning when it changes status.  If neither JOBSPEC nor
+     PID specifies an active child process of the shell, the return
+     status is 127.
 
 'disown'
           disown [-ar] [-h] [JOBSPEC ... | PID ... ]
@@ -11012,7 +11013,7 @@ D.1 Index of Shell Builtin Commands
 * dirs:                                  Directory Stack Builtins.
                                                               (line   7)
 * disown:                                Job Control Builtins.
-                                                              (line  92)
+                                                              (line  93)
 * echo:                                  Bash Builtins.       (line 246)
 * enable:                                Bash Builtins.       (line 295)
 * eval:                                  Bourne Shell Builtins.
@@ -11061,7 +11062,7 @@ D.1 Index of Shell Builtin Commands
 * shopt:                                 The Shopt Builtin.   (line   9)
 * source:                                Bash Builtins.       (line 563)
 * suspend:                               Job Control Builtins.
-                                                              (line 104)
+                                                              (line 105)
 * test:                                  Bourne Shell Builtins.
                                                               (line 269)
 * times:                                 Bourne Shell Builtins.
@@ -11710,134 +11711,134 @@ D.5 Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f887
-Node: Introduction\7f2797
-Node: What is Bash?\7f3013
-Node: What is a shell?\7f4127
-Node: Definitions\7f6665
-Node: Basic Shell Features\7f9616
-Node: Shell Syntax\7f10835
-Node: Shell Operation\7f11861
-Node: Quoting\7f13154
-Node: Escape Character\7f14454
-Node: Single Quotes\7f14939
-Node: Double Quotes\7f15287
-Node: ANSI-C Quoting\7f16565
-Node: Locale Translation\7f17824
-Node: Comments\7f18720
-Node: Shell Commands\7f19338
-Node: Simple Commands\7f20210
-Node: Pipelines\7f20841
-Node: Lists\7f23773
-Node: Compound Commands\7f25564
-Node: Looping Constructs\7f26576
-Node: Conditional Constructs\7f29071
-Node: Command Grouping\7f40239
-Node: Coprocesses\7f41718
-Node: GNU Parallel\7f43621
-Node: Shell Functions\7f47679
-Node: Shell Parameters\7f54762
-Node: Positional Parameters\7f59175
-Node: Special Parameters\7f60075
-Node: Shell Expansions\7f63829
-Node: Brace Expansion\7f65952
-Node: Tilde Expansion\7f68675
-Node: Shell Parameter Expansion\7f71292
-Node: Command Substitution\7f85725
-Node: Arithmetic Expansion\7f87080
-Node: Process Substitution\7f88012
-Node: Word Splitting\7f89132
-Node: Filename Expansion\7f91076
-Node: Pattern Matching\7f93606
-Node: Quote Removal\7f97592
-Node: Redirections\7f97887
-Node: Executing Commands\7f107445
-Node: Simple Command Expansion\7f108115
-Node: Command Search and Execution\7f110045
-Node: Command Execution Environment\7f112421
-Node: Environment\7f115405
-Node: Exit Status\7f117064
-Node: Signals\7f118734
-Node: Shell Scripts\7f120701
-Node: Shell Builtin Commands\7f123216
-Node: Bourne Shell Builtins\7f125254
-Node: Bash Builtins\7f146004
-Node: Modifying Shell Behavior\7f174929
-Node: The Set Builtin\7f175274
-Node: The Shopt Builtin\7f185687
-Node: Special Builtins\7f203357
-Node: Shell Variables\7f204336
-Node: Bourne Shell Variables\7f204773
-Node: Bash Variables\7f206877
-Node: Bash Features\7f237824
-Node: Invoking Bash\7f238723
-Node: Bash Startup Files\7f244736
-Node: Interactive Shells\7f249839
-Node: What is an Interactive Shell?\7f250249
-Node: Is this Shell Interactive?\7f250898
-Node: Interactive Shell Behavior\7f251713
-Node: Bash Conditional Expressions\7f255200
-Node: Shell Arithmetic\7f259777
-Node: Aliases\7f262594
-Node: Arrays\7f265214
-Node: The Directory Stack\7f270579
-Node: Directory Stack Builtins\7f271363
-Node: Controlling the Prompt\7f274331
-Node: The Restricted Shell\7f277252
-Node: Bash POSIX Mode\7f279734
-Node: Job Control\7f290667
-Node: Job Control Basics\7f291127
-Node: Job Control Builtins\7f296091
-Node: Job Control Variables\7f300831
-Node: Command Line Editing\7f301987
-Node: Introduction and Notation\7f303658
-Node: Readline Interaction\7f305281
-Node: Readline Bare Essentials\7f306472
-Node: Readline Movement Commands\7f308255
-Node: Readline Killing Commands\7f309215
-Node: Readline Arguments\7f311133
-Node: Searching\7f312177
-Node: Readline Init File\7f314363
-Node: Readline Init File Syntax\7f315622
-Node: Conditional Init Constructs\7f336061
-Node: Sample Init File\7f340257
-Node: Bindable Readline Commands\7f343374
-Node: Commands For Moving\7f344578
-Node: Commands For History\7f346427
-Node: Commands For Text\7f350722
-Node: Commands For Killing\7f354110
-Node: Numeric Arguments\7f356591
-Node: Commands For Completion\7f357730
-Node: Keyboard Macros\7f361921
-Node: Miscellaneous Commands\7f362608
-Node: Readline vi Mode\7f368561
-Node: Programmable Completion\7f369468
-Node: Programmable Completion Builtins\7f377248
-Node: A Programmable Completion Example\7f387943
-Node: Using History Interactively\7f393190
-Node: Bash History Facilities\7f393874
-Node: Bash History Builtins\7f396879
-Node: History Interaction\7f401410
-Node: Event Designators\7f405030
-Node: Word Designators\7f406249
-Node: Modifiers\7f407886
-Node: Installing Bash\7f409288
-Node: Basic Installation\7f410425
-Node: Compilers and Options\7f413683
-Node: Compiling For Multiple Architectures\7f414424
-Node: Installation Names\7f416117
-Node: Specifying the System Type\7f416935
-Node: Sharing Defaults\7f417651
-Node: Operation Controls\7f418324
-Node: Optional Features\7f419282
-Node: Reporting Bugs\7f429800
-Node: Major Differences From The Bourne Shell\7f430994
-Node: GNU Free Documentation License\7f447846
-Node: Indexes\7f473023
-Node: Builtin Index\7f473477
-Node: Reserved Word Index\7f480304
-Node: Variable Index\7f482752
-Node: Function Index\7f498576
-Node: Concept Index\7f511879
+Node: Top\7f889
+Node: Introduction\7f2801
+Node: What is Bash?\7f3017
+Node: What is a shell?\7f4131
+Node: Definitions\7f6669
+Node: Basic Shell Features\7f9620
+Node: Shell Syntax\7f10839
+Node: Shell Operation\7f11865
+Node: Quoting\7f13158
+Node: Escape Character\7f14458
+Node: Single Quotes\7f14943
+Node: Double Quotes\7f15291
+Node: ANSI-C Quoting\7f16569
+Node: Locale Translation\7f17828
+Node: Comments\7f18724
+Node: Shell Commands\7f19342
+Node: Simple Commands\7f20214
+Node: Pipelines\7f20845
+Node: Lists\7f23777
+Node: Compound Commands\7f25568
+Node: Looping Constructs\7f26580
+Node: Conditional Constructs\7f29075
+Node: Command Grouping\7f40243
+Node: Coprocesses\7f41722
+Node: GNU Parallel\7f43625
+Node: Shell Functions\7f47683
+Node: Shell Parameters\7f54766
+Node: Positional Parameters\7f59179
+Node: Special Parameters\7f60079
+Node: Shell Expansions\7f63833
+Node: Brace Expansion\7f65956
+Node: Tilde Expansion\7f68679
+Node: Shell Parameter Expansion\7f71296
+Node: Command Substitution\7f85729
+Node: Arithmetic Expansion\7f87084
+Node: Process Substitution\7f88016
+Node: Word Splitting\7f89136
+Node: Filename Expansion\7f91080
+Node: Pattern Matching\7f93610
+Node: Quote Removal\7f97596
+Node: Redirections\7f97891
+Node: Executing Commands\7f107449
+Node: Simple Command Expansion\7f108119
+Node: Command Search and Execution\7f110049
+Node: Command Execution Environment\7f112425
+Node: Environment\7f115409
+Node: Exit Status\7f117068
+Node: Signals\7f118738
+Node: Shell Scripts\7f120705
+Node: Shell Builtin Commands\7f123220
+Node: Bourne Shell Builtins\7f125258
+Node: Bash Builtins\7f146008
+Node: Modifying Shell Behavior\7f174933
+Node: The Set Builtin\7f175278
+Node: The Shopt Builtin\7f185691
+Node: Special Builtins\7f203361
+Node: Shell Variables\7f204340
+Node: Bourne Shell Variables\7f204777
+Node: Bash Variables\7f206881
+Node: Bash Features\7f237828
+Node: Invoking Bash\7f238727
+Node: Bash Startup Files\7f244740
+Node: Interactive Shells\7f249843
+Node: What is an Interactive Shell?\7f250253
+Node: Is this Shell Interactive?\7f250902
+Node: Interactive Shell Behavior\7f251717
+Node: Bash Conditional Expressions\7f255204
+Node: Shell Arithmetic\7f259781
+Node: Aliases\7f262598
+Node: Arrays\7f265218
+Node: The Directory Stack\7f270583
+Node: Directory Stack Builtins\7f271367
+Node: Controlling the Prompt\7f274335
+Node: The Restricted Shell\7f277256
+Node: Bash POSIX Mode\7f279738
+Node: Job Control\7f290671
+Node: Job Control Basics\7f291131
+Node: Job Control Builtins\7f296095
+Node: Job Control Variables\7f300913
+Node: Command Line Editing\7f302069
+Node: Introduction and Notation\7f303740
+Node: Readline Interaction\7f305363
+Node: Readline Bare Essentials\7f306554
+Node: Readline Movement Commands\7f308337
+Node: Readline Killing Commands\7f309297
+Node: Readline Arguments\7f311215
+Node: Searching\7f312259
+Node: Readline Init File\7f314445
+Node: Readline Init File Syntax\7f315704
+Node: Conditional Init Constructs\7f336143
+Node: Sample Init File\7f340339
+Node: Bindable Readline Commands\7f343456
+Node: Commands For Moving\7f344660
+Node: Commands For History\7f346509
+Node: Commands For Text\7f350804
+Node: Commands For Killing\7f354192
+Node: Numeric Arguments\7f356673
+Node: Commands For Completion\7f357812
+Node: Keyboard Macros\7f362003
+Node: Miscellaneous Commands\7f362690
+Node: Readline vi Mode\7f368643
+Node: Programmable Completion\7f369550
+Node: Programmable Completion Builtins\7f377330
+Node: A Programmable Completion Example\7f388025
+Node: Using History Interactively\7f393272
+Node: Bash History Facilities\7f393956
+Node: Bash History Builtins\7f396961
+Node: History Interaction\7f401492
+Node: Event Designators\7f405112
+Node: Word Designators\7f406331
+Node: Modifiers\7f407968
+Node: Installing Bash\7f409370
+Node: Basic Installation\7f410507
+Node: Compilers and Options\7f413765
+Node: Compiling For Multiple Architectures\7f414506
+Node: Installation Names\7f416199
+Node: Specifying the System Type\7f417017
+Node: Sharing Defaults\7f417733
+Node: Operation Controls\7f418406
+Node: Optional Features\7f419364
+Node: Reporting Bugs\7f429882
+Node: Major Differences From The Bourne Shell\7f431076
+Node: GNU Free Documentation License\7f447928
+Node: Indexes\7f473105
+Node: Builtin Index\7f473559
+Node: Reserved Word Index\7f480386
+Node: Variable Index\7f482834
+Node: Function Index\7f498658
+Node: Concept Index\7f511961
 \1f
 End Tag Table
index fc89651b7a2f761aebaf3559746ee8bd49e42eb8..7da0ffbd9ff3a09254b5a34689289b08682c2bdd 100644 (file)
Binary files a/doc/bash.pdf and b/doc/bash.pdf differ
index 4f0a22c4790c1fa75e02f315a4b93964c9714f07..ca78907414e01afe5684103083aa36b181038485 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.22.3
-%%CreationDate: Mon May 20 14:36:19 2019
+%%CreationDate: Wed Jun 12 15:26:50 2019
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
@@ -9587,23 +9587,24 @@ tion status.).8 F(Each)5.659 E F2(id)3.169 E F0 .659(may be a process)
 3.929 F .009(ID or a job speci\214cation; if a job spec is gi)144 636 R
 -.15(ve)-.25 G .008(n, all processes in that job').15 F 2.508(sp)-.55 G
 .008(ipeline are w)-2.508 F .008(aited for)-.1 F 5.008(.I)-.55 G(f)
--5.008 E F2(id)144.01 648 Q F0 .521(is not gi)3.791 F -.15(ve)-.25 G
-.521(n, all currently acti).15 F .821 -.15(ve c)-.25 H .521
-(hild processes are w).15 F .521(aited for)-.1 F 3.021(,a)-.4 G .521
-(nd the return status is zero.)-3.021 F(If)5.522 E(the)144 660 Q F1
-<ad6e>2.948 E F0 .448(option is supplied,)2.948 F F1(wait)2.948 E F0 -.1
-(wa)2.948 G .448(its for a single job to terminate and returns its e).1
-F .447(xit status.)-.15 F(Sup-)5.447 E 1.023(plying the)144 672 R F1
-<ad66>3.523 E F0 1.023(option, when job control is enabled, forces)3.523
-F F1(wait)3.524 E F0 1.024(to w)3.524 F 1.024(ait for)-.1 F F2(id)3.524
-E F0 1.024(to terminate before)3.524 F 1.835
-(returning its status, instead of returning when it changes status.)144
-684 R(If)6.835 E F2(id)4.345 E F0 1.835(speci\214es a non-e)5.105 F
-(xistent)-.15 E 1.022(process or job, the return status is 127.)144 696
-R 1.023(Otherwise, the return status is the e)6.023 F 1.023
-(xit status of the last)-.15 F(process or job w)144 708 Q(aited for)-.1
-E(.)-.55 E(GNU Bash 5.0)72 768 Q(2019 May 20)148.175 E(79)197.335 E 0 Cg
-EP
+-5.008 E F2(id)144.01 648 Q F0 .441(is not gi)3.711 F -.15(ve)-.25 G(n,)
+.15 E F1(wait)2.941 E F0 -.1(wa)2.941 G .441
+(its for all running background jobs and the last-e).1 F -.15(xe)-.15 G
+.442(cuted process substitu-).15 F .598
+(tion, if its process id is the same as)144 660 R F1($!)3.098 E F0 3.098
+(,a)C .598(nd the return status is zero.)-3.098 F .597(If the)5.597 F F1
+<ad6e>3.097 E F0 .597(option is supplied,)3.097 F F1(wait)144 672 Q F0
+-.1(wa)3.056 G .556(its for a single job to terminate and returns its e)
+.1 F .557(xit status.)-.15 F .557(Supplying the)5.557 F F1<ad66>3.057 E
+F0 .557(option, when)3.057 F .346(job control is enabled, forces)144 684
+R F1(wait)2.846 E F0 .346(to w)2.846 F .346(ait for)-.1 F F2(id)2.846 E
+F0 .346(to terminate before returning its status, instead of)2.846 F
+.599(returning when it changes status.)144 696 R(If)5.599 E F2(id)3.109
+E F0 .599(speci\214es a non-e)3.869 F .6
+(xistent process or job, the return status is)-.15 F 2.5
+(127. Otherwise,)144 708 R(the return status is the e)2.5 E
+(xit status of the last process or job w)-.15 E(aited for)-.1 E(.)-.55 E
+(GNU Bash 5.0)72 768 Q(2019 May 20)148.175 E(79)197.335 E 0 Cg EP
 %%Page: 80 80
 %%BeginPageSetup
 BP
index f56d9909cbc9de55827139a07b0858cbd55c999c..cbff87ec92cb600a9b830c2cee0101330bf1f1b3 100644 (file)
Binary files a/doc/bashref.dvi and b/doc/bashref.dvi differ
index e27a22f40fbf561493824931a2972198a0da2e65..5cf724cd42103fc3e7b55e6d6b4d1ad7f05fb8eb 100644 (file)
@@ -1,9 +1,9 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <!-- This text is a brief description of the features that are present in
-the Bash shell (version 5.0, 20 May 2019).
+the Bash shell (version 5.0, 12 June 2019).
 
-This is Edition 5.0, last updated 20 May 2019,
+This is Edition 5.0, last updated 12 June 2019,
 of The GNU Bash Reference Manual,
 for Bash, Version 5.0.
 
@@ -284,10 +284,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
 <h1 class="top">Bash Features</h1>
 
 <p>This text is a brief description of the features that are present in
-the Bash shell (version 5.0, 20 May 2019).
+the Bash shell (version 5.0, 12 June 2019).
 The Bash home page is <a href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
 </p>
-<p>This is Edition 5.0, last updated 20 May 2019,
+<p>This is Edition 5.0, last updated 12 June 2019,
 of <cite>The GNU Bash Reference Manual</cite>,
 for <code>Bash</code>, Version 5.0.
 </p>
@@ -9508,8 +9508,11 @@ or non-zero if an error occurs or an invalid option is encountered.
 or job specification <var>jobspec</var> exits and return the exit status of the
 last command waited for.
 If a job spec is given, all processes in the job are waited for.
-If no arguments are given, all currently active child processes are
-waited for, and the return status is zero.
+If no arguments are given,
+<code>wait</code> waits for all running background jobs and
+the last-executed process substitution, if its process id is the same as
+<var>$!</var>,
+and the return status is zero.
 If the <samp>-n</samp> option is supplied, <code>wait</code> waits for a single job
 to terminate and returns its exit status.
 Supplying the <samp>-f</samp> option, when job control is enabled,
index 4b051efe085f18bcc44145aa433872ab4eb81608..1b436c9806c71b4336d4b96b5aa4bb6ef86e118f 100644 (file)
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.5 from
 bashref.texi.
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 20 May 2019).
+Bash shell (version 5.0, 12 June 2019).
 
-   This is Edition 5.0, last updated 20 May 2019, of 'The GNU Bash
+   This is Edition 5.0, last updated 12 June 2019, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.0.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
 *************
 
 This text is a brief description of the features that are present in the
-Bash shell (version 5.0, 20 May 2019).  The Bash home page is
+Bash shell (version 5.0, 12 June 2019).  The Bash home page is
 <http://www.gnu.org/software/bash/>.
 
-   This is Edition 5.0, last updated 20 May 2019, of 'The GNU Bash
+   This is Edition 5.0, last updated 12 June 2019, of 'The GNU Bash
 Reference Manual', for 'Bash', Version 5.0.
 
    Bash contains features that appear in other popular shells, and some
@@ -7019,15 +7019,16 @@ File: bashref.info,  Node: Job Control Builtins,  Next: Job Control Variables,
      Wait until the child process specified by each process ID PID or
      job specification JOBSPEC exits and return the exit status of the
      last command waited for.  If a job spec is given, all processes in
-     the job are waited for.  If no arguments are given, all currently
-     active child processes are waited for, and the return status is
-     zero.  If the '-n' option is supplied, 'wait' waits for a single
-     job to terminate and returns its exit status.  Supplying the '-f'
-     option, when job control is enabled, forces 'wait' to wait for each
-     PID or JOBSPEC to terminate before returning its status, intead of
-     returning when it changes status.  If neither JOBSPEC nor PID
-     specifies an active child process of the shell, the return status
-     is 127.
+     the job are waited for.  If no arguments are given, 'wait' waits
+     for all running background jobs and the last-executed process
+     substitution, if its process id is the same as $!, and the return
+     status is zero.  If the '-n' option is supplied, 'wait' waits for a
+     single job to terminate and returns its exit status.  Supplying the
+     '-f' option, when job control is enabled, forces 'wait' to wait for
+     each PID or JOBSPEC to terminate before returning its status,
+     intead of returning when it changes status.  If neither JOBSPEC nor
+     PID specifies an active child process of the shell, the return
+     status is 127.
 
 'disown'
           disown [-ar] [-h] [JOBSPEC ... | PID ... ]
@@ -11012,7 +11013,7 @@ D.1 Index of Shell Builtin Commands
 * dirs:                                  Directory Stack Builtins.
                                                               (line   7)
 * disown:                                Job Control Builtins.
-                                                              (line  92)
+                                                              (line  93)
 * echo:                                  Bash Builtins.       (line 246)
 * enable:                                Bash Builtins.       (line 295)
 * eval:                                  Bourne Shell Builtins.
@@ -11061,7 +11062,7 @@ D.1 Index of Shell Builtin Commands
 * shopt:                                 The Shopt Builtin.   (line   9)
 * source:                                Bash Builtins.       (line 563)
 * suspend:                               Job Control Builtins.
-                                                              (line 104)
+                                                              (line 105)
 * test:                                  Bourne Shell Builtins.
                                                               (line 269)
 * times:                                 Bourne Shell Builtins.
@@ -11710,134 +11711,134 @@ D.5 Concept Index
 
 \1f
 Tag Table:
-Node: Top\7f887
-Node: Introduction\7f2797
-Node: What is Bash?\7f3013
-Node: What is a shell?\7f4127
-Node: Definitions\7f6665
-Node: Basic Shell Features\7f9616
-Node: Shell Syntax\7f10835
-Node: Shell Operation\7f11861
-Node: Quoting\7f13154
-Node: Escape Character\7f14454
-Node: Single Quotes\7f14939
-Node: Double Quotes\7f15287
-Node: ANSI-C Quoting\7f16565
-Node: Locale Translation\7f17824
-Node: Comments\7f18720
-Node: Shell Commands\7f19338
-Node: Simple Commands\7f20210
-Node: Pipelines\7f20841
-Node: Lists\7f23773
-Node: Compound Commands\7f25564
-Node: Looping Constructs\7f26576
-Node: Conditional Constructs\7f29071
-Node: Command Grouping\7f40239
-Node: Coprocesses\7f41718
-Node: GNU Parallel\7f43621
-Node: Shell Functions\7f47679
-Node: Shell Parameters\7f54762
-Node: Positional Parameters\7f59175
-Node: Special Parameters\7f60075
-Node: Shell Expansions\7f63829
-Node: Brace Expansion\7f65952
-Node: Tilde Expansion\7f68675
-Node: Shell Parameter Expansion\7f71292
-Node: Command Substitution\7f85725
-Node: Arithmetic Expansion\7f87080
-Node: Process Substitution\7f88012
-Node: Word Splitting\7f89132
-Node: Filename Expansion\7f91076
-Node: Pattern Matching\7f93606
-Node: Quote Removal\7f97592
-Node: Redirections\7f97887
-Node: Executing Commands\7f107445
-Node: Simple Command Expansion\7f108115
-Node: Command Search and Execution\7f110045
-Node: Command Execution Environment\7f112421
-Node: Environment\7f115405
-Node: Exit Status\7f117064
-Node: Signals\7f118734
-Node: Shell Scripts\7f120701
-Node: Shell Builtin Commands\7f123216
-Node: Bourne Shell Builtins\7f125254
-Node: Bash Builtins\7f146004
-Node: Modifying Shell Behavior\7f174929
-Node: The Set Builtin\7f175274
-Node: The Shopt Builtin\7f185687
-Node: Special Builtins\7f203357
-Node: Shell Variables\7f204336
-Node: Bourne Shell Variables\7f204773
-Node: Bash Variables\7f206877
-Node: Bash Features\7f237824
-Node: Invoking Bash\7f238723
-Node: Bash Startup Files\7f244736
-Node: Interactive Shells\7f249839
-Node: What is an Interactive Shell?\7f250249
-Node: Is this Shell Interactive?\7f250898
-Node: Interactive Shell Behavior\7f251713
-Node: Bash Conditional Expressions\7f255200
-Node: Shell Arithmetic\7f259777
-Node: Aliases\7f262594
-Node: Arrays\7f265214
-Node: The Directory Stack\7f270579
-Node: Directory Stack Builtins\7f271363
-Node: Controlling the Prompt\7f274331
-Node: The Restricted Shell\7f277252
-Node: Bash POSIX Mode\7f279734
-Node: Job Control\7f290667
-Node: Job Control Basics\7f291127
-Node: Job Control Builtins\7f296091
-Node: Job Control Variables\7f300831
-Node: Command Line Editing\7f301987
-Node: Introduction and Notation\7f303658
-Node: Readline Interaction\7f305281
-Node: Readline Bare Essentials\7f306472
-Node: Readline Movement Commands\7f308255
-Node: Readline Killing Commands\7f309215
-Node: Readline Arguments\7f311133
-Node: Searching\7f312177
-Node: Readline Init File\7f314363
-Node: Readline Init File Syntax\7f315622
-Node: Conditional Init Constructs\7f336061
-Node: Sample Init File\7f340257
-Node: Bindable Readline Commands\7f343374
-Node: Commands For Moving\7f344578
-Node: Commands For History\7f346427
-Node: Commands For Text\7f350722
-Node: Commands For Killing\7f354110
-Node: Numeric Arguments\7f356591
-Node: Commands For Completion\7f357730
-Node: Keyboard Macros\7f361921
-Node: Miscellaneous Commands\7f362608
-Node: Readline vi Mode\7f368561
-Node: Programmable Completion\7f369468
-Node: Programmable Completion Builtins\7f377248
-Node: A Programmable Completion Example\7f387943
-Node: Using History Interactively\7f393190
-Node: Bash History Facilities\7f393874
-Node: Bash History Builtins\7f396879
-Node: History Interaction\7f401410
-Node: Event Designators\7f405030
-Node: Word Designators\7f406249
-Node: Modifiers\7f407886
-Node: Installing Bash\7f409288
-Node: Basic Installation\7f410425
-Node: Compilers and Options\7f413683
-Node: Compiling For Multiple Architectures\7f414424
-Node: Installation Names\7f416117
-Node: Specifying the System Type\7f416935
-Node: Sharing Defaults\7f417651
-Node: Operation Controls\7f418324
-Node: Optional Features\7f419282
-Node: Reporting Bugs\7f429800
-Node: Major Differences From The Bourne Shell\7f430994
-Node: GNU Free Documentation License\7f447846
-Node: Indexes\7f473023
-Node: Builtin Index\7f473477
-Node: Reserved Word Index\7f480304
-Node: Variable Index\7f482752
-Node: Function Index\7f498576
-Node: Concept Index\7f511879
+Node: Top\7f889
+Node: Introduction\7f2801
+Node: What is Bash?\7f3017
+Node: What is a shell?\7f4131
+Node: Definitions\7f6669
+Node: Basic Shell Features\7f9620
+Node: Shell Syntax\7f10839
+Node: Shell Operation\7f11865
+Node: Quoting\7f13158
+Node: Escape Character\7f14458
+Node: Single Quotes\7f14943
+Node: Double Quotes\7f15291
+Node: ANSI-C Quoting\7f16569
+Node: Locale Translation\7f17828
+Node: Comments\7f18724
+Node: Shell Commands\7f19342
+Node: Simple Commands\7f20214
+Node: Pipelines\7f20845
+Node: Lists\7f23777
+Node: Compound Commands\7f25568
+Node: Looping Constructs\7f26580
+Node: Conditional Constructs\7f29075
+Node: Command Grouping\7f40243
+Node: Coprocesses\7f41722
+Node: GNU Parallel\7f43625
+Node: Shell Functions\7f47683
+Node: Shell Parameters\7f54766
+Node: Positional Parameters\7f59179
+Node: Special Parameters\7f60079
+Node: Shell Expansions\7f63833
+Node: Brace Expansion\7f65956
+Node: Tilde Expansion\7f68679
+Node: Shell Parameter Expansion\7f71296
+Node: Command Substitution\7f85729
+Node: Arithmetic Expansion\7f87084
+Node: Process Substitution\7f88016
+Node: Word Splitting\7f89136
+Node: Filename Expansion\7f91080
+Node: Pattern Matching\7f93610
+Node: Quote Removal\7f97596
+Node: Redirections\7f97891
+Node: Executing Commands\7f107449
+Node: Simple Command Expansion\7f108119
+Node: Command Search and Execution\7f110049
+Node: Command Execution Environment\7f112425
+Node: Environment\7f115409
+Node: Exit Status\7f117068
+Node: Signals\7f118738
+Node: Shell Scripts\7f120705
+Node: Shell Builtin Commands\7f123220
+Node: Bourne Shell Builtins\7f125258
+Node: Bash Builtins\7f146008
+Node: Modifying Shell Behavior\7f174933
+Node: The Set Builtin\7f175278
+Node: The Shopt Builtin\7f185691
+Node: Special Builtins\7f203361
+Node: Shell Variables\7f204340
+Node: Bourne Shell Variables\7f204777
+Node: Bash Variables\7f206881
+Node: Bash Features\7f237828
+Node: Invoking Bash\7f238727
+Node: Bash Startup Files\7f244740
+Node: Interactive Shells\7f249843
+Node: What is an Interactive Shell?\7f250253
+Node: Is this Shell Interactive?\7f250902
+Node: Interactive Shell Behavior\7f251717
+Node: Bash Conditional Expressions\7f255204
+Node: Shell Arithmetic\7f259781
+Node: Aliases\7f262598
+Node: Arrays\7f265218
+Node: The Directory Stack\7f270583
+Node: Directory Stack Builtins\7f271367
+Node: Controlling the Prompt\7f274335
+Node: The Restricted Shell\7f277256
+Node: Bash POSIX Mode\7f279738
+Node: Job Control\7f290671
+Node: Job Control Basics\7f291131
+Node: Job Control Builtins\7f296095
+Node: Job Control Variables\7f300913
+Node: Command Line Editing\7f302069
+Node: Introduction and Notation\7f303740
+Node: Readline Interaction\7f305363
+Node: Readline Bare Essentials\7f306554
+Node: Readline Movement Commands\7f308337
+Node: Readline Killing Commands\7f309297
+Node: Readline Arguments\7f311215
+Node: Searching\7f312259
+Node: Readline Init File\7f314445
+Node: Readline Init File Syntax\7f315704
+Node: Conditional Init Constructs\7f336143
+Node: Sample Init File\7f340339
+Node: Bindable Readline Commands\7f343456
+Node: Commands For Moving\7f344660
+Node: Commands For History\7f346509
+Node: Commands For Text\7f350804
+Node: Commands For Killing\7f354192
+Node: Numeric Arguments\7f356673
+Node: Commands For Completion\7f357812
+Node: Keyboard Macros\7f362003
+Node: Miscellaneous Commands\7f362690
+Node: Readline vi Mode\7f368643
+Node: Programmable Completion\7f369550
+Node: Programmable Completion Builtins\7f377330
+Node: A Programmable Completion Example\7f388025
+Node: Using History Interactively\7f393272
+Node: Bash History Facilities\7f393956
+Node: Bash History Builtins\7f396961
+Node: History Interaction\7f401492
+Node: Event Designators\7f405112
+Node: Word Designators\7f406331
+Node: Modifiers\7f407968
+Node: Installing Bash\7f409370
+Node: Basic Installation\7f410507
+Node: Compilers and Options\7f413765
+Node: Compiling For Multiple Architectures\7f414506
+Node: Installation Names\7f416199
+Node: Specifying the System Type\7f417017
+Node: Sharing Defaults\7f417733
+Node: Operation Controls\7f418406
+Node: Optional Features\7f419364
+Node: Reporting Bugs\7f429882
+Node: Major Differences From The Bourne Shell\7f431076
+Node: GNU Free Documentation License\7f447928
+Node: Indexes\7f473105
+Node: Builtin Index\7f473559
+Node: Reserved Word Index\7f480386
+Node: Variable Index\7f482834
+Node: Function Index\7f498658
+Node: Concept Index\7f511961
 \1f
 End Tag Table
index b0542a417dfd349c630344c9a2cf8eae5ce6ad53..952e76557841ff2499b4d6195535b18011098be6 100644 (file)
@@ -1,11 +1,11 @@
-This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/MacPorts 2018.47642_7) (preloaded format=pdfetex 2019.1.16)  20 MAY 2019 14:36
+This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/MacPorts 2018.47642_7) (preloaded format=pdfetex 2019.1.16)  12 JUN 2019 15:27
 entering extended mode
  restricted \write18 enabled.
  file:line:error style messages enabled.
  %&-line parsing enabled.
 **\input /usr/homes/chet/src/bash/src/doc/bashref.texi
 (/usr/homes/chet/src/bash/src/doc/bashref.texi
-(/Users/chet/src/bash/src/doc/texinfo.tex
+(/usr/homes/chet/src/bash/src/doc/texinfo.tex
 Loading texinfo [version 2015-11-22.14]:
 \outerhsize=\dimen16
 \outervsize=\dimen17
@@ -161,14 +161,15 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
 texinfo.tex: doing @include of version.texi
 
 
-(/Users/chet/src/bash/src/doc/version.texi) [1{/opt/local/var/db/texmf/fonts/ma
-p/pdftex/updmap/pdftex.map}] [2] (/Users/chet/src/bash/src/doc/bashref.toc
-[-1] [-2] [-3]) [-4] (/Users/chet/src/bash/src/doc/bashref.toc)
-(/Users/chet/src/bash/src/doc/bashref.toc) Chapter 1
+(/usr/homes/chet/src/bash/src/doc/version.texi) [1{/opt/local/var/db/texmf/font
+s/map/pdftex/updmap/pdftex.map}] [2]
+(/usr/homes/chet/src/bash/src/doc/bashref.toc [-1] [-2] [-3]) [-4]
+(/usr/homes/chet/src/bash/src/doc/bashref.toc)
+(/usr/homes/chet/src/bash/src/doc/bashref.toc) Chapter 1
 \openout0 = `bashref.toc'.
 
 
-(/Users/chet/src/bash/src/doc/bashref.aux)
+(/usr/homes/chet/src/bash/src/doc/bashref.aux)
 \openout1 = `bashref.aux'.
 
  Chapter 2 [1] [2]
@@ -267,8 +268,9 @@ texinfo.tex: doing @include of hsuser.texi
 [162] Appendix C [163]
 texinfo.tex: doing @include of fdl.texi
 
- (/Users/chet/src/bash/src/doc/fdl.texi [164] [165]
-[166] [167] [168] [169] [170]) Appendix D [171] [172] [173] [174] [175]
+ (/usr/homes/chet/src/bash/src/doc/fdl.texi [164]
+[165] [166] [167] [168] [169] [170]) Appendix D [171] [172] [173] [174]
+[175]
 Overfull \vbox (0.67252pt too high) has occurred while \output is active
 \vbox(340.17245+0.0)x207.80492
 .\glue(\topskip) 0.0
@@ -284,9 +286,9 @@ Overfull \vbox (0.67252pt too high) has occurred while \output is active
 
 [176] [177] [178] [179] [180] ) 
 Here is how much of TeX's memory you used:
- 4068 strings out of 497100
- 47087 string characters out of 6206794
- 136969 words of memory out of 5000000
+ 4067 strings out of 497100
+ 47114 string characters out of 6206794
+ 136971 words of memory out of 5000000
  4846 multiletter control sequences out of 15000+600000
  34315 words of font info for 116 fonts, out of 8000000 for 9000
  51 hyphenation exceptions out of 8191
@@ -308,7 +310,7 @@ s/type1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texlive/fonts/typ
 e1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
 lic/cm-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm
 -super/sfrm1440.pfb>
-Output written on bashref.pdf (186 pages, 755029 bytes).
+Output written on bashref.pdf (186 pages, 755246 bytes).
 PDF statistics:
  2634 PDF objects out of 2984 (max. 8388607)
  2402 compressed objects within 25 object streams
index 79d31fcf434abd0e86b0e98e801c6f82598c3d3a..c7e26b8fb1a6438139e04a156a419032759b1393 100644 (file)
Binary files a/doc/bashref.pdf and b/doc/bashref.pdf differ
index cd51c87a957afee36975a247a5c897a5305ede67..fc3312df19f43fb1596a5c28f8cd02a9cc8ed080 100644 (file)
@@ -1,7 +1,7 @@
 %!PS-Adobe-2.0
 %%Creator: dvips(k) 5.998 Copyright 2018 Radical Eye Software
 %%Title: bashref.dvi
-%%CreationDate: Mon May 20 18:36:26 2019
+%%CreationDate: Wed Jun 12 19:26:57 2019
 %%Pages: 186
 %%PageOrder: Ascend
 %%BoundingBox: 0 0 612 792
@@ -12,7 +12,7 @@
 %DVIPSWebPage: (www.radicaleye.com)
 %DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
 %DVIPSParameters: dpi=600
-%DVIPSSource:  TeX output 2019.05.20:1436
+%DVIPSSource:  TeX output 2019.06.12:1526
 %%BeginProcSet: tex.pro 0 0
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -6092,6 +6092,7 @@ end readonly def
 dup 11 /ff put
 dup 12 /fi put
 dup 14 /ffi put
+dup 33 /exclam put
 dup 36 /dollar put
 dup 45 /hyphen put
 dup 49 /one put
@@ -6330,419 +6331,422 @@ BBB027B7D175FD17A704C4668F6F8428262959DACA9F8C687C923CFA053804C9
 22570150178893C418531769CB3D96F799BF1C6415820F96B6EFAB5344E82796
 38A0DF66609F5EA332C1065274EC93027D264B84B52AA8AD82E13E2A41AED340
 B240D1888CB89FBB748FD10B214773D466A44AA2AF44371CA8B9A4450DA76EDC
-0167B4015A270B9983B89EFFA023A3DFFDE181B90C51D70557B0844362B0652A
-6345C6EC83DFEFE099455232455943718297254186940D6305C96EE2B9E3E7C9
-A622D25E0471AC31A8ED3AF8897BD19E322CFC3BD3860D8A0634081D9AF53A9D
-84F4ED39D8127CBCAF9AD48E9CBD10A67A2CD0CF93D61B05DA38E98D5DD8A805
-FB9774EDA40EA0BB44E1795C5826022F3D20F30569D86C3FA13E1E4024BDE38D
-4D3D1BA8B063146DD129739FAB9FBEF85236DAEBB462BD424F7E97B2310556B6
-5B13C70CD7423B6DD024E053FB603801A398761BC030C7889ED6D24A1F05C48A
-D5239EDC8BE23B4883D7312096DAA334A3F3E1567B92F3766867E9910C8F685C
-9DD1FCE797555BEEC6C8D2E3FD919B81A951EF6D6C42F88844BB8714EA87AD0D
-0DECBF323B05DDB409AC534A5087E7C18A839CDCE0A6AAAA79B8E35C68F21375
-9A2A80C092141FDAC6C5ACC84B5F31D70C35B4708A664F06AC8C7EDF9BCB2421
-21ED066E07B1070694AD4C976CE867F5C953E2740CA3E3B0941E270676C7C892
-52C991B67220CA89F7E8417E8F718666A1744E7A5777E370EE148A7853DBB174
-21A597F2FCBC7B6D45D3D56B997568AF83FBB42CAADC7AD151EBA769D11ADB0A
-CB6D59F82F70AA275D606D1BF29CB10EEFD1FA9FC35B97A1EAC17B519BCFBB64
-A6FA812023BFDA1E346A73A678A2F1EC7BF4AE861F420746AB464C05758268AE
-A8CC1D1484D908C8A610F58D1B46A641F5482D0C8B70169EB6711E8DDD7E3B8C
-589483F94B5E6657B8EF887C36E503EC83BA302F11473D6DB4904546EC5CB9B5
-4DBC948F26C63B41A493073EA3B9F1184D6901F0308B4A6996F91FC314FFA54C
-921F102839D5D4530502E3EFD9F1B0F4B557D19DDA4EFF711262A15FCFF137BB
-16BD2253F1E9AE6FFF3090AB3259FBBEBA165B0081EFC32EAA0A87D6050C5B26
-7DA8B4A6FC94ED80BBD9B3348EA511263F33567AA6C268E10DF72CCDD21B4550
-03473C8C5F3E3D281352BC940D27CBBD087C13AC70F72F557754FB53421C1CF1
-5D6CFA7F86869AB323167785FE3DAE8688EBF312203907234C3872A69F25944F
-108FA20DC643FA98929F4423B4CD1CEDAC1A365185E86FDD4E3978154AF581F8
-17BFD9BAE8FE55844C4077E3502DE33F70B669768CC7ABC2C408102FDDD41939
-21595BF555AEFAFEB319937A7DFF06AD2253F97F7E5FCC866D1827806E588358
-B2B26362169574670FE1302AAB6D0B8BD86801413D72687A6EEC5498FC26F95B
-97389FA20EB48D356290336BBE9F8F8602FD3538348AC68FFC6F0216B31C5962
-ACC612AB7BC54EE4E7DBFFE7B23F7B2E0D36CE482EA53DB47A05BBB5E87E9AC3
-AA819B5CA86B87533B13FBD2197C36B4D5CE7A969D7AFBA704240DF7D42CF30F
-17FADF284CB303F2CC4F4DFEA2C72F09781C8F6B3E79FD1D5C65DC134AFF8F5D
-7B598F7777C446BCDBCCCEE9A283A3EF356EAB27D8BC5364A375C209A71A26BD
-2B5DD2F4E5D756094DE321E692AC61883C75E4B7539CFB5354096A9ACD19AF45
-8AC6ED314C48C0D7817A4BBC95120B07CF712C7B68C4C6283F3B8F657CC871CC
-B905DC6A6180F458C389801E8FA25DDEF47BD1086EC66E109D4B0B4AD4BECB2A
-1C826ABC6094EFFF1EF56B1210BBD37C1C4316D7EF1DE61BF69B1D8D5E173D50
-91F1A93F985DE8C180A045F486CA799206EFB861D2E98E0776CF110B7BDF5BFA
-F545D6B2DB7E75444F3A05164A8C30CE8A57A362F7384B6BE1154EDA5F89EE08
-369718561620C73A0EED657D7F91ACA6E41168A0CA783BDF70391F8DCA06FE07
-98F5D12F72852B00699847EE3255344844210630D29D27DCC8A976A64D2FF312
-DCBE50763405AA5431E300B8C458057AABE08F1E7F70B54C8F4321FC9413B5DB
-5F472C0DE7FC6C32CC44D755F11410529BCB9136EE7E0BD4627C2C7B96E8CB57
-DD736FAA0E254368142B1C970B3ECB40570FE2DA6B6AD7F5E81562577377461F
-B2655437AB83B83509A64E91BDF8A245AF86631E781F9AD82253C2BDA83FAF81
-85E7517FEA4A481E859516C17E1ED3BA72C4357FAE66877BC3586819D845E008
-5F74493B89013285343490B9EFE8B478535291E729A83FA30482AB0BF98438AB
-83FB5D81D8C2FD6D6E4E740241368A5DAF63E2A32F2F132B305738071F98015B
-7D76AAB04F4036B0208B865E511CC97944B6634867745B6C54716CC4CEA64266
-CDD55806650C9611F3CCD7FC5487DFD2009F9E9B92FC9EBF8F703645F39AFA49
-B55126A4D1B9B064DC45FAFD2EEE133E8EF4ECEBE3A9F6A446D0E172F58729D3
-09D37C475F0D5D2C6CD2B9012A748A418127F95999E25FBC40FEFF6A8008744E
-6B6D86F46D22337BBC50E20B1C5A6EC464290A2D6A7CB919B40DED3EE6821F41
-7ED82B3AD610AD4D7A1CC4D19C1CABF5E8046BFBAF71F04635E7179E38B76750
-6FE54C73524097B555686D4A63AB9FEEC20CF17AB794AF7B93261771FEEBF472
-3006F2733A606FCD2877C004D9FB2055CF109DAAF0C8B180C74EA4082AA108D6
-854ED8978906996332A4D478B222533C081A8E9955B56EAA0D1A972368EAE511
-BE53D657F089C2E3F356135D9B8B2000AF99B5C463048A7E88DF50022C2BE1C6
-FF935374C06C8C092942A5C533BBC534E16F9DC06F2342EE1065AC56B725DA38
-A1EBA2FABC78ED3990D392EDC999C4C63DA920D31FBC134D79EC4325E5D009AE
-43D13C00BA3348B8A60A8B85395602AE26419937BBB0B8E13B58B0D5DC13E257
-746BC9182DC47C13258739493F4852CC5BB75F4E6F08FC66D22DD065948A58F7
-017AB351156FB2600CB85B3BC4CB59252C9021C98DE29D997C72FE682615FE90
-467C6AC1CD1DEA6FAA5EA476D4D6ABB7BAD66F56F8050CB0A3689E033B2A2910
-ECE37B6A089A78FED58A210DA9F3D87A9420CEB3F86995C2811CD6366F1AE470
-8C7DB8DAD5744BEC588D40D86117F0A6640E10F7AAD07AF223FB165F948685C0
-49213D3AAF79FAFE1B0B97CCCD057FAB7EAEC5405EC412A50BAA0AE40B2F4241
-5D1B30C1D9742D978F1177058CC9F9796D1339FD762A0E2692809D796986A1B1
-7BF9E8EF8C9889106D049EA8CB9C05726E81D70433162B139674F9B57BCA9232
-A565A353E7880B9EF007F6BFCA038D207283E7C7B2E87D4744277B2DBC0CAADB
-2F86C4CD08265ED6C2DCBC742C4B2E86C5830BEDDDE0EEE5785B621425EE6ACD
-B15DCC79C715129ED6B3FBBF244BDE61B14BF471E406976B74307CF9285D73F2
-B7569B900B5873A8B834890C3B664CC18A905FFC355CA45678991A6033EBF272
-CD0571AE7CFDEFA886BE510DEC65053049A42BA19F2122288692BAF0E2F97738
-4F07FB7CA6E6F51E3F604E0092E699E43D3646433A552CABAB110430EBD2B27F
-24F93DDF1E499395D759731BC8ED2E3A1BE88956ECE4F3D6DCDC54447EF69391
-D4B31346B24C6F015B473C072AFA3F17956654C8916899253A8764A10C349B24
-22B01AB946D8FAE6F40446B4F38AB25C02D0C635DC60B031A01DFAC57E35F30F
-F72BAAFA4C985940CE41275B4838191AFC5D5E89F2BF0C41DE6AFB0F3CE342B0
-AE77C45DA6BBE9D6F07A18FF63C83ED1CF9C510362793EDB27662EB1B722881D
-EE49B48F9E373CBC2B6AAF3094144D65D393D0C4BB3C3E2464994B0EA88F30E4
-D8FE8CAB7A8B11B6A06EDBB9CCD0E272BEA67AAF821F398D149390ABF0D1B277
-32581AF647C5A898D8AF65F41F74829A41DF8067D94F98551C2EA8F9D40968B2
-8E43CE4DEB56A555798111497FE15AAF3D9949C7FCEE1F220DEF8097BDF35A7C
-888CD93BF4581A95A9435E8693FA4E4967B9463AF438E68F7E1DF331F49735D4
-1A15BFC4A24F4561B2C395D2B07E9BDD06DEFD9DE8A195A0B300FB544747175B
-05B815CFFD2E2ACF24D94275632691B91B91CA35B28FCE35F6D414375041A4F2
-0BD5F49A69BD6BD427A5A0FBC0B80AF3384FDC0DD761194135C6A1F18EE2F508
-60F8B9286EFD2D439DB909D4B44E1E45997C1EB056567E82153B4702538B7847
-ED5BCCDEE2635C3D19AACAC7163951063355505C388368F9DBA8FB45421000F1
-D7873E3D396B27F2E66AFC2176D3D801A43E764E5E76FE380127D76C05A4775F
-B8A57C8A7951CD127DD4D5E66A314C6A00B0390604F7C28E3A2EB60701F1427A
-9BDB4FBB89F3D77B9AA4A01C81BC4E4F959322CB7D7B6D97A9F5549658653F9A
-A64B159DF99997779EA7731467657A817B86A8F7B71F6D1E66523E1BFF9541BE
-A66DA601DD30F1DA91CAACF9BA3E12469A20CE3D04A6004119C9591CC9ED0F7A
-C687A6D89DC0B8BFC524B9A0EBCE7A06B77B07DD05054754D99B2ACF9F49BE30
-94F31A6E08D6ABFE7EE0B02B6EF5F42F7F402A1384CE1446D8E6B28A37DC607C
-4DD3D4462E4195DF11A816B4B3722FA00E2342A542196CA971E5D262634DE4B0
-F98F6A1E35535ABBC875582E97A67B003C305306A2E3033442A68B0884E6D6D2
-D7D750944D16C6688E81B78EE9CEA560E0507D4204CF5E2B072826A435AF6245
-81B3F5CB5C7C49D40D8F7C5587844DCF5AFFB60B748D227026B8422BEA2E1DC6
-44686ADFA22D85E907C1E9C13D418A4DA79A7254E289F84759324116F589317B
-8C98A295BFABAF32CA01A39A94DC0415EAA25DF3DE69009F5551E97B0EC20124
-29EBA419052C142FA185AA98BC15CB217630149168D61A008B6184C87A6BDA12
-18504C14D1D5BDC88B80A4520ACB63E3D30E5BDA19459D04011B403582FCC967
-6C7FA5615F09C514DEE08C9F7C983A32C397A279175F4F7B3D3B41AC29385651
-65D394CDB4066B79BCA4CF0C6E4F6EB730C6A3A9CE03FD8D7969CFAC7D3B9A57
-5D1E26E4AEED11FEC5BC6FED2CE3FB2CEC00EC7640CD5A07B6A3068BE26E82AB
-5C4603C67ED001474D8211E6489F8097FEF2CA3800F7C9F273687A4EB01ACE10
-0AD80E8F5E82C5AB1E19C98AE0D146BF3E6F163065A572169848D09E1D060B28
-65219807987195FD501181781DC8D48A6C90B368979D2BC728755A537F45F270
-24BC58484C6C41B2F3273E2B705EBBA5C21562504E89C7819CD5265711710317
-19F284E2780A4C9D77070BD9757565FB2C3C16472E33795E156DB4D11A2583EE
-AC431F6520CD8BC2ADBD66F7010A5BB813A1200DEB0C4CC6833198606E994F21
-B694E0A978E9B74C4C3392009DD32755F77EC96AFC6B193878406E9E6DB0AE97
-20537F71F8C5016668BEB87247F69825C9815282DB49B0D014E79D7AD30C8896
-3371C904DF85293980545FDFBD257860768246C8C169AC98EB5F37FB93F339FC
-9303A1976AD8ADD1F056B0F1F77FEF36BECC121506FFDF9B10845544394C40D7
-4C5FFE7A351DEA8729C86782915A79708D6FB969DA3AB2656C3A806B96F5672B
-CBF8779388ABC8AC35A80C2F382C8160BD3355858C6D7D02948447604178CB75
-6A1CE44DF1DC170E79142F243F012B42DEE7D1612B3B3B4602A2A1653873040F
-E7B5648159871AD26DAE8082FF47EDF61754095DFB375E0F949534107E4C66E6
-F2689F929E8DF0190FA28D9A536C22B62837A271E565E3DD0B06FC407B0B9D28
-32B12E4102DF1A19B82AD6A84DA0D0EDB8A267A319E584AF8E6D68DD448AF5B9
-65447ACAA6CA37167F7A20F2B101BAF5CF63B9F30499A4203C2197F88236F85A
-7EAAD802EDD89F703587512E74BAA070830EA0C3BC5E211D602D278DBAA5A455
-0F8E0C9434E4F68C42FE202EF74091F54CC6E5E33E54C456B52870FA92361F67
-351F2CB1D8C97C93347D9BFC50320EEB243A1CD38DC36E45404266A824F0A4B0
-F16884B07D4F49FB376FADDFE1B7BE4C1C8373B8C7A62C06BF7D61A319D04B66
-933C875E626744163580C23292EFFE3209C9CD34E5D6DDA80F99E99005EA4D9B
-4A00D502658553F86F33E3CB5A263D06DE92BD6886E1252AC749805CF84F4BBB
-6E09C439837CF6CC143C9BBE479C32BB93522EC70293723203A64DACD5FD0781
-861E0259D443B88769572A6C5C64EAD4D81A6C602E67FAB56014FB466CF7177F
-268768AFD9B949EA8F155638906350C1858180EB7D4D6F3D74E4FE1267C2A6AD
-6A2106751EDF62BBBB69954F1FD2A94EDC8F40867A0F6FD70BDD6D56E62F765B
-D57E984A76986D0F3480B71D27B2451BA385D2D06D873815E90031284F8501A4
-2E0988C453670739FB48D28182C44C225C41BA5AAACE8B1861E6CA916D5ED948
-D628DF37F76921E21B6A582459B482CE3D3D9D1F32A9804FDC96921CF734FB63
-7153965E87F03F7F601668843BE4CACF6E7557249AB3768F8936988B6B5CD8C7
-955185ABD780F9EE31CA4B868B3B9974F6B6492378D20446AD8B46702B76AFBA
-135891B67A3579A00D84E3672B3F3AFD2BB3182B60A9761245A39579BF0CEE01
-F2CD0E00CCFA6FF2ED703B0B962B020780A98D34A7E130DDEA7D5222A65487B7
-CFEA16C6AA66784BCF276F34B04B0310308C2237DA15B209695A46EED9AE838A
-36BC86252BDE7716000E47AF3876D7EE7520EF52E52D4B50E38E57D327F5D9A3
-8C273487E4D43CF0A013E006FDD3DEB2C898D0A5602DFC7B128E8AF2FF3839BC
-3CC50100638AC513B742F429CDBB470D55A0016058A7C321B6FEA82F505AE5FC
-C48512EBAF90688329D3279A558A5C7ED0D012A104AFF17285E62D222CD2D890
-68CA620BB2E96EEB254A95A914EBFF0781D998FCB259AC821BFDF2DA7DF43165
-67735FB62B79652D7163FC58BA2184AD4115A9D4A87B5DB7B86770091A9F4447
-B18B58A5FC520F5C5593066D5C02E7DCB08D379CFDD2F2005C08691C5FA7D172
-C6E1037FE022050EAACB1FBC04C895145970C7B06C26BA3D23DBB1118E59EB5F
-841BF631FC8746CA5DAFB2E8B0BFF2904A42923EE34B1FA02C73B2C2BA02F300
-C079936892969DABA0221BA300E3CF85D5756B1152C31AAF025CF2BC98E95E34
-8E6DE60A0A3DD95C2EFB04CFA318BA0130052AD7717C87992ECF9D2E9D5540D4
-EC543DCBD7213D0B980C40BD3C08523D81796723BC616ABB30663FEA33CDA534
-71275B5FD9DBB95CAEB0D8550E461BC0F76A8FF1F53F0B89E1F2883A5954CEDD
-558613E103DF8F06742A3C6DF1A8CD8C6A2AA1C89097F97781899633014F7CE5
-B394E5C4CF51AF70259A760270D0E90FB0C6014943BF89684486EC2E7D6FFCE9
-0626F7DA3DA67D3C4F92453A1246483FB6165510D7BC3E95239173AE85CF7224
-DCE1A51582D4F5066A476B78557993B5FF7AC99BDBBC06AE9D6538647E6E599D
-F65F50B1A182B39F72BA9C3FBD3C461FC2E720B72EA5F92A5B379D61EDD01558
-3E1B23962389E133ED530DF302E67ACE9F33E47BB48B02C9514E5752470059BA
-C2A8FBC11F57BBA443E9AA6CB1788C20400115DCBB3FE7879D60F3FCACA6ECAD
-82593B9F185A129C1F19BC9601ECE070DE45F9E62B1082BE638C6C123125BDBC
-401F55E85DEEB89C48906344498D9C50E77CE8CDB83417FE377B75CDA898A27E
-93120B88DFFAB4D271D795F191135587670300D7D72F6B0DDBC8BD29D98491B1
-4E533CA9EDD1ECA586FC1132B6AB61AA3F7DC9492BFC0C51990B70CC017351BA
-CB65FF8F553B98FC75CE7AD09464D04B27624747FB762975E14C6F4FAC997664
-F5999FE7CF31F5937B7FFF0A36932DAE5B47E3602C1D4E43A6A376C0C2CF8D0C
-A083D80171209BDC0E8E28DA33E5ED0ED93E948E55BCF761ACA5E3A97CD42879
-48FF419888C975215D8D61DC57084F9FF210127C168865E22F6EE7E645C3A80E
-6C5E58D146E2834D49A33C2222D019323997637E1CB53510B6071C3E76D8C456
-130CD6039DF3CBDDD65B2C4240DCD6123B88C5EDDAF3A18C7E2AAC385FE45821
-36BD12057D84A28BC6A985EB7C00A21CBD71B3EDFB34FCCD25FBE07BEFA0D819
-69BB7B6E75FEA9B401D185A5334A392F80C7EE168D22C3DDF2EFE04B252121E5
-2317915AD3C17B63BF15186140E06782EB0FE2CD781AAF200C141FD0DDF59C7F
-95FA1974C74CBB540FC773BE9D480558F04D8A6E77A5C4C03FFA26449FB52CC4
-F1EDB91E380CE5B7ADC606E91DB4B23AF1E91143233A9CE96252216A5D2C4668
-BC27EE74A6714918653A3216D9AF4CE72A1CF6D7014E494A1B0381B2D563101E
-71D4CC02715AB87B9A12224EAC1385E815E585A216989099DBC3A23D57C2F214
-CBBBFA6A621FF9B38307D5177EE81038AF0CBDCB9BFAB16E9DE948E03B227B5F
-8D7423B3FEF8401705FEF6C06DFEB53BC6A2171CB19573AE2A7DA6B0E1898CBA
-7BF47DE71CA764FB1CE182D172E652D2EA078A4D9F3C38236B03E4DEFB70112B
-2D9F9087A1B8852044455FBB22098045EE18CB43DC59D76953502F5C7F3EC9A6
-0CD82E4044B2D1C5F86940D642021BD3C80948FE9BE1B152BE0310237F195923
-74A7D9D787F43A9FB313EDD14EC948B185CDFF74E3AA4C818CB448056AF70F7E
-038D45F563F7C93F7CD8CA8A11A350EAD4A8920AB4F8622DE5C63BE56EB5F259
-2C0BE381813D0E6CAFC19A0C4AE1705804E1A7C6F6BC0296320B3F6B19C0A17E
-C7A9F71E5B36453675BCDCA540990422168F25A537F8037B685BD556D3DE9709
-A58FE953DA52E53995EED70997F311393BF306E5E71BC6D0EB9C0D2B6EA61AA9
-465BBB3AAAE2096BB90790D0FC8B919E8DC0BEAED5AE1C577A431BC636FCBC98
-2ACC75B27C5B0F5F4F7652DB2AE91C7EBECF5580C687C513220F6EC2616D2654
-9260DBD025A3BCFB7168B184C3EB0DF518E442CA5DBCCF154E205FB1C28218E1
-5978102C4BAA2F213C9ACAE75DA361B5654FFF070F85B729B707DB21E1542932
-EDC13798EAFC927388A71BF457D5C5AF37D8139A1D6573F26B2A45BCFC926069
-DAC568906DFFBD4F8CDFBB9FD48D5EEA56B6DA0D475B5A5A0D0D1C63BDC7713D
-5267E398B7240AF38F204F649225BC595F6F01AACAD87D087550157C1AC5DB0E
-7B4B77475FB051EA26162169B16B7DCF838A3386C7D1DCB8D6DACD12BCF380FC
-35A8979DB4D342D5A754D94B49ADE540869A4EF7B9DA6DD98B38E99439E27C0E
-CDF0D0FF7D1212C8072750EF4B915EA3258C4BE93934CCE6D5259C6CE0819126
-47F0EE4CB12F14D16403BEE96FDBCE958DC4A0E1B70A6AF85449A1772E340248
-E4653840B230B0BF8484029F159BA598A65133368C4961D601914E91D7FBFE49
-8B6F4D07FFA68939C63CC2861ED29A3F3C9BF3999074A715A93C68C30AD52BAB
-60381DC7B40B870109E4800ECC93D5E6D4D3B412103B7425563A167B4E41A7D0
-8E66017DC8C6E44332995CD0E003B9FD48139C658E444B0961C31B023BD5133D
-C5BF74E94E136A3BE016CBC60F9FC51AF41BB7A8C71F6649CBADA3DB2260B5BF
-2BD404D215FDADCC6A677B58B16627AB99F55AEFAA013D6A3D034F3DB9C08174
-F3334286460CF3AA37E11BE02BE4FA2B0B4FD6648D2095334784CDA45E92E449
-3BBF7953D2F740DE3210E051C37A6AD41899836D74F62BDDDCCAC160C1003BA2
-79170D7CA435CEAAF1FA559AA87A3EF99538ED219F994FF4EB9675528E63ABC0
-3A8EBA027CEA773D4893BE72EF5C0FC3B7D4BB2AE2CE26A2ABA8D3C77AE4F9EA
-8E2541565028DCD3682C8CF5140D025536F2EB52D4BD9C00C2CF99751E7EB429
-D8A416C6025774FE2D4847BCCD4B7618771978B4B49EBACC6E1F9CC3FBEBCECD
-7900B5F3E889845282B3E0EEC2D4BD41AE775F614724D9CC2C83C110FAB4D653
-D9E6FD9530A952450144250F29D19E94517D066C4C66980F0136860FAC91DFD3
-A73EB9087083E9909B4862B07ADDB4DBED95C2794CD2998F9B6D0BF6D52BC1A9
-772D6D5FD498A1DF12F5EC47F60CBE437037089B5CCAE4BA830AF3DD60FF128B
-5C618E23C6D065B96DDBF6CDE360CBD7BC114C06EB9DDFB6604CF98D60176A09
-B5C9D9C0132B14DEE93F8E62E3FC64FF07E18438D417C9FF0FEFE11B41CA96ED
-2B4B633EC23A52EF39847CD1AEFC37923DAE488791CA961556A5CD8FFF7AA02C
-A74186E0827A74640069B5D02CD5CE6BC83089915EDEA034189AA296DF1D5661
-B424FAC4AB5EB5D48D0ED8D81CEE2C4A548FCBF69E8BCF19AE9E4C1FFE6B466D
-570AA4922688E5A7171B8158AB3B793B35ECA4C66FD276FAED922144F44B8107
-7AA10EC3989CD46487D1F20AB9478FAB49E3C969C27ADD6B1E1FDAEBCB37CBA3
-0E0068C6C94F08F228F1DBEECB3A9305202983DEDBDFA7D821799E2DBCBF138F
-8646BD18DFB505E8C6D72A6F4E05C3AD34382616C557814D1846C82E64B2514D
-9D2F2F9D800471BA87FF062E3F85DE5718F64A840A4F47673D3E69070D87BB44
-6F987936ECFA3550F86094268B259EE96B2CE8D824FD7F32328C154237105D8B
-75678C4C1637E32E2E882C09F035567935562EF87E0CDDF225E5D116FAB09DB1
-E661BCC21A76AEA642F13E5149032CAAABB90DF368022FE4A9831149643CEDFC
-3296FEBBAAD249A649BB13578459C7850367D9B3502F8751B77758C1200C9222
-731945D041C117EF61F811982E2140A597F12EB8A6DC93953C48224B8CCFDCCC
-440DB9EF0376177FFB266ADF9530365FDE2964DF2B9609668161816622894ABC
-F54431F1F04DCB1F60E125E8FD4E8A92B5B12CC282C05571A1F03188C387A5DC
-E895AB569E5DDA99C48BDAB90EC15CA3D8F177AAC3A51296A32C4175B6BFB279
-CDCFA114A67337B3C6801ECB992CF91FC96034F0AAFD60CAC43E86B34EA9F73C
-F82C83A1DD81EF6688C2E36446A77583A20DF928149C4B66119956EFB21F3A25
-6ABE9BE47307A3E34A65DD50CEAF224079550F354578ED24451EFD1293C1081B
-D3FA8B291CA0561D2449B534B56112D5AB04D8FC85B6BB33E10C9D0C3F7E214F
-B19DA8E6EFD1FB3DEAD2756C42E4720C3317DBAC8DFFE9165DDB9B1F406B1BF8
-F22968A0D907655328C9ACB2F2D1916F5AC92A1C250EB2E0C31725AF6B3EACC5
-03F9D8EDC24A78F2AEE8664D6AD2292DDB07535623DB79B22ADFCA4E1B740062
-4A6D18D881B77AAA510454E49883C869876BD68662E8D7F5A04E479753FDB1B2
-655F8DF21C6D8EF1A71E7DC0E0C1AAF7A12A2AC800339A74E15ADE48E083DBBD
-8FC2E0A43BC42FC47C709E8CBB0739BCEA6B653237C3B86C528E77E32163579F
-3F8D6C7FAA7F32916C4762237CFD08CA35ADD9CAB6DD101CE342EC47247DF6EC
-A5BC7DDF0DCDD51CB834D90CE7356F4D65BEEF8A49E5C042A9001887DA2F53B6
-18A7511B03050558301D81C17462C0C15B1A40CD8F2DE4BD29338AE4A995CECB
-48666D3BDB3BC6C57237AA181C23357472EEC77E59889518642E51317B040D5E
-B71BB638C92BA3FC11E2C5C041C8E23DE6604DC8F0FF3932A48759DBAE0032B2
-1E8801FD4FD596976599C501E3D92281282A83FC9B4384EE6F9A15ED484DF6D7
-155533F40B40AA8092359F27B36D949CF465DB78EC35EFDD9E38DAF9173429E1
-269F4A41EB64A5C3696C29574CDE851F301DC4AA7615BCB92728741291EAAD33
-ACDEA046404087697361EC681F778BD338CE55935FBE931618BFC6004BBB313E
-7415EDC1DF5DED2D49A27D61D12D1BBA04333F37CC842F310952ADE546F087F4
-F204A63AFB47C980331D395A60E30D6D903423062977A37B0985C9C1B5009520
-2C4DDD235726340CCA561949B85971239050A21C9EA0419C3A5E6A2E25806B9B
-921FF36793077F8AA94CE291EFA15FA1DD6482B6B9B3B9CDC08FF34C8A758A05
-83A02526F9EFEDC27947A5E5C73843ACB1D47CE72B828D933F8F8357B557943C
-636C42E32508CBF894659372E925C9268B76CE85E9D46BC9D35D27DF020C4FC5
-39862BD7E54E264D5421647D80BB75CAF5AE3A45E62271B93CB6F36AC62B1D3A
-95399EBEC46D48139A8F6F406D0F8775C53F6A140137C494E475D817107580FC
-A4089392CE25D5B6A4C0A6824CF65E44CCDC5C8BDDB463818E8011AA45D52BC9
-D0CE5DCBE80DBC9A5618CEB776E4224ABB2666DDC3CC196AEDC0781F8461FCF1
-D7F6B06096CBE4D8A350431177FB2B47D147AD557E8AC5F3E6AE23731F26ED9A
-17E5A53D16A6E88A16FFFD1658D2B377920D18991946F87584E840BABDACB851
-D7D85B8D438F1368D5C68916415FE59247C3252485EE000DCB3502D8C1E0B1B6
-F584019ACA31D279DCEEAF9A2AAB5DBC6B4D224F52F4E4F4EA1492DCCFE705DC
-CAE7CF0EFF03E6DCA5FE36B76D98F3D8DB56E62173D0F710D5D4607AA93DEC1C
-22BC0764EAADF52D98620B7F8C8D73C85FD3E458294AFDDD7D1D0740F4C0D272
-9520DBFC59E21C0FF41951EB5A3ED2D49BB493AFA66841FEC2ED44A7D69CB0F2
-6A6C845202D99F2C002569A1D7EE794E48BB125008565D446B105EA8C03E798B
-D76FB87CEC5F68B91E0B42D99A082C0B0E5846405F3E510C75A8C00D695CB096
-ED8478F4F87EC3BB52AA8D2D98A6A99F395A9D0EEEE045DF42F60350E8913592
-74F45C7F6D64BB608B3A187B4A9B700F00715CCAD7AD2C52892BA657A3EE35A8
-924C8D65DEE11F2E85F724582439DB550E353C9AC4739DC2946D5B9FD8DECF3B
-0298C6600870AECAA7285001B8B5EB24B5C0BA2611E043A168A895CCBA924F5A
-C05DB83BFB5A862DEACCE962E4206DDA6A171A9EBF270AF538AD7E2ED3CA24D6
-148AD0985F16EC1A1B41D226B1FF3D995BEB53767ED704C3CBFACEF2354D8523
-4068DC22CECDDB09FD818676D9CF1828FF76AF43967CE2E7623EA8328397BE77
-C538302A2BE4301571826978DC416F75C9F32EB4AA6DC539B833460701192E5A
-37BA93FAC640125231C637995A140DD004D3456168547953F67F0CD214B2DF55
-07E78C0410A7F677B4EC97D62BA66724C32CF290D02E83A63858C861AD00824D
-FCC6AC1A44D5084C372ED46A82587FFFD3B122FF92E97E62CC81335F9E8BE580
-420EA8E4584C08056BC52DF2EAEAA3DDE1AB0582F4BD8A6D8ACF40032F589A05
-9A0660DB944A097F5B700A1DFE0978EC0C19C85921DA9880DC56C2ED8BFCB882
-0FFE804CE9F518DF1F6E4CA67F46A450A2EBE8C05C48C39EB50F87DC16D60A6F
-899C17DBBB9AEDBE5C04478C2CD4C07A8D6CA094D340E1BFAEBBAAB8EB193FB4
-5530C2CA6C1B4915B8C6F35252C1C1B783EE547C9FAC2B5509995154FE7B9CAB
-6A095287357FBADF597D7C1AF9A92B667489A3804C4DB63C480FA993C84F6E4A
-A348C48D19182D7962FB9B0C907737F2F7AC41BA1C27D0499157BA114837222B
-934910E2117D3E56A43CBBA1592C6365BBFE662FEA2C5F242649EFED3CC711C0
-7D9F882226C6A0FC3854A51A7ECDDA030FAFED1601BA4EEDCEC2A29C0E364333
-D9BFBDC5657C270DF4B4750F42C9AC17BE5267FCC6274EDF6ED0F506707F9136
-167DD356301A66FCAB21126F0E6EA028FD5DA17B1B71A3BA3E78F64ECDDADFC4
-37B68DED62676749851FE9DCB88100126B7F24984817093BD8209965E20771AC
-2C0C8FEE82A5D53BD85A1B4EB56C1890B1BD482AF7E586CB3CFC2A0C95B0ACEF
-5E13E17052D4E576244E124B1C6F2C620BFB3852DF17EE59D7F6255BB2767B00
-0CC5B17297B3BFCF9729A1A96CB1DED678DAF3D2DB6A899ED16298D5BF3B123E
-C1E5C185B50F27F5CAC509FF8E9F314BCE9E8ED45BC9A2BE4F606230841A7927
-773FFC17806CD8FA016254540FF15BD640B8AB67BB5D3AC4AD6B2E6727676B09
-50056FDB57E02263D01EA34A35F8FB0B45284B3A8F57D7C5E5FC349DA0C0EF80
-3B9A3916C5A212BECB5CDF090E21A053C1384569E0102042519262F61D9B6A79
-F43F585F1B59679301B9014DECFD0620A44DEE9282095B876A9CB85F809B13B9
-E5D8308DA9D815EFE446AF23BD05DD4A8F0AB3319AED7358DECFA6BE9B86B52D
-4DA2E9B5D9B7142E82A4B2E73A221E6856791B10384B85CAAD75508AD199B3EE
-F6AE89EDAB93A770F82942EC1CF9EB19311DB57E2C7554D95AC307F59311EA39
-17A7DA41B9C497ACED2F09C74168AF371C0A98B426E42174FFADC8518F41FFAC
-54378844951F5B3A61556F7BED402437F1A388C8F767C1AC766A74A48B8F6677
-46E17E995C332EE33AA0A7E4A4F64ACE7E0D48FF7FE16F31984DC570F78CEEC1
-E1589B060D0E90E252CA904870020399057D8BDC37515A5F1A004C9BBE461F66
-89D85434A447903AA464C063AFF870614589C11A6D0DC414B06BF2952FCB3A0A
-DD2AF3C521E93917447D9F2F32705F54DA8B1EAC58B60C4EC674536C146A7B49
-827FF69ACE907FB2D0045C9B4DED752764A16A6AD3D77084E7D47A53EE4F480F
-5C044AE87835AEA2320DB09E4369155414CF6EA7EB5D7B5AC7F750F039443BFC
-8BE881A5D52B87E6B78388C0B5B3999F79F740354C5BD03D23A8A1B9683E0D25
-1C28C7C8CCB52B1D52D1B150754C331C7FDC159C7CE99F9BB65425254684B1C2
-936E6B694E2676803C768E249AAEC756ACA64277C98FAFA55D90E89803D0C2BE
-A734DFE45BC1B637B7DC481FCF134E63CF14D8D231AEBD08B0956F43A7D9747A
-64B0A1F52FF199D0A80B11CD6C598AF94AADE9D22A59567A0560899ECA0E6AAB
-73C006686AF063D32ECB50C0E790F287CEF50292799B6017CDCD9FDA5097EE29
-D3ACFAC2D3F2448DBB2DF00496381A15DA2963B774A9B965DF1F1DA5439DBC20
-3865794FDE3C938625C0B37BD0E4E9CA8E8E92E6F3D4813BA4F9C8EFDB4179F2
-2E47E5C2E029B71112CE6B0EC0AF1DF745003120BE1BE08532844A819110F2E2
-46A71CDFD7C01CEE4C23057575EADAB8841E0E2EA8D18E44F2380119FB629445
-10F6322F34E11159D1D004723BA320F188F1102C31F992C7662BC2D86C9723A2
-1E20A734FFD8D0EE5BDA9FAE7ACD5F7E4463F8E9F3824F7206BB1C2E1AC0654E
-61E7E03BE000F6BF393E84EFFC6C04FB56873A646405A44FFBE750D2DFB704FE
-3E6CAA11B535CA9D643AAAF96C5A9486EF5FB5E496DAC28199159353A01EF27B
-2C81484B627A16A9FA473679768BDB8867DE84B5868F9F08EEFE61FF22EAE460
-F80AD742C3BC581F463BF564484DAF52FDD6A36AB9CB63A198FAC614272C49CF
-89AA153986D2EEFE4AB482A0DEB39DC5391BBFA6470A8E0AB156AB98E2B6F990
-54D6C73C036171991F9B216269EF5F1F54CD7777978B9B6869EBE8C5CEF83B83
-06604699B377CC80DD569F130BE202F6AFC9EFD5795BC44CA2A3BCD3C2636C0F
-FE8BCDBEB019E3396329997B1A80F9681A230B35A5C440B5149141C28DCA8A9A
-94C19EBCFF8362FB5C2BCA7D4949EE87C57225E0F65FB39884EA7D0E47D41ED7
-BB42AEA45E5239E73A7041F80E200830BAACE26A0AFC2D06D996C52399380F7E
-0BA391A98CEB560166DF661A505847EC9098555DA591FD3B2B7423B268790497
-78ABCC4F11EFFEFD38DCB6BFAB7DC5AAC48C237B03CE9E50B62AAFD915FF80CD
-7D6867C23991644C598DA9B02520D326EA1081C6752256DA88EB71320C296A93
-A9F86CF1BAC22B20AAF03C835E9C920545F8387CBD4CE5C5BC9668AD66E234FC
-EE6C446A5779916919D477C867A0D5E9E9F06701B6C98B4E7F00A4655FAE8E74
-E8447BC98E9824927D841AF8BC80D70BC6B5B59F657D6E93917FF18D5A314D69
-A7A7E8D458A728DC3DBE2EFF94A1DE11ADC7B9B8EEFEB07BB46D6ED8E1F9472B
-EF4BBDBBD0ACE61389B02864D4A188F0C72056D86CFFAA21099A6E01AC6200D6
-E68860A6A358145C8CADD00E2A9846464663AAB709D90A43CAC347780B26E89E
-D554C05EFFD39FC0E4283654065E21F9D2F0A22D29F49DEE2567DDC967BF400A
-59B94F63C93149E641BF85C5640789BCD53BAD6E945047CE139188229DB04A38
-1CDCEACB38A99A95C2E024B9FD65F8C4435B2C884AB0F8412AE77918819F4C3D
-52551CB3B2B1F57992A18B26BDE8159130CCA792382D60F2ABBE375CF9FAE52D
-FB79D84624370F96209BB34378FD2FE08E7417BA17DE9E5D10516A10A53691EC
-E074DDA3619C4E1231BE99FBFB829EA1645E2D96A996051CF8F580015C9C448A
-E3715AA997173E3CB6A6E0B40821B1B909E5B0E4BA8C88D875C47548CDBF7D3D
-9E3AE43B618F7617FD5D11D4226D0BA08A0E77C03BFFEA700333DC02215E57D1
-AD4D87CF31584F9E8128773B052A8031125DE3C342EA28508092112E7C4DC936
-EE2C3DBD213ADFBB93577DBC4B4C640AC8F7E3F5858CB73BB35942827D5DE8BA
-14B1CEBA65C69E174693C9C0EDB23E5A03C45FE39DF99D9A339DB94082B7439B
-660E84AE79A8BD4E3B500C47E34EAE6D5EF0A51714EEFB7F2CC4D51F19EE7612
-D6AC19FFE4C1EBDD2F1F6A19D839FCF77D6D5B1EA670A97A8E6C32165E7295B9
-C97F8E11EA41DEE8633EC9F6264E0629607E5DDBBC7EFBA49A76BF8F6EC91CF0
-BF37884358D84A21658589E353722AA5A7D694EA544F3070EC8B214209422FE8
-E50940790941C491F6844DF7088C1E7871038235BBFC91305B55E30844FCDD1E
-F8EBE9D5BC5A52CE04B8070AA5242DC6731026687997A84F357C08658EF69ED2
-89618E034E1E799BBF4CB8F5352279DFBF730CD7511E5F82BD32190A61D79716
-49DC960844C835929106B6125A7039B96407B31D2FAA07E6F4A12459B1A1BFC5
-A5E8735A4A0B7E66CBBC19BB0F914CB26B8DCF8417706E4DA36AB4E57E6BC1BB
-E7F423C759A9F7196AD891A898D0C24EC1494179A575B8D77A85D9CDAD6F5A99
-6EB2F9A4359E24CF29558D47571A5E7A23B031BC7EBD00BF4EE0830F77609CF6
-3EAE4F283AF38FDF6A625F5BC968907A14781FE795EDBF6328EC24F94752266A
-DFE9B18D17A82BE9BCF55FE1A63B6C2D8F24F27EBAEDFABBA58F1293105D38E7
-4A9B9CCEC8C201771DEC7F1DDC23D0E8F6DD366AF4D35EB6463CB9C369EDA95C
-C54BDF6135D897B65653470638865DD717C77982D46B332E5AFC3E5B4AE9704F
-195857E43926CA296B49A93CFE6F24028BC610A8C7063F3C79423E65CDD2F697
-4B1075D25EDA4E56C8EED787A57B8A8E210B67BA464955FBE58DE885808AAB1A
-7517E1D682031E5FD04AEDF8CCD2DA488AD7896CE0BB63DD941430720AE88404
-A171D6A4425DFEECC1556C0C9E8DA6B7AE9619F61B401F13A57A158A62ED22E8
-3F319B0AE93FB4F52466F86BBB20F0DF2534AFBD1292ED7FA189DF0B30B5A54B
-8EE0D9F65CEED0E689539255A234E78F29A3ED496FA280440AA832AB6D814B12
-BCF3EFAE32E3401564D0A238948868D6996A1B281114DEA1580F419E239CB9A9
-B1B1FFCE1850FCABAFCB605CF218A9DA2F05F417748711CC4BAE1A95608E1D63
-B5A464D3537234CCDA314EA65A650F0DA569DB6745005D392A5756352ABEF049
-52941F1B7A642E31ED01494A40B8ABFDE1E2BC025438FA95C5C1296C0A3231A2
-65FF888A46958EABA844E001DAA376AED4B7B14F5626882D95B95B4BDFCCFBBE
-0F174937DFEEF6319F1466EF8B63031B7A54A7D363D51068726731AC9B53EF81
-01325EFE17924654D68062BE04BA26F8318EECE37BB9E258112956A73FDDE15E
-78C46E9859D69FAA0B7BDA9C124F4541221CDD6F980B45EED340C027756F9A0F
-BD15B2B730E14C6FD94C4E93292BF79266FF9C0E8AEEE2B32279C16898ACF9CA
-8DEAE9A80561DF6A988F1F888AA03E94D1261CFCF386E3372F612FC84CD104D4
-DBD88E9D7F920411996AE86AD63AA5A5F764EE734DA099A0C126FB9056AE971C
-905067D685BE29AE40CC39B06193D36CD046995D7FE0B8B156A195BFB666CB91
-D840D73D58D11CC78704BE7A22BCCBB976BE490CEEA0AB0CC718CE0D2BE09CC4
-6B1C4CBBF734754E50DD3CB48ED8C6D72C05B67CCF82B1FE6062189219E49E24
-D29A21BB286C8A0C7CE7EAFE66EEFA932D9479AEC7188908CA4A634113B5A9AD
-DE7F1668E4B4403AF97702BF7E44A2476C125ADF3A767E2C7DA173724D138EC3
-991DA4DCA989A0904470862721713A6E916E9CE6F4EF99EC2A952F81C7B3FCFE
-6303E88F5A8BC8DC9531E0EB03BB4D6C76CE52E21C9EA78EF952E966E0641098
-3829311BFF5737A625308EAA464C657EC8E4ADF9C08394BDFCB3E73A93DCFB0A
-4BB6063A45FE5FA5502A95C2AECBCD52240A2944B4E02B4D66784A843BB17F09
-709DFAB6DB9155D129C9810125E03F6EB91B26CEC3683FD559B3134AB266C099
-75B77472C25342A2E6B1F00312F3AF8949FBB2249BBB80C86EF5D6E47F7DC55D
-33F693AAC8E630A3A171724895A7BBA861F672B5487848C017054816B6D0D6BA
-D9F31AD23110D124005EEB48CFCCFC41932399FF666300EADCAC159E137269C0
-05BF08D7C7407A3397A1A27A80C88D75B4490EE552E8CF0AC12B07F1345729FD
-CA11B5DA5C8760FCBABAF342CD7B47A6B47A76FF745946698962767AD8082E9D
-2339757DD6CF2B75A4611127A9661603162ED04BC5532B11E18FCD5927051365
-5CF6E70589764CAF6511C3709BBDD45B52B95E0207C77D9A48C655DEC2362D97
-2733C636041CBB4C168386ACE810CE194C618EDF971041325AB1E205976001E1
-4B3D09A8124E903E63EC50795717075116D496F94167F749BA69A72A71F1CE47
-A62CEF962D8449B3686897898E090D609AAADACDA275B5368DCE859D2694C9A0
-0AE5280C19ABA7577F8CD1969E4922A816B246ADA9B971EC77346C09E093749D
-0AB067228EC4F958DB6E447355FC0F61894EEEBD7894601C4902BA0E6A8BA561
-1DB2852F9A21AF990C121C7604EBF9C64B0F88D9878F612D3D2085A795236112
-617BC42ED71C
+0167B4015A270B9983B89EFFA023A3DFFDE181B90C51D70557B08444263B84F8
+A2A807C55D74265931B553F6D7F132B110DDDD3361BC9563803C888B89881DD5
+09E1A623957F074F5B3644BB3F93D7F96770C73499AC0AFC3D7157EA08BF9D15
+DA7739FAB528A8BC30C0EA7899A3193CB9E8EB51EF67DF4F97D36005EC228B30
+E54D14471A6ADD6DFC0A9E182436B4C197CB675C37F29D0404846AE086C2A5A8
+DA576BD98FD5245F1F19D20D265FE8A6C29571864BDADF555E0516D49EE5FC67
+CD278CA322575D75BC18E682A112F3EA978790C6FB0202939323D9D520F768F4
+EE5DEFFFB37D802D896E4E6943986006BAED87780F3B9D967B2FC8DC44A4A529
+2103A5C8E05BFF06517D8851AE4EDE73EBF32875A148CF6CEA6D4AE03DD1328F
+651158122376528BB9826C2DD8D7E79847902DAA002E452D12A8F8356C363FDF
+76C5969E2CD60336F300EB511BE4B7F1F5585DA7C6FBF995DB71B8CF22C0B458
+B6ACE92E0215C34849D8EFC56C9052A3924B628DF69B0435810BA49EDFA03E52
+CCE470EC571986F64D294E0DB056C9E509C81AC64E65BF1E2C17024BC8ED4352
+636CA39A3937DC3800FCCB1F77969154EFE9A7091ABE21970887F6898A281500
+7ABAA2EDD1A825E36155689AEBF310C63BBA08FB3C7414C49F445AEC145A06AF
+E6FDB6A30B367DA1BF73AAEB9C503D23CAC63D77AF39A9AAB1C1FD22BEFB8F1A
+0E50F612DF0A30B5984E18950261544B3AF01D1E839CEE5D093AF2E3567278BC
+0D91A5301CE5FFC6ED8B9C38A11BB939EE48C37F2DE47E9BB52195BF1FC46E1F
+FDA886B899401F144E4B32438F28CDDD418CB529CE8379771A0DE13E584BC354
+2E26FBC8D9BB1B1F92BC0300CA7046145698EF64A6540A468603092D633E8B2C
+2F2F688ECC7F457BB6FC2F075F87EA556B5837E3632E993C79D08414E033C21B
+F6238CC12034BDDAAE28A09A9CAAE51667A3AE782A92BF7F4A89A37731426D6C
+FF47EFDB75BD2D462A79F9E55EB522FC6F5C6713775142D2FE1038D2D49FAC19
+39A26862AE2859DC5065C1565EF8C249D95D501A8C53F659CBDF3B0AFFF1A4BC
+5BE2E54A2BCC84402D4EABBA36CFB9932CBE589476A9335F509ED972724004ED
+289D44141EB8D3B63494CF9AAF357A2EE23B857DD0B1A0BBEB207039C30AB085
+28BC18F13B235F1B8C2881C0B581226D1230E7FAFB5652A728B50B5EC6AACA19
+26587B0CF2AD14DD7CD690373D166C1B9FEFDEB345C2023994F2755F34333FD0
+241342CB4CB78E98A798FA200F3BEBD3B1B8FB26F68A32D4970CC1BDF7880416
+EA7F68EEA9EDCBAAE75E762362127A9888D470EEE54D9103433F623924FE361B
+6C0B370C8906FE9727A8F249D1B4291ECCA02BCB0BAF9A785CBF4C9451321F45
+775970916DFC43E0C2FFBDB9194DE54EA990B1CBAB06C5567F4E6DA7EBDD7028
+A475FCF7506BB8B3CA785233225544C87F74D792571FF09B3F6599B3F1111750
+201DE0AA6472939D049C2D674F91508A19809E82D0BA3ED2EEB76916543B8A19
+D758901E5999F8348E74D24A8FC602B7D16F986401C0463C2FADDF67F3FB2C1F
+E08CBF9F753023701A1C9860135284C5CF30E5262C5408D6FCBCA90F14B9EDCA
+7E15F68419A3A1842CF2F988F6E77057873007FC22A2575EE9FCF9B80682E944
+83C776E6F32ACD52BCD48CA90E2D5C31088F646E6A81D27BF7FECD78CD81B2CC
+755155CDF0F1B951A3EC59012FF66E005CD4EA1F160C721CCA6C156957124C03
+0708EF85B90556AE357E27BBE9A6F9283D5B50F4C286D961B61C87F85DBFA44D
+2F9C0D008334B4E2B2C4E6E461EAC86699E8EB8FFB216DC850ACEA016674CCD8
+BF7827FA6FA3D167C6980D6ECC7FB70BD5668DB9AA8BC2013900C693B2890A3E
+5B86A27556DADEF2870ED87EA2EECA8DD0C1E1F58A7CFDF7AF3CDADCE2FE6D8E
+9CDD02887120032EE541A73150BBF388AF868841C2C5EE9598D78A10414A8599
+2D936D5A9E83CA777D35563263ABFF48D283CD76B3F88FBB8F41278BD2E88B20
+2D950635AED81014E46E425434214BF56AEA935150DBB8F2C673DE93EA9C5A22
+E1D305798D85CA7A11F194E47F74F2658DA990E6CFD068F1426650F59269B269
+D2BCBC24A4973EC99EF1C30DDF20F6F383807A59B615E20A05B75582B82520D5
+E1B9B5B145C49F70009C1BD507F895382F82807CBB53E303CEB5C1F693ED6315
+A545E313B6130A9197FF31062F81F623FBD6E4D5B9534412265A8BC7BCC76B6F
+AFE43079E82D77B54EAA36B21CFC2AE1E6AF5D19952E8E339507EB7A7A2D4578
+0724DB516F848EE099885D861A399E72D738395F4DC3E857BACF340C6D6E549C
+79820E43D624F35FADC643944906B7154837693057F2F19A638FD68C246A5BEF
+49363D787DCCA6C9A3FEAF0023FEC63F88F8998FCEE527957ECBF03B9556B68E
+F7BE8C04FBD8CCDDC4DBA0A628D157DE2D1C752B07A9FD9442D6A423E4522630
+133D1094AE3C72FE88E50F13E2ABB0181E41C3C77F30E94190A66A4A110B7A90
+E0896CC9350E9ED01A2CA395851BFDD8A5711D8004E8C79FE8C1E98BAC0BD985
+A7FCE6A92077E0CB291A0F7AB5CC6C30B8CA7CE2B39B374E531A38C5CCB37C3C
+91726D52D98E98A8908FFB91BDC68D30AA8A636C9788E6594AD2F176A9AAEE16
+EA3F249B42FC47A95BC492E52504C184B114389BE0909E827AFE2A33A1F61C95
+593102EC2AA44BEDF477FD2BD876C6F15F612BB8A2B3F6EE46676F36FA1B3BFD
+1C48379F8E92A5EBD064758BFCFF2C1E9B908DCF51ED2FCA8E07A5578BA7BE6D
+9C9FCF5FD25AAE03135B453279FAECE868B55C9D46C008AF8CC68B460C75D1E2
+D6F1F82FABD77EC7DD17FA21E207CB7EB7DBFF1FC61A36135E0A024FE527D4E4
+80C7E92B8A61D52A1C753BCFEEB2460B10AA8A72A76C87ED59600BA7D0ECB249
+65AEEB86F31AE0BA4D0E05FFDCE431884AC5FB9C8D149A1E421F82BE02E46E44
+240B53E7CABE9055C483981031E866C7231CC096AD7DA409FBD0EF0583AFF0C0
+88C7893082CC45C35D0CB712CC92A5156B98191A600FCD6B9ACDFC005053D1F3
+ABAA3BF518CDD4370AFF55C1A773DC0906F60A10B19CB24D8971B5CD5F6BCFCA
+0D865318D568EE8CFCE98D94C47E1B3E53AD4C5AE828CDF368C7887D38567D8E
+B5631BD4ED2CA35760DCFE39707E25D8C31BF3D05F0849C68FC0E199CFAF8E07
+BDD6EFCC85B53E0D536ECE4865C6BCBA8B5FD2EDA73FEDBDA20FF6F440DBB7DC
+3DCE63D7FCDD573F4C2EC484D1E992700EAD9BDDD8370198DE5D80489039E726
+B25540566F25AC4225B5756780AD7C6358EBA625EF82BCBFB84FA980E06FE47B
+65EC65190E515FFF50F5B0D518C0F3046AE846ABA38CF424D60B814160E6C431
+8103FFE615DF6789B09CF9AE4D1916E171B85EA765DCEC59078A99045BC22D9D
+17B6D20AEC5636102999125733FDF4925A100E27073CF68829CA18F669FDBA11
+8B91BB3E235797CB4C79C15B4221245105FD3D25DD159A699ACECA81FF260360
+DE837F921911076BB3E838AAEE7C1B69177E44D56BB3D8990AD9DAEEDCEFF171
+7ACDD1B5A05BB433EF3DEA8EC7CD1A44C1879D3CD2D43926129286242DD485E8
+0B7434D036D05610A9956609F7E09469729CF1E888BD79F0C9625D4CA2C495D8
+E5CB4ADBFC7B4C16051301D083753323D1D694D6014542B730D92E81807C7872
+B3B1FA229951D20665379169D44CDB8756ADAD4D45EFA62090ED6A990144897F
+3F657DB487DEDA8182AA31A16737A822F30BA9D22FEFD130244EF62B8E32A47B
+1C5F4FADA3E0ED07D68CDD8C74E631A8492A11FAF430ED3022E3AD73DB438FEE
+A1142A7CB6955105260C8019128482A5E53B7868F7A8452C82EE4C158A7EE92B
+2DE174F01F0CBB58106E495A4630A338120749FD097AF0A7C5787A274ABC9F36
+0D2F6C9DC41B13797502A0398E786E3F66ED2F581D45A1C4DD21ACC06B93CF3A
+48D9C2D8E2394D9B09B0BA4DB35BBE8E6807E3E505226BD8903ED8D1FA002A1C
+54A9E051E20F03F71358746C79C07C5E13D967276FE1E1DFC12AE10F6A7670F8
+BFD6FC669365B67C6614A72D37B70C89A4FBD8D2A23F97F938F61643684C6D09
+8060C219D07A3205914E5B481AB94F22B568C17695BEA33B9AEEEE5B24C1449C
+DEE6540C7685F41BD018B04A37F691FF41D0362AF526D36FD8BB95FBC5A3D99D
+934106CBC5781A692410F18B9023150664614ADFEDC6C69CEA83C24186E856F3
+89D89EA807B6E0994DC82EE685B9B125454D191F4A66E03A408FD0744D6F3431
+D57634D0AEE41DB3C59076B11FE5AA8A216DC412446CFEF15BAB15CFF4E5D459
+3B56FF59F03CB7C5E3CE34D3829EE3C50DB9B2A13B0ECD8D96C0046002EB7229
+2ED2FB89ECF2A424403AF99DD5465AD54EB84154D06076D59B68BB89F7F3FDBD
+14B53D540809BA4AF1525CB4485CE71EF80C9480BF9C81EA3F8B7F4C75D7B34F
+90C5668D91EF0F69C99C8C8A97E7343F85426585F2F1EE48497B26C5F3C46CAF
+9364A873CF3AEE8696F1208C03F9E325CB7A528513B220349056BBE1EA0A19C7
+EE50A3E21CA1C3D3F5346E58ADC032435681A4CB87184CDF8CB0F43FCA7F2DAC
+B9295368438D747EA365CE92803C2988215E95CBABD03165234DCFFF3EB44563
+B33972713575D73849CC7ADA5038F5202F56CF23F57CFA5CCB84859388A5537B
+02BA8F05A5F46493039695D0CD98622E7BAE25EAAD263E3428FA4A682A8519E8
+E2DC50806965DD5A922DC492BF263C5BF5F27F128DEC0D7F51CCE5FD4D11FC66
+894E014CD5390A950CD8C1C060FF7B9852D49F787BAA2F47A8D3259D62EB528A
+5ABC53F2D9BF174E13F3E5A3F7C20B5CE10269239BEC51D10F76D914BD66100E
+06C4397CF39DEAF75E266ED3DA31EAB7B25BAB5713F9860B99B60C39CFCFC798
+130677512B50FF9FB156AE17B4546D0C3A9FEF83F3B9B1761DAE7E8729B75726
+ABFE4FB95130181253E9F20102925C82E4955DCB55FD98A9F3F54491F91F44FA
+DC821E43D286805EA754F11FD4489C95BEA55FB3A544D2DEECE529FDC82C7002
+E3DF43AC813F89F16C1C3023B2FCB9E74E40A07E4621984EB874D0318F15A90A
+C0926E2414EA7E9BF019864BC90DFE9DB63A843D3F853125292B42B1BB2CDADD
+EE54C44930AE4886C26073E765271E637ADCB559A98AC06D2AF7CF9170567546
+F989686B5DF7B4A9797819EB91B94ACAD6FACA41A2B3BF99E168FC25E333743B
+A32D7753C88052DEFAE7EFF1850411B83C14E58BFD7DFCE1DBB61EDEE0C93CFC
+DFCEF8BB4382009677B814B621CA9B2BC232DB735939D1EA059C622F99DAC9F3
+6724FDB9552F999830D6DD7F5F1CF0F01D30774EA9E50E82331F529D5F835A84
+36D96A52B05D616CA06645D54EDB6FB53E2E457D90EA68AA948E1F8AD78278F8
+CDCB1989EA650E17D435E70AECD459530CB5CA0BB4D79EEDE2390F93D86DCA33
+D75DBD1E8C01A3494A433E8E67A61D6590AAE9EE46DC55363FDCA3B8F77241EF
+679098A76528449984D1E2CE4D0CEEC4F396CB2A90EE9F6E8DE4A9020A3350B6
+4D4DE9684B39B935FEAAE95FF50194C51F3E342A7F12CA2AC92DB0107F05E4F9
+5B3E9834FC4BFC831D401E4BF8C696C94E9DAA2B7CBF600B6A1E388306222B42
+D6E0548B70FA0C6C75414C5BCE57002FC98209967C91858315E6883BBAE12C4A
+054E077F0B0AC97DDE975C02E529782E6D504EBC902ACE1CF1578B573F7BAFE6
+60FEF4A942EAD3E09C71B5E54B175AAAF8967078A7561F5E588C08CAC75376ED
+33A51D4FA3742E9CFC8966800DB9FEF07393172FEFF2D1C0743C249E8A1476BC
+8D310EF915D131B54ED76D08FA28FE68E11E118B285153EF062420D9BED2E18B
+1858D09A48E95AAC72692F589325B85C6B09727C2E301F57A0FC9A19A353E4A7
+314C28F462E4C40F0D6E8DDC72AD68C1A154E2AD82CF8663134CCE8FE46C972D
+9ADFEF582C94058281B622D3D5BB80CB2EC3AF27DA607613D2B778CBABAD4075
+41BAEA33F81A80C59256569C44E49BD398A648808CB3044A5CED7451B9DF117A
+A27D226F5210B201024A8CD403E560150FCBDD93DAAF5BD9A9AF2DE7834F1B7F
+75C871192477DC17A3F53E9A4C8A796EB784F0138D1E5CB5B867D9623232A725
+6FB9E63DA26A6EEA29887785BDB66CED60D020E6C2977CB65914C7EB425FACE2
+3CF115C0D10C80FDF2B57B9271B7BC11BC5012EAAA50E7A7F06AD1D67EBE78EF
+AEAC719F432CCA952D3243205C449BEE066053B6A341C406942698F2FF850C07
+C28213F2BE87CB61ADF247949B33990C8FB644CD1947A4361BD9082F3F87775C
+F9B6B3C782FFAB261574D7B92C8614777D75A4A5E70E81A3EF8F9E65F2B54FCB
+74CB574946FB17039DABB4608FC4FC19E17576D147FA89C3CE743602D5E3949E
+271D01D7DC8412568FB5F0A26D0F0D2FFEA7DD2E15F0CCF97FC1290F3A57C07F
+7A6CA349284C7D99AE35AB2A542926E51E75A3CB299CEF565D35A46B97B04A48
+9A19F8D098865C13866105F9267F8EEDF46A2745BD3338027BF145BDC4B433E8
+7D6AF5CB511A561202BF07F32A88907DB0910953645552B97DF086D4B23E0626
+7D9AB048A967BF848F9785E0C0865B075A9CE6D1A93889653D4D112E345DFA68
+B4C8B2B2F3C7677245F94FA8B1CB49E93872DB6FBC0AABC864D1302EDBE36F66
+B66E58A96F9E8AAAA78E782BC6F420C3B924C77C6A3A409771BC4A8BCCFEF312
+8CE50F4DC65962D128456C6FD92516E65895C953DF0AD89A1DCAB885AD1C4BB3
+004515C2AD16233FE40ADC07C5DAA6DD3F255B300BA4A3936854CE8522CD73A8
+CF6249EC364D59AF7B48585FB0D0EB60BD4564E245A5F3343B442A95935617AC
+1A10A7F9FD1B24238D982AF71099C81A9716F0E22D3343153C60965A2807DA72
+431ADD45282B94A0EBA24CF07A2C37E3DE1BB6B4E8AE5B55AB2EF5ED06CB80E4
+292322EDAFAD9F95E79C7D2A4D05FE338894F05437814FAFFA89F8421F199C21
+75DD69E6F6515AC60AE1F04536CFEEC08B75E8BCA3E5F1D796534757638C74DD
+66CC7E63517E555B4881DC484968E70570260DAB4DE30799508E45A1E492776B
+7FD91D9640DC65C2084841D167F9B4ED4DE11B8927E031F6FAC47625CB7CE436
+D5456E170593FBD168AB97259944CEC2CF5860A8331291EA487FF2930753DBF7
+D34B62D85AC926E234BB14109D1BFDF63B7A4B3D7198693E57F9B3834B61137E
+90F5BBA0D448BCEAC81F332842805D78448DF7E49AB60D168565DFE00C61CE4B
+1EADC9BFB2CDEC0F31D3E4DC9DDA5BE4B6F6581FC69679CF410F23AB2C680121
+354754BD7BB24B453E3136DAC2C0E57417756DD5FF6EC4A4CC2585BC914FED94
+2E4B4C3F46297178633D568A1A01C08CDEF563373ADCD27F271E96B7E089284F
+B9AF9384DA9849FF5E2783FDE1ED0BE31FD365EFF42783AC35C6545AAA3D8456
+61289DE34A4A979929266B5A14B668D417656EAF82FBFDD4423983672F86918A
+8B17C5ED098A534037A0A08D605376E4D0DC875AC8CE130258C739484AFF8E35
+DECEF886690D7252553B8AF1B2BE62CD8E20F79EB985D4D068C729D5C327A940
+C68DA2ACBA01E17BD77E3A0C88E96BCE0E5CCC10E3346EF8D5531D4B1050D49C
+76F7CE5EC28A4CE288E44D6FC118CE398324F3038B172912B55D9BB92360BAD1
+1C72A24E37C5D90C575921A09D49B54FACD8A5CB6B4CB1D3E28311035360C72B
+017B7252DBD8F12E703C62917342F8225E34F65E57868F6941717CCE4CCD557A
+1698CE1F85F488E9C31FE3A3EF4BC84985DBCA59DCF4C264B5BC15A1830C6DA7
+44C68C377C67A9A2FBBC758119F2BDD0736EA72B2D21B3BACEA25092F01DBB51
+C1765EC509E4037B1C45F3DD1C2F2D67E81693FB96F3214B93A7C8528C2E240A
+8AF01B1957624CD1DEFC1571D916E580A3F2C4DF79C784BEB0DC90A492863747
+DC697D8DA9CA0E659CA1B2BA49E518D81D81571C8781327D77AC41E495710B8B
+6280C3DCF9146E8219B45E05B4B8D643399E6A6918A88703CC5D6A2FC6152D98
+C4BF68D8E3C62687BE75EB7430C9C09754F12C552F0487AC642F21AF41133FCF
+981DE3BB36775EFC56D2FE567A63C25AEE9B5C77FB7940465F373A5BAF49F8D0
+342910863C8A8B6F2F9B8852719678DC4E5DD0D8520B323EB35987A5742B69E0
+59B34AA9E89D999A37473EA14E7C3B2BA333143E2F12BE171294A53AE0DEBA54
+86E3CA28DC56512B7ACCF41F973DF682F7FA24336CDE764AB15A9BD0FD7B7790
+00E14EF5F60FAFE84E53A61E7ED237E4D226DD758D2721272787FFF3B243C99F
+790329AD417664FD35FAE23C4A73CFFCB4833FA46387931A64CEC7A542FEE538
+60B315C68CB214D271DFFCF1A24EC10116AD47D9F0DE11B155E613FCC7ED9820
+D94399CA4797D8D018FFB12C70FFED1806DB01D2E1CBF9985320569F2A974E42
+4F3080197196DF06AEB06A78E13B88DCF9DB1D373EC7098E4A1CB4D315A80981
+F32BDD42AEE44F62666E0B9FE909E778FED99DB3C26264AAAA535FE75D4C694A
+9D2DCF79BBA21D50946154062786D8DB1315A199AA2BFEBC1487737D0D05CC66
+14A5F04887BF003974955508621EBDB785928FD740ED2FD56CEC31AC36AED961
+3989CC6805C4ED0671361CD9B33413F7419FCA778BD65F362699960D07952E68
+3AB2BEB6BD2F68D67A6D00C17381A11AE720936F293E8F9F32AACDC4A78C1940
+7D2833FC9394125E55B555F3D05CA2472D1E50FB669274B34B01F336EAFB7147
+6CAB3F222FF516B81AE9E1D1A699EA53B7A5DDE4DDF3DE5D8C94672EC5503030
+D2B21BD46AB490AA1B10C2784DF4EC6599D9CEC79C0118E5F2519FF1E4BC5CFB
+269D96AFCEEB217D94284CD7CE7D1408494E5334D6B7FC732A3A33CD00D821A4
+72AF49096ED670350AB2866878BAD1290D0BF7A0098AC4E820012811E04E2E68
+92D951CC64E7C325A4371A14630ECA1D9BACE4A5153799383566E6010573982A
+0EE4C58241639A54FA822D79FEB445B2CDAEBB55BDA5D95D1E42ABEB52A98D44
+5D3BB4D4596D68A073CD9B64E380DFE057A5FBD7C75F69EFFFEF3A650C635D0D
+857DED28F29EA25B2DC54CBC76B848F3CC36A2EF0096014E2C434E3B9C4D160C
+32852E608BBF4420631B4AE386CC2518B8995757E1208575555988A25E80DC99
+5D6A08B0CDD926E68FB554C7BDCDE43D1B9FC8EAC976F0220C687BDFC71C82A2
+A23F5A1F682A1750B140A78247530F715158D38EDEE287FE38A3B521FB162FFC
+C4E3D42C3CDE9304C8874684FE72AC273A0678988615FD4B3ADA32433EBB646B
+73EE74DC7F19DC555061EDF9DB34830432F792C39EF144E1019DD39C34F3CF2F
+72EE63AF4A166F6ED9EE0C873E4550BF92BBBDAEAE8B56659D28823ABFC62C7F
+B31E7A6BC27971220D7BA38FB890DD8A73F265A44A6A864798450694C7D321C6
+58EDF77EC8CF8A46C74142134F6E32C938C4611DF8B68DDB154D97303152DAF5
+DF404F390D21CD96800D9A0B01CF5AA6616F6DC95B627A1AB1CD4041564C1EAA
+1E92C0F12552131DAF4AAAC310FFC5B07F73B8C1086603FDDF5AF73D45BD51A6
+1AB0F4034AD8C3B2821F1A147E796737FEEF6953CB5D907D423EAB9C211B1B2D
+E8CB9F073D8C8236B716D29BAC3564549A74A593F3007507D9F24783F0592951
+5CD32EB8CE102347F66AE092F42502AB3E9837F176D84F149DE91565C1E531AF
+AB7D1FC1F8290BC3759DB439FFA12F20A140167B0B551A33287C87FBA7B1A959
+8108912DAA6DDF236B9C1C6C267B040CD981913554782EC653EC49752DA61374
+FD1CFB78F69F2F4C126201E1580148B5E7F588AE5F6115E59EACACCA4EDACB73
+3752EE3D118A8822E7D77540FF08122480F673D62A48596950D31F70EF9529EC
+3045FF1DEA06EF0364953DA475FEC525B566467FBA8DAA4C5561FF167A5AD3D0
+984CD74231C9DC85ACF76CDE37011961CC47F69C1C926CDCDFB2D88E054F30D1
+5131DE8C326E64F0A5B4BADCE0A23D4E27077A01928A61E6143FA88A9DDB4AA2
+2F3FA2AA707FE3D8F3CF8293F4A3F77E34DE41E6DA2ECC771A0B5C8FD871BE39
+3C643604F3010EE11915B16E73A0DD4B80F26E33E82C78FDFFFFB9A4A5C16AEB
+CA999ED6BBCE4AA9040B1FFD8440F50A0ACB47A168C67F4C9C42085DC14828F1
+4986D877F40AC39B2FA8453C8C99CCC06189BCB3BD6DDFCD04F395E44FF20EFA
+36827683D0F21D5F594590CB73E119183D13B12A49BCF076BF5CAE929ABF0586
+07EE7C76CF111D11E97424E385FCE3ABF8E5ED57A752316D140EB15F91ADFB48
+C83E6C72BCA77D158A7E72F3EFB0E3B7CC705C41ECE07C80562783F691213ED4
+19A231B4283AA5612CDD70EFCC77247153ECBA2629ADE0F58E6BC457B6FC8E4B
+B6247C567A625A209CDE6F643EBCCBB1C528B4CBF89D3FE6F57E233D461FE222
+73BAD8F1282EE07D0CC71149F749A9A6FC488EC0C394C748E2674FF163C423D3
+05BEEF103603D7316E9CB1ED4402565FD51FCB18B9DE36A133ECCAA6858BC65B
+A44BDB2FBA72D4446A9142826D79EF4CFE58F0D033DEB00BB7ED7658CF9F5E74
+BBC5B794E7E8186305D661D1EFD5F0BF625D4E261580B90C16D52831BC4D891B
+57E2E4439A52FAA08FDF8E24C2678508FB0FC883720D069107A1CA298689F518
+7BCA3A6D3DD612094F5C80C25BE56492DA6B0684E1653C34314056F9268F1AF9
+C85AB116913C252637B68F6F3C7273CBC97A34AA28877B525320D3660A604205
+151935749EA18B06D467D135532232FE5FCD555D06C25E0795AFFCADB8A13021
+FE0E0EEB1F95EF49F0D13143FE6031EE991C135869AF2E4567C9F91851E661E1
+6D5F6F604B5F89AC2BA6895F339CC14C868BBCDDC2448CCED52D53BBC92A24B9
+04EFC00A8DBC6801ECBCBFFCA6CECCE4E14DE6086868CDD9A946A96BF1B0CBDC
+B6A5352A058FABF56A64E9E379056ABF076F3C42BF2E264666EF0E43EC8DACD4
+651C7872E35539F2F25CD79DC19C1D5095B0E533CF7D67B64AB8704EBA2613DF
+FB54E6CE56CD5B648C2474F9B0C085F5FD448E230932E83B85443D4B789F3B59
+7FD94EB9A484CFDCDA1EA31D8AB19DF33A62F490D36CAB7EECA9BEA01CF98623
+1C3EF2C0D95964CC94B6C898E52FD243C1DA2F50DCEA0E6332D27701850E683D
+F06148B6161691E570EB20ACA91CDB9A37B2A85B39E079E59E716F5EEADF4048
+B99DA7753F251BFA97BF4AAF7504863418B30248E57ACA07FE724DB5531C187A
+87BD31066DD7686233F419818F6204EDFF98AB4FAD739F877D65966C86B8DC40
+FBD89C099B73ACAAF2F2D5E20D0F5FA9923883E3F63957B51841D388FE2CD6F8
+F0612FF9FA959E433D57FDEC20B228E36EFF156005B05BB8569DD2E19569600F
+0C3CE43E83EB96418EE435B250317E847C11B08D170290260175204AA5EC12EC
+F240F8849A4F895218DC9F3B6A2D0962AF5F7B73C0B564AFE6C061D4DB822DCF
+5F13200370B2C4CFBE1A6DB68263D82B5B0E158BEE61DA05A8BFC628C180AA1D
+F54696C6D8E0019DA676109CD8F632A970DD8AF0D34D4F6A42609AE2519A9B9E
+196F2BD9795365653859DB15208BD2C4F959AE7F8FE125C12A8BD8FF33FF8541
+683D9F0946D5AAEF45E07C07AD5669DA0CCEB72755D154717E28E83ACA12961E
+E8247AE547E7F8BD569F7A61684F5DE0428794E5030257D6FA19B910F1C53570
+C5848F65DE29F831570990F115CFEE746BA382AAABFBA5B00622695A5AD93433
+35281DAFD35FDA10C0E18E0766AC20E285FD08A5D7E3EF09ECA0073B5202DAFA
+6D8379E16E7E8CF57126C8E806325BEE463BF1E8AF0192106649DEC01C0209AF
+931758740F1A86202C61EA2D5BF9A354AFE9549089C251EC253F508904199165
+7ED9214466AC0E13E6B931B590746DB2459F2C650F20855522B6797E6C834E82
+849921A71260C8F8FC9125C6F37C637D2C842CAE3383BB89F311F328AF677CC1
+4968B20E87AD40CF77A4D8A3977A65859E2B21C063C65D6D4219FDC09BFF02FC
+4658706C0557E1131F825E5BD81C617CD580B8E74910AD426B1F3AB577441C14
+27076F43AEE30F25F66AEB2E062437E525F1AE2248BCCDE588EA8CAAC2E90B41
+79C6A38572371B6BE820932F5A2A407066AA22B89C93C397B1D6ABE300A21764
+A76CFF239D12BA72D4A0A5E134E7EB97CB5775C3951760F289D285FB1F1DF74A
+CC5616AA41FE0453D3D673CBCDD9E683BB6EF0DF747044E42E010BC73B0E4E3E
+15E5CF2FF0B3B77396E36C92677056986C2A74895330BF0910E7A259253A10D4
+53BB6CC27630CA17DD4DFC32D3579A85F3D6471190D1C97485C43C1BD8BE4D5B
+04F3B73E37C0133074858D0634FE51F71B24097F0F8267230DAFCAEF31199B18
+1622FEA408B9B4238E9DF76B86A2860E6302CDA8963DB08B5F98C809FE29DA1C
+E3EC2FE320DA85730E55E8C5F0720B0AF122E657C84822ECAC24F8539F9B329F
+73050E345D0A139DC6F0CECAE6B955DBEEEAF6C6EA843FA4AC07C717E848103A
+AD0AD3D53A39582C09B0C6B9BD85476501948ABB1257A898A1CBE1264F419CC6
+2FB7764296CEA53648D3D814272B9A2B5C437A031D931EFEA4C733FA090DAF5D
+278183620051F0082ED8855F3D5E9ACF1FEC993A90227AE52135DCFAE7E0ABCC
+D0A700D72E6D410FCA09970B68DDAEA2DB5E875622968B6D8656F8EDDEF31274
+B8AF9BF3C386E212785473F984D479D941334B9495B809C333234E8BF18BF302
+C518269A0769DD1C19A70A5ED0809CD7E65617D13621B7C9C0EC476DD24557BB
+8A73075E4314EBF2B88217EAE34FBEBC6F4436032FA37C5EC9AE40649FD9121B
+C79D449AC261819EE76880DAB062A41F629AE40679F5D1D7A221FAE71CEE47C0
+775581EDF128EB6B3FDF09F9BFF79B7DE525E310AB6402F309EA78B714D00B11
+27C4470950BAFC5662D5F7198EEA29E0BDE602BBCF063DFAA7331474A167F929
+67AC368D06CE6A8518AA9A865AC5210AEE55B5BAE3EBB32A9202973DBD0A2256
+AEF7B78C18DA0320065AAAAF0CE99B274EDFDE18CAF94186CADC14B8B34DB56B
+6C1B9D6872896F423A511D5DABBC9CEB7401648C1696048276DC6F02527ADBBD
+8A40E4AA5D90F18F4D54DE98BE0AF4F422464D21E8A426ECD6E29CE4572428B1
+652F3F21FA99011840C74BC4541E74B0809D0AEEAAD5C4F1C560866EB94B841C
+7B2E5EC6EC0D16845E5DBAC9B76E267DD5D84D2DF134FAE603D150A67013989E
+EFC227FAC476ADD48CCAEB50A0177010BB71EDF13DF610C6F3ACECEFF2825CB2
+5BB00E1713956EB9F7B500FA238BDBFF7CC724CBE39348D6D2CEEDE29F855E9D
+AF6C811C33A48F6CAFEEFF538E7D210ACC4D0BA05EAE25F6017046D957FE9552
+66AB675734654B49CF3332EEC4AF3C3012C49DDFCE5A6638F005AF5E781564B1
+5F7D3436EA5E93742CB3BF5F2DB495CD9915727F57FC4B4064910D11A5311224
+C95ACAC2437C62B03B0237C8E67D174E22F0C05B20E22CC9EB0A985DF5D8A06E
+CD97655233FD8FEF5706CAA7DB42E4E93C84E187BAF0D0B77BCCA66C5A9FAA56
+C713152046D4EFE16DBFC8292D7E8CD967D0637C8EEA9CC6E9C10F21574D159E
+421FEBB91B4F3C7A631743EABD78AABDC777638F5C27A9E84C556182A6B44680
+4CFF19727F6A9F55714F6C601AAF37BA7DDF3BF05F38C9D78ADD2696DBB72F91
+CD05E7E8E28DA09EB1DB310E84E57D1443084B71A418D36EFFEBFF9B0B642796
+2DA2484BA8A682A32891AEDC7F214881B2C1214311F32BB9FF89D5E826A0F302
+320DB8C2AFF234E74FDAB4CF5CED068393EBEC5C2AA6856EB06C5209ED8A4638
+BD62BAB27975DD6D5AC341DA9534B67D1D0DEBE47FD2507BDAE067B033EDD2AB
+4F95D7E719F2FDE5C8AB3AFEE3D7692563A98DB61D860BC30FB50CA8D3BC2A8D
+98EF3502CC73B2E400BEF294AD0BE589153135E5F3FF29558AA402DB140B0F3E
+7532B013C7E49FBF01D49412D3CDBD5F3F2A88CC4F1A8BE8AA37732D4CC3C200
+DFF46BF6285EA28FE9099B83F80254B52BCC09625CB7B46E525532AED25EA4EA
+D1B8B9DFDA0953FEE0EAD4C453D54A3D8A20967EA01FF2577520883C21626E7D
+CE74BF83B1EA8BBD003C0C156FFE1A40291DBA1BD2903DF817A3F10D2A23E38A
+52D417CA3D6CEA45486AB0A44F430453F03BC55889D8EE56B4F9F6CBE8733162
+79F91A7420EF9BDA50799BE85F2BC8359848F87884E80BE28FC53769FA7AAF9A
+04DB7B236B530892F95EEFBE215970F9D49643F3F8E403F2B1BF5BDDAAFC0D3B
+E1588E9844E678C1EB0AEA37DAA4F7E7E994282F3A2B724695419C2158FE22DA
+47FEE0847BFBFA5EFD3ACC994D84A67984584DE14194D1C0B75835F2B1B3187B
+D445422C3293264AADDBDD7D7D12E5D32398C8A86E5C226DADF3F2A57CEAE431
+C35EDD579FF2387AAE5140C4A6AA9817CD846A41553B96107DEAF70DF965D382
+200BEE43AE4C5C81FE0E433D2CFB7FEE12DC776068269A0E57FAA239846F4111
+E2A21167E8586806E89B8A175CEBB4210CBDD4AFF9541809438DCFE21A53404D
+5ABDD8F8206C3DB6B5922355EE472DBB2B82F135130887633DE0AD06CDC5D83B
+03A5F344AE6F71A26FB37CB09E8AB8D6F7C3A6A80FA3AEA4C5EF315C9FCB8BED
+25E987BAB99207D62B67DBE2FE10D2B7BC906740896BB60636F9A76883DC6930
+8AA53B27C38E5344D04C4D41FEFB65AF21E72BC5679F954DADBBE17C816A7730
+0E6F819DFFAE64FC11ECB5797AACADCE677985655130FA294AF2F54FCD188E0C
+C925A344E93EF89E7873D8B89A9713B65BA5031310C23FA22060C6CDABA17601
+C16DD8CB4E7CF11087E5779CFDD902777F3733F989E2B8BE7952405F6EF8DC45
+002E86E34BDBB355D2D2F69C8162261F6EA65E6C023129FAD52EC5D0BE40C93F
+C3B82ED34D7D66CDA7736B6CD3CDCD54FE407EAE7F0DF72BEDA1D886D66AB9FC
+BAAFF994901A772BCFF6E9B74D4302EE2A42FE316E3D62FD28947FF4C24D6458
+98E47CD3BC7718E6605EFA419AAB4FA47DB60AE416E47DE534E0D27F01E597B5
+31BC63BF6BB2EA2CC0ADF0D4D65DACF00E814A2F43BDDD82AE26C169495AA88A
+B964EF8D821EAC19D79537B4C54292D96F0EB92D79E9C753EF8D0BA510F5C805
+C99FA4F5A02AA9211B828DDFEA3A007802C24FAC460E47C414EF76A43E89C03F
+2510E5C7AA88496A6F7FC7C76B38BC2BDB88C804A077C6C2457C28363CB383AC
+D0A7775C9D5BBC31F6EB9CD4D74A49A5B1B43A8A1ECA8C510564F954B411E341
+CB72EFE4059F520F5618F42ECEF3640E8D8A04A66A25DD22DCE8B27EA09D8289
+B6B657AC3B938F51525BC21693C71C2EA1FF6C6599B03BC18C37305ACD9E4D0D
+86EFC8803A7FFE120D4A78FBDF58FE8B3DBD4277A9324DB639C0F4DE5D315FCC
+12BC9C76767D02D0076FF1E628A02445B5EA434A1E62F70A9F68FF00B174AEA6
+4DCA2606C1EBFA388B480F310FC5AFE00AD76B66D9815B30EFEDEF50C779659B
+32A9FE03DAAFEE61673C4DBC8CC3B8E4896A4DD04809C49896E189CCF10DC876
+DA3AA77F11514011E4923B37604777D26A7A713C43182D4F2E65F2258C57E936
+5DCC38EEEC5F472BEB3D414327F3F0ED8F64DE2C4EE1FE29D89B458FDD631C39
+A3AD3FA18F4181F57A402F7B70717AED64A5ABA2788D5911363A29443B53B857
+5C03FA766939388C3E4217414072A274DD931316C88865677712B3D5BD08B5EE
+31828FB9447B2A4769EC44E0A23149547170693090FEE29EF7FA3E1813EEAAD3
+F84024D31527967E5B32029DF633F8DBDA684804BF27E380BE47EE4DC93B4631
+2F216FD5CA6FAA8FA131A981655ADE7177593D6D36669D8009593A8B0CAC7D6B
+90FA814CE606E39DAE568E8184B1ED0AEFF8F661EF0BCCFE2175410C83E8DC55
+E79D6BDF0142A8F2787284DE64DCE081D010E7691ADC1C8CDA4F1A07100380F7
+88451D918756E7BA821C5FE863BD24FC40509A4321A128A594F16DC44F8A9B09
+5ED8BA56742AFFE3D035C7D4AE99AEE9C47C0B3DE8B1B405692EBE6620E888FF
+586F99A2EB839A2254FDB6A8E20FB4707A96E5EA90CC8F24785CDE5F3CD5E96C
+6AFDF17B6D631B2AAA9B5286705C4639402044162CBB377D55C35F9269FCA54B
+295B303E8BFDEE9FA4CEEBDDADAF7DF36F4437E0767888D022BB1A9982BDF897
+2AED625CCDFF90BF6CC9861DF4C221222A3468DDECEDB61CF15919F1413AA68C
+BA836D85ECC0F105187A79E74461264712C7B4EBDE956A4A3427932617ADE2F4
+309A997793DCBBE5ACDA70FE87F8B6D5EBDF6B62F0F88FB31AA77DBDF2CB54BB
+3AAE3D5EED8F7E524E96B92572F96D4A6663A8593AE252F0E0B2C82A28925494
+1916268E1188FF78CCD6D032483CD96CE38339FC8C93FC3346C769CD784E1ECE
+B167D399367EA157C29634F7F491C69B2E4409E266244223E9EA76AA24FB054A
+767725CB3FC3544CA56F53D550C58BAA971C5583DF6DC0B71E44AE077D168D31
+BA6289A70BECB920BF4A5E1D5B4C8D9CE769B220B0EDA34C8FC5A4D7C4C0A34C
+53B62725EE9DED9AD1014A852AB01ED11F2D37E382D8F50710568E87A9962646
+93B8C5930F923FEEE910A2C7938E8C0FB114A5EF5F29E0191BDB916E80C5ED24
+5BEADF3FF1C1D289915EBF67CDBC8FEE20AA2C85F358B1F68F4235193DA8B929
+028D8F29E643C65EE0B340C2DD98C67AA4C1C134330C5D2C1F38CA5B44E6F20E
+9113386A3130AC621302ED0570548F0243860750D459E07882E3259F7835B477
+24ED78894AE10D23DB0018EEB07CA30149633B252B6BAD91BA0B249133DFA550
+D94E0DE1DF4BBBECA781F50A7425B3B813119B879804AF93E20FAE9065D5978D
+6550042EAC6893D0DB32133E9F6AAE0CDA18F2A8E791E419C5C06AF8A0C13ED0
+F70168D97EBBBFB3FADFEE3C13C832EE5C8CC45392EF22A5E189F6CC2FF7A3EA
+775ABFB45914561197B0565FB9252B6337C1037DA138254A4B2F14840FBCC0AF
+542909DB96C932D6278E7A794F5012A64E64E8BF6EFB4EAB0AA8A44CAC60A35C
+77ADEE41C593A3C05D4D696DF1505812ACFBA9E1F25145A65DF4746397F0507A
+B4F513BBE86125F0E56A8F3DCCA6B826D8EA7215E43F2F8386DE77D79F2DD2F4
+F16A5E6D2613C8C1D0BD228E463845C4564C1502EF6C6BC7D95CF703CE2E917A
+7BDA0F673D704787D615FEAA03D191675C7C42358ED76ED9D93F3B7DB3A80FF7
+6673E277FC1C076B045CD999AA9DC27C4395F9D9DD1E6CAE399E594951B00A29
+C58E2A51746E23D62056D217B8B153FD5EFB7431C1DE10B522A6554F4C867811
+D01A4182FA40ACC3A4434E47C7A7E13C4B17B2185BD7B9D4113BF6F100403BCF
+C97A296390E818A51BF6E8A32D8020CC9EABECCB19974FBCA71FEB111A97329E
+914DFEA6DF2E049887308EA04835DFF5F90C351096BD0CB54429D5E65E983F33
+C15673DA1682B05FA4F4FA25A9F2274D38BDF45EBAFEFCBB4101F05C1176A320
+2758C29993930FC53EAF2BD7827ADA365E3903FE814BA38EC0E5D84653C36FED
+9A12C08EFB4EE59A1FCC0E685307CA47ECC566B35E1AAE63294E3F1290EC7C1C
+9879AB40340A18005F32671D944F1EC41F37583F853C95A7F38263D3EE46601B
+68906A83BD9A432AB57D00D2AB94AC898C8871A760495833B95FA8C3954E3117
+B04B87A8D2F64CB4AE9F03F0700336FF1EA7FB63CDBA421830555C4078DB89BB
+96D258A0357CA7B0510FB866A78EEE6B7F291BE420E18B277C56D9689D2F268E
+C3A9CE24E41B40937122EC9693F6DD05A37D86D66D9B2A7C3B334811EAA7F7CD
+14161669DD08D5BC7D5F027DFA40DE592AADF03220EE98F7B2EB0CDAEFD4D025
+5E940DAEAE655918F5BAA8AC1ECEC3BDD8FAEE51E6C860B21A91B5EC575170A3
+68A57C9D387FDDC789F917E6C8F27A125F8DF09ED2D5C4E6146CD1A6D40C2D59
+6D135D87CC210DC862F7E5A5EAEBD8ED41D349E7020941A331354035D4578717
+587BB03082376F40AF39176484396FE5DF2665CF0F8CEDB45EB8EA2470EE975D
+44D12FE5FB5318BD7B467453B15F3B34F44329630F208E85DEAFC6FCC0D4629E
+646D4C193990BD338CA85DC0567A0C900E886417B7463D743275FD8A2E9F80BE
+A024A1EDB474BA3D42D4F511EAACE9B6B3C3CF8FC4A4CA21214C9A6D5F3C8254
+2C5E34CC6DFEFA18D15B86A304545156DA9751E9E91389BE5748BDAB0622A0F7
+AFBD7537F78471FBFF2E23D9230660477424B0C0FEE8072E8F6D09DE546C508D
+C7A9BF7490BFAE0649EA4C0B47AFF552463A56911C0E38A7BA6BE8374C71E9D2
+CDED7009CA1E07E8CB5BD42C47B9515135DB078A4921930F0943CD9FD7A34D34
+FAEABEA51330C7EB04E8F5701B51176FCADADD9BA11007CFA44084BC7FCD8F18
+78AB1313AF8B7B6248D1FE6002AE74AD685F30819293EB9A46C3C36F0BF8C556
+0E795C6F342D5506A7108EF2BA214D471199EA69FD048DB5923047FC9F286C7A
+4502A66420009608AA93F7335BCD269C1F49A1733275DFB0F2CD2815C6A460F8
+E270D47B76030942B8FAA394FEA3E90A49F61891F9B42AF87CEB20F6A53564CE
+B16D50CBDA7768B1D346CFEC38B1DA067AA8D4C870B0FC17ED10053EE2CC5ED2
+04FC4E384E535483895A5DBB6152790CC9468D745EE48FAD5927D7D5E575561D
+5DAA69C4D6121F001547C860648EF16DD4D66988CECB6DDDC9E7C9D64514C0AA
+CE40CEE578D9E8F1CC632629AD3DB1BE2453F30A3F0403A4F769FFA960DFC64F
+01B08B7F0F4D94E662C79E1608C9AD1919A9DACCE2E670
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000000000000000000000
@@ -7597,9 +7601,9 @@ TeXDict begin 40258431 52099146 1000 600 600 (bashref.dvi)
 48 48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51
 45 28 40 51 40 51 45 7[68 68 93 1[68 66 51 67 1[62 71
 68 83 57 71 1[33 68 71 59 62 69 66 64 68 12[45 45 45
-45 3[30 8[45 21[76 1[51 53 11[{}57 90.9091 /CMSL10 rf
-/Fs 132[67 1[71 71 97 71 75 52 53 55 1[75 67 75 112 37
-71 41 37 75 67 41 61 75 60 75 65 3[37 1[37 1[102 102
+45 3[30 8[45 2[25 18[76 1[51 53 11[{}58 90.9091 /CMSL10
+rf /Fs 132[67 1[71 71 97 71 75 52 53 55 1[75 67 75 112
+37 71 41 37 75 67 41 61 75 60 75 65 3[37 1[37 1[102 102
 139 102 103 94 75 100 101 92 101 105 128 81 105 69 50
 105 106 85 88 103 97 96 102 105 64 4[37 67 67 67 67 67
 67 67 67 67 67 1[37 1[37 1[67 5[67 112 1[41 20[75 78
@@ -7634,7 +7638,7 @@ ifelse
 TeXDict begin 1 0 bop 150 1318 a Fv(Bash)64 b(Reference)j(Man)-5
 b(ual)p 150 1385 3600 34 v 2361 1481 a Fu(Reference)31
 b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(5.0,)g(for)f
-Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.0.)3364 1697 y(Ma)m(y)g(2019)150
+Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.0.)3350 1697 y(June)e(2019)150
 4927 y Fs(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
@@ -7642,16 +7646,15 @@ b(oundation)p 150 5141 3600 17 v eop end
 %%Page: 2 2
 TeXDict begin 2 1 bop 150 4279 a Fu(This)35 b(text)h(is)g(a)g(brief)f
 (description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
-(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.0,)c(20)f(Ma)m(y)g
-(2019\).)150 4523 y(This)k(is)h(Edition)f(5.0,)k(last)d(up)s(dated)e
-(20)j(Ma)m(y)g(2019,)i(of)c Fr(The)h(GNU)g(Bash)g(Reference)g(Man)m
-(ual)p Fu(,)i(for)150 4633 y Ft(Bash)p Fu(,)29 b(V)-8
-b(ersion)31 b(5.0.)150 4767 y(Cop)m(yrigh)m(t)602 4764
-y(c)577 4767 y Fq(\015)f Fu(1988{2018)35 b(F)-8 b(ree)31
-b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 4902
-y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
-b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
-(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.0,)c(12)f(June)e
+(2019\).)150 4523 y(This)34 b(is)h(Edition)g(5.0,)i(last)e(up)s(dated)f
+(12)h(June)f(2019,)k(of)d Fr(The)f(GNU)i(Bash)f(Reference)g(Man)m(ual)p
+Fu(,)i(for)150 4633 y Ft(Bash)p Fu(,)29 b(V)-8 b(ersion)31
+b(5.0.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767
+y Fq(\015)f Fu(1988{2018)35 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8
+b(oundation,)31 b(Inc.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h
+(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s
+(cumen)m(t)f(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
 b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43
 b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8
@@ -15813,86 +15816,87 @@ b(Job)30 b(Con)m(trol)2526 b(106)630 299 y Ft(-n)384
 b Fu(Displa)m(y)26 b(information)f(only)h(ab)s(out)e(jobs)h(that)g(ha)m
 (v)m(e)i(c)m(hanged)e(status)h(since)1110 408 y(the)31
 b(user)e(w)m(as)i(last)g(noti\014ed)f(of)h(their)f(status.)630
-570 y Ft(-p)384 b Fu(List)31 b(only)f(the)h(pro)s(cess)f
+560 y Ft(-p)384 b Fu(List)31 b(only)f(the)h(pro)s(cess)f
 Fm(id)g Fu(of)h(the)f(job's)g(pro)s(cess)g(group)g(leader.)630
-732 y Ft(-r)384 b Fu(Displa)m(y)32 b(only)e(running)f(jobs.)630
-894 y Ft(-s)384 b Fu(Displa)m(y)32 b(only)e(stopp)s(ed)f(jobs.)630
-1056 y(If)23 b Fr(jobsp)s(ec)28 b Fu(is)23 b(giv)m(en,)i(output)e(is)g
+711 y Ft(-r)384 b Fu(Displa)m(y)32 b(only)e(running)f(jobs.)630
+862 y Ft(-s)384 b Fu(Displa)m(y)32 b(only)e(stopp)s(ed)f(jobs.)630
+1014 y(If)23 b Fr(jobsp)s(ec)28 b Fu(is)23 b(giv)m(en,)i(output)e(is)g
 (restricted)h(to)g(information)f(ab)s(out)g(that)h(job.)37
-b(If)23 b Fr(jobsp)s(ec)630 1165 y Fu(is)30 b(not)h(supplied,)e(the)i
-(status)g(of)f(all)h(jobs)f(is)h(listed.)630 1301 y(If)k(the)g
+b(If)23 b Fr(jobsp)s(ec)630 1123 y Fu(is)30 b(not)h(supplied,)e(the)i
+(status)g(of)f(all)h(jobs)f(is)h(listed.)630 1254 y(If)k(the)g
 Ft(-x)f Fu(option)i(is)f(supplied,)g Ft(jobs)f Fu(replaces)i(an)m(y)f
 Fr(jobsp)s(ec)40 b Fu(found)34 b(in)h Fr(command)j Fu(or)630
-1410 y Fr(argumen)m(ts)j Fu(with)c(the)h(corresp)s(onding)e(pro)s(cess)
+1363 y Fr(argumen)m(ts)j Fu(with)c(the)h(corresp)s(onding)e(pro)s(cess)
 h(group)f Fm(id)p Fu(,)k(and)c(executes)j Fr(command)p
-Fu(,)630 1520 y(passing)30 b(it)h Fr(argumen)m(t)r Fu(s,)g(returning)f
-(its)g(exit)i(status.)150 1682 y Ft(kill)870 1817 y(kill)47
+Fu(,)630 1473 y(passing)30 b(it)h Fr(argumen)m(t)r Fu(s,)g(returning)f
+(its)g(exit)i(status.)150 1624 y Ft(kill)870 1755 y(kill)47
 b([-s)g Fj(sigspec)p Ft(])e([-n)i Fj(signum)p Ft(])f([-)p
-Fj(sigspec)p Ft(])f Fj(jobspec)h Ft(or)h Fj(pid)870 1927
-y Ft(kill)g(-l|-L)f([)p Fj(exit_status)p Ft(])630 2063
+Fj(sigspec)p Ft(])f Fj(jobspec)h Ft(or)h Fj(pid)870 1864
+y Ft(kill)g(-l|-L)f([)p Fj(exit_status)p Ft(])630 1995
 y Fu(Send)22 b(a)i(signal)g(sp)s(eci\014ed)f(b)m(y)g
 Fr(sigsp)s(ec)29 b Fu(or)24 b Fr(sign)m(um)f Fu(to)h(the)g(pro)s(cess)f
-(named)g(b)m(y)g(job)g(sp)s(eci\014-)630 2172 y(cation)k
+(named)g(b)m(y)g(job)g(sp)s(eci\014-)630 2104 y(cation)k
 Fr(jobsp)s(ec)j Fu(or)25 b(pro)s(cess)g Fm(id)h Fr(pid)p
 Fu(.)38 b Fr(sigsp)s(ec)31 b Fu(is)25 b(either)h(a)g(case-insensitiv)m
-(e)i(signal)e(name)630 2282 y(suc)m(h)37 b(as)g Ft(SIGINT)f
+(e)i(signal)e(name)630 2214 y(suc)m(h)37 b(as)g Ft(SIGINT)f
 Fu(\(with)h(or)g(without)g(the)g Ft(SIG)g Fu(pre\014x\))f(or)h(a)h
-(signal)g(n)m(um)m(b)s(er;)h Fr(sign)m(um)630 2392 y
+(signal)g(n)m(um)m(b)s(er;)h Fr(sign)m(um)630 2324 y
 Fu(is)g(a)f(signal)i(n)m(um)m(b)s(er.)63 b(If)39 b Fr(sigsp)s(ec)44
 b Fu(and)38 b Fr(sign)m(um)g Fu(are)h(not)g(presen)m(t,)h
-Ft(SIGTERM)d Fu(is)h(used.)630 2501 y(The)27 b Ft(-l)h
+Ft(SIGTERM)d Fu(is)h(used.)630 2433 y(The)27 b Ft(-l)h
 Fu(option)g(lists)h(the)f(signal)h(names.)39 b(If)28
 b(an)m(y)g(argumen)m(ts)h(are)f(supplied)f(when)g Ft(-l)g
-Fu(is)630 2611 y(giv)m(en,)32 b(the)g(names)e(of)i(the)f(signals)g
+Fu(is)630 2543 y(giv)m(en,)32 b(the)g(names)e(of)i(the)f(signals)g
 (corresp)s(onding)f(to)i(the)f(argumen)m(ts)g(are)h(listed,)g(and)630
-2720 y(the)c(return)f(status)h(is)g(zero.)41 b Fr(exit)p
-1796 2720 28 4 v 41 w(status)32 b Fu(is)c(a)g(n)m(um)m(b)s(er)f(sp)s
-(ecifying)g(a)i(signal)f(n)m(um)m(b)s(er)f(or)630 2830
+2652 y(the)c(return)f(status)h(is)g(zero.)41 b Fr(exit)p
+1796 2652 28 4 v 41 w(status)32 b Fu(is)c(a)g(n)m(um)m(b)s(er)f(sp)s
+(ecifying)g(a)i(signal)f(n)m(um)m(b)s(er)f(or)630 2762
 y(the)h(exit)h(status)g(of)f(a)h(pro)s(cess)e(terminated)i(b)m(y)f(a)h
 (signal.)40 b(The)28 b Ft(-L)g Fu(option)g(is)g(equiv)-5
-b(alen)m(t)630 2939 y(to)34 b Ft(-l)p Fu(.)47 b(The)32
+b(alen)m(t)630 2872 y(to)34 b Ft(-l)p Fu(.)47 b(The)32
 b(return)g(status)h(is)g(zero)g(if)g(at)g(least)h(one)f(signal)h(w)m
-(as)f(successfully)g(sen)m(t,)h(or)630 3049 y(non-zero)d(if)f(an)h
+(as)f(successfully)g(sen)m(t,)h(or)630 2981 y(non-zero)d(if)f(an)h
 (error)f(o)s(ccurs)g(or)g(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f
-(encoun)m(tered.)150 3211 y Ft(wait)870 3346 y(wait)47
+(encoun)m(tered.)150 3133 y Ft(wait)870 3263 y(wait)47
 b([-fn])f([)p Fj(jobspec)g Ft(or)h Fj(pid)g Ft(...)o(])630
-3482 y Fu(W)-8 b(ait)28 b(un)m(til)f(the)f(c)m(hild)h(pro)s(cess)f(sp)s
+3393 y Fu(W)-8 b(ait)28 b(un)m(til)f(the)f(c)m(hild)h(pro)s(cess)f(sp)s
 (eci\014ed)g(b)m(y)g(eac)m(h)h(pro)s(cess)f Fm(id)h Fr(pid)i
-Fu(or)d(job)g(sp)s(eci\014cation)630 3592 y Fr(jobsp)s(ec)40
+Fu(or)d(job)g(sp)s(eci\014cation)630 3503 y Fr(jobsp)s(ec)40
 b Fu(exits)35 b(and)f(return)g(the)g(exit)i(status)f(of)g(the)g(last)g
-(command)f(w)m(aited)i(for.)53 b(If)35 b(a)630 3701 y(job)g(sp)s(ec)f
+(command)f(w)m(aited)i(for.)53 b(If)35 b(a)630 3613 y(job)g(sp)s(ec)f
 (is)h(giv)m(en,)i(all)f(pro)s(cesses)f(in)f(the)h(job)g(are)g(w)m
 (aited)h(for.)54 b(If)35 b(no)f(argumen)m(ts)i(are)630
-3811 y(giv)m(en,)d(all)f(curren)m(tly)f(activ)m(e)i(c)m(hild)f(pro)s
-(cesses)f(are)g(w)m(aited)h(for,)g(and)e(the)i(return)e(status)630
-3921 y(is)25 b(zero.)40 b(If)24 b(the)i Ft(-n)e Fu(option)h(is)g
-(supplied,)g Ft(wait)f Fu(w)m(aits)i(for)f(a)g(single)h(job)f(to)h
-(terminate)g(and)630 4030 y(returns)33 b(its)j(exit)f(status.)54
-b(Supplying)33 b(the)i Ft(-f)f Fu(option,)j(when)c(job)i(con)m(trol)h
-(is)f(enabled,)630 4140 y(forces)j Ft(wait)e Fu(to)j(w)m(ait)f(for)g
-(eac)m(h)g Fr(pid)j Fu(or)c Fr(jobsp)s(ec)43 b Fu(to)38
-b(terminate)h(b)s(efore)e(returning)g(its)630 4249 y(status,)f(in)m
-(tead)f(of)g(returning)f(when)f(it)i(c)m(hanges)h(status.)53
-b(If)34 b(neither)h Fr(jobsp)s(ec)k Fu(nor)34 b Fr(pid)630
-4359 y Fu(sp)s(eci\014es)c(an)g(activ)m(e)j(c)m(hild)e(pro)s(cess)f(of)
-g(the)h(shell,)f(the)h(return)e(status)i(is)f(127.)150
-4521 y Ft(disown)870 4656 y(disown)46 b([-ar])g([-h])h([)p
-Fj(jobspec)f Ft(...)h(|)g Fj(pid)g Ft(...)g(])630 4792
-y Fu(Without)33 b(options,)h(remo)m(v)m(e)g(eac)m(h)f
-Fr(jobsp)s(ec)38 b Fu(from)32 b(the)h(table)g(of)g(activ)m(e)h(jobs.)47
-b(If)32 b(the)h Ft(-h)630 4902 y Fu(option)j(is)f(giv)m(en,)i(the)f
-(job)f(is)g(not)g(remo)m(v)m(ed)h(from)f(the)g(table,)j(but)c(is)i
-(mark)m(ed)f(so)g(that)630 5011 y Ft(SIGHUP)e Fu(is)j(not)f(sen)m(t)h
-(to)g(the)f(job)g(if)g(the)g(shell)h(receiv)m(es)h(a)e
-Ft(SIGHUP)p Fu(.)54 b(If)34 b Fr(jobsp)s(ec)40 b Fu(is)c(not)630
-5121 y(presen)m(t,)41 b(and)d(neither)h(the)g Ft(-a)f
-Fu(nor)g(the)h Ft(-r)f Fu(option)h(is)g(supplied,)g(the)g(curren)m(t)g
-(job)f(is)630 5230 y(used.)g(If)25 b(no)h Fr(jobsp)s(ec)k
-Fu(is)c(supplied,)f(the)h Ft(-a)f Fu(option)h(means)g(to)g(remo)m(v)m
-(e)h(or)e(mark)h(all)g(jobs;)630 5340 y(the)31 b Ft(-r)e
-Fu(option)i(without)g(a)f Fr(jobsp)s(ec)36 b Fu(argumen)m(t)30
-b(restricts)h(op)s(eration)g(to)g(running)e(jobs.)p eop
-end
+3722 y(giv)m(en,)28 b Ft(wait)c Fu(w)m(aits)j(for)e(all)i(running)c
+(bac)m(kground)j(jobs)f(and)g(the)h(last-executed)h(pro)s(cess)630
+3832 y(substitution,)i(if)g(its)h(pro)s(cess)f(id)g(is)g(the)g(same)h
+(as)f Fr($!)p Fu(,)i(and)d(the)h(return)g(status)g(is)g(zero.)41
+b(If)630 3941 y(the)32 b Ft(-n)e Fu(option)i(is)g(supplied,)e
+Ft(wait)g Fu(w)m(aits)j(for)e(a)h(single)g(job)f(to)h(terminate)g(and)f
+(returns)630 4051 y(its)39 b(exit)h(status.)65 b(Supplying)38
+b(the)g Ft(-f)g Fu(option,)k(when)37 b(job)i(con)m(trol)h(is)f
+(enabled,)h(forces)630 4161 y Ft(wait)33 b Fu(to)j(w)m(ait)g(for)e(eac)
+m(h)i Fr(pid)h Fu(or)e Fr(jobsp)s(ec)k Fu(to)d(terminate)f(b)s(efore)g
+(returning)e(its)i(status,)630 4270 y(in)m(tead)c(of)g(returning)e
+(when)h(it)h(c)m(hanges)g(status.)41 b(If)30 b(neither)h
+Fr(jobsp)s(ec)k Fu(nor)30 b Fr(pid)j Fu(sp)s(eci\014es)630
+4380 y(an)d(activ)m(e)j(c)m(hild)e(pro)s(cess)f(of)g(the)h(shell,)f
+(the)h(return)e(status)i(is)f(127.)150 4531 y Ft(disown)870
+4662 y(disown)46 b([-ar])g([-h])h([)p Fj(jobspec)f Ft(...)h(|)g
+Fj(pid)g Ft(...)g(])630 4792 y Fu(Without)33 b(options,)h(remo)m(v)m(e)
+g(eac)m(h)f Fr(jobsp)s(ec)38 b Fu(from)32 b(the)h(table)g(of)g(activ)m
+(e)h(jobs.)47 b(If)32 b(the)h Ft(-h)630 4902 y Fu(option)j(is)f(giv)m
+(en,)i(the)f(job)f(is)g(not)g(remo)m(v)m(ed)h(from)f(the)g(table,)j
+(but)c(is)i(mark)m(ed)f(so)g(that)630 5011 y Ft(SIGHUP)e
+Fu(is)j(not)f(sen)m(t)h(to)g(the)f(job)g(if)g(the)g(shell)h(receiv)m
+(es)h(a)e Ft(SIGHUP)p Fu(.)54 b(If)34 b Fr(jobsp)s(ec)40
+b Fu(is)c(not)630 5121 y(presen)m(t,)41 b(and)d(neither)h(the)g
+Ft(-a)f Fu(nor)g(the)h Ft(-r)f Fu(option)h(is)g(supplied,)g(the)g
+(curren)m(t)g(job)f(is)630 5230 y(used.)g(If)25 b(no)h
+Fr(jobsp)s(ec)k Fu(is)c(supplied,)f(the)h Ft(-a)f Fu(option)h(means)g
+(to)g(remo)m(v)m(e)h(or)e(mark)h(all)g(jobs;)630 5340
+y(the)31 b Ft(-r)e Fu(option)i(without)g(a)f Fr(jobsp)s(ec)36
+b Fu(argumen)m(t)30 b(restricts)h(op)s(eration)g(to)g(running)e(jobs.)p
+eop end
 %%Page: 107 113
 TeXDict begin 107 112 bop 150 -116 a Fu(Chapter)30 b(7:)41
 b(Job)30 b(Con)m(trol)2526 b(107)150 299 y Ft(suspend)870
index 8cff362f281f9f61ea494403c0dffcd9ca44b790..f115484c3f030d56a73536d77f70c391dbb954ed 100644 (file)
@@ -8117,8 +8117,11 @@ Wait until the child process specified by each process @sc{id} @var{pid}
 or job specification @var{jobspec} exits and return the exit status of the
 last command waited for.
 If a job spec is given, all processes in the job are waited for.
-If no arguments are given, all currently active child processes are
-waited for, and the return status is zero.
+If no arguments are given,
+@code{wait} waits for all running background jobs and
+the last-executed process substitution, if its process id is the same as
+@var{$!},
+and the return status is zero.
 If the @option{-n} option is supplied, @code{wait} waits for a single job
 to terminate and returns its exit status.
 Supplying the @option{-f} option, when job control is enabled,
index 93c0d0be6b605665cafc013fec662a68f6fae753..6cdf6e4818f327abeedc9875b0a34118b2bee6fe 100644 (file)
@@ -1615,17 +1615,18 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               Return a status of 0 (true) or 1 (false) depending on the evalu-
               ation of the conditional expression _\be_\bx_\bp_\br.  Each operator and op-
               erand  must be a separate argument.  Expressions are composed of
-              the primaries described  above  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL  E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
-              t\bte\bes\bst\bt  does not accept any options, nor does it accept and ignore
-              an argument of -\b--\b- as signifying the end of options.
+              the primaries described in the b\bba\bas\bsh\bh  manual  page  under  C\bCO\bON\bND\bDI\bI-\b-
+              T\bTI\bIO\bON\bNA\bAL\bL  E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.  t\bte\bes\bst\bt does not accept any options, nor does
+              it accept and ignore an argument of -\b--\b- as signifying the end  of
+              options.
 
-              Expressions may  be  combined  using  the  following  operators,
+              Expressions  may  be  combined  using  the  following operators,
               listed  in  decreasing  order  of  precedence.   The  evaluation
-              depends on the number of arguments; see below.  Operator  prece-
+              depends  on the number of arguments; see below.  Operator prece-
               dence is used when there are five or more arguments.
               !\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
               (\b( _\be_\bx_\bp_\br )\b)
-                     Returns  the value of _\be_\bx_\bp_\br.  This may be used to override
+                     Returns the value of _\be_\bx_\bp_\br.  This may be used to  override
                      the normal precedence of operators.
               _\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
                      True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
@@ -1642,120 +1643,120 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
                      null.
               2 arguments
                      If the first argument is !\b!, the expression is true if and
-                     only  if the second argument is null.  If the first argu-
-                     ment is one of the  unary  conditional  operators  listed
-                     above  under  C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL  E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
+                     only if the second argument is null.  If the first  argu-
+                     ment  is  one  of  the unary conditional operators listed
+                     above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS,  the  expression  is
                      true if the unary test is true.  If the first argument is
                      not a valid unary conditional operator, the expression is
                      false.
               3 arguments
                      The following conditions are applied in the order listed.
-                     If  the  second argument is one of the binary conditional
+                     If the second argument is one of the  binary  conditional
                      operators listed above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
                      result of the expression is the result of the binary test
-                     using the first and third arguments as operands.  The  -\b-a\ba
-                     and  -\b-o\bo  operators  are  considered binary operators when
-                     there are three arguments.  If the first argument  is  !\b!,
-                     the  value is the negation of the two-argument test using
+                     using  the first and third arguments as operands.  The -\b-a\ba
+                     and -\b-o\bo operators are  considered  binary  operators  when
+                     there  are  three arguments.  If the first argument is !\b!,
+                     the value is the negation of the two-argument test  using
                      the second and third arguments.  If the first argument is
                      exactly (\b( and the third argument is exactly )\b), the result
-                     is the one-argument test of the second argument.   Other-
+                     is  the one-argument test of the second argument.  Other-
                      wise, the expression is false.
               4 arguments
                      If the first argument is !\b!, the result is the negation of
-                     the three-argument expression composed of  the  remaining
+                     the  three-argument  expression composed of the remaining
                      arguments.  Otherwise, the expression is parsed and eval-
-                     uated according to  precedence  using  the  rules  listed
+                     uated  according  to  precedence  using  the rules listed
                      above.
               5 or more arguments
-                     The  expression  is  parsed  and  evaluated  according to
+                     The expression  is  parsed  and  evaluated  according  to
                      precedence using the rules listed above.
 
-              When used with t\bte\bes\bst\bt or [\b[, the <\b< and  >\b>  operators  sort  lexico-
+              When  used  with  t\bte\bes\bst\bt  or [\b[, the <\b< and >\b> operators sort lexico-
               graphically using ASCII ordering.
 
-       t\bti\bim\bme\bes\bs  Print  the  accumulated  user and system times for the shell and
+       t\bti\bim\bme\bes\bs  Print the accumulated user and system times for  the  shell  and
               for processes run from the shell.  The return status is 0.
 
        t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\br_\bg] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
-              The command _\ba_\br_\bg is to  be  read  and  executed  when  the  shell
-              receives  signal(s)  _\bs_\bi_\bg_\bs_\bp_\be_\bc.   If _\ba_\br_\bg is absent (and there is a
-              single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified  signal  is  reset  to  its
-              original  disposition  (the  value  it  had upon entrance to the
-              shell).  If _\ba_\br_\bg is the null string the signal specified by  each
-              _\bs_\bi_\bg_\bs_\bp_\be_\b is ignored by the shell and by the commands it invokes.
-              If _\ba_\br_\bg is not present and -\b-p\bp has been supplied,  then  the  trap
-              commands  associated  with  each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are displayed.  If no
-              arguments are supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp  prints  the
-              list  of  commands  associated  with each signal.  The -\b-l\bl option
-              causes the shell to print a list of signal names and their  cor-
-              responding  numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal name
-              defined in <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal  number.   Signal  names  are
+              The  command  _\ba_\br_\bg  is  to  be  read  and executed when the shell
+              receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc.  If _\ba_\br_\bg is absent (and  there  is  a
+              single  _\bs_\bi_\bg_\bs_\bp_\be_\bc)  or  -\b-,  each  specified signal is reset to its
+              original disposition (the value it  had  upon  entrance  to  the
+              shell).   If _\ba_\br_\bg is the null string the signal specified by each
+              _\bs_\bi_\bg_\bs_\bp_\be_\bis ignored by the shell and by the commands it  invokes.
+              If  _\ba_\br_\bg  is  not present and -\b-p\bp has been supplied, then the trap
+              commands associated with each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  are  displayed.   If  no
+              arguments  are  supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
+              list of commands associated with each  signal.   The  -\b-l\b option
+              causes  the shell to print a list of signal names and their cor-
+              responding numbers.   Each  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  either  a  signal  name
+              defined  in  <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>,  or  a signal number.  Signal names are
               case insensitive and the S\bSI\bIG\bG prefix is optional.
 
-              If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit
-              from the shell.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is  exe-
-              cuted  before  every  _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command,
-              _\bs_\be_\bl_\be_\bc_\bcommand, every arithmetic _\bf_\bo_\br  command,  and  before  the
-              first  command  executes  in a shell function (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
-              above).  Refer to the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to  the
+              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg  is  executed  on  exit
+              from  the shell.  If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is exe-
+              cuted before every _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br  command,  _\bc_\ba_\bs_\b command,
+              _\bs_\be_\bl_\be_\bc_\b command,  every  arithmetic  _\bf_\bo_\br command, and before the
+              first command executes in a shell function  (see  S\bSH\bHE\bEL\bLL\b G\bGR\bRA\bAM\bMM\bMA\bAR\bR
+              above).   Refer to the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the
               s\bsh\bho\bop\bpt\bt builtin for details of its effect on the D\bDE\bEB\bBU\bUG\bG trap.  If a
               _\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is executed each time a shell
               function or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins fin-
               ishes executing.
 
-              If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR, the command  _\ba_\br_\bg  is  executed  whenever  a
+              If  a  _\bs_\bi_\bg_\bs_\bp_\be_\bc  is  E\bER\bRR\bR,  the command _\ba_\br_\bg is executed whenever a
               pipeline (which may consist of a single simple command), a list,
               or a compound command returns a non-zero exit status, subject to
-              the  following  conditions.  The E\bER\bRR\bR trap is not executed if the
+              the following conditions.  The E\bER\bRR\bR trap is not executed  if  the
               failed command is part of the command list immediately following
-              a  w\bwh\bhi\bil\ble\be  or u\bun\bnt\bti\bil\bl keyword, part of the test in an _\bi_\bf statement,
+              a w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword, part of the test in an  _\bi_\b statement,
               part of a command executed in a &\b&&\b& or |\b||\b| list except the command
-              following  the final &\b&&\b& or |\b||\b|, any command in a pipeline but the
-              last, or if the command's return value is being  inverted  using
-              !\b!.   These  are  the  same conditions obeyed by the e\ber\brr\bre\bex\bxi\bit\bt (-\b-e\be)
+              following the final &\b&&\b& or |\b||\b|, any command in a pipeline but  the
+              last,  or  if the command's return value is being inverted using
+              !\b!.  These are the same conditions obeyed  by  the  e\ber\brr\bre\bex\bxi\bit\b (-\b-e\be)
               option.
 
-              Signals ignored upon entry to the shell  cannot  be  trapped  or
-              reset.   Trapped signals that are not being ignored are reset to
+              Signals  ignored  upon  entry  to the shell cannot be trapped or
+              reset.  Trapped signals that are not being ignored are reset  to
               their original values in a subshell or subshell environment when
-              one  is  created.   The return status is false if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is
+              one is created.  The return status is false if  any  _\bs_\bi_\bg_\bs_\bp_\be_\b is
               invalid; otherwise t\btr\bra\bap\bp returns true.
 
        t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
-              With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted  if
+              With  no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
               used as a command name.  If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
-              string which is one of _\ba_\bl_\bi_\ba_\bs,  _\bk_\be_\by_\bw_\bo_\br_\bd,  _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn,  _\bb_\bu_\bi_\bl_\bt_\bi_\bn,  or
-              _\bf_\bi_\bl_\b if  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word, function,
-              builtin, or disk file, respectively.  If the _\bn_\ba_\bm_\be is not  found,
-              then  nothing  is  printed,  and  an  exit  status  of  false is
-              returned.  If the -\b-p\bp option is used,  t\bty\byp\bpe\be  either  returns  the
+              string  which  is  one  of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
+              _\bf_\bi_\bl_\bif  _\bn_\ba_\bm_\be  is  an  alias,  shell  reserved  word,  function,
+              builtin,  or disk file, respectively.  If the _\bn_\ba_\bm_\be is not found,
+              then nothing  is  printed,  and  an  exit  status  of  false  is
+              returned.   If  the  -\b-p\bp  option is used, t\bty\byp\bpe\be either returns the
               name of the disk file that would be executed if _\bn_\ba_\bm_\be were speci-
               fied as a command name, or nothing if ``type -t name'' would not
-              return  _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be,
+              return _\bf_\bi_\bl_\be.  The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each  _\bn_\ba_\bm_\be,
               even if ``type -t name'' would not return _\bf_\bi_\bl_\be.  If a command is
               hashed, -\b-p\bp and -\b-P\bP print the hashed value, which is not necessar-
-              ily the file that appears first in P\bPA\bAT\bTH\bH.  If the  -\b-a\ba  option  is
-              used,  t\bty\byp\bpe\be  prints all of the places that contain an executable
+              ily  the  file  that appears first in P\bPA\bAT\bTH\bH.  If the -\b-a\ba option is
+              used, t\bty\byp\bpe\be prints all of the places that contain  an  executable
               named _\bn_\ba_\bm_\be.  This includes aliases and functions, if and only if
               the -\b-p\bp option is not also used.  The table of hashed commands is
-              not consulted when using -\b-a\ba.  The  -\b-f\bf  option  suppresses  shell
+              not  consulted  when  using  -\b-a\ba.  The -\b-f\bf option suppresses shell
               function lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin.  t\bty\byp\bpe\be returns true
               if all of the arguments are found, false if any are not found.
 
        u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bSa\bab\bbc\bcd\bde\bef\bfi\bik\bkl\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bxP\bPT\bT [_\bl_\bi_\bm_\bi_\bt]]
-              Provides control over the resources available to the  shell  and
-              to  processes started by it, on systems that allow such control.
+              Provides  control  over the resources available to the shell and
+              to processes started by it, on systems that allow such  control.
               The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
-              for  the  given resource.  A hard limit cannot be increased by a
-              non-root user once it is set; a soft limit may be  increased  up
-              to  the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is speci-
+              for the given resource.  A hard limit cannot be increased  by  a
+              non-root  user  once it is set; a soft limit may be increased up
+              to the value of the hard limit.  If neither -\b-H\bH nor -\b-S\bS is  speci-
               fied, both the soft and hard limits are set.  The value of _\bl_\bi_\bm_\bi_\bt
               can be a number in the unit specified for the resource or one of
               the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
-              current  hard  limit,  the  current  soft  limit,  and no limit,
-              respectively.  If _\bl_\bi_\bm_\bi_\bt is omitted, the  current  value  of  the
-              soft  limit  of the resource is printed, unless the -\b-H\bH option is
+              current hard limit,  the  current  soft  limit,  and  no  limit,
+              respectively.   If  _\bl_\bi_\bm_\bi_\bt  is  omitted, the current value of the
+              soft limit of the resource is printed, unless the -\b-H\bH  option  is
               given.  When more than one resource is specified, the limit name
               and unit are printed before the value.  Other options are inter-
               preted as follows:
@@ -1764,12 +1765,12 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-c\bc     The maximum size of core files created
               -\b-d\bd     The maximum size of a process's data segment
               -\b-e\be     The maximum scheduling priority ("nice")
-              -\b-f\bf     The maximum size of files written by the  shell  and  its
+              -\b-f\bf     The  maximum  size  of files written by the shell and its
                      children
               -\b-i\bi     The maximum number of pending signals
               -\b-k\bk     The maximum number of kqueues that may be allocated
               -\b-l\bl     The maximum size that may be locked into memory
-              -\b-m\bm     The  maximum resident set size (many systems do not honor
+              -\b-m\bm     The maximum resident set size (many systems do not  honor
                      this limit)
               -\b-n\bn     The maximum number of open file descriptors (most systems
                      do not allow this value to be set)
@@ -1778,53 +1779,53 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
               -\b-r\br     The maximum real-time scheduling priority
               -\b-s\bs     The maximum stack size
               -\b-t\bt     The maximum amount of cpu time in seconds
-              -\b-u\bu     The  maximum  number  of  processes available to a single
+              -\b-u\bu     The maximum number of processes  available  to  a  single
                      user
-              -\b-v\bv     The maximum amount of virtual  memory  available  to  the
+              -\b-v\bv     The  maximum  amount  of  virtual memory available to the
                      shell and, on some systems, to its children
               -\b-x\bx     The maximum number of file locks
               -\b-P\bP     The maximum number of pseudoterminals
               -\b-T\bT     The maximum number of threads
 
-              If  _\bl_\bi_\bm_\bi_\bt  is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt is the
-              new value of the specified resource.  If  no  option  is  given,
-              then  -\b-f\bf is assumed.  Values are in 1024-byte increments, except
-              for -\b-t\bt, which is in seconds; -\b-p\bp, which is in units  of  512-byte
-              blocks;  -\b-P\bP,  -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and -\b-u\bu, which are unscaled values;
+              If _\bl_\bi_\bm_\bi_\bt is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt  is  the
+              new  value  of  the  specified resource.  If no option is given,
+              then -\b-f\bf is assumed.  Values are in 1024-byte increments,  except
+              for  -\b-t\bt,  which is in seconds; -\b-p\bp, which is in units of 512-byte
+              blocks; -\b-P\bP, -\b-T\bT, -\b-b\bb, -\b-k\bk, -\b-n\bn, and -\b-u\bu, which are  unscaled  values;
               and, when in posix mode, -\b-c\bc and -\b-f\bf, which are in 512-byte incre-
               ments.  The return status is 0 unless an invalid option or argu-
               ment is supplied, or an error occurs while setting a new limit.
 
        u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
               The user file-creation mask is set to _\bm_\bo_\bd_\be.  If _\bm_\bo_\bd_\be begins with
-              a  digit,  it is interpreted as an octal number; otherwise it is
-              interpreted as a symbolic mode mask similar to that accepted  by
-              _\bc_\bh_\bm_\bo_\bd(1).   If _\bm_\bo_\bd_\be is omitted, the current value of the mask is
-              printed.  The -\b-S\bS option causes the mask to be  printed  in  sym-
-              bolic  form;  the  default output is an octal number.  If the -\b-p\bp
+              a digit, it is interpreted as an octal number; otherwise  it  is
+              interpreted  as a symbolic mode mask similar to that accepted by
+              _\bc_\bh_\bm_\bo_\bd(1).  If _\bm_\bo_\bd_\be is omitted, the current value of the mask  is
+              printed.   The  -\b-S\bS  option causes the mask to be printed in sym-
+              bolic form; the default output is an octal number.   If  the  -\b-p\bp
               option is supplied, and _\bm_\bo_\bd_\be is omitted, the output is in a form
               that may be reused as input.  The return status is 0 if the mode
-              was successfully changed or if no _\bm_\bo_\bd_\be  argument  was  supplied,
+              was  successfully  changed  or if no _\bm_\bo_\bd_\be argument was supplied,
               and false otherwise.
 
        u\bun\bna\bal\bli\bia\bas\bs [-a\ba] [_\bn_\ba_\bm_\be ...]
-              Remove  each  _\bn_\ba_\bm_\be  from  the list of defined aliases.  If -\b-a\ba is
-              supplied, all alias definitions are removed.  The  return  value
+              Remove each _\bn_\ba_\bm_\be from the list of defined  aliases.   If  -\b-a\b is
+              supplied,  all  alias definitions are removed.  The return value
               is true unless a supplied _\bn_\ba_\bm_\be is not a defined alias.
 
        u\bun\bns\bse\bet\bt [-f\bfv\bv] [-n\bn] [_\bn_\ba_\bm_\be ...]
-              For  each  _\bn_\ba_\bm_\be,  remove the corresponding variable or function.
+              For each _\bn_\ba_\bm_\be, remove the corresponding  variable  or  function.
               If the -\b-v\bv option is given, each _\bn_\ba_\bm_\be refers to a shell variable,
-              and  that  variable  is removed.  Read-only variables may not be
-              unset.  If -\b-f\bf is specified, each _\bn_\ba_\bm_\be refers to  a  shell  func-
-              tion,  and the function definition is removed.  If the -\b-n\bn option
-              is supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\b attribute,
-              _\bn_\ba_\bm_\b will  be unset rather than the variable it references.  -\b-n\bn
-              has no effect if the -\b-f\bf option is supplied.  If no  options  are
-              supplied,  each  _\bn_\ba_\bm_\be refers to a variable; if there is no vari-
-              able by that name, any function with that name is  unset.   Each
-              unset  variable  or  function  is  removed  from the environment
-              passed to subsequent commands.  If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS,  R\bRA\bAN\bN-\b-
+              and that variable is removed.  Read-only variables  may  not  be
+              unset.   If  -\b-f\bf  is specified, each _\bn_\ba_\bm_\be refers to a shell func-
+              tion, and the function definition is removed.  If the -\b-n\b option
+              is  supplied, and _\bn_\ba_\bm_\be is a variable with the _\bn_\ba_\bm_\be_\br_\be_\bf attribute,
+              _\bn_\ba_\bm_\bwill be unset rather than the variable it  references.   -\b-n\bn
+              has  no  effect if the -\b-f\bf option is supplied.  If no options are
+              supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is  no  vari-
+              able  by  that name, any function with that name is unset.  Each
+              unset variable or  function  is  removed  from  the  environment
+              passed  to subsequent commands.  If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS, R\bRA\bAN\bN-\b-
               D\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS, L\bLI\bIN\bNE\bEN\bNO\bO, H\bHI\bIS\bST\bTC\bCM\bMD\bD, F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE, G\bGR\bRO\bOU\bUP\bPS\bS, or D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK are
               unset, they lose their special properties, even if they are sub-
               sequently reset.  The exit status is true unless a _\bn_\ba_\bm_\be is read-
@@ -1832,17 +1833,18 @@ B\bBA\bAS\bSH\bH B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
 
        w\bwa\bai\bit\bt [-\b-f\bfn\bn] [_\bi_\bd _\b._\b._\b.]
               Wait for each specified child process and return its termination
-              status.   Each _\bi_\bd may be a process ID or a job specification; if
-              a job spec is given, all processes in that  job's  pipeline  are
-              waited for.  If _\bi_\bd is not given, all currently active child pro-
-              cesses are waited for, and the return status is zero.  If the -\b-n\bn
-              option is supplied, w\bwa\bai\bit\bt waits for a single job to terminate and
-              returns its exit status.  Supplying the -\b-f\bf option, when job con-
-              trol  is enabled, forces w\bwa\bai\bit\bt to wait for _\bi_\bd to terminate before
-              returning its status, instead of returning when it changes  sta-
-              tus.   If _\bi_\bd specifies a non-existent process or job, the return
-              status is 127.  Otherwise, the return status is the exit  status
-              of the last process or job waited for.
+              status.  Each _\bi_\bd may be a process ID or a job specification;  if
+              a  job  spec  is given, all processes in that job's pipeline are
+              waited for.  If _\bi_\bd is not given,  w\bwa\bai\bit\bt  waits  for  all  running
+              background  jobs  and the last-executed process substitution, if
+              its process id is the same as $\b$!\b!, and the return status is zero.
+              If  the  -\b-n\bn  option  is supplied, w\bwa\bai\bit\bt waits for a single job to
+              terminate and returns its exit status.  Supplying the -\b-f\bf option,
+              when  job control is enabled, forces w\bwa\bai\bit\bt to wait for _\bi_\bd to ter-
+              minate before returning its status, instead of returning when it
+              changes  status.  If _\bi_\bd specifies a non-existent process or job,
+              the return status is 127.  Otherwise, the return status  is  the
+              exit status of the last process or job waited for.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
        bash(1), sh(1)
index b6c910e506d99beb8115405fb9a17bf02ac516cb..6b465a96b516746eae7d71067836b620835a78df 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.22.3
-%%CreationDate: Mon May 20 14:36:20 2019
+%%CreationDate: Wed Jun 12 15:26:50 2019
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%+ font Times-Italic
@@ -3104,23 +3104,24 @@ tion status.).8 F(Each)5.659 E F2(id)3.169 E F0 .659(may be a process)
 3.929 F .009(ID or a job speci\214cation; if a job spec is gi)144 636 R
 -.15(ve)-.25 G .008(n, all processes in that job').15 F 2.508(sp)-.55 G
 .008(ipeline are w)-2.508 F .008(aited for)-.1 F 5.008(.I)-.55 G(f)
--5.008 E F2(id)144.01 648 Q F0 .521(is not gi)3.791 F -.15(ve)-.25 G
-.521(n, all currently acti).15 F .821 -.15(ve c)-.25 H .521
-(hild processes are w).15 F .521(aited for)-.1 F 3.021(,a)-.4 G .521
-(nd the return status is zero.)-3.021 F(If)5.522 E(the)144 660 Q F1
-<ad6e>2.948 E F0 .448(option is supplied,)2.948 F F1(wait)2.948 E F0 -.1
-(wa)2.948 G .448(its for a single job to terminate and returns its e).1
-F .447(xit status.)-.15 F(Sup-)5.447 E 1.023(plying the)144 672 R F1
-<ad66>3.523 E F0 1.023(option, when job control is enabled, forces)3.523
-F F1(wait)3.524 E F0 1.024(to w)3.524 F 1.024(ait for)-.1 F F2(id)3.524
-E F0 1.024(to terminate before)3.524 F 1.835
-(returning its status, instead of returning when it changes status.)144
-684 R(If)6.835 E F2(id)4.345 E F0 1.835(speci\214es a non-e)5.105 F
-(xistent)-.15 E 1.022(process or job, the return status is 127.)144 696
-R 1.023(Otherwise, the return status is the e)6.023 F 1.023
-(xit status of the last)-.15 F(process or job w)144 708 Q(aited for)-.1
-E(.)-.55 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(24)198.725 E 0 Cg
-EP
+-5.008 E F2(id)144.01 648 Q F0 .441(is not gi)3.711 F -.15(ve)-.25 G(n,)
+.15 E F1(wait)2.941 E F0 -.1(wa)2.941 G .441
+(its for all running background jobs and the last-e).1 F -.15(xe)-.15 G
+.442(cuted process substitu-).15 F .598
+(tion, if its process id is the same as)144 660 R F1($!)3.098 E F0 3.098
+(,a)C .598(nd the return status is zero.)-3.098 F .597(If the)5.597 F F1
+<ad6e>3.097 E F0 .597(option is supplied,)3.097 F F1(wait)144 672 Q F0
+-.1(wa)3.056 G .556(its for a single job to terminate and returns its e)
+.1 F .557(xit status.)-.15 F .557(Supplying the)5.557 F F1<ad66>3.057 E
+F0 .557(option, when)3.057 F .346(job control is enabled, forces)144 684
+R F1(wait)2.846 E F0 .346(to w)2.846 F .346(ait for)-.1 F F2(id)2.846 E
+F0 .346(to terminate before returning its status, instead of)2.846 F
+.599(returning when it changes status.)144 696 R(If)5.599 E F2(id)3.109
+E F0 .599(speci\214es a non-e)3.869 F .6
+(xistent process or job, the return status is)-.15 F 2.5
+(127. Otherwise,)144 708 R(the return status is the e)2.5 E
+(xit status of the last process or job w)-.15 E(aited for)-.1 E(.)-.55 E
+(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(24)198.725 E 0 Cg EP
 %%Page: 25 25
 %%BeginPageSetup
 BP
index 917ea3048d6097edea8082a8823711e0b1211304..1a7ac3a9703589a259d98e7230bc2ad938723231 100644 (file)
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: groff version 1.22.3
-%%CreationDate: Mon May 20 14:36:20 2019
+%%CreationDate: Wed Jun 12 15:26:50 2019
 %%DocumentNeededResources: font Times-Roman
 %%+ font Times-Bold
 %%DocumentSuppliedResources: procset grops 1.22 3
index c35e37dd4e2363dfc80d00d2ec0bb6feea37687b..cbadea7281f262d71f43e3ceeb5925cce9d275a6 100644 (file)
@@ -2,10 +2,10 @@
 Copyright (C) 1988-2019 Free Software Foundation, Inc.
 @end ignore
 
-@set LASTCHANGE Mon May 20 10:45:55 EDT 2019
+@set LASTCHANGE Thu Jun 13 15:43:41 EDT 2019
 
 @set EDITION 5.0
 @set VERSION 5.0
 
-@set UPDATED 20 May 2019
-@set UPDATED-MONTH May 2019
+@set UPDATED 13 June 2019
+@set UPDATED-MONTH June 2019
diff --git a/jobs.c b/jobs.c
index 7756406f3bcc9c9251cd9ce7d46d9d75982fa46b..d81bc238c3ef56f8145ce7489c56c860a92fa267 100644 (file)
--- a/jobs.c
+++ b/jobs.c
@@ -2499,22 +2499,10 @@ wait_for_background_pids (ps)
     }
 
 #if defined (PROCESS_SUBSTITUTION)
-  if (last_procsub_child && last_procsub_child->pid != NO_PID)
+  if (last_procsub_child && last_procsub_child->pid != NO_PID && last_procsub_child->pid == last_asynchronous_pid)
     r = wait_for (last_procsub_child->pid);
   wait_procsubs ();
   reap_procsubs ();
-#if 0
-  /* We don't want to wait indefinitely if we have stopped children. */
-  if (any_stopped == 0)
-    {
-      /* Check whether or not we have any unreaped children. */
-      while ((r = wait_for (ANY_PID)) >= 0)
-       {
-         QUIT;
-         CHECK_WAIT_INTR;
-       }
-    }
-#endif
 #endif
       
   /* POSIX.2 says the shell can discard the statuses of all completed jobs if
@@ -3707,8 +3695,10 @@ itrace("waitchld: waitpid returns %d block = %d children_exited = %d", pid, bloc
       /* Only manipulate the list of process substitutions while SIGCHLD
         is blocked. */
       if ((ind = find_procsub_child (pid)) >= 0)
-       set_procsub_status (ind, pid, WSTATUS (status));
-       /* XXX - save in bgpids list? */
+       {
+         set_procsub_status (ind, pid, WSTATUS (status));
+         bgp_add (pid, WSTATUS (status));
+       }
 #endif
 
       /* It is not an error to have a child terminate that we did
index b71bda3256584cb54abb8050ee1f6066a8b5f313..b6970df60162feda61d83752908a9c32d7362c4a 100644 (file)
@@ -544,6 +544,7 @@ rl_translate_keyseq (const char *seq, char *array, int *len)
                {
                  i++;          /* seq[i] == '-' */
                  /* XXX - obey convert-meta setting, convert to key seq  */
+                 /* XXX - doesn't yet handle \M-\C-n if convert-meta is on */
                  if (_rl_convert_meta_chars_to_ascii)
                    {
                      array[l++] = ESC; /* ESC is meta-prefix */
index 41f1da4646b1204b65879e95ebc5ed734a60a7d4..080090b75023305a0924154f10685da1c63bbc9d 100644 (file)
@@ -1178,11 +1178,11 @@ Move back to the start of the current or previous word.
 Words are composed of letters and digits.
 
 @ifset BashFeatures
-@item shell-forward-word ()
+@item shell-forward-word (M-C-f)
 Move forward to the end of the next word.
 Words are delimited by non-quoted shell metacharacters.
 
-@item shell-backward-word ()
+@item shell-backward-word (M-C-b)
 Move back to the start of the current or previous word.
 Words are delimited by non-quoted shell metacharacters.
 @end ifset
@@ -1432,7 +1432,7 @@ Kill the word behind point.
 Word boundaries are the same as @code{backward-word}.
 
 @ifset BashFeatures
-@item shell-kill-word ()
+@item shell-kill-word (M-C-d)
 Kill from point to the end of the current word, or if between
 words, to the end of the next word.
 Word boundaries are the same as @code{shell-forward-word}.
@@ -1442,6 +1442,14 @@ Kill the word behind point.
 Word boundaries are the same as @code{shell-backward-word}.
 @end ifset
 
+@item shell-transpose-words (M-C-t)
+Drag the word before point past the word after point,
+moving point past that word as well.
+If the insertion point is at the end of the line, this transposes
+the last two words on the line.
+Word boundaries are the same as @code{shell-forward-word} and
+@code{shell-backward-word}.
+
 @item unix-word-rubout (C-w)
 Kill the word behind point, using white space as a word boundary.
 The killed text is saved on the kill-ring.
diff --git a/test.c b/test.c
index aba8e216c1e5a37c834c5b2ee78388f921efcc74..22456996298d2011554c7a8a86f698a4e1d54dea 100644 (file)
--- a/test.c
+++ b/test.c
@@ -633,7 +633,7 @@ unary_test (op, arg)
            free (t);
          return ret;
        }
-#if 0  /* TAG:bash-5.1 */
+#if 0  /* TAG:bash-5.1 from Martijn Dekker */
       else if (legal_number (arg, &r))         /* -v n == is $n set? */
        {
          char *t;
index c4bb5de975f2f0ffa47e63c09add78fc4e5955a1..21f2da040907ec1a22b7cd76f721aad6548fce44 100644 (file)
@@ -1,6 +1,6 @@
 /* variables.c -- Functions for hacking shell variables. */
 
-/* Copyright (C) 1987-2018 Free Software Foundation, Inc.
+/* Copyright (C) 1987-2019 Free Software Foundation, Inc.
 
    This file is part of GNU Bash, the Bourne Again SHell.
 
@@ -229,6 +229,10 @@ static SHELL_VAR *get_epochrealtime __P((SHELL_VAR *));
 
 static SHELL_VAR *get_bashpid __P((SHELL_VAR *));
 
+static SHELL_VAR *get_bash_argv0 __P((SHELL_VAR *));
+static SHELL_VAR *assign_bash_argv0 __P((SHELL_VAR *, char *, arrayind_t, char *));
+static void set_argv0 __P((void));
+
 #if defined (HISTORY)
 static SHELL_VAR *get_histcmd __P((SHELL_VAR *));
 #endif
@@ -554,6 +558,8 @@ initialize_shell_variables (env, privmode)
 
   set_ppid ();
 
+  set_argv0 ();
+
   /* Initialize the `getopts' stuff. */
   temp_var = bind_variable ("OPTIND", "1", 0);
   VSETATTR (temp_var, att_integer);
@@ -1695,6 +1701,16 @@ assign_bash_argv0 (var, value, unused, key)
   shell_name = static_shell_name;
   return var;
 }
+
+static void
+set_argv0 ()
+{
+  SHELL_VAR *v;
+
+  v = find_variable ("BASH_ARGV0");
+  if (v && imported_p (v))
+    assign_bash_argv0 (v, value_cell (v), 0, 0);
+}
   
 static SHELL_VAR *
 get_bash_command (var)