(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PROJECT_NAME)
          op: Equal
          rhs: {(DQ ("axTLS Project"))}
          spids: [102]
        )
      ]
      spids: [102]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(ca_cert.conf)} spids:[113])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("[ req ]\n") ("distinguished_name     = req_distinguished_name\n") 
                ("prompt                 = no\n") ("\n") ("[ req_distinguished_name ]\n") (" O                      = ") ($ VSub_Name "$PROJECT_NAME") 
                (" Dodgy Certificate Authority\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [117]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(certs.conf)} spids:[133])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("[ req ]\n") ("distinguished_name     = req_distinguished_name\n") 
                ("prompt                 = no\n") ("\n") ("[ req_distinguished_name ]\n") (" O                      = ") ($ VSub_Name "$PROJECT_NAME") 
                ("\n") (" CN                     = 127.0.0.1\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [137]
        )
      ]
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(device_cert.conf)} spids:[154])
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: 
            {
              (DQ ("[ req ]\n") ("distinguished_name     = req_distinguished_name\n") 
                ("prompt                 = no\n") ("\n") ("[ req_distinguished_name ]\n") (" O                      = ") ($ VSub_Name "$PROJECT_NAME") 
                (" Device Certificate\n")
              )
            }
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [158]
        )
      ]
    )
    (C {(openssl)} {(genrsa)} {(-out)} {(axTLS.ca_key.pem)} {(1024)})
    (C {(openssl)} {(genrsa)} {(-out)} {(axTLS.key_512.pem)} {(512)})
    (C {(openssl)} {(genrsa)} {(-out)} {(axTLS.key_1024.pem)} {(1024)})
    (C {(openssl)} {(genrsa)} {(-out)} {(axTLS.key_1042.pem)} {(1042)})
    (C {(openssl)} {(genrsa)} {(-out)} {(axTLS.key_2048.pem)} {(2048)})
    (C {(openssl)} {(genrsa)} {(-out)} {(axTLS.key_4096.pem)} {(4096)})
    (C {(openssl)} {(genrsa)} {(-out)} {(axTLS.device_key.pem)} {(1024)})
    (C {(openssl)} {(genrsa)} {(-aes128)} {(-passout)} {(pass) (Lit_Other ":") (abcd)} {(-out)} 
      {(axTLS.key_aes128.pem)} {(512)}
    )
    (C {(openssl)} {(genrsa)} {(-aes256)} {(-passout)} {(pass) (Lit_Other ":") (abcd)} {(-out)} 
      {(axTLS.key_aes256.pem)} {(512)}
    )
    (C {(openssl)} {(rsa)} {(-in)} {(axTLS.key_512.pem)} {(-out)} {(axTLS.key_512)} {(-outform)} {(DER)})
    (C {(openssl)} {(rsa)} {(-in)} {(axTLS.key_1024.pem)} {(-out)} {(axTLS.key_1024)} {(-outform)} {(DER)})
    (C {(openssl)} {(rsa)} {(-in)} {(axTLS.key_1042.pem)} {(-out)} {(axTLS.key_1042)} {(-outform)} {(DER)})
    (C {(openssl)} {(rsa)} {(-in)} {(axTLS.key_2048.pem)} {(-out)} {(axTLS.key_2048)} {(-outform)} {(DER)})
    (C {(openssl)} {(rsa)} {(-in)} {(axTLS.key_4096.pem)} {(-out)} {(axTLS.key_4096)} {(-outform)} {(DER)})
    (C {(openssl)} {(rsa)} {(-in)} {(axTLS.device_key.pem)} {(-out)} {(axTLS.device_key)} {(-outform)} 
      {(DER)}
    )
    (C {(openssl)} {(req)} {(-out)} {(axTLS.ca_x509.req)} {(-key)} {(axTLS.ca_key.pem)} {(-new)} {(-config)} 
      {(./ca_cert.conf)}
    )
    (C {(openssl)} {(req)} {(-out)} {(axTLS.x509_512.req)} {(-key)} {(axTLS.key_512.pem)} {(-new)} 
      {(-config)} {(./certs.conf)}
    )
    (C {(openssl)} {(req)} {(-out)} {(axTLS.x509_1024.req)} {(-key)} {(axTLS.key_1024.pem)} {(-new)} 
      {(-config)} {(./certs.conf)}
    )
    (C {(openssl)} {(req)} {(-out)} {(axTLS.x509_1042.req)} {(-key)} {(axTLS.key_1042.pem)} {(-new)} 
      {(-config)} {(./certs.conf)}
    )
    (C {(openssl)} {(req)} {(-out)} {(axTLS.x509_2048.req)} {(-key)} {(axTLS.key_2048.pem)} {(-new)} 
      {(-config)} {(./certs.conf)}
    )
    (C {(openssl)} {(req)} {(-out)} {(axTLS.x509_4096.req)} {(-key)} {(axTLS.key_4096.pem)} {(-new)} 
      {(-config)} {(./certs.conf)}
    )
    (C {(openssl)} {(req)} {(-out)} {(axTLS.x509_device.req)} {(-key)} {(axTLS.device_key.pem)} {(-new)} 
      {(-config)} {(./device_cert.conf)}
    )
    (C {(openssl)} {(req)} {(-out)} {(axTLS.x509_aes128.req)} {(-key)} {(axTLS.key_aes128.pem)} {(-new)} 
      {(-config)} {(./certs.conf)} {(-passin)} {(pass) (Lit_Other ":") (abcd)}
    )
    (C {(openssl)} {(req)} {(-out)} {(axTLS.x509_aes256.req)} {(-key)} {(axTLS.key_aes256.pem)} {(-new)} 
      {(-config)} {(./certs.conf)} {(-passin)} {(pass) (Lit_Other ":") (abcd)}
    )
    (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.ca_x509.req)} {(-out)} {(axTLS.ca_x509.pem)} {(-sha1)} 
      {(-days)} {(5000)} {(-signkey)} {(axTLS.ca_key.pem)}
    )
    (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.x509_512.req)} {(-out)} {(axTLS.x509_512.pem)} {(-sha1)} 
      {(-CAcreateserial)} {(-days)} {(5000)} {(-CA)} {(axTLS.ca_x509.pem)} {(-CAkey)} {(axTLS.ca_key.pem)}
    )
    (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.x509_1024.req)} {(-out)} {(axTLS.x509_1024.pem)} 
      {(-sha1)} {(-CAcreateserial)} {(-days)} {(5000)} {(-CA)} {(axTLS.ca_x509.pem)} {(-CAkey)} {(axTLS.ca_key.pem)}
    )
    (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.x509_1042.req)} {(-out)} {(axTLS.x509_1042.pem)} 
      {(-sha1)} {(-CAcreateserial)} {(-days)} {(5000)} {(-CA)} {(axTLS.ca_x509.pem)} {(-CAkey)} {(axTLS.ca_key.pem)}
    )
    (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.x509_2048.req)} {(-out)} {(axTLS.x509_2048.pem)} 
      {(-md5)} {(-CAcreateserial)} {(-days)} {(5000)} {(-CA)} {(axTLS.ca_x509.pem)} {(-CAkey)} {(axTLS.ca_key.pem)}
    )
    (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.x509_4096.req)} {(-out)} {(axTLS.x509_4096.pem)} 
      {(-md5)} {(-CAcreateserial)} {(-days)} {(5000)} {(-CA)} {(axTLS.ca_x509.pem)} {(-CAkey)} {(axTLS.ca_key.pem)}
    )
    (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.x509_device.req)} {(-out)} {(axTLS.x509_device.pem)} 
      {(-sha1)} {(-CAcreateserial)} {(-days)} {(5000)} {(-CA)} {(axTLS.x509_512.pem)} {(-CAkey)} {(axTLS.key_512.pem)}
    )
    (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.x509_aes128.req)} {(-out)} {(axTLS.x509_aes128.pem)} 
      {(-sha1)} {(-CAcreateserial)} {(-days)} {(5000)} {(-CA)} {(axTLS.ca_x509.pem)} {(-CAkey)} {(axTLS.ca_key.pem)}
    )
    (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.x509_aes256.req)} {(-out)} {(axTLS.x509_aes256.pem)} 
      {(-sha1)} {(-CAcreateserial)} {(-days)} {(5000)} {(-CA)} {(axTLS.ca_x509.pem)} {(-CAkey)} {(axTLS.ca_key.pem)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DATE_NOW)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(date)})])
                left_token: <Left_Backtick "`">
                spids: [895 897]
              )
            }
          spids: [894]
        )
      ]
      spids: [894]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(date)} {(-s)} {(DQ ("Jan 1 2025"))}) terminator:<Op_Semi ";">)]
          action: [
            (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.x509_512.req)} {(-out)} 
              {(axTLS.x509_bad_before.pem)} {(-sha1)} {(-CAcreateserial)} {(-days)} {(365)} {(-CA)} {(axTLS.ca_x509.pem)} {(-CAkey)} {(axTLS.ca_key.pem)}
            )
            (C {(date)} {(-s)} {(DQ ($ VSub_Name "$DATE_NOW"))})
            (C {(touch)} {(axTLS.x509_bad_before.pem)})
          ]
          spids: [-1 910]
        )
      ]
      spids: [-1 958]
    )
    (C {(openssl)} {(x509)} {(-req)} {(-in)} {(axTLS.x509_512.req)} {(-out)} {(axTLS.x509_bad_after.pem)} 
      {(-sha1)} {(-CAcreateserial)} {(-days)} {(-365)} {(-CA)} {(axTLS.ca_x509.pem)} {(-CAkey)} {(axTLS.ca_key.pem)}
    )
    (C {(rm)} {(axTLS) (Lit_Other "*") (.req)})
    (C {(rm)} {(axTLS.srl)})
    (C {(rm)} {(Lit_Other "*") (.conf)})
    (C {(openssl)} {(x509)} {(-in)} {(axTLS.ca_x509.pem)} {(-outform)} {(DER)} {(-out)} {(axTLS.ca_x509.cer)})
    (C {(openssl)} {(x509)} {(-in)} {(axTLS.x509_512.pem)} {(-outform)} {(DER)} {(-out)} 
      {(axTLS.x509_512.cer)}
    )
    (C {(openssl)} {(x509)} {(-in)} {(axTLS.x509_1024.pem)} {(-outform)} {(DER)} {(-out)} 
      {(axTLS.x509_1024.cer)}
    )
    (C {(openssl)} {(x509)} {(-in)} {(axTLS.x509_1042.pem)} {(-outform)} {(DER)} {(-out)} 
      {(axTLS.x509_1042.cer)}
    )
    (C {(openssl)} {(x509)} {(-in)} {(axTLS.x509_2048.pem)} {(-outform)} {(DER)} {(-out)} 
      {(axTLS.x509_2048.cer)}
    )
    (C {(openssl)} {(x509)} {(-in)} {(axTLS.x509_4096.pem)} {(-outform)} {(DER)} {(-out)} 
      {(axTLS.x509_4096.cer)}
    )
    (C {(openssl)} {(x509)} {(-in)} {(axTLS.x509_device.pem)} {(-outform)} {(DER)} {(-out)} 
      {(axTLS.x509_device.cer)}
    )
    (C {(openssl)} {(pkcs8)} {(-in)} {(axTLS.key_512.pem)} {(-passout)} {(pass) (Lit_Other ":") (abcd)} 
      {(-topk8)} {(-v1)} {(PBE-SHA1-RC4-128)} {(-out)} {(axTLS.encrypted_pem.p8)}
    )
    (C {(openssl)} {(pkcs8)} {(-in)} {(axTLS.key_512.pem)} {(-passout)} {(pass) (Lit_Other ":") (abcd)} 
      {(-topk8)} {(-outform)} {(DER)} {(-v1)} {(PBE-SHA1-RC4-128)} {(-out)} {(axTLS.encrypted.p8)}
    )
    (C {(openssl)} {(pkcs8)} {(-in)} {(axTLS.key_512.pem)} {(-nocrypt)} {(-topk8)} {(-out)} 
      {(axTLS.unencrypted_pem.p8)}
    )
    (C {(openssl)} {(pkcs8)} {(-in)} {(axTLS.key_512.pem)} {(-nocrypt)} {(-topk8)} {(-outform)} {(DER)} 
      {(-out)} {(axTLS.unencrypted.p8)}
    )
    (C {(openssl)} {(pkcs12)} {(-export)} {(-in)} {(axTLS.x509_1024.pem)} {(-inkey)} {(axTLS.key_1024.pem)} 
      {(-certfile)} {(axTLS.ca_x509.pem)} {(-keypbe)} {(PBE-SHA1-RC4-128)} {(-certpbe)} {(PBE-SHA1-RC4-128)} {(-name)} 
      {(DQ (p12_with_CA))} {(-out)} {(axTLS.withCA.p12)} {(-password)} {(pass) (Lit_Other ":") (abcd)}
    )
    (C {(openssl)} {(pkcs12)} {(-export)} {(-in)} {(axTLS.x509_1024.pem)} {(-inkey)} {(axTLS.key_1024.pem)} 
      {(-keypbe)} {(PBE-SHA1-RC4-128)} {(-certpbe)} {(PBE-SHA1-RC4-128)} {(-name)} {(DQ (p12_without_CA))} {(-out)} 
      {(axTLS.withoutCA.p12)} {(-password)} {(pass) (Lit_Other ":") (abcd)}
    )
    (C {(openssl)} {(pkcs12)} {(-export)} {(-in)} {(axTLS.x509_1024.pem)} {(-inkey)} {(axTLS.key_1024.pem)} 
      {(-keypbe)} {(PBE-SHA1-RC4-128)} {(-certpbe)} {(PBE-SHA1-RC4-128)} {(-out)} {(axTLS.noname.p12)} {(-password)} 
      {(pass) (Lit_Other ":") (abcd)}
    )
    (SimpleCommand
      words: [{(cat)} {(axTLS.ca_x509.pem)}]
      redirects: [(Redir op_id:Redir_DGreat fd:-1 arg_word:{(axTLS.x509_device.pem)} spids:[1346])]
    )
    (Pipeline
      children: [
        (C {(xxd)} {(-i)} {(axTLS.x509_1024.cer)})
        (SimpleCommand
          words: [{(sed)} {(-e)} {(DQ (s/axTLS_x509_1024_cer/default_certificate/))}]
          redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{(../../ssl/cert.h)} spids:[1372])]
        )
      ]
      negated: False
    )
    (Pipeline
      children: [
        (C {(xxd)} {(-i)} {(axTLS.key_1024)})
        (SimpleCommand
          words: [{(sed)} {(-e)} {(DQ (s/axTLS_key_1024/default_private_key/))}]
          redirects: [
            (Redir
              op_id: Redir_Great
              fd: -1
              arg_word: {(../../ssl/private_key.h)}
              spids: [1394]
            )
          ]
        )
      ]
      negated: False
    )
  ]
)