(BraceGroup
  left: <Id.Lit_LBrace '{'>
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [83]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_EqualTilde
                          left: {($ Id.VSub_Number 1)}
                          right: 
                            {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> 
                              <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                            }
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INPUT='> name:INPUT)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number 1)}
                  spids: [110]
                )
              ]
              redirects: []
            )
          ]
          spids: [87 107]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>})
    (C {<G_CHECK_ROOT_USER>})
    (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Set_smbclient>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [155]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [159]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'samba_clientname='> name:samba_clientname)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<cat>} {<'/DietPi/dietpi.txt'>})
                      (C {<grep>} {<-m1>} {(SQ <'^CONFIG_SMBCLIENT_COMPUTERNAME='>)})
                      (C {<sed>} {(SQ <'s/.*=//'>)})
                    ]
                    negated: F
                    stderr_indices: []
                  )
                right: <Id.Eof_RParen _>
              )
            }
          spids: [163]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'samba_clientshare='> name:samba_clientshare)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<cat>} {<'/DietPi/dietpi.txt'>})
                      (C {<grep>} {<-m1>} {(SQ <'^CONFIG_SMBCLIENT_SHARENAME='>)})
                      (C {<sed>} {(SQ <'s/.*=//'>)})
                    ]
                    negated: F
                    stderr_indices: []
                  )
                right: <Id.Eof_RParen _>
              )
            }
          spids: [189]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'samba_clientusename='>
              name: samba_clientusename
            )
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<cat>} {<'/DietPi/dietpi.txt'>})
                      (C {<grep>} {<-m1>} {(SQ <'^CONFIG_SMBCLIENT_USERNAME='>)})
                      (C {<sed>} {(SQ <'s/.*=//'>)})
                    ]
                    negated: F
                    stderr_indices: []
                  )
                right: <Id.Eof_RParen _>
              )
            }
          spids: [215]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: 
            (sh_lhs_expr.Name
              left: <Id.Lit_VarLike 'samba_clientpassword='>
              name: samba_clientpassword
            )
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<cat>} {<'/DietPi/dietpi.txt'>})
                      (C {<grep>} {<-m1>} {(SQ <'^CONFIG_SMBCLIENT_PASSWORD='>)})
                      (C {<sed>} {(SQ <'s/.*=//'>)})
                    ]
                    negated: F
                    stderr_indices: []
                  )
                right: <Id.Eof_RParen _>
              )
            }
          spids: [241]
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name: Apply_And_Mount
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'space_to_040='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName samba_clientshare))})
                        (C {<sed>} {(SQ <'s/ /\\\\\\\\040/g'>)})
                      ]
                      negated: F
                      stderr_indices: []
                    )
                  right: <Id.Eof_RParen _>
                )
              }
            )
            (C {<sed>} {<-i>} 
              {
                (DQ <'/'> <Id.Lit_BadBackslash '\\'> <'/mnt'> <Id.Lit_BadBackslash '\\'> <'/samba/c'> 
                  (word_part.EscapedLiteral
                    token: <Id.Lit_EscapedChar '\\\\'>
                    ch: '\\'
                  ) <'/'> <Id.Lit_BadBackslash '\\'> <'/'> ($ Id.VSub_DollarName samba_clientname) <Id.Lit_BadBackslash '\\'> 
                  <'/'> ($ Id.VSub_DollarName space_to_040) <' '> <Id.Lit_BadBackslash '\\'> <'/mnt'> <Id.Lit_BadBackslash '\\'> 
                  <'/samba cifs username='> ($ Id.VSub_DollarName samba_clientusename) <',password='> ($ Id.VSub_DollarName samba_clientpassword) 
                  <',iocharset=utf8,sec=ntlm,nofail  0  0'>
                )
              } {<'/etc/fstab'>}
            )
            (C {<mount>} {<-a>})
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 0>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            words: [
                              {<whiptail>}
                              {<--inputbox>}
                              {
                                (DQ <'Please enter the fileservers IP address'> 
                                  <Id.Lit_BadBackslash '\\'> <'n - eg: 192.168.0.2'>
                                )
                              }
                              {<9>}
                              {<65>}
                              {(DQ ($ Id.VSub_DollarName samba_clientname))}
                              {<--title>}
                              {(DQ <'Samba Client Setup'>)}
                            ]
                            redirects: [
                              (redir
                                op: <Id.Redir_GreatAnd '3>&'>
                                loc: (redir_loc.Fd fd:3)
                                arg: {<1>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '1>&'>
                                loc: (redir_loc.Fd fd:1)
                                arg: {<2>}
                              )
                              (redir
                                op: <Id.Redir_GreatAnd '2>&'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<3>}
                              )
                            ]
                            more_env: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                  spids: [390]
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '?')}
                  spids: [427]
                )
              ]
              redirects: []
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName CHOICE)}
                                  right: {<Id.Lit_Digits 0>}
                                )
                              redirects: []
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: 
                            (sh_lhs_expr.Name
                              left: <Id.Lit_VarLike 'samba_clientname='>
                              name: samba_clientname
                            )
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName OPTION)}
                          spids: [448]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    words: [
                                      {<whiptail>}
                                      {<--inputbox>}
                                      {
                                        (DQ <'Please enter the fileservers shared folder name'> 
                                          <Id.Lit_BadBackslash '\\'> <'n - eg: MySharedFolder'>
                                        )
                                      }
                                      {<9>}
                                      {<65>}
                                      {(DQ ($ Id.VSub_DollarName samba_clientshare))}
                                      {<--title>}
                                      {(DQ <'Samba Client Setup'>)}
                                    ]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_GreatAnd '3>&'>
                                        loc: (redir_loc.Fd fd:3)
                                        arg: {<1>}
                                      )
                                      (redir
                                        op: <Id.Redir_GreatAnd '1>&'>
                                        loc: (redir_loc.Fd fd:1)
                                        arg: {<2>}
                                      )
                                      (redir
                                        op: <Id.Redir_GreatAnd '2>&'>
                                        loc: (redir_loc.Fd fd:2)
                                        arg: {<3>}
                                      )
                                    ]
                                    more_env: []
                                    do_fork: T
                                  )
                                right: <Id.Eof_RParen _>
                              )
                            }
                          spids: [453]
                        )
                      ]
                      redirects: []
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '?')}
                          spids: [490]
                        )
                      ]
                      redirects: []
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName CHOICE)}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                      redirects: []
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.Name
                                      left: <Id.Lit_VarLike 'samba_clientshare='>
                                      name: samba_clientshare
                                    )
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName OPTION)}
                                  spids: [511]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTION='> name:OPTION)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            words: [
                                              {<whiptail>}
                                              {<--inputbox>}
                                              {
                                                (DQ <'Please enter the fileservers username'> 
                                                  <Id.Lit_BadBackslash '\\'> <'n - eg: JoeBloggs'>
                                                )
                                              }
                                              {<9>}
                                              {<65>}
                                              {(DQ ($ Id.VSub_DollarName samba_clientusename))}
                                              {<--title>}
                                              {(DQ <'Samba Client Setup'>)}
                                            ]
                                            redirects: [
                                              (redir
                                                op: <Id.Redir_GreatAnd '3>&'>
                                                loc: (redir_loc.Fd fd:3)
                                                arg: {<1>}
                                              )
                                              (redir
                                                op: <Id.Redir_GreatAnd '1>&'>
                                                loc: (redir_loc.Fd fd:1)
                                                arg: {<2>}
                                              )
                                              (redir
                                                op: <Id.Redir_GreatAnd '2>&'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<3>}
                                              )
                                            ]
                                            more_env: []
                                            do_fork: T
                                          )
                                        right: <Id.Eof_RParen _>
                                      )
                                    }
                                  spids: [520]
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CHOICE='> name:CHOICE)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_QMark '?')}
                                  spids: [557]
                                )
                              ]
                              redirects: []
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DEqual
                                                  left: {($ Id.VSub_DollarName CHOICE)}
                                                  right: {<Id.Lit_Digits 0>}
                                                )
                                              redirects: []
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'samba_clientusename='>
                                              name: samba_clientusename
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName OPTION)}
                                          spids: [578]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'OPTION='>
                                              name: OPTION
                                            )
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Simple
                                                    words: [
                                                      {<whiptail>}
                                                      {<--inputbox>}
                                                      {
                                                        (DQ <'Please enter the fileservers password'> 
                                                          <Id.Lit_BadBackslash '\\'> <'n - eg: LetMeIn'> <Id.Lit_BadBackslash '\\'> <'n - (NOTICE) This will be stored with no encryption'>
                                                        )
                                                      }
                                                      {<10>}
                                                      {<65>}
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName samba_clientpassword)
                                                        )
                                                      }
                                                      {<--title>}
                                                      {(DQ <'Samba Client Setup'>)}
                                                    ]
                                                    redirects: [
                                                      (redir
                                                        op: <Id.Redir_GreatAnd '3>&'>
                                                        loc: (redir_loc.Fd fd:3)
                                                        arg: {<1>}
                                                      )
                                                      (redir
                                                        op: <Id.Redir_GreatAnd '1>&'>
                                                        loc: (redir_loc.Fd fd:1)
                                                        arg: {<2>}
                                                      )
                                                      (redir
                                                        op: <Id.Redir_GreatAnd '2>&'>
                                                        loc: (redir_loc.Fd fd:2)
                                                        arg: {<3>}
                                                      )
                                                    ]
                                                    more_env: []
                                                    do_fork: T
                                                  )
                                                right: <Id.Eof_RParen _>
                                              )
                                            }
                                          spids: [587]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: 
                                            (sh_lhs_expr.Name
                                              left: <Id.Lit_VarLike 'CHOICE='>
                                              name: CHOICE
                                            )
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_QMark '?')}
                                          spids: [626]
                                        )
                                      ]
                                      redirects: []
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DParen
                                                      child: 
                                                        (arith_expr.Binary
                                                          op_id: Id.Arith_DEqual
                                                          left: {($ Id.VSub_DollarName CHOICE)}
                                                          right: {<Id.Lit_Digits 0>}
                                                        )
                                                      redirects: []
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.Name
                                                      left: <Id.Lit_VarLike 'samba_clientpassword='>
                                                      name: samba_clientpassword
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName OPTION)}
                                                  spids: [647]
                                                )
                                              ]
                                              redirects: []
                                            )
                                            (C {<clear>})
                                            (C {<echo>} {<-e>} 
                                              {
                                                (DQ <Id.Lit_BadBackslash '\\'> <n> 
                                                  <Id.Lit_BadBackslash '\\'> <'n Attempting mount, please wait....'>
                                                )
                                              }
                                            )
                                            (command.Simple
                                              words: [{<umount>} {<'/mnt/samba'>}]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_AndGreat '&>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<'/dev/null'>}
                                                )
                                              ]
                                              more_env: []
                                              do_fork: T
                                            )
                                            (C {<sed>} {<-i>} 
                                              {
                                                (DQ <'/CONFIG_SMBCLIENT_COMPUTERNAME/c'> 
                                                  <Id.Lit_BadBackslash '\\'> <'CONFIG_SMBCLIENT_COMPUTERNAME='> ($ Id.VSub_DollarName samba_clientname)
                                                )
                                              } {<'/DietPi/dietpi.txt'>}
                                            )
                                            (C {<sed>} {<-i>} 
                                              {
                                                (DQ <'/CONFIG_SMBCLIENT_SHARENAME/c'> 
                                                  <Id.Lit_BadBackslash '\\'> <'CONFIG_SMBCLIENT_SHARENAME='> ($ Id.VSub_DollarName samba_clientshare)
                                                )
                                              } {<'/DietPi/dietpi.txt'>}
                                            )
                                            (C {<sed>} {<-i>} 
                                              {
                                                (DQ <'/CONFIG_SMBCLIENT_USERNAME/c'> 
                                                  <Id.Lit_BadBackslash '\\'> <'CONFIG_SMBCLIENT_USERNAME='> ($ Id.VSub_DollarName samba_clientusename)
                                                )
                                              } {<'/DietPi/dietpi.txt'>}
                                            )
                                            (C {<sed>} {<-i>} 
                                              {
                                                (DQ <'/CONFIG_SMBCLIENT_PASSWORD/c'> 
                                                  <Id.Lit_BadBackslash '\\'> <'CONFIG_SMBCLIENT_PASSWORD='> ($ Id.VSub_DollarName samba_clientpassword)
                                                )
                                              } {<'/DietPi/dietpi.txt'>}
                                            )
                                            (C {<Apply_And_Mount>})
                                          ]
                                          spids: [630 644]
                                        )
                                      ]
                                      else_action: []
                                      redirects: []
                                    )
                                  ]
                                  spids: [561 575]
                                )
                              ]
                              else_action: []
                              redirects: []
                            )
                          ]
                          spids: [494 508]
                        )
                      ]
                      else_action: []
                      redirects: []
                    )
                  ]
                  spids: [431 445]
                )
              ]
              else_action: []
              redirects: []
            )
          ]
          spids: [373 387]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DParen
                      child: 
                        (arith_expr.Binary
                          op_id: Id.Arith_DEqual
                          left: {($ Id.VSub_DollarName INPUT)}
                          right: {<Id.Lit_Digits 1>}
                        )
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Apply_And_Mount>})]
          spids: [766 780]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
  ]
  redirects: []
  right: <Id.Lit_RBrace '}'>
)