(command.CommandList
  children: [
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<errexit>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<nounset>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<pipefail>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'UTIL_SCRIPT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'UTIL_SCRIPT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UTIL_SCRIPT='> name:UTIL_SCRIPT)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <readlink>
                    more_env: []
                    words: [{<readlink>} {<-m>} {(DQ (${ Id.VSub_Name BASH_SOURCE))}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'JUJU_PATH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'JUJU_PATH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'JUJU_PATH='> name:JUJU_PATH)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <dirname>
                    more_env: []
                    words: [{<dirname>} {(${ Id.VSub_Name UTIL_SCRIPT)}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KUBE_ROOT='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KUBE_ROOT='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_ROOT='> name:KUBE_ROOT)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <readlink>
                    more_env: []
                    words: [{<readlink>} {<-m>} {(${ Id.VSub_Name JUJU_PATH) <'/../../'>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <source>
      more_env: []
      words: [
        {<source>}
        {
          (DQ (${ Id.VSub_Name JUJU_PATH) <'/'> 
            (BracedVarSub
              left: <Id.Left_DollarBrace '${'>
              token: <Id.VSub_Name KUBE_CONFIG_FILE>
              var_name: KUBE_CONFIG_FILE
              suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<config-default.sh>})
              right: <Id.Right_DollarBrace '}'>
            )
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <source>
      more_env: []
      words: [{<source>} {(DQ (${ Id.VSub_Name JUJU_PATH) <'/prereqs/ubuntu-juju.sh'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <export>
      more_env: []
      words: [
        {<export>}
        {<Id.Lit_VarLike 'JUJU_REPOSITORY='> (DQ (${ Id.VSub_Name JUJU_PATH) <'/charms'>)}
      ]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KUBE_BUNDLE_PATH='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KUBE_BUNDLE_PATH='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_BUNDLE_PATH='> name:KUBE_BUNDLE_PATH)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name JUJU_PATH) <'/bundles/local.yaml'>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KUBECTL_DIR='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KUBECTL_DIR='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBECTL_DIR='> name:KUBECTL_DIR)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/platforms/linux/amd64'>)}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <build-local>
      name: build-local
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <charm>
              more_env: []
              words: [
                {<charm>}
                {<build>}
                {(${ Id.VSub_Name JUJU_PATH) <'/layers/kubernetes'>}
                {<-o>}
                {($ Id.VSub_DollarName JUJU_REPOSITORY)}
                {<-r>}
                {<--no-local-layers>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <detect-master>
      name: detect-master
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<kubestatus>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'kubestatus='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'kubestatus='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kubestatus='> name:kubestatus)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Pipeline
                            children: [
                              (command.Simple
                                blame_tok: <juju>
                                more_env: []
                                words: [
                                  {<juju>}
                                  {<status>}
                                  {<--format> <Id.Lit_Equals '='> <oneline>}
                                  {<kubernetes>}
                                ]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <grep>
                                more_env: []
                                words: [{<grep>} {(${ Id.VSub_Name KUBE_MASTER_NAME)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <awk>
                                more_env: []
                                words: [{<awk>} {(SQ <'{print $3}'>)}]
                                redirects: []
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <tr>
                                more_env: []
                                words: [{<tr>} {<-d>} {(DQ <Id.Lit_BadBackslash '\\'> <n>)}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [{<export>} {<Id.Lit_VarLike 'KUBE_MASTER_IP='> (${ Id.VSub_Name kubestatus)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [
                {<export>}
                {<Id.Lit_VarLike 'KUBE_SERVER='> <https> <Id.Lit_Colon ':'> <'//'> 
                  (${ Id.VSub_Name KUBE_MASTER_IP) <Id.Lit_Colon ':'> <6433>
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <detect-nodes>
      name: detect-nodes
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<ipoutput>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'ipoutput='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'ipoutput='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ipoutput='> name:ipoutput)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <juju>
                            more_env: []
                            words: [
                              {<juju>}
                              {<run>}
                              {<--application>}
                              {<kubernetes>}
                              {(DQ <'unit-get private-address'>)}
                              {<--format> <Id.Lit_Equals '='> <json>}
                            ]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [
                {<export>}
                {<Id.Lit_VarLike 'KUBE_NODE_IP_ADDRESSES='> 
                  (ShArrayLiteral
                    left: <Id.Op_LParen _>
                    words: [
                      {
                        (CommandSub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Simple
                              blame_tok: <Id.Left_DollarBrace '${'>
                              more_env: []
                              words: [
                                {(${ Id.VSub_Name JUJU_PATH) <'/return-node-ips.py'>}
                                {(DQ (${ Id.VSub_Name ipoutput))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          right: <Id.Eof_RParen _>
                        )
                      }
                    ]
                    right: <Id.Right_ShArrayLiteral _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [
                {<export>}
                {<Id.Lit_VarLike 'NUM_NODES='> 
                  (BracedVarSub
                    left: <Id.Left_DollarBrace '${'>
                    token: <Id.VSub_Name KUBE_NODE_IP_ADDRESSES>
                    var_name: KUBE_NODE_IP_ADDRESSES
                    prefix_op: <Id.VSub_Pound '#'>
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    right: <Id.Right_DollarBrace '}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <kube-up>
      name: kube-up
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <build-local>
              more_env: []
              words: [{<build-local>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sed>
              more_env: []
              words: [{<sed>} {(DQ <'s|__CHARM_DIR__|'> (${ Id.VSub_Name JUJU_REPOSITORY) <'|'>)}]
              redirects: [
                (Redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(${ Id.VSub_Name KUBE_BUNDLE_PATH) <.base>}
                )
                (Redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(${ Id.VSub_Name KUBE_BUNDLE_PATH)}
                )
              ]
              do_fork: T
            )
            (command.Simple
              blame_tok: <juju>
              more_env: []
              words: [{<juju>} {<deploy>} {(${ Id.VSub_Name KUBE_BUNDLE_PATH)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <source>
              more_env: []
              words: [{<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/common.sh'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <sleep-status>
              more_env: []
              words: [{<sleep-status>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <detect-master>
              more_env: []
              words: [{<detect-master>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <detect-nodes>
              more_env: []
              words: [{<detect-nodes>}]
              redirects: []
              do_fork: T
            )
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.CommandList
                  children: [
                    (command.Simple
                      blame_tok: <umask>
                      more_env: []
                      words: [{<umask>} {<077>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <mkdir>
                      more_env: []
                      words: [{<mkdir>} {<-p>} {(${ Id.VSub_Name KUBECTL_DIR)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <juju>
                      more_env: []
                      words: [
                        {<juju>}
                        {<scp>}
                        {(${ Id.VSub_Name KUBE_MASTER_NAME) <Id.Lit_Colon ':'> 
                          <kubectl_package.tar.gz>
                        }
                        {(${ Id.VSub_Name KUBECTL_DIR)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <tar>
                      more_env: []
                      words: [
                        {<tar>}
                        {<xfz>}
                        {(${ Id.VSub_Name KUBECTL_DIR) <'/kubectl_package.tar.gz'>}
                        {<-C>}
                        {(${ Id.VSub_Name KUBECTL_DIR)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
            (command.Simple
              blame_tok: <export>
              more_env: []
              words: [
                {<export>}
                {<Id.Lit_VarLike 'KUBECONFIG='> (DQ (${ Id.VSub_Name KUBECTL_DIR) <'/kubeconfig'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <kube-down>
      name: kube-down
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [
                {<local>}
                {<Id.Lit_VarLike 'force='> 
                  (DQ 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Number 1>
                      var_name: 1
                      suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:(rhs_word__Empty))
                      right: <Id.Right_DollarBrace '}'>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<jujuenv>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'jujuenv='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'jujuenv='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'jujuenv='> name:jujuenv)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <juju>
                            more_env: []
                            words: [{<juju>} {<switch>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <juju>
                  more_env: []
                  words: [
                    {<juju>}
                    {<destroy-model>}
                    {(${ Id.VSub_Name jujuenv)}
                    {(${ Id.VSub_Name force)}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <true>
                  more_env: []
                  words: [{<true>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-rf>} {(${ Id.VSub_Name KUBE_ROOT) <'/cluster/juju/charms'>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <rm>
              more_env: []
              words: [{<rm>} {<-rf>} {(${ Id.VSub_Name KUBECTL_DIR)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <prepare-e2e>
      name: prepare-e2e
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'prepare-e2e() The Juju provider does not need any preparations for e2e.'>)}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <sleep-status>
      name: sleep-status
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<i>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<maxtime>}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<jujustatus>}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'i='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'i='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                  op: assign_op.Equal
                  rhs: {<0>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'maxtime='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'maxtime='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'maxtime='> name:maxtime)
                  op: assign_op.Equal
                  rhs: {<900>}
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'jujustatus='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'jujustatus='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'jujustatus='> name:jujustatus)
                  op: assign_op.Equal
                  rhs: {(SQ )}
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ 
                    <
'Waiting up to 15 minutes to allow the cluster to come online... wait for it...'
                    >
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: 
                (condition.Shell
                  commands: [
                    (command.Sentence
                      child: 
                        (command.DBracket
                          left: <Id.KW_DLeftBracket '[['>
                          expr: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.Binary
                                  op_id: Id.Op_Less
                                  left: {($ Id.VSub_DollarName i)}
                                  right: {($ Id.VSub_DollarName maxtime)}
                                )
                              right: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: {($ Id.VSub_DollarName jujustatus)}
                                )
                            )
                          right: <Id.Lit_DRightBracket ']]'>
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <sleep>
                      more_env: []
                      words: [{<sleep>} {<15>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'i='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'i='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (word_part.ArithSub
                                left: <Id.Left_DollarDParen '$(('>
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Plus
                                    left: ($ Id.Lit_ArithVarLike i)
                                    right: {<Id.Lit_Digits 15>}
                                  )
                                right: <Id.Right_DollarDParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'jujustatus='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'jujustatus='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'jujustatus='> name:jujustatus)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (CommandSub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    blame_tok: <Id.Left_DollarBrace '${'>
                                    more_env: []
                                    words: [{(${ Id.VSub_Name JUJU_PATH) <'/identify-leaders.py'>}]
                                    redirects: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                        )
                      ]
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <export>
                      more_env: []
                      words: [
                        {<export>}
                        {<Id.Lit_VarLike 'KUBE_MASTER_NAME='> (${ Id.VSub_Name jujustatus)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <test-build-release>
      name: test-build-release
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'test-build-release() '>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <test-setup>
      name: test-setup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <Id.Left_DoubleQuote '"'>
              more_env: []
              words: [{(DQ (${ Id.VSub_Name KUBE_ROOT) <'/cluster/kube-up.sh'>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <test-teardown>
      name: test-teardown
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <kube-down>
              more_env: []
              words: [{<kube-down>} {(DQ <-y>)}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <verify-prereqs>
      name: verify-prereqs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <gather_installation_reqs>
              more_env: []
              words: [{<gather_installation_reqs>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)