(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 'KUBERNETES_CI_RELEASE_URL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KUBERNETES_CI_RELEASE_URL='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'KUBERNETES_CI_RELEASE_URL='>
              name: KUBERNETES_CI_RELEASE_URL
            )
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name KUBERNETES_CI_RELEASE_URL>
                  var_name: KUBERNETES_CI_RELEASE_URL
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_ColonHyphen _>
                      arg_word: 
                        {
                          (BracedVarSub
                            left: <Id.Left_DollarBrace '${'>
                            token: <Id.VSub_Name KUBERNETES_RELEASE_URL>
                            var_name: KUBERNETES_RELEASE_URL
                            suffix_op: 
                              (suffix_op.Unary
                                op: <Id.VTest_ColonHyphen _>
                                arg_word: 
                                  {<'https:'> <Id.Lit_Slash '/'> <Id.Lit_Slash '/'> <dl.k8s.io> 
                                    <Id.Lit_Slash '/'> <ci>
                                  }
                              )
                            right: <Id.Right_DollarBrace '}'>
                          )
                        }
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KUBERNETES_RELEASE_URL='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KUBERNETES_RELEASE_URL='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'KUBERNETES_RELEASE_URL='>
              name: KUBERNETES_RELEASE_URL
            )
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  left: <Id.Left_DollarBrace '${'>
                  token: <Id.VSub_Name KUBERNETES_RELEASE_URL>
                  var_name: KUBERNETES_RELEASE_URL
                  suffix_op: 
                    (suffix_op.Unary
                      op: <Id.VTest_ColonHyphen _>
                      arg_word: {<'https:'> <Id.Lit_Slash '/'> <Id.Lit_Slash '/'> <dl.k8s.io>}
                    )
                  right: <Id.Right_DollarBrace '}'>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KUBE_RELEASE_VERSION_REGEX='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KUBE_RELEASE_VERSION_REGEX='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'KUBE_RELEASE_VERSION_REGEX='>
              name: KUBE_RELEASE_VERSION_REGEX
            )
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'^v(0|[1-9][0-9]*)'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                <'.(0|[1-9][0-9]*)(-([a-zA-Z0-9]+)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*))?'> 
                <Id.Lit_Dollar '$'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'KUBE_CI_VERSION_REGEX='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'KUBE_CI_VERSION_REGEX='>
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'KUBE_CI_VERSION_REGEX='>
              name: KUBE_CI_VERSION_REGEX
            )
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'^v(0|[1-9][0-9]*)'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                <'.(0|[1-9][0-9]*)-([a-zA-Z0-9]+)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*)('> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'.(0|[1-9][0-9]*)'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') 
                <'+[-0-9a-z]*)?'> <Id.Lit_Dollar '$'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <set_binary_version>
      name: set_binary_version
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_EqualTilde
                                  left: {(DQ (${ Id.VSub_Number 1))}
                                  right: {(DQ <'/'>)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <export>
                      more_env: []
                      words: [
                        {<export>}
                        {<Id.Lit_VarLike 'KUBE_VERSION='> 
                          (CommandSub
                            left_token: <Id.Left_DollarParen '$('>
                            child: 
                              (command.Simple
                                blame_tok: <curl>
                                more_env: []
                                words: [
                                  {<curl>}
                                  {<-fsSL>}
                                  {<--retry>}
                                  {<5>}
                                  {(DQ <'https://dl.k8s.io/'> (${ Id.VSub_Number 1) <.txt>)}
                                ]
                                redirects: []
                                do_fork: T
                              )
                            right: <Id.Eof_RParen _>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [298 317]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <export>
                  more_env: []
                  words: [{<export>} {<Id.Lit_VarLike 'KUBE_VERSION='> (${ Id.VSub_Number 1)}]
                  redirects: []
                  do_fork: T
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <download_kube_binaries>
      name: download_kube_binaries
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.CommandList
                  children: [
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {<kubernetes>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_x
                                          child: {<'./cluster/get-kube-binaries.sh'>}
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <'./cluster/get-kube-binaries.sh'>
                              more_env: [
                                (EnvPair
                                  left: <Id.Lit_VarLike 'KUBERNETES_RELEASE_URL='>
                                  name: KUBERNETES_RELEASE_URL
                                  val: {(DQ (${ Id.VSub_Name KUBERNETES_RELEASE_URL))}
                                )
                              ]
                              words: [{<'./cluster/get-kube-binaries.sh'>}]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [379 390]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      keyword: <Id.KW_Function function>
      name_tok: <create_cluster>
      name: create_cluster
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name KUBERNETES_SKIP_CREATE_CLUSTER>
                                          var_name: KUBERNETES_SKIP_CREATE_CLUSTER
                                          suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:(rhs_word__Empty))
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [(command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})]
                  spids: [424 440]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'Creating a kubernetes on '> 
                    (BracedVarSub
                      left: <Id.Left_DollarBrace '${'>
                      token: <Id.VSub_Name KUBERNETES_PROVIDER>
                      var_name: KUBERNETES_PROVIDER
                      suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<gce>})
                      right: <Id.Right_DollarBrace '}'>
                    ) <...>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Subshell
              left: <Id.Op_LParen _>
              child: 
                (command.CommandList
                  children: [
                    (command.Simple
                      blame_tok: <cd>
                      more_env: []
                      words: [{<cd>} {<kubernetes>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <'./cluster/kube-up.sh'>
                      more_env: []
                      words: [{<'./cluster/kube-up.sh'>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {(DQ <'Kubernetes binaries at '> (${ Id.VSub_Name PWD) <'/cluster/'>)}
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobNEqual
                                          left: {(DQ <':'> ($ Id.VSub_DollarName PATH) <':'>)}
                                          right: 
                                            {<Id.Lit_Other '*'> 
                                              (DQ <':'> (${ Id.VSub_Name PWD) <'/cluster:'>) <Id.Lit_Other '*'>
                                            }
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [
                                {<echo>}
                                {
                                  (DQ <'You may want to add this directory to your PATH in '> 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                      ch: '$'
                                    ) <'HOME/.profile'>
                                  )
                                }
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          spids: [486 511]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Installation successful!'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                )
              right: <Id.Right_Subshell _>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_n
                          child: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name KUBERNETES_SKIP_DOWNLOAD>
                                  var_name: KUBERNETES_SKIP_DOWNLOAD
                                  suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:(rhs_word__Empty))
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <create_cluster>
              more_env: []
              words: [{<create_cluster>}]
              redirects: []
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>})
          ]
          spids: [539 555]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: (bool_expr.Unary op_id:Id.BoolUnary_d child:{(DQ <'./kubernetes'>)})
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_z
                                  child: 
                                    {
                                      (DQ 
                                        (BracedVarSub
                                          left: <Id.Left_DollarBrace '${'>
                                          token: <Id.VSub_Name KUBERNETES_SKIP_CONFIRM>
                                          var_name: KUBERNETES_SKIP_CONFIRM
                                          suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:(rhs_word__Empty))
                                          right: <Id.Right_DollarBrace '}'>
                                        )
                                      )
                                    }
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ 
                            <
'\'kubernetes\' directory already exist. Should we skip download step and start to create cluster based on it? [Y]/n'
                            >
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <read>
                      more_env: []
                      words: [{<read>} {<confirm>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.If
                      if_kw: <Id.KW_If if>
                      arms: [
                        (IfArm
                          keyword: <Id.KW_If if>
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      left: <Id.KW_DLeftBracket '[['>
                                      expr: 
                                        (bool_expr.LogicalNot
                                          child: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_EqualTilde
                                              left: {(DQ (${ Id.VSub_Name confirm))}
                                              right: 
                                                {<Id.Lit_Other '^'> <Id.Lit_Other '['> <nN> 
                                                  <Id.Lit_Other ']'> <Id.Lit_Other '$'>
                                                }
                                            )
                                        )
                                      right: <Id.Lit_DRightBracket ']]'>
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          then_kw: <Id.KW_Then then>
                          action: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'Skipping download step.'>)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <create_cluster>
                              more_env: []
                              words: [{<create_cluster>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.ControlFlow
                              keyword: <Id.ControlFlow_Exit exit>
                              arg_word: {<0>}
                            )
                          ]
                          spids: [615 638]
                        )
                      ]
                      else_action: []
                      fi_kw: <Id.KW_Fi fi>
                      redirects: []
                    )
                  ]
                  spids: [584 600]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [568 581]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'kernel='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'kernel='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kernel='> name:kernel)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <uname>
                    more_env: []
                    words: [{<uname>} {<-s>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Name kernel))})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Darwin>
          pattern: (pat.Words words:[{<Darwin>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'platform='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'platform='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'platform='> name:platform)
                  op: assign_op.Equal
                  rhs: {(DQ <darwin>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Linux>
          pattern: (pat.Words words:[{<Linux>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'platform='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'platform='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'platform='> name:platform)
                  op: assign_op.Equal
                  rhs: {(DQ <linux>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Unknown, unsupported platform: '> (${ Id.VSub_Name kernel) <.>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Supported platforms: Linux, Darwin.'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Bailing out.'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<2>})
          ]
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'machine='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'machine='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'machine='> name:machine)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <uname>
                    more_env: []
                    words: [{<uname>} {<-m>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{(DQ (${ Id.VSub_Name machine))})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <x86_64>
          pattern: 
            (pat.Words
              words: [
                {<x86_64> <Id.Lit_Star '*'>}
                {<i> <Id.Lit_QMark '?'> <86_64> <Id.Lit_Star '*'>}
                {<amd64> <Id.Lit_Star '*'>}
              ]
            )
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                  op: assign_op.Equal
                  rhs: {(DQ <amd64>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <aarch64>
          pattern: (pat.Words words:[{<aarch64> <Id.Lit_Star '*'>} {<arm64> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                  op: assign_op.Equal
                  rhs: {(DQ <arm64>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <arm>
          pattern: (pat.Words words:[{<arm> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                  op: assign_op.Equal
                  rhs: {(DQ <arm>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <i>
          pattern: (pat.Words words:[{<i> <Id.Lit_QMark '?'> <86> <Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'arch='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'arch='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'arch='> name:arch)
                  op: assign_op.Equal
                  rhs: {(DQ <386>)}
                )
              ]
              redirects: []
            )
          ]
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {(DQ <'Unknown, unsupported architecture ('> (${ Id.VSub_Name machine) <').'>)}
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Supported architectures x86_64, i686, arm, arm64.'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Bailing out.'>)}]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<3>})
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'file='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'file='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file='> name:file)
          op: assign_op.Equal
          rhs: {<kubernetes.tar.gz>}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'release='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'release='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'release='> name:release)
          op: assign_op.Equal
          rhs: 
            {
              (BracedVarSub
                left: <Id.Left_DollarBrace '${'>
                token: <Id.VSub_Name KUBERNETES_RELEASE>
                var_name: KUBERNETES_RELEASE
                suffix_op: 
                  (suffix_op.Unary
                    op: <Id.VTest_ColonHyphen _>
                    arg_word: {(DQ <'release/stable'>)}
                  )
                right: <Id.Right_DollarBrace '}'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <set_binary_version>
      more_env: []
      words: [{<set_binary_version>} {(DQ (${ Id.VSub_Name release))}]
      redirects: []
      do_fork: T
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_z
                          child: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name KUBERNETES_SKIP_RELEASE_VALIDATION>
                                  var_name: KUBERNETES_SKIP_RELEASE_VALIDATION
                                  suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:(rhs_word__Empty))
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_EqualTilde
                                  left: {(${ Id.VSub_Name KUBE_VERSION)}
                                  right: {(${ Id.VSub_Name KUBE_CI_VERSION_REGEX)}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'KUBERNETES_RELEASE_URL='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'KUBERNETES_RELEASE_URL='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'KUBERNETES_RELEASE_URL='>
                              name: KUBERNETES_RELEASE_URL
                            )
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name KUBERNETES_CI_RELEASE_URL))}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [940 957]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              negated: <Id.KW_Bang '!'>
                              children: [
                                (command.DBracket
                                  left: <Id.KW_DLeftBracket '[['>
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_EqualTilde
                                      left: {(${ Id.VSub_Name KUBE_VERSION)}
                                      right: {(${ Id.VSub_Name KUBE_RELEASE_VERSION_REGEX)}
                                    )
                                  right: <Id.Lit_DRightBracket ']]'>
                                  redirects: []
                                )
                              ]
                              ops: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Version doesn\'t match regexp'>)}]
                      redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [976 995]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [921 937]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'kubernetes_tar_url='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'kubernetes_tar_url='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'kubernetes_tar_url='> name:kubernetes_tar_url)
          op: assign_op.Equal
          rhs: 
            {
              (DQ (${ Id.VSub_Name KUBERNETES_RELEASE_URL) <'/'> (${ Id.VSub_Name KUBE_VERSION) <'/'> 
                (${ Id.VSub_Name file)
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'need_download='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'need_download='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'need_download='> name:need_download)
          op: assign_op.Equal
          rhs: {<true>}
        )
      ]
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_r
                          child: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name file))}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'downloaded_version='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'downloaded_version='>
                  lhs: 
                    (sh_lhs_expr.Name
                      left: <Id.Lit_VarLike 'downloaded_version='>
                      name: downloaded_version
                    )
                  op: assign_op.Equal
                  rhs: 
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.AndOr
                            children: [
                              (command.Simple
                                blame_tok: <tar>
                                more_env: []
                                words: [
                                  {<tar>}
                                  {<-xzOf>}
                                  {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name file))}
                                  {<'kubernetes/version'>}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Id.Redir_Great '2>'>
                                    loc: (redir_loc.Fd fd:2)
                                    arg: {<'/dev/null'>}
                                  )
                                ]
                                do_fork: T
                              )
                              (command.Simple
                                blame_tok: <true>
                                more_env: []
                                words: [{<true>}]
                                redirects: []
                                do_fork: T
                              )
                            ]
                            ops: [<Id.Op_DPipe _>]
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [
                {<echo>}
                {
                  (DQ <'Found preexisting '> (${ Id.VSub_Name file) <', release '> 
                    (${ Id.VSub_Name downloaded_version)
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {(DQ (${ Id.VSub_Name downloaded_version))}
                                  right: {(DQ (${ Id.VSub_Name KUBE_VERSION))}
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Using preexisting kubernetes.tar.gz'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'need_download='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'need_download='>
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'need_download='>
                              name: need_download
                            )
                          op: assign_op.Equal
                          rhs: {<false>}
                        )
                      ]
                      redirects: []
                    )
                  ]
                  spids: [1099 1120]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [1036 1055]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Left_DoubleQuote '"'>
                      more_env: []
                      words: [{(DQ (${ Id.VSub_Name need_download))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Downloading kubernetes release '> (${ Id.VSub_Name KUBE_VERSION))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'  from '> (${ Id.VSub_Name kubernetes_tar_url))}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'  to '> (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name file))}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [1139 1148]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_e
                          child: {(DQ (${ Id.VSub_Name PWD) <'/kubernetes'>)}
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.LogicalNot
                                  child: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_f
                                      child: {(DQ (${ Id.VSub_Name PWD) <'/kubernetes/version'>)}
                                    )
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [
                        {<echo>}
                        {
                          (DQ (${ Id.VSub_Name PWD) 
                            <'/kubernetes exists but does not look like a Kubernetes release.'>
                          )
                        }
                      ]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'Aborting!'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<5>}
                    )
                  ]
                  spids: [1214 1232]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Will also delete preexisting \'kubernetes\' directory.'>)}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [1187 1203]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      left: <Id.KW_DLeftBracket '[['>
                      expr: 
                        (bool_expr.Unary
                          op_id: Id.BoolUnary_z
                          child: 
                            {
                              (DQ 
                                (BracedVarSub
                                  left: <Id.Left_DollarBrace '${'>
                                  token: <Id.VSub_Name KUBERNETES_SKIP_CONFIRM>
                                  var_name: KUBERNETES_SKIP_CONFIRM
                                  suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:(rhs_word__Empty))
                                  right: <Id.Right_DollarBrace '}'>
                                )
                              )
                            }
                        )
                      right: <Id.Lit_DRightBracket ']]'>
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <echo>
              more_env: []
              words: [{<echo>} {(DQ <'Is this ok? [Y]/n'>)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <read>
              more_env: []
              words: [{<read>} {<confirm>}]
              redirects: []
              do_fork: T
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_EqualTilde
                                  left: {(DQ (${ Id.VSub_Name confirm))}
                                  right: 
                                    {<Id.Lit_Other '^'> <Id.Lit_Other '['> <nN> <Id.Lit_Other ']'> 
                                      <Id.Lit_Other '$'>
                                    }
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <Aborting.>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ControlFlow
                      keyword: <Id.ControlFlow_Exit exit>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [1300 1321]
                )
              ]
              else_action: []
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [1269 1285]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Left_DoubleQuote '"'>
                      more_env: []
                      words: [{(DQ (${ Id.VSub_Name need_download))}]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.WordTest
                                  w: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <which>
                                            more_env: []
                                            words: [{<which>} {<curl>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <curl>
                      more_env: []
                      words: [
                        {<curl>}
                        {<-fL>}
                        {<--retry>}
                        {<5>}
                        {<--keepalive-time>}
                        {<2>}
                        {(DQ (${ Id.VSub_Name kubernetes_tar_url))}
                        {<-o>}
                        {(DQ (${ Id.VSub_Name file))}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1353 1366]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              left: <Id.KW_DLeftBracket '[['>
                              expr: 
                                (bool_expr.WordTest
                                  w: 
                                    {
                                      (CommandSub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            blame_tok: <which>
                                            more_env: []
                                            words: [{<which>} {<wget>}]
                                            redirects: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                )
                              right: <Id.Lit_DRightBracket ']]'>
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <wget>
                      more_env: []
                      words: [{<wget>} {(DQ (${ Id.VSub_Name kubernetes_tar_url))}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [1396 1409]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'Couldn\'t find curl or wget.  Bailing out.'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [1341 1350]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <echo>
      more_env: []
      words: [{<echo>} {(DQ <'Unpacking kubernetes release '> (${ Id.VSub_Name KUBE_VERSION))}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<-rf>} {(DQ (${ Id.VSub_Name PWD) <'/kubernetes'>)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <tar>
      more_env: []
      words: [{<tar>} {<-xzf>} {(${ Id.VSub_Name file)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <download_kube_binaries>
      more_env: []
      words: [{<download_kube_binaries>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <create_cluster>
      more_env: []
      words: [{<create_cluster>}]
      redirects: []
      do_fork: T
    )
  ]
)