(CommandList
  children: [
    (FuncDef
      name: usage
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ (${ VSub_Number 0) (' usage:'))})
            (C {(echo)} {(DQ (${ VSub_At '@'))})
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [104]
        )
      spids: [100 103]
    )
    (FuncDef
      name: main
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:arg) op:Equal spids:[142])]
              spids: [140]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:VMCONFIG)
                  op: Equal
                  rhs: {(DQ (/dev/null))}
                  spids: [145]
                )
              ]
              spids: [145]
            )
            (While
              cond: [
                (Sentence
                  child: (C {(getopts)} {(DQ ('C:c:d:f:i:o:s:S:'))} {(arg)})
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {(DQ (${ VSub_Name arg))}
                      arms: [
                        (case_arm
                          pat_list: [{(C)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:VMBUILDCONF)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name OPTARG))}
                                  spids: [180]
                                )
                              ]
                              spids: [180]
                            )
                          ]
                          spids: [176 177 188 16777215]
                        )
                        (case_arm
                          pat_list: [{(c)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:VMCONFIG)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name OPTARG))}
                                  spids: [195]
                                )
                              ]
                              spids: [195]
                            )
                          ]
                          spids: [191 192 203 16777215]
                        )
                        (case_arm
                          pat_list: [{(d)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:DESTDIR)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name OPTARG))}
                                  spids: [210]
                                )
                              ]
                              spids: [210]
                            )
                          ]
                          spids: [206 207 218 16777215]
                        )
                        (case_arm
                          pat_list: [{(f)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:VMFORMAT)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name OPTARG))}
                                  spids: [225]
                                )
                              ]
                              spids: [225]
                            )
                          ]
                          spids: [221 222 233 16777215]
                        )
                        (case_arm
                          pat_list: [{(i)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:VMBASE)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name OPTARG))}
                                  spids: [240]
                                )
                              ]
                              spids: [240]
                            )
                          ]
                          spids: [236 237 248 16777215]
                        )
                        (case_arm
                          pat_list: [{(o)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:VMIMAGE)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name OPTARG))}
                                  spids: [255]
                                )
                              ]
                              spids: [255]
                            )
                          ]
                          spids: [251 252 263 16777215]
                        )
                        (case_arm
                          pat_list: [{(s)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:VMSIZE)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name OPTARG))}
                                  spids: [270]
                                )
                              ]
                              spids: [270]
                            )
                          ]
                          spids: [266 267 278 16777215]
                        )
                        (case_arm
                          pat_list: [{(S)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:WORLDDIR)
                                  op: Equal
                                  rhs: {(DQ (${ VSub_Name OPTARG))}
                                  spids: [285]
                                )
                              ]
                              spids: [285]
                            )
                          ]
                          spids: [281 282 293 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          spids: [296 297 300 16777215]
                        )
                      ]
                      spids: [165 173 303]
                    )
                  ]
                  spids: [162 306]
                )
            )
            (C {(shift)} 
              {
                (ArithSubPart
                  anode: 
                    (ArithBinary
                      op_id: Arith_Minus
                      left: (ArithWord w:{(${ VSub_Name OPTIND)})
                      right: (ArithWord w:{(Lit_Digits 1)})
                    )
                  spids: [311 321]
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name VMBASE))} {(-o)} {(-z)} 
                          {(DQ (${ VSub_Name WORLDDIR))} {(-o)} {(-z)} {(DQ (${ VSub_Name DESTDIR))} {(-o)} {(-z)} {(DQ (${ VSub_Name VMSIZE))} {(-o)} {(-z)} 
                          {(DQ (${ VSub_Name VMIMAGE))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(usage)})
                        (ControlFlow
                          token: <ControlFlow_Exit exit>
                          arg_word: {(0)}
                        )
                      ]
                    )
                  ]
                  spids: [16777215 389]
                )
              ]
              spids: [16777215 401]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name VMBUILDCONF))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ (${ VSub_Name VMBUILDCONF))} 
                              {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(DQ ('Must provide the path to vmimage.subr.'))})
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 436]
                )
              ]
              spids: [16777215 451]
            )
            (C {(.)} {(DQ (${ VSub_Name VMBUILDCONF))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ (${ VSub_Name VMCONFIG))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-c)} {(DQ (${ VSub_Name VMCONFIG))} 
                              {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(.)} {(DQ (${ VSub_Name VMCONFIG))})]
                  spids: [16777215 498]
                )
              ]
              spids: [16777215 510]
            )
            (Case
              to_match: {(${ VSub_Name TARGET) (Lit_Other ':') (${ VSub_Name TARGET_ARCH)}
              arms: [
                (case_arm
                  pat_list: [{(arm64) (Lit_Other ':') (aarch64)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ROOTLABEL)
                          op: Equal
                          rhs: {(DQ (ufs))}
                          spids: [533]
                        )
                      ]
                      spids: [533]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:NOSWAP) op:Equal rhs:{(1)} spids:[539])]
                      spids: [539]
                    )
                  ]
                  spids: [527 530 543 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ROOTLABEL)
                          op: Equal
                          rhs: {(DQ (gpt))}
                          spids: [550]
                        )
                      ]
                      spids: [550]
                    )
                  ]
                  spids: [546 547 556 16777215]
                )
              ]
              spids: [514 524 559]
            )
            (C {(vm_create_base)})
            (C {(vm_install_base)})
            (C {(vm_extra_install_base)})
            (C {(vm_extra_install_packages)})
            (C {(vm_extra_install_ports)})
            (C {(vm_extra_enable_services)})
            (C {(vm_extra_pre_umount)})
            (C {(vm_extra_pkg_rmcache)})
            (C {(cleanup)})
            (C {(vm_copy_base)})
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(vm_create_disk)})
                (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
              ]
            )
            (C {(vm_extra_create_disk)})
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [137]
        )
      spids: [133 136]
    )
    (C {(main)} {(DQ ($ VSub_At '$@'))})
  ]
)