(BraceGroup
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_SCRIPT)
          op: assign_op.Equal
          rhs: {(SQ <'/DietPi/dietpi/func/dietpi-set_hardware'>)}
          spids: [46]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:AVAIABLE_COMMANDS)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'\n'> <'Available commands\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') 
                <' \t\trpi3_usb_boot\t\tenable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\trpi-camera\t\t\tenable/disable\n'> 
                ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tgpumemsplit\t\t\t64/128/256 #RPi only\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') 
                <' \t\tremoteir\t\t\todroid_remote/justboom_ir_remote\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tkernel\t\t\t\t??see sourcode\n'> 
                ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\teth-forcespeed\t\t10/100/1000/disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') 
                <' \t\trpi-opengl\t\t\tenable/disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\ti2c\t\t\t\t\tenable/disable/khz\n'> 
                ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\twificountrycode\t\tcode\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') 
                <' \t\twifimodules\t\t\tenable/disable/onboard_enable/onboard_disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') 
                <
' \t\twificreds\t\t\tset | Generates wpa_supplicant.conf from dietpi.txt globals\n'
                > ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tpreferipversion\t\tauto/ipv4/ipv6\n'> 
                ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tbluetooth \t\t\tenable/disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') 
                <' \t\tserialconsole\t\tenable/disable\n'> ($ Id.VSub_DollarName '$FP_SCRIPT') 
                <
