(command.CommandList
  children: [
    (C {<.>} {($ Id.VSub_DollarName '$REPO_ROOT') </bootstrap/shared/shared_functions.sh>})
    (C {<load_configs>})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$SHARED_PROXY_SETUP'))} 
          {<Id.Lit_RBracket ']'>}
        )
        (command.BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:REQUIRED_VARS)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (sh_array_literal
                        left: <Id.Op_LParen _>
                        words: [{<BOOTSTRAP_HTTP_PROXY>} {<BOOTSTRAP_HTTPS_PROXY>}]
                      )
                    }
                  spids: [30]
                )
              ]
            )
            (C {<check_for_envvars>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Name REQUIRED_VARS>
                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                )
              }
            )
            (C {<Id.KW_Set set>} {<-e>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} 
                          {(DQ ($ Id.VSub_DollarName '$BOOTSTRAP_HTTP_PROXY'))} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<export>} 
                      {<Id.Lit_VarLike 'http_proxy='> <http> <Id.Lit_Other ':'> <//> 
                        (${ Id.VSub_Name BOOTSTRAP_HTTP_PROXY)
                      }
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.Simple
                          words: [
                            {<curl>}
                            {<-s>}
                            {<--connect-timeout>}
                            {<10>}
                            {<http> <Id.Lit_Other ':'> <//www.google.com>}
                          ]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_Great '>'>
                              fd: -1
                              arg_word: {</dev/null>}
                            )
                          ]
                        )
                        (C {<true>})
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {($ Id.VSub_QMark '$?')}
                                      right: {<0>}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {
                                  (DQ <'Error: proxy '> ($ Id.VSub_DollarName '$BOOTSTRAP_HTTP_PROXY') 
                                    <' non-functional for HTTP requests'>
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  fd: -1
                                  arg_word: {<2>}
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [108 121]
                        )
                      ]
                    )
                  ]
                  spids: [57 72]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} 
                          {(DQ ($ Id.VSub_DollarName '$BOOTSTRAP_HTTPS_PROXY'))} {<Id.Lit_RBracket ']'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<export>} 
                      {<Id.Lit_VarLike 'https_proxy='> <https> <Id.Lit_Other ':'> <//> 
                        (${ Id.VSub_Name BOOTSTRAP_HTTPS_PROXY)
                      }
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.Simple
                          words: [
                            {<curl>}
                            {<-s>}
                            {<--connect-timeout>}
                            {<10>}
                            {<https> <Id.Lit_Other ':'> <//github.com>}
                          ]
                          redirects: [
                            (redir.Redir
                              op: <Id.Redir_Great '>'>
                              fd: -1
                              arg_word: {</dev/null>}
                            )
                          ]
                        )
                        (C {<true>})
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {($ Id.VSub_QMark '$?')}
                                      right: {<0>}
                                    )
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Simple
                              words: [
                                {<echo>}
                                {
                                  (DQ <'Error: proxy '> 
                                    ($ Id.VSub_DollarName '$BOOTSTRAP_HTTPS_PROXY') <' non-functional for HTTPS requests'>
                                  )
                                }
                              ]
                              redirects: [
                                (redir.Redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  fd: -1
                                  arg_word: {<2>}
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [198 211]
                        )
                      ]
                    )
                  ]
                  spids: [148 163]
                )
              ]
            )
          ]
        )
      ]
    )
    (C {<export>} {<Id.Lit_VarLike 'SHARED_PROXY_SETUP='> <1>})
  ]
)