(Pipeline
  children: [
    (C {(cat)} {($ VSub_Number '$1')})
    (WhileUntil
      keyword: <KW_While while>
      cond: [(C {(read)} {(line)})]
      body: 
        (DoGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (Pipeline
                  children: [
                    (C {(echo)} {($ VSub_Name '$line')})
                    (C {(awk)} 
                      {
                        (SQ 
                          <
'NF==4 { print "mkdir -p "$4" || exit 1; chmod "$1" "$4" || exit 1; chown "$2" "$4" || exit 1; chgrp "$3" "$4" || exit 1" } NF==3 { print "rm "$1" ; ln -s "$3" "$1" || exit 1" } '
                          >
                        )
                      }
                    )
                    (C {(sh)})
                  ]
                  negated: F
                )
                (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
              ]
            )
          ]
          spids: [15 39]
        )
    )
  ]
  negated: F
)