(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-lt)} {(3)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('Usage: ') ($ VSub_Number '$0') 
                    (' [-b] image-label image-name base-bits-dir [extra-bits-dir]')
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/stderr)} spids:[96])]
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 85]
        )
      ]
      spids: [-1 105]
    )
    (Case
      to_match: {(DQ ($ VSub_Number '$1'))}
      arms: [
        (case_arm
          pat_list: [{(-b)}]
          action: [
            (Sentence
              child: 
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:BOPT)
                      op: Equal
                      rhs: {(DQ ($ VSub_Number '$1'))}
                      spids: [119]
                    )
                  ]
                  spids: [119]
                )
              terminator: <Op_Semi ';'>
            )
            (C {(shift)})
          ]
          spids: [116 117 127 -1]
        )
      ]
      spids: [108 114 129]
    )
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:LABEL)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (C {(echo)} {(DQ ($ VSub_Number '$1'))})
                              (C {(tr)} {(SQ <'[:lower:]'>)} {(SQ <'[:upper:]'>)})
                            ]
                            negated: False
                          )
                        ]
                      )
                    left_token: <Left_Backtick '`'>
                    spids: [132 150]
                  )
                }
              spids: [131]
            )
          ]
          spids: [131]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (Sentence
      child: 
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:NAME)
              op: Equal
              rhs: {(DQ ($ VSub_Number '$1'))}
              spids: [155]
            )
          ]
          spids: [155]
        )
      terminator: <Op_Semi ';'>
    )
    (C {(shift)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BASEBITSDIR)
          op: Equal
          rhs: {(DQ ($ VSub_Number '$1'))}
          spids: [163]
        )
      ]
      spids: [163]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:publisher)
          op: Equal
          rhs: {(DQ ('The FreeBSD Project.  http://www.FreeBSD.org/'))}
          spids: [172]
        )
      ]
      spids: [172]
    )
    (SimpleCommand
      words: [{(echo)} {(DQ (/dev/iso9660/) ($ VSub_Name '$LABEL') (' / cd9660 ro 0 0'))}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {(DQ ($ VSub_Name '$BASEBITSDIR') (/etc/fstab))}
          spids: [185]
        )
      ]
    )
    (C {(makefs)} {(-t)} {(cd9660)} {(-o)} {(rockridge)} {(-o)} 
      {(Lit_VarLike 'label=') (DQ ($ VSub_Name '$LABEL'))} {(-o)} {(Lit_VarLike 'publisher=') (DQ ($ VSub_Name '$publisher'))} {(DQ ($ VSub_Name '$NAME') (.tmp))} 
      {(DQ ($ VSub_At '$@'))}
    )
    (C {(rm)} {(-f)} {(DQ ($ VSub_Name '$BASEBITSDIR') (/etc/fstab))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ (x) ($ VSub_Name '$BOPT'))} {(KW_Bang '!') (Lit_Other '=')} 
                  {(DQ (x-b))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(mv)} {(DQ ($ VSub_Name '$NAME') (.tmp))} {(DQ ($ VSub_Name '$NAME'))})
            (C {(exit)} {(0)})
          ]
          spids: [-1 254]
        )
      ]
      spids: [-1 273]
    )
    (AndOr
      children: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:TMPIMGDIR)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(mktemp)} {(-d)} {(/tmp/bootfs.XXXXXXXX)})]
                      )
                    left_token: <Left_Backtick '`'>
                    spids: [277 283]
                  )
                }
              spids: [276]
            )
          ]
          spids: [276]
        )
        (C {(exit)} {(1)})
      ]
      op_id: Op_DPipe
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BOOTFSDIR)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$TMPIMGDIR') (/bootfs))}
          spids: [291]
        )
      ]
      spids: [291]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BOOTFSIMG)
          op: Equal
          rhs: {(DQ ($ VSub_Name '$TMPIMGDIR') (/bootfs.img))}
          spids: [297]
        )
      ]
      spids: [297]
    )
    (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$BOOTFSDIR') (/boot))})
    (C {(cp)} {(-p)} {(DQ ($ VSub_Name '$BASEBITSDIR') (/boot/loader))} 
      {(DQ ($ VSub_Name '$BOOTFSDIR') (/boot))}
    )
    (C {(makefs)} {(-t)} {(ffs)} {(-B)} {(be)} {(-M)} {(512k)} {(DQ ($ VSub_Name '$BOOTFSIMG'))} 
      {(DQ ($ VSub_Name '$BOOTFSDIR'))}
    )
    (C {(dd)} {(Lit_VarLike 'if=') (DQ ($ VSub_Name '$BASEBITSDIR') (/boot/boot1))} 
      {(Lit_VarLike 'of=') (DQ ($ VSub_Name '$BOOTFSIMG'))} {(Lit_VarLike 'bs=') (512)} {(Lit_VarLike 'conv=') (notrunc) (Lit_Comma ',') (sync)}
    )
    (C {(Lit_Other ':')} 
      {
        (BracedVarSub
          token: <VSub_Name CYLSIZE>
          suffix_op: (StringUnary op_id:VTest_ColonEquals arg_word:{(640)})
          spids: [379 383]
        )
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ISOSIZE)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(stat)} {(-f)} {(Lit_Other '%') (z)} {(DQ ($ VSub_Name '$NAME') (.tmp))})
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [386 398]
              )
            }
          spids: [385]
        )
      ]
      spids: [385]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ISOBLKS)
          op: Equal
          rhs: 
            {
              (ArithSubPart
                anode: 
                  (ArithBinary
                    op_id: Arith_Slash
                    left: 
                      (ArithBinary
                        op_id: Arith_Plus
                        left: (ArithWord w:{($ VSub_Name '$ISOSIZE')})
                        right: (ArithWord w:{(Lit_Digits 511)})
                      )
                    right: (ArithWord w:{(Lit_Digits 512)})
                  )
                spids: [401 414]
              )
            }
          spids: [400]
        )
      ]
      spids: [400]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ISOCYLS)
          op: Equal
          rhs: 
            {
              (ArithSubPart
                anode: 
                  (ArithBinary
                    op_id: Arith_Slash
                    left: 
                      (ArithBinary
                        op_id: Arith_Plus
                        left: (ArithWord w:{($ VSub_Name '$ISOBLKS')})
                        right: 
                          (ArithBinary
                            op_id: Arith_Minus
                            left: (ArithWord w:{($ VSub_Name '$CYLSIZE')})
                            right: (ArithWord w:{(Lit_Digits 1)})
                          )
                      )
                    right: (ArithWord w:{($ VSub_Name '$CYLSIZE')})
                  )
                spids: [417 436]
              )
            }
          spids: [416]
        )
      ]
      spids: [416]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BOOTFSSIZE)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(stat)} {(-f)} {(Lit_Other '%') (z)} {(DQ ($ VSub_Name '$BOOTFSIMG'))})
                    ]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [440 451]
              )
            }
          spids: [439]
        )
      ]
      spids: [439]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BOOTFSBLKS)
          op: Equal
          rhs: 
            {
              (ArithSubPart
                anode: 
                  (ArithBinary
                    op_id: Arith_Slash
                    left: 
                      (ArithBinary
                        op_id: Arith_Plus
                        left: (ArithWord w:{($ VSub_Name '$BOOTFSSIZE')})
                        right: (ArithWord w:{(Lit_Digits 511)})
                      )
                    right: (ArithWord w:{(Lit_Digits 512)})
                  )
                spids: [454 467]
              )
            }
          spids: [453]
        )
      ]
      spids: [453]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BOOTFSCYLS)
          op: Equal
          rhs: 
            {
              (ArithSubPart
                anode: 
                  (ArithBinary
                    op_id: Arith_Slash
                    left: 
                      (ArithBinary
                        op_id: Arith_Plus
                        left: (ArithWord w:{($ VSub_Name '$BOOTFSBLKS')})
                        right: 
                          (ArithBinary
                            op_id: Arith_Minus
                            left: (ArithWord w:{($ VSub_Name '$CYLSIZE')})
                            right: (ArithWord w:{(Lit_Digits 1)})
                          )
                      )
                    right: (ArithWord w:{($ VSub_Name '$CYLSIZE')})
                  )
                spids: [470 489]
              )
            }
          spids: [469]
        )
      ]
      spids: [469]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:ENDCYL)
          op: Equal
          rhs: 
            {
              (ArithSubPart
                anode: 
                  (ArithBinary
                    op_id: Arith_Plus
                    left: (ArithWord w:{($ VSub_Name '$ISOCYLS')})
                    right: (ArithWord w:{($ VSub_Name '$BOOTFSCYLS')})
                  )
                spids: [493 500]
              )
            }
          spids: [492]
        )
      ]
      spids: [492]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:NSECTS)
          op: Equal
          rhs: 
            {
              (ArithSubPart
                anode: 
                  (ArithBinary
                    op_id: Arith_Star
                    left: 
                      (ArithBinary
                        op_id: Arith_Star
                        left: (ArithWord w:{($ VSub_Name '$ENDCYL')})
                        right: (ArithWord w:{(Lit_Digits 1)})
                      )
                    right: (ArithWord w:{($ VSub_Name '$CYLSIZE')})
                  )
                spids: [503 514]
              )
            }
          spids: [502]
        )
      ]
      spids: [502]
    )
    (C {(dd)} {(Lit_VarLike 'if=') (DQ ($ VSub_Name '$NAME') (.tmp))} 
      {(Lit_VarLike 'of=') (DQ ($ VSub_Name '$NAME'))} {(Lit_VarLike 'bs=') (DQ (${ VSub_Name CYLSIZE) (b))} 
      {(Lit_VarLike 'conv=') (notrunc) (Lit_Comma ',') (sync)}
    )
    (C {(dd)} {(Lit_VarLike 'if=') (DQ ($ VSub_Name '$BOOTFSIMG'))} 
      {(Lit_VarLike 'of=') (DQ ($ VSub_Name '$NAME'))} {(Lit_VarLike 'bs=') (DQ (${ VSub_Name CYLSIZE) (b))} {(Lit_VarLike 'seek=') ($ VSub_Name '$ISOCYLS')} 
      {(Lit_VarLike 'conv=') (notrunc) (Lit_Comma ',') (sync)}
    )
    (C {(dd)} {(Lit_VarLike 'if=') (/dev/zero)} {(Lit_VarLike 'of=') (DQ ($ VSub_Name '$NAME'))} 
      {(Lit_VarLike 'bs=') (DQ (${ VSub_Name CYLSIZE) (b))} {(Lit_VarLike 'seek=') ($ VSub_Name '$ENDCYL')} {(Lit_VarLike 'count=') (2)} 
      {(Lit_VarLike 'conv=') (notrunc) (Lit_Comma ',') (sync)}
    )
    (C {(rm)} {(-rf)} {(DQ ($ VSub_Name '$NAME') (.tmp))} {(DQ ($ VSub_Name '$TMPIMGDIR'))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MD)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (C {(mdconfig)} {(-a)} {(-t)} {(vnode)} {(-S)} {(512)} {(-y)} {(1)} {(-x)} 
                        {(DQ ($ VSub_Name '$CYLSIZE'))} {(-f)} {(DQ ($ VSub_Name '$NAME'))}
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [621 649]
              )
            }
          spids: [620]
        )
      ]
      spids: [620]
    )
    (C {(gpart)} {(create)} {(-s)} {(VTOC8)} {($ VSub_Name '$MD')})
    (C {(gpart)} {(add)} {(-i)} {(1)} {(-s)} 
      {
        (DQ 
          (ArithSubPart
            anode: 
              (ArithBinary
                op_id: Arith_Star
                left: 
                  (ArithBinary
                    op_id: Arith_Star
                    left: (ArithWord w:{($ VSub_Name '$ISOCYLS')})
                    right: (ArithWord w:{($ VSub_Name '$CYLSIZE')})
                  )
                right: (ArithWord w:{(Lit_Digits 512)})
              )
            spids: [675 686]
          ) (b)
        )
      } {(-t)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\!'>) (4)} {($ VSub_Name '$MD')}
    )
    (C {(gpart)} {(add)} {(-i)} {(6)} {(-s)} 
      {
        (DQ 
          (ArithSubPart
            anode: 
              (ArithBinary
                op_id: Arith_Star
                left: 
                  (ArithBinary
                    op_id: Arith_Star
                    left: (ArithWord w:{($ VSub_Name '$BOOTFSCYLS')})
                    right: (ArithWord w:{($ VSub_Name '$CYLSIZE')})
                  )
                right: (ArithWord w:{(Lit_Digits 512)})
              )
            spids: [711 722]
          ) (b)
        )
      } {(-t)} {(EscapedLiteralPart token:<Lit_EscapedChar '\\!'>) (2)} {($ VSub_Name '$MD')}
    )
    (C {(mdconfig)} {(-d)} {(-u)} 
      {
        (BracedVarSub
          token: <VSub_Name MD>
          suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(md)})
          spids: [739 743]
        )
      }
    )
  ]
)