(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'password='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'password='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'password='> name:password)
          op: assign_op.Equal
          rhs: {<pass> <Id.Lit_Colon ':'> <dartdart>}
        )
      ]
      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.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {<-d>}
                        {(DQ <certificates>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <mv>
              more_env: []
              words: [
                {<mv>}
                {<'certificates/server_key.pem'>}
                {<'certificates/untrusted_server_key.pem'>}
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <mv>
              more_env: []
              words: [
                {<mv>}
                {<'certificates/server_chain.pem'>}
                {<'certificates/untrusted_server_chain.pem'>}
              ]
              redirects: []
              do_fork: T
            )
          ]
          spids: [35 48]
        )
      ]
      else_kw: <Id.KW_Else else>
      else_action: [
        (command.Simple
          blame_tok: <mkdir>
          more_env: []
          words: [{<mkdir>} {<certificates>}]
          redirects: []
          do_fork: T
        )
      ]
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.Simple
      blame_tok: <mkdir>
      more_env: []
      words: [{<mkdir>} {<-p>} {<certificate_authority>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cd>
      more_env: []
      words: [{<cd>} {<certificate_authority>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<req>}
        {<-subj>}
        {<'/CN'> <Id.Lit_Equals '='> <rootauthority>}
        {<-set_serial>}
        {<1>}
        {<-batch>}
        {<-verbose>}
        {<-passout>}
        {($ Id.VSub_DollarName password)}
        {<-new>}
        {<-x509>}
        {<-keyout>}
        {<root_authority_key.pem>}
        {<-out>}
        {<root_authority.pem>}
        {<-days>}
        {<3650>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<req>}
        {<-subj>}
        {<'/CN'> <Id.Lit_Equals '='> <intermediateauthority>}
        {<-batch>}
        {<-verbose>}
        {<-passout>}
        {($ Id.VSub_DollarName password)}
        {<-new>}
        {<-keyout>}
        {<intermediate_authority_key.pem>}
        {<-out>}
        {<intermediate_authority_request.pem>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<x509>}
        {<-req>}
        {<-in>}
        {<intermediate_authority_request.pem>}
        {<-out>}
        {<intermediate_authority.pem>}
        {<-set_serial>}
        {<2>}
        {<-CA>}
        {<root_authority.pem>}
        {<-CAkey>}
        {<root_authority_key.pem>}
        {<-passin>}
        {($ Id.VSub_DollarName password)}
        {<-extfile>}
        {<'../sample_certificate_v3_extensions'>}
        {<-extensions>}
        {<intermediate_authority>}
        {<-days>}
        {<3650>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<req>}
        {<-subj>}
        {<'/CN'> <Id.Lit_Equals '='> <localhost>}
        {<-batch>}
        {<-verbose>}
        {<-passout>}
        {($ Id.VSub_DollarName password)}
        {<-new>}
        {<-keyout>}
        {<localhost_key.pem>}
        {<-out>}
        {<localhost_request.pem>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<x509>}
        {<-req>}
        {<-in>}
        {<localhost_request.pem>}
        {<-out>}
        {<localhost.pem>}
        {<-set_serial>}
        {<1>}
        {<-CA>}
        {<intermediate_authority.pem>}
        {<-CAkey>}
        {<intermediate_authority_key.pem>}
        {<-passin>}
        {($ Id.VSub_DollarName password)}
        {<-extfile>}
        {<'../sample_certificate_v3_extensions'>}
        {<-extensions>}
        {<localhost>}
        {<-days>}
        {<3650>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<req>}
        {<-subj>}
        {<'/CN'> <Id.Lit_Equals '='> <clientauthority>}
        {<-set_serial>}
        {<1>}
        {<-batch>}
        {<-verbose>}
        {<-passout>}
        {($ Id.VSub_DollarName password)}
        {<-new>}
        {<-x509>}
        {<-keyout>}
        {<client_authority_key.pem>}
        {<-out>}
        {<client_authority.pem>}
        {<-config>}
        {<'../sample_certificate_v3_extensions'>}
        {<-extensions>}
        {<client_authority>}
        {<-days>}
        {<3650>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<req>}
        {<-subj>}
        {<'/CN'> <Id.Lit_Equals '='> <user1>}
        {<-batch>}
        {<-verbose>}
        {<-passout>}
        {($ Id.VSub_DollarName password)}
        {<-new>}
        {<-keyout>}
        {<client1_key.pem>}
        {<-out>}
        {<client1_request.pem>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<req>}
        {<-subj>}
        {<'/CN'> <Id.Lit_Equals '='> <user2>}
        {<-batch>}
        {<-verbose>}
        {<-passout>}
        {($ Id.VSub_DollarName password)}
        {<-new>}
        {<-keyout>}
        {<client2_key.pem>}
        {<-out>}
        {<client2_request.pem>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<x509>}
        {<-req>}
        {<-in>}
        {<client1_request.pem>}
        {<-out>}
        {<client1.pem>}
        {<-set_serial>}
        {<2>}
        {<-CA>}
        {<client_authority.pem>}
        {<-CAkey>}
        {<client_authority_key.pem>}
        {<-passin>}
        {($ Id.VSub_DollarName password)}
        {<-extfile>}
        {<'../sample_certificate_v3_extensions'>}
        {<-extensions>}
        {<client_certificate>}
        {<-days>}
        {<3650>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<x509>}
        {<-req>}
        {<-in>}
        {<client2_request.pem>}
        {<-out>}
        {<client2.pem>}
        {<-set_serial>}
        {<3>}
        {<-CA>}
        {<client_authority.pem>}
        {<-CAkey>}
        {<client_authority_key.pem>}
        {<-passin>}
        {($ Id.VSub_DollarName password)}
        {<-extfile>}
        {<'../sample_certificate_v3_extensions'>}
        {<-extensions>}
        {<client_certificate>}
        {<-days>}
        {<3650>}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<root_authority_key.pem>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<intermediate_authority.pem>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <rm>
      more_env: []
      words: [{<rm>} {<client_authority_key.pem>}]
      redirects: []
      do_fork: T
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'CERTS='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'CERTS='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CERTS='> name:CERTS)
          op: assign_op.Equal
          rhs: {<'../certificates'>}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>} {<localhost.pem>} {<intermediate_authority.pem>} {<root_authority.pem>}]
      redirects: [
        (Redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName CERTS) <'/server_chain.pem'>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>} {<intermediate_authority.pem>} {<root_authority.pem>} {<client_authority.pem>}]
      redirects: [
        (Redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {($ Id.VSub_DollarName CERTS) <'/server_trusted.pem'>}
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<pkcs8>}
        {<-in>}
        {<localhost_key.pem>}
        {<-out>}
        {($ Id.VSub_DollarName CERTS) <'/server_key.pem'>}
        {<-topk8>}
        {<-v1>}
        {<PBE-SHA1-RC4-128>}
        {<-passin>}
        {($ Id.VSub_DollarName password)}
        {<-passout>}
        {($ Id.VSub_DollarName password)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<pkcs8>}
        {<-in>}
        {<client1_key.pem>}
        {<-out>}
        {($ Id.VSub_DollarName CERTS) <'/client1_key.pem'>}
        {<-topk8>}
        {<-v1>}
        {<PBE-SHA1-RC4-128>}
        {<-passin>}
        {($ Id.VSub_DollarName password)}
        {<-passout>}
        {($ Id.VSub_DollarName password)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <openssl>
      more_env: []
      words: [
        {<openssl>}
        {<pkcs8>}
        {<-in>}
        {<client2_key.pem>}
        {<-out>}
        {($ Id.VSub_DollarName CERTS) <'/client2_key.pem'>}
        {<-topk8>}
        {<-v1>}
        {<PBE-SHA1-RC4-128>}
        {<-passin>}
        {($ Id.VSub_DollarName password)}
        {<-passout>}
        {($ Id.VSub_DollarName password)}
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cp>
      more_env: []
      words: [{<cp>} {<root_authority.pem>} {($ Id.VSub_DollarName CERTS) <'/trusted_certs.pem'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cp>
      more_env: []
      words: [{<cp>} {<client_authority.pem>} {($ Id.VSub_DollarName CERTS)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cp>
      more_env: []
      words: [{<cp>} {<client1.pem>} {($ Id.VSub_DollarName CERTS)}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cp>
      more_env: []
      words: [{<cp>} {<client2.pem>} {($ Id.VSub_DollarName CERTS)}]
      redirects: []
      do_fork: T
    )
    (command.Simple blame_tok:<cd> more_env:[] words:[{<cd>} {<..>}] redirects:[] do_fork:T)
  ]
)