(CommandList
  children: [
    (BraceGroup
      children: [
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:INPUT) op:Equal rhs:{(0)} spids:[75])]
          spids: [75]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DBracket
                      expr: 
                        (BoolBinary
                          op_id: BoolBinary_EqualTilde
                          left: {($ VSub_Number '$1')}
                          right: 
                            {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') 
                              (Lit_Other '+') (Lit_Other '$')
                            }
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:INPUT)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [102]
                    )
                  ]
                  spids: [102]
                )
              ]
              spids: [16777215 99]
            )
          ]
          spids: [16777215 106]
        )
        (C {(.)} {(/DietPi/dietpi/func/dietpi-globals)})
        (C {(G_CHECK_ROOT_USER)})
        (C {(G_CHECK_ROOTFS_RW)})
        (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-Letsencrypt>)})
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:DP_LOGFILE)
              op: Equal
              rhs: {(DQ (/var/log/dietpi-letsencrypt.log))}
              spids: [150]
            )
          ]
          spids: [150]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:DP_MONTHLY_CRON)
              op: Equal
              rhs: {(DQ (/etc/cron.monthly/dietpi-letsencrypt))}
              spids: [156]
            )
          ]
          spids: [156]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:DP_LETSENCRYPT_BINARY)
              op: Equal
              rhs: {(DQ (/usr/bin/certbot))}
              spids: [162]
            )
          ]
          spids: [162]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_Less
                          left: (ArithWord w:{($ VSub_Name '$G_DISTRO')})
                          right: (ArithWord w:{(Lit_Digits 4)})
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:DP_LETSENCRYPT_BINARY)
                      op: Equal
                      rhs: {(DQ (/etc/certbot_scripts/certbot-auto))}
                      spids: [185]
                    )
                  ]
                  spids: [185]
                )
              ]
              spids: [16777215 182]
            )
          ]
          spids: [16777215 191]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:DP_WEBSERVER_INDEX) op:Equal rhs:{(0)} spids:[194])]
          spids: [194]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:LETSENCRYPT_INSTALLED)
              op: Equal
              rhs: {(0)}
              spids: [202]
            )
          ]
          spids: [202]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$DP_LETSENCRYPT_BINARY'))} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:LETSENCRYPT_INSTALLED)
                      op: Equal
                      rhs: {(1)}
                      spids: [222]
                    )
                  ]
                  spids: [222]
                )
              ]
              spids: [16777215 219]
            )
          ]
          spids: [16777215 226]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:LETSENCRYPT_DOMAIN)
              op: Equal
              rhs: {(DQ (mydomain.com))}
              spids: [229]
            )
          ]
          spids: [229]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:LETSENCRYPT_EMAIL)
              op: Equal
              rhs: {(DQ ('myemail@email.com'))}
              spids: [235]
            )
          ]
          spids: [235]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:LETSENCRYPT_REDIRECT)
              op: Equal
              rhs: {(0)}
              spids: [241]
            )
          ]
          spids: [241]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:LETSENCRYPT_AUTORENEW)
              op: Equal
              rhs: {(0)}
              spids: [245]
            )
          ]
          spids: [245]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:LETSENCRYPT_KEYSIZE)
              op: Equal
              rhs: {(4096)}
              spids: [249]
            )
          ]
          spids: [249]
        )
        (FuncDef
          name: Run_Lets_Encrypt
          body: 
            (BraceGroup
              children: [
                (C {(G_DIETPI-NOTIFY)} {(3)} {(DQ ($ VSub_Name '$PROGRAM_NAME'))} {(DQ ('Running cert'))})
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:run_conditions_met)
                      op: Equal
                      rhs: {(1)}
                      spids: [281]
                    )
                  ]
                  spids: [279]
                )
                (C {(/DietPi/dietpi/dietpi-services)} {(start)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithWord
                                  w: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(ps)} {(aux)})
                                                  (C {(grep)} {(-ci)} {(-m1)} {(SQ <'[a]pache'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [300 316]
                                      )
                                    }
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:DP_WEBSERVER_INDEX)
                              op: Equal
                              rhs: {(0)}
                              spids: [326]
                            )
                          ]
                          spids: [326]
                        )
                        (C {(G_DIETPI-NOTIFY)} {(0)} {(DQ ('Apache2 webserver detected'))})
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_GreatEqual
                                          left: (ArithWord w:{($ VSub_Name '$G_DISTRO')})
                                          right: (ArithWord w:{(Lit_Digits 4)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:DP_LETSENCRYPT_BINARY)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Name '$DP_LETSENCRYPT_BINARY') (' --apache'))}
                                      spids: [356]
                                    )
                                  ]
                                  spids: [356]
                                )
                              ]
                              spids: [16777215 353]
                            )
                          ]
                          spids: [16777215 363]
                        )
                      ]
                      spids: [16777215 322]
                    )
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithWord
                                  w: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(ps)} {(aux)})
                                                  (C {(grep)} {(-ci)} {(-m1)} {(SQ <'[l]ighttpd'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [371 387]
                                      )
                                    }
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:DP_WEBSERVER_INDEX)
                              op: Equal
                              rhs: {(1)}
                              spids: [397]
                            )
                          ]
                          spids: [397]
                        )
                        (C {(G_DIETPI-NOTIFY)} {(0)} {(DQ ('Lighttpd webserver detected'))})
                      ]
                      spids: [367 393]
                    )
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithWord
                                  w: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(ps)} {(aux)})
                                                  (C {(grep)} {(-ci)} {(-m1)} {(SQ <'[n]ginx'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [415 431]
                                      )
                                    }
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:DP_WEBSERVER_INDEX)
                              op: Equal
                              rhs: {(2)}
                              spids: [441]
                            )
                          ]
                          spids: [441]
                        )
                        (C {(G_DIETPI-NOTIFY)} {(0)} {(DQ ('Nginx webserver detected'))})
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_GreatEqual
                                          left: (ArithWord w:{($ VSub_Name '$G_DISTRO')})
                                          right: (ArithWord w:{(Lit_Digits 4)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:DP_LETSENCRYPT_BINARY)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Name '$DP_LETSENCRYPT_BINARY') (' --nginx'))}
                                      spids: [471]
                                    )
                                  ]
                                  spids: [471]
                                )
                              ]
                              spids: [16777215 468]
                            )
                          ]
                          spids: [16777215 478]
                        )
                      ]
                      spids: [411 437]
                    )
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithWord
                                  w: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(ps)} {(aux)})
                                                  (C {(grep)} {(-ci)} {(-m1)} {(SQ <'[m]inio'>)})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [486 502]
                                      )
                                    }
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:DP_WEBSERVER_INDEX)
                              op: Equal
                              rhs: {(3)}
                              spids: [512]
                            )
                          ]
                          spids: [512]
                        )
                        (C {(G_DIETPI-NOTIFY)} {(0)} {(DQ ('Minio S3 server detected'))})
                      ]
                      spids: [482 508]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:run_conditions_met)
                          op: Equal
                          rhs: {(0)}
                          spids: [530]
                        )
                      ]
                      spids: [530]
                    )
                  ]
                  spids: [526 535]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithUnary
                                  op_id: Arith_Bang
                                  child: (ArithWord w:{($ VSub_Name '$run_conditions_met')})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (SimpleCommand
                          words: [
                            {(echo)}
                            {(-e)}
                            {
                              (DQ 
                                (
'Error: No compatible and/or active webserver was found. Aborting.'
                                )
                              )
                            }
                          ]
                          redirects: [
                            (Redir
                              op_id: Redir_DGreat
                              fd: 16777215
                              arg_word: {(DQ ($ VSub_Name '$DP_LOGFILE'))}
                              spids: [567]
                            )
                          ]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$INPUT')})
                                          right: (ArithWord w:{(Lit_Digits 0)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(whiptail)} {(--title)} {(DQ (Error))} {(--msgbox)} 
                                  {
                                    (DQ 
                                      (
'Error: No compatible and/or active webserver was found. Aborting.'
                                      )
                                    )
                                  } {(--backtitle)} {(DQ ($ VSub_Name '$PROGRAM_NAME'))} {(8)} {(60)}
                                )
                              ]
                              spids: [16777215 588]
                            )
                          ]
                          spids: [16777215 618]
                        )
                      ]
                      spids: [16777215 555]
                    )
                  ]
                  else_action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$DP_WEBSERVER_INDEX')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dp_defaultsite)
                                  op: Equal
                                  rhs: {(DQ (/etc/apache2/sites-available/000-default.conf))}
                                  spids: [658]
                                )
                              ]
                              spids: [656]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithUnary
                                              op_id: Arith_Bang
                                              child: 
                                                (ArithWord
                                                  w: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (Pipeline
                                                                children: [
                                                                  (C {(cat)} 
                                                                    {
                                                                      (DQ 
                                                                        ($ VSub_Name 
'$dp_defaultsite'
                                                                        )
                                                                      )
                                                                    }
                                                                  )
                                                                  (C {(grep)} {(-ci)} {(-m1)} 
                                                                    {(SQ <ServerName>)}
                                                                  )
                                                                ]
                                                                negated: F
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_CommandSub '$('>
                                                        spids: [675 693]
                                                      )
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(sed)} {(-i)} {(DQ ('/ServerAdmin /a ServerName'))} 
                                      {(DQ ($ VSub_Name '$dp_defaultsite'))}
                                    )
                                    (SimpleCommand
                                      words: [
                                        {(echo)}
                                        {(-e)}
                                        {
                                          (DQ ('ServerName entry not found in ') 
                                            ($ VSub_Name '$dp_defaultsite') ('. Adding it now.')
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (Redir
                                          op_id: Redir_DGreat
                                          fd: 16777215
                                          arg_word: {(DQ ($ VSub_Name '$DP_LOGFILE'))}
                                          spids: [731]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [16777215 699]
                                )
                              ]
                              spids: [16777215 739]
                            )
                            (C {(sed)} {(-i)} 
                              {
                                (DQ (/ServerName/c) (Lit_Other '\\') ('        ServerName ') 
                                  ($ VSub_Name '$LETSENCRYPT_DOMAIN')
                                )
                              } {(DQ ($ VSub_Name '$dp_defaultsite'))}
                            )
                            (C {(systemctl)} {(restart)} {(apache2)})
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:cli_redirect)
                                  op: Equal
                                  rhs: {(DQ (--no-redirect))}
                                  spids: [778]
                                )
                              ]
                              spids: [776]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: (ArithWord w:{($ VSub_Name '$LETSENCRYPT_REDIRECT')})
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:cli_redirect)
                                          op: Equal
                                          rhs: {(DQ (--redirect))}
                                          spids: [798]
                                        )
                                      ]
                                      spids: [798]
                                    )
                                  ]
                                  spids: [16777215 794]
                                )
                              ]
                              spids: [16777215 805]
                            )
                            (C {($ VSub_Name '$DP_LETSENCRYPT_BINARY')} {(--duplicate)} {(--agree-tos)} 
                              {($ VSub_Name '$cli_redirect')} {(--rsa-key-size)} {($ VSub_Name '$LETSENCRYPT_KEYSIZE')} {(--email)} 
                              {($ VSub_Name '$LETSENCRYPT_EMAIL')} {(-d)} {($ VSub_Name '$LETSENCRYPT_DOMAIN')}
                            )
                          ]
                          spids: [16777215 652]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$DP_WEBSERVER_INDEX')})
                                      right: (ArithWord w:{(Lit_Digits 1)})
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(/DietPi/dietpi/dietpi-services)} {(stop)})
                            (C {($ VSub_Name '$DP_LETSENCRYPT_BINARY')} {(certonly)} {(--standalone)} 
                              {(--duplicate)} {(--agree-tos)} {($ VSub_Name '$cli_redirect')} {(--rsa-key-size)} {($ VSub_Name '$LETSENCRYPT_KEYSIZE')} 
                              {(--email)} {($ VSub_Name '$LETSENCRYPT_EMAIL')} {(-d)} {($ VSub_Name '$LETSENCRYPT_DOMAIN')}
                            )
                            (C {(cd)} 
                              {(/etc/letsencrypt/live/) (DQ ($ VSub_Name '$LETSENCRYPT_DOMAIN'))}
                            )
                            (SimpleCommand
                              words: [{(cat)} {(privkey.pem)} {(cert.pem)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(combined.pem)}
                                  spids: [915]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(cat)}]
                              redirects: [
                                (HereDoc
                                  op_id: Redir_DLess
                                  fd: 16777215
                                  body: 
                                    {
                                      (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                        ('SERVER[') (Right_DoubleQuote '"') (socket) (Right_DoubleQuote '"') ('] == ') (Right_DoubleQuote '"') (':443') 
                                        (Right_DoubleQuote '"') (' {\n') ('\t\tssl.engine = ') (Right_DoubleQuote '"') (enable) (Right_DoubleQuote '"') ('\n') 
                                        ('\t\tssl.pemfile = ') (Right_DoubleQuote '"') (/etc/letsencrypt/live/) ($ VSub_Name '$LETSENCRYPT_DOMAIN') (/combined.pem) 
                                        (Right_DoubleQuote '"') ('\n') ('\t\tssl.ca-file =  ') (Right_DoubleQuote '"') (/etc/letsencrypt/live/) 
                                        ($ VSub_Name '$LETSENCRYPT_DOMAIN') (/fullchain.pem) (Right_DoubleQuote '"') ('\n') ('\t\t#ssl.cipher-list = ') (Right_DoubleQuote '"') 
                                        (
'ECDHE-RSA-AES256-SHA384:AES256-SHA256:HIGH:!MD5:!aNULL:!EDH:!AESGCM'
                                        ) (Right_DoubleQuote '"') ('\n') ('\t\tssl.cipher-list = ') (Right_DoubleQuote '"') 
                                        (
'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS'
                                        ) (Right_DoubleQuote '"') ('\n') ('\t\tssl.honor-cipher-order = ') (Right_DoubleQuote '"') (enable) 
                                        (Right_DoubleQuote '"') ('\n') ('\t\tssl.use-sslv2 = ') (Right_DoubleQuote '"') (disable) (Right_DoubleQuote '"') ('\n') 
                                        ('\t\tssl.use-sslv3 = ') (Right_DoubleQuote '"') (disable) (Right_DoubleQuote '"') ('\n') ('}\n')
                                      )
                                    }
                                  do_expansion: True
                                  here_end: _EOF_
                                  was_filled: T
                                  spids: [923]
                                )
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/etc/lighttpd/conf-enabled/letsencrypt.conf)}
                                  spids: [927]
                                )
                              ]
                            )
                            (C {(rm)} {(/etc/lighttpd/conf-enabled/redirect.conf)})
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: (ArithWord w:{($ VSub_Name '$LETSENCRYPT_REDIRECT')})
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (SimpleCommand
                                      words: [{(cat)}]
                                      redirects: [
                                        (HereDoc
                                          op_id: Redir_DLess
                                          fd: 16777215
                                          body: 
                                            {
                                              (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) 
                                                ('HTTP[') (Right_DoubleQuote '"') (scheme) (Right_DoubleQuote '"') ('] == ') (Right_DoubleQuote '"') (http) 
                                                (Right_DoubleQuote '"') (' {\n') ('\t# capture vhost name with regex conditiona -> %0 in redirect pattern\n') 
                                                (
'\t# must be the most inner block to the redirect rule\n'
                                                ) ('\t') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('HTTP[') (Right_DoubleQuote '"') (host) 
                                                (Right_DoubleQuote '"') ('] =~ ') (Right_DoubleQuote '"') ('.*') (Right_DoubleQuote '"') (' {\n') ('\t\turl.redirect = (') 
                                                (Right_DoubleQuote '"') ('.*') (Right_DoubleQuote '"') (' => ') (Right_DoubleQuote '"') ('https://%0') 
                                                (EscapedLiteralPart
                                                  token: <Lit_EscapedChar '\\$'>
                                                ) (0) (Right_DoubleQuote '"') (')\n') ('\t}\n') ('}\n')
                                              )
                                            }
                                          do_expansion: True
                                          here_end: _EOF_
                                          was_filled: T
                                          spids: [1014]
                                        )
                                        (Redir
                                          op_id: Redir_Great
                                          fd: 16777215
                                          arg_word: {(/etc/lighttpd/conf-enabled/redirect.conf)}
                                          spids: [1018]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [16777215 1008]
                                )
                              ]
                              spids: [16777215 1061]
                            )
                            (C {(/etc/init.d/lighttpd)} {(force-reload)})
                          ]
                          spids: [843 857]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$DP_WEBSERVER_INDEX')})
                                      right: (ArithWord w:{(Lit_Digits 2)})
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:nginx_defaultsite)
                                  op: Equal
                                  rhs: {(DQ (/etc/nginx/sites-available/default))}
                                  spids: [1101]
                                )
                              ]
                              spids: [1099]
                            )
                            (C {(sed)} {(-i)} 
                              {
                                (DQ (/server_name/c) (Lit_Other '\\') ('        server_name ') 
                                  ($ VSub_Name '$LETSENCRYPT_DOMAIN') (';')
                                )
                              } {(DQ ($ VSub_Name '$nginx_defaultsite'))}
                            )
                            (C {(systemctl)} {(restart)} {(nginx)})
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:cli_redirect)
                                  op: Equal
                                  rhs: {(DQ (--no-redirect))}
                                  spids: [1144]
                                )
                              ]
                              spids: [1142]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: (ArithWord w:{($ VSub_Name '$LETSENCRYPT_REDIRECT')})
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:cli_redirect)
                                          op: Equal
                                          rhs: {(DQ (--redirect))}
                                          spids: [1165]
                                        )
                                      ]
                                      spids: [1165]
                                    )
                                  ]
                                  spids: [16777215 1161]
                                )
                              ]
                              spids: [16777215 1172]
                            )
                            (C {($ VSub_Name '$DP_LETSENCRYPT_BINARY')} {(--duplicate)} {(--agree-tos)} 
                              {($ VSub_Name '$cli_redirect')} {(--rsa-key-size)} {($ VSub_Name '$LETSENCRYPT_KEYSIZE')} {(--email)} 
                              {($ VSub_Name '$LETSENCRYPT_EMAIL')} {(-d)} {($ VSub_Name '$LETSENCRYPT_DOMAIN')}
                            )
                          ]
                          spids: [1081 1095]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$DP_WEBSERVER_INDEX')})
                                      right: (ArithWord w:{(Lit_Digits 3)})
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(/DietPi/dietpi/dietpi-services)} {(stop)})
                            (C {($ VSub_Name '$DP_LETSENCRYPT_BINARY')} {(certonly)} {(--standalone)} 
                              {(--preferred-challenges)} {(tls-sni)} {(--staple-ocsp)} {(--agree-tos)} {($ VSub_Name '$cli_redirect')} {(--rsa-key-size)} 
                              {($ VSub_Name '$LETSENCRYPT_KEYSIZE')} {(--email)} {($ VSub_Name '$LETSENCRYPT_EMAIL')} {(-d)} {($ VSub_Name '$LETSENCRYPT_DOMAIN')}
                            )
                            (C {(cp)} 
                              {(/etc/letsencrypt/live/) ($ VSub_Name '$LETSENCRYPT_DOMAIN') 
                                (/fullchain.pem)
                              } {(/home/minio-user/.minio/certs/public.crt)}
                            )
                            (C {(cp)} 
                              {(/etc/letsencrypt/live/) ($ VSub_Name '$LETSENCRYPT_DOMAIN') 
                                (/privkey.pem)
                              } {(/home/minio-user/.minio/certs/private.key)}
                            )
                            (C {(chown)} {(minio-user) (Lit_Other ':') (minio-user)} 
                              {(/home/minio-user/.minio/certs/public.crt)}
                            )
                            (C {(chown)} {(minio-user) (Lit_Other ':') (minio-user)} 
                              {(/home/minio-user/.minio/certs/private.key)}
                            )
                            (SimpleCommand
                              words: [{(grep)} {(-v)} {(DQ (MINIO_OPTS))} {(/etc/default/minio)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/etc/default/minio.temp1)}
                                  spids: [1328]
                                )
                              ]
                            )
                            (SimpleCommand
                              words: [{(grep)} {(-v)} {(DQ (port))} {(/etc/default/minio.temp1)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/etc/default/minio.temp2)}
                                  spids: [1343]
                                )
                              ]
                            )
                            (C {(rm)} {(/etc/default/minio.temp1)})
                            (C {(mv)} {(/etc/default/minio.temp2)} {(/etc/default/minio)})
                            (SimpleCommand
                              words: [{(cat)}]
                              redirects: [
                                (HereDoc
                                  op_id: Redir_DLess
                                  fd: 16777215
                                  body: 
                                    {
                                      (DQ ('# Use if you want to run Minio on a custom port.\n') 
                                        ('MINIO_OPTS=') (Right_DoubleQuote '"') ('--address :443') (Right_DoubleQuote '"') ('\n')
                                      )
                                    }
                                  do_expansion: True
                                  here_end: _EOF_
                                  was_filled: T
                                  spids: [1362]
                                )
                                (Redir
                                  op_id: Redir_DGreat
                                  fd: 16777215
                                  arg_word: {(/etc/default/minio)}
                                  spids: [1366]
                                )
                              ]
                            )
                            (C {(setcap)} {(Lit_VarLike 'CAP_NET_BIND_SERVICE=') (Lit_Other '+') (eip)} 
                              {(/usr/local/bin/minio)}
                            )
                            (SimpleCommand
                              words: [{(cat)}]
                              redirects: [
                                (HereDoc
                                  op_id: Redir_DLess
                                  fd: 16777215
                                  body: 
                                    {
                                      (DQ 
                                        (
'# Minio only works with copied and owned certs. Upon renewal the new certs needs to be copied and re-owned\n'
                                        ) ('systemctl stop minio.service\n') ('\n') ('# Copy to correct Location\n') ('cp /etc/letsencrypt/live/') 
                                        ($ VSub_Name '$LETSENCRYPT_DOMAIN') ('/fullchain.pem /home/minio-user/.minio/certs/public.crt\n') ('cp /etc/letsencrypt/live/') 
                                        ($ VSub_Name '$LETSENCRYPT_DOMAIN') ('/privkey.pem /home/minio-user/.minio/certs/private.key\n') ('\n') ('# Re-Own those certs!\n') 
                                        (
'chown minio-user:minio-user /home/minio-user/.minio/certs/public.crt\n'
                                        ) ('chown minio-user:minio-user /home/minio-user/.minio/certs/private.key\n') ('\n') 
                                        ('systemctl start minio.service\n')
                                      )
                                    }
                                  do_expansion: True
                                  here_end: _EOF_
                                  was_filled: T
                                  spids: [1399]
                                )
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(/home/minio-user/.minio/dietpi-cert-renewl.sh)}
                                  spids: [1403]
                                )
                              ]
                            )
                            (C {(chmod)} {(Lit_Other '+') (x)} 
                              {(/home/minio-user/.minio/dietpi-cert-renewl.sh)}
                            )
                          ]
                          spids: [1211 1225]
                        )
                      ]
                      spids: [16777215 1438]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DAmp
                                      left: (ArithWord w:{($ VSub_Name '$LETSENCRYPT_AUTORENEW')})
                                      right: 
                                        (ArithBinary
                                          op_id: Arith_Less
                                          left: (ArithWord w:{($ VSub_Name '$G_DISTRO')})
                                          right: (ArithWord w:{(Lit_Digits 4)})
                                        )
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(cat)}]
                              redirects: [
                                (HereDoc
                                  op_id: Redir_DLess
                                  fd: 16777215
                                  body: 
                                    {
                                      (DQ ('#!/bin/bash\n') ('{\n') 
                                        ('\t#////////////////////////////////////\n') ('\t# DietPi-LetsEncrypt Autorenew script\n') ('\t#\n') ('\t#////////////////////////////////////\n') 
                                        ('\t#\n') ('\t# Info:\n') ('\t# - Location ') ($ VSub_Name '$DP_MONTHLY_CRON') ('\n') ('\t#\n') 
                                        ('\t#////////////////////////////////////\n') ('\n') ('\t#----------------------------------------------------------------\n') ('\t# Main Loop\n') 
                                        (
'\t#----------------------------------------------------------------\n'
                                        ) ('\t/DietPi/dietpi/dietpi-letsencrypt 1 &>> ') ($ VSub_Name '$DP_LOGFILE') ('\n') ('\n') 
                                        ('\t# Minio specific applications\n') ('\tif (( ') 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (Pipeline
                                                  children: [
                                                    (C {(ps)} {(aux)})
                                                    (C {(grep)} {(-ci)} {(-m1)} {(SQ <'[m]inio'>)})
                                                  ]
                                                  negated: F
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [1508 1524]
                                        ) (' )); then\n') ('\t\t/home/minio-user/.minio/dietpi-cert-renewl.sh\n') ('\tfi\n') ('\n') 
                                        (
'\t#----------------------------------------------------------------\n'
                                        ) ('\texit\n') ('\t#----------------------------------------------------------------\n') ('}\n')
                                      )
                                    }
                                  do_expansion: True
                                  here_end: _EOF_
                                  was_filled: T
                                  spids: [1475]
                                )
                                (Redir
                                  op_id: Redir_Great
                                  fd: 16777215
                                  arg_word: {(DQ ($ VSub_Name '$DP_MONTHLY_CRON'))}
                                  spids: [1479]
                                )
                              ]
                            )
                            (C {(chmod)} {(Lit_Other '+') (x)} {(DQ ($ VSub_Name '$DP_MONTHLY_CRON'))})
                          ]
                          spids: [16777215 1469]
                        )
                      ]
                      spids: [16777215 1546]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$INPUT')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} {(-e)} {(DQ )})
                            (C {(read)} {(-p)} {(DQ ('Press any key to continue...'))})
                            (C {(echo)} {(-e)} {(DQ )})
                          ]
                          spids: [16777215 1564]
                        )
                      ]
                      spids: [16777215 1594]
                    )
                    (C {(/DietPi/dietpi/dietpi-services)} {(restart)})
                  ]
                  spids: [626 1608]
                )
              ]
              spids: [257]
            )
          spids: [254 257]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:DP_SETTINGS)
              op: Equal
              rhs: {(DQ (/DietPi/dietpi/.dietpi-letsencrypt))}
              spids: [1628]
            )
          ]
          spids: [1628]
        )
        (FuncDef
          name: Read_Settings_File
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [(assign_pair lhs:(LhsName name:sed_index) op:Equal rhs:{(1)} spids:[1644])]
                  spids: [1642]
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LETSENCRYPT_DOMAIN)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(sed)} {(-n)} {(DQ ($ VSub_Name '$sed_index')) (p)} 
                                        {($ VSub_Name '$DP_SETTINGS')}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1650 1661]
                              )
                            }
                          spids: [1649]
                        )
                      ]
                      spids: [1649]
                    )
                  terminator: <Op_Semi ';'>
                )
                (DParen
                  child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:sed_index))
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LETSENCRYPT_EMAIL)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(sed)} {(-n)} {(DQ ($ VSub_Name '$sed_index')) (p)} 
                                        {($ VSub_Name '$DP_SETTINGS')}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1671 1682]
                              )
                            }
                          spids: [1670]
                        )
                      ]
                      spids: [1670]
                    )
                  terminator: <Op_Semi ';'>
                )
                (DParen
                  child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:sed_index))
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LETSENCRYPT_REDIRECT)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(sed)} {(-n)} {(DQ ($ VSub_Name '$sed_index')) (p)} 
                                        {($ VSub_Name '$DP_SETTINGS')}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1692 1703]
                              )
                            }
                          spids: [1691]
                        )
                      ]
                      spids: [1691]
                    )
                  terminator: <Op_Semi ';'>
                )
                (DParen
                  child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:sed_index))
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LETSENCRYPT_AUTORENEW)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(sed)} {(-n)} {(DQ ($ VSub_Name '$sed_index')) (p)} 
                                        {($ VSub_Name '$DP_SETTINGS')}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1713 1724]
                              )
                            }
                          spids: [1712]
                        )
                      ]
                      spids: [1712]
                    )
                  terminator: <Op_Semi ';'>
                )
                (DParen
                  child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:sed_index))
                )
                (Sentence
                  child: 
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LETSENCRYPT_KEYSIZE)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (C {(sed)} {(-n)} {(DQ ($ VSub_Name '$sed_index')) (p)} 
                                        {($ VSub_Name '$DP_SETTINGS')}
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [1734 1745]
                              )
                            }
                          spids: [1733]
                        )
                      ]
                      spids: [1733]
                    )
                  terminator: <Op_Semi ';'>
                )
                (DParen
                  child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:sed_index))
                )
              ]
              spids: [1638]
            )
          spids: [1635 1638]
        )
        (FuncDef
          name: Write_Settings_File
          body: 
            (BraceGroup
              children: [
                (SimpleCommand
                  words: [{(cat)}]
                  redirects: [
                    (HereDoc
                      op_id: Redir_DLess
                      fd: 16777215
                      body: 
                        {
                          (DQ ($ VSub_Name '$LETSENCRYPT_DOMAIN') ('\n') 
                            ($ VSub_Name '$LETSENCRYPT_EMAIL') ('\n') ($ VSub_Name '$LETSENCRYPT_REDIRECT') ('\n') ($ VSub_Name '$LETSENCRYPT_AUTORENEW') ('\n') 
                            ($ VSub_Name '$LETSENCRYPT_KEYSIZE') ('\n')
                          )
                        }
                      do_expansion: True
                      here_end: _EOF_
                      was_filled: T
                      spids: [1768]
                    )
                    (Redir
                      op_id: Redir_Great
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$DP_SETTINGS'))}
                      spids: [1772]
                    )
                  ]
                )
              ]
              spids: [1762]
            )
          spids: [1759 1762]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:PROGRAM_NAME)
              op: Equal
              rhs: {(DQ (DietPi-LetsEncrypt))}
              spids: [1807]
            )
          ]
          spids: [1807]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:CHOICE) op:Equal rhs:{(0)} spids:[1814])]
          spids: [1814]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:OPTION) op:Equal rhs:{(0)} spids:[1818])]
          spids: [1818]
        )
        (Assignment
          keyword: Assign_None
          pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[1822])]
          spids: [1822]
        )
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:PREVIOUS_MENU_SELECTION)
              op: Equal
              rhs: {(DQ )}
              spids: [1826]
            )
          ]
          spids: [1826]
        )
        (FuncDef
          name: Menu_Exit
          body: 
            (BraceGroup
              children: [
                (C {(whiptail)} {(--title)} {(DQ ('Exit ') ($ VSub_Name '$PROGRAM_NAME') ('?'))} 
                  {(--yesno)} {(DQ ('Exit ') ($ VSub_Name '$PROGRAM_NAME') ('?'))} {(--backtitle)} {(DQ ($ VSub_Name '$PROGRAM_NAME'))} 
                  {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(9)} {(55)}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [1882]
                    )
                  ]
                  spids: [1882]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:TARGETMENUID)
                              op: Equal
                              rhs: {(-1)}
                              spids: [1907]
                            )
                          ]
                          spids: [1907]
                        )
                      ]
                      spids: [16777215 1900]
                    )
                  ]
                  else_action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TARGETMENUID)
                          op: Equal
                          rhs: {(0)}
                          spids: [1918]
                        )
                      ]
                      spids: [1918]
                    )
                  ]
                  spids: [1911 1922]
                )
              ]
              spids: [1835]
            )
          spids: [1832 1835]
        )
        (FuncDef
          name: Menu_Main
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:auto_renew_text)
                      op: Equal
                      rhs: {(DQ ('Disabled | Manual renewal every 90 days'))}
                      spids: [1942]
                    )
                  ]
                  spids: [1940]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (DParen child:(ArithWord w:{($ VSub_Name '$LETSENCRYPT_AUTORENEW')}))
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:auto_renew_text)
                              op: Equal
                              rhs: {(DQ ('Enabled | Automatic cron.monthly renewals'))}
                              spids: [1961]
                            )
                          ]
                          spids: [1961]
                        )
                      ]
                      spids: [16777215 1958]
                    )
                  ]
                  spids: [16777215 1967]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:redirect_text)
                      op: Equal
                      rhs: {(DQ ('Disabled | Allows http and https usage'))}
                      spids: [1973]
                    )
                  ]
                  spids: [1971]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (DParen child:(ArithWord w:{($ VSub_Name '$LETSENCRYPT_REDIRECT')}))
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:redirect_text)
                              op: Equal
                              rhs: {(DQ ('Enabled | Forces http redirects to https'))}
                              spids: [1992]
                            )
                          ]
                          spids: [1992]
                        )
                      ]
                      spids: [16777215 1989]
                    )
                  ]
                  spids: [16777215 1998]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:OPTION)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [
                                      {(whiptail)}
                                      {(--title)}
                                      {(DQ ($ VSub_Name '$PROGRAM_NAME'))}
                                      {(--menu)}
                                      {(DQ ('Please select a option.'))}
                                      {(--cancel-button)}
                                      {(DQ (Exit))}
                                      {(--default-item)}
                                      {(DQ ($ VSub_Name '$PREVIOUS_MENU_SELECTION'))}
                                      {(--backtitle)}
                                      {(DQ ($ VSub_Name '$PROGRAM_NAME'))}
                                      {(14)}
                                      {(70)}
                                      {(6)}
                                      {(DQ (Domain))}
                                      {(DQ (': ') ($ VSub_Name '$LETSENCRYPT_DOMAIN'))}
                                      {(DQ (Email))}
                                      {(DQ (': ') ($ VSub_Name '$LETSENCRYPT_EMAIL'))}
                                      {(DQ (Redirect))}
                                      {(DQ (': ') ($ VSub_Name '$redirect_text'))}
                                      {(DQ ('Auto Renew'))}
                                      {(DQ (': ') ($ VSub_Name '$auto_renew_text'))}
                                      {(DQ ('Key Size'))}
                                      {(DQ (': ') ($ VSub_Name '$LETSENCRYPT_KEYSIZE'))}
                                      {(DQ (Apply))}
                                      {(DQ ('Runs Lets Encrypt with your chosen options.'))}
                                    ]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 3
                                        arg_word: {(1)}
                                        spids: [2107]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 1
                                        arg_word: {(2)}
                                        spids: [2110]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 2
                                        arg_word: {(3)}
                                        spids: [2113]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [2003 2115]
                          )
                        }
                      spids: [2002]
                    )
                  ]
                  spids: [2002]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [2119]
                    )
                  ]
                  spids: [2119]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:PREVIOUS_MENU_SELECTION)
                              op: Equal
                              rhs: {($ VSub_Name '$OPTION')}
                              spids: [2141]
                            )
                          ]
                          spids: [2141]
                        )
                        (Case
                          to_match: {(DQ ($ VSub_Name '$OPTION'))}
                          arms: [
                            (case_arm
                              pat_list: [{(Domain)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:LETSENCRYPT_DOMAIN)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(Input_Box)} 
                                                      {($ VSub_Name '$LETSENCRYPT_DOMAIN')} {(Website-Domain)}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [2161 2167]
                                            )
                                          )
                                        }
                                      spids: [2159]
                                    )
                                  ]
                                  spids: [2159]
                                )
                              ]
                              spids: [2155 2156 2171 16777215]
                            )
                            (case_arm
                              pat_list: [{(Email)}]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:LETSENCRYPT_EMAIL)
                                      op: Equal
                                      rhs: 
                                        {
                                          (DQ 
                                            (CommandSubPart
                                              command_list: 
                                                (CommandList
                                                  children: [
                                                    (C {(Input_Box)} 
                                                      {($ VSub_Name '$LETSENCRYPT_EMAIL')} {(Email-Address)}
                                                    )
                                                  ]
                                                )
                                              left_token: <Left_CommandSub '$('>
                                              spids: [2180 2186]
                                            )
                                          )
                                        }
                                      spids: [2178]
                                    )
                                  ]
                                  spids: [2178]
                                )
                              ]
                              spids: [2174 2175 2190 16777215]
                            )
                            (case_arm
                              pat_list: [{(DQ ('Key Size'))}]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: 
                                                    (ArithWord
                                                      w: {($ VSub_Name '$LETSENCRYPT_KEYSIZE')}
                                                    )
                                                  right: (ArithWord w:{(Lit_Digits 2048)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:LETSENCRYPT_KEYSIZE)
                                              op: Equal
                                              rhs: {(4096)}
                                              spids: [2216]
                                            )
                                          ]
                                          spids: [2216]
                                        )
                                      ]
                                      spids: [16777215 2213]
                                    )
                                  ]
                                  else_action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:LETSENCRYPT_KEYSIZE)
                                          op: Equal
                                          rhs: {(2048)}
                                          spids: [2223]
                                        )
                                      ]
                                      spids: [2223]
                                    )
                                  ]
                                  spids: [2220 2227]
                                )
                              ]
                              spids: [2194 2196 2230 16777215]
                            )
                            (case_arm
                              pat_list: [{(DQ ('Auto Renew'))}]
                              action: [
                                (DParen
                                  child: 
                                    (UnaryAssign
                                      op_id: Node_PostDPlus
                                      child: (LhsName name:LETSENCRYPT_AUTORENEW)
                                    )
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_Great
                                                  left: 
                                                    (ArithWord
                                                      w: {($ VSub_Name '$LETSENCRYPT_AUTORENEW')}
                                                    )
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:LETSENCRYPT_AUTORENEW)
                                              op: Equal
                                              rhs: {(0)}
                                              spids: [2263]
                                            )
                                          ]
                                          spids: [2263]
                                        )
                                      ]
                                      spids: [16777215 2260]
                                    )
                                  ]
                                  spids: [16777215 2267]
                                )
                              ]
                              spids: [2234 2236 2270 16777215]
                            )
                            (case_arm
                              pat_list: [{(Redirect)}]
                              action: [
                                (DParen
                                  child: 
                                    (UnaryAssign
                                      op_id: Node_PostDPlus
                                      child: (LhsName name:LETSENCRYPT_REDIRECT)
                                    )
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_Great
                                                  left: 
                                                    (ArithWord
                                                      w: {($ VSub_Name '$LETSENCRYPT_REDIRECT')}
                                                    )
                                                  right: (ArithWord w:{(Lit_Digits 1)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:LETSENCRYPT_REDIRECT)
                                              op: Equal
                                              rhs: {(0)}
                                              spids: [2301]
                                            )
                                          ]
                                          spids: [2301]
                                        )
                                      ]
                                      spids: [16777215 2298]
                                    )
                                  ]
                                  spids: [16777215 2305]
                                )
                              ]
                              spids: [2273 2274 2308 16777215]
                            )
                            (case_arm
                              pat_list: [{(Apply)}]
                              action: [
                                (C {(whiptail)} {(--title)} {(DQ ('Run Lets Encrypt?'))} {(--yesno)} 
                                  {
                                    (DQ ('LetsEncrypt will now be run. This will:') (Lit_Other '\\') 
                                      ('n- Create your free SSL cert.') (Lit_Other '\\') ('n- Automatically apply and enable your SSL cert') (Lit_Other '\\') 
                                      (
'n- NB: This process can take a long time, please be patient.'
                                      ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nWould you like to continue?')
                                    )
                                  } {(--backtitle)} {(DQ ($ VSub_Name '$PROGRAM_NAME'))} {(--yes-button)} {(DQ (Ok))} {(--no-button)} 
                                  {(DQ (Back))} {(--defaultno)} {(13)} {(65)}
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:CHOICE)
                                      op: Equal
                                      rhs: {($ VSub_QMark '$?')}
                                      spids: [2364]
                                    )
                                  ]
                                  spids: [2364]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                                  right: (ArithWord w:{(Lit_Digits 0)})
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [(C {(Write_Settings_File)}) (C {(Run_Lets_Encrypt)})]
                                      spids: [16777215 2382]
                                    )
                                  ]
                                  spids: [16777215 2391]
                                )
                              ]
                              spids: [2311 2312 2394 16777215]
                            )
                          ]
                          spids: [2146 2152 2397]
                        )
                      ]
                      spids: [16777215 2137]
                    )
                  ]
                  else_action: [(C {(Menu_Exit)})]
                  spids: [2401 2411]
                )
              ]
              spids: [1936]
            )
          spids: [1933 1936]
        )
        (FuncDef
          name: Input_Box
          body: 
            (BraceGroup
              children: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:input_value)
                      op: Equal
                      rhs: {($ VSub_Number '$1')}
                      spids: [2428]
                    )
                  ]
                  spids: [2426]
                )
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:input_desc)
                      op: Equal
                      rhs: {($ VSub_Number '$2')}
                      spids: [2434]
                    )
                  ]
                  spids: [2432]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:OPTION)
                      op: Equal
                      rhs: 
                        {
                          (CommandSubPart
                            command_list: 
                              (CommandList
                                children: [
                                  (SimpleCommand
                                    words: [
                                      {(whiptail)}
                                      {(--inputbox)}
                                      {(DQ ('Please enter your ') ($ VSub_Name '$input_desc'))}
                                      {(9)}
                                      {(50)}
                                      {(DQ ($ VSub_Name '$input_value'))}
                                      {(--title)}
                                      {(DQ ('Input ') ($ VSub_Name '$input_desc'))}
                                    ]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 3
                                        arg_word: {(1)}
                                        spids: [2465]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 1
                                        arg_word: {(2)}
                                        spids: [2468]
                                      )
                                      (Redir
                                        op_id: Redir_GreatAnd
                                        fd: 2
                                        arg_word: {(3)}
                                        spids: [2471]
                                      )
                                    ]
                                  )
                                ]
                              )
                            left_token: <Left_CommandSub '$('>
                            spids: [2440 2473]
                          )
                        }
                      spids: [2439]
                    )
                  ]
                  spids: [2439]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:CHOICE)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [2476]
                    )
                  ]
                  spids: [2476]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:input_value)
                              op: Equal
                              rhs: {($ VSub_Name '$OPTION')}
                              spids: [2497]
                            )
                          ]
                          spids: [2497]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$input_value'))} 
                                      {(Lit_Other ']')}
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:input_value)
                                      op: Equal
                                      rhs: {(SQ <NULL>)}
                                      spids: [2521]
                                    )
                                  ]
                                  spids: [2521]
                                )
                              ]
                              spids: [16777215 2518]
                            )
                          ]
                          spids: [16777215 2527]
                        )
                      ]
                      spids: [16777215 2494]
                    )
                  ]
                  spids: [16777215 2530]
                )
                (C {(echo)} {(-e)} {(DQ ($ VSub_Name '$input_value'))})
              ]
              spids: [2422]
            )
          spids: [2419 2422]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_Name '$DP_SETTINGS'))} 
                      {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(Write_Settings_File)})]
              spids: [16777215 2578]
            )
          ]
          else_action: [(C {(Read_Settings_File)})]
          spids: [2586 2594]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithUnary
                          op_id: Arith_Bang
                          child: (ArithWord w:{($ VSub_Name '$LETSENCRYPT_INSTALLED')})
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$INPUT')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(G_DIETPI-NOTIFY)} {(1)} 
                          {
                            (DQ ('Certbot binary not found ( ') ($ VSub_Name '$DP_LETSENCRYPT_BINARY') 
                              (' )')
                            )
                          }
                        )
                        (C {(G_DIETPI-NOTIFY)} {(2)} 
                          {
                            (DQ 
                              (
'Please install Certbot with DietPi-Software before running this program.'
                              )
                            )
                          }
                        )
                        (C {(read)} {(-p)} {(DQ ('Press any key to continue.....'))})
                      ]
                      spids: [16777215 2640]
                    )
                  ]
                  else_action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {(-e)}
                        {
                          (DQ ('Error: Letsencrypt binary not installed ( ') 
                            ($ VSub_Name '$DP_LETSENCRYPT_BINARY') (' ).')
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op_id: Redir_DGreat
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$DP_LOGFILE'))}
                          spids: [2688]
                        )
                      ]
                    )
                  ]
                  spids: [2674 2696]
                )
              ]
              spids: [16777215 2618]
            )
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_DEqual
                          left: (ArithWord w:{($ VSub_Name '$INPUT')})
                          right: (ArithWord w:{(Lit_Digits 0)})
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (While
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_Great
                              left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                              right: 
                                (ArithUnary
                                  op_id: Node_UnaryMinus
                                  child: (ArithWord w:{(Lit_Digits 1)})
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  body: 
                    (DoGroup
                      children: [
                        (C {(clear)})
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                          right: (ArithWord w:{(Lit_Digits 0)})
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [(C {(Menu_Main)})]
                              spids: [16777215 2767]
                            )
                          ]
                          spids: [16777215 2775]
                        )
                      ]
                      spids: [2741 2779]
                    )
                )
              ]
              spids: [2708 2722]
            )
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_DEqual
                          left: (ArithWord w:{($ VSub_Name '$INPUT')})
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [(C {(Run_Lets_Encrypt)})]
              spids: [2791 2805]
            )
          ]
          spids: [16777215 2813]
        )
        (ControlFlow token:<ControlFlow_Exit exit>)
      ]
      spids: [3]
    )
  ]
)