(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PATH)
          op: Equal
          rhs: {(/bin) (Lit_Other ':') (/usr/bin) (Lit_Other ':') (/usr/sbin)}
          spids: [26]
        )
      ]
      spids: [26]
    )
    (FuncDef
      name: display_usage
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:VERSION_NUMBER)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (C {(grep)} {(DQ ('[') (Lit_Other '$') (']FreeBSD:'))} 
                                    {($ VSub_Number '$0')}
                                  )
                                  (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(4)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [43 67]
                      )
                    }
                  spids: [42]
                )
              ]
              spids: [42]
            )
            (C {(echo)} {(DQ ('mergemaster version ') (${ VSub_Name VERSION_NUMBER))})
            (C {(echo)} 
              {(SQ <'Usage: mergemaster [-scrvhpCP] [-a|[-iFU]] [--run-updates=always|never]'>)}
            )
            (C {(echo)} {(SQ <'    [-m /path] [-t /path] [-d] [-u N] [-w N] [-A arch] [-D /path]'>)})
            (C {(echo)} {(DQ ('Options:'))})
            (C {(echo)} {(DQ ('  -s  Strict comparison (diff every pair of files)'))})
            (C {(echo)} {(DQ ('  -c  Use context diff instead of unified diff'))})
            (C {(echo)} 
              {(DQ ('  -r  Re-run on a previously cleaned directory (skip temproot creation)'))}
            )
            (C {(echo)} {(DQ ('  -v  Be more verbose about the process, include additional checks'))})
            (C {(echo)} {(DQ ('  -a  Leave all files that differ to merge by hand'))})
            (C {(echo)} {(DQ ('  -h  Display more complete help'))})
            (C {(echo)} 
              {(SQ <'  -i  Automatically install files that do not exist in destination directory'>)}
            )
            (C {(echo)} {(SQ <'  -p  Pre-buildworld mode, only compares crucial files'>)})
            (C {(echo)} 
              {(SQ <'  -F  Install files that differ only by revision control Id ($FreeBSD)'>)}
            )
            (C {(echo)} {(SQ <'  -C  Compare local rc.conf variables to the defaults'>)})
            (C {(echo)} {(SQ <'  -P  Preserve files that are overwritten'>)})
            (C {(echo)} {(DQ ('  -U  Attempt to auto upgrade files that have not been user modified'))})
            (C {(echo)} {(SQ <'      ***DANGEROUS***'>)})
            (C {(echo)} 
              {(SQ <'  --run-updates=  Specify always or never to run newalises, pwd_mkdb, etc.'>)}
            )
            (C {(echo)} {(SQ )})
            (C {(echo)} {(DQ ('  -m /path/directory  Specify location of source to do the make in'))})
            (C {(echo)} {(DQ ('  -t /path/directory  Specify temp root directory'))})
            (C {(echo)} 
              {
                (DQ ('  -d  Add date and time to directory name (e.g., /var/tmp/temproot.') 
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (C {(date)} 
                            {(Lit_Other '+') (Lit_Other '%') (m) (Lit_Other '%') (d.) (Lit_Other '%') 
                              (H.) (Lit_Other '%') (M)
                            }
                          )
                        ]
                      )
                    left_token: <Left_Backtick '`'>
                    spids: [223 235]
                  ) (')')
                )
              }
            )
            (C {(echo)} {(DQ ('  -u N  Specify a numeric umask'))})
            (C {(echo)} {(DQ ('  -w N  Specify a screen width in columns to sdiff'))})
            (C {(echo)} {(DQ ('  -A architecture  Alternative architecture name to pass to make'))})
            (C {(echo)} 
              {(SQ <'  -D /path/directory  Specify the destination directory to install files to'>)}
            )
            (C {(echo)} {(SQ )})
          ]
          spids: [39]
        )
      spids: [34 38]
    )
    (FuncDef
      name: display_help
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ('* To specify a directory other than /var/tmp/temproot for the'))})
            (C {(echo)} {(DQ ('  temporary root environment, use -t /path/to/temp/root'))})
            (C {(echo)} {(DQ ('* The -w option takes a number as an argument for the column width'))})
            (C {(echo)} {(DQ ('  of the screen.  The default is 80.'))})
            (C {(echo)} {(SQ <'* The -a option causes mergemaster to run without prompting.'>)})
          ]
          spids: [281]
        )
      spids: [276 280]
    )
    (FuncDef
      name: merge_loop
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ (${ VSub_Name VERBOSE))}
              arms: [
                (case_arm pat_list:[{(SQ )}] spids:[16777215 348 350 16777215])
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(echo)} {(DQ ('   *** Type h at the sdiff prompt (%) to get usage help'))})
                  ]
                  spids: [353 354 364 16777215]
                )
              ]
              spids: [335 343 367]
            )
            (C {(echo)} {(SQ )})
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:MERGE_AGAIN) op:Equal rhs:{(yes)} spids:[376])]
              spids: [376]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ (${ VSub_Name MERGE_AGAIN))} {(Lit_Other '=')} {(DQ (yes))} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(cp)} {(-p)} {(DQ (${ VSub_Name COMPFILE))} 
                      {(DQ (${ VSub_Name COMPFILE) (.merged))}
                    )
                    (C {(sdiff)} {(-o)} {(DQ (${ VSub_Name COMPFILE) (.merged))} {(--text)} 
                      {(--suppress-common-lines)} 
                      {(--width) (Lit_Other '=') 
                        (BracedVarSub
                          token: <VSub_Name SCREEN_WIDTH>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(80)})
                          spids: [443 447]
                        )
                      } 
                      {
                        (DQ (${ VSub_Name DESTDIR) 
                          (BracedVarSub
                            token: <VSub_Name COMPFILE>
                            suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                            spids: [453 457]
                          )
                        )
                      } {(DQ (${ VSub_Name COMPFILE))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:INSTALL_MERGED)
                          op: Equal
                          rhs: {(V)}
                          spids: [467]
                        )
                      ]
                      spids: [467]
                    )
                    (While
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(DQ (${ VSub_Name INSTALL_MERGED))} {(Lit_Other '=')} 
                              {(DQ (v))} {(-o)} {(DQ (${ VSub_Name INSTALL_MERGED))} {(Lit_Other '=')} {(DQ (V))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (C {(echo)} {(SQ )})
                            (C {(echo)} {(DQ ("  Use 'i' to install merged file"))})
                            (C {(echo)} {(DQ ("  Use 'r' to re-do the merge"))})
                            (C {(echo)} {(DQ ("  Use 'v' to view the merged file"))})
                            (C {(echo)} 
                              {
                                (DQ ('  Default is to leave the temporary file to deal with by hand'))
                              }
                            )
                            (C {(echo)} {(SQ )})
                            (C {(echo)} {(-n)} 
                              {
                                (DQ 
                                  (
'    *** How should I deal with the merged file? [Leave it for later] '
                                  )
                                )
                              }
                            )
                            (C {(read)} {(INSTALL_MERGED)})
                            (Case
                              to_match: {(DQ (${ VSub_Name INSTALL_MERGED))}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (iI) (Lit_Other ']')}]
                                  action: [
                                    (C {(mv)} {(DQ (${ VSub_Name COMPFILE) (.merged))} 
                                      {(DQ (${ VSub_Name COMPFILE))}
                                    )
                                    (C {(echo)} {(SQ )})
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: (C {(mm_install)} {(DQ (${ VSub_Name COMPFILE))})
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(echo)} 
                                              {
                                                (DQ ('     *** Merged version of ') 
                                                  (${ VSub_Name COMPFILE) (' installed successfully')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [16777215 612]
                                        )
                                      ]
                                      else_action: [
                                        (C {(echo)} 
                                          {
                                            (DQ ('     *** Problem installing ') 
                                              (${ VSub_Name COMPFILE) (', it will remain to merge by hand later')
                                            )
                                          }
                                        )
                                      ]
                                      spids: [626 640]
                                    )
                                    (C {(unset)} {(MERGE_AGAIN)})
                                  ]
                                  spids: [573 576 648 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (rR) (Lit_Other ']')}]
                                  action: [(C {(rm)} {(DQ (${ VSub_Name COMPFILE) (.merged))})]
                                  spids: [651 654 667 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (vV) (Lit_Other ']')}]
                                  action: [
                                    (C {(${ VSub_Name PAGER)} {(DQ (${ VSub_Name COMPFILE) (.merged))})
                                  ]
                                  spids: [670 673 688 16777215]
                                )
                                (case_arm
                                  pat_list: [{(SQ )}]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ('   *** ') (${ VSub_Name COMPFILE) 
                                          (' will remain for your consideration')
                                        )
                                      }
                                    )
                                    (C {(unset)} {(MERGE_AGAIN)})
                                  ]
                                  spids: [16777215 693 712 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (C {(echo)} 
                                      {(DQ ('invalid choice: ') (${ VSub_Name INSTALL_MERGED))}
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:INSTALL_MERGED)
                                          op: Equal
                                          rhs: {(V)}
                                          spids: [729]
                                        )
                                      ]
                                      spids: [729]
                                    )
                                  ]
                                  spids: [715 716 733 16777215]
                                )
                              ]
                              spids: [562 570 736]
                            )
                          ]
                          spids: [504 739]
                        )
                    )
                  ]
                  spids: [399 742]
                )
            )
          ]
          spids: [332]
        )
      spids: [327 331]
    )
    (FuncDef
      name: diff_loop
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:HANDLE_COMPFILE) op:Equal rhs:{(v)} spids:[762])]
              spids: [762]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ (${ VSub_Name HANDLE_COMPFILE))} {(Lit_Other '=')} 
                      {(DQ (v))} {(-o)} {(DQ (${ VSub_Name HANDLE_COMPFILE))} {(Lit_Other '=')} {(DQ (V))} {(-o)} 
                      {(DQ (${ VSub_Name HANDLE_COMPFILE))} {(Lit_Other '=')} {(DQ ('NOT V'))} {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-f)} 
                                  {
                                    (DQ (${ VSub_Name DESTDIR) 
                                      (BracedVarSub
                                        token: <VSub_Name COMPFILE>
                                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                                        spids: [829 833]
                                      )
                                    )
                                  } {(-a)} {(-f)} {(DQ (${ VSub_Name COMPFILE))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name AUTO_UPGRADE))} 
                                          {(-a)} {(-n)} {(DQ (${ VSub_Name CHANGED))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Case
                                      to_match: {(DQ (${ VSub_Name CHANGED))}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {(Lit_Other '*') (Lit_Other ':') (${ VSub_Name DESTDIR) 
                                              (BracedVarSub
                                                token: <VSub_Name COMPFILE>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {(.)}
                                                  )
                                                spids: [896 900]
                                              ) (Lit_Other ':') (Lit_Other '*')
                                            }
                                          ]
                                          spids: [891 903 905 16777215]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other '*')}]
                                          action: [
                                            (C {(echo)} {(SQ )})
                                            (C {(echo)} 
                                              {
                                                (DQ ('  *** ') (${ VSub_Name COMPFILE) 
                                                  (' has not been user modified.')
                                                )
                                              }
                                            )
                                            (C {(echo)} {(SQ )})
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (C {(mm_install)} {(DQ (${ VSub_Name COMPFILE))})
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {(echo)} 
                                                      {
                                                        (DQ ('   *** ') (${ VSub_Name COMPFILE) 
                                                          (' upgraded successfully')
                                                        )
                                                      }
                                                    )
                                                    (C {(echo)} {(SQ )})
                                                    (Assignment
                                                      keyword: Assign_None
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (LhsName name:AUTO_UPGRADED_FILES)
                                                          op: Equal
                                                          rhs: 
                                                            {
                                                              (DQ (${ VSub_Name AUTO_UPGRADED_FILES) 
                                                                ('      ') (${ VSub_Name DESTDIR) 
                                                                (BracedVarSub
                                                                  token: <VSub_Name COMPFILE>
                                                                  suffix_op: 
                                                                    (StringUnary
                                                                      op_id: VOp1_Pound
                                                                      arg_word: {(.)}
                                                                    )
                                                                  spids: [983 987]
                                                                ) ('\n')
                                                              )
                                                            }
                                                          spids: [974]
                                                        )
                                                      ]
                                                      spids: [974]
                                                    )
                                                  ]
                                                  spids: [16777215 950]
                                                )
                                              ]
                                              else_action: [
                                                (C {(echo)} 
                                                  {
                                                    (DQ ('   *** Problem upgrading ') 
                                                      (${ VSub_Name COMPFILE) (', it will remain to merge by hand')
                                                    )
                                                  }
                                                )
                                              ]
                                              spids: [992 1006]
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                            )
                                          ]
                                          spids: [911 912 1012 16777215]
                                        )
                                      ]
                                      spids: [880 888 1015]
                                    )
                                  ]
                                  spids: [16777215 877]
                                )
                              ]
                              spids: [16777215 1018]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name HANDLE_COMPFILE))} 
                                          {(Lit_Other '=')} {(DQ (v))} {(-o)} {(DQ (${ VSub_Name HANDLE_COMPFILE))} {(Lit_Other '=')} {(DQ (V))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} {(SQ )})
                                    (C {(echo)} 
                                      {
                                        (SQ 
                                          <
'   ======================================================================   '
                                          >
                                        )
                                      }
                                    )
                                    (C {(echo)} {(SQ )})
                                    (Pipeline
                                      children: [
                                        (Subshell
                                          child: 
                                            (CommandList
                                              children: [
                                                (C {(echo)} 
                                                  {
                                                    (DQ ('  *** Displaying differences between ') 
                                                      (${ VSub_Name COMPFILE) (' and installed version:')
                                                    )
                                                  }
                                                )
                                                (C {(echo)} {(SQ )})
                                                (C {(diff)} {(${ VSub_Name DIFF_FLAG)} 
                                                  {(${ VSub_Name DIFF_OPTIONS)} 
                                                  {
                                                    (DQ (${ VSub_Name DESTDIR) 
                                                      (BracedVarSub
                                                        token: <VSub_Name COMPFILE>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_Pound
                                                            arg_word: {(.)}
                                                          )
                                                        spids: [1110 1114]
                                                      )
                                                    )
                                                  } {(DQ (${ VSub_Name COMPFILE))}
                                                )
                                              ]
                                            )
                                          spids: [1076 1124]
                                        )
                                        (C {(${ VSub_Name PAGER)})
                                      ]
                                      negated: False
                                    )
                                    (C {(echo)} {(SQ )})
                                  ]
                                  spids: [16777215 1054]
                                )
                              ]
                              spids: [16777215 1139]
                            )
                          ]
                          spids: [16777215 849]
                        )
                      ]
                      else_action: [
                        (C {(echo)} {(SQ )})
                        (C {(echo)} 
                          {(DQ ('  *** There is no installed version of ') (${ VSub_Name COMPFILE))}
                        )
                        (C {(echo)} {(SQ )})
                        (Case
                          to_match: {(DQ (${ VSub_Name AUTO_INSTALL))}
                          arms: [
                            (case_arm
                              pat_list: [
                                {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) 
                                  (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']')
                                }
                              ]
                              action: [
                                (C {(echo)} {(SQ )})
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: (C {(mm_install)} {(DQ (${ VSub_Name COMPFILE))})
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(echo)} 
                                          {
                                            (DQ ('   *** ') (${ VSub_Name COMPFILE) 
                                              (' installed successfully')
                                            )
                                          }
                                        )
                                        (C {(echo)} {(SQ )})
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:AUTO_INSTALLED_FILES)
                                              op: Equal
                                              rhs: 
                                                {
                                                  (DQ (${ VSub_Name AUTO_INSTALLED_FILES) ('      ') 
                                                    (${ VSub_Name DESTDIR) 
                                                    (BracedVarSub
                                                      token: <VSub_Name COMPFILE>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_Pound
                                                          arg_word: {(.)}
                                                        )
                                                      spids: [1240 1244]
                                                    ) ('\n')
                                                  )
                                                }
                                              spids: [1231]
                                            )
                                          ]
                                          spids: [1231]
                                        )
                                      ]
                                      spids: [16777215 1207]
                                    )
                                  ]
                                  else_action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ('   *** Problem installing ') (${ VSub_Name COMPFILE) 
                                          (', it will remain to merge by hand')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [1249 1263]
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                )
                              ]
                              spids: [1178 1187 1269 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:NO_INSTALLED)
                                      op: Equal
                                      rhs: {(yes)}
                                      spids: [1276]
                                    )
                                  ]
                                  spids: [1276]
                                )
                              ]
                              spids: [1272 1273 1280 16777215]
                            )
                          ]
                          spids: [1167 1175 1283]
                        )
                      ]
                      spids: [1142 1286]
                    )
                    (C {(echo)} {(DQ ("  Use 'd' to delete the temporary ") (${ VSub_Name COMPFILE))})
                    (C {(echo)} {(DQ ("  Use 'i' to install the temporary ") (${ VSub_Name COMPFILE))})
                    (Case
                      to_match: {(DQ (${ VSub_Name NO_INSTALLED))}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ )}]
                          action: [
                            (C {(echo)} 
                              {(DQ ("  Use 'm' to merge the temporary and installed versions"))}
                            )
                            (C {(echo)} {(DQ ("  Use 'v' to view the diff results again"))})
                          ]
                          spids: [16777215 1323 1340 16777215]
                        )
                      ]
                      spids: [1310 1318 1343]
                    )
                    (C {(echo)} {(SQ )})
                    (C {(echo)} {(DQ ('  Default is to leave the temporary file to deal with by hand'))})
                    (C {(echo)} {(SQ )})
                    (C {(echo)} {(-n)} {(DQ ('How should I deal with this? [Leave it for later] '))})
                    (C {(read)} {(HANDLE_COMPFILE)})
                    (Case
                      to_match: {(DQ (${ VSub_Name HANDLE_COMPFILE))}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '[') (dD) (Lit_Other ']')}]
                          action: [
                            (C {(rm)} {(DQ (${ VSub_Name COMPFILE))})
                            (C {(echo)} {(SQ )})
                            (C {(echo)} {(DQ ('   *** Deleting ') (${ VSub_Name COMPFILE))})
                          ]
                          spids: [1391 1394 1422 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '[') (iI) (Lit_Other ']')}]
                          action: [
                            (C {(echo)} {(SQ )})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(mm_install)} {(DQ (${ VSub_Name COMPFILE))})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ('   *** ') (${ VSub_Name COMPFILE) 
                                          (' installed successfully')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 1448]
                                )
                              ]
                              else_action: [
                                (C {(echo)} 
                                  {
                                    (DQ ('   *** Problem installing ') (${ VSub_Name COMPFILE) 
                                      (', it will remain to merge by hand')
                                    )
                                  }
                                )
                              ]
                              spids: [1462 1476]
                            )
                          ]
                          spids: [1425 1428 1479 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '[') (mM) (Lit_Other ']')}]
                          action: [
                            (Case
                              to_match: {(DQ (${ VSub_Name NO_INSTALLED))}
                              arms: [
                                (case_arm
                                  pat_list: [{(SQ )}]
                                  action: [(C {(merge_loop)})]
                                  spids: [16777215 1501 1511 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (C {(echo)} {(SQ )})
                                    (C {(echo)} 
                                      {
                                        (DQ ('   *** There is no installed version of ') 
                                          (${ VSub_Name COMPFILE)
                                        )
                                      }
                                    )
                                    (C {(echo)} {(SQ )})
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:HANDLE_COMPFILE)
                                          op: Equal
                                          rhs: {(DQ ('NOT V'))}
                                          spids: [1540]
                                        )
                                      ]
                                      spids: [1540]
                                    )
                                  ]
                                  spids: [1514 1515 1546 16777215]
                                )
                              ]
                              spids: [1488 1496 1549]
                            )
                          ]
                          spids: [1482 1485 1555 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '[') (vV) (Lit_Other ']')}]
                          action: [(ControlFlow token:<ControlFlow_Continue continue>)]
                          spids: [1558 1561 1567 16777215]
                        )
                        (case_arm
                          pat_list: [{(SQ )}]
                          action: [
                            (C {(echo)} {(SQ )})
                            (C {(echo)} 
                              {
                                (DQ ('   *** ') (${ VSub_Name COMPFILE) 
                                  (' will remain for your consideration')
                                )
                              }
                            )
                          ]
                          spids: [16777215 1572 1592 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(echo)} {(DQ ('invalid choice: ') (${ VSub_Name HANDLE_COMPFILE))})
                            (C {(echo)} {(SQ )})
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:HANDLE_COMPFILE)
                                  op: Equal
                                  rhs: {(DQ ('NOT V'))}
                                  spids: [1619]
                                )
                              ]
                              spids: [1619]
                            )
                            (ControlFlow
                              token: <ControlFlow_Continue continue>
                            )
                          ]
                          spids: [1595 1596 1628 16777215]
                        )
                      ]
                      spids: [1380 1388 1631]
                    )
                  ]
                  spids: [816 1637]
                )
            )
            (C {(unset)} {(NO_INSTALLED)})
            (C {(echo)} {(SQ )})
            (Case
              to_match: {(DQ (${ VSub_Name VERBOSE))}
              arms: [
                (case_arm pat_list:[{(SQ )}] spids:[16777215 1664 1666 16777215])
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(sleep)} {(3)})]
                  spids: [1669 1670 1678 16777215]
                )
              ]
              spids: [1651 1659 1681]
            )
          ]
          spids: [758]
        )
      spids: [753 757]
    )
    (FuncDef
      name: press_to_continue
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:DISCARD) op:Equal spids:[1696])]
              spids: [1694]
            )
            (C {(echo)} {(-n)} {(SQ <' *** Press the [Enter] or [Return] key to continue '>)})
            (C {(read)} {(DISCARD)})
          ]
          spids: [1691]
        )
      spids: [1686 1690]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TEMPROOT)
          op: Equal
          rhs: {(SQ </var/tmp/temproot>)}
          spids: [1721]
        )
      ]
      spids: [1721]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-r)} {(/etc/mergemaster.rc)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(.)} {(/etc/mergemaster.rc)})]
          spids: [16777215 1744]
        )
      ]
      spids: [16777215 1751]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-r)} {(DQ ($ VSub_Name '$HOME') (/.mergemasterrc))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(.)} {(DQ ($ VSub_Name '$HOME') (/.mergemasterrc))})]
          spids: [16777215 1774]
        )
      ]
      spids: [16777215 1784]
    )
    (ForEach
      iter_name: var
      iter_words: [{(DQ ($ VSub_At '$@'))}]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {(DQ ($ VSub_Name '$var'))}
              arms: [
                (case_arm
                  pat_list: [{(--run-updates) (Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:RUN_UPDATES)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name var>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {('--run-updates=')}
                                                  )
                                                spids: [1820 1824]
                                              )
                                            }
                                          )
                                          (C {(tr)} 
                                            {(Lit_Other '[') (Lit_Other ':') (upper) (Lit_Other ':') 
                                              (Lit_Other ']')
                                            } {(Lit_Other '[') (Lit_Other ':') (lower) (Lit_Other ':') (Lit_Other ']')}
                                          )
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [1817 1841]
                              )
                            }
                          spids: [1816]
                        )
                      ]
                      spids: [1816]
                    )
                  ]
                  spids: [1811 1813 1844 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:newopts)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$newopts') (' ') ($ VSub_Name '$var'))}
                          spids: [1851]
                        )
                      ]
                      spids: [1851]
                    )
                  ]
                  spids: [1847 1848 1859 16777215]
                )
              ]
              spids: [1802 1808 1862]
            )
          ]
          spids: [1799 1864]
        )
      spids: [1792 1797]
    )
    (C {(set)} {(--)} {($ VSub_Name '$newopts')})
    (C {(unset)} {(var)} {(newopts)})
    (While
      cond: [
        (Sentence
          child: (C {(getopts)} {(DQ (':ascrvhipCPm:t:du:w:D:A:FU'))} {(COMMAND_LINE_ARGUMENT)})
          terminator: <Op_Semi ';'>
        )
      ]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {(DQ (${ VSub_Name COMMAND_LINE_ARGUMENT))}
              arms: [
                (case_arm
                  pat_list: [{(A)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ARCHSTRING)
                          op: Equal
                          rhs: {(SQ <'TARGET_ARCH='>) (${ VSub_Name OPTARG)}
                          spids: [1916]
                        )
                      ]
                      spids: [1916]
                    )
                  ]
                  spids: [1912 1913 1925 16777215]
                )
                (case_arm
                  pat_list: [{(F)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:FREEBSD_ID)
                          op: Equal
                          rhs: {(yes)}
                          spids: [1932]
                        )
                      ]
                      spids: [1932]
                    )
                  ]
                  spids: [1928 1929 1936 16777215]
                )
                (case_arm
                  pat_list: [{(U)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:AUTO_UPGRADE)
                          op: Equal
                          rhs: {(yes)}
                          spids: [1943]
                        )
                      ]
                      spids: [1943]
                    )
                  ]
                  spids: [1939 1940 1947 16777215]
                )
                (case_arm
                  pat_list: [{(s)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:STRICT)
                          op: Equal
                          rhs: {(yes)}
                          spids: [1954]
                        )
                      ]
                      spids: [1954]
                    )
                    (C {(unset)} {(DIFF_OPTIONS)})
                  ]
                  spids: [1950 1951 1963 16777215]
                )
                (case_arm
                  pat_list: [{(c)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DIFF_FLAG)
                          op: Equal
                          rhs: {(SQ <-c>)}
                          spids: [1970]
                        )
                      ]
                      spids: [1970]
                    )
                  ]
                  spids: [1966 1967 1976 16777215]
                )
                (case_arm
                  pat_list: [{(r)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:RERUN)
                          op: Equal
                          rhs: {(yes)}
                          spids: [1983]
                        )
                      ]
                      spids: [1983]
                    )
                  ]
                  spids: [1979 1980 1987 16777215]
                )
                (case_arm
                  pat_list: [{(v)}]
                  action: [
                    (Case
                      to_match: {(DQ (${ VSub_Name AUTO_RUN))}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ )}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:VERBOSE)
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [2009]
                                )
                              ]
                              spids: [2009]
                            )
                          ]
                          spids: [16777215 2007 2012 16777215]
                        )
                      ]
                      spids: [1994 2002 2015]
                    )
                  ]
                  spids: [1990 1991 2018 16777215]
                )
                (case_arm
                  pat_list: [{(a)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:AUTO_RUN)
                          op: Equal
                          rhs: {(yes)}
                          spids: [2025]
                        )
                      ]
                      spids: [2025]
                    )
                    (C {(unset)} {(VERBOSE)})
                  ]
                  spids: [2021 2022 2034 16777215]
                )
                (case_arm
                  pat_list: [{(h)}]
                  action: [(C {(display_usage)}) (C {(display_help)}) (C {(exit)} {(0)})]
                  spids: [2037 2038 2052 16777215]
                )
                (case_arm
                  pat_list: [{(i)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:AUTO_INSTALL)
                          op: Equal
                          rhs: {(yes)}
                          spids: [2059]
                        )
                      ]
                      spids: [2059]
                    )
                  ]
                  spids: [2055 2056 2063 16777215]
                )
                (case_arm
                  pat_list: [{(C)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:COMP_CONFS)
                          op: Equal
                          rhs: {(yes)}
                          spids: [2070]
                        )
                      ]
                      spids: [2070]
                    )
                  ]
                  spids: [2066 2067 2074 16777215]
                )
                (case_arm
                  pat_list: [{(P)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PRESERVE_FILES)
                          op: Equal
                          rhs: {(yes)}
                          spids: [2081]
                        )
                      ]
                      spids: [2081]
                    )
                  ]
                  spids: [2077 2078 2085 16777215]
                )
                (case_arm
                  pat_list: [{(p)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:PRE_WORLD)
                          op: Equal
                          rhs: {(yes)}
                          spids: [2092]
                        )
                      ]
                      spids: [2092]
                    )
                    (C {(unset)} {(COMP_CONFS)})
                    (C {(unset)} {(AUTO_RUN)})
                  ]
                  spids: [2088 2089 2106 16777215]
                )
                (case_arm
                  pat_list: [{(m)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SOURCEDIR)
                          op: Equal
                          rhs: {(${ VSub_Name OPTARG)}
                          spids: [2113]
                        )
                      ]
                      spids: [2113]
                    )
                  ]
                  spids: [2109 2110 2119 16777215]
                )
                (case_arm
                  pat_list: [{(t)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TEMPROOT)
                          op: Equal
                          rhs: {(${ VSub_Name OPTARG)}
                          spids: [2126]
                        )
                      ]
                      spids: [2126]
                    )
                  ]
                  spids: [2122 2123 2132 16777215]
                )
                (case_arm
                  pat_list: [{(d)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TEMPROOT)
                          op: Equal
                          rhs: 
                            {(${ VSub_Name TEMPROOT) (.) 
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(date)} 
                                        {(Lit_Other '+') (Lit_Other '%') (m) (Lit_Other '%') (d.) 
                                          (Lit_Other '%') (H.) (Lit_Other '%') (M)
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [2144 2156]
                              )
                            }
                          spids: [2139]
                        )
                      ]
                      spids: [2139]
                    )
                  ]
                  spids: [2135 2136 2159 16777215]
                )
                (case_arm
                  pat_list: [{(u)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NEW_UMASK)
                          op: Equal
                          rhs: {(${ VSub_Name OPTARG)}
                          spids: [2166]
                        )
                      ]
                      spids: [2166]
                    )
                  ]
                  spids: [2162 2163 2172 16777215]
                )
                (case_arm
                  pat_list: [{(w)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SCREEN_WIDTH)
                          op: Equal
                          rhs: {(${ VSub_Name OPTARG)}
                          spids: [2179]
                        )
                      ]
                      spids: [2179]
                    )
                  ]
                  spids: [2175 2176 2185 16777215]
                )
                (case_arm
                  pat_list: [{(D)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DESTDIR)
                          op: Equal
                          rhs: {(${ VSub_Name OPTARG)}
                          spids: [2192]
                        )
                      ]
                      spids: [2192]
                    )
                  ]
                  spids: [2188 2189 2198 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(display_usage)}) (C {(exit)} {(1)})]
                  spids: [2201 2202 2213 16777215]
                )
              ]
              spids: [1901 1909 2216]
            )
          ]
          spids: [1898 2218]
        )
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$AUTO_RUN'))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$FREEBSD_ID'))} {(-o)} {(-n)} 
                          {(DQ ($ VSub_Name '$AUTO_UPGRADE'))} {(-o)} {(-n)} {(DQ ($ VSub_Name '$AUTO_INSTALL'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {(DQ ('*** You have included the -a option along with one or more options'))}
                    )
                    (C {(echo)} 
                      {(SQ <'    that indicate that you wish mergemaster to actually make updates'>)}
                    )
                    (C {(echo)} 
                      {(SQ <'    (-F, -U, or -i), however these options are not compatible.'>)}
                    )
                    (C {(echo)} {(SQ <'    Please read mergemaster(8) for more information.'>)})
                    (C {(echo)} {(SQ )})
                    (C {(exit)} {(1)})
                  ]
                  spids: [16777215 2266]
                )
              ]
              spids: [16777215 2314]
            )
          ]
          spids: [16777215 2234]
        )
      ]
      spids: [16777215 2316]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MTREEDB)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name MTREEDB>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: {(${ VSub_Name DESTDIR) (Lit_Slash /) (var) (Lit_Slash /) (db)}
                  )
                spids: [2326 2336]
              )
            }
          spids: [2325]
        )
      ]
      spids: [2325]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MTREEFILE)
          op: Equal
          rhs: {(DQ (${ VSub_Name MTREEDB) (/mergemaster.mtree))}
          spids: [2338]
        )
      ]
      spids: [2338]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name PRESERVE_FILES))} {(-a)} {(-z)} 
                  {(DQ (${ VSub_Name PRESERVE_FILES_DIR))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:PRESERVE_FILES_DIR)
                  op: Equal
                  rhs: 
                    {(/var/tmp/mergemaster/preserved-files-) 
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(date)} 
                                {(Lit_Other '+') (Lit_Other '%') (y) (Lit_Other '%') (m) (Lit_Other '%') 
                                  (d-) (Lit_Other '%') (H) (Lit_Other '%') (M) (Lit_Other '%') (S)
                                }
                              )
                            ]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [2380 2396]
                      )
                    }
                  spids: [2378]
                )
              ]
              spids: [2378]
            )
            (C {(mkdir)} {(-p)} {(${ VSub_Name PRESERVE_FILES_DIR)})
          ]
          spids: [16777215 2375]
        )
      ]
      spids: [16777215 2407]
    )
    (Case
      to_match: {(DQ (${ VSub_Name AUTO_UPGRADE))}
      arms: [
        (case_arm pat_list:[{(SQ )}] spids:[16777215 2425 2427 16777215])
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-s)} {(DQ (${ VSub_Name MTREEFILE))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {(DQ ('*** Unable to find mtree database (') (${ VSub_Name MTREEFILE) (').'))}
                    )
                    (C {(echo)} {(DQ ('    Skipping auto-upgrade on this run.'))})
                    (C {(echo)} 
                      {(DQ ('    It will be created for the next run when this one is complete.'))}
                    )
                    (C {(echo)} {(SQ )})
                    (Case
                      to_match: {(DQ (${ VSub_Name AUTO_RUN))}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ )}]
                          action: [(C {(press_to_continue)})]
                          spids: [16777215 2506 2512 16777215]
                        )
                      ]
                      spids: [2493 2501 2515]
                    )
                    (C {(unset)} {(AUTO_UPGRADE)})
                  ]
                  spids: [16777215 2453]
                )
              ]
              spids: [16777215 2523]
            )
          ]
          spids: [2432 2433 2526 16777215]
        )
      ]
      spids: [2413 2421 2528]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name DESTDIR) (/etc/fstab))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(grep)} {(-q)} {(nodev)} {(${ VSub_Name DESTDIR) (/etc/fstab)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {
                        (DQ ("*** You have the deprecated 'nodev' option in ") (${ VSub_Name DESTDIR) 
                          (/etc/fstab.)
                        )
                      }
                    )
                    (C {(echo)} 
                      {(DQ ('    This can prevent the filesystem from being mounted on reboot.'))}
                    )
                    (C {(echo)} {(DQ ('    Please update your fstab before continuing.'))})
                    (C {(echo)} {(DQ ('    See fstab(5) for more information.'))})
                    (C {(echo)} {(SQ )})
                    (C {(exit)} {(1)})
                  ]
                  spids: [16777215 2564]
                )
              ]
              spids: [16777215 2616]
            )
          ]
          spids: [16777215 2547]
        )
      ]
      spids: [16777215 2618]
    )
    (C {(echo)} {(SQ )})
    (Case
      to_match: {(DQ (${ VSub_Name DONT_CHECK_PAGER))}
      arms: [
        (case_arm
          pat_list: [{(SQ )}]
          action: [
            (FuncDef
              name: check_pager
              body: 
                (BraceGroup
                  children: [
                    (While
                      cond: [
                        (Sentence
                          child: 
                            (Pipeline
                              children: [
                                (SimpleCommand
                                  words: [
                                    {(type)}
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          token: <VSub_Name PAGER>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_DPercent
                                              arg_word: {(' *')}
                                            )
                                          spids: [2662 2666]
                                        )
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {(/dev/null)}
                                      spids: [2669]
                                    )
                                  ]
                                )
                              ]
                              negated: True
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      body: 
                        (DoGroup
                          children: [
                            (C {(echo)} 
                              {
                                (DQ (" *** Your PAGER environment variable specifies '") 
                                  (${ VSub_Name PAGER) ("', but")
                                )
                              }
                            )
                            (C {(echo)} 
                              {
                                (DQ ('     due to the limited PATH that I use for security reasons,'))
                              }
                            )
                            (C {(echo)} 
                              {(DQ ('     I cannot execute it.  So, what would you like to do?'))}
                            )
                            (C {(echo)} {(SQ )})
                            (C {(echo)} 
                              {(DQ ("  Use 'e' to exit mergemaster and fix your PAGER variable"))}
                            )
                            (C {(echo)} {(DQ ("  Use 'l' to set PAGER to 'less' for this run"))})
                            (C {(echo)} 
                              {(DQ ("  Use 'm' to use plain old 'more' as your PAGER for this run"))}
                            )
                            (C {(echo)} {(SQ )})
                            (C {(echo)} 
                              {(DQ ('  or you may type an absolute path to PAGER for this run'))}
                            )
                            (C {(echo)} {(SQ )})
                            (C {(echo)} {(DQ ("  Default is to use plain old 'more' "))})
                            (C {(echo)} {(SQ )})
                            (C {(echo)} {(-n)} {(DQ ("What should I do? [Use 'more'] "))})
                            (C {(read)} {(FIXPAGER)})
                            (Case
                              to_match: {(DQ (${ VSub_Name FIXPAGER))}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (eE) (Lit_Other ']')}]
                                  action: [(C {(exit)} {(0)})]
                                  spids: [2786 2789 2797 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (lL) (Lit_Other ']')}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:PAGER)
                                          op: Equal
                                          rhs: {(less)}
                                          spids: [2806]
                                        )
                                      ]
                                      spids: [2806]
                                    )
                                  ]
                                  spids: [2800 2803 2810 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (mM) (Lit_Other ']')} {(SQ )}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:PAGER)
                                          op: Equal
                                          rhs: {(more)}
                                          spids: [2822]
                                        )
                                      ]
                                      spids: [2822]
                                    )
                                  ]
                                  spids: [2813 2819 2826 16777215]
                                )
                                (case_arm
                                  pat_list: [{(/) (Lit_Other '*')}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:PAGER)
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Name '$FIXPAGER'))}
                                          spids: [2834]
                                        )
                                      ]
                                      spids: [2834]
                                    )
                                  ]
                                  spids: [2829 2831 2840 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (C {(echo)} {(SQ )})
                                    (C {(echo)} {(DQ ('invalid choice: ') (${ VSub_Name FIXPAGER))})
                                  ]
                                  spids: [2843 2844 16777215 2863]
                                )
                              ]
                              spids: [2775 2783 2863]
                            )
                            (C {(echo)} {(SQ )})
                          ]
                          spids: [2673 2872]
                        )
                    )
                  ]
                  spids: [2652]
                )
              spids: [2647 2651]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name PAGER))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(check_pager)})]
                  spids: [16777215 2892]
                )
              ]
              spids: [16777215 2898]
            )
          ]
          spids: [16777215 2645 2901 16777215]
        )
      ]
      spids: [2633 2641 2903]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PAGER)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name PAGER>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(more)})
                spids: [2916 2920]
              )
            }
          spids: [2915]
        )
      ]
      spids: [2915]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name VERBOSE))} {(-a)} {(KW_Bang '!')} 
                  {(DQ (${ VSub_Name PAGER))} {(Lit_Other '=')} {(DQ (more))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ (' *** You have ') (${ VSub_Name PAGER) 
                  (' defined as your pager so we will use that')
                )
              }
            )
            (C {(echo)} {(SQ )})
            (C {(sleep)} {(3)})
          ]
          spids: [16777215 2954]
        )
      ]
      spids: [16777215 2978]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DIFF_FLAG)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name DIFF_FLAG>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(-u)})
                spids: [2988 2992]
              )
            }
          spids: [2987]
        )
      ]
      spids: [2987]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SOURCEDIR)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name SOURCEDIR>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: {(Lit_Slash /) (usr) (Lit_Slash /) (src)}
                  )
                spids: [3002 3009]
              )
            }
          spids: [3001]
        )
      ]
      spids: [3001]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(${ VSub_Name SOURCEDIR) (/Makefile.inc1)} 
                  {(-a)} {(-f)} {(${ VSub_Name SOURCEDIR) (/../Makefile.inc1)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} 
              {(DQ (' *** The source directory you specified (') (${ VSub_Name SOURCEDIR) (')'))}
            )
            (C {(echo)} {(DQ ('     will be reset to ') (${ VSub_Name SOURCEDIR) (/..))})
            (C {(echo)} {(SQ )})
            (C {(sleep)} {(3)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SOURCEDIR)
                  op: Equal
                  rhs: {(${ VSub_Name SOURCEDIR) (/..)}
                  spids: [3074]
                )
              ]
              spids: [3074]
            )
          ]
          spids: [16777215 3038]
        )
      ]
      spids: [16777215 3080]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SOURCEDIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(realpath)} {(DQ ($ VSub_Name '$SOURCEDIR'))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [3083 3089]
              )
            }
          spids: [3082]
        )
      ]
      spids: [3082]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MM_MAKE)
          op: Equal
          rhs: 
            {
              (DQ ('make ') (${ VSub_Name ARCHSTRING) (' -m ') (${ VSub_Name SOURCEDIR) 
                ('/share/mk -DNO_FILEMON')
              )
            }
          spids: [3095]
        )
      ]
      spids: [3095]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name AUTO_UPGRADE))} {(-a)} {(-s)} 
                  {(DQ (${ VSub_Name MTREEFILE))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(mtree)} {(-F)} {(freebsd9)} {(-c)} {(-p)} {(/var/empty/)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(/dev/null)}
                              spids: [3164]
                            )
                            (Redir
                              op_id: Redir_GreatAnd
                              fd: 2
                              arg_word: {(1)}
                              spids: [3168]
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:MTREE_FLAVOR)
                          op: Equal
                          rhs: {(DQ ('-F freebsd9'))}
                          spids: [3175]
                        )
                      ]
                      spids: [3175]
                    )
                  ]
                  spids: [16777215 3172]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:MTREE_FLAVOR)
                      op: Equal
                      rhs: {(SQ )}
                      spids: [3184]
                    )
                  ]
                  spids: [3184]
                )
              ]
              spids: [3181 3187]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHANGED)
                  op: Equal
                  rhs: {(Lit_Other ':')}
                  spids: [3190]
                )
              ]
              spids: [3190]
            )
            (ForEach
              iter_name: file
              iter_words: [
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (SimpleCommand
                                words: [
                                  {(mtree)}
                                  {(-eqL)}
                                  {(${ VSub_Name MTREE_FLAVOR)}
                                  {(-f)}
                                  {(${ VSub_Name MTREEFILE)}
                                  {(-p)}
                                  {(${ VSub_Name DESTDIR) (/)}
                                ]
                                redirects: [
                                  (Redir
                                    op_id: Redir_Great
                                    fd: 2
                                    arg_word: {(/dev/null)}
                                    spids: [3224]
                                  )
                                ]
                              )
                              (C {(awk)} {(SQ <'($2 == "changed") {print $1}'>)})
                            ]
                            negated: False
                          )
                        ]
                      )
                    left_token: <Left_Backtick '`'>
                    spids: [3200 3234]
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-f)} 
                                  {(DQ (${ VSub_Name DESTDIR) (/) ($ VSub_Name '$file'))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:CHANGED)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ (${ VSub_Name CHANGED) (${ VSub_Name DESTDIR) (/) 
                                        (${ VSub_Name file) (':')
                                      )
                                    }
                                  spids: [3260]
                                )
                              ]
                              spids: [3260]
                            )
                          ]
                          spids: [16777215 3257]
                        )
                      ]
                      spids: [16777215 3276]
                    )
                  ]
                  spids: [3237 3279]
                )
              spids: [3199 3235]
            )
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$CHANGED'))} {(Lit_Other '=')} {(SQ <':'>)} 
                  {(Lit_Other ']')}
                )
                (C {(unset)} {(CHANGED)})
              ]
              op_id: Op_DAmp
            )
          ]
          spids: [16777215 3143]
        )
      ]
      spids: [16777215 3302]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-t)} {(0)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:w)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(tput)} {(columns)})])
                        left_token: <Left_Backtick '`'>
                        spids: [3326 3330]
                      )
                    }
                  spids: [3325]
                )
              ]
              spids: [3325]
            )
            (Case
              to_match: {(DQ (${ VSub_Name w))}
              arms: [
                (case_arm pat_list:[{(0)} {(SQ )}] spids:[3344 3348 3350 16777215])
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Case
                      to_match: {(DQ (${ VSub_Name SCREEN_WIDTH))}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ )}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:SCREEN_WIDTH)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name w))}
                                  spids: [3375]
                                )
                              ]
                              spids: [3375]
                            )
                          ]
                          spids: [16777215 3373 3382 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ (${ VSub_Name w))}]
                          spids: [3386 3390 3392 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(echo)} {(-n)} 
                              {
                                (DQ ('*** You entered ') (${ VSub_Name SCREEN_WIDTH) 
                                  (' as your screen width, but stty ')
                                )
                              }
                            )
                            (C {(echo)} {(DQ ('thinks it is ') (${ VSub_Name w) (.))})
                            (C {(echo)} {(SQ )})
                            (C {(echo)} {(-n)} 
                              {(DQ ('What would you like to use? [') (${ VSub_Name w) ('] '))}
                            )
                            (C {(read)} {(SCREEN_WIDTH)})
                            (Case
                              to_match: {(DQ (${ VSub_Name SCREEN_WIDTH))}
                              arms: [
                                (case_arm
                                  pat_list: [{(SQ )}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:SCREEN_WIDTH)
                                          op: Equal
                                          rhs: {(DQ (${ VSub_Name w))}
                                          spids: [3465]
                                        )
                                      ]
                                      spids: [3465]
                                    )
                                  ]
                                  spids: [16777215 3463 3472 16777215]
                                )
                              ]
                              spids: [3450 3458 3475]
                            )
                          ]
                          spids: [3398 3399 3478 16777215]
                        )
                      ]
                      spids: [3360 3368 3481]
                    )
                  ]
                  spids: [3356 3357 16777215 3484]
                )
              ]
              spids: [3333 3341 3484]
            )
          ]
          spids: [16777215 3322]
        )
      ]
      spids: [16777215 3486]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:ID_TAG) op:Equal rhs:{(FreeBSD)} spids:[3495])]
      spids: [3495]
    )
    (FuncDef
      name: delete_temproot
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(rm)} {(-rf)} {(DQ (${ VSub_Name TEMPROOT))}]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[3517])]
            )
            (SimpleCommand
              words: [{(chflags)} {(-R)} {(0)} {(DQ (${ VSub_Name TEMPROOT))}]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[3533])]
            )
            (AndOr
              children: [
                (C {(rm)} {(-rf)} {(DQ (${ VSub_Name TEMPROOT))})
                (BraceGroup
                  children: [
                    (Sentence
                      child: (C {(echo)} {(DQ ('*** Unable to delete ') (${ VSub_Name TEMPROOT))})
                      terminator: <Op_Semi ';'>
                    )
                    (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ';'>)
                  ]
                  spids: [3549]
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [3504]
        )
      spids: [3499 3503]
    )
    (Case
      to_match: {(DQ (${ VSub_Name RERUN))}
      arms: [
        (case_arm
          pat_list: [{(SQ )}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TEST_TEMP_ROOT)
                  op: Equal
                  rhs: {(yes)}
                  spids: [3598]
                )
              ]
              spids: [3598]
            )
            (While
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ (${ VSub_Name TEST_TEMP_ROOT))} {(Lit_Other '=')} 
                      {(DQ (yes))} {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name TEMPROOT))} 
                                  {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ 
                                  (
'*** The directory specified for the temporary root environment,'
                                  )
                                )
                              }
                            )
                            (C {(echo)} 
                              {
                                (DQ ('    ') (${ VSub_Name TEMPROOT) 
                                  (', exists.  This can be a security risk if untrusted')
                                )
                              }
                            )
                            (C {(echo)} {(DQ ('    users have access to the system.'))})
                            (C {(echo)} {(SQ )})
                            (Case
                              to_match: {(DQ (${ VSub_Name AUTO_RUN))}
                              arms: [
                                (case_arm
                                  pat_list: [{(SQ )}]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ("  Use 'd' to delete the old ") (${ VSub_Name TEMPROOT) 
                                          (' and continue')
                                        )
                                      }
                                    )
                                    (C {(echo)} 
                                      {(DQ ("  Use 't' to select a new temporary root directory"))}
                                    )
                                    (C {(echo)} {(DQ ("  Use 'e' to exit mergemaster"))})
                                    (C {(echo)} {(SQ )})
                                    (C {(echo)} 
                                      {
                                        (DQ ('  Default is to use ') (${ VSub_Name TEMPROOT) (' as is'))
                                      }
                                    )
                                    (C {(echo)} {(SQ )})
                                    (C {(echo)} {(-n)} 
                                      {
                                        (DQ ('How should I deal with this? [Use the existing ') 
                                          (${ VSub_Name TEMPROOT) ('] ')
                                        )
                                      }
                                    )
                                    (C {(read)} {(DELORNOT)})
                                    (Case
                                      to_match: {(DQ (${ VSub_Name DELORNOT))}
                                      arms: [
                                        (case_arm
                                          pat_list: [{(Lit_Other '[') (dD) (Lit_Other ']')}]
                                          action: [
                                            (C {(echo)} {(SQ )})
                                            (C {(echo)} 
                                              {
                                                (DQ ('   *** Deleting the old ') 
                                                  (${ VSub_Name TEMPROOT)
                                                )
                                              }
                                            )
                                            (C {(echo)} {(SQ )})
                                            (C {(delete_temproot)})
                                            (C {(unset)} {(TEST_TEMP_ROOT)})
                                          ]
                                          spids: [3767 3770 3803 16777215]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other '[') (tT) (Lit_Other ']')}]
                                          action: [
                                            (C {(echo)} 
                                              {
                                                (DQ 
                                                  (
'   *** Enter new directory name for temporary root environment'
                                                  )
                                                )
                                              }
                                            )
                                            (C {(read)} {(TEMPROOT)})
                                          ]
                                          spids: [3806 3809 3824 16777215]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other '[') (eE) (Lit_Other ']')}]
                                          action: [(C {(exit)} {(0)})]
                                          spids: [3827 3830 3838 16777215]
                                        )
                                        (case_arm
                                          pat_list: [{(SQ )}]
                                          action: [
                                            (C {(echo)} {(SQ )})
                                            (C {(echo)} 
                                              {
                                                (DQ ('   *** Leaving ') (${ VSub_Name TEMPROOT) 
                                                  (' intact')
                                                )
                                              }
                                            )
                                            (C {(echo)} {(SQ )})
                                            (C {(unset)} {(TEST_TEMP_ROOT)})
                                          ]
                                          spids: [16777215 3843 3874 16777215]
                                        )
                                        (case_arm
                                          pat_list: [{(Lit_Other '*')}]
                                          action: [
                                            (C {(echo)} {(SQ )})
                                            (C {(echo)} 
                                              {(DQ ('invalid choice: ') (${ VSub_Name DELORNOT))}
                                            )
                                            (C {(echo)} {(SQ )})
                                          ]
                                          spids: [3877 3878 3903 16777215]
                                        )
                                      ]
                                      spids: [3756 3764 3906]
                                    )
                                  ]
                                  spids: [16777215 3686 3909 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:TEMPROOT)
                                          op: Equal
                                          rhs: 
                                            {(/var/tmp/temproot.) 
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(date)} 
                                                        {(Lit_Other '+') (Lit_Other '%') (m) 
                                                          (Lit_Other '%') (d.) (Lit_Other '%') (H.) (Lit_Other '%') (M.) (Lit_Other '%') (S)
                                                        }
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [3926 3940]
                                              )
                                            }
                                          spids: [3924]
                                        )
                                      ]
                                      spids: [3924]
                                    )
                                  ]
                                  spids: [3912 3913 3943 16777215]
                                )
                              ]
                              spids: [3673 3681 3946]
                            )
                          ]
                          spids: [16777215 3639]
                        )
                      ]
                      else_action: [(C {(unset)} {(TEST_TEMP_ROOT)})]
                      spids: [3949 3957]
                    )
                  ]
                  spids: [3621 3960]
                )
            )
            (C {(echo)} 
              {(DQ ('*** Creating the temporary root environment in ') (${ VSub_Name TEMPROOT))}
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name TEMPROOT))})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(echo)} {(DQ (' *** ') (${ VSub_Name TEMPROOT) (' ready for use'))})]
                  spids: [16777215 3988]
                )
              ]
              spids: [16777215 4002]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name TEMPROOT))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(SQ )})
                    (C {(echo)} {(DQ ('  *** FATAL ERROR: Cannot create ') (${ VSub_Name TEMPROOT))})
                    (C {(echo)} {(SQ )})
                    (C {(exit)} {(1)})
                  ]
                  spids: [16777215 4023]
                )
              ]
              spids: [16777215 4053]
            )
            (C {(echo)} 
              {(DQ (' *** Creating and populating directory structure in ') (${ VSub_Name TEMPROOT))}
            )
            (C {(echo)} {(SQ )})
            (Case
              to_match: {(DQ (${ VSub_Name VERBOSE))}
              arms: [
                (case_arm pat_list:[{(SQ )}] spids:[16777215 4087 4089 16777215])
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [(C {(press_to_continue)})]
                  spids: [4092 4093 4099 16777215]
                )
              ]
              spids: [4074 4082 4102]
            )
            (Case
              to_match: {(DQ (${ VSub_Name PRE_WORLD))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (AndOr
                      children: [
                        (BraceGroup
                          children: [
                            (AndOr
                              children: [
                                (C {(cd)} {(${ VSub_Name SOURCEDIR)})
                                (Case
                                  to_match: {(DQ (${ VSub_Name DESTDIR))}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(SQ )}]
                                      spids: [16777215 4146 4148 16777215]
                                    )
                                    (case_arm
                                      pat_list: [{(Lit_Other '*')}]
                                      action: [
                                        (SimpleCommand
                                          words: [
                                            {(${ VSub_Name MM_MAKE)}
                                            {(Lit_VarLike 'DESTDIR=') (${ VSub_Name DESTDIR)}
                                            {(distrib-dirs)}
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                              spids: [4166]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [4151 4152 4170 16777215]
                                    )
                                  ]
                                  spids: [4133 4141 4173]
                                )
                              ]
                              op_id: Op_DAmp
                            )
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (SimpleCommand
                                      words: [
                                        {(${ VSub_Name MM_MAKE)}
                                        {(Lit_VarLike 'DESTDIR=') (${ VSub_Name TEMPROOT)}
                                        {(distrib-dirs)}
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 16777215
                                          arg_word: {(/dev/null)}
                                          spids: [4187]
                                        )
                                      ]
                                    )
                                    (AndOr
                                      children: [
                                        (SimpleCommand
                                          words: [
                                            {(${ VSub_Name MM_MAKE)}
                                            {(_obj)}
                                            {(Lit_VarLike 'SUBDIR_OVERRIDE=') (etc)}
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                              spids: [4202]
                                            )
                                          ]
                                        )
                                        (AndOr
                                          children: [
                                            (SimpleCommand
                                              words: [
                                                {(${ VSub_Name MM_MAKE)}
                                                {(everything)}
                                                {(Lit_VarLike 'SUBDIR_OVERRIDE=') (etc)}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_Great
                                                  fd: 16777215
                                                  arg_word: {(/dev/null)}
                                                  spids: [4217]
                                                )
                                              ]
                                            )
                                            (SimpleCommand
                                              words: [
                                                {(${ VSub_Name MM_MAKE)}
                                                {(Lit_VarLike 'DESTDIR=') (${ VSub_Name TEMPROOT)}
                                                {(distribution)}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_Great
                                                  fd: 16777215
                                                  arg_word: {(/dev/null)}
                                                  spids: [4234]
                                                )
                                              ]
                                            )
                                          ]
                                          op_id: Op_DAmp
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [4122]
                        )
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(echo)} {(SQ )})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: 
                                (C {(echo)} 
                                  {
                                    (DQ ("  *** FATAL ERROR: Cannot 'cd' to ") 
                                      (${ VSub_Name SOURCEDIR) (' and install files to')
                                    )
                                  }
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(echo)} {(DQ ('      the temproot environment'))})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(echo)} {(SQ )})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(exit)} {(1)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [4242]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [16777215 4119 4285 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (AndOr
                      children: [
                        (BraceGroup
                          children: [
                            (Sentence
                              child: 
                                (AndOr
                                  children: [
                                    (C {(mkdir)} {(-p)} {(${ VSub_Name TEMPROOT) (/etc)})
                                    (AndOr
                                      children: [
                                        (C {(cp)} {(-p)} {(${ VSub_Name SOURCEDIR) (/etc/master.passwd)} 
                                          {(${ VSub_Name TEMPROOT) (/etc)}
                                        )
                                        (C {(install)} {(-p)} {(-o)} {(root)} {(-g)} {(wheel)} {(-m)} 
                                          {(0644)} {(${ VSub_Name SOURCEDIR) (/etc/group)} {(${ VSub_Name TEMPROOT) (/etc)}
                                        )
                                      ]
                                      op_id: Op_DAmp
                                    )
                                  ]
                                  op_id: Op_DAmp
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [4296]
                        )
                        (BraceGroup
                          children: [
                            (Sentence
                              child: (C {(echo)} {(SQ )})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: 
                                (C {(echo)} 
                                  {
                                    (SQ 
                                      <
'  *** FATAL ERROR: Cannot copy files to the temproot environment'
                                      >
                                    )
                                  }
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(echo)} {(SQ )})
                              terminator: <Op_Semi ';'>
                            )
                            (Sentence
                              child: (C {(exit)} {(1)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [4358]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [4288 4289 4389 16777215]
                )
              ]
              spids: [4106 4114 4392]
            )
            (Case
              to_match: {(DQ (${ VSub_Name VERBOSE))}
              arms: [
                (case_arm pat_list:[{(SQ )}] spids:[16777215 4421 4423 16777215])
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {(SQ <' *** The following files exist only in the installed version of'>)}
                    )
                    (C {(echo)} 
                      {
                        (DQ ('     ') (${ VSub_Name DESTDIR) 
                          ('/etc.  In the vast majority of cases these files')
                        )
                      }
                    )
                    (C {(echo)} 
                      {(SQ <'     are necessary parts of the system and should not be deleted.'>)}
                    )
                    (C {(echo)} 
                      {(SQ <'     However because these files are not updated by this process you'>)}
                    )
                    (C {(echo)} 
                      {(SQ <'     might want to verify their status before rebooting your system.'>)}
                    )
                    (C {(echo)} {(SQ )})
                    (C {(press_to_continue)})
                    (Pipeline
                      children: [
                        (C {(diff)} {(-qr)} {(${ VSub_Name DESTDIR) (/etc)} 
                          {(${ VSub_Name TEMPROOT) (/etc)}
                        )
                        (C {(grep)} {(DQ ('^Only in ') (${ VSub_Name DESTDIR) (/etc))})
                        (C {(${ VSub_Name PAGER)})
                      ]
                      negated: False
                    )
                    (C {(echo)} {(SQ )})
                    (C {(press_to_continue)})
                  ]
                  spids: [4426 4427 4526 16777215]
                )
              ]
              spids: [4408 4416 4529]
            )
            (Case
              to_match: {(DQ (${ VSub_Name IGNORE_MOTD))}
              arms: [
                (case_arm pat_list:[{(SQ )}] spids:[16777215 4546 4548 16777215])
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {(DQ ('*** You have the IGNORE_MOTD option set in your mergemaster rc file.'))}
                    )
                    (C {(echo)} 
                      {(DQ ('    This option is deprecated in favor of the IGNORE_FILES option.'))}
                    )
                    (C {(echo)} {(DQ ('    Please update your rc file accordingly.'))})
                    (C {(echo)} {(SQ )})
                    (C {(exit)} {(1)})
                  ]
                  spids: [4551 4552 4593 16777215]
                )
              ]
              spids: [4533 4541 4596]
            )
            (ForEach
              iter_name: file
              iter_words: [{(${ VSub_Name IGNORE_FILES)}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      children: [
                        (C {(test)} {(-e)} {(${ VSub_Name TEMPROOT) (/) (${ VSub_Name file)})
                        (C {(unlink)} {(${ VSub_Name TEMPROOT) (/) (${ VSub_Name file)})
                      ]
                      op_id: Op_DAmp
                    )
                  ]
                  spids: [4615 4643]
                )
              spids: [4609 4613]
            )
            (C {(rm)} {(-f)} {(${ VSub_Name TEMPROOT) (/etc/) (Lit_Other '*') (.db)} 
              {(${ VSub_Name TEMPROOT) (/etc/passwd)} {(${ VSub_Name TEMPROOT) (/var/db/services.db)}
            )
            (SimpleCommand
              words: [{(find)} {(${ VSub_Name TEMPROOT) (/usr/obj)} {(-type)} {(f)} {(-delete)}]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[4705])]
            )
            (SimpleCommand
              words: [{(find)} {(${ VSub_Name TEMPROOT) (/usr)} {(-type)} {(l)} {(-delete)}]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[4731])]
            )
            (SimpleCommand
              words: [{(find)} {(${ VSub_Name TEMPROOT)} {(-type)} {(f)} {(-size)} {(0)} {(-delete)}]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[4751])]
            )
            (SimpleCommand
              words: [
                {(find)}
                {(-d)}
                {(${ VSub_Name TEMPROOT)}
                {(-type)}
                {(d)}
                {(-empty)}
                {(-mindepth)}
                {(1)}
                {(-delete)}
              ]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[4775])]
            )
            (Case
              to_match: {(DQ (${ VSub_Name PRE_WORLD))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:MTREENEW)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(mktemp)} {(-t)} {(mergemaster.mtree)})]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [4800 4806]
                              )
                            }
                          spids: [4799]
                        )
                      ]
                      spids: [4799]
                    )
                    (SimpleCommand
                      words: [
                        {(mtree)}
                        {(-nci)}
                        {(-p)}
                        {(${ VSub_Name TEMPROOT)}
                        {(-k)}
                        {(size) (Lit_Comma ',') (md5digest)}
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_Great
                          fd: 16777215
                          arg_word: {(${ VSub_Name MTREENEW)}
                          spids: [4825]
                        )
                        (Redir
                          op_id: Redir_Great
                          fd: 2
                          arg_word: {(/dev/null)}
                          spids: [4831]
                        )
                      ]
                    )
                  ]
                  spids: [16777215 4797 4835 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  spids: [4838 4839 4849 16777215]
                )
              ]
              spids: [4784 4792 4852]
            )
          ]
          spids: [16777215 3583 4855 16777215]
        )
      ]
      spids: [3571 3579 4860]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name NEW_UMASK))} {(-a)} {(-z)} 
                  {(DQ (${ VSub_Name AUTO_RUN))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:USER_UMASK)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(umask)})])
                        left_token: <Left_Backtick '`'>
                        spids: [4905 4907]
                      )
                    }
                  spids: [4904]
                )
              ]
              spids: [4904]
            )
            (Case
              to_match: {(DQ (${ VSub_Name USER_UMASK))}
              arms: [
                (case_arm
                  pat_list: [{(0022)} {(022)}]
                  spids: [4921 4924 4926 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {
                        (DQ (' *** Your umask is currently set to ') (${ VSub_Name USER_UMASK) 
                          ('.  By default, this script')
                        )
                      }
                    )
                    (C {(echo)} 
                      {(DQ ('     installs all files with the same user, group and modes that'))}
                    )
                    (C {(echo)} 
                      {
                        (DQ ('     they are created with by ') (${ VSub_Name SOURCEDIR) 
                          ('/etc/Makefile, compared to')
                        )
                      }
                    )
                    (C {(echo)} 
                      {(DQ ('     a umask of 022.  This umask allows world read permission when'))}
                    )
                    (C {(echo)} {(DQ ("     the file's default permissions have it."))})
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {(DQ ('     No world permissions can sometimes cause problems.  A umask of'))}
                    )
                    (C {(echo)} 
                      {(DQ ('     022 will restore the default behavior, but is not mandatory.'))}
                    )
                    (C {(echo)} 
                      {(DQ ('     /etc/master.passwd is a special case.  Its file permissions'))}
                    )
                    (C {(echo)} {(DQ ('     will be 600 (rw-------) if installed.'))})
                    (C {(echo)} {(SQ )})
                    (C {(echo)} {(-n)} 
                      {(DQ ('What umask should I use? [') (${ VSub_Name USER_UMASK) ('] '))}
                    )
                    (C {(read)} {(NEW_UMASK)})
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:NEW_UMASK)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name NEW_UMASK>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VTest_ColonHyphen
                                      arg_word: {($ VSub_Name '$USER_UMASK')}
                                    )
                                  spids: [5043 5047]
                                )
                              )
                            }
                          spids: [5041]
                        )
                      ]
                      spids: [5041]
                    )
                  ]
                  spids: [4929 4930 5051 16777215]
                )
              ]
              spids: [4910 4918 5054]
            )
            (C {(echo)} {(SQ )})
          ]
          spids: [16777215 4901]
        )
      ]
      spids: [16777215 5062]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CONFIRMED_UMASK)
          op: Equal
          rhs: 
            {
              (BracedVarSub
                token: <VSub_Name NEW_UMASK>
                suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0022)})
                spids: [5066 5070]
              )
            }
          spids: [5065]
        )
      ]
      spids: [5065]
    )
    (ForEach
      iter_name: file
      iter_words: [
        {(atm)}
        {(devfs)}
        {(diskless1)}
        {(diskless2)}
        {(network)}
        {(network6)}
        {(pccard)}
        {(serial)}
        {(syscons)}
        {(sysctl)}
        {(alpha)}
        {(amd64)}
        {(i386)}
        {(sparc64)}
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} 
                          {(DQ (${ VSub_Name DESTDIR) (/etc/rc.) (${ VSub_Name file))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:OLD_RC_PRESENT)
                          op: Equal
                          rhs: {(1)}
                          spids: [5144]
                        )
                      ]
                      spids: [5144]
                    )
                    (ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [16777215 5141]
                )
              ]
              spids: [16777215 5151]
            )
          ]
          spids: [5119 5153]
        )
      spids: [5087 5117]
    )
    (Case
      to_match: {(DQ (${ VSub_Name OLD_RC_PRESENT))}
      arms: [
        (case_arm
          pat_list: [{(1)}]
          action: [
            (C {(echo)} {(SQ )})
            (C {(echo)} 
              {
                (DQ (' *** There are elements of the old rc system in ') (${ VSub_Name DESTDIR) 
                  (/etc/.)
                )
              }
            )
            (C {(echo)} {(SQ )})
            (C {(echo)} {(SQ <'     While these scripts will not hurt anything, they are not'>)})
            (C {(echo)} {(SQ <'     functional on an up to date system, and can be removed.'>)})
            (C {(echo)} {(SQ )})
            (Case
              to_match: {(DQ (${ VSub_Name AUTO_RUN))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (C {(echo)} {(-n)} {(SQ <'Move these files to /var/tmp/mergemaster/old_rc? [yes] '>)})
                    (C {(read)} {(MOVE_OLD_RC)})
                    (Case
                      to_match: {(DQ (${ VSub_Name MOVE_OLD_RC))}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '[') (nN) (Lit_Other ']') (Lit_Other '*')}]
                          spids: [5256 5260 5262 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(mkdir)} {(-p)} {(/var/tmp/mergemaster/old_rc)})
                            (ForEach
                              iter_name: file
                              iter_words: [
                                {(atm)}
                                {(devfs)}
                                {(diskless1)}
                                {(diskless2)}
                                {(network)}
                                {(network6)}
                                {(pccard)}
                                {(serial)}
                                {(syscons)}
                                {(sysctl)}
                                {(alpha)}
                                {(amd64)}
                                {(i386)}
                                {(sparc64)}
                              ]
                              do_arg_iter: False
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {(-f)} 
                                                  {
                                                    (DQ (${ VSub_Name DESTDIR) (/etc/rc.) 
                                                      (${ VSub_Name file)
                                                    )
                                                  } {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(mv)} 
                                              {(${ VSub_Name DESTDIR) (/etc/rc.) (${ VSub_Name file)} {(/var/tmp/mergemaster/old_rc/)}
                                            )
                                          ]
                                          spids: [16777215 5335]
                                        )
                                      ]
                                      spids: [16777215 5351]
                                    )
                                  ]
                                  spids: [5313 5354]
                                )
                              spids: [5281 5311]
                            )
                            (C {(echo)} {(SQ <'  The files have been moved'>)})
                            (C {(press_to_continue)})
                          ]
                          spids: [5265 5266 5367 16777215]
                        )
                      ]
                      spids: [5245 5253 5370]
                    )
                  ]
                  spids: [16777215 5227 5373 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  spids: [5376 5377 5379 16777215]
                )
              ]
              spids: [5214 5222 5382]
            )
          ]
          spids: [5166 5167 16777215 5384]
        )
      ]
      spids: [5156 5164 5384]
    )
    (FuncDef
      name: install_error
      body: 
        (BraceGroup
          children: [
            (C {(echo)} 
              {
                (DQ ('*** FATAL ERROR: Unable to install ') (${ VSub_Number 1) (' to ') 
                  (${ VSub_Number 2)
                )
              }
            )
            (C {(echo)} {(SQ )})
            (C {(exit)} {(1)})
          ]
          spids: [5401]
        )
      spids: [5396 5400]
    )
    (FuncDef
      name: do_install_and_rm
      body: 
        (BraceGroup
          children: [
            (Case
              to_match: {(DQ (${ VSub_Name PRESERVE_FILES))}
              arms: [
                (case_arm
                  pat_list: [
                    {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) (Lit_Other ']') 
                      (Lit_Other '[') (Ss) (Lit_Other ']')
                    }
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-f)} 
                                  {
                                    (DQ (${ VSub_Number 3) (/) 
                                      (BracedVarSub
                                        token: <VSub_Number 2>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_DPound
                                            arg_word: {('*') (Lit_Slash /)}
                                          )
                                        spids: [5473 5478]
                                      )
                                    )
                                  } {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(mkdir)} {(-p)} 
                              {(${ VSub_Name PRESERVE_FILES_DIR) (/) 
                                (BracedVarSub
                                  token: <VSub_Number 2>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VOp1_Percent
                                      arg_word: {(Lit_Slash /) ('*')}
                                    )
                                  spids: [5495 5500]
                                )
                              }
                            )
                            (C {(cp)} 
                              {(${ VSub_Number 3) (/) 
                                (BracedVarSub
                                  token: <VSub_Number 2>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VOp1_DPound
                                      arg_word: {('*') (Lit_Slash /)}
                                    )
                                  spids: [5509 5514]
                                )
                              } 
                              {(${ VSub_Name PRESERVE_FILES_DIR) (/) 
                                (BracedVarSub
                                  token: <VSub_Number 2>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VOp1_Percent
                                      arg_word: {(Lit_Slash /) ('*')}
                                    )
                                  spids: [5520 5525]
                                )
                              }
                            )
                          ]
                          spids: [16777215 5484]
                        )
                      ]
                      spids: [16777215 5528]
                    )
                  ]
                  spids: [5450 5459 5531 16777215]
                )
              ]
              spids: [5439 5447 5534]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                          {
                            (DQ (${ VSub_Number 3) (/) 
                              (BracedVarSub
                                token: <VSub_Number 2>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VOp1_DPound
                                    arg_word: {('*') (Lit_Slash /)}
                                  )
                                spids: [5551 5556]
                              )
                            )
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(install)} {(-m)} {(${ VSub_Number 1)} {(${ VSub_Number 2)} 
                                  {(${ VSub_Number 3)}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(unlink)} {(${ VSub_Number 2)})]
                          spids: [16777215 5584]
                        )
                      ]
                      else_action: [(C {(install_error)} {(${ VSub_Number 2)} {(${ VSub_Number 3)})]
                      spids: [5594 5608]
                    )
                  ]
                  spids: [16777215 5562]
                )
              ]
              else_action: [(C {(install_error)} {(${ VSub_Number 2)} {(${ VSub_Number 3)})]
              spids: [5611 5625]
            )
          ]
          spids: [5436]
        )
      spids: [5431 5435]
    )
    (FuncDef
      name: find_mode
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:OCTAL) op:Equal spids:[5643])]
              spids: [5641]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OCTAL)
                  op: Equal
                  rhs: 
                    {
                      (ArithSubPart
                        anode: 
                          (ArithBinary
                            op_id: Arith_Amp
                            left: 
                              (ArithBinary
                                op_id: Arith_Amp
                                left: 
                                  (ArithUnary
                                    op_id: Arith_Tilde
                                    child: 
                                      (ArithWord
                                        w: 
                                          {
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (Pipeline
                                                      children: [
                                                        (C {(echo)} 
                                                          {
                                                            (DQ ('obase=10; ibase=8; ') 
                                                              (${ VSub_Name CONFIRMED_UMASK)
                                                            )
                                                          }
                                                        )
                                                        (C {(bc)})
                                                      ]
                                                      negated: False
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [5650 5663]
                                            )
                                          }
                                      )
                                  )
                                right: (ArithWord w:{(Lit_Digits 4095)})
                              )
                            right: 
                              (ArithWord
                                w: 
                                  {
                                    (CommandSubPart
                                      command_list: 
                                        (CommandList
                                          children: [
                                            (Pipeline
                                              children: [
                                                (C {(echo)} 
                                                  {
                                                    (DQ ('obase=10; ibase=8; ') 
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (C {(stat)} {(-f)} {(DQ ('%OMp%OLp'))} 
                                                                {(${ VSub_Number 1)}
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_CommandSub '$('>
                                                        spids: [5677 5689]
                                                      )
                                                    )
                                                  }
                                                )
                                                (C {(bc)})
                                              ]
                                              negated: False
                                            )
                                          ]
                                        )
                                      left_token: <Left_CommandSub '$('>
                                      spids: [5672 5695]
                                    )
                                  }
                              )
                          )
                        spids: [5647 5698]
                      )
                    }
                  spids: [5646]
                )
              ]
              spids: [5646]
            )
            (C {(printf)} {(DQ ('%04o') (Lit_Other '\\') (n))} {(${ VSub_Name OCTAL)})
          ]
          spids: [5638]
        )
      spids: [5633 5637]
    )
    (FuncDef
      name: mm_install
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:INSTALL_DIR) op:Equal spids:[5726])]
              spids: [5724]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INSTALL_DIR)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 1>
                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                        spids: [5730 5734]
                      )
                    }
                  spids: [5729]
                )
              ]
              spids: [5729]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INSTALL_DIR)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name INSTALL_DIR>
                        suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ('*')})
                        spids: [5738 5743]
                      )
                    }
                  spids: [5737]
                )
              ]
              spids: [5737]
            )
            (Case
              to_match: {(DQ (${ VSub_Name INSTALL_DIR))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:INSTALL_DIR)
                          op: Equal
                          rhs: {(/)}
                          spids: [5763]
                        )
                      ]
                      spids: [5763]
                    )
                  ]
                  spids: [16777215 5760 5767 16777215]
                )
              ]
              spids: [5747 5755 5770]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} 
                          {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))} {(-a)} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DIR_MODE)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(find_mode)} 
                                        {(DQ (${ VSub_Name TEMPROOT) (/) (${ VSub_Name INSTALL_DIR))}
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [5811 5823]
                              )
                            }
                          spids: [5810]
                        )
                      ]
                      spids: [5810]
                    )
                    (AndOr
                      children: [
                        (C {(install)} {(-d)} {(-o)} {(root)} {(-g)} {(wheel)} {(-m)} 
                          {(DQ (${ VSub_Name DIR_MODE))} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))}
                        )
                        (C {(install_error)} {($ VSub_Number '$1')} 
                          {(${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR)}
                        )
                      ]
                      op_id: Op_DPipe
                    )
                  ]
                  spids: [16777215 5807]
                )
              ]
              spids: [16777215 5870]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FILE_MODE)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(find_mode)} {(DQ (${ VSub_Number 1))})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [5875 5883]
                      )
                    }
                  spids: [5874]
                )
              ]
              spids: [5874]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-x)} {(DQ (${ VSub_Number 1))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Number 1>
                              suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                              spids: [5910 5914]
                            )
                          )
                        }
                      arms: [
                        (case_arm
                          pat_list: [{(/etc/mail/aliases)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:NEED_NEWALIASES)
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [5924]
                                )
                              ]
                              spids: [5924]
                            )
                          ]
                          spids: [5920 5921 5928 16777215]
                        )
                        (case_arm
                          pat_list: [{(/etc/login.conf)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:NEED_CAP_MKDB)
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [5935]
                                )
                              ]
                              spids: [5935]
                            )
                          ]
                          spids: [5931 5932 5939 16777215]
                        )
                        (case_arm
                          pat_list: [{(/etc/services)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:NEED_SERVICES_MKDB)
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [5946]
                                )
                              ]
                              spids: [5946]
                            )
                          ]
                          spids: [5942 5943 5950 16777215]
                        )
                        (case_arm
                          pat_list: [{(/etc/master.passwd)}]
                          action: [
                            (C {(do_install_and_rm)} {(600)} {(DQ (${ VSub_Number 1))} 
                              {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))}
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:NEED_PWD_MKDB)
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [5977]
                                )
                              ]
                              spids: [5977]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:DONT_INSTALL)
                                  op: Equal
                                  rhs: {(yes)}
                                  spids: [5981]
                                )
                              ]
                              spids: [5981]
                            )
                          ]
                          spids: [5953 5954 5985 16777215]
                        )
                        (case_arm
                          pat_list: [{(/.cshrc)} {(/.profile)}]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [(assign_pair lhs:(LhsName name:st_nlink) op:Equal spids:[5998])]
                              spids: [5996]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:st_nlink)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [6014]
                                )
                              ]
                              spids: [6014]
                            )
                            (C {(eval)} 
                              {
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (SimpleCommand
                                          words: [
                                            {(stat)}
                                            {(-s)}
                                            {(${ VSub_Name DESTDIR) 
                                              (BracedVarSub
                                                token: <VSub_Name COMPFILE>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {(.)}
                                                  )
                                                spids: [6031 6035]
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (Redir
                                              op_id: Redir_Great
                                              fd: 2
                                              arg_word: {(/dev/null)}
                                              spids: [6037]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [6023 6039]
                                )
                              }
                            )
                            (C {(do_install_and_rm)} {(DQ (${ VSub_Name FILE_MODE))} 
                              {(DQ (${ VSub_Number 1))} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))}
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name AUTO_INSTALL))} 
                                          {(-a)} {($ VSub_Name '$st_nlink')} {(-gt)} {(1)} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:HANDLE_LINK)
                                          op: Equal
                                          rhs: {(l)}
                                          spids: [6094]
                                        )
                                      ]
                                      spids: [6094]
                                    )
                                  ]
                                  spids: [16777215 6091]
                                )
                              ]
                              else_action: [
                                (Case
                                  to_match: {(DQ (${ VSub_Name LINK_EXPLAINED))}
                                  arms: [
                                    (case_arm
                                      pat_list: [{(SQ )}]
                                      action: [
                                        (C {(echo)} 
                                          {
                                            (DQ 
                                              (
'   *** Historically BSD derived systems have had a'
                                              )
                                            )
                                          }
                                        )
                                        (C {(echo)} 
                                          {(DQ ('       hard link from /.cshrc and /.profile to'))}
                                        )
                                        (C {(echo)} 
                                          {
                                            (DQ ('       their namesakes in /root.  Please indicate'))
                                          }
                                        )
                                        (C {(echo)} 
                                          {(DQ ('       your preference below for bringing your'))}
                                        )
                                        (C {(echo)} {(DQ ('       installed files up to date.'))})
                                        (C {(echo)} {(SQ )})
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:LINK_EXPLAINED)
                                              op: Equal
                                              rhs: {(yes)}
                                              spids: [6158]
                                            )
                                          ]
                                          spids: [6158]
                                        )
                                      ]
                                      spids: [16777215 6114 6162 16777215]
                                    )
                                  ]
                                  spids: [6101 6109 6165]
                                )
                                (C {(echo)} 
                                  {
                                    (DQ ("   Use 'd' to delete the temporary ") 
                                      (${ VSub_Name COMPFILE)
                                    )
                                  }
                                )
                                (C {(echo)} 
                                  {
                                    (DQ ("   Use 'l' to delete the existing ") (${ VSub_Name DESTDIR) 
                                      (/root/) 
                                      (BracedVarSub
                                        token: <VSub_Name COMPFILE>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_DPound
                                            arg_word: {('*') (Lit_Slash /)}
                                          )
                                        spids: [6187 6192]
                                      ) (' and create the link')
                                    )
                                  }
                                )
                                (C {(echo)} {(SQ )})
                                (C {(echo)} 
                                  {
                                    (DQ 
                                      (
'   Default is to leave the temporary file to deal with by hand'
                                      )
                                    )
                                  }
                                )
                                (C {(echo)} {(SQ )})
                                (C {(echo)} {(-n)} 
                                  {
                                    (DQ ('  How should I handle ') (${ VSub_Name COMPFILE) 
                                      ('? [Leave it to install later] ')
                                    )
                                  }
                                )
                                (C {(read)} {(HANDLE_LINK)})
                              ]
                              spids: [6098 6234]
                            )
                            (Case
                              to_match: {(DQ (${ VSub_Name HANDLE_LINK))}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (dD) (Lit_Other ']') (Lit_Other '*')}]
                                  action: [
                                    (C {(rm)} {(DQ (${ VSub_Name COMPFILE))})
                                    (C {(echo)} {(SQ )})
                                    (C {(echo)} {(DQ ('   *** Deleting ') (${ VSub_Name COMPFILE))})
                                  ]
                                  spids: [6249 6253 6281 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (lL) (Lit_Other ']') (Lit_Other '*')}]
                                  action: [
                                    (C {(echo)} {(SQ )})
                                    (C {(unlink)} 
                                      {(${ VSub_Name DESTDIR) (/root/) 
                                        (BracedVarSub
                                          token: <VSub_Name COMPFILE>
                                          suffix_op: 
                                            (StringUnary
                                              op_id: VOp1_DPound
                                              arg_word: {('*') (Lit_Slash /)}
                                            )
                                          spids: [6303 6308]
                                        )
                                      }
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(ln)} 
                                                  {(${ VSub_Name DESTDIR) 
                                                    (BracedVarSub
                                                      token: <VSub_Name COMPFILE>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_Pound
                                                          arg_word: {(.)}
                                                        )
                                                      spids: [6318 6322]
                                                    )
                                                  } 
                                                  {(${ VSub_Name DESTDIR) (/root/) 
                                                    (BracedVarSub
                                                      token: <VSub_Name COMPFILE>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_DPound
                                                          arg_word: {('*') (Lit_Slash /)}
                                                        )
                                                      spids: [6328 6333]
                                                    )
                                                  }
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(echo)} 
                                              {
                                                (DQ ('   *** Link from ') (${ VSub_Name DESTDIR) 
                                                  (BracedVarSub
                                                    token: <VSub_Name COMPFILE>
                                                    suffix_op: 
                                                      (StringUnary
                                                        op_id: VOp1_Pound
                                                        arg_word: {(.)}
                                                      )
                                                    spids: [6346 6350]
                                                  ) (' to ') (${ VSub_Name DESTDIR) (/root/) 
                                                  (BracedVarSub
                                                    token: <VSub_Name COMPFILE>
                                                    suffix_op: 
                                                      (StringUnary
                                                        op_id: VOp1_DPound
                                                        arg_word: {('*') (Lit_Slash /)}
                                                      )
                                                    spids: [6356 6361]
                                                  ) (' installed successfully')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [16777215 6336]
                                        )
                                      ]
                                      else_action: [
                                        (C {(echo)} 
                                          {
                                            (DQ ('   *** Error linking ') (${ VSub_Name DESTDIR) 
                                              (BracedVarSub
                                                token: <VSub_Name COMPFILE>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Pound
                                                    arg_word: {(.)}
                                                  )
                                                spids: [6376 6380]
                                              ) (' to ') (${ VSub_Name DESTDIR) (/root/) 
                                              (BracedVarSub
                                                token: <VSub_Name COMPFILE>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {('*') (Lit_Slash /)}
                                                  )
                                                spids: [6386 6391]
                                              )
                                            )
                                          }
                                        )
                                        (C {(echo)} 
                                          {
                                            (DQ ('   *** ') (${ VSub_Name COMPFILE) 
                                              (' will remain for your consideration')
                                            )
                                          }
                                        )
                                      ]
                                      spids: [6366 6406]
                                    )
                                  ]
                                  spids: [6284 6288 6409 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ('   *** ') (${ VSub_Name COMPFILE) 
                                          (' will remain for your consideration')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [6412 6413 6427 16777215]
                                )
                              ]
                              spids: [6238 6246 6430]
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                            )
                          ]
                          spids: [5988 5993 6436 16777215]
                        )
                      ]
                      spids: [5907 5917 6439]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name DONT_INSTALL))}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ )}]
                          action: [
                            (C {(do_install_and_rm)} {(DQ (${ VSub_Name FILE_MODE))} 
                              {(DQ (${ VSub_Number 1))} {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))}
                            )
                          ]
                          spids: [16777215 6456 6483 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [(C {(unset)} {(DONT_INSTALL)})]
                          spids: [6486 6487 6495 16777215]
                        )
                      ]
                      spids: [6443 6451 6498]
                    )
                  ]
                  spids: [16777215 5904]
                )
              ]
              else_action: [
                (C {(do_install_and_rm)} {(DQ (${ VSub_Name FILE_MODE))} {(DQ (${ VSub_Number 1))} 
                  {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name INSTALL_DIR))}
                )
              ]
              spids: [6501 6531]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{($ VSub_QMark '$?')})
          ]
          spids: [5721]
        )
      spids: [5716 5720]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name TEMPROOT))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} 
              {(DQ ('*** FATAL ERROR: The temproot directory (') (${ VSub_Name TEMPROOT) (')'))}
            )
            (C {(echo)} {(SQ <'                 has disappeared!'>)})
            (C {(echo)} {(SQ )})
            (C {(exit)} {(1)})
          ]
          spids: [16777215 6558]
        )
      ]
      spids: [16777215 6589]
    )
    (C {(echo)} {(SQ )})
    (C {(echo)} {(DQ ('*** Beginning comparison'))})
    (C {(echo)} {(SQ )})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name PRE_WORLD))} {(-a)} {(-z)} 
                  {(DQ (${ VSub_Name RERUN))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('   *** Checking ') (${ VSub_Name DESTDIR) ('/etc/rc.d for stale files'))})
            (C {(echo)} {(SQ )})
            (AndOr
              children: [
                (C {(cd)} {(DQ (${ VSub_Name DESTDIR) (/etc/rc.d))})
                (ForEach
                  iter_name: file
                  iter_words: [{(Lit_Other '*')}]
                  do_arg_iter: False
                  body: 
                    (DoGroup
                      children: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                                      {(DQ (${ VSub_Name TEMPROOT) (/etc/rc.d/) (${ VSub_Name file))} {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:STALE_RC_FILES)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ (${ VSub_Name STALE_RC_FILES) (' ') (${ VSub_Name file))
                                        }
                                      spids: [6711]
                                    )
                                  ]
                                  spids: [6711]
                                )
                              ]
                              spids: [16777215 6708]
                            )
                          ]
                          spids: [16777215 6723]
                        )
                      ]
                      spids: [6684 6726]
                    )
                  spids: [6680 6682]
                )
              ]
              op_id: Op_DAmp
            )
            (Case
              to_match: {(DQ (${ VSub_Name STALE_RC_FILES))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )} {(SQ <' *'>)}]
                  action: [(C {(echo)} {(SQ <'   *** No stale files found'>)})]
                  spids: [16777215 6746 6756 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ('   *** The following files exist in ') (${ VSub_Name DESTDIR) 
                          ('/etc/rc.d but not in')
                        )
                      }
                    )
                    (C {(echo)} {(DQ ('       ') (${ VSub_Name TEMPROOT) ('/etc/rc.d/:'))})
                    (C {(echo)} {(SQ )})
                    (C {(echo)} {(DQ (${ VSub_Name STALE_RC_FILES))})
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {(SQ <'       The presence of stale files in this directory can cause the'>)}
                    )
                    (C {(echo)} 
                      {(SQ <'       dreaded unpredictable results, and therefore it is highly'>)}
                    )
                    (C {(echo)} {(SQ <'       recommended that you delete them.'>)})
                    (Case
                      to_match: {(DQ (${ VSub_Name AUTO_RUN))}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ )}]
                          action: [
                            (C {(echo)} {(SQ )})
                            (C {(echo)} {(-n)} {(SQ <'   *** Delete them now? [n] '>)})
                            (C {(read)} {(DELETE_STALE_RC_FILES)})
                            (Case
                              to_match: {(DQ (${ VSub_Name DELETE_STALE_RC_FILES))}
                              arms: [
                                (case_arm
                                  pat_list: [{(Lit_Other '[') (yY) (Lit_Other ']')}]
                                  action: [
                                    (C {(echo)} {(SQ <'      *** Deleting ... '>)})
                                    (C {(rm)} {(${ VSub_Name STALE_RC_FILES)})
                                    (C {(echo)} {(SQ <'                       done.'>)})
                                  ]
                                  spids: [6874 6877 6901 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [(C {(echo)} {(SQ <'      *** Files will not be deleted'>)})]
                                  spids: [6904 6905 6915 16777215]
                                )
                              ]
                              spids: [6863 6871 6918]
                            )
                            (C {(sleep)} {(2)})
                          ]
                          spids: [16777215 6840 6926 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-n)} 
                                          {(DQ (${ VSub_Name DELETE_STALE_RC_FILES))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} {(SQ <'      *** Deleting ... '>)})
                                    (C {(rm)} {(${ VSub_Name STALE_RC_FILES)})
                                    (C {(echo)} {(SQ <'                       done.'>)})
                                  ]
                                  spids: [16777215 6948]
                                )
                              ]
                              spids: [16777215 6972]
                            )
                          ]
                          spids: [6929 6930 16777215 6975]
                        )
                      ]
                      spids: [6827 6835 6975]
                    )
                  ]
                  spids: [6759 6760 6978 16777215]
                )
              ]
              spids: [6729 6737 6981]
            )
            (C {(echo)} {(SQ )})
          ]
          spids: [16777215 6643]
        )
      ]
      spids: [16777215 6989]
    )
    (C {(cd)} {(DQ (${ VSub_Name TEMPROOT))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-r)} {(DQ (${ VSub_Name MM_PRE_COMPARE_SCRIPT))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(.)} {(DQ (${ VSub_Name MM_PRE_COMPARE_SCRIPT))})]
          spids: [16777215 7016]
        )
      ]
      spids: [16777215 7027]
    )
    (ForEach
      iter_name: COMPFILE
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [(Pipeline children:[(C {(find)} {(.)}) (C {(sort)})] negated:False)]
              )
            left_token: <Left_Backtick '`'>
            spids: [7048 7056]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-e)} 
                          {
                            (DQ (${ VSub_Name DESTDIR) 
                              (BracedVarSub
                                token: <VSub_Name COMPFILE>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                                spids: [7073 7077]
                              )
                            )
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:INSTALLED_TYPE)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(stat)} {(-f)} {(SQ <'%HT'>)} 
                                        {(${ VSub_Name DESTDIR) 
                                          (BracedVarSub
                                            token: <VSub_Name COMPFILE>
                                            suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                                            spids: [7099 7103]
                                          )
                                        }
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [7087 7104]
                              )
                            }
                          spids: [7086]
                        )
                      ]
                      spids: [7086]
                    )
                  ]
                  spids: [16777215 7083]
                )
              ]
              else_action: [(ControlFlow token:<ControlFlow_Continue continue>)]
              spids: [7107 7113]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:TEMPROOT_TYPE)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(stat)} {(-f)} {(SQ <'%HT'>)} {($ VSub_Name '$COMPFILE')})]
                          )
                        left_token: <Left_Backtick '`'>
                        spids: [7117 7127]
                      )
                    }
                  spids: [7116]
                )
              ]
              spids: [7116]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_Name '$TEMPROOT_TYPE'))} 
                          {(Lit_Other '=')} {(DQ ($ VSub_Name '$INSTALLED_TYPE'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      children: [
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$COMPFILE'))} {(Lit_Other '=')} {(SQ <.>)} 
                          {(Lit_Other ']')}
                        )
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                      op_id: Op_DAmp
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TEMPROOT_TYPE)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {($ VSub_Name '$TEMPROOT_TYPE')})
                                          (C {(tr)} 
                                            {(Lit_Other '[') (Lit_Other ':') (upper) (Lit_Other ':') 
                                              (Lit_Other ']')
                                            } {(Lit_Other '[') (Lit_Other ':') (lower) (Lit_Other ':') (Lit_Other ']')}
                                          )
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [7173 7193]
                              )
                            }
                          spids: [7172]
                        )
                      ]
                      spids: [7172]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:INSTALLED_TYPE)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(echo)} {($ VSub_Name '$INSTALLED_TYPE')})
                                          (C {(tr)} 
                                            {(Lit_Other '[') (Lit_Other ':') (upper) (Lit_Other ':') 
                                              (Lit_Other ']')
                                            } {(Lit_Other '[') (Lit_Other ':') (lower) (Lit_Other ':') (Lit_Other ']')}
                                          )
                                        ]
                                        negated: False
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [7197 7217]
                              )
                            }
                          spids: [7196]
                        )
                      ]
                      spids: [7196]
                    )
                    (C {(echo)} 
                      {
                        (DQ ('*** The installed file ') (${ VSub_Name DESTDIR) 
                          (BracedVarSub
                            token: <VSub_Name COMPFILE>
                            suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                            spids: [7228 7232]
                          ) (' has the type ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$INSTALLED_TYPE') 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                        )
                      }
                    )
                    (C {(echo)} 
                      {
                        (DQ ('    but the new version has the type ') 
                          (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$TEMPROOT_TYPE') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                        )
                      }
                    )
                    (C {(echo)} {(SQ )})
                    (C {(echo)} {(DQ ('    How would you like to handle this?'))})
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {
                        (DQ ("    Use 'r' to remove ") (${ VSub_Name DESTDIR) 
                          (BracedVarSub
                            token: <VSub_Name COMPFILE>
                            suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                            spids: [7276 7280]
                          )
                        )
                      }
                    )
                    (Case
                      to_match: {(DQ ($ VSub_Name '$TEMPROOT_TYPE'))}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ <'symbolic link'>)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGET)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [(C {(readlink)} {($ VSub_Name '$COMPFILE')})]
                                          )
                                        left_token: <Left_Backtick '`'>
                                        spids: [7300 7304]
                                      )
                                    }
                                  spids: [7299]
                                )
                              ]
                              spids: [7299]
                            )
                            (C {(echo)} 
                              {
                                (DQ ('    and create a link to ') ($ VSub_Name '$TARGET') 
                                  (' in its place')
                                )
                              }
                            )
                          ]
                          spids: [7294 7296 7315 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ ('    You will be able to install it as a ') 
                                  (EscapedLiteralPart
                                    token: <Lit_EscapedChar '\\"'>
                                  ) ($ VSub_Name '$TEMPROOT_TYPE') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)
                                )
                              }
                            )
                          ]
                          spids: [7318 7319 7330 16777215]
                        )
                      ]
                      spids: [7284 7290 7333]
                    )
                    (C {(echo)} {(SQ )})
                    (C {(echo)} {(DQ ("    Use 'i' to ignore this"))})
                    (C {(echo)} {(SQ )})
                    (C {(echo)} {(-n)} {(DQ ('    How to proceed? [i] '))})
                    (C {(read)} {(ANSWER)})
                    (Case
                      to_match: {(DQ ($ VSub_Name '$ANSWER'))}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '[') (rR) (Lit_Other ']')}]
                          action: [
                            (Case
                              to_match: {(DQ (${ VSub_Name PRESERVE_FILES))}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {(Lit_Other '[') (Yy) (Lit_Other ']') (Lit_Other '[') (Ee) 
                                      (Lit_Other ']') (Lit_Other '[') (Ss) (Lit_Other ']')
                                    }
                                  ]
                                  action: [
                                    (AndOr
                                      children: [
                                        (C {(mv)} 
                                          {(${ VSub_Name DESTDIR) 
                                            (BracedVarSub
                                              token: <VSub_Name COMPFILE>
                                              suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                                              spids: [7411 7415]
                                            )
                                          } {(${ VSub_Name PRESERVE_FILES_DIR) (/)}
                                        )
                                        (C {(exit)} {(1)})
                                      ]
                                      op_id: Op_DPipe
                                    )
                                  ]
                                  spids: [7394 7403 7428 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [
                                    (C {(rm)} {(-rf)} 
                                      {(${ VSub_Name DESTDIR) 
                                        (BracedVarSub
                                          token: <VSub_Name COMPFILE>
                                          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                                          spids: [7441 7445]
                                        )
                                      }
                                    )
                                  ]
                                  spids: [7431 7432 7447 16777215]
                                )
                              ]
                              spids: [7383 7391 7450]
                            )
                            (Case
                              to_match: {(DQ ($ VSub_Name '$TEMPROOT_TYPE'))}
                              arms: [
                                (case_arm
                                  pat_list: [{(SQ <'symbolic link'>)}]
                                  action: [
                                    (C {(ln)} {(-sf)} {($ VSub_Name '$TARGET')} 
                                      {(${ VSub_Name DESTDIR) 
                                        (BracedVarSub
                                          token: <VSub_Name COMPFILE>
                                          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                                          spids: [7476 7480]
                                        )
                                      }
                                    )
                                  ]
                                  spids: [7463 7465 7482 16777215]
                                )
                              ]
                              spids: [7453 7459 7485]
                            )
                          ]
                          spids: [7378 7381 7487 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(echo)} {(SQ )})
                            (C {(echo)} 
                              {
                                (DQ ('*** See the man page about adding ') 
                                  (BracedVarSub
                                    token: <VSub_Name COMPFILE>
                                    suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                                    spids: [7503 7507]
                                  ) (' to the list of IGNORE_FILES')
                                )
                              }
                            )
                            (C {(press_to_continue)})
                          ]
                          spids: [7490 7491 7514 16777215]
                        )
                      ]
                      spids: [7369 7375 7517]
                    )
                    (C {(echo)} {(SQ )})
                  ]
                  spids: [16777215 7150]
                )
              ]
              spids: [16777215 7526]
            )
          ]
          spids: [7060 7528]
        )
      spids: [7047 7058]
    )
    (ForEach
      iter_name: COMPFILE
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [
                  (Pipeline
                    children: [(C {(find)} {(.)} {(-type)} {(f)}) (C {(sort)})]
                    negated: False
                  )
                ]
              )
            left_token: <Left_Backtick '`'>
            spids: [7537 7549]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                          {
                            (DQ (${ VSub_Name DESTDIR) 
                              (BracedVarSub
                                token: <VSub_Name COMPFILE>
                                suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                                spids: [7580 7584]
                              )
                            )
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: {(DQ (${ VSub_Name AUTO_RUN))}
                      arms: [
                        (case_arm
                          pat_list: [{(SQ )}]
                          action: [(C {(diff_loop)})]
                          spids: [16777215 7606 7612 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (Case
                              to_match: {(DQ (${ VSub_Name AUTO_INSTALL))}
                              arms: [
                                (case_arm
                                  pat_list: [{(SQ )}]
                                  action: [
                                    (C {(echo)} 
                                      {
                                        (DQ ('   *** ') (${ VSub_Name COMPFILE) 
                                          (' will remain for your consideration')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 7632 7650 16777215]
                                )
                                (case_arm
                                  pat_list: [{(Lit_Other '*')}]
                                  action: [(C {(diff_loop)})]
                                  spids: [7653 7654 7660 16777215]
                                )
                              ]
                              spids: [7619 7627 7663]
                            )
                          ]
                          spids: [7615 7616 7666 16777215]
                        )
                      ]
                      spids: [7593 7601 7669]
                    )
                    (ControlFlow token:<ControlFlow_Continue continue>)
                  ]
                  spids: [16777215 7590]
                )
              ]
              spids: [16777215 7678]
            )
            (Case
              to_match: {(DQ (${ VSub_Name STRICT))}
              arms: [
                (case_arm
                  pat_list: [
                    {(SQ )}
                    {(Lit_Other '[') (Nn) (Lit_Other ']') (Lit_Other '[') (Oo) (Lit_Other ']')}
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ID1)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [
                                          {(grep)}
                                          {
                                            (DQ ('[') (Lit_Other '$') (']') (${ VSub_Name ID_TAG) (':'))
                                          }
                                          {(${ VSub_Name DESTDIR) 
                                            (BracedVarSub
                                              token: <VSub_Name COMPFILE>
                                              suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                                              spids: [7744 7748]
                                            )
                                          }
                                        ]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_Great
                                            fd: 2
                                            arg_word: {(/dev/null)}
                                            spids: [7750]
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick '`'>
                                spids: [7728 7752]
                              )
                            }
                          spids: [7727]
                        )
                      ]
                      spids: [7727]
                    )
                    (AndOr
                      children: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ID2)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (SimpleCommand
                                            words: [
                                              {(grep)}
                                              {
                                                (DQ ('[') (Lit_Other '$') (']') (${ VSub_Name ID_TAG) 
                                                  (':')
                                                )
                                              }
                                              {(${ VSub_Name COMPFILE)}
                                            ]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Great
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                                spids: [7773]
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_Backtick '`'>
                                    spids: [7756 7775]
                                  )
                                }
                              spids: [7755]
                            )
                          ]
                          spids: [7755]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ID2)
                              op: Equal
                              rhs: {(none)}
                              spids: [7779]
                            )
                          ]
                          spids: [7779]
                        )
                      ]
                      op_id: Op_DPipe
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name ID2))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ (${ VSub_Name ID1))}]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ (' *** Temp ') (${ VSub_Name COMPFILE) 
                                  (' and installed have the same Id, deleting')
                                )
                              }
                            )
                            (C {(rm)} {(DQ (${ VSub_Name COMPFILE))})
                          ]
                          spids: [7796 7800 7823 16777215]
                        )
                      ]
                      spids: [7784 7792 7826]
                    )
                  ]
                  spids: [16777215 7704 7829 16777215]
                )
              ]
              spids: [7682 7690 7832]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name COMPFILE))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (SimpleCommand
                                  words: [
                                    {(diff)}
                                    {(-q)}
                                    {(${ VSub_Name DIFF_OPTIONS)}
                                    {
                                      (DQ (${ VSub_Name DESTDIR) 
                                        (BracedVarSub
                                          token: <VSub_Name COMPFILE>
                                          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(.)})
                                          spids: [7893 7897]
                                        )
                                      )
                                    }
                                    {(DQ (${ VSub_Name COMPFILE))}
                                  ]
                                  redirects: [
                                    (Redir
                                      op_id: Redir_Great
                                      fd: 16777215
                                      arg_word: {(/dev/null)}
                                      spids: [7906]
                                    )
                                    (Redir
                                      op_id: Redir_GreatAnd
                                      fd: 2
                                      arg_word: {(1)}
                                      spids: [7912]
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ (' *** Temp ') (${ VSub_Name COMPFILE) 
                                  (' and installed are the same, deleting')
                                )
                              }
                            )
                            (C {(rm)} {(DQ (${ VSub_Name COMPFILE))})
                          ]
                          spids: [16777215 7916]
                        )
                      ]
                      else_action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$FREEBSD_ID'))} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (SimpleCommand
                                              words: [
                                                {(diff)}
                                                {(-q)}
                                                {(-I) (SQ <'[$]FreeBSD.*[$]'>)}
                                                {
                                                  (DQ (${ VSub_Name DESTDIR) 
                                                    (BracedVarSub
                                                      token: <VSub_Name COMPFILE>
                                                      suffix_op: 
                                                        (StringUnary
                                                          op_id: VOp1_Pound
                                                          arg_word: {(.)}
                                                        )
                                                      spids: [8001 8005]
                                                    )
                                                  )
                                                }
                                                {(DQ (${ VSub_Name COMPFILE))}
                                              ]
                                              redirects: [
                                                (Redir
                                                  op_id: Redir_Great
                                                  fd: 16777215
                                                  arg_word: {(/dev/null)}
                                                  spids: [8014]
                                                )
                                                (Redir
                                                  op_id: Redir_GreatAnd
                                                  fd: 2
                                                  arg_word: {(1)}
                                                  spids: [8020]
                                                )
                                              ]
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (Sentence
                                                  child: 
                                                    (C {(mm_install)} {(DQ (${ VSub_Name COMPFILE))})
                                                  terminator: <Op_Semi ';'>
                                                )
                                              ]
                                              action: [
                                                (C {(echo)} 
                                                  {
                                                    (DQ ('*** Updated revision control Id for ') 
                                                      (${ VSub_Name DESTDIR) 
                                                      (BracedVarSub
                                                        token: <VSub_Name COMPFILE>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_Pound
                                                            arg_word: {(.)}
                                                          )
                                                        spids: [8048 8052]
                                                      )
                                                    )
                                                  }
                                                )
                                              ]
                                              spids: [16777215 8038]
                                            )
                                          ]
                                          else_action: [
                                            (C {(echo)} 
                                              {
                                                (DQ ('*** Problem installing ') 
                                                  (${ VSub_Name COMPFILE) (', it will remain to merge by hand later')
                                                )
                                              }
                                            )
                                          ]
                                          spids: [8056 8070]
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Continue continue>
                                        )
                                      ]
                                      spids: [16777215 8024]
                                    )
                                  ]
                                  spids: [16777215 8076]
                                )
                              ]
                              spids: [16777215 7983]
                            )
                          ]
                          spids: [16777215 8079]
                        )
                        (Case
                          to_match: {(DQ (${ VSub_Name AUTO_RUN))}
                          arms: [
                            (case_arm
                              pat_list: [{(SQ )}]
                              action: [(C {(diff_loop)})]
                              spids: [16777215 8095 8105 16777215]
                            )
                            (case_arm
                              pat_list: [{(Lit_Other '*')}]
                              action: [
                                (C {(echo)} 
                                  {
                                    (DQ ('   *** ') (${ VSub_Name COMPFILE) 
                                      (' will remain for your consideration')
                                    )
                                  }
                                )
                              ]
                              spids: [8108 8109 8127 16777215]
                            )
                          ]
                          spids: [8082 8090 8130]
                        )
                      ]
                      spids: [7939 8136]
                    )
                  ]
                  spids: [16777215 7863]
                )
              ]
              spids: [16777215 8142]
            )
          ]
          spids: [7552 8147]
        )
      spids: [7536 7550]
    )
    (C {(echo)} {(SQ )})
    (C {(echo)} {(DQ ('*** Comparison complete'))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(-s)} {(DQ (${ VSub_Name MTREENEW))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('*** Saving mtree database for future upgrades'))})
            (AndOr
              children: [
                (C {(test)} {(-e)} {(DQ (${ VSub_Name MTREEFILE))})
                (C {(unlink)} {(${ VSub_Name MTREEFILE)})
              ]
              op_id: Op_DAmp
            )
            (C {(mv)} {(${ VSub_Name MTREENEW)} {(${ VSub_Name MTREEFILE)})
          ]
          spids: [16777215 8180]
        )
      ]
      spids: [16777215 8219]
    )
    (C {(echo)} {(SQ )})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TEST_FOR_FILES)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (SimpleCommand
                        words: [
                          {(find)}
                          {(${ VSub_Name TEMPROOT)}
                          {(-type)}
                          {(f)}
                          {(-size)}
                          {(Lit_Other '+') (0)}
                        ]
                        redirects: [
                          (Redir
                            op_id: Redir_Great
                            fd: 2
                            arg_word: {(/dev/null)}
                            spids: [8245]
                          )
                        ]
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [8229 8247]
              )
            }
          spids: [8228]
        )
      ]
      spids: [8228]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name TEST_FOR_FILES))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('*** Files that remain for you to merge by hand:'))})
            (Pipeline
              children: [
                (C {(find)} {(DQ (${ VSub_Name TEMPROOT))} {(-type)} {(f)} {(-size)} {(Lit_Other '+') (0)})
                (C {(sort)})
              ]
              negated: False
            )
            (C {(echo)} {(SQ )})
            (Case
              to_match: {(DQ (${ VSub_Name AUTO_RUN))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (C {(echo)} {(-n)} 
                      {
                        (DQ ('Do you wish to delete what is left of ') (${ VSub_Name TEMPROOT) 
                          ('? [no] ')
                        )
                      }
                    )
                    (C {(read)} {(DEL_TEMPROOT)})
                    (Case
                      to_match: {(DQ (${ VSub_Name DEL_TEMPROOT))}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '[') (yY) (Lit_Other ']') (Lit_Other '*')}]
                          action: [(C {(delete_temproot)})]
                          spids: [8348 8352 8358 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(echo)} {(DQ (' *** ') (${ VSub_Name TEMPROOT) (' will remain'))})
                          ]
                          spids: [8361 8362 8376 16777215]
                        )
                      ]
                      spids: [8337 8345 8379]
                    )
                  ]
                  spids: [16777215 8316 8382 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  spids: [8385 8386 8388 16777215]
                )
              ]
              spids: [8303 8311 8391]
            )
          ]
          spids: [16777215 8264]
        )
      ]
      else_action: [
        (C {(echo)} {(DQ ('*** ') (${ VSub_Name TEMPROOT) (' is empty, deleting'))})
        (C {(delete_temproot)})
      ]
      spids: [8393 8409]
    )
    (Case
      to_match: {(DQ (${ VSub_Name AUTO_INSTALLED_FILES))}
      arms: [
        (case_arm pat_list:[{(SQ )}] spids:[16777215 8424 8426 16777215])
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Case
              to_match: {(DQ (${ VSub_Name AUTO_RUN))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (Pipeline
                      children: [
                        (Subshell
                          child: 
                            (CommandList
                              children: [
                                (C {(echo)} {(SQ )})
                                (C {(echo)} 
                                  {
                                    (SQ 
                                      <
'*** You chose the automatic install option for files that did not'
                                      >
                                    )
                                  }
                                )
                                (C {(echo)} 
                                  {
                                    (SQ 
                                      <
'    exist on your system.  The following were installed for you:'
                                      >
                                    )
                                  }
                                )
                                (C {(echo)} {(DQ (${ VSub_Name AUTO_INSTALLED_FILES))})
                              ]
                            )
                          spids: [8448 8480]
                        )
                        (C {(${ VSub_Name PAGER)})
                      ]
                      negated: False
                    )
                  ]
                  spids: [16777215 8445 8489 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {(SQ <'*** You chose the automatic install option for files that did not'>)}
                    )
                    (C {(echo)} 
                      {(SQ <'    exist on your system.  The following were installed for you:'>)}
                    )
                    (C {(echo)} {(DQ (${ VSub_Name AUTO_INSTALLED_FILES))})
                  ]
                  spids: [8492 8493 8525 16777215]
                )
              ]
              spids: [8432 8440 8528]
            )
          ]
          spids: [8428 8429 8531 16777215]
        )
      ]
      spids: [8412 8420 8533]
    )
    (Case
      to_match: {(DQ (${ VSub_Name AUTO_UPGRADED_FILES))}
      arms: [
        (case_arm pat_list:[{(SQ )}] spids:[16777215 8548 8550 16777215])
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (Case
              to_match: {(DQ (${ VSub_Name AUTO_RUN))}
              arms: [
                (case_arm
                  pat_list: [{(SQ )}]
                  action: [
                    (Pipeline
                      children: [
                        (Subshell
                          child: 
                            (CommandList
                              children: [
                                (C {(echo)} {(SQ )})
                                (C {(echo)} 
                                  {
                                    (SQ 
                                      <
'*** You chose the automatic upgrade option for files that you did'
                                      >
                                    )
                                  }
                                )
                                (C {(echo)} 
                                  {
                                    (SQ 
                                      <
'    not alter on your system.  The following were upgraded for you:'
                                      >
                                    )
                                  }
                                )
                                (C {(echo)} {(DQ (${ VSub_Name AUTO_UPGRADED_FILES))})
                              ]
                            )
                          spids: [8572 8604]
                        )
                        (C {(${ VSub_Name PAGER)})
                      ]
                      negated: False
                    )
                  ]
                  spids: [16777215 8569 8613 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (C {(echo)} {(SQ )})
                    (C {(echo)} 
                      {(SQ <'*** You chose the automatic upgrade option for files that you did'>)}
                    )
                    (C {(echo)} 
                      {(SQ <'    not alter on your system.  The following were upgraded for you:'>)}
                    )
                    (C {(echo)} {(DQ (${ VSub_Name AUTO_UPGRADED_FILES))})
                  ]
                  spids: [8616 8617 8649 16777215]
                )
              ]
              spids: [8556 8564 8652]
            )
          ]
          spids: [8552 8553 8655 16777215]
        )
      ]
      spids: [8536 8544 8657]
    )
    (FuncDef
      name: run_it_now
      body: 
        (BraceGroup
          children: [
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$AUTO_RUN'))} {(Lit_Other ']')})
                (ControlFlow token:<ControlFlow_Return return>)
              ]
              op_id: Op_DAmp
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:answer) op:Equal spids:[8686])]
              spids: [8684]
            )
            (C {(echo)} {(SQ )})
            (While
              cond: [(Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)]
              body: 
                (DoGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$RUN_UPDATES'))} 
                                  {(Lit_Other '=')} {(always)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:answer)
                                  op: Equal
                                  rhs: {(y)}
                                  spids: [8723]
                                )
                              ]
                              spids: [8723]
                            )
                          ]
                          spids: [16777215 8720]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$RUN_UPDATES'))} 
                                  {(Lit_Other '=')} {(never)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:answer)
                                  op: Equal
                                  rhs: {(n)}
                                  spids: [8745]
                                )
                              ]
                              spids: [8745]
                            )
                          ]
                          spids: [8727 8742]
                        )
                      ]
                      else_action: [
                        (C {(echo)} {(-n)} {(SQ <'    Would you like to run it now? y or n [n] '>)})
                        (C {(read)} {(answer)})
                      ]
                      spids: [8749 8766]
                    )
                    (Case
                      to_match: {(DQ ($ VSub_Name '$answer'))}
                      arms: [
                        (case_arm
                          pat_list: [{(y)}]
                          action: [
                            (C {(echo)} {(DQ ('    Running ') (${ VSub_Number 1))})
                            (C {(echo)} {(SQ )})
                            (C {(eval)} {(DQ (${ VSub_Number 1))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                            )
                          ]
                          spids: [8779 8780 8811 16777215]
                        )
                        (case_arm
                          pat_list: [{(SQ )} {(n)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(KW_Bang '!')} 
                                          {(DQ ($ VSub_Name '$RUN_UPDATES'))} {(Lit_Other '=')} {(never)} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)} {(SQ )})
                                    (C {(echo)} {(DQ ('       *** Cancelled'))})
                                    (C {(echo)} {(SQ )})
                                  ]
                                  spids: [16777215 8838]
                                )
                              ]
                              spids: [16777215 8860]
                            )
                            (C {(echo)} 
                              {(DQ ('    Make sure to run ') (${ VSub_Number 1) (' yourself'))}
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                            )
                          ]
                          spids: [16777215 8818 8877 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(echo)} {(SQ )})
                            (C {(echo)} 
                              {
                                (DQ ('       *** Sorry, I do not understand your answer (') 
                                  (${ VSub_Name answer) (')')
                                )
                              }
                            )
                            (C {(echo)} {(SQ )})
                          ]
                          spids: [8880 8881 16777215 8907]
                        )
                      ]
                      spids: [8770 8776 8907]
                    )
                  ]
                  spids: [8702 8910]
                )
            )
          ]
          spids: [8665]
        )
      spids: [8660 8664]
    )
    (Case
      to_match: {(DQ (${ VSub_Name NEED_NEWALIASES))}
      arms: [
        (case_arm pat_list:[{(SQ )}] spids:[16777215 8927 8929 16777215])
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (C {(echo)} {(SQ )})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name DESTDIR))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ('*** You installed a new aliases file into ') (${ VSub_Name DESTDIR) 
                          ('/etc/mail, but')
                        )
                      }
                    )
                    (C {(echo)} 
                      {(DQ ('    the newaliases command is limited to the directories configured'))}
                    )
                    (C {(echo)} 
                      {(DQ ('    in sendmail.cf.  Make sure to create your aliases database by'))}
                    )
                    (C {(echo)} {(DQ ('    hand when your sendmail configuration is done.'))})
                  ]
                  spids: [16777215 8956]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ('*** You installed a new aliases file, so make sure that you run'))})
                (C {(echo)} {(DQ ("    '/usr/bin/newaliases' to rebuild your aliases database"))})
                (C {(run_it_now)} {(SQ </usr/bin/newaliases>)})
              ]
              spids: [8991 9015]
            )
          ]
          spids: [8931 8932 9018 16777215]
        )
      ]
      spids: [8915 8923 9020]
    )
    (Case
      to_match: {(DQ (${ VSub_Name NEED_CAP_MKDB))}
      arms: [
        (case_arm pat_list:[{(SQ )}] spids:[16777215 9035 9037 16777215])
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (C {(echo)} {(SQ )})
            (C {(echo)} {(DQ ('*** You installed a login.conf file, so make sure that you run'))})
            (C {(echo)} {(DQ ("    '/usr/bin/cap_mkdb ") (${ VSub_Name DESTDIR) ("/etc/login.conf'"))})
            (C {(echo)} {(DQ ('     to rebuild your login.conf database'))})
            (C {(run_it_now)} {(DQ ('/usr/bin/cap_mkdb ') (${ VSub_Name DESTDIR) (/etc/login.conf))})
          ]
          spids: [9039 9040 9085 16777215]
        )
      ]
      spids: [9023 9031 9087]
    )
    (Case
      to_match: {(DQ (${ VSub_Name NEED_SERVICES_MKDB))}
      arms: [
        (case_arm pat_list:[{(SQ )}] spids:[16777215 9102 9104 16777215])
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (C {(echo)} {(SQ )})
            (C {(echo)} {(DQ ('*** You installed a services file, so make sure that you run'))})
            (C {(echo)} 
              {
                (DQ ("    '/usr/sbin/services_mkdb -q -o ") (${ VSub_Name DESTDIR) 
                  ('/var/db/services.db ') (${ VSub_Name DESTDIR) ("/etc/services'")
                )
              }
            )
            (C {(echo)} {(DQ ('     to rebuild your services database'))})
            (C {(run_it_now)} 
              {
                (DQ ('/usr/sbin/services_mkdb -q -o ') (${ VSub_Name DESTDIR) ('/var/db/services.db ') 
                  (${ VSub_Name DESTDIR) (/etc/services)
                )
              }
            )
          ]
          spids: [9106 9107 9160 16777215]
        )
      ]
      spids: [9090 9098 9162]
    )
    (Case
      to_match: {(DQ (${ VSub_Name NEED_PWD_MKDB))}
      arms: [
        (case_arm pat_list:[{(SQ )}] spids:[16777215 9177 9179 16777215])
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (C {(echo)} {(SQ )})
            (C {(echo)} {(DQ ('*** You installed a new master.passwd file, so make sure that you run'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name DESTDIR))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ("    '/usr/sbin/pwd_mkdb -d ") (${ VSub_Name DESTDIR) ('/etc -p ') 
                          (${ VSub_Name DESTDIR) ("/etc/master.passwd'")
                        )
                      }
                    )
                    (C {(echo)} {(DQ ('    to rebuild your password files'))})
                    (C {(run_it_now)} 
                      {
                        (DQ ('/usr/sbin/pwd_mkdb -d ') (${ VSub_Name DESTDIR) ('/etc -p ') 
                          (${ VSub_Name DESTDIR) (/etc/master.passwd)
                        )
                      }
                    )
                  ]
                  spids: [16777215 9213]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ("    '/usr/sbin/pwd_mkdb -p /etc/master.passwd'"))})
                (C {(echo)} {(DQ ('     to rebuild your password files'))})
                (C {(run_it_now)} {(SQ <'/usr/sbin/pwd_mkdb -p /etc/master.passwd'>)})
              ]
              spids: [9253 9277]
            )
          ]
          spids: [9181 9182 9280 16777215]
        )
      ]
      spids: [9165 9173 9282]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-e)} {(DQ (${ VSub_Name DESTDIR) (/etc/localtime))} {(-a)} 
                  {(KW_Bang '!')} {(-L)} {(DQ (${ VSub_Name DESTDIR) (/etc/localtime))} {(-a)} {(-z)} {(DQ (${ VSub_Name PRE_WORLD))} 
                  {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(SQ )})
            (AndOr
              children: [
                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name DESTDIR))} {(Lit_Other ']')})
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:tzs_args)
                      op: Equal
                      rhs: {(DQ ('-C ') (${ VSub_Name DESTDIR))}
                      spids: [9350]
                    )
                  ]
                  spids: [9350]
                )
              ]
              op_id: Op_DAmp
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name DESTDIR) (/var/db/zoneinfo))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ('*** Reinstalling ') 
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [(C {(cat)} {(${ VSub_Name DESTDIR) (/var/db/zoneinfo)})]
                              )
                            left_token: <Left_Backtick '`'>
                            spids: [9382 9389]
                          ) (' as ') (${ VSub_Name DESTDIR) (/etc/localtime)
                        )
                      }
                    )
                    (C {(tzsetup)} {($ VSub_Name '$tzs_args')} {(-r)})
                  ]
                  spids: [16777215 9375]
                )
              ]
              else_action: [
                (C {(echo)} 
                  {
                    (DQ ('*** There is no ') (${ VSub_Name DESTDIR) 
                      ('/var/db/zoneinfo file to update ') (${ VSub_Name DESTDIR) (/etc/localtime.)
                    )
                  }
                )
                (C {(echo)} {(SQ <'    You should run tzsetup'>)})
                (C {(run_it_now)} {(DQ ('tzsetup ') ($ VSub_Name '$tzs_args'))})
              ]
              spids: [9405 9438]
            )
          ]
          spids: [16777215 9324]
        )
      ]
      spids: [16777215 9440]
    )
    (C {(echo)} {(SQ )})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-r)} {(DQ (${ VSub_Name MM_EXIT_SCRIPT))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(.)} {(DQ (${ VSub_Name MM_EXIT_SCRIPT))})]
          spids: [16777215 9464]
        )
      ]
      spids: [16777215 9475]
    )
    (Case
      to_match: {(DQ (${ VSub_Name COMP_CONFS))}
      arms: [
        (case_arm pat_list:[{(SQ )}] spids:[16777215 9490 9492 16777215])
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (C {(.)} {(${ VSub_Name DESTDIR) (/etc/defaults/rc.conf)})
            (Pipeline
              children: [
                (Subshell
                  child: 
                    (CommandList
                      children: [
                        (C {(echo)} {(SQ )})
                        (C {(echo)} {(DQ ('*** Comparing conf files: ') (${ VSub_Name rc_conf_files))})
                        (ForEach
                          iter_name: CONF_FILE
                          iter_words: [{(${ VSub_Name rc_conf_files)}]
                          do_arg_iter: False
                          body: 
                            (DoGroup
                              children: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (C {(Lit_Other '[')} {(-r)} 
                                              {(DQ (${ VSub_Name DESTDIR) (${ VSub_Name CONF_FILE))} {(Lit_Other ']')}
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(echo)} {(SQ )})
                                        (C {(echo)} 
                                          {
                                            (DQ ('*** From ') (${ VSub_Name DESTDIR) 
                                              (${ VSub_Name CONF_FILE)
                                            )
                                          }
                                        )
                                        (C {(echo)} 
                                          {
                                            (DQ ('*** From ') (${ VSub_Name DESTDIR) 
                                              (/etc/defaults/rc.conf)
                                            )
                                          }
                                        )
                                        (ForEach
                                          iter_name: RC_CONF_VAR
                                          iter_words: [
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (Pipeline
                                                        children: [
                                                          (C {(grep)} {(-i)} 
                                                            {(Lit_Other '^') (Lit_Other '[') (a-z) 
                                                              (Lit_Other ']')
                                                            } {(${ VSub_Name DESTDIR) (${ VSub_Name CONF_FILE)}
                                                          )
                                                          (C {(cut)} {(-d)} {(SQ <'='>)} {(-f)} {(1)})
                                                        ]
                                                        negated: False
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_Backtick '`'>
                                                spids: [9597 9628]
                                              )
                                            }
                                          ]
                                          do_arg_iter: False
                                          body: 
                                            (DoGroup
                                              children: [
                                                (C {(echo)} {(SQ )})
                                                (C {(grep)} {(-w)} 
                                                  {(Lit_Other '^') (${ VSub_Name RC_CONF_VAR)} {(${ VSub_Name DESTDIR) (${ VSub_Name CONF_FILE)}
                                                )
                                                (AndOr
                                                  children: [
                                                    (C {(grep)} {(-w)} 
                                                      {(Lit_Other '^') (${ VSub_Name RC_CONF_VAR)} {(${ VSub_Name DESTDIR) (/etc/defaults/rc.conf)}
                                                    )
                                                    (C {(echo)} 
                                                      {
                                                        (SQ <' * No default variable with this name'>)
                                                      }
                                                    )
                                                  ]
                                                  op_id: Op_DPipe
                                                )
                                              ]
                                              spids: [9631 9681]
                                            )
                                          spids: [9596 9629]
                                        )
                                      ]
                                      spids: [16777215 9557]
                                    )
                                  ]
                                  spids: [16777215 9684]
                                )
                              ]
                              spids: [9536 9687]
                            )
                          spids: [9530 9534]
                        )
                      ]
                    )
                  spids: [9507 9688]
                )
                (C {(${ VSub_Name PAGER)})
              ]
              negated: False
            )
            (C {(echo)} {(SQ )})
          ]
          spids: [9494 9495 9703 16777215]
        )
      ]
      spids: [9478 9486 9705]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name PRESERVE_FILES))} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(find)}
                {(-d)}
                {($ VSub_Name '$PRESERVE_FILES_DIR')}
                {(-type)}
                {(d)}
                {(-empty)}
                {(-delete)}
              ]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[9740])]
            )
            (SimpleCommand
              words: [{(rmdir)} {($ VSub_Name '$PRESERVE_FILES_DIR')}]
              redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[9748])]
            )
          ]
          spids: [16777215 9723]
        )
      ]
      spids: [16777215 9751]
    )
    (C {(exit)} {(0)})
  ]
)