' \t\tsoundcard \t\t\ttarget_card (non-matching name for reset to default) add \'-eq\' to target_card string, enable alsa eq on card. HW:x,x (specify target card and device index eg: HW:9,1)\n'
                > ($ Id.VSub_DollarName '$FP_SCRIPT') <' \t\tlcdpanel \t\t\ttarget_panel (none to remove all)\n'>
              )
            }
          spids: [52]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_NAME)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<echo>} {<-e>} {(DQ ($ Id.VSub_Number '$1'))})
                      (C {<tr>} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)})
                    ]
                    negated: F
                  )
              )
            }
          spids: [100]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [
                      (C {<echo>} {<-e>} {(DQ ($ Id.VSub_Number '$2'))})
                      (C {<tr>} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)})
                    ]
                    negated: F
                  )
              )
            }
          spids: [124]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} 
                      {<Id.Lit_Equals '='>} {(DQ <1>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE)
                  op: assign_op.Equal
                  rhs: {(SQ <enable>)}
                  spids: [173]
                )
              ]
            )
          ]
          spids: [152 169]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} 
                      {<Id.Lit_Equals '='>} {(DQ <0>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE)
                  op: assign_op.Equal
                  rhs: {(SQ <disable>)}
                  spids: [201]
                )
              ]
            )
          ]
          spids: [180 197]
        )
      ]
    )
    (C {<.>} {<'/DietPi/dietpi/func/dietpi-globals'>})
    (C {<G_CHECK_ROOT_USER>})
    (C {<G_CHECK_ROOTFS_RW>})
    (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-Set_Hardware>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:FP_RPI_CONFIG)
          op: assign_op.Equal
          rhs: {(SQ <'/DietPi/config.txt'>)}
          spids: [244]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:FP_RPI_CONFIG)
                  op: assign_op.Equal
                  rhs: {(SQ <'/boot/config.txt'>)}
                  spids: [269]
                )
              ]
            )
          ]
          spids: [250 265]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXIT_CODE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [280]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:HW_ONBOARD_WIFI)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<sed>} {<-n>} {<10p>} {<'/DietPi/dietpi/.hw_model'>})
              )
            }
          spids: [285]
        )
      ]
    )
    (command.ShFunction
      name: Unknown_Input_Name
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:EXIT_CODE)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [305]
                )
              ]
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} 
              {
                (DQ <'Unknown input name ('> ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME') 
                  <'). Nothing has been applied.'>
                )
              }
            )
            (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$AVAIABLE_COMMANDS'))})
          ]
        )
    )
    (command.ShFunction
      name: Unknown_Input_Mode
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:EXIT_CODE)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [342]
                )
              ]
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} 
              {
                (DQ <'Unknown input value ('> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') 
                  <'). Nothing has been applied.'>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: RPi_Camera_Main
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<sed>} {<-i>} {(SQ <'/start_x=/c\\start_x=1'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Less
                                          left: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<cat>} 
                                                        {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                                                      )
                                                      (C {<grep>} {<-m1>} {(SQ <gpu_mem_>)})
                                                      (C {<sed>} {(SQ <'s/.*=//g'>)})
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 128>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<gpumemsplit>} {<128>})
                          ]
                          spids: [428 466]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<cat>} {<'/etc/modules'>})
                                                      (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^bcm2835-v4l2'>)})
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ <bcm2835-v4l2>)}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/etc/modules'>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          spids: [486 514]
                        )
                      ]
                    )
                  ]
                  spids: [385 402]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<sed>} {<-i>} {(SQ <'/start_x=/c\\start_x=0'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/bcm2835-v4l2/d'>)} {<'/etc/modules'>})
                  ]
                  spids: [536 553]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: RPi_USB_Boot_Main
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<sed>} {<-i>} {(SQ <'/program_usb_boot_mode=/d'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 665
                              stdin_parts: [<'program_usb_boot_mode=1\n'>]
                            )
                        )
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 712
                              stdin_parts: [
                                <'[Unit]\n'>
                                <'Description=dietpi-rm_program_usb_boot_mode.service\n'>
                                <'After=dietpi-boot.service\n'>
                                <'\n'>
                                <'[Service]\n'>
                                <'Type=simple\n'>
                                <'RemainAfterExit=yes\n'>
                                <'ExecStartPre='>
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<which>} {<sed>})
                                )
                                <' -i \'/program_usb_boot_mode=/d\' '>
                                ($ Id.VSub_DollarName '$FP_RPI_CONFIG')
                                <'\n'>
                                <'ExecStartPre='>
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<which>} {<systemctl>})
                                )
                                <' disable dietpi-rm_program_usb_boot_mode.service\n'>
                                <'ExecStart='>
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<which>} {<systemctl>})
                                )
                                <' daemon-reload\n'>
                                <'\n'>
                                <'[Install]\n'>
                                <'WantedBy=multi-user.target\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/systemd/system/dietpi-rm_program_usb_boot_mode.service'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<systemctl>} {<daemon-reload>})
                    (C {<systemctl>} {<enable>} {<dietpi-rm_program_usb_boot_mode.service>})
                  ]
                  spids: [617 634]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<sed>} {<-i>} {(SQ <'/program_usb_boot_mode=/d'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                  ]
                  spids: [725 742]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Gpu_Memory_Split_Main
      body: 
        (BraceGroup
          children: [
            (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_DollarName '$INPUT_DEVICE_VALUE')}
                                  right: 
                                    {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> 
                                      <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                                    }
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/gpu_mem_256=/c'> <Id.Lit_BadBackslash '\\'> <'gpu_mem_256='> 
                          ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                        )
                      } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/gpu_mem_512=/c'> <Id.Lit_BadBackslash '\\'> <'gpu_mem_512='> 
                          ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                        )
                      } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/gpu_mem_1024=/c'> <Id.Lit_BadBackslash '\\'> <'gpu_mem_1024='> 
                          ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                        )
                      } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                  ]
                  spids: [799 819]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: RemoteIR_Prereqs
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<dpkg>} {<--get-selections>})
                                              (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^lirc'>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_AGI>} {<lirc>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_NEqual
                                          left: {($ Id.VSub_QMark '$?')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<1>} {(DQ <'apt-get install lirc'>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:EXIT_CODE)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [975]
                                )
                              ]
                            )
                          ]
                          spids: [948 962]
                        )
                      ]
                    )
                  ]
                  spids: [911 939]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: RemoteIR_Reset_All
      body: 
        (BraceGroup
          children: [
            (C {<systemctl>} {<stop>} {<odroid-remote>})
            (C {<systemctl>} {<disable>} {<odroid-remote>})
            (C {<rm>} {<'/etc/systemd/system/odroid-remote.service'>})
            (C {<systemctl>} {<stop>} {<justboom-ir-mpd.service>})
            (C {<systemctl>} {<disable>} {<justboom-ir-mpd.service>})
            (C {<rm>} {<'/etc/systemd/system/justboom-ir-mpd.service'>})
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=lirc-rpi/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (C {<sed>} {<-i>} {(SQ <'/dtparam=gpio_in_pin=25/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
          ]
        )
    )
    (command.ShFunction
      name: RemoteIR_Main
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <odroid_remote>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<RemoteIR_Prereqs>})
                    (command.Simple
                      words: [{<RemoteIR_Reset_All>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (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 '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 11>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'string='> 
                                (DQ <'options gpioplug_ir_recv gpio_nr=24 active_low=1'>)
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Unary
                                                  op_id: Id.Arith_Bang
                                                  child: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<cat>} 
                                                                {
                                                                  <
'/etc/modprobe.d/odroid-cloudshell.conf'
                                                                  >
                                                                }
                                                              )
                                                              (C {<grep>} {<-ci>} {<-m1>} 
                                                                {
                                                                  (DQ <'^'> 
                                                                    ($ Id.VSub_DollarName '$string')
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$string'))}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/etc/modprobe.d/odroid-cloudshell.conf'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1151 1180]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:string)
                                  op: assign_op.Equal
                                  rhs: {(DQ <gpio-ir-recv>)}
                                  spids: [1200]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Unary
                                                  op_id: Id.Arith_Bang
                                                  child: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<cat>} {<'/etc/modules'>})
                                                              (C {<grep>} {<-ci>} {<-m1>} 
                                                                {
                                                                  (DQ <'^'> 
                                                                    ($ Id.VSub_DollarName '$string')
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$string'))}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/etc/modules'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1206 1235]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:string)
                                  op: assign_op.Equal
                                  rhs: {(DQ <gpioplug-ir-recv>)}
                                  spids: [1255]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Unary
                                                  op_id: Id.Arith_Bang
                                                  child: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<cat>} {<'/etc/modules'>})
                                                              (C {<grep>} {<-ci>} {<-m1>} 
                                                                {
                                                                  (DQ <'^'> 
                                                                    ($ Id.VSub_DollarName '$string')
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$string'))}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/etc/modules'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1261 1290]
                                )
                              ]
                            )
                          ]
                          spids: [1121 1135]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 10>}
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 12>}
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Unary
                                                  op_id: Id.Arith_Bang
                                                  child: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<cat>} {<'/etc/modules'>})
                                                              (C {<grep>} {<-ci>} {<-m1>} 
                                                                {(SQ <'^meson_ir'>)}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<echo>} {<-e>} {(DQ <meson_ir>)}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/etc/modules'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [1344 1372]
                                )
                              ]
                            )
                          ]
                          spids: [1314 1336]
                        )
                      ]
                    )
                    (C {<systemctl>} {<disable>} {<lirc>})
                    (C {<rm>} {<'/etc/init.d/lirc'>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 1439
                              stdin_parts: [
                                <'[Unit]\n'>
                                <'Description=Odroid Remote C1/C2/XU4\n'>
                                <'\n'>
                                <'[Service]\n'>
                                <'Type=forking\n'>
                                <'ExecStartPre=/bin/bash -c \'mkdir -p /var/run/lirc\'\n'>
                                <
'ExecStart=/usr/sbin/lircd --output=/run/lirc/lircd --driver=default --device=/dev/lirc0 --uinput\n'
                                >
                                <'\n'>
                                <'[Install]\n'>
                                <'WantedBy=multi-user.target\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/systemd/system/odroid-remote.service'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<systemctl>} {<daemon-reload>})
                    (C {<systemctl>} {<enable>} {<odroid-remote.service>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 1503
                              stdin_parts: [
                                <'begin remote\n'>
                                <'\n'>
                                <'  name lircd.conf\n'>
                                <'  bits 16\n'>
                                <'  flags SPACE_ENC|CONST_LENGTH\n'>
                                <'  eps 30\n'>
                                <'  aeps 100\n'>
                                <'\n'>
                                <'  header 9000 4500\n'>
                                <'  one 563 1688\n'>
                                <'  zero 563 564\n'>
                                <'  ptrail 563\n'>
                                <'  pre_data_bits 16\n'>
                                <'  pre_data 0x4DB2\n'>
                                <'  repeat 9000 2250\n'>
                                <'  toggle_bit_mask 0x0\n'>
                                <'      begin codes\n'>
                                <'\n'>
                                <'          KEY_LEFT 0x9966\n'>
                                <'          KEY_RIGHT 0x837C\n'>
                                <'          KEY_UP 0x53AC\n'>
                                <'          KEY_DOWN 0x4BB4\n'>
                                <'          KEY_ENTER 0x738C\n'>
                                <'          KEY_HOME 0x41BE\n'>
                                <'          KEY_MUTE 0x11EE\n'>
                                <'          KEY_MENU 0xA35C\n'>
                                <'          KEY_BACK 0x59A6\n'>
                                <'          KEY_VOLUMEDOWN 0x817E\n'>
                                <'          KEY_VOLUMEUP 0x01FE\n'>
                                <'          KEY_POWER 0x3BC4\n'>
                                <'\n'>
                                <'      end codes\n'>
                                <'\n'>
                                <'end remote\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/lirc/lircd.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [1085 1102]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <justboom_ir_remote>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<RemoteIR_Prereqs>})
                    (command.Simple
                      words: [{<RemoteIR_Reset_All>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 1553
                              stdin_parts: [<'dtoverlay=lirc-rpi\n'> <'dtparam=gpio_in_pin=25\n'>]
                            )
                        )
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 1596
                              stdin_parts: [
                                <'LIRCD_ARGS='>
                                <Id.Right_DoubleQuote '"'>
                                <--uinput>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'LOAD_MODULES=true\n'>
                                <'DRIVER='>
                                <Id.Right_DoubleQuote '"'>
                                <default>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'DEVICE='>
                                <Id.Right_DoubleQuote '"'>
                                <'/dev/lirc0'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'MODULES='>
                                <Id.Right_DoubleQuote '"'>
                                <lirc_rpi>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'LIRCD_CONF='>
                                <Id.Right_DoubleQuote '"'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'LIRCMD_CONF='>
                                <Id.Right_DoubleQuote '"'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/lirc/hardware.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 1647
                              stdin_parts: [
                                <'begin remote\n'>
                                <'\n'>
                                <'  name  lircd.conf\n'>
                                <'  bits            5\n'>
                                <'  flags RC5|CONST_LENGTH\n'>
                                <'  eps            30\n'>
                                <'  aeps          100\n'>
                                <'\n'>
                                <'  one           921   855\n'>
                                <'  zero          921   855\n'>
                                <'  plead         936\n'>
                                <'  pre_data_bits   8\n'>
                                <'  pre_data       0xA0\n'>
                                <'  gap          114211\n'>
                                <'  toggle_bit_mask 0x800\n'>
                                <'\n'>
                                <'  suppress_repeat 5\n'>
                                <'  duty_cycle 300\n'>
                                <'\n'>
                                <'  begin codes\n'>
                                <'\n'>
                                <'        KEY_HOME 0x10\n'>
                                <'        KEY_POWER 0x11\n'>
                                <'        KEY_MUTE 0x12\n'>
                                <'        KEY_LEFT 0x13\n'>
                                <'        KEY_RIGHT 0x14\n'>
                                <'        KEY_ENTER 0x15\n'>
                                <'        KEY_MENU 0x16\n'>
                                <'        KEY_BACK 0x17\n'>
                                <'        KEY_VOLUMEDOWN 0x18\n'>
                                <'        KEY_VOLUMEUP 0x19\n'>
                                <'        KEY_UP 0x1A\n'>
                                <'        KEY_DOWN 0x1B\n'>
                                <'\n'>
                                <'      end codes\n'>
                                <'\n'>
                                <'end remote\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/lirc/lircd.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<dpkg>} {<--get-selections>})
                                                      (C {<grep>} {<-ci>} {<-m1>} 
                                                        {(SQ <'^mpc[[:space:]]'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<G_AGI>} {<mpc>})]
                          spids: [1654 1682]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 1753
                              stdin_parts: [
                                <'begin\n'>
                                <'prog = irexec\n'>
                                <'button = KEY_ENTER\n'>
                                <'config = mpc toggle\n'>
                                <'end\n'>
                                <'begin\n'>
                                <'prog = irexec\n'>
                                <'button = KEY_VOLUMEUP\n'>
                                <'config = mpc volume +2\n'>
                                <'end\n'>
                                <'begin\n'>
                                <'prog = irexec\n'>
                                <'button = KEY_VOLUMEDOWN\n'>
                                <'config = mpc volume -2\n'>
                                <'end\n'>
                                <'begin\n'>
                                <'prog = irexec\n'>
                                <'button = KEY_RIGHT\n'>
                                <'config = mpc next\n'>
                                <'end\n'>
                                <'begin\n'>
                                <'prog = irexec\n'>
                                <'button = KEY_LEFT\n'>
                                <'config = mpc prev\n'>
                                <'end\n'>
                                <'begin\n'>
                                <'prog = irexec\n'>
                                <'button = KEY_UP\n'>
                                <'config = mpc seek +00:00:10\n'>
                                <'end\n'>
                                <'begin\n'>
                                <'prog = irexec\n'>
                                <'button = KEY_DOWN\n'>
                                <'config = mpc seek -00:00:10\n'>
                                <'end\n'>
                                <'begin\n'>
                                <'prog = irexec\n'>
                                <'button = KEY_BACK\n'>
                                <'config = mpc repeat on\n'>
                                <'end\n'>
                                <'begin\n'>
                                <'prog = irexec\n'>
                                <'button = KEY_MENU\n'>
                                <'config = mpc repeat off\n'>
                                <'end\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/.lircrc'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 1785
                              stdin_parts: [
                                <'[Unit]\n'>
                                <'Description=justboom-ir-mpd\n'>
                                <'After=sound.target lirc.service\n'>
                                <'\n'>
                                <'[Service]\n'>
                                <'User='>
                                ($ Id.VSub_DollarName '$USER')
                                <'\n'>
                                <'Type=simple\n'>
                                <'\n'>
                                <'ExecStart=/usr/bin/irexec\n'>
                                <'\n'>
                                <'[Install]\n'>
                                <'WantedBy=default.target\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/systemd/system/justboom-ir-mpd.service'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<systemctl>} {<enable>} {<justboom-ir-mpd.service>})
                    (C {<systemctl>} {<daemon-reload>})
                    (C {<systemctl>} {<start>} {<justboom-ir-mpd.service>})
                  ]
                  spids: [1506 1523]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<RemoteIR_Reset_All>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [1807 1824]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Eth_Force_Speed_Main
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Great
                                  left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')}
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'eth_force_speed='> 
                        ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                      }
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'eth_adapter='> 
                        (DQ <eth> 
                          (command_sub
                            left_token: <Id.Left_DollarParen '$('>
                            child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.network'>})
                          )
                        )
                      }
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 1940
                              stdin_parts: [
                                <'[Unit]\n'>
                                <'Description=ethtool force speed\n'>
                                <'After=network-online.target\n'>
                                <'\n'>
                                <'[Service]\n'>
                                <'Type=oneshot\n'>
                                <'ExecStart=/sbin/ethtool -s '>
                                ($ Id.VSub_DollarName '$eth_adapter')
                                <' speed '>
                                ($ Id.VSub_DollarName '$eth_force_speed')
                                <' duplex full autoneg off\n'>
                                <'\n'>
                                <'[Install]\n'>
                                <'WantedBy=ifup@'>
                                ($ Id.VSub_DollarName '$eth_adapter')
                                <'.service\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/systemd/system/ethtool_force_speed.service'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<systemctl>} {<enable>} {<ethtool_force_speed.service>})
                    (C {<systemctl>} {<start>} {<ethtool_force_speed.service>})
                  ]
                  spids: [1871 1885]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<rm>} {<'/etc/systemd/system/ethtool_force_speed.service'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<systemctl>} {<daemon-reload>})
                  ]
                  spids: [1957 1974]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: RPi_OpenGL_Main
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DAmp
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_GreatEqual
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 2>}
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Less
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 10>}
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<'/DietPi/dietpi/dietpi-software'>} {<install>} {<6>})
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (DQ <'Installing additional OpenGL packages, please wait...'> 
                                  <Id.Lit_BadBackslash '\\'> <n>
                                )
                              }
                            )
                            (C {<sleep>} {<1>})
                            (C {<G_AGI>} {<libgl1-mesa-dri>} {<mesa-utils>})
                            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=vc4-kms-v3d/d'>)} 
                              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                            )
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {(DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay=vc4-kms-v3d'>)}
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          spids: [2056 2078]
                        )
                      ]
                      else_action: [
                        (C {<G_DIETPI-NOTIFY>} {<1>} {(DQ <'OpenGL requires a RPi 2 or higher'>)})
                        (C {<sleep>} {<2>})
                      ]
                    )
                  ]
                  spids: [2031 2048]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<sed>} {<-i>} {(SQ <'/dtoverlay=vc4-kms-v3d/d'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                  ]
                  spids: [2180 2197]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Lcd_Panel_Not_Available_For_Device
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:EXIT_CODE)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [2250]
                )
              ]
            )
            (C {<G_DIETPI-NOTIFY>} {<2>} 
              {
                (DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') 
                  <' is not available for this device. Nothing has been applied.'>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: Lcd_Panel_Main
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'update_dietpitxt='> <1>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <odroid-lcd35>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Lcd_Panel_OdroidLCD35_Enable>})]
                  spids: [2283 2300]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <waveshare32>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Lcd_Panel_Waveshare32_Enable>})]
                  spids: [2308 2325]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <odroid-cloudshell>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Lcd_Panel_Odroidcloudshell_Enable>})]
                  spids: [2333 2350]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <none>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<Lcd_Panel_Waveshare32_Disable>})
                    (C {<Lcd_Panel_Odroidcloudshell_Disable>})
                    (C {<Lcd_Panel_OdroidLCD35_Disable>})
                  ]
                  spids: [2362 2379]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:update_dietpitxt)
                      op: assign_op.Equal
                      rhs: {<0>}
                      spids: [2397]
                    )
                  ]
                )
                (C {<Unknown_Input_Mode>})
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (command.DParen child:{($ Id.VSub_DollarName '$update_dietpitxt')})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/^CONFIG_LCDPANEL=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_LCDPANEL='> 
                          ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                        )
                      } {<'/DietPi/dietpi.txt'>}
                    )
                  ]
                  spids: [2413 2423]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Lcd_Panel_Xorg_All_Enable
      body: 
        (BraceGroup
          children: [
            (C {<G_AGI>} {<xinput-calibrator>})
            (C {<mkdir>} {<-p>} {<'/etc/X11/xorg.conf.d'>})
            (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName '$HOME')) <'/Desktop'>})
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<_EOF_>}
                      here_end_span_id: 2513
                      stdin_parts: [
                        <'[Desktop Entry]\n'>
                        <'Version=1.0\n'>
                        <'Name=xinput_calibrator\n'>
                        <'Type=Application\n'>
                        <'Comment=xinput_calibrator\n'>
                        <'Terminal=true\n'>
                        <'Exec=xinput_calibrator\n'>
                        <'#Icon=/DietPi/dietpi/conf/desktop/dietpi-icon.png\n'>
                        <'Categories=System;\n'>
                        <'GenericName=xinput_calibrator\n'>
                      ]
                    )
                )
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {(DQ ($ Id.VSub_DollarName '$HOME')) <'/Desktop/xinput_calibrator.desktop'>}
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: Lcd_Panel_Waveshare32_Enable_X11
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<_EOF_>}
                      here_end_span_id: 2577
                      stdin_parts: [
                        <'Section '>
                        <Id.Right_DoubleQuote '"'>
                        <Device>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'        Identifier      '>
                        <Id.Right_DoubleQuote '"'>
                        <'Allwinner A10/A13 FBDEV'>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'        Driver          '>
                        <Id.Right_DoubleQuote '"'>
                        <fbturbo>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'        Option          '>
                        <Id.Right_DoubleQuote '"'>
                        <fbdev>
                        <Id.Right_DoubleQuote '"'>
                        <' '>
                        <Id.Right_DoubleQuote '"'>
                        <'/dev/fb1'>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'\n'>
                        <'        Option          '>
                        <Id.Right_DoubleQuote '"'>
                        <SwapbuffersWait>
                        <Id.Right_DoubleQuote '"'>
                        <' '>
                        <Id.Right_DoubleQuote '"'>
                        <true>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'EndSection\n'>
                      ]
                    )
                )
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/etc/X11/xorg.conf.d/99-waveshare32_xorg.conf'>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<_EOF_>}
                      here_end_span_id: 2625
                      stdin_parts: [
                        <'Section '>
                        <Id.Right_DoubleQuote '"'>
                        <InputClass>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'        Identifier      '>
                        <Id.Right_DoubleQuote '"'>
                        <calibration>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'        MatchProduct    '>
                        <Id.Right_DoubleQuote '"'>
                        <'ADS7846 Touchscreen'>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'        Option  '>
                        <Id.Right_DoubleQuote '"'>
                        <Calibration>
                        <Id.Right_DoubleQuote '"'>
                        <'   '>
                        <Id.Right_DoubleQuote '"'>
                        <'219 3835 3984 219'>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'        Option  '>
                        <Id.Right_DoubleQuote '"'>
                        <SwapAxes>
                        <Id.Right_DoubleQuote '"'>
                        <'      '>
                        <Id.Right_DoubleQuote '"'>
                        <1>
                        <Id.Right_DoubleQuote '"'>
                        <'\n'>
                        <'EndSection\n'>
                      ]
                    )
                )
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/etc/X11/xorg.conf.d/99-waveshare32_calibration.conf'>}
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: Lcd_Panel_Waveshare32_Enable
      body: 
        (BraceGroup
          children: [
            (C {<Lcd_Panel_Waveshare32_Disable>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 10>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<Lcd_Panel_Xorg_All_Enable>})
                    (C {<Lcd_Panel_Waveshare32_Enable_X11>})
                    (C {<wget>} 
                      {<http> <Id.Lit_Colon ':'> 
                        <'//dietpi.com/downloads/conf/waveshare32b-overlay.dtb'>
                      } {<-O>} {<'/boot/overlays/waveshare32b.dtbo'>}
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'s/rootwait/rootwait fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo/'>)} {<'/boot/cmdline.txt'>}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/dtparam=i2c_arm=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=i2c_arm=on'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/dtparam=spi=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=spi=on'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 2758
                              stdin_parts: [
                                <'\n'>
                                <'#Waveshare 32 LCD\n'>
                                <'dtoverlay=waveshare32b:rotate=270\n'>
                                <
'#dtoverlay=ads7846,cs=1,penirq=17,penirq_pull=2,speed=1000000,keep_vref_on=1,swapxy=0,pmax=255,xohms=60,xmin=200,xmax=3900,ymin=200,ymax=3900\n'
                                >
                                <'#dtoverlay=w1-gpio-pullup,gpiopin=4,extpullup=1\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<sed>} {<-i>} {(SQ <'/"SwapAxes"/c\\        Option  "SwapAxes"      "1"'>)} 
                      {<'/etc/X11/xorg.conf.d/99-waveshare32_calibration.conf'>}
                    )
                    (C {<mv>} {<'/usr/share/X11/xorg.conf.d/99-fbturbo.conf'>} 
                      {<'/usr/share/X11/99-fbturbo.conf'>}
                    )
                  ]
                  spids: [2651 2665]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DAmp
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 10>}
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 20>}
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<Lcd_Panel_Xorg_All_Enable>})
                    (C {<Lcd_Panel_Waveshare32_Enable_X11>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 2857
                              stdin_parts: [
                                <'[Unit]\n'>
                                <'Description=con2fbmap\n'>
                                <'\n'>
                                <'[Service]\n'>
                                <'Type=oneshot\n'>
                                <'ExecStart=/bin/con2fbmap 1 2\n'>
                                <'ExecStop=/bin/con2fbmap 1 0\n'>
                                <'\n'>
                                <'RemainAfterExit=yes\n'>
                                <'\n'>
                                <'[Install]\n'>
                                <'WantedBy=multi-user.target\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/systemd/system/con2fbmap.service'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<systemctl>} {<enable>} {<con2fbmap.service>})
                    (C {<systemctl>} {<daemon-reload>})
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <spicc>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <fbtft_device>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 2911
                              stdin_parts: [
                                <
'options fbtft_device name=odroidc_tft32 rotate=270 gpios=reset:116,dc:115 speed=32000000 cs=0\n'
                                >
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modprobe.d/waveshare32.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 2965
                              stdin_parts: [
                                <'Section '>
                                <Id.Right_DoubleQuote '"'>
                                <Device>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'\tIdentifier      '>
                                <Id.Right_DoubleQuote '"'>
                                <FBDEV>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'\tDriver          '>
                                <Id.Right_DoubleQuote '"'>
                                <fbdev>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'\tOption          '>
                                <Id.Right_DoubleQuote '"'>
                                <fbdev>
                                <Id.Right_DoubleQuote '"'>
                                <' '>
                                <Id.Right_DoubleQuote '"'>
                                <'/dev/fb2'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'\n'>
                                <'\t#Option          '>
                                <Id.Right_DoubleQuote '"'>
                                <SwapbuffersWait>
                                <Id.Right_DoubleQuote '"'>
                                <' '>
                                <Id.Right_DoubleQuote '"'>
                                <true>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'EndSection\n'>
                                <'\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/X11/xorg.conf.d/99-waveshare32_xorg.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [2793 2815]
                )
              ]
              else_action: [(C {<Lcd_Panel_Not_Available_For_Device>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Lcd_Panel_Waveshare32_Disable
      body: 
        (BraceGroup
          children: [
            (C {<rm>} {<'/etc/X11/xorg.conf.d/99-waveshare32_calibration.conf'>})
            (C {<rm>} {<'/etc/X11/xorg.conf.d/99-waveshare32_xorg.conf'>})
            (C {<rm>} {<'/usr/share/applications/xinput_calibrator.desktop'>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 10>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<rm>} {<'/boot/overlays/waveshare32b.dtbo'>})
                    (C {<sed>} {<-i>} {(SQ <'s/ fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo//'>)} 
                      {<'/boot/cmdline.txt'>}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/Waveshare 32 LCD/d'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/dtoverlay=waveshare32b/d'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/dtoverlay=ads7846,cs=1,penirq=17/d'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} {(SQ <'/dtoverlay=w1-gpio-pullup,gpiopin=4,extpullup=1/d'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<mv>} {<'/usr/share/X11/99-fbturbo.conf'>} 
                      {<'/usr/share/X11/xorg.conf.d/99-fbturbo.conf'>}
                    )
                  ]
                  spids: [3016 3030]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DAmp
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 10>}
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 20>}
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<rm>} {<'/etc/systemd/system/con2fbmap.service'>})
                    (C {<systemctl>} {<daemon-reload>})
                    (C {<rm>} {<'/etc/modprobe.d/waveshare32.conf'>})
                    (C {<sed>} {<-i>} {(SQ <'/^spicc/d'>)} {<'/etc/modules'>})
                    (C {<sed>} {<-i>} {(SQ <'/^fbtft_device/d'>)} {<'/etc/modules'>})
                  ]
                  spids: [3133 3155]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Lcd_Panel_Odroidcloudshell_Enable
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.HereDoc
                      here_begin: {<_EOF_>}
                      here_end_span_id: 3229
                      stdin_parts: [<'options fbtft_device name=hktft9340 busnum=1 rotate=270\n'>]
                    )
                )
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/etc/modprobe.d/odroid-cloudshell.conf'>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <spi_s3c64xx>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/etc/modules'>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <fbtft_device>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/etc/modules'>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <fbtft_device>)}]
              redirects: [
                (redir
                  op: <Id.Redir_DGreat '>>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/etc/modules'>}
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: Lcd_Panel_Odroidcloudshell_Disable
      body: 
        (BraceGroup
          children: [
            (C {<rm>} {<'/etc/modprobe.d/odroid-cloudshell.conf'>})
            (C {<sed>} {<-i>} {(SQ <'/^spi_s3c64xx/d'>)} {<'/etc/modules'>})
            (C {<sed>} {<-i>} {(SQ <'/^fbtft_device/d'>)} {<'/etc/modules'>})
          ]
        )
    )
    (command.ShFunction
      name: Lcd_Panel_OdroidLCD35_Enable
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DAmp
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 10>}
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 20>}
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<Lcd_Panel_OdroidLCD35_Disable>})
                    (C {<Lcd_Panel_Xorg_All_Enable>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 3397
                              stdin_parts: [
                                <'options fbtft_device name=flexpfb rotate=90\n'>
                                <'options flexfb chip=ili9488\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modprobe.d/odroid-lcd35.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<cat>} {<'/etc/modules'>})
                                                      (C {<grep>} {<-ci>} {<-m1>} {(SQ <flexfb>)})
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (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 '$G_HW_MODEL')}
                                                  right: {<Id.Lit_Digits 11>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<cat>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DLess '<<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: 
                                            (redir_param.HereDoc
                                              here_begin: {<_EOF_>}
                                              here_end_span_id: 3468
                                              stdin_parts: [
                                                <'fbtft_device\n'>
                                                <'flexfb\n'>
                                                <'sx865x\n'>
                                              ]
                                            )
                                        )
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/etc/modules'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [3436 3450]
                                )
                              ]
                              else_action: [
                                (C {<sed>} {<-i>} {(SQ <'/^aml_i2c/d'>)} {<'/etc/modules'>})
                                (command.Simple
                                  words: [{<cat>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_DLess '<<'>
                                      loc: (redir_loc.Fd fd:0)
                                      arg: 
                                        (redir_param.HereDoc
                                          here_begin: {<_EOF_>}
                                          here_end_span_id: 3512
                                          stdin_parts: [
                                            <'aml_i2c\n'>
                                            <'pwm-meson\n'>
                                            <'pwm-ctrl\n'>
                                            <'fbtft_device\n'>
                                            <'flexfb\n'>
                                            <'sx865x\n'>
                                          ]
                                        )
                                    )
                                    (redir
                                      op: <Id.Redir_DGreat '>>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/etc/modules'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                          ]
                          spids: [3400 3428]
                        )
                      ]
                    )
                    (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 '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 11>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DLess '<<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: 
                                    (redir_param.HereDoc
                                      here_begin: {<_EOF_>}
                                      here_end_span_id: 3575
                                      stdin_parts: [
                                        <'[Unit]\n'>
                                        <'Description=Odroid LCD 3.5\n'>
                                        <'\n'>
                                        <'[Path]\n'>
                                        <'PathExists=/dev/fb2\n'>
                                        <'\n'>
                                        <'[Service]\n'>
                                        <'Type=oneshot\n'>
                                        <'RemainAfterExit=yes\n'>
                                        <'ExecStart=/usr/bin/setterm -blank 0 -powersave off\n'>
                                        <'ExecStart=/bin/con2fbmap 1 2\n'>
                                        <'StandardOutput=tty\n'>
                                        <'\n'>
                                        <'[Install]\n'>
                                        <'WantedBy=multi-user.target\n'>
                                      ]
                                    )
                                )
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/etc/systemd/system/odroid-lcd35.service'>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          spids: [3531 3545]
                        )
                      ]
                      else_action: [
                        (command.Simple
                          words: [{<cat>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_DLess '<<'>
                              loc: (redir_loc.Fd fd:0)
                              arg: 
                                (redir_param.HereDoc
                                  here_begin: {<_EOF_>}
                                  here_end_span_id: 3615
                                  stdin_parts: [
                                    <'[Unit]\n'>
                                    <'Description=Odroid LCD 3.5\n'>
                                    <'\n'>
                                    <'[Path]\n'>
                                    <'PathExists=/dev/fb2\n'>
                                    <'\n'>
                                    <'[Service]\n'>
                                    <'Type=oneshot\n'>
                                    <'RemainAfterExit=yes\n'>
                                    <
'ExecStart=/bin/bash -c \'echo 500000 > /sys/devices/platform/pwm-ctrl/freq0\'\n'
                                    >
                                    <
'ExecStart=/bin/bash -c \'echo 1 > /sys/devices/platform/pwm-ctrl/enable0\'\n'
                                    >
                                    <
'ExecStart=/bin/bash -c \'echo 1023 > /sys/devices/platform/pwm-ctrl/duty0\'\n'
                                    >
                                    <'ExecStart=/usr/bin/setterm -blank 0 -powersave off\n'>
                                    <'ExecStart=/bin/con2fbmap 1 2\n'>
                                    <'StandardOutput=tty\n'>
                                    <'\n'>
                                    <'[Install]\n'>
                                    <'WantedBy=multi-user.target\n'>
                                  ]
                                )
                            )
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/etc/systemd/system/odroid-lcd35.service'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                    )
                    (C {<systemctl>} {<enable>} {<odroid-lcd35.service>})
                    (C {<systemctl>} {<daemon-reload>})
                    (C {<rm>} {<'/etc/X11/xorg.conf.d/exynos.conf'>})
                    (C {<mkdir>} {<-p>} {<'/etc/X11/xorg.conf.d'>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 3691
                              stdin_parts: [
                                <'Section '>
                                <Id.Right_DoubleQuote '"'>
                                <Device>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'    Identifier    '>
                                <Id.Right_DoubleQuote '"'>
                                <'C fbdev'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'    Driver        '>
                                <Id.Right_DoubleQuote '"'>
                                <fbdev>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'    Option        '>
                                <Id.Right_DoubleQuote '"'>
                                <fbdev>
                                <Id.Right_DoubleQuote '"'>
                                <' '>
                                <Id.Right_DoubleQuote '"'>
                                <'/dev/fb2'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'EndSection\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/X11/xorg.conf.d/99-odroid-lcd35.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 3743
                              stdin_parts: [
                                <'Section '>
                                <Id.Right_DoubleQuote '"'>
                                <InputClass>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'        Identifier      '>
                                <Id.Right_DoubleQuote '"'>
                                <calibration>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'        MatchProduct    '>
                                <Id.Right_DoubleQuote '"'>
                                <'SX865X Touchscreen'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'        Option  '>
                                <Id.Right_DoubleQuote '"'>
                                <Calibration>
                                <Id.Right_DoubleQuote '"'>
                                <'   '>
                                <Id.Right_DoubleQuote '"'>
                                <'3854 155 3880 262'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'        Option  '>
                                <Id.Right_DoubleQuote '"'>
                                <SwapAxes>
                                <Id.Right_DoubleQuote '"'>
                                <'      '>
                                <Id.Right_DoubleQuote '"'>
                                <0>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'EndSection\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/X11/xorg.conf.d/99-calibration.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [3346 3368]
                )
              ]
              else_action: [(C {<Lcd_Panel_Not_Available_For_Device>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Lcd_Panel_OdroidLCD35_Disable
      body: 
        (BraceGroup
          children: [
            (C {<rm>} {<'/etc/X11/xorg.conf.d/99-calibration.conf'>})
            (C {<rm>} {<'/etc/modprobe.d/odroid-lcd35.conf'>})
            (C {<rm>} {<'/etc/systemd/system/odroid-lcd35.service'>})
            (C {<rm>} {<'/etc/X11/xorg.conf.d/99-odroid-lcd35.conf'>})
            (C {<systemctl>} {<daemon-reload>})
          ]
        )
    )
    (command.ShFunction
      name: I2c_Main
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<dpkg>} {<-l>})
                                                      (C {<grep>} {<-ci>} {<-m1>} {(SQ <i2c-tools>)})
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<G_DIETPI-NOTIFY>} {<2>} 
                              {
                                (DQ <'Installing Python-smbus, i2c-tools, pre-reqs.'> 
                                  <Id.Lit_BadBackslash '\\'> <'nPlease wait...'> <Id.Lit_BadBackslash '\\'> <n>
                                )
                              }
                            )
                            (C {<sleep>} {<1>})
                            (C {<G_AGI>} {<python-smbus>} {<i2c-tools>})
                          ]
                          spids: [3848 3878]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<sed>} {<-i>} {(SQ <'/i2c-bcm2708/d'>)} {<'/etc/modules'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<sed>} {<-i>} {(SQ <'/i2c-dev/d'>)} {<'/etc/modules'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <i2c-bcm2708>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <i2c-dev>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [
                        {<sed>}
                        {<-i>}
                        {(SQ <'/blacklist spi-bcm2708/d'>)}
                        {<'/etc/modprobe.d/raspi-blacklist.conf'>}
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [
                        {<sed>}
                        {<-i>}
                        {(SQ <'/blacklist i2c-bcm2708/d'>)}
                        {<'/etc/modprobe.d/raspi-blacklist.conf'>}
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/dtparam=i2c_arm=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=i2c_arm=on'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/dtparam=i2c1=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=i2c1=on'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (SQ 
                          <
'/^aSOFTWARE_INSTALL_STATE\\[72\\]=/c\\aSOFTWARE_INSTALL_STATE\\[72\\]=2'
                          >
                        )
                      } {<'/DietPi/dietpi/.installed'>}
                    )
                  ]
                  spids: [3823 3840]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<sed>} {<-i>} {(SQ <'/i2c-bcm2708/d'>)} {<'/etc/modules'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<sed>} {<-i>} {(SQ <'/i2c-dev/d'>)} {<'/etc/modules'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/dtparam=i2c_arm=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=i2c_arm=off'>)
                      } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} 
                      {(DQ <'/dtparam=i2c1=/c'> <Id.Lit_BadBackslash '\\'> <'dtparam=i2c1=off'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/i2c_arm_baudrate=/c'> <Id.Lit_BadBackslash '\\'> 
                          <'i2c_arm_baudrate=100000'>
                        )
                      } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                  ]
                  spids: [4067 4084]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_EqualTilde
                                      left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')}
                                      right: 
                                        {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> 
                                          <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                                        }
                                    )
                                )
                                (command.DParen
                                  child: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')}
                                      right: {<Id.Lit_Digits 2>}
                                    )
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/i2c_arm_baudrate=/c'> <Id.Lit_BadBackslash '\\'> <'i2c_arm_baudrate='> 
                          (word_part.ArithSub
                            anode: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Star
                                left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')}
                                right: {<Id.Lit_Digits 1000>}
                              )
                          )
                        )
                      } {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE)
                          op: assign_op.PlusEqual
                          rhs: {(DQ <Khz>)}
                          spids: [4235]
                        )
                      ]
                    )
                  ]
                  spids: [4168 4201]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Bluetooth_Main
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'aBLUETOOTH_MODULES='> (sh_array_literal left:<Id.Op_LParen _>)}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES)
                  op: assign_op.Equal
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <bluetooth>)}])}
                  spids: [4286]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <bnep>)}])}
                  spids: [4294]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <btbcm>)}])}
                  spids: [4303]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <rfcomm>)}])}
                  spids: [4315]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <hidp>)}])}
                  spids: [4326]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aBLUETOOTH_MODULES)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <hci_uart>)}])}
                  spids: [4338]
                )
              ]
            )
            (command.Simple
              words: [{<rm>} {<'/etc/modprobe.d/disable_bt.conf'>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 61>}
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 62>}
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [{<systemctl>} {<stop>} {<brcm_patchram_plus>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              words: [{<systemctl>} {<disable>} {<brcm_patchram_plus>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                          spids: [4386 4408]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Less
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 10>}
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 52>}
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<systemctl>} {<stop>} {<hciuart>})
                            (C {<systemctl>} {<disable>} {<hciuart>})
                          ]
                          spids: [4447 4469]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<systemctl>} {<stop>} {<bluetooth>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<systemctl>} {<disable>} {<bluetooth>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: <Id.Lit_ArithVarLike i>
                          right: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Minus
                                    left: 
                                      {
                                        (braced_var_sub
                                          token: <Id.VSub_Name aBLUETOOTH_MODULES>
                                          prefix_op: (Id.VSub_Pound)
                                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                        )
                                      }
                                    right: {<Id.Lit_Digits 1>}
                                  )
                              )
                            }
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_GreatEqual
                          left: <Id.Lit_ArithVarLike i>
                          right: {<Id.Lit_Digits 0>}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDMinus
                          child: <Id.Lit_ArithVarLike i>
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [
                                {<modprobe>}
                                {<-rf>}
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name aBLUETOOTH_MODULES>
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName '$i')}
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ <'blacklist '> 
                                    (braced_var_sub
                                      token: <Id.VSub_Name aBLUETOOTH_MODULES>
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName '$i')}
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/etc/modprobe.d/disable_bt.conf'>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_GreatEqual
                                          left: {($ Id.VSub_DollarName '$G_DIETPI_INSTALL_STAGE')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<G_AGP>} {<bluetooth>} {<bluez-firmware>}) (C {<G_AGA>})]
                          spids: [4603 4617]
                        )
                      ]
                    )
                  ]
                  spids: [4361 4378]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_AG_CHECK_INSTALL_PREREQ>} {<bluetooth>} {<bluez-firmware>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Less
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 10>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<G_AG_CHECK_INSTALL_PREREQ>} {<pi-bluetooth>})]
                          spids: [4672 4686]
                        )
                      ]
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: <Id.Lit_ArithVarLike i>
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: <Id.Lit_ArithVarLike i>
                          right: 
                            {
                              (braced_var_sub
                                token: <Id.VSub_Name aBLUETOOTH_MODULES>
                                prefix_op: (Id.VSub_Pound)
                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              )
                            }
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike i>
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [
                                {<modprobe>}
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name aBLUETOOTH_MODULES>
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName '$i')}
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 61>}
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 62>}
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [{<systemctl>} {<enable>} {<brcm_patchram_plus>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                            (C {<G_RUN_CMD>} {<systemctl>} {<start>} {<brcm_patchram_plus>})
                          ]
                          spids: [4758 4780]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<systemctl>} {<enable>} {<bluetooth>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<G_RUN_CMD>} {<systemctl>} {<start>} {<bluetooth>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DPipe
                                          left: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_Less
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 10>}
                                            )
                                          right: 
                                            (arith_expr.Binary
                                              op_id: Id.Arith_DEqual
                                              left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                              right: {<Id.Lit_Digits 52>}
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<systemctl>} {<enable>} {<hciuart>})
                            (C {<G_RUN_CMD>} {<systemctl>} {<start>} {<hciuart>})
                          ]
                          spids: [4834 4856]
                        )
                      ]
                    )
                  ]
                  spids: [4640 4657]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
            (C {<unset>} {<aBLUETOOTH_MODULES>})
          ]
        )
    )
    (command.ShFunction
      name: Prefer_IPversion
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <ipv4>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {(SQ <'Acquire::ForceIPv4 "true";'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>})
                        (C {<sed>} {<-i>} 
                          {(SQ <'/^[[:blank:]]*prefer-family =/c\\prefer-family = IPv4'>)} {<'/etc/wgetrc'>}
                        )
                        (C {<grep>} {<-q>} {(SQ <'^[[:blank:]#;]*prefer-family ='>)} {<'/etc/wgetrc'>})
                        (C {<sed>} {<-i>} 
                          {(SQ <'/^[[:blank:]#;]*prefer-family =/c\\prefer-family = IPv4'>)} {<'/etc/wgetrc'>}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'prefer-family = IPv4'>)}]
                          redirects: [
                            (redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/etc/wgetrc'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                    )
                  ]
                  spids: [4923 4940]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <ipv6>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<rm>} {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>})
                        (C {<sed>} {<-i>} 
                          {(SQ <'/^[[:blank:]]*prefer-family =/c\\prefer-family = IPv6'>)} {<'/etc/wgetrc'>}
                        )
                        (C {<grep>} {<-q>} {(SQ <'^[[:blank:]#;]*prefer-family ='>)} {<'/etc/wgetrc'>})
                        (C {<sed>} {<-i>} 
                          {(SQ <'/^[[:blank:]#;]*prefer-family =/c\\prefer-family = IPv6'>)} {<'/etc/wgetrc'>}
                        )
                        (command.Simple
                          words: [{<echo>} {(SQ <'prefer-family = IPv6'>)}]
                          redirects: [
                            (redir
                              op: <Id.Redir_DGreat '>>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/etc/wgetrc'>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                    )
                  ]
                  spids: [5027 5044]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <auto>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<rm>} {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>})
                        (C {<sed>} {<-i>} {(SQ <'s/^[[:blank:]]*prefer-family =/#prefer-family =/'>)} 
                          {<'/etc/wgetrc'>}
                        )
                      ]
                    )
                  ]
                  spids: [5129 5146]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
            (C {<sed>} {<-i>} 
              {
                (DQ <'/^CONFIG_PREFER_IPVERSION=/c'> <Id.Lit_BadBackslash '\\'> 
                  <'CONFIG_PREFER_IPVERSION='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                )
              } {<'/DietPi/dietpi.txt'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: Wifi_Modules_Main
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'aWIFI_MODULES='> (sh_array_literal left:<Id.Op_LParen _>)})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWIFI_MODULES)
                  op: assign_op.Equal
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <cfg80211>)}])}
                  spids: [5246]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWIFI_MODULES)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <brcmfmac>)}])}
                  spids: [5263]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWIFI_MODULES)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <brcmutil>)}])}
                  spids: [5274]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWIFI_MODULES)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <ap6211>)}])}
                  spids: [5290]
                )
              ]
            )
            (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 '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 32>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:aWIFI_MODULES)
                          op: assign_op.PlusEqual
                          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <xradio_wlan>)}])}
                          spids: [5324]
                        )
                      ]
                    )
                  ]
                  spids: [5306 5320]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 34>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:aWIFI_MODULES)
                          op: assign_op.PlusEqual
                          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <8189es>)}])}
                          spids: [5355]
                        )
                      ]
                    )
                  ]
                  spids: [5337 5351]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 40>}
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 52>}
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:aWIFI_MODULES)
                          op: assign_op.PlusEqual
                          rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <8723bs>)}])}
                          spids: [5394]
                        )
                      ]
                    )
                  ]
                  spids: [5368 5390]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DPipe
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 35>}
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_DEqual
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 64>}
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {<'/boot/dtb'>} 
                                      {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:aWIFI_MODULES)
                                  op: assign_op.PlusEqual
                                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <dhd>)}])}
                                  spids: [5454]
                                )
                              ]
                            )
                          ]
                          spids: [5437 5450]
                        )
                      ]
                    )
                  ]
                  spids: [5407 5429]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:aWIFI_MODULES)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(DQ <bcmdhd>)}])}
                  spids: [5475]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<rm>} {<'/etc/modprobe.d/disable_wifi.conf'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: <Id.Lit_ArithVarLike i>
                          right: 
                            {
                              (word_part.ArithSub
                                anode: 
                                  (arith_expr.Binary
                                    op_id: Id.Arith_Minus
                                    left: 
                                      {
                                        (braced_var_sub
                                          token: <Id.VSub_Name aWIFI_MODULES>
                                          prefix_op: (Id.VSub_Pound)
                                          bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                        )
                                      }
                                    right: {<Id.Lit_Digits 1>}
                                  )
                              )
                            }
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_GreatEqual
                          left: <Id.Lit_ArithVarLike i>
                          right: {<Id.Lit_Digits 0>}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDMinus
                          child: <Id.Lit_ArithVarLike i>
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [
                                {<modprobe>}
                                {<-rf>}
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name aWIFI_MODULES>
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName '$i')}
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ <'blacklist '> 
                                    (braced_var_sub
                                      token: <Id.VSub_Name aWIFI_MODULES>
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName '$i')}
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/etc/modprobe.d/disable_wifi.conf'>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                        )
                    )
                    (command.Simple
                      words: [{<systemctl>} {<disable>} {<wifi_disable_powersave>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<rm>} {<'/etc/systemd/system/wifi_disable_powersave.service'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [5488 5505]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_AG_CHECK_INSTALL_PREREQ>} {<crda>} {<firmware-atheros>} {<firmware-brcm80211>} 
                      {<firmware-ralink>} {<iw>} {<rfkill>} {<wireless-tools>} {<wpasupplicant>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_NEqual
                                          left: {($ Id.VSub_QMark '$?')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [5676 5690]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<rm>} {<'/etc/modprobe.d/disable_wifi.conf'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <'options 8192cu rtw_power_mgnt=0'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modprobe.d/8192cu.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <'options 8188eu rtw_power_mgnt=0'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modprobe.d/8188eu.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <'options 8189es rtw_power_mgnt=0'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modprobe.d/8189es.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <'options 8723bs rtw_power_mgnt=0'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modprobe.d/8723bs.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <'options wlan_8192eu rtw_power_mgnt=0'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modprobe.d/wlan_8192eu.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: <Id.Lit_ArithVarLike i>
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_Less
                          left: <Id.Lit_ArithVarLike i>
                          right: 
                            {
                              (braced_var_sub
                                token: <Id.VSub_Name aWIFI_MODULES>
                                prefix_op: (Id.VSub_Pound)
                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              )
                            }
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike i>
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Simple
                              words: [
                                {<modprobe>}
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name aWIFI_MODULES>
                                      bracket_op: 
                                        (bracket_op.ArrayIndex
                                          expr: {($ Id.VSub_DollarName '$i')}
                                        )
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Great '2>'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                        )
                    )
                    (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Please wait, enabling WiFi Modules...'>)})
                    (C {<sleep>} {<3>})
                    (C {<'/DietPi/dietpi/func/obtain_network_details'>})
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 5910
                              stdin_parts: [
                                <'[Unit]\n'>
                                <'Description=Disable WiFi power management\n'>
                                <'After=network.target network-online.target\n'>
                                <'\n'>
                                <'[Service]\n'>
                                <'Type=simple\n'>
                                <'RemainAfterExit=yes\n'>
                                <'ExecStart=/bin/bash -c \'sleep 20;iwconfig wlan'>
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.network'>})
                                )
                                <' power off\'\n'>
                                <'\n'>
                                <'[Install]\n'>
                                <'WantedBy=multi-user.target\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/systemd/system/wifi_disable_powersave.service'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<systemctl>} {<daemon-reload>})
                    (C {<systemctl>} {<enable>} {<wifi_disable_powersave>})
                    (C {<systemctl>} {<start>} {<wifi_disable_powersave>})
                  ]
                  spids: [5632 5649]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <onboard_enable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<rm>} {<'/etc/modprobe.d/disable_wifi_rpi3_onboard.conf'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [5932 5949]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <onboard_disable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <'blacklist brcmfmac'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modprobe.d/disable_wifi_rpi3_onboard.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <'blacklist brcmutil'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modprobe.d/disable_wifi_rpi3_onboard.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [5972 5989]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
            (C {<unset>} {<aWIFI_MODULES>})
          ]
        )
    )
    (command.ShFunction
      name: Wifi_Creds_Main
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} 
                                      {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <set>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'Wifi_KEYMGR='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_NET_WIFI_KEYMGR='>)} 
                                          {<'/DietPi/dietpi.txt'>}
                                        )
                                        (C {<sed>} {(SQ <'s/.*=//'>)})
                                      ]
                                      negated: F
                                    )
                                )
                              }
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'Wifi_KEY='> 
                                (DQ 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_NET_WIFI_KEY='>)} 
                                            {<'/DietPi/dietpi.txt'>}
                                          )
                                          (C {<sed>} {(SQ <'s/.*=//'>)})
                                        ]
                                        negated: F
                                      )
                                  )
                                )
                              }
                            )
                            (C {<local>} 
                              {<Id.Lit_VarLike 'Wifi_SSID='> 
                                (DQ 
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (command.Pipeline
                                        children: [
                                          (C {<grep>} {<-m1>} {(SQ <'^AUTO_SETUP_NET_WIFI_SSID='>)} 
                                            {<'/DietPi/dietpi.txt'>}
                                          )
                                          (C {<sed>} {(SQ <'s/.*=//'>)})
                                        ]
                                        negated: F
                                      )
                                  )
                                )
                              }
                            )
                            (C {<mkdir>} {<-p>} {<'/etc/wpa_supplicant'>})
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DLess '<<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: 
                                    (redir_param.HereDoc
                                      here_begin: {<_EOF_>}
                                      here_end_span_id: 6225
                                      stdin_parts: [
                                        <'country='>
                                        (command_sub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<grep>} {<-m1>} {(SQ <'^CONFIG_WIFI_COUNTRY_CODE='>)} 
                                                  {<'/DietPi/dietpi.txt'>}
                                                )
                                                (C {<sed>} {(SQ <'s/.*=//'>)})
                                              ]
                                              negated: F
                                            )
                                        )
                                        <'\n'>
                                        <
'ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev\n'
                                        >
                                        <'update_config=1\n'>
                                        <'\n'>
                                        <'network={\n'>
                                        <'    ssid='>
                                        <Id.Right_DoubleQuote '"'>
                                        ($ Id.VSub_DollarName '$Wifi_SSID')
                                        <Id.Right_DoubleQuote '"'>
                                        <'\n'>
                                      ]
                                    )
                                )
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/etc/wpa_supplicant/wpa_supplicant.conf'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} 
                                              {(DQ ($ Id.VSub_DollarName '$Wifi_KEYMGR'))} {<Id.Lit_Equals '='>} {(DQ <NONE>)} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<cat>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DLess '<<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: 
                                            (redir_param.HereDoc
                                              here_begin: {<_EOF_>}
                                              here_end_span_id: 6268
                                              stdin_parts: [
                                                <'    key_mgmt='>
                                                ($ Id.VSub_DollarName '$Wifi_KEYMGR')
                                                <'\n'>
                                                <'}\n'>
                                              ]
                                            )
                                        )
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/etc/wpa_supplicant/wpa_supplicant.conf'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [6232 6249]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} 
                                              {(DQ ($ Id.VSub_DollarName '$Wifi_KEYMGR'))} {<Id.Lit_Equals '='>} {(DQ <WPA-PSK>)} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<cat>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DLess '<<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: 
                                            (redir_param.HereDoc
                                              here_begin: {<_EOF_>}
                                              here_end_span_id: 6311
                                              stdin_parts: [
                                                <'    key_mgmt='>
                                                ($ Id.VSub_DollarName '$Wifi_KEYMGR')
                                                <'\n'>
                                                <'    psk='>
                                                <Id.Right_DoubleQuote '"'>
                                                ($ Id.VSub_DollarName '$Wifi_KEY')
                                                <Id.Right_DoubleQuote '"'>
                                                <'\n'>
                                                <'}\n'>
                                              ]
                                            )
                                        )
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/etc/wpa_supplicant/wpa_supplicant.conf'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [6270 6287]
                                )
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} 
                                              {(DQ ($ Id.VSub_DollarName '$Wifi_KEYMGR'))} {<Id.Lit_Equals '='>} {(DQ <WEP>)} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:Wifi_KEYMGR)
                                          op: assign_op.Equal
                                          rhs: {(SQ <NONE>)}
                                          spids: [6335]
                                        )
                                      ]
                                    )
                                    (command.Simple
                                      words: [{<cat>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DLess '<<'>
                                          loc: (redir_loc.Fd fd:0)
                                          arg: 
                                            (redir_param.HereDoc
                                              here_begin: {<_EOF_>}
                                              here_end_span_id: 6362
                                              stdin_parts: [
                                                <'    key_mgmt='>
                                                ($ Id.VSub_DollarName '$Wifi_KEYMGR')
                                                <'\n'>
                                                <'    wep_key0='>
                                                <Id.Right_DoubleQuote '"'>
                                                ($ Id.VSub_DollarName '$Wifi_KEY')
                                                <Id.Right_DoubleQuote '"'>
                                                <'\n'>
                                                <'    wep_tx_keyidx=0\n'>
                                                <'}\n'>
                                              ]
                                            )
                                        )
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/etc/wpa_supplicant/wpa_supplicant.conf'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [6314 6331]
                                )
                              ]
                            )
                          ]
                          spids: [6079 6096]
                        )
                      ]
                      else_action: [(C {<Unknown_Input_Mode>})]
                    )
                  ]
                  spids: [6062 6075]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
          ]
        )
    )
    (command.ShFunction
      name: Wifi_Countrycode_Main
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<echo>} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))}
                                      )
                                      (C {<tr>} {(SQ <'[:lower:]'>)} {(SQ <'[:upper:]'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [6428]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {
                        (DQ <'/^CONFIG_WIFI_COUNTRY_CODE=/c'> <Id.Lit_BadBackslash '\\'> 
                          <'CONFIG_WIFI_COUNTRY_CODE='> ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                        )
                      } {<'/DietPi/dietpi.txt'>}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-f>} 
                                      {<'/etc/wpa_supplicant/wpa_supplicant.conf'>} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (DQ <'/^country=/c'> <Id.Lit_BadBackslash '\\'> <'country='> 
                                  ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                                )
                              } {<'/etc/wpa_supplicant/wpa_supplicant.conf'>}
                            )
                          ]
                          spids: [6476 6487]
                        )
                      ]
                    )
                  ]
                  spids: [6407 6420]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAX_SERIAL_CONSOLES)
          op: assign_op.Equal
          rhs: {<2>}
          spids: [6539]
        )
      ]
    )
    (command.ShFunction
      name: Serial_Main
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <enable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {(DQ <'Enabling known serial-getty services, please wait...'>)}
                    )
                    (C {<systemctl>} {<enable>} {<serial-getty> <Id.Lit_At '@'> <.service>})
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: <Id.Lit_ArithVarLike i>
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: <Id.Lit_ArithVarLike i>
                          right: {($ Id.VSub_DollarName '$MAX_SERIAL_CONSOLES')}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike i>
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<systemctl>} {<enable>} 
                              {<serial-getty> <Id.Lit_Splice '@ttyAMA'> 
                                (DQ ($ Id.VSub_DollarName '$i')) <.service>
                              }
                            )
                            (C {<systemctl>} {<enable>} 
                              {<serial-getty> <Id.Lit_Splice '@ttySAC'> 
                                (DQ ($ Id.VSub_DollarName '$i')) <.service>
                              }
                            )
                            (C {<systemctl>} {<enable>} 
                              {<serial-getty> <Id.Lit_Splice '@ttyS'> (DQ ($ Id.VSub_DollarName '$i')) 
                                <.service>
                              }
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Less
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 10>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Unary
                                                  op_id: Id.Arith_Bang
                                                  child: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<cat>} {<'/boot/cmdline.txt'>})
                                                              (C {<grep>} {<-ci>} {<-m1>} 
                                                                {(SQ <'console=ttyAMA0,115200 '>)}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<sed>} {<-i>} 
                                      {(SQ <'s/console=tty1 /console=tty1 console=ttyAMA0,115200 /'>)} {<'/boot/cmdline.txt'>}
                                    )
                                  ]
                                  spids: [6700 6728]
                                )
                              ]
                            )
                            (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 '$G_HW_MODEL')}
                                                  right: {<Id.Lit_Digits 3>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\core_freq=250'>)} 
                                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                                    )
                                  ]
                                  spids: [6748 6762]
                                )
                              ]
                            )
                          ]
                          spids: [6682 6696]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 10>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (SQ 
                                  <
'/^setenv condev/c\\setenv condev "console=tty0 console=ttyS0,115200n8"'
                                  >
                                )
                              } {<'/DietPi/boot.ini'>}
                            )
                          ]
                          spids: [6792 6806]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 11>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Unary
                                                  op_id: Id.Arith_Bang
                                                  child: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<cat>} {<'/DietPi/boot.ini'>})
                                                              (C {<grep>} {<-ci>} {<-m1>} 
                                                                {(SQ <'console=ttySAC2,115200n8 '>)}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<sed>} {<-i>} 
                                      {
                                        (SQ 
                                          <
's/console=tty1 /console=tty1 console=ttySAC2,115200n8 /'
                                          >
                                        )
                                      } {<'/DietPi/boot.ini'>}
                                    )
                                  ]
                                  spids: [6844 6872]
                                )
                              ]
                            )
                          ]
                          spids: [6826 6840]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 12>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} 
                              {
                                (SQ 
                                  <
'/^setenv condev/c\\setenv condev "console=tty0 console=ttyS0,115200n8"'
                                  >
                                )
                              } {<'/DietPi/boot.ini'>}
                            )
                          ]
                          spids: [6896 6910]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 40>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Unary
                                                  op_id: Id.Arith_Bang
                                                  child: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<cat>} {<'/DietPi/uEnv.txt'>})
                                                              (C {<grep>} {<-ci>} {<-m1>} 
                                                                {(SQ <'console=ttyS0,115200n8 '>)}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<sed>} {<-i>} 
                                      {(SQ <'s/console=tty0 /console=tty0 console=ttyS0,115200n8 /'>)} {<'/DietPi/uEnv.txt'>}
                                    )
                                  ]
                                  spids: [6948 6976]
                                )
                              ]
                            )
                          ]
                          spids: [6930 6944]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/^CONFIG_SERIAL_CONSOLE_ENABLE=/c\\CONFIG_SERIAL_CONSOLE_ENABLE=1'>)} {<'/DietPi/dietpi.txt'>}
                    )
                  ]
                  spids: [6562 6579]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} 
                              {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <disable>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<2>} 
                      {(DQ <'Disabling known serial-getty services, please wait...'>)}
                    )
                    (C {<systemctl>} {<disable>} {<serial-getty> <Id.Lit_At '@'> <.service>})
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: <Id.Lit_ArithVarLike i>
                          right: {<Id.Lit_Digits 0>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: <Id.Lit_ArithVarLike i>
                          right: {($ Id.VSub_DollarName '$MAX_SERIAL_CONSOLES')}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Node_PostDPlus
                          child: <Id.Lit_ArithVarLike i>
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<systemctl>} {<disable>} 
                              {<serial-getty> <Id.Lit_Splice '@ttyAMA'> 
                                (DQ ($ Id.VSub_DollarName '$i')) <.service>
                              }
                            )
                            (C {<systemctl>} {<disable>} 
                              {<serial-getty> <Id.Lit_Splice '@ttySAC'> 
                                (DQ ($ Id.VSub_DollarName '$i')) <.service>
                              }
                            )
                            (C {<systemctl>} {<disable>} 
                              {<serial-getty> <Id.Lit_Splice '@ttyS'> (DQ ($ Id.VSub_DollarName '$i')) 
                                <.service>
                              }
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_Less
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 10>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} {(SQ <'s/console=ttyAMA0,115200 //'>)} 
                              {<'/boot/cmdline.txt'>}
                            )
                            (C {<sed>} {<-i>} {(SQ <'s/console=ttyS0,115200 //'>)} 
                              {<'/boot/cmdline.txt'>}
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DParen
                                              child: 
                                                (arith_expr.Binary
                                                  op_id: Id.Arith_DAmp
                                                  left: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                                      right: {<Id.Lit_Digits 3>}
                                                    )
                                                  right: 
                                                    (arith_expr.Binary
                                                      op_id: Id.Arith_DEqual
                                                      left: 
                                                        {
                                                          (command_sub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            child: 
                                                              (command.Pipeline
                                                                children: [
                                                                  (C {<cat>} 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$FP_RPI_CONFIG'
                                                                        )
                                                                      )
                                                                    }
                                                                  )
                                                                  (C {<grep>} {<-m1>} 
                                                                    {(SQ <'core_freq='>)}
                                                                  )
                                                                  (C {<sed>} {(SQ <'s/.*=//'>)})
                                                                ]
                                                                negated: F
                                                              )
                                                          )
                                                        }
                                                      right: {<Id.Lit_Digits 250>}
                                                    )
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<sed>} {<-i>} {(SQ <'/core_freq=/c\\#core_freq=400'>)} 
                                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                                    )
                                  ]
                                  spids: [7194 7241]
                                )
                              ]
                            )
                          ]
                          spids: [7140 7154]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 10>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} {(SQ <'/^setenv condev/c\\setenv condev "console=tty0"'>)} 
                              {<'/DietPi/boot.ini'>}
                            )
                          ]
                          spids: [7267 7281]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 11>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} {(SQ <'s/console=ttySAC2,115200n8 //'>)} 
                              {<'/DietPi/boot.ini'>}
                            )
                          ]
                          spids: [7301 7315]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 12>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} {(SQ <'/^setenv condev/c\\setenv condev "console=tty0"'>)} 
                              {<'/DietPi/boot.ini'>}
                            )
                          ]
                          spids: [7335 7349]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Binary
                                          op_id: Id.Arith_DEqual
                                          left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 40>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} {(SQ <'s/console=ttyS0,115200n8 //'>)} 
                              {<'/DietPi/uEnv.txt'>}
                            )
                          ]
                          spids: [7369 7383]
                        )
                      ]
                    )
                    (C {<sed>} {<-i>} 
                      {(SQ <'/^CONFIG_SERIAL_CONSOLE_ENABLE=/c\\CONFIG_SERIAL_CONSOLE_ENABLE=0'>)} {<'/DietPi/dietpi.txt'>}
                    )
                  ]
                  spids: [7025 7042]
                )
              ]
              else_action: [(C {<Unknown_Input_Mode>})]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [7449]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [7453]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ALSA_EQ_ENABLED)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [7457]
        )
      ]
    )
    (command.ShFunction
      name: Soundcard_Reset_All
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7473]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7477]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ALSA_EQ_ENABLED)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [7481]
                )
              ]
            )
            (command.Simple
              words: [{<rm>} {<'/etc/asound.conf'>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Unary
                                  op_id: Id.Arith_Bang
                                  child: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<dpkg>} {<--get-selections>})
                                              (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^alsa-utils'>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Installing alsa-utils. Please wait...'>)})
                    (C {<G_AGI>} {<alsa-utils>})
                  ]
                  spids: [7504 7532]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 10>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Soundcard_Reset_RPi>})]
                  spids: [7563 7577]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DAmp
                                  left: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_GreatEqual
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 10>}
                                    )
                                  right: 
                                    (arith_expr.Binary
                                      op_id: Id.Arith_Less
                                      left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                      right: {<Id.Lit_Digits 20>}
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Soundcard_Reset_Odroid>})]
                  spids: [7589 7611]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 32>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Soundcard_Reset_H2>})]
                  spids: [7623 7637]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$G_HW_CPUID')}
                                  right: {<Id.Lit_Digits 1>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Soundcard_Reset_H3>})]
                  spids: [7649 7663]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 40>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Soundcard_Reset_PineA64>})]
                  spids: [7675 7689]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 51>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Soundcard_Reset_BPi_Pro>})]
                  spids: [7701 7715]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 70>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Soundcard_Reset_SparkySBC>})]
                  spids: [7727 7741]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 52>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<Soundcard_Reset_Asus>})]
                  spids: [7753 7767]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Soundcard_Reset_RPi
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_DEqual
                                  left: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<cat>} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))})
                                              (C {<grep>} {<-ci>} {<-m1>} {(SQ <'dtparam=audio='>)})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  right: {<Id.Lit_Digits 0>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <'dtparam=audio=off'>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [7798 7830]
                )
              ]
              else_action: [
                (C {<sed>} {<-i>} {(SQ <'/dtparam=audio=/c\\dtparam=audio=off'>)} 
                  {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                )
              ]
            )
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=rpi-bcm2835/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=hifiberry/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=iqaudio/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=justboom/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=allo-/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))})
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=rpi-dac/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=i-sabre-k2m/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=dionaudio/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=googlevoicehat-soundcard/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (C {<sed>} {<-i>} {(SQ <'/dtoverlay=i2s-mmap/d'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (C {<sed>} {<-i>} {(SQ <'/dtparam=i2s=/d'>)} {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))})
            (command.Simple
              words: [{<echo>} {<-e>} {(DQ <'blacklist snd-bcm2835'>)}]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/etc/modprobe.d/rpi-bcm2708.conf'>}
                )
              ]
              do_fork: T
            )
            (C {<sed>} {<-i>} {(SQ <'/avoid_pwm_pll=/c\\avoid_pwm_pll=1'>)} 
              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
            )
            (command.Simple
              words: [{<systemctl>} {<disable>} {<rpi-bcm2835_forced_3.5mm.service>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<rm>} {<'/etc/systemd/system/rpi-bcm2835_forced_3.5mm.service'>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
            (C {<systemctl>} {<daemon-reload>})
          ]
        )
    )
    (command.ShFunction
      name: Soundcard_Reset_Odroid
      body: 
        (BraceGroup
          children: [
            (C {<sed>} {<-i>} {(SQ <'/snd-soc-pcm5102/d'>)} {<'/etc/modules'>})
            (C {<sed>} {<-i>} {(SQ <'/snd-soc-odroid-dac/d'>)} {<'/etc/modules'>})
            (C {<sed>} {<-i>} {(SQ <'/snd-soc-pcm512x/d'>)} {<'/etc/modules'>})
            (C {<sed>} {<-i>} {(SQ <'/snd-soc-pcm512x-i2c/d'>)} {<'/etc/modules'>})
            (C {<sed>} {<-i>} {(SQ <'/snd-soc-odroid-dac2/d'>)} {<'/etc/modules'>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {<'/etc/systemd/system/odroid-hifishield2.service'>} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<rm>} {<'/etc/systemd/system/odroid-hifishield2.service'>})
                    (C {<systemctl>} {<daemon-reload>})
                  ]
                  spids: [8163 8174]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Soundcard_Reset_H2
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<amixer>} {<set>} {<-c>} {<0>} {(SQ <'Audio lineout'>)} {<unmute>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: Soundcard_Reset_H3
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<amixer>} {<set>} {<-c>} {<0>} {(SQ <'Audio lineout'>)} {<mute>}]
              redirects: [
                (redir
                  op: <Id.Redir_AndGreat '&>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8263]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Soundcard_Reset_Asus
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8283]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: Soundcard_Reset_SparkySBC
      body: 
        (BraceGroup
          children: [
            (C {<sed>} {<-i>} {(SQ <'/snd-soc-allo-piano-dac/d'>)} {<'/etc/modules'>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [8315]
                )
              ]
            )
            (C {<amixer>} {<-c>} {<0>} {<sset>} {(SQ <'audio output mode switch'>)} {(SQ <hdmi>)})
            (C {<sed>} {<-i>} {(SQ <'s/aotg.aotg1_speed=1/aotg.aotg1_speed=0/'>)} {<'/DietPi/uEnv.txt'>})
          ]
        )
    )
    (command.ShFunction
      name: Soundcard_Reset_PineA64
      body: (BraceGroup children:[(C {<rm>} {<'/etc/modules-load.d/pine64-audiojack.conf'>})])
    )
    (command.ShFunction
      name: Soundcard_Reset_BPi_Pro
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [8381]
                )
              ]
            )
            (C {<amixer>} {<sset>} {(SQ <'Left Mixer Left DAC'>)} {<off>})
            (C {<amixer>} {<sset>} {(SQ <'Power Amplifier'>)} {<62>})
            (C {<amixer>} {<sset>} {(SQ <'Power Amplifier DAC'>)} {<on>})
            (C {<amixer>} {<sset>} {(SQ <'Power Amplifier Mixer'>)} {<off>})
            (C {<amixer>} {<sset>} {(SQ <'Power Amplifier Mute'>)} {<on>})
            (C {<amixer>} {<sset>} {(SQ <'Right Mixer Left DAC'>)} {<off>})
            (C {<amixer>} {<sset>} {(SQ <'Right Mixer Right DAC'>)} {<off>})
          ]
        )
    )
    (command.ShFunction
      name: Soundcard_Main
      body: 
        (BraceGroup
          children: [
            (C {<Soundcard_Reset_All>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')}
                                  right: {<Id.Lit_Other '*'> <Id.BoolBinary_eq -eq>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ALSA_EQ_ENABLED)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [8517]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:INPUT_DEVICE_VALUE)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<echo>} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))}
                                      )
                                      (C {<sed>} {(SQ <'s/-eq//g'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [8526]
                        )
                      ]
                    )
                  ]
                  spids: [8499 8513]
                )
              ]
            )
            (C {<sed>} {<-i>} 
              {
                (DQ <'/^CONFIG_SOUNDCARD=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_SOUNDCARD='> 
                  ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                )
              } {<'/DietPi/dietpi.txt'>}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DParen
                              child: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_Less
                                  left: {($ Id.VSub_DollarName '$G_HW_MODEL')}
                                  right: {<Id.Lit_Digits 10>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<sed>} {<-i>} {(SQ <'/dtparam=audio=/c\\dtparam=audio=on'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                  ]
                  spids: [8574 8588]
                )
              ]
            )
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))}
              arms: [
                (case_arm
                  pat_list: [{<hw> <Id.Lit_Colon ':'> <Id.Lit_Star '*'>}]
                  action: [
                    (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'split='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))})
                                (C {<sed>} {(SQ <'s/,/ /g'>)})
                                (C {<sed>} {(SQ <'s/hw://g'>)})
                                (C {<sed>} {(SQ <'s/-eq//g'>)})
                              ]
                              negated: F
                            )
                        )
                      }
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$split'))})
                                      (C {<awk>} {(SQ <'{print $1}'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [8691]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$split'))})
                                      (C {<awk>} {(SQ <'{print $2}'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [8712]
                        )
                      ]
                    )
                  ]
                  spids: [8637 8640 8734 -1]
                )
                (case_arm
                  pat_list: [{<usb-dac>}]
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'usb_detection_card_index='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: 
                            (command.Pipeline
                              children: [
                                (C {<aplay>} {<-l>})
                                (C {<grep>} {<-m1>} {(SQ <'USB Audio'>)})
                                (C {<awk>} {(SQ <'{print $2}'>)})
                                (C {<sed>} {(SQ <'s/://g'>)})
                              ]
                              negated: F
                            )
                        )
                      }
                    )
                    (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_DollarName '$usb_detection_card_index')}
                                          right: 
                                            {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> 
                                              <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'>
                                            }
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$usb_detection_card_index')}
                                  spids: [8807]
                                )
                              ]
                            )
                          ]
                          spids: [8783 8803]
                        )
                      ]
                      else_action: [
                        (C {<G_DIETPI-NOTIFY>} {<1>} {(DQ <'Unable to find a USB-DAC on system.'>)})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:EXIT_CODE)
                              op: assign_op.Equal
                              rhs: {<1>}
                              spids: [8829]
                            )
                          ]
                        )
                        (C {<sed>} {<-i>} 
                          {
                            (DQ <'/^CONFIG_SOUNDCARD=/c'> <Id.Lit_BadBackslash '\\'> 
                              <'CONFIG_SOUNDCARD=none'>
                            )
                          } {<'/DietPi/dietpi.txt'>}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [8856]
                        )
                      ]
                    )
                    (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 '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 70>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} {(SQ <'s/aotg.aotg1_speed=0/aotg.aotg1_speed=1/'>)} 
                              {<'/DietPi/uEnv.txt'>}
                            )
                          ]
                          spids: [8865 8879]
                        )
                      ]
                    )
                  ]
                  spids: [8738 8739 8899 -1]
                )
                (case_arm
                  pat_list: [{<rpi-bcm2835> <Id.Lit_Star '*'>}]
                  action: [
                    (C {<rm>} {<'/etc/modprobe.d/rpi-bcm2708.conf'>})
                    (C {<sed>} {<-i>} {(SQ <'/avoid_pwm_pll=/c\\avoid_pwm_pll=0'>)} 
                      {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')}
                                          right: {<Id.Lit_Other '*'> <ultrahq> <Id.Lit_Other '*'>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<sed>} {<-i>} {(SQ <'/avoid_pwm_pll=/c\\avoid_pwm_pll=2'>)} 
                              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                            )
                          ]
                          spids: [8962 8977]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')}
                                          right: {<Id.Lit_Other '*'> <3.5mm> <Id.Lit_Other '*'>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [{<cat>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DLess '<<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: 
                                    (redir_param.HereDoc
                                      here_begin: {<_EOF_>}
                                      here_end_span_id: 9046
                                      stdin_parts: [
                                        <'[Unit]\n'>
                                        <'Description=Forces sound through 3.5mm analogue\n'>
                                        <'Before=sound.target\n'>
                                        <
'After=dietpi-boot.service dietpi-ramdisk.service dietpi-ramlog.service\n'
                                        >
                                        <'\n'>
                                        <'[Service]\n'>
                                        <'Type=simple\n'>
                                        <'RemainAfterExit=yes\n'>
                                        <'\n'>
                                        <'ExecStart=/usr/bin/amixer -c 0 cset numid=3 1\n'>
                                        <'\n'>
                                        <'[Install]\n'>
                                        <'WantedBy=multi-user.target\n'>
                                      ]
                                    )
                                )
                                (redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/etc/systemd/system/rpi-bcm2835_forced_3.5mm.service'>}
                                )
                              ]
                              do_fork: T
                            )
                            (C {<systemctl>} {<daemon-reload>})
                            (C {<systemctl>} {<enable>} {<rpi-bcm2835_forced_3.5mm.service>})
                            (C {<systemctl>} {<start>} {<rpi-bcm2835_forced_3.5mm.service>})
                          ]
                          spids: [9003 9018]
                        )
                      ]
                    )
                  ]
                  spids: [8924 8926 9072 -1]
                )
                (case_arm
                  pat_list: [{<hifiberry-> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> 
                            ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [9096 9098 9124 -1]
                )
                (case_arm
                  pat_list: [{<googlevoicehat-soundcard> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 9160
                              stdin_parts: [
                                <'dtoverlay='>
                                ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                                <'\n'>
                                <'dtoverlay=i2s-mmap\n'>
                                <'dtparam=i2s=on\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [9132 9134 9163 -1]
                )
                (case_arm
                  pat_list: [{<justboom-> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> 
                            ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [9175 9177 9203 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <allo-piano-dac> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> 
                            ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                    (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 '$G_HW_MODEL')}
                                          right: {<Id.Lit_Digits 70>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/etc/modules'>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [9295]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [9299]
                                )
                              ]
                            )
                            (C {<amixer>} {<-c>} {<0>} {<sset>} {(SQ <'audio output mode switch'>)} 
                              {(SQ <i2s>)}
                            )
                          ]
                          spids: [9264 9278]
                        )
                      ]
                    )
                  ]
                  spids: [9231 9234 9325 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <allo-boss-dac> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> 
                            ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [9337 9340 9366 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <allo-digione> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> 
                            ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [9378 9381 9407 -1]
                )
                (case_arm
                  pat_list: [{<rpi-dac>}]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> 
                            ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [9419 9420 9446 -1]
                )
                (case_arm
                  pat_list: [{<i-sabre-k2m>}]
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'install_url_address='> 
                        (SQ <'http://dietpi.com/downloads/binaries/rpi/I-Sabre-K2M_binaries.zip'>)
                      }
                    )
                    (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName '$install_url_address'))})
                    (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_QMark '$?')}
                                          right: {<Id.Lit_Digits 0>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<wget>} {(DQ ($ Id.VSub_DollarName '$install_url_address'))} {<-O>} 
                              {<package.zip>}
                            )
                            (C {<unzip>} {<-o>} {<package.zip>} {<-d>} {<'/'>})
                            (C {<rm>} {<package.zip>})
                            (C {<sync>})
                            (C {<depmod>} {<-a>})
                            (command.Simple
                              words: [
                                {<echo>}
                                {<-e>}
                                {
                                  (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> 
                                    ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_DGreat '>>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                                )
                              ]
                              do_fork: T
                            )
                            (C {<sed>} {<-i>} {(SQ <'/dtparam=i2c_arm=/c\\dtparam=i2c_arm=on'>)} 
                              {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                            )
                          ]
                          spids: [9483 9497]
                        )
                      ]
                      else_action: [
                        (C {<G_DIETPI-NOTIFY>} {<1>} 
                          {
                            (DQ <'Failed to install '> ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME') 
                              <'. '> ($ Id.VSub_DollarName '$install_url_address') <' may be offline or unreachable.'>
                            )
                          }
                        )
                      ]
                    )
                  ]
                  spids: [9458 9459 9600 -1]
                )
                (case_arm
                  pat_list: [{<allo-cheapo> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [9622]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [9626]
                        )
                      ]
                    )
                    (C {<amixer>} {<'–c'>} {<0>} {<set>} {(SQ <'DAC PA'>)} {<35>})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} 
                                      {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))} {<Id.Lit_Equals '='>} {(DQ <allo-cheapo-analogue>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<amixer>} {<-c>} {<0>} {<sset>} {(SQ <'audio output mode switch'>)} 
                              {(SQ <i2s>)}
                            )
                          ]
                          spids: [9651 9668]
                        )
                      ]
                      else_action: [
                        (C {<amixer>} {<-c>} {<0>} {<sset>} {(SQ <'audio output mode switch'>)} 
                          {(SQ <spdif>)}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE)
                              op: assign_op.Equal
                              rhs: {<2>}
                              spids: [9711]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [9616 9618 9720 -1]
                )
                (case_arm
                  pat_list: [{<iqaudio-> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> 
                            ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [9724 9726 9752 -1]
                )
                (case_arm
                  pat_list: [{<dionaudio-loco> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [
                        {<echo>}
                        {<-e>}
                        {
                          (DQ <Id.Lit_BadBackslash '\\'> <'ndtoverlay='> 
                            ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE')
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$FP_RPI_CONFIG'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [9764 9766 9792 -1]
                )
                (case_arm
                  pat_list: [{<odroid-hifishield-plus>}]
                  action: [
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <snd-soc-pcm5102>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <snd-soc-odroid-dac>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9832]
                        )
                      ]
                    )
                  ]
                  spids: [9800 9801 9837 -1]
                )
                (case_arm
                  pat_list: [{<odroid-hifishield-2>}]
                  action: [
                    (C {<sed>} {<-i>} {(SQ <'/^aml_i2c/d'>)} {<'/etc/modules'>})
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <aml_i2c>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <snd-soc-pcm512x>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <snd-soc-pcm512x-i2c>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {<-e>} {(DQ <snd-soc-odroid-dac2>)}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9913]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 9944
                              stdin_parts: [
                                <'[Unit]\n'>
                                <'Description=odroid-hifishield2\n'>
                                <'After=local-fs.target\n'>
                                <'\n'>
                                <'[Service]\n'>
                                <'Type=oneshot\n'>
                                <'RemainAfterExit=yes\n'>
                                <'\n'>
                                <
'ExecStart=/bin/bash -c \'echo pcm5242 0x4c > /sys/class/i2c-adapter/i2c-1/new_device\'\n'
                                >
                                <'ExecStart=/bin/bash -c \'amixer -c 1 sset Analogue 0\'\n'>
                                <'ExecStart=/bin/bash -c \'amixer -c 1 sset Digital 201\'\n'>
                                <'ExecStart=/bin/bash -c \'amixer -c 1 sset Deemphasis on\'\n'>
                                <'\n'>
                                <'[Install]\n'>
                                <'WantedBy=sound.target\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/systemd/system/odroid-hifishield2.service'>}
                        )
                      ]
                      do_fork: T
                    )
                    (C {<systemctl>} {<enable>} {<odroid-hifishield2.service>})
                    (C {<systemctl>} {<daemon-reload>})
                  ]
                  spids: [9841 9842 9959 -1]
                )
                (case_arm
                  pat_list: [{<h2-hdmi>}]
                  action: [
                    (command.Simple
                      words: [{<amixer>} {<set>} {<-c>} {<0>} {(SQ <'Audio lineout'>)} {<mute>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [9991]
                        )
                      ]
                    )
                  ]
                  spids: [9967 9968 9996 -1]
                )
                (case_arm
                  pat_list: [{<h3-analogue>}]
                  action: [
                    (command.Simple
                      words: [{<amixer>} {<set>} {<-c>} {<0>} {(SQ <'Audio lineout'>)} {<unmute>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_AndGreat '&>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [10028]
                        )
                      ]
                    )
                  ]
                  spids: [10004 10005 10033 -1]
                )
                (case_arm
                  pat_list: [{<pine64-analogue>}]
                  action: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 10060
                              stdin_parts: [<'sunxi_codec\n'> <'sunxi_i2s\n'> <'sunxi_sndcodec\n'>]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/modules-load.d/pine64-audiojack.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [10063]
                        )
                      ]
                    )
                  ]
                  spids: [10041 10042 10068 -1]
                )
                (case_arm
                  pat_list: [{<rock64-analogue>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [10081]
                        )
                      ]
                    )
                  ]
                  spids: [10076 10077 10086 -1]
                )
                (case_arm
                  pat_list: [{<s5pxx18-hdmi>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [10099]
                        )
                      ]
                    )
                  ]
                  spids: [10094 10095 10104 -1]
                )
                (case_arm
                  pat_list: [{<asus-tb-analogue>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_CARD)
                          op: assign_op.Equal
                          rhs: {<0>}
                          spids: [10117]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:SOUNDCARD_TARGET_DEVICE)
                          op: assign_op.Equal
                          rhs: {<2>}
                          spids: [10121]
                        )
                      ]
                    )
                  ]
                  spids: [10112 10113 10126 -1]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobEqual
                                  left: {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE'))}
                                  right: {(SQ <googlevoicehat-soundcard>) <Id.Lit_Other '*'>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 10207
                              stdin_parts: [
                                <'pcm.softvol {\n'>
                                <'    type softvol\n'>
                                <'    slave.pcm dmix\n'>
                                <'    control {\n'>
                                <'        name Master\n'>
                                <'        card 0\n'>
                                <'    }\n'>
                                <'}\n'>
                                <'\n'>
                                <'pcm.micboost {\n'>
                                <'    type route\n'>
                                <'    slave.pcm dsnoop\n'>
                                <'    ttable {\n'>
                                <'        0.0 30.0\n'>
                                <'        1.1 30.0\n'>
                                <'    }\n'>
                                <'}\n'>
                                <'\n'>
                                <'pcm.!default {\n'>
                                <'    type asym\n'>
                                <'    playback.pcm '>
                                <Id.Right_DoubleQuote '"'>
                                <'plug:softvol'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'    capture.pcm '>
                                <Id.Right_DoubleQuote '"'>
                                <'plug:micboost'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'}\n'>
                                <'\n'>
                                <'ctl.!default {\n'>
                                <'    type hw\n'>
                                <'    card 0\n'>
                                <'}\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/asound.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [10138 10156]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (command.DParen child:{($ Id.VSub_DollarName '$ALSA_EQ_ENABLED')})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.HereDoc
                              here_begin: {<_EOF_>}
                              here_end_span_id: 10275
                              stdin_parts: [
                                <'ctl.eq {\n'>
                                <'    type equal\n'>
                                <'    controls '>
                                <Id.Right_DoubleQuote '"'>
                                ($ Id.VSub_DollarName '$HOME')
                                <'/.alsaequal.bin'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'}\n'>
                                <'\n'>
                                <'pcm.plugequal {\n'>
                                <'    type equal\n'>
                                <'    slave.pcm '>
                                <Id.Right_DoubleQuote '"'>
                                <'plughw:'>
                                ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_CARD')
                                <','>
                                ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_DEVICE')
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'    controls '>
                                <Id.Right_DoubleQuote '"'>
                                ($ Id.VSub_DollarName '$HOME')
                                <'/.alsaequal.bin'>
                                <Id.Right_DoubleQuote '"'>
                                <'\n'>
                                <'}\n'>
                                <'\n'>
                                <'pcm.!default {\n'>
                                <'    type plug\n'>
                                <'    slave.pcm plugequal\n'>
                                <'    slave.channels 2\n'>
                                <'}\n'>
                                <'\n'>
                                <'ctl.!default {\n'>
                                <'    type hw\n'>
                                <'    card '>
                                ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_CARD')
                                <'\n'>
                                <'}\n'>
                              ]
                            )
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/etc/asound.conf'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DParen
                                      child: 
                                        (arith_expr.Unary
                                          op_id: Id.Arith_Bang
                                          child: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<dpkg>} {<--get-selections>})
                                                      (C {<grep>} {<-ci>} {<-m1>} 
                                                        {(SQ <'^libasound2-plugin-equal'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<G_AGI>} {<libasound2-plugin-equal>})]
                          spids: [10278 10306]
                        )
                      ]
                    )
                  ]
                  spids: [10210 10220]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<cat>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.HereDoc
                          here_begin: {<_EOF_>}
                          here_end_span_id: 10350
                          stdin_parts: [
                            <'pcm.!default {\n'>
                            <'    type hw\n'>
                            <'    card '>
                            ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_CARD')
                            <'\n'>
                            <'    device '>
                            ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_DEVICE')
                            <'\n'>
                            <'}\n'>
                            <'ctl.!default {\n'>
                            <'    type hw\n'>
                            <'    card '>
                            ($ Id.VSub_DollarName '$SOUNDCARD_TARGET_CARD')
                            <'\n'>
                            <'}\n'>
                          ]
                        )
                    )
                    (redir
                      op: <Id.Redir_Great '>'>
                      loc: (redir_loc.Fd fd:1)
                      arg: {<'/etc/asound.conf'>}
                    )
                  ]
                  do_fork: T
                )
              ]
            )
          ]
        )
    )
    (C {<G_DIETPI-NOTIFY>} {<3>} {<DietPi-Set_Hardware>} 
      {
        (DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME') <' ('> 
          ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') <')'>
        )
      }
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <soundcard>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Soundcard_Main>})]
          spids: [10402 10419]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <serialconsole>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Serial_Main>})]
          spids: [10427 10444]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <bluetooth>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Bluetooth_Main>})]
          spids: [10452 10469]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <wifimodules>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Wifi_Modules_Main>})]
          spids: [10477 10494]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <wificreds>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Wifi_Creds_Main>})]
          spids: [10502 10519]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <preferipversion>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Prefer_IPversion>})]
          spids: [10527 10544]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <wificountrycode>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Wifi_Countrycode_Main>})]
          spids: [10552 10569]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <i2c>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<I2c_Main>})]
          spids: [10577 10594]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <lcdpanel>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Lcd_Panel_Main>})]
          spids: [10602 10619]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <rpi-opengl>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<RPi_OpenGL_Main>})]
          spids: [10627 10644]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <eth-forcespeed>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Eth_Force_Speed_Main>})]
          spids: [10652 10669]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <remoteir>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<RemoteIR_Main>})]
          spids: [10677 10694]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <gpumemsplit>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<Gpu_Memory_Split_Main>})]
          spids: [10702 10719]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <rpi-camera>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<RPi_Camera_Main>})]
          spids: [10727 10744]
        )
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME'))} 
                      {<Id.Lit_Equals '='>} {(DQ <rpi3_usb_boot>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<RPi_USB_Boot_Main>})]
          spids: [10752 10769]
        )
      ]
      else_action: [(C {<Unknown_Input_Name>})]
    )
    (C {<G_DIETPI-NOTIFY>} {<-1>} {($ Id.VSub_DollarName '$EXIT_CODE')} 
      {
        (DQ ($ Id.VSub_DollarName '$INPUT_DEVICE_NAME') <' '> 
          ($ Id.VSub_DollarName '$INPUT_DEVICE_VALUE') <' |'>
        )
      }
    )
    (command.ControlFlow
      token: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName '$EXIT_CODE')}
    )
  ]
)