(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-e)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PATH)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$PATH') (Id.Lit_Other ':') (/usr/local/bin)}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:XBIN)
          op: assign_op.Equal
          rhs: {(usr/xbin)}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:SRC) op:assign_op.Equal rhs:{(src)} spids:[18])]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMPKB)
          op: assign_op.Equal
          rhs: {(32000)}
          spids: [25]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PACKAGEDIR)
          op: assign_op.Equal
          rhs: {(/usr/bigports/Packages)}
          spids: [29]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PACKAGESOURCEDIR)
          op: assign_op.Equal
          rhs: {(/usr/bigports/Sources)}
          spids: [32]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PACKAGELIST)
          op: assign_op.Equal
          rhs: {(packages.install)}
          spids: [38]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PACKAGESOURCELIST)
          op: assign_op.Equal
          rhs: {(package_sources.install)}
          spids: [44]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:secs)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:48)
                command_list: 
                  (command.CommandList
                    children: [
                      (C {(expr)} {(32)} {(SQ (Token id:Id.Lit_Chars val:'*' span_id:56))} {(64)})
                    ]
                  )
              )
            }
          spids: [47]
        )
      ]
    )
    (C {(export)} {(Id.Lit_VarLike 'SHELL=') (/bin/sh)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TRUNK)
          op: assign_op.Equal
          rhs: {(https) (Id.Lit_Other ':') (//gforge.cs.vu.nl/svn/minix/trunk)}
          spids: [71]
        )
      ]
    )
    (command.ShFunction
      name: make_hdimage
      body: 
        (command.BraceGroup
          children: [
            (C {(dd)} {(Id.Lit_VarLike 'if=') ($ Id.VSub_DollarName '$TMPDISK1')} 
              {(Id.Lit_VarLike 'of=') (usrimage)} {(Id.Lit_VarLike 'bs=') ($ Id.VSub_DollarName '$BS')} 
              {(Id.Lit_VarLike 'count=') ($ Id.VSub_DollarName '$USRBLOCKS')}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:rootsize)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_Backtick val:'`' span_id:101)
                        command_list: 
                          (command.CommandList
                            children: [(C {(stat)} {(-size)} {(rootimage)})]
                          )
                      )
                    }
                  spids: [100]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:usrsize)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_Backtick val:'`' span_id:113)
                        command_list: 
                          (command.CommandList
                            children: [(C {(stat)} {(-size)} {(usrimage)})]
                          )
                      )
                    }
                  spids: [112]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:rootsects)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_Backtick val:'`' span_id:126)
                        command_list: 
                          (command.CommandList
                            children: [(C {(expr)} {($ Id.VSub_DollarName '$rootsize')} {(/)} {(512)})]
                          )
                      )
                    }
                  spids: [125]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:usrsects)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_Backtick val:'`' span_id:140)
                        command_list: 
                          (command.CommandList
                            children: [(C {(expr)} {($ Id.VSub_DollarName '$usrsize')} {(/)} {(512)})]
                          )
                      )
                    }
                  spids: [139]
                )
              ]
            )
            (command.Simple
              words: [{(dd)} {(Id.Lit_VarLike 'count=') (2)}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Less val:'<' span_id:160)
                  fd: -1
                  arg_word: {(/dev/zero)}
                )
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:164)
                  fd: -1
                  arg_word: {(tmpimage)}
                )
              ]
            )
            (C {(partition)} {(-fm)} {(tmpimage)} {(2)} 
              {(81) (Id.Lit_Other ':') ($ Id.VSub_DollarName '$rootsects') (Id.Lit_Star '*')} {(0) (Id.Lit_Other ':') (0)} {(81) (Id.Lit_Other ':') ($ Id.VSub_DollarName '$usrsects')}
            )
            (C {(installboot)} {(-m)} {(tmpimage)} {(/usr/mdec/masterboot)})
            (command.Simple
              words: [{(dd)} {(Id.Lit_VarLike 'count=') (1)}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Less val:'<' span_id:204)
                  fd: -1
                  arg_word: {(tmpimage)}
                )
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:208)
                  fd: -1
                  arg_word: {(subpart)}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:primsects)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_Backtick val:'`' span_id:218)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(expr)} {(1)} {(Id.Lit_Other '+')} 
                                {($ Id.VSub_DollarName '$rootsects')} {(Id.Lit_Other '+')} {($ Id.VSub_DollarName '$usrsects')}
                              )
                            ]
                          )
                      )
                    }
                  spids: [217]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:cyl)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_Backtick val:'`' span_id:236)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(expr)} {(SQ (Token id:Id.Lit_Chars val:'(' span_id:242))} 
                                {($ Id.VSub_DollarName '$primsects')} {(SQ (Token id:Id.Lit_Chars val:')' span_id:248))} {(/)} {($ Id.VSub_DollarName '$secs')} 
                                {(Id.Lit_Other '+')} {(1)}
                              )
                            ]
                          )
                      )
                    }
                  spids: [235]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:padsects)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_Backtick val:'`' span_id:262)
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {(expr)} {($ Id.VSub_DollarName '$cyl')} 
                                {
                                  (word_part.EscapedLiteral
                                    token: (Token id:Id.Lit_EscapedChar val:'\\*' span_id:271)
                                  )
                                } {($ Id.VSub_DollarName '$secs')} {(-)} {(1)} {(-)} {($ Id.VSub_DollarName '$primsects')}
                              )
                            ]
                          )
                      )
                    }
                  spids: [261]
                )
              ]
            )
            (command.BraceGroup
              children: [
                (command.Simple
                  words: [{(dd)} {(Id.Lit_VarLike 'count=') (1)}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Less val:'<' span_id:290)
                      fd: -1
                      arg_word: {(/dev/zero)}
                    )
                  ]
                )
                (C {(cat)} {(subpart)})
                (C {(cat)} {(rootimage)})
                (C {(cat)} {(usrimage)})
                (command.Simple
                  words: [{(dd)} {(Id.Lit_VarLike 'count=') ($ Id.VSub_DollarName '$padsects')}]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Less val:'<' span_id:315)
                      fd: -1
                      arg_word: {(/dev/zero)}
                    )
                  ]
                )
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:325)
                  fd: -1
                  arg_word: {(hdimage)}
                )
              ]
            )
            (C {(partition)} {(-m)} {(hdimage)} 
              {(81) (Id.Lit_Other ':') 
                (command_sub
                  left_token: (Token id:Id.Left_Backtick val:'`' span_id:338)
                  command_list: 
                    (command.CommandList
                      children: [
                        (C {(expr)} {($ Id.VSub_DollarName '$primsects')} {(Id.Lit_Other '+')} 
                          {($ Id.VSub_DollarName '$padsects')}
                        )
                      ]
                    )
                ) (Id.Lit_Star '*')
              }
            )
            (C {(installboot)} {(-m)} {(hdimage)} {(/usr/mdec/masterboot)})
          ]
        )
    )
    (command.ShFunction
      name: retrieve
      body: 
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [370]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:list)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_Backtick val:'`' span_id:375)
                        command_list: (command.CommandList children:[(C {(pwd)})])
                      ) (/) ($ Id.VSub_Number '$2')
                    }
                  spids: [374]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:url)
                  op: assign_op.Equal
                  rhs: {(http) (Id.Lit_Other ':') (//www.minix3.org/) ($ Id.VSub_Number '$3')}
                  spids: [384]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:BIGPORTS)
                  op: assign_op.Equal
                  rhs: {(bigports)}
                  spids: [390]
                )
              ]
            )
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {(cd)} {($ Id.VSub_DollarName '$dir')})
                        (command.ControlFlow
                          token: (Token id:Id.ControlFlow_Exit val:exit span_id:404)
                          arg_word: {(1)}
                        )
                      ]
                    )
                    (C {(echo)} 
                      {
                        (DQ (' * Updating ') ($ Id.VSub_DollarName '$dir') ('\n') ('   from ') 
                          ($ Id.VSub_DollarName '$url') ('\n') ('   with ') ($ Id.VSub_DollarName '$list')
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:files)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: (Token id:Id.Left_Backtick val:'`' span_id:424)
                                command_list: 
                                  (command.CommandList
                                    children: [
                                      (command.Simple
                                        words: [
                                          {(awk)}
                                          {(SQ (Token id:Id.Lit_Chars val:'{ print "' span_id:433)) 
                                            ($ Id.VSub_DollarName '$url') (SQ (Token id:Id.Lit_Chars val:'/" $1 ".tar.bz2" }' span_id:437))
                                          }
                                        ]
                                        redirects: [
                                          (redir.Redir
                                            op: (Token id:Id.Redir_Less val:'<' span_id:429)
                                            fd: -1
                                            arg_word: {($ Id.VSub_DollarName '$list')}
                                          )
                                        ]
                                      )
                                    ]
                                  )
                              )
                            }
                          spids: [423]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {(wget)} {(-c)} {($ Id.VSub_DollarName '$url') (/List)} 
                          {($ Id.VSub_DollarName '$files')}
                        )
                        (C {(true)})
                      ]
                    )
                  ]
                )
            )
          ]
        )
    )
    (command.ShFunction
      name: hdemu_root_changes
      body: 
        (command.BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/bin/installboot)} {(-d)} 
              {($ Id.VSub_DollarName '$TMPDISK3')} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/mdec/bootblock)} {(boot/boot)}
            )
            (command.Pipeline
              children: [
                (C {(echo)} 
                  {
                    (SQ (Token id:Id.Lit_Chars val:'bootcd=2\n' span_id:487) 
                      (Token id:Id.Lit_Chars val:'disable=inet\n' span_id:488) (Token id:Id.Lit_Chars val:'bios_wini=yes\n' span_id:489) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'bios_remap_first=1\n'
                        span_id: 490
                      ) (Token id:Id.Lit_Chars val:'ramimagedev=c0d7p0s0\n' span_id:491) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'bootbig(1, Regular MINIX 3) { image=/boot/image_big; boot }\n'
                        span_id: 492
                      ) (Token id:Id.Lit_Chars val:'main() { trap 10000 boot ; menu; }\n' span_id:493) 
                      (Token id:Id.Lit_Chars val:save span_id:494)
                    )
                  }
                )
                (C {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/bin/edparams)} 
                  {($ Id.VSub_DollarName '$TMPDISK3')}
                )
              ]
              negated: F
            )
            (command.Simple
              words: [
                {(echo)}
                {
                  (SQ (Token id:Id.Lit_Chars val:'root=/dev/c0d7p0s0\n' span_id:510) 
                    (Token id:Id.Lit_Chars val:'usr=/dev/c0d7p0s2\n' span_id:511) (Token id:Id.Lit_Chars val:'usr_roflag="-r"' span_id:512)
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:515)
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$RELEASEDIR') (/etc/fstab)}
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: usb_root_changes
      body: 
        (command.BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/bin/installboot)} {(-d)} 
              {($ Id.VSub_DollarName '$TMPDISK3')} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/mdec/bootblock)} {(boot/boot)}
            )
            (command.Pipeline
              children: [
                (C {(echo)} 
                  {
                    (SQ (Token id:Id.Lit_Chars val:'bios_wini=yes\n' span_id:549) 
                      (Token
                        id: Id.Lit_Chars
                        val: 'bios_remap_first=1\n'
                        span_id: 550
                      ) (Token id:Id.Lit_Chars val:'rootdev=c0d7p0s0\n' span_id:551) 
                      (Token id:Id.Lit_Chars val:save span_id:552)
                    )
                  }
                )
                (C {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/bin/edparams)} 
                  {($ Id.VSub_DollarName '$TMPDISK3')}
                )
              ]
              negated: F
            )
            (command.Simple
              words: [
                {(echo)}
                {
                  (SQ (Token id:Id.Lit_Chars val:'root=/dev/c0d7p0s0\n' span_id:568) 
                    (Token id:Id.Lit_Chars val:'usr=/dev/c0d7p0s2\n' span_id:569)
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:572)
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$RELEASEDIR') (/etc/fstab)}
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RELEASEDIR)
          op: assign_op.Equal
          rhs: {(/usr/r)}
          spids: [580]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RELEASEPACKAGE)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name RELEASEDIR) (/usr/install/packages)}
          spids: [583]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RELEASEPACKAGESOURCES)
          op: assign_op.Equal
          rhs: {(${ Id.VSub_Name RELEASEDIR) (/usr/install/package-sources)}
          spids: [589]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:IMAGE)
          op: assign_op.Equal
          rhs: {(../boot/boot)}
          spids: [595]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ROOTIMAGE)
          op: assign_op.Equal
          rhs: {(rootimage)}
          spids: [598]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:CDFILES)
          op: assign_op.Equal
          rhs: {(/usr/tmp/cdreleasefiles)}
          spids: [601]
        )
      ]
    )
    (command.Simple
      words: [{(sh)} {(tell_config)} {(OS_RELEASE)} {(.)} {(OS_VERSION)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:614)
          fd: -1
          arg_word: {(/tmp/rel.) ($ Id.VSub_Dollar '$$')}
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:version_pretty)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:619)
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Simple
                        words: [
                          {(sed)}
                          {(SQ (Token id:Id.Lit_Chars val:'s/["      ]//g;/^$/d' span_id:625))}
                        ]
                        redirects: [
                          (redir.Redir
                            op: (Token id:Id.Redir_Less val:'<' span_id:628)
                            fd: -1
                            arg_word: {(/tmp/rel.) ($ Id.VSub_Dollar '$$')}
                          )
                        ]
                      )
                    ]
                  )
              )
            }
          spids: [618]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:version)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:634)
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (command.Simple
                            words: [
                              {(sed)}
                              {(SQ (Token id:Id.Lit_Chars val:'s/["      ]//g;/^$/d' span_id:640))}
                            ]
                            redirects: [
                              (redir.Redir
                                op: (Token id:Id.Redir_Less val:'<' span_id:643)
                                fd: -1
                                arg_word: {(/tmp/rel.) ($ Id.VSub_Dollar '$$')}
                              )
                            ]
                          )
                          (C {(tr)} {(.)} {(_)})
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [633]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:IMG_BASE)
          op: assign_op.Equal
          rhs: {(minix) (${ Id.VSub_Name version) (_ide)}
          spids: [656]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BS)
          op: assign_op.Equal
          rhs: {(4096)}
          spids: [663]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:HDEMU)
          op: assign_op.Equal
          rhs: {(0)}
          spids: [667]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:COPY) op:assign_op.Equal rhs:{(0)} spids:[670])]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SVNREV)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [673]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:REVTAG)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [677]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PACKAGES)
          op: assign_op.Equal
          rhs: {(1)}
          spids: [681]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FILENAMEOUT)
          op: assign_op.Equal
          rhs: {(DQ )}
          spids: [685]
        )
      ]
    )
    (command.WhileUntil
      keyword: (Token id:Id.KW_While val:while span_id:690)
      cond: [(C {(getopts)} {(DQ ('s:pchu?r:f:'))} {(c)})]
      body: 
        (command.DoGroup
          children: [
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$c'))}
              arms: [
                (case_arm
                  pat_list: [
                    {
                      (word_part.EscapedLiteral
                        token: (Token id:Id.Lit_EscapedChar val:'\\?' span_id:712)
                      )
                    }
                  ]
                  action: [
                    (command.Simple
                      words: [
                        {(echo)}
                        {
                          (DQ ('Usage: ') ($ Id.VSub_Number '$0') 
                            (' [-p] [-c] [-h] [-r <tag>] [-u] [-f <filename>] [-s <username>]')
                          )
                        }
                      ]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:724)
                          fd: -1
                          arg_word: {(2)}
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:728)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [712 713 733 -1]
                )
                (case_arm
                  pat_list: [{(h)}]
                  action: [
                    (C {(echo)} {(DQ (' * Making HD image'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IMG_BASE)
                          op: assign_op.Equal
                          rhs: {(minix) (${ Id.VSub_Name version) (_bios)}
                          spids: [747]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:HDEMU)
                          op: assign_op.Equal
                          rhs: {(1)}
                          spids: [755]
                        )
                      ]
                    )
                  ]
                  spids: [736 737 759 -1]
                )
                (case_arm
                  pat_list: [{(c)}]
                  action: [
                    (C {(echo)} {(DQ (' * Copying, not SVN'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:COPY)
                          op: assign_op.Equal
                          rhs: {(1)}
                          spids: [773]
                        )
                      ]
                    )
                  ]
                  spids: [762 763 777 -1]
                )
                (case_arm
                  pat_list: [{(p)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:PACKAGES)
                          op: assign_op.Equal
                          rhs: {(0)}
                          spids: [784]
                        )
                      ]
                    )
                  ]
                  spids: [780 781 788 -1]
                )
                (case_arm
                  pat_list: [{(r)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SVNREV)
                          op: assign_op.Equal
                          rhs: {(-r) ($ Id.VSub_DollarName '$OPTARG')}
                          spids: [796]
                        )
                      ]
                    )
                  ]
                  spids: [791 792 801 -1]
                )
                (case_arm
                  pat_list: [{(u)}]
                  action: [
                    (C {(echo)} {(DQ (' * Making live USB-stick image'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IMG_BASE)
                          op: assign_op.Equal
                          rhs: {(minix) (${ Id.VSub_Name version) (_usb)}
                          spids: [815]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:HDEMU)
                          op: assign_op.Equal
                          rhs: {(1)}
                          spids: [823]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:USB)
                          op: assign_op.Equal
                          rhs: {(1)}
                          spids: [827]
                        )
                      ]
                    )
                  ]
                  spids: [804 805 831 -1]
                )
                (case_arm
                  pat_list: [{(f)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:FILENAMEOUT)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$OPTARG'))}
                          spids: [838]
                        )
                      ]
                    )
                  ]
                  spids: [834 835 844 -1]
                )
                (case_arm
                  pat_list: [{(s)}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:USERNAME)
                          op: assign_op.Equal
                          rhs: {(DQ ('--username=') ($ Id.VSub_DollarName '$OPTARG'))}
                          spids: [850]
                        )
                      ]
                    )
                  ]
                  spids: [847 848 857 -1]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(DQ ($ Id.VSub_DollarName '$USRMB'))} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:USRMB)
                  op: assign_op.Equal
                  rhs: {(600)}
                  spids: [879]
                )
              ]
            )
          ]
          spids: [865 877]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$PACKAGES')} {(-ne)} {(0)} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [(C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$PACKAGEDIR')}) (C {(true)})]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [(C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$PACKAGESOURCEDIR')}) (C {(true)})]
            )
            (C {(rm)} {(-f)} {($ Id.VSub_DollarName '$PACKAGEDIR') (/List)})
            (C {(retrieve)} {($ Id.VSub_DollarName '$PACKAGEDIR')} 
              {($ Id.VSub_DollarName '$PACKAGELIST')} 
              {(packages/) 
                (command_sub
                  left_token: (Token id:Id.Left_Backtick val:'`' span_id:936)
                  command_list: (command.CommandList children:[(C {(uname)} {(-p)})])
                ) (/) 
                (command_sub
                  left_token: (Token id:Id.Left_Backtick val:'`' span_id:944)
                  command_list: (command.CommandList children:[(C {(uname)} {(-r)})])
                ) (.) 
                (command_sub
                  left_token: (Token id:Id.Left_Backtick val:'`' span_id:952)
                  command_list: (command.CommandList children:[(C {(uname)} {(-v)})])
                )
              }
            )
            (C {(retrieve)} {($ Id.VSub_DollarName '$PACKAGESOURCEDIR')} 
              {($ Id.VSub_DollarName '$PACKAGESOURCELIST')} {(software)}
            )
          ]
          spids: [885 897]
        )
      ]
    )
    (C {(echo)} {($ Id.VSub_DollarName '$USRMB')} {(MB)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:USRKB)
          op: assign_op.Equal
          rhs: 
            {
              (word_part.ArithSub
                anode: 
                  (arith_expr.Binary
                    op_id: Id.Arith_Star
                    left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$USRMB')})
                    right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1024)})
                  )
              )
            }
          spids: [979]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:USRBLOCKS)
          op: assign_op.Equal
          rhs: 
            {
              (word_part.ArithSub
                anode: 
                  (arith_expr.Binary
                    op_id: Id.Arith_Slash
                    left: 
                      (arith_expr.Binary
                        op_id: Id.Arith_Star
                        left: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Star
                            left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$USRMB')})
                            right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1024)})
                          )
                        right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1024)})
                      )
                    right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$BS')})
                  )
              )
            }
          spids: [987]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:USRSECTS)
          op: assign_op.Equal
          rhs: 
            {
              (word_part.ArithSub
                anode: 
                  (arith_expr.Binary
                    op_id: Id.Arith_Star
                    left: 
                      (arith_expr.Binary
                        op_id: Id.Arith_Star
                        left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$USRMB')})
                        right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1024)})
                      )
                    right: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)})
                  )
              )
            }
          spids: [1005]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ROOTKB)
          op: assign_op.Equal
          rhs: {(8192)}
          spids: [1019]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ROOTSECTS)
          op: assign_op.Equal
          rhs: 
            {
              (word_part.ArithSub
                anode: 
                  (arith_expr.Binary
                    op_id: Id.Arith_Star
                    left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$ROOTKB')})
                    right: (arith_expr.ArithWord w:{(Id.Lit_Digits 2)})
                  )
              )
            }
          spids: [1022]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ROOTBLOCKS)
          op: assign_op.Equal
          rhs: 
            {
              (word_part.ArithSub
                anode: 
                  (arith_expr.Binary
                    op_id: Id.Arith_Slash
                    left: 
                      (arith_expr.Binary
                        op_id: Id.Arith_Star
                        left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$ROOTKB')})
                        right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1024)})
                      )
                    right: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$BS')})
                  )
              )
            }
          spids: [1032]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$COPY'))} {(-ne)} {(1)} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [(C {(echo)} {(DQ ('Note: this script wants to do svn operations.'))})]
          spids: [1047 1061]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMPDISK1)
          op: assign_op.Equal
          rhs: {(/dev/ram0)}
          spids: [1073]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMPDISK2)
          op: assign_op.Equal
          rhs: {(/dev/ram1)}
          spids: [1076]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMPDISK3)
          op: assign_op.Equal
          rhs: {(/dev/ram2)}
          spids: [1079]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-b)} {($ Id.VSub_DollarName '$TMPDISK1')} 
              {(-o)} {(Id.KW_Bang '!')} {(-b)} {($ Id.VSub_DollarName '$TMPDISK2')} {(-o)} {(Id.KW_Bang '!')} 
              {($ Id.VSub_DollarName '$TMPDISK3')} {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ($ Id.VSub_DollarName '$TMPDISK1') (', ') ($ Id.VSub_DollarName '$TMPDISK2') 
                  (' or ') ($ Id.VSub_DollarName '$TMPDISK3') (' is not a block device..')
                )
              }
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:1123)
              arg_word: {(1)}
            )
          ]
          spids: [1083 1109]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [(C {(umount)} {($ Id.VSub_DollarName '$TMPDISK1')}) (C {(true)})]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [(C {(umount)} {($ Id.VSub_DollarName '$TMPDISK2')}) (C {(true)})]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [(C {(umount)} {($ Id.VSub_DollarName '$TMPDISK3')}) (C {(true)})]
    )
    (C {(ramdisk)} {($ Id.VSub_DollarName '$USRKB')} {($ Id.VSub_DollarName '$TMPDISK1')})
    (C {(ramdisk)} {($ Id.VSub_DollarName '$TMPKB')} {($ Id.VSub_DollarName '$TMPDISK2')})
    (C {(ramdisk)} {($ Id.VSub_DollarName '$ROOTKB')} {($ Id.VSub_DollarName '$TMPDISK3')})
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$TMPDISK1')} {(Id.Lit_Equals '=')} 
              {($ Id.VSub_DollarName '$TMPDISK2')} {(-o)} {($ Id.VSub_DollarName '$TMPDISK1')} {(Id.Lit_Equals '=')} {($ Id.VSub_DollarName '$TMPDISK3')} 
              {(-o)} {($ Id.VSub_DollarName '$TMPDISK2')} {(Id.Lit_Equals '=')} {($ Id.VSub_DollarName '$TMPDISK3')} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (C {(echo)} {(DQ ("Temporary devices can't be equal."))})
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:1212)
            )
          ]
          spids: [1174 1202]
        )
      ]
    )
    (C {(echo)} {(DQ (' * Cleanup old files'))})
    (C {(rm)} {(-rf)} {($ Id.VSub_DollarName '$RELEASEDIR')} {($ Id.VSub_DollarName '$IMG')} 
      {($ Id.VSub_DollarName '$ROOTIMAGE')} {($ Id.VSub_DollarName '$CDFILES')} {(image) (Id.Lit_Star '*')}
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$CDFILES')})
        (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:1246))
      ]
    )
    (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$RELEASEDIR')})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(mkfs)} {(-i)} {(2000)} {(-B)} {($ Id.VSub_DollarName '$BS')} {(-b)} 
          {($ Id.VSub_DollarName '$ROOTBLOCKS')} {($ Id.VSub_DollarName '$TMPDISK3')}
        )
        (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:1272))
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(mkfs)} {(-B)} {(1024)} {(-b)} {($ Id.VSub_DollarName '$TMPKB')} 
          {($ Id.VSub_DollarName '$TMPDISK2')}
        )
        (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:1288))
      ]
    )
    (C {(echo)} 
      {
        (DQ (' * mounting ') ($ Id.VSub_DollarName '$TMPDISK3') (' as ') 
          ($ Id.VSub_DollarName '$RELEASEDIR')
        )
      }
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(mount)} {($ Id.VSub_DollarName '$TMPDISK3')} {($ Id.VSub_DollarName '$RELEASEDIR')})
        (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:1307))
      ]
    )
    (C {(mkdir)} {(-m)} {(755)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr)})
    (C {(mkdir)} {(-m)} {(1777)} {($ Id.VSub_DollarName '$RELEASEDIR') (/tmp)})
    (C {(mount)} {($ Id.VSub_DollarName '$TMPDISK2')} {($ Id.VSub_DollarName '$RELEASEDIR') (/tmp)})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(mkfs)} {(-B)} {($ Id.VSub_DollarName '$BS')} {(-i)} {(30000)} {(-b)} 
          {($ Id.VSub_DollarName '$USRBLOCKS')} {($ Id.VSub_DollarName '$TMPDISK1')}
        )
        (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:1353))
      ]
    )
    (C {(echo)} 
      {
        (DQ (' * Mounting ') ($ Id.VSub_DollarName '$TMPDISK1') (' as ') 
          ($ Id.VSub_DollarName '$RELEASEDIR') (/usr)
        )
      }
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(mount)} {($ Id.VSub_DollarName '$TMPDISK1')} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr)})
        (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:1374))
      ]
    )
    (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$RELEASEDIR') (/tmp)})
    (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/tmp)})
    (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$RELEASEDIR') (/) ($ Id.VSub_DollarName '$XBIN')})
    (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/bin)})
    (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$RELEASEDIR') (/bin)})
    (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$RELEASEPACKAGE')})
    (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$RELEASEPACKAGESOURCES')})
    (C {(echo)} {(DQ (' * Transfering bootstrap dirs to ') ($ Id.VSub_DollarName '$RELEASEDIR'))})
    (C {(cp)} {(-p)} {(/bin/) (Id.Lit_Star '*')} {(/usr/bin/) (Id.Lit_Star '*')} 
      {($ Id.VSub_DollarName '$RELEASEDIR') (/) ($ Id.VSub_DollarName '$XBIN')}
    )
    (C {(cp)} {(-rp)} {(/usr/lib)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr)})
    (C {(cp)} {(-rp)} {(/bin/bigsh)} {(/bin/sh)} {(/bin/echo)} 
      {($ Id.VSub_DollarName '$RELEASEDIR') (/bin)}
    )
    (C {(cp)} {(-rp)} {(/usr/bin/make)} {(/usr/bin/install)} {(/usr/bin/yacc)} {(/usr/bin/flex)} 
      {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/bin)}
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(-d)} {($ Id.VSub_DollarName '$PACKAGEDIR')} {(-a)} {(-d)} 
              {($ Id.VSub_DollarName '$PACKAGESOURCEDIR')} {(-a)} {(-f)} {($ Id.VSub_DollarName '$PACKAGELIST')} {(-a)} {(-f)} 
              {($ Id.VSub_DollarName '$PACKAGESOURCELIST')} {(-a)} {($ Id.VSub_DollarName '$PACKAGES')} {(-ne)} {(0)} {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ (' * Transfering ') ($ Id.VSub_DollarName '$PACKAGEDIR') (' to ') 
                  ($ Id.VSub_DollarName '$RELEASEPACKAGE')
                )
              }
            )
            (command.Simple
              words: [{(Id.Lit_Other ':')}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:1534)
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$RELEASEPACKAGE') (/List)}
                )
              ]
            )
            (command.ForEach
              iter_name: p
              iter_words: [
                {
                  (command_sub
                    left_token: (Token id:Id.Left_Backtick val:'`' span_id:1545)
                    command_list: 
                      (command.CommandList
                        children: [(C {(cat)} {($ Id.VSub_DollarName '$PACKAGELIST')})]
                      )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Id.Lit_LBracket '[')} {(-f)} 
                              {($ Id.VSub_DollarName '$PACKAGEDIR') (/) ($ Id.VSub_DollarName '$p') 
                                (.tar.bz2)
                              } {(Id.Lit_RBracket ']')}
                            )
                          ]
                          action: [
                            (C {(cp)} 
                              {($ Id.VSub_DollarName '$PACKAGEDIR') (/) ($ Id.VSub_DollarName '$p') 
                                (.tar.bz2)
                              } {($ Id.VSub_DollarName '$RELEASEPACKAGE') (/)}
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.Simple
                                  words: [
                                    {(grep)}
                                    {(DQ ('^') ($ Id.VSub_DollarName '$p') ('|'))}
                                    {($ Id.VSub_DollarName '$PACKAGEDIR') (/List)}
                                  ]
                                  redirects: [
                                    (redir.Redir
                                      op: (Token id:Id.Redir_DGreat val:'>>' span_id:1595)
                                      fd: -1
                                      arg_word: {($ Id.VSub_DollarName '$RELEASEPACKAGE') (/List)}
                                    )
                                  ]
                                )
                                (C {(echo)} {(DQ ($ Id.VSub_DollarName '$p') (' not found in List'))})
                              ]
                            )
                          ]
                          spids: [1556 1570]
                        )
                      ]
                      else_action: [
                        (C {(echo)} 
                          {
                            (DQ ("Can't copy ") ($ Id.VSub_DollarName '$PACKAGEDIR') (/) 
                              ($ Id.VSub_DollarName '$p') ('.tar.bz2. Missing.')
                            )
                          }
                        )
                      ]
                    )
                  ]
                )
            )
            (C {(echo)} 
              {
                (DQ (' * Transfering ') ($ Id.VSub_DollarName '$PACKAGESOURCEDIR') (' to ') 
                  ($ Id.VSub_DollarName '$RELEASEPACKAGESOURCES')
                )
              }
            )
            (command.ForEach
              iter_name: p
              iter_words: [
                {
                  (command_sub
                    left_token: (Token id:Id.Left_Backtick val:'`' span_id:1647)
                    command_list: 
                      (command.CommandList
                        children: [(C {(cat)} {($ Id.VSub_DollarName '$PACKAGESOURCELIST')})]
                      )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (C {(Id.Lit_LBracket '[')} {(-f)} 
                              {($ Id.VSub_DollarName '$PACKAGESOURCEDIR') (/) 
                                ($ Id.VSub_DollarName '$p') (.tar.bz2)
                              } {(Id.Lit_RBracket ']')}
                            )
                          ]
                          action: [
                            (C {(cp)} 
                              {($ Id.VSub_DollarName '$PACKAGESOURCEDIR') (/) 
                                ($ Id.VSub_DollarName '$p') (.tar.bz2)
                              } {($ Id.VSub_DollarName '$RELEASEPACKAGESOURCES') (/)}
                            )
                          ]
                          spids: [1659 1673]
                        )
                      ]
                      else_action: [
                        (C {(echo)} 
                          {
                            (DQ ("Can't copy ") ($ Id.VSub_DollarName '$PACKAGESOURCEDIR') (/) 
                              ($ Id.VSub_DollarName '$p') ('.tar.bz2. Missing.')
                            )
                          }
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [1484 1520]
        )
      ]
    )
    (C {(chown)} {(-R)} {(bin)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/lib)})
    (C {(chmod)} {(-R)} {(u) (Id.Lit_Other '+') (w)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/lib)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$COPY'))} {(-ne)} {(1)} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (C {(echo)} {(DQ (' * Doing new svn export'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:TOOLSREPO)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_Backtick val:'`' span_id:1759)
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(svn)} {(info)})
                                    (C {(grep)} {(SQ (Token id:Id.Lit_Chars val:'^URL: ' span_id:1771))})
                                    (C {(awk)} 
                                      {(SQ (Token id:Id.Lit_Chars val:'{ print $2 }' span_id:1779))}
                                    )
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [1757]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:REPO)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_Backtick val:'`' span_id:1787)
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(echo)} {($ Id.VSub_DollarName '$TOOLSREPO')})
                                    (C {(sed)} 
                                      {(SQ (Token id:Id.Lit_Chars val:'s/.tools$//' span_id:1799))}
                                    )
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [1785]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:BRANCHNAME)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_Backtick val:'`' span_id:1807)
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(echo)} {($ Id.VSub_DollarName '$REPO')})
                                    (C {(awk)} {(-F/)} 
                                      {(SQ (Token id:Id.Lit_Chars val:'{ print $NF }' span_id:1821))}
                                    )
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [1805]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:REVISION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (command_sub
                          left_token: (Token id:Id.Left_Backtick val:'`' span_id:1829)
                          command_list: 
                            (command.CommandList
                              children: [
                                (command.Pipeline
                                  children: [
                                    (C {(svn)} {(info)} {($ Id.VSub_DollarName '$USERNAME')} 
                                      {($ Id.VSub_DollarName '$SVNREV')} {($ Id.VSub_DollarName '$REPO')}
                                    )
                                    (C {(grep)} 
                                      {(SQ (Token id:Id.Lit_Chars val:'^Revision: ' span_id:1847))}
                                    )
                                    (C {(awk)} 
                                      {(SQ (Token id:Id.Lit_Chars val:'{ print $2 }' span_id:1855))}
                                    )
                                  ]
                                  negated: F
                                )
                              ]
                            )
                        )
                      )
                    }
                  spids: [1827]
                )
              ]
            )
            (C {(echo)} 
              {
                (DQ ('Doing export of revision ') ($ Id.VSub_DollarName '$REVISION') (' from ') 
                  ($ Id.VSub_DollarName '$REPO') (.)
                )
              }
            )
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {(cd)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr)})
                        (C {(svn)} {(-q)} {($ Id.VSub_DollarName '$USERNAME')} {(export)} 
                          {(-r) ($ Id.VSub_DollarName '$REVISION')} {($ Id.VSub_DollarName '$REPO')} {($ Id.VSub_DollarName '$SRC')}
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$BRANCHNAME')} 
                      {(Id.Lit_Equals '=')} {(src)} {(Id.Lit_RBracket ']')}
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:REVTAG)
                          op: assign_op.Equal
                          rhs: {(r) ($ Id.VSub_DollarName '$REVISION')}
                          spids: [1914]
                        )
                      ]
                    )
                  ]
                  spids: [1899 1912]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:REVTAG)
                      op: assign_op.Equal
                      rhs: 
                        {(branch-) ($ Id.VSub_DollarName '$BRANCHNAME') (-r) 
                          ($ Id.VSub_DollarName '$REVISION')
                        }
                      spids: [1921]
                    )
                  ]
                )
              ]
            )
            (command.Simple
              words: [
                {(echo)}
                {
                  (DQ ('\n') ('\n') ('/* Added by release script  */\n') ('#ifndef _SVN_REVISION\n') 
                    ('#define _SVN_REVISION ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:1941)) 
                    ($ Id.VSub_DollarName '$REVTAG') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\"' span_id:1943)) ('\n') ('#endif')
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_DGreat val:'>>' span_id:1948)
                  fd: -1
                  arg_word: 
                    {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/src/include/minix/sys_config.h)}
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$USB'))} {(-ne)} {(0)} 
                          {(Id.Lit_RBracket ']')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:1969)
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IMG)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name IMG_BASE) (_) (${ Id.VSub_Name REVTAG) (.img)}
                          spids: [1974]
                        )
                      ]
                    )
                  ]
                  spids: [1956 1971]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:IMG)
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Name IMG_BASE) (_) (${ Id.VSub_Name REVTAG) (.iso)}
                      spids: [1987]
                    )
                  ]
                )
              ]
            )
          ]
          spids: [1733 1747]
        )
      ]
      else_action: [
        (command.Subshell
          command_list: 
            (command.CommandList
              children: [
                (command.AndOr
                  ops: [Id.Op_DAmp Id.Op_DAmp]
                  children: [(C {(cd)} {(..)}) (C {(make)} {(depend)}) (C {(make)} {(clean)})]
                )
              ]
            )
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:srcdir)
              op: assign_op.Equal
              rhs: {(/usr/) ($ Id.VSub_DollarName '$SRC')}
              spids: [2024]
            )
          ]
        )
        (command.Pipeline
          children: [
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {(cd)} {($ Id.VSub_DollarName '$srcdir')})
                        (C {(tar)} {(cf)} {(-)} {(.)})
                      ]
                    )
                  ]
                )
            )
            (command.Subshell
              command_list: 
                (command.CommandList
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
                      children: [
                        (C {(cd)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr)})
                        (C {(mkdir)} {($ Id.VSub_DollarName '$SRC')})
                        (C {(cd)} {($ Id.VSub_DollarName '$SRC')})
                        (C {(tar)} {(xf)} {(-)})
                      ]
                    )
                  ]
                )
            )
          ]
          negated: F
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:REVTAG)
              op: assign_op.Equal
              rhs: {(copy)}
              spids: [2079]
            )
          ]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:REVISION)
              op: assign_op.Equal
              rhs: {(unknown)}
              spids: [2083]
            )
          ]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:IMG)
              op: assign_op.Equal
              rhs: {(${ Id.VSub_Name IMG_BASE) (_copy.iso)}
              spids: [2087]
            )
          ]
        )
      ]
    )
    (C {(echo)} {(DQ (' * Fixups for owners and modes of dirs and files'))})
    (C {(chown)} {(-R)} {(bin)} 
      {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/) ($ Id.VSub_DollarName '$SRC')}
    )
    (C {(chmod)} {(-R)} {(u) (Id.Lit_Other '+') (w)} 
      {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/) ($ Id.VSub_DollarName '$SRC')}
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/) ($ Id.VSub_DollarName '$SRC')} 
          {(-type)} {(d)}
        )
        (C {(xargs)} {(chmod)} {(755)})
      ]
      negated: F
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/) ($ Id.VSub_DollarName '$SRC')} 
          {(-type)} {(f)}
        )
        (C {(xargs)} {(chmod)} {(644)})
      ]
      negated: F
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/) ($ Id.VSub_DollarName '$SRC')} 
          {(-name)} {(configure)}
        )
        (C {(xargs)} {(chmod)} {(755)})
      ]
      negated: F
    )
    (command.Pipeline
      children: [
        (C {(find)} 
          {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/) ($ Id.VSub_DollarName '$SRC') (/commands)} {(-name)} {(build)}
        )
        (C {(xargs)} {(chmod)} {(755)})
      ]
      negated: F
    )
    (C {(rm)} {(-rf)} 
      {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/) ($ Id.VSub_DollarName '$SRC') (/doc/bugs)}
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$USB'))} {(-eq)} {(0)} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (command.Simple
              words: [{(date)}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:2233)
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$RELEASEDIR') (/CD)}
                )
              ]
            )
          ]
          spids: [2215 2229]
        )
      ]
    )
    (C {(echo)} {(DQ (' * Chroot build'))})
    (C {(cp)} {(chrootmake.sh)} 
      {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/) ($ Id.VSub_DollarName '$SRC') 
        (/tools/chrootmake.sh)
      }
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(chroot)} {($ Id.VSub_DollarName '$RELEASEDIR')} 
          {
            (DQ ('PATH=/') ($ Id.VSub_DollarName '$XBIN') (' sh -x /usr/') ($ Id.VSub_DollarName '$SRC') 
              (/tools/chrootmake.sh)
            )
          }
        )
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:2268)
          arg_word: {(1)}
        )
      ]
    )
    (C {(cp)} {($ Id.VSub_DollarName '$RELEASEDIR') (/boot/image_big)} {(image)})
    (C {(echo)} {(DQ (' * Chroot build done'))})
    (C {(echo)} {(DQ (' * Removing bootstrap files'))})
    (C {(rm)} {(-rf)} {($ Id.VSub_DollarName '$RELEASEDIR') (/) ($ Id.VSub_DollarName '$XBIN')})
    (C {(chown)} {(-R)} {(bin)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/src) (Id.Lit_Star '*')})
    (C {(cp)} {(issue.install)} {($ Id.VSub_DollarName '$RELEASEDIR') (/etc/issue)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$USB'))} {(-ne)} {(0)} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [(C {(usb_root_changes)})]
          spids: [2323 2337]
        )
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$HDEMU'))} {(-ne)} {(0)} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [(C {(hdemu_root_changes)})]
          spids: [2342 2356]
        )
      ]
    )
    (command.Simple
      words: [
        {(echo)}
        {($ Id.VSub_DollarName '$version_pretty') (Id.Lit_Comma ',')}
        {(SVN)}
        {(revision)}
        {($ Id.VSub_DollarName '$REVISION') (Id.Lit_Comma ',')}
        {(generated)}
        {
          (command_sub
            left_token: (Token id:Id.Left_Backtick val:'`' span_id:2378)
            command_list: (command.CommandList children:[(C {(date)})])
          )
        }
      ]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:2384)
          fd: -1
          arg_word: {($ Id.VSub_DollarName '$RELEASEDIR') (/etc/version)}
        )
      ]
    )
    (C {(echo)} {(DQ (' * Counting files'))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:extrakb)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_Backtick val:'`' span_id:2395)
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {(du)} {(-s)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/install)})
                          (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{ print $1 }' span_id:2410))})
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
          spids: [2394]
        )
      ]
    )
    (command.Simple
      words: [
        {(expr)}
        {
          (command_sub
            left_token: (Token id:Id.Left_Backtick val:'`' span_id:2416)
            command_list: 
              (command.CommandList
                children: [
                  (command.Pipeline
                    children: [
                      (C {(df)} {($ Id.VSub_DollarName '$TMPDISK1')})
                      (C {(tail)} {(-1)})
                      (C {(awk)} {(SQ (Token id:Id.Lit_Chars val:'{ print $4 }' span_id:2434))})
                    ]
                    negated: F
                  )
                ]
              )
          )
        }
        {(-)}
        {($ Id.VSub_DollarName '$extrakb')}
      ]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:2442)
          fd: -1
          arg_word: {($ Id.VSub_DollarName '$RELEASEDIR') (/.usrkb)}
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr)})
        (C {(fgrep)} {(-v)} {(/install/)})
        (command.Simple
          words: [{(wc)} {(-l)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:2465)
              fd: -1
              arg_word: {($ Id.VSub_DollarName '$RELEASEDIR') (/.usrfiles)}
            )
          ]
        )
      ]
      negated: F
    )
    (command.Pipeline
      children: [
        (C {(find)} {($ Id.VSub_DollarName '$RELEASEDIR')} {(-xdev)})
        (command.Simple
          words: [{(wc)} {(-l)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:2481)
              fd: -1
              arg_word: {($ Id.VSub_DollarName '$RELEASEDIR') (/.rootfiles)}
            )
          ]
        )
      ]
      negated: F
    )
    (C {(echo)} {(DQ (' * Zeroing remainder of temporary areas'))})
    (C {(df)} {($ Id.VSub_DollarName '$TMPDISK1')})
    (C {(df)} {($ Id.VSub_DollarName '$TMPDISK3')})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{(cp)} {(/dev/zero)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/.x)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'2>' span_id:2506)
              fd: 2
              arg_word: {(/dev/null)}
            )
          ]
        )
        (C {(true)})
      ]
    )
    (C {(rm)} {($ Id.VSub_DollarName '$RELEASEDIR') (/usr/.x)})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{(cp)} {(/dev/zero)} {($ Id.VSub_DollarName '$RELEASEDIR') (/.x)}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'2>' span_id:2525)
              fd: 2
              arg_word: {(/dev/null)}
            )
          ]
        )
        (C {(true)})
      ]
    )
    (C {(rm)} {($ Id.VSub_DollarName '$RELEASEDIR') (/.x)})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(umount)} {($ Id.VSub_DollarName '$TMPDISK1')})
        (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:2544))
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(umount)} {($ Id.VSub_DollarName '$TMPDISK2')})
        (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:2552))
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(umount)} {($ Id.VSub_DollarName '$TMPDISK3')})
        (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:2560))
      ]
    )
    (C {(edparams)} {($ Id.VSub_DollarName '$TMPDISK3')} 
      {
        (SQ (Token id:Id.Lit_Chars val:'unset bootopts;\n' span_id:2571) 
          (Token id:Id.Lit_Chars val:'unset servers;\n' span_id:2572) (Token id:Id.Lit_Chars val:'unset rootdev;\n' span_id:2573) 
          (Token id:Id.Lit_Chars val:'unset leader;\n' span_id:2574) (Token id:Id.Lit_Chars val:'unset image;\n' span_id:2575) 
          (Token id:Id.Lit_Chars val:'disable=inet;\n' span_id:2576) (Token id:Id.Lit_Chars val:'bootcd=1;\n' span_id:2577) 
          (Token id:Id.Lit_Chars val:'cdproberoot=1;\n' span_id:2578) (Token id:Id.Lit_Chars val:'ata_id_timeout=2;\n' span_id:2579) 
          (Token
            id: Id.Lit_Chars
            val: 'bootbig(1, Regular MINIX 3) { unset image; boot }\n'
            span_id: 2580
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'leader() { echo \\n--- Welcome to MINIX 3. This is the boot monitor. ---\\n\\nChoose an option from the menu or press ESC if you need to do anything special.\\nOtherwise I will boot with my defaults in 10 seconds.\\n\\n }; main(){trap 10000 boot; menu; };\n'
            span_id: 2581
          ) (Token id:Id.Lit_Chars val:save span_id:2582)
        )
      }
    )
    (command.Subshell
      command_list: 
        (command.CommandList
          children: [(command.AndOr ops:[Id.Op_DAmp] children:[(C {(cd)} {(../boot)}) (C {(make)})])]
        )
    )
    (C {(dd)} {(Id.Lit_VarLike 'if=') ($ Id.VSub_DollarName '$TMPDISK3')} 
      {(Id.Lit_VarLike 'of=') ($ Id.VSub_DollarName '$ROOTIMAGE')} {(Id.Lit_VarLike 'bs=') ($ Id.VSub_DollarName '$BS')} 
      {(Id.Lit_VarLike 'count=') ($ Id.VSub_DollarName '$ROOTBLOCKS')}
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {(cp)} {(release/cd/) (Id.Lit_Star '*')} {($ Id.VSub_DollarName '$CDFILES')})
        (C {(true)})
      ]
    )
    (command.Simple
      words: [
        {(echo)}
        {
          (DQ ('This is Minix version ') ($ Id.VSub_DollarName '$version_pretty') (' prepared ') 
            (command_sub
              left_token: (Token id:Id.Left_Backtick val:'`' span_id:2628)
              command_list: (command.CommandList children:[(C {(date)})])
            ) (.)
          )
        }
      ]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:2636)
          fd: -1
          arg_word: {($ Id.VSub_DollarName '$CDFILES') (/VERSION.TXT)}
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:boottype)
          op: assign_op.Equal
          rhs: {(-n)}
          spids: [2641]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:bootimage)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$IMAGE')}
          spids: [2644]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$HDEMU'))} {(-ne)} {(0)} 
                  {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:2660)
            )
          ]
          action: [
            (C {(make_hdimage)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:boottype)
                  op: assign_op.Equal
                  rhs: {(SQ (Token id:Id.Lit_Chars val:-h span_id:2670))}
                  spids: [2668]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:bootimage)
                  op: assign_op.Equal
                  rhs: {(hdimage)}
                  spids: [2674]
                )
              ]
            )
          ]
          spids: [2647 2662]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$USB'))} {(-ne)} {(0)} 
                  {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:2693)
            )
          ]
          action: [(C {(mv)} {($ Id.VSub_DollarName '$bootimage')} {($ Id.VSub_DollarName '$IMG')})]
          spids: [2680 2695]
        )
      ]
      else_action: [
        (command.AndOr
          ops: [Id.Op_DPipe]
          children: [
            (C {(writeisofs)} {(-s0x1000)} {(-l)} {(MINIX)} {(-b)} {($ Id.VSub_DollarName '$bootimage')} 
              {($ Id.VSub_DollarName '$boottype')} {($ Id.VSub_DollarName '$CDFILES')} {($ Id.VSub_DollarName '$IMG')}
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:2727)
              arg_word: {(1)}
            )
          ]
        )
        (command.If
          arms: [
            (if_arm
              cond: [
                (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$HDEMU'))} {(-eq)} {(0)} 
                  {(Id.Lit_RBracket ']')}
                )
              ]
              action: [
                (C {(echo)} {(DQ ('Appending Minix root and usr filesystem'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:isobytes)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: (Token id:Id.Left_Backtick val:'`' span_id:2763)
                            command_list: 
                              (command.CommandList
                                children: [(C {(stat)} {(-size)} {($ Id.VSub_DollarName '$IMG')})]
                              )
                          )
                        }
                      spids: [2762]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:isosects)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: (Token id:Id.Left_Backtick val:'`' span_id:2775)
                            command_list: 
                              (command.CommandList
                                children: [
                                  (C {(expr)} {($ Id.VSub_DollarName '$isobytes')} {(/)} {(512)})
                                ]
                              )
                          )
                        }
                      spids: [2774]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:isopad)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: (Token id:Id.Left_Backtick val:'`' span_id:2789)
                            command_list: 
                              (command.CommandList
                                children: [
                                  (C {(expr)} {($ Id.VSub_DollarName '$secs')} {(-)} 
                                    {(SQ (Token id:Id.Lit_Chars val:'(' span_id:2799))} {($ Id.VSub_DollarName '$isosects')} {(Id.Lit_Other '%')} {($ Id.VSub_DollarName '$secs')} 
                                    {(SQ (Token id:Id.Lit_Chars val:')' span_id:2809))}
                                  )
                                ]
                              )
                          )
                        }
                      spids: [2788]
                    )
                  ]
                )
                (command.Simple
                  words: [
                    {(dd)}
                    {(Id.Lit_VarLike 'if=') (/dev/zero)}
                    {(Id.Lit_VarLike 'count=') ($ Id.VSub_DollarName '$isopad')}
                  ]
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_DGreat val:'>>' span_id:2822)
                      fd: -1
                      arg_word: {($ Id.VSub_DollarName '$IMG')}
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:isosects)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: (Token id:Id.Left_Backtick val:'`' span_id:2831)
                            command_list: 
                              (command.CommandList
                                children: [
                                  (C {(expr)} {($ Id.VSub_DollarName '$isosects')} {(Id.Lit_Other '+')} 
                                    {($ Id.VSub_DollarName '$isopad')}
                                  )
                                ]
                              )
                          )
                        }
                      spids: [2830]
                    )
                  ]
                )
                (command.Subshell
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Sentence
                          child: 
                            (C {(cat)} {($ Id.VSub_DollarName '$IMG')} 
                              {($ Id.VSub_DollarName '$ROOTIMAGE')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:2852)
                        )
                        (C {(dd)} {(Id.Lit_VarLike 'if=') ($ Id.VSub_DollarName '$TMPDISK1')} 
                          {(Id.Lit_VarLike 'bs=') ($ Id.VSub_DollarName '$BS')} {(Id.Lit_VarLike 'count=') ($ Id.VSub_DollarName '$USRBLOCKS')}
                        )
                      ]
                    )
                  redirects: [
                    (redir.Redir
                      op: (Token id:Id.Redir_Great val:'>' span_id:2868)
                      fd: -1
                      arg_word: {(m)}
                    )
                  ]
                )
                (C {(mv)} {(m)} {($ Id.VSub_DollarName '$IMG')})
                (C {(installboot)} {(-m)} {($ Id.VSub_DollarName '$IMG')} {(/usr/mdec/masterboot)})
                (C {(partition)} {(-m)} {($ Id.VSub_DollarName '$IMG')} {(0)} 
                  {(81) (Id.Lit_Other ':') ($ Id.VSub_DollarName '$isosects')} {(81) (Id.Lit_Other ':') ($ Id.VSub_DollarName '$ROOTSECTS')} 
                  {(81) (Id.Lit_Other ':') ($ Id.VSub_DollarName '$USRSECTS')}
                )
              ]
              spids: [2733 2748]
            )
          ]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$FILENAMEOUT'))} 
              {(Id.Lit_RBracket ']')}
            )
          ]
          action: [
            (command.Simple
              words: [{(echo)} {(DQ ($ Id.VSub_DollarName '$IMG'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:2944)
                  fd: -1
                  arg_word: {($ Id.VSub_DollarName '$FILENAMEOUT')}
                )
              ]
            )
          ]
          spids: [2926 2936]
        )
      ]
    )
  ]
)