(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TYPE)
          op: assign_op.Equal
          rhs: {(DQ <FreeBSD>)}
          spids: [128]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:REVISION)
          op: assign_op.Equal
          rhs: {(DQ <11.1>)}
          spids: [133]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BRANCH)
          op: assign_op.Equal
          rhs: {(DQ <STABLE>)}
          spids: [138]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name BRANCH_OVERRIDE))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:BRANCH)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Name BRANCH_OVERRIDE)}
                  spids: [161]
                )
              ]
            )
          ]
          spids: [143 158]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RELEASE)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name REVISION) <-> (${ Id.VSub_Name BRANCH))}
          spids: [168]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:VERSION)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name TYPE) <' '> (${ Id.VSub_Name RELEASE))}
          spids: [179]
        )
      ]
    )
    (command.ShFunction
      name: findvcs
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<savedir>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:savedir)
                  op: assign_op.Equal
                  rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>}))}
                  spids: [216]
                )
              ]
            )
            (C {<cd>} {(${ Id.VSub_Name SYSDIR) <'/..'>})
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} 
                          {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>}))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-e>} 
                                      {(DQ <'./'> ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:VCSDIR)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: (C {<pwd>})
                                      ) (DQ <'/'> ($ Id.VSub_Number '$1'))
                                    }
                                  spids: [268]
                                )
                              ]
                            )
                            (C {<cd>} {(${ Id.VSub_Name savedir)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [251 265]
                        )
                      ]
                    )
                    (C {<cd>} {<..>})
                  ]
                )
            )
            (C {<cd>} {(${ Id.VSub_Name savedir)})
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name SYSDIR))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SYSDIR)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<dirname>} {($ Id.VSub_Number '$0')})
                      ) <'/..'>
                    }
                  spids: [333]
                )
              ]
            )
          ]
          spids: [315 330]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name PARAMFILE))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:RELDATE)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {<awk>} {(SQ <'/__FreeBSD_version.*propagated to newvers/ {print $3}'>)} 
                            {(${ Id.VSub_Name PARAMFILE)}
                          )
                      )
                    }
                  spids: [362]
                )
              ]
            )
          ]
          spids: [344 359]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:RELDATE)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (C {<awk>} {(SQ <'/__FreeBSD_version.*propagated to newvers/ {print $3}'>)} 
                        {(${ Id.VSub_Name SYSDIR) <'/sys/param.h'>}
                      )
                  )
                }
              spids: [380]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:b)
          op: assign_op.Equal
          rhs: {<'share/examples/etc/bsd-style-copyright'>}
          spids: [399]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-r>} {(DQ (${ Id.VSub_Name SYSDIR) <'/../COPYRIGHT'>)} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:year)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (C {<sed>} {<-Ee>} 
                            {
                              (SQ 
                                <
'/^Copyright .* The FreeBSD Project/!d;s/^.*1992-([0-9]*) .*$/\\1/g'
                                >
                              )
                            } {(${ Id.VSub_Name SYSDIR) <'/../COPYRIGHT'>}
                          )
                      )
                    }
                  spids: [421]
                )
              ]
            )
          ]
          spids: [402 418]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:year)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <Y>})
                  )
                }
              spids: [440]
            )
          ]
        )
      ]
    )
    (command.ForEach
      iter_name: bsd_copyright
      iter_words: [
        {<'../'> ($ Id.VSub_DollarName '$b')}
        {<'../../'> ($ Id.VSub_DollarName '$b')}
        {<'../../../'> ($ Id.VSub_DollarName '$b')}
        {<'/usr/src/'> ($ Id.VSub_DollarName '$b')}
        {<'/usr/'> ($ Id.VSub_DollarName '$b')}
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-r>} 
                              {(DQ ($ Id.VSub_DollarName '$bsd_copyright'))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:COPYRIGHT)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (C {<sed>} {<-e>} 
                                    {
                                      (DQ <'s/'> <Id.Lit_BadBackslash '\\'> <'[year'> 
                                        <Id.Lit_BadBackslash '\\'> <']/1992-'> ($ Id.VSub_DollarName '$year') <'/'>
                                      )
                                    } {<-e>} {(SQ <'s/\\[your name here\\]\\.* /The FreeBSD Project./'>)} {<-e>} 
                                    {(SQ <'s/\\[your name\\]\\.*/The FreeBSD Project./'>)} {<-e>} {(SQ <'/\\[id for your version control system, if any\\]/d'>)} 
                                    {($ Id.VSub_DollarName '$bsd_copyright')}
                                  )
                              )
                            }
                          spids: [494]
                        )
                      ]
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Break break>)
                  ]
                  spids: [478 491]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$COPYRIGHT'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:COPYRIGHT)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'/*-\n'> <' * Copyright (c) 1992-'> ($ Id.VSub_DollarName '$year') 
                        <' The FreeBSD Project.\n'> <' * All rights reserved.\n'> <' *\n'> <' */'>
                      )
                    }
                  spids: [607]
                )
              ]
            )
          ]
          spids: [591 604]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:COPYRIGHT)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_DollarName '$COPYRIGHT') <'\n'>)}
          spids: [624]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$VARS_ONLY'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})]
          spids: [637 650]
        )
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:LC_ALL)
                  op: assign_op.Equal
                  rhs: {<C>}
                  spids: [660]
                )
              ]
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<export>} {<LC_ALL>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-r>} {<version>} {<Id.Lit_RBracket ']'>})
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {<0>}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<version>})]
              do_fork: T
            )
          ]
          spids: [668 680]
        )
      ]
    )
    (C {<touch>} {<version>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:v)
          op: assign_op.Equal
          rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<cat>} {<version>}))}
          spids: [698]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:u)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name USER>
                suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<root>})
              )
            }
          spids: [707]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:d)
          op: assign_op.Equal
          rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>}))}
          spids: [714]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:h)
          op: assign_op.Equal
          rhs: 
            {
              (braced_var_sub
                token: <Id.VSub_Name HOSTNAME>
                suffix_op: 
                  (suffix_op.Unary
                    tok: <Id.VTest_ColonHyphen ':-'>
                    arg_word: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<hostname>}))}
                  )
              )
            }
          spids: [721]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$SOURCE_DATE_EPOCH'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:t)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Simple
                                                words: [
                                                  {<date>}
                                                  {<-r>}
                                                  {($ Id.VSub_DollarName '$SOURCE_DATE_EPOCH')}
                                                ]
                                                redirects: [
                                                  (redir
                                                    op: <Id.Redir_Great '2>'>
                                                    loc: (redir_loc.Fd fd:2)
                                                    arg: {<'/dev/null'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        }
                                      spids: [752]
                                    )
                                  ]
                                )
                              ]
                              negated: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {(DQ <'Invalid SOURCE_DATE_EPOCH'>)}]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [748 767]
                )
              ]
            )
          ]
          spids: [732 745]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:t)
              op: assign_op.Equal
              rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<date>}))}
              spids: [790]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:i)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (C 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Name MAKE>
                        suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<make>})
                      )
                    } {<-V>} {<KERN_IDENT>}
                  )
              )
            }
          spids: [799]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:compiler_v)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (command.Simple
                        words: [
                          {
                            (command_sub
                              left_token: <Id.Left_DollarParen '$('>
                              child: 
                                (C 
                                  {
                                    (braced_var_sub
                                      token: <Id.VSub_Name MAKE>
                                      suffix_op: 
                                        (suffix_op.Unary
                                          tok: <Id.VTest_ColonHyphen ':-'>
                                          arg_word: {<make>}
                                        )
                                    )
                                  } {<-V>} {<CC>}
                                )
                            )
                          }
                          {<-v>}
                        ]
                        redirects: [
                          (redir
                            op: <Id.Redir_GreatAnd '2>&'>
                            loc: (redir_loc.Fd fd:2)
                            arg: {<1>}
                          )
                        ]
                        do_fork: T
                      )
                      (C {<grep>} {<-w>} {(SQ <version>)})
                    ]
                    negated: F
                  )
              )
            }
          spids: [814]
        )
      ]
    )
    (command.ForEach
      iter_name: dir
      iter_words: [{<'/usr/bin'>} {<'/usr/local/bin'>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} 
                              {(DQ (${ Id.VSub_Name svnversion))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                  spids: [859 877]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {<-x>} 
                                  {(DQ (${ Id.VSub_Name dir) <'/svnversion'>)} {<Id.Lit_RBracket ']'>}
                                )
                                (C {<Id.Lit_LBracket '['>} {<-z>} {(${ Id.VSub_Name svnversion)} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [
                        {(${ Id.VSub_Name dir) <'/svnversion'>}
                        {
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: (C {<realpath>} {(${ Id.VSub_Number 0)})
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                        (redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} 
                                      {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:svnversion)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name dir) <'/svnversion'>}
                                  spids: [966]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [950 963]
                        )
                      ]
                    )
                  ]
                  spids: [886 915]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name svnversion))} 
                          {<Id.Lit_RBracket ']'>}
                        )
                        (C {<Id.Lit_LBracket '['>} {<-x>} {<'/usr/bin/svnliteversion'>} 
                          {<Id.Lit_RBracket ']'>}
                        )
                      ]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [
                {<'/usr/bin/svnliteversion'>}
                {
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: (C {<realpath>} {(${ Id.VSub_Number 0)})
                  )
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
                (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
              ]
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:svnversion)
                          op: assign_op.Equal
                          rhs: {<'/usr/bin/svnliteversion'>}
                          spids: [1046]
                        )
                      ]
                    )
                  ]
                  spids: [1030 1043]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:svnversion)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [1053]
                    )
                  ]
                )
              ]
            )
          ]
          spids: [984 1010]
        )
      ]
    )
    (command.ForEach
      iter_name: dir
      iter_words: [{<'/usr/bin'>} {<'/usr/local/bin'>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {<-x>} {(DQ (${ Id.VSub_Name dir) <'/p4'>)} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                                (C {<Id.Lit_LBracket '['>} {<-z>} {(${ Id.VSub_Name p4_cmd)} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:p4_cmd)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name dir) <'/p4'>}
                          spids: [1107]
                        )
                      ]
                    )
                  ]
                  spids: [1075 1104]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [(command.Sentence child:(C {<findvcs>} {<.git>}) terminator:<Id.Op_Semi _>)]
            )
          action: [
            (command.ForEach
              iter_name: dir
              iter_words: [{<'/usr/bin'>} {<'/usr/local/bin'>}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-x>} 
                                      {(DQ (${ Id.VSub_Name dir) <'/git'>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:git_cmd)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ (${ Id.VSub_Name dir) <'/git --git-dir='> 
                                        (${ Id.VSub_Name VCSDIR)
                                      )
                                    }
                                  spids: [1163]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [1143 1160]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [1119 1126]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [(command.Sentence child:(C {<findvcs>} {<.hg>}) terminator:<Id.Op_Semi _>)]
            )
          action: [
            (command.ForEach
              iter_name: dir
              iter_words: [{<'/usr/bin'>} {<'/usr/local/bin'>}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-x>} 
                                      {(DQ (${ Id.VSub_Name dir) <'/hg'>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:hg_cmd)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ (${ Id.VSub_Name dir) <'/hg -R '> (${ Id.VSub_Name VCSDIR))}
                                  spids: [1230]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [1210 1227]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [1186 1193]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$svnversion'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:svn)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.AndOr
                            ops: [Id.Op_DAmp]
                            children: [
                              (C {<cd>} {(${ Id.VSub_Name SYSDIR)})
                              (command.Simple
                                words: [{($ Id.VSub_DollarName '$svnversion')}]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                            ]
                          )
                      )
                    }
                  spids: [1270]
                )
              ]
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$svn'))}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'> 
                      <Id.Lit_LBracket '['> <MSP> <Id.Lit_RBracket ']'>
                    }
                    {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:svn)
                          op: assign_op.Equal
                          rhs: {(DQ <' r'> (${ Id.VSub_Name svn))}
                          spids: [1312]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:modified)
                          op: assign_op.Equal
                          rhs: {<true>}
                          spids: [1321]
                        )
                      ]
                    )
                  ]
                  spids: [1298 1309 1325 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:svn)
                          op: assign_op.Equal
                          rhs: {(DQ <' r'> (${ Id.VSub_Name svn))}
                          spids: [1335]
                        )
                      ]
                    )
                  ]
                  spids: [1328 1332 1344 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [(C {<unset>} {<svn>})]
                  spids: [1347 1348 1356 -1]
                )
              ]
            )
          ]
          spids: [1253 1267]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$git_cmd'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:git)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [
                              {($ Id.VSub_DollarName '$git_cmd')}
                              {<rev-parse>}
                              {<--verify>}
                              {<--short>}
                              {<HEAD>}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [1381]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:svn)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [
                              {($ Id.VSub_DollarName '$git_cmd')}
                              {<svn>}
                              {<find-rev>}
                              {($ Id.VSub_DollarName '$git')}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [1400]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$svn'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:svn)
                          op: assign_op.Equal
                          rhs: {(DQ <' r'> (${ Id.VSub_Name svn))}
                          spids: [1434]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:git)
                          op: assign_op.Equal
                          rhs: {(DQ <'='> (${ Id.VSub_Name git))}
                          spids: [1443]
                        )
                      ]
                    )
                  ]
                  spids: [1417 1431]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:svn)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (C {($ Id.VSub_DollarName '$git_cmd')} {<log>} {<--grep>} 
                                    {(SQ <'^git-svn-id:'>)}
                                  )
                                  (C {<grep>} {(SQ <'^    git-svn-id:'>)})
                                  (C {<head>} {<-1>})
                                  (C {<sed>} {<-n>} {(SQ <'s/^.*@\\([0-9][0-9]*\\).*$/\\1/p'>)})
                                ]
                                negated: F
                              )
                          )
                        }
                      spids: [1455]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$svn'))} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:svn)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (C {($ Id.VSub_DollarName '$git_cmd')} {<log>} 
                                            {<--format> <Id.Lit_Equals '='> (SQ <'format:%N'>)}
                                          )
                                          (C {<grep>} {(SQ <'^svn '>)})
                                          (C {<head>} {<-1>})
                                          (C {<sed>} {<-n>} 
                                            {(SQ <'s/^.*revision=\\([0-9][0-9]*\\).*$/\\1/p'>)}
                                          )
                                        ]
                                        negated: F
                                      )
                                  )
                                }
                              spids: [1528]
                            )
                          ]
                        )
                      ]
                      spids: [1511 1525]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$svn'))} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:svn)
                              op: assign_op.Equal
                              rhs: {(DQ <' r'> (${ Id.VSub_Name svn))}
                              spids: [1604]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:git)
                              op: assign_op.Equal
                              rhs: {(DQ <'+'> (${ Id.VSub_Name git))}
                              spids: [1613]
                            )
                          ]
                        )
                      ]
                      spids: [1587 1601]
                    )
                  ]
                  else_action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:git)
                          op: assign_op.Equal
                          rhs: {(DQ <' '> (${ Id.VSub_Name git))}
                          spids: [1625]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:git_b)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (C {($ Id.VSub_DollarName '$git_cmd')} {<rev-parse>} {<--abbrev-ref>} {<HEAD>})
                      )
                    }
                  spids: [1640]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$git_b'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:git)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name git) <'('> (${ Id.VSub_Name git_b) <')'>)}
                          spids: [1671]
                        )
                      ]
                    )
                  ]
                  spids: [1654 1668]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [
                                (C {($ Id.VSub_DollarName '$git_cmd')} 
                                  {<--work-tree> <Id.Lit_Equals '='> (${ Id.VSub_Name VCSDIR) <'/..'>} {<diff-index>} {<--name-only>} {<HEAD>}
                                )
                                (C {<read>} {<dummy>})
                              ]
                              negated: F
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:git)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name git) <-dirty>)}
                          spids: [1716]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:modified)
                          op: assign_op.Equal
                          rhs: {<true>}
                          spids: [1725]
                        )
                      ]
                    )
                  ]
                  spids: [1687 1713]
                )
              ]
            )
          ]
          spids: [1364 1378]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$p4_cmd'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:p4version)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.AndOr
                            ops: [Id.Op_DAmp]
                            children: [
                              (C {<cd>} {(${ Id.VSub_Name SYSDIR)})
                              (command.Pipeline
                                children: [
                                  (command.Simple
                                    words: [
                                      {($ Id.VSub_DollarName '$p4_cmd')}
                                      {<changes>}
                                      {<-m1>}
                                      {(DQ <'./...#have'>)}
                                    ]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_GreatAnd '2>&'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<1>}
                                      )
                                    ]
                                    do_fork: T
                                  )
                                  (C {<awk>} {(SQ <'{ print $2 }'>)})
                                ]
                                negated: F
                              )
                            ]
                          )
                      )
                    }
                  spids: [1751]
                )
              ]
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$p4version'))}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:p4version)
                          op: assign_op.Equal
                          rhs: {(DQ <' '> (${ Id.VSub_Name p4version))}
                          spids: [1807]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:p4opened)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.AndOr
                                    ops: [Id.Op_DAmp]
                                    children: [
                                      (C {<cd>} {(${ Id.VSub_Name SYSDIR)})
                                      (command.Simple
                                        words: [
                                          {($ Id.VSub_DollarName '$p4_cmd')}
                                          {<opened>}
                                          {<'./...'>}
                                        ]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_GreatAnd '2>&'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<1>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                    ]
                                  )
                              )
                            }
                          spids: [1816]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {(DQ ($ Id.VSub_DollarName '$p4opened'))}
                      arms: [
                        (case_arm
                          pat_list: [{<File> <Id.Lit_Star '*'>}]
                          spids: [1848 1850 1852 -1]
                        )
                        (case_arm
                          pat_list: [{<'//'> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:p4version)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name p4version) <'+edit'>)}
                                  spids: [1860]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:modified)
                                  op: assign_op.Equal
                                  rhs: {<true>}
                                  spids: [1869]
                                )
                              ]
                            )
                          ]
                          spids: [1855 1857 1873 -1]
                        )
                      ]
                    )
                  ]
                  spids: [1800 1804 1879 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [(C {<unset>} {<p4version>})]
                  spids: [1882 1883 1889 -1]
                )
              ]
            )
          ]
          spids: [1734 1748]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$hg_cmd'))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:hg)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [{($ Id.VSub_DollarName '$hg_cmd')} {<id>}]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [1914]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:svn)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                words: [{($ Id.VSub_DollarName '$hg_cmd')} {<svn>} {<info>}]
                                redirects: [
                                  (redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                              (C {<awk>} {<-F> (SQ <': '>)} {(SQ <'/Revision/ { print $2 }'>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [1927]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$svn'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:svn)
                          op: assign_op.Equal
                          rhs: {(DQ <' r'> (${ Id.VSub_Name svn))}
                          spids: [1977]
                        )
                      ]
                    )
                  ]
                  spids: [1960 1974]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$hg'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:hg)
                          op: assign_op.Equal
                          rhs: {(DQ <' '> (${ Id.VSub_Name hg))}
                          spids: [2006]
                        )
                      ]
                    )
                  ]
                  spids: [1989 2003]
                )
              ]
            )
          ]
          spids: [1897 1911]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:include_metadata)
          op: assign_op.Equal
          rhs: {<true>}
          spids: [2020]
        )
      ]
    )
    (command.WhileUntil
      keyword: <Id.KW_While while>
      cond: 
        (condition.Shell
          commands: [(command.Sentence child:(C {<getopts>} {<rR>} {<opt>}) terminator:<Id.Op_Semi _>)]
        )
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$opt'))}
              arms: [
                (case_arm
                  pat_list: [{<r>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:include_metadata)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [2048]
                        )
                      ]
                    )
                  ]
                  spids: [2044 2045 2051 -1]
                )
                (case_arm
                  pat_list: [{<R>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name modified))} 
                                      {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:include_metadata)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [2076]
                                )
                              ]
                            )
                          ]
                          spids: [2058 2073]
                        )
                      ]
                    )
                  ]
                  spids: [2054 2055 -1 2082]
                )
              ]
            )
          ]
        )
    )
    (C {<shift>} 
      {
        (word_part.ArithSub
          anode: 
            (arith_expr.Binary
              op_id: Id.Arith_Minus
              left: <Id.Lit_ArithVarLike OPTIND>
              right: {<Id.Lit_Digits 1>}
            )
        )
      }
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name include_metadata))} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:VERINFO)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ (${ Id.VSub_Name VERSION) <' '> (${ Id.VSub_Name svn) (${ Id.VSub_Name git) 
                        (${ Id.VSub_Name hg) (${ Id.VSub_Name p4version)
                      )
                    }
                  spids: [2116]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:VERSTR)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ (${ Id.VSub_Name VERINFO) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\\\'>
                        ) <n>
                      )
                    }
                  spids: [2137]
                )
              ]
            )
          ]
          spids: [2098 2113]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:VERINFO)
              op: assign_op.Equal
              rhs: 
                {
                  (DQ (${ Id.VSub_Name VERSION) <' #'> (${ Id.VSub_Name v) (${ Id.VSub_Name svn) 
                    (${ Id.VSub_Name git) (${ Id.VSub_Name hg) (${ Id.VSub_Name p4version) <': '> (${ Id.VSub_Name t)
                  )
                }
              spids: [2149]
            )
          ]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:VERSTR)
              op: assign_op.Equal
              rhs: 
                {
                  (DQ (${ Id.VSub_Name VERINFO) 
                    (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'n    '> (${ Id.VSub_Name u) <'@'> (${ Id.VSub_Name h) <':'> (${ Id.VSub_Name d) 
                    (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <n>
                  )
                }
              spids: [2177]
            )
          ]
        )
      ]
    )
    (command.Simple
      words: [{<cat>}]
      redirects: [
        (redir
          op: <Id.Redir_DLess '<<'>
          loc: (redir_loc.Fd fd:0)
          arg: 
            (redir_param.HereDoc
              here_begin: {<EOF>}
              here_end_span_id: 2267
              stdin_parts: [
                ($ Id.VSub_DollarName '$COPYRIGHT')
                <'\n'>
                <'#define SCCSSTR '>
                <Id.Right_DoubleQuote '"'>
                <'@(#)'>
                (${ Id.VSub_Name VERINFO)
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'#define VERSTR '>
                <Id.Right_DoubleQuote '"'>
                (${ Id.VSub_Name VERSTR)
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'#define RELSTR '>
                <Id.Right_DoubleQuote '"'>
                (${ Id.VSub_Name RELEASE)
                <Id.Right_DoubleQuote '"'>
                <'\n'>
                <'\n'>
                <'char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR;\n'>
                <'char version[sizeof(VERSTR) > 256 ? sizeof(VERSTR) : 256] = VERSTR;\n'>
                <'char compiler_version[] = '>
                <Id.Right_DoubleQuote '"'>
                (${ Id.VSub_Name compiler_v)
                <Id.Right_DoubleQuote '"'>
                <';\n'>
                <'char ostype[] = '>
                <Id.Right_DoubleQuote '"'>
                (${ Id.VSub_Name TYPE)
                <Id.Right_DoubleQuote '"'>
                <';\n'>
                <'char osrelease[sizeof(RELSTR) > 32 ? sizeof(RELSTR) : 32] = RELSTR;\n'>
                <'int osreldate = '>
                (${ Id.VSub_Name RELDATE)
                <';\n'>
                <'char kern_ident[] = '>
                <Id.Right_DoubleQuote '"'>
                (${ Id.VSub_Name i)
                <Id.Right_DoubleQuote '"'>
                <';\n'>
              ]
            )
        )
        (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<vers.c>})
      ]
      do_fork: T
    )
    (command.Simple
      words: [
        {<echo>}
        {
          (word_part.ArithSub
            anode: 
              (arith_expr.Binary
                op_id: Id.Arith_Plus
                left: <Id.Lit_ArithVarLike v>
                right: {<Id.Lit_Digits 1>}
              )
          )
        }
      ]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<version>})]
      do_fork: T
    )
  ]
)