(BraceGroup
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:INPUT) op:Equal rhs:{(0)} spids:[75])]
      spids: [75]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_EqualTilde
                      left: {($ VSub_Number '$1')}
                      right: 
                        {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') 
                          (Lit_Other '+') (Lit_Other '$')
                        }
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:INPUT)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [102]
                )
              ]
              spids: [102]
            )
          ]
          spids: [16777215 99]
        )
      ]
      spids: [16777215 106]
    )
    (C {(.)} {(/DietPi/dietpi/func/dietpi-globals)})
    (C {(G_CHECK_ROOT_USER)})
    (C {(G_CHECK_ROOTFS_RW)})
    (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-Sync>)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:WHIP_BACKTITLE)
          op: Equal
          rhs: {(SQ <DietPi-Sync>)}
          spids: [150]
        )
      ]
      spids: [150]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:WHIP_TITLE) op:Equal rhs:{(SQ )} spids:[156])]
      spids: [156]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:CHOICE) op:Equal rhs:{(0)} spids:[161])]
      spids: [161]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:OPTION) op:Equal rhs:{(0)} spids:[165])]
      spids: [165]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[169])]
      spids: [169]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:FTP_MOUNT_AVAILABLE) op:Equal rhs:{(0)} spids:[174])]
      spids: [174]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FTP_MOUNT_TEXT)
          op: Equal
          rhs: {(SQ <'Not available'>)}
          spids: [178]
        )
      ]
      spids: [178]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:SAMBA_MOUNT_AVAILABLE) op:Equal rhs:{(0)} spids:[184])]
      spids: [184]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SAMBA_MOUNT_TEXT)
          op: Equal
          rhs: {(SQ <'Not available'>)}
          spids: [188]
        )
      ]
      spids: [188]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:SYNC_DRY_RUN) op:Equal rhs:{(0)} spids:[195])]
      spids: [195]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SYNC_MODE_TEXT)
          op: Equal
          rhs: {(SQ <Disabled>)}
          spids: [200]
        )
      ]
      spids: [200]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SYNC_COMPRESSION_TEXT)
          op: Equal
          rhs: {(SQ <Disabled>)}
          spids: [206]
        )
      ]
      spids: [206]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SYNC_CRONDAILY_TEXT)
          op: Equal
          rhs: {(SQ <Disabled>)}
          spids: [212]
        )
      ]
      spids: [212]
    )
    (FuncDef
      name: Menu_Main
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SYNC_MODE_TEXT)
                  op: Equal
                  rhs: {(SQ <Disabled>)}
                  spids: [230]
                )
              ]
              spids: [230]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$SYNC_DELETE_MODE')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [238 247]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SYNC_MODE_TEXT)
                          op: Equal
                          rhs: {(SQ <Enabled>)}
                          spids: [254]
                        )
                      ]
                      spids: [254]
                    )
                  ]
                  spids: [16777215 250]
                )
              ]
              spids: [16777215 261]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SYNC_COMPRESSION_TEXT)
                  op: Equal
                  rhs: {(SQ <Disabled>)}
                  spids: [265]
                )
              ]
              spids: [265]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$SYNC_COMPRESSION')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [273 282]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SYNC_COMPRESSION_TEXT)
                          op: Equal
                          rhs: {(SQ <Enabled>)}
                          spids: [289]
                        )
                      ]
                      spids: [289]
                    )
                  ]
                  spids: [16777215 285]
                )
              ]
              spids: [16777215 296]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SYNC_CRONDAILY_TEXT)
                  op: Equal
                  rhs: {(SQ <Disabled>)}
                  spids: [300]
                )
              ]
              spids: [300]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$SYNC_CRONDAILY')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [308 317]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SYNC_CRONDAILY_TEXT)
                          op: Equal
                          rhs: {(SQ <Enabled>)}
                          spids: [324]
                        )
                      ]
                      spids: [324]
                    )
                  ]
                  spids: [16777215 320]
                )
              ]
              spids: [16777215 331]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:sync_last_completed)
                  op: Equal
                  rhs: {(SQ <'No previous sync found in target directory.'>)}
                  spids: [337]
                )
              ]
              spids: [335]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} 
                          {(DQ ($ VSub_Name '$FP_TARGET') (/) ($ VSub_Name '$SYNC_STATS_FILENAME'))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:sync_last_completed)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (Pipeline
                                        children: [
                                          (C {(grep)} {(SQ <'^Sync completed'>)} 
                                            {
                                              (DQ ($ VSub_Name '$FP_TARGET') (/) 
                                                ($ VSub_Name '$SYNC_STATS_FILENAME')
                                              )
                                            }
                                          )
                                          (C {(tail)} {(-1)})
                                          (C {(awk)} {(SQ <'{print $3}'>)})
                                        ]
                                        negated: F
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [363 389]
                              )
                            }
                          spids: [362]
                        )
                      ]
                      spids: [362]
                    )
                  ]
                  spids: [16777215 358]
                )
              ]
              spids: [16777215 393]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_TITLE)
                  op: Equal
                  rhs: {(SQ <DietPi-Sync>)}
                  spids: [397]
                )
              ]
              spids: [397]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OPTION)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [
                                  {(whiptail)}
                                  {(--title)}
                                  {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                  {(--menu)}
                                  {
                                    (DQ ('Source location:') (Lit_Other '\\') ('n  ') 
                                      ($ VSub_Name '$FP_SOURCE') (Lit_Other '\\') (n) (Lit_Other '\\') ('nTarget location:') (Lit_Other '\\') ('n  ') 
                                      ($ VSub_Name '$FP_TARGET') (Lit_Other '\\') (n) (Lit_Other '\\') ('nMost recent successful sync date:') (Lit_Other '\\') ('n  ') 
                                      ($ VSub_Name '$sync_last_completed')
                                    )
                                  }
                                  {(--cancel-button)}
                                  {(DQ (Exit))}
                                  {(--backtitle)}
                                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                  {(23)}
                                  {(73)}
                                  {(8)}
                                  {(DQ (Help))}
                                  {(DQ ('What does DietPi-Sync do?'))}
                                  {(DQ ('Source Location'))}
                                  {(DQ ('Change the Source directory.'))}
                                  {(DQ ('Target Location'))}
                                  {(DQ ('Change the Target directory.'))}
                                  {(DQ ('Delete Mode'))}
                                  {(DQ ($ VSub_Name '$SYNC_MODE_TEXT'))}
                                  {(DQ (Compression))}
                                  {(DQ ($ VSub_Name '$SYNC_COMPRESSION_TEXT'))}
                                  {(DQ ('Sync: Daily'))}
                                  {(DQ ($ VSub_Name '$SYNC_CRONDAILY_TEXT'))}
                                  {(DQ ('Sync: Dry Run'))}
                                  {(DQ ('Run a test Sync without modifying any data.'))}
                                  {(DQ ('Sync: Now'))}
                                  {(DQ ('Sync the Source location to the Target location.'))}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [404 542]
                      )
                    }
                  spids: [403]
                )
              ]
              spids: [403]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [546]
                )
              ]
              spids: [546]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [552 561]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$OPTION'))}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ ('Source Location'))}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(2)}
                                  spids: [584]
                                )
                              ]
                              spids: [584]
                            )
                          ]
                          spids: [577 580 589 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('Target Location'))}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [600]
                                )
                              ]
                              spids: [600]
                            )
                          ]
                          spids: [593 596 605 16777215]
                        )
                        (case_arm
                          pat_list: [{(Help)}]
                          action: [
                            (C {(whiptail)} {(--title)} {(DQ ('DietPi-Sync Help'))} {(--msgbox)} 
                              {
                                (DQ 
                                  (
'DietPi-Sync is a program that allows you to duplicate a directory from one location (Source) to another (Target).'
                                  ) (Lit_Other '\\') (n) (Lit_Other '\\') 
                                  (
'nFor example: If we want to duplicate (sync) the data on our external USB HDD to another location, we simply select the USB HDD as the source, then, select a target location. The target location can be anything from a networked samba fileserver, or even a FTP server.'
                                  ) (Lit_Other '\\') (n) (Lit_Other '\\') 
                                  (
'nIf you would like to test a sync without modifiying any data, simply select Dry Run.'
                                  ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nMore information:') (Lit_Other '\\') 
                                  ('n - http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=256#p256')
                                )
                              } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(19)} {(75)}
                            )
                          ]
                          spids: [609 610 654 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('Delete Mode'))}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(3)}
                                  spids: [665]
                                )
                              ]
                              spids: [665]
                            )
                          ]
                          spids: [658 661 670 16777215]
                        )
                        (case_arm
                          pat_list: [{(Compression)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(4)}
                                  spids: [679]
                                )
                              ]
                              spids: [679]
                            )
                          ]
                          spids: [674 675 684 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('Sync: Daily'))}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:TARGETMENUID)
                                  op: Equal
                                  rhs: {(5)}
                                  spids: [695]
                                )
                              ]
                              spids: [695]
                            )
                          ]
                          spids: [688 691 700 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('Sync: Dry Run'))}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:WHIP_TITLE)
                                  op: Equal
                                  rhs: {(SQ <' Test Dry Run Sync? '>)}
                                  spids: [711]
                                )
                              ]
                              spids: [711]
                            )
                            (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yesno)} 
                              {
                                (DQ ('Source location:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_SOURCE') 
                                  ('/*') (Lit_Other '\\') (n) (Lit_Other '\\') ('nTarget location:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET') 
                                  ('/*') (Lit_Other '\\') (n) (Lit_Other '\\') ('nThis is a Dry Run for testing. No data will be modified.') 
                                  (Lit_Other '\\') (n) (Lit_Other '\\') ('nDo you wish to continue?')
                                )
                              } {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} 
                              {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(16)} {(72)}
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:CHOICE)
                                  op: Equal
                                  rhs: {($ VSub_QMark '$?')}
                                  spids: [776]
                                )
                              ]
                              spids: [776]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                              right: (ArithWord w:{(Lit_Digits 0)})
                                            )
                                          spids: [782 791]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:SYNC_DRY_RUN)
                                          op: Equal
                                          rhs: {(1)}
                                          spids: [798]
                                        )
                                      ]
                                      spids: [798]
                                    )
                                    (C {(Run_Sync)})
                                  ]
                                  spids: [16777215 794]
                                )
                              ]
                              spids: [16777215 806]
                            )
                          ]
                          spids: [704 707 810 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('Sync: Now'))}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:WHIP_TITLE)
                                  op: Equal
                                  rhs: {(SQ <' Start Sync? '>)}
                                  spids: [821]
                                )
                              ]
                              spids: [821]
                            )
                            (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yesno)} 
                              {
                                (DQ ('Source location:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_SOURCE') 
                                  ('/*') (Lit_Other '\\') (n) (Lit_Other '\\') ('nTarget location:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET') 
                                  ('/*') (Lit_Other '\\') (n) (Lit_Other '\\') 
                                  (
'nA copy of all the files and folders inside your Source location, will be created at the Target location.'
                                  ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nDo you wish to continue?')
                                )
                              } {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} 
                              {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(16)} {(72)}
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:CHOICE)
                                  op: Equal
                                  rhs: {($ VSub_QMark '$?')}
                                  spids: [886]
                                )
                              ]
                              spids: [886]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                              right: (ArithWord w:{(Lit_Digits 0)})
                                            )
                                          spids: [892 901]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:SYNC_DRY_RUN)
                                          op: Equal
                                          rhs: {(0)}
                                          spids: [908]
                                        )
                                      ]
                                      spids: [908]
                                    )
                                    (C {(Run_Sync)})
                                  ]
                                  spids: [16777215 904]
                                )
                              ]
                              spids: [16777215 916]
                            )
                          ]
                          spids: [814 817 920 16777215]
                        )
                      ]
                      spids: [568 574 924]
                    )
                  ]
                  spids: [16777215 564]
                )
              ]
              else_action: [(C {(Menu_Exit)})]
              spids: [928 936]
            )
          ]
          spids: [226]
        )
      spids: [223 226]
    )
    (FuncDef
      name: Menu_Exit
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_TITLE)
                  op: Equal
                  rhs: {(SQ <' Exit DietPi-Sync? '>)}
                  spids: [951]
                )
              ]
              spids: [951]
            )
            (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yesno)} 
              {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} 
              {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(10)} {(50)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [996]
                )
              ]
              spids: [996]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [1007 1016]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:TARGETMENUID)
                          op: Equal
                          rhs: {(-1)}
                          spids: [1023]
                        )
                      ]
                      spids: [1023]
                    )
                  ]
                  spids: [16777215 1019]
                )
              ]
              spids: [16777215 1028]
            )
          ]
          spids: [947]
        )
      spids: [944 947]
    )
    (FuncDef
      name: Menu_Set_Directories
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:current_directory)
                  op: Equal
                  rhs: {(DQ ($ VSub_Name '$FP_TARGET'))}
                  spids: [1058]
                )
              ]
              spids: [1056]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:current_mode_text)
                  op: Equal
                  rhs: {(DQ (Target))}
                  spids: [1066]
                )
              ]
              spids: [1064]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:whip_description_text)
                  op: Equal
                  rhs: 
                    {
                      (DQ ('Please select the ') ($ VSub_Name '$current_mode_text') (' location.') 
                        (Lit_Other '\\') ('nA copy of all the files and folders in the Source location will be created here.') (Lit_Other '\\') 
                        (n) (Lit_Other '\\') ('nCurrent Target location:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET')
                      )
                    }
                  spids: [1074]
                )
              ]
              spids: [1072]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_TITLE)
                  op: Equal
                  rhs: {(SQ <'Select your Sync Target location'>)}
                  spids: [1091]
                )
              ]
              spids: [1091]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                              right: (ArithWord w:{(Lit_Digits 2)})
                            )
                          spids: [1099 1108]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:current_directory)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name '$FP_SOURCE'))}
                          spids: [1115]
                        )
                      ]
                      spids: [1115]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:current_mode_text)
                          op: Equal
                          rhs: {(DQ (Source))}
                          spids: [1121]
                        )
                      ]
                      spids: [1121]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:whip_description_text)
                          op: Equal
                          rhs: 
                            {
                              (DQ ('Please select the ') ($ VSub_Name '$current_mode_text') 
                                (' location.') (Lit_Other '\\') 
                                (
'nA copy of all the files and folder in this Source location, will be created at the Target location.'
                                ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nCurrent Source location:') (Lit_Other '\\') (n) 
                                ($ VSub_Name '$FP_SOURCE')
                              )
                            }
                          spids: [1127]
                        )
                      ]
                      spids: [1127]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:WHIP_TITLE)
                          op: Equal
                          rhs: {(SQ <'Select your Sync Source location'>)}
                          spids: [1144]
                        )
                      ]
                      spids: [1144]
                    )
                  ]
                  spids: [16777215 1111]
                )
              ]
              spids: [16777215 1151]
            )
            (C {(Check_Available_DietPi_Mounts)})
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OPTION)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [
                                  {(whiptail)}
                                  {(--title)}
                                  {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                  {(--menu)}
                                  {(DQ ($ VSub_Name '$whip_description_text'))}
                                  {(--cancel-button)}
                                  {(DQ (Back))}
                                  {(--backtitle)}
                                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                  {(17)}
                                  {(75)}
                                  {(4)}
                                  {(DQ (Manual))}
                                  {
                                    (DQ ('Manually type your ') ($ VSub_Name '$current_mode_text') 
                                      (' directory.')
                                    )
                                  }
                                  {(DQ (List))}
                                  {(DQ ('Select from a list of available mounts/drives'))}
                                  {(DQ ('Samba Client'))}
                                  {(DQ ($ VSub_Name '$SAMBA_MOUNT_TEXT'))}
                                  {(DQ ('FTP Client'))}
                                  {(DQ ($ VSub_Name '$FTP_MOUNT_TEXT'))}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1160 1243]
                      )
                    }
                  spids: [1159]
                )
              ]
              spids: [1159]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [1246]
                )
              ]
              spids: [1246]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [1253 1262]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$OPTION'))}
                      arms: [
                        (case_arm
                          pat_list: [{(List)}]
                          action: [
                            (C {(/DietPi/dietpi/dietpi-drive_manager)} {(1)})
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:return_value)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [(C {(cat)} {(/tmp/dietpi-drive_manager_selmnt)})]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [1293 1297]
                                      )
                                    }
                                  spids: [1292]
                                )
                              ]
                              spids: [1290]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$return_value'))} 
                                          {(Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:return_value)
                                          op: Equal
                                          rhs: {(SQ </mnt>)}
                                          spids: [1321]
                                        )
                                      ]
                                      spids: [1321]
                                    )
                                  ]
                                  spids: [16777215 1317]
                                )
                              ]
                              spids: [16777215 1328]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                              right: (ArithWord w:{(Lit_Digits 2)})
                                            )
                                          spids: [1334 1343]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:FP_SOURCE)
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Name '$return_value'))}
                                          spids: [1350]
                                        )
                                      ]
                                      spids: [1350]
                                    )
                                  ]
                                  spids: [16777215 1346]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:FP_TARGET)
                                      op: Equal
                                      rhs: {(DQ ($ VSub_Name '$return_value') (/dietpi-sync))}
                                      spids: [1361]
                                    )
                                  ]
                                  spids: [1361]
                                )
                              ]
                              spids: [1357 1369]
                            )
                          ]
                          spids: [1279 1280 1373 16777215]
                        )
                        (case_arm
                          pat_list: [{(Manual)}]
                          action: [(C {(Input_User_Directory)})]
                          spids: [1377 1378 1384 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('Samba Client'))}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: 
                                                (ArithWord
                                                  w: {($ VSub_Name '$SAMBA_MOUNT_AVAILABLE')}
                                                )
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                          spids: [1395 1404]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DParen
                                                  child: 
                                                    (ArithBinary
                                                      op_id: Arith_DEqual
                                                      left: 
                                                        (ArithWord
                                                          w: {($ VSub_Name '$TARGETMENUID')}
                                                        )
                                                      right: (ArithWord w:{(Lit_Digits 2)})
                                                    )
                                                  spids: [1413 1422]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:FP_SOURCE)
                                                  op: Equal
                                                  rhs: {(DQ ($ VSub_Name '$FP_SAMBA_MOUNT'))}
                                                  spids: [1429]
                                                )
                                              ]
                                              spids: [1429]
                                            )
                                          ]
                                          spids: [16777215 1425]
                                        )
                                      ]
                                      else_action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:FP_TARGET)
                                              op: Equal
                                              rhs: 
                                                {(DQ ($ VSub_Name '$FP_SAMBA_MOUNT') (/dietpi-sync))}
                                              spids: [1440]
                                            )
                                          ]
                                          spids: [1440]
                                        )
                                      ]
                                      spids: [1436 1448]
                                    )
                                  ]
                                  spids: [16777215 1407]
                                )
                              ]
                              else_action: [
                                (C {(Prompt_Setup_Samba_Mount)})
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                                  right: (ArithWord w:{(Lit_Digits 2)})
                                                )
                                              spids: [1461 1470]
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:FP_SOURCE)
                                              op: Equal
                                              rhs: {(DQ ($ VSub_Name '$current_directory'))}
                                              spids: [1477]
                                            )
                                          ]
                                          spids: [1477]
                                        )
                                      ]
                                      spids: [16777215 1473]
                                    )
                                  ]
                                  else_action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:FP_TARGET)
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Name '$current_directory'))}
                                          spids: [1488]
                                        )
                                      ]
                                      spids: [1488]
                                    )
                                  ]
                                  spids: [1484 1495]
                                )
                              ]
                              spids: [1452 1499]
                            )
                          ]
                          spids: [1387 1390 1503 16777215]
                        )
                        (case_arm
                          pat_list: [{(DQ ('FTP Client'))}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: 
                                                (ArithWord
                                                  w: {($ VSub_Name '$FTP_MOUNT_AVAILABLE')}
                                                )
                                              right: (ArithWord w:{(Lit_Digits 1)})
                                            )
                                          spids: [1515 1524]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DParen
                                                  child: 
                                                    (ArithBinary
                                                      op_id: Arith_DEqual
                                                      left: 
                                                        (ArithWord
                                                          w: {($ VSub_Name '$TARGETMENUID')}
                                                        )
                                                      right: (ArithWord w:{(Lit_Digits 2)})
                                                    )
                                                  spids: [1533 1542]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:FP_SOURCE)
                                                  op: Equal
                                                  rhs: {(DQ ($ VSub_Name '$FP_FTP_MOUNT'))}
                                                  spids: [1549]
                                                )
                                              ]
                                              spids: [1549]
                                            )
                                          ]
                                          spids: [16777215 1545]
                                        )
                                      ]
                                      else_action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:FP_TARGET)
                                              op: Equal
                                              rhs: {(DQ ($ VSub_Name '$FP_FTP_MOUNT') (/dietpi-sync))}
                                              spids: [1560]
                                            )
                                          ]
                                          spids: [1560]
                                        )
                                      ]
                                      spids: [1556 1568]
                                    )
                                  ]
                                  spids: [16777215 1527]
                                )
                              ]
                              else_action: [
                                (C {(Prompt_Setup_FTP_Mount)})
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                                  right: (ArithWord w:{(Lit_Digits 2)})
                                                )
                                              spids: [1581 1590]
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (Assignment
                                          keyword: Assign_None
                                          pairs: [
                                            (assign_pair
                                              lhs: (LhsName name:FP_SOURCE)
                                              op: Equal
                                              rhs: {(DQ ($ VSub_Name '$current_directory'))}
                                              spids: [1597]
                                            )
                                          ]
                                          spids: [1597]
                                        )
                                      ]
                                      spids: [16777215 1593]
                                    )
                                  ]
                                  else_action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:FP_TARGET)
                                          op: Equal
                                          rhs: {(DQ ($ VSub_Name '$current_directory'))}
                                          spids: [1608]
                                        )
                                      ]
                                      spids: [1608]
                                    )
                                  ]
                                  spids: [1604 1615]
                                )
                              ]
                              spids: [1572 1619]
                            )
                          ]
                          spids: [1507 1510 1623 16777215]
                        )
                      ]
                      spids: [1269 1275 1627]
                    )
                  ]
                  spids: [16777215 1265]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGETMENUID)
                      op: Equal
                      rhs: {(0)}
                      spids: [1639]
                    )
                  ]
                  spids: [1639]
                )
              ]
              spids: [1631 1644]
            )
          ]
          spids: [1043]
        )
      spids: [1040 1043]
    )
    (FuncDef
      name: Menu_Set_Sync_Delete_Mode
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_TITLE)
                  op: Equal
                  rhs: {(SQ <' Sync Delete Mode '>)}
                  spids: [1663]
                )
              ]
              spids: [1663]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OPTION)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [
                                  {(whiptail)}
                                  {(--title)}
                                  {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                  {(--menu)}
                                  {
                                    (DQ ('Please select the Sync delete mode.') (Lit_Other '\\') (n) 
                                      (Lit_Other '\\') ('nDisabled: (safe)') (Lit_Other '\\') 
                                      (
'nIf files and folders exist in the Target location, that are not in the Source, they will be left alone.'
                                      ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nEnabled: (WARNING, if in doubt, DO NOT enable)') 
                                      (Lit_Other '\\') 
                                      (
'nAn exact copy of the Source location will be created at the Target location. If files are in the Target location that dont exist in the Source, they will be DELETED.'
                                      )
                                    )
                                  }
                                  {(--cancel-button)}
                                  {(DQ (Back))}
                                  {(--default-item)}
                                  {(DQ ($ VSub_Name '$SYNC_MODE_TEXT'))}
                                  {(--backtitle)}
                                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                  {(19)}
                                  {(75)}
                                  {(2)}
                                  {(DQ (Disabled))}
                                  {
                                    (DQ 
                                      (
'Ignores data that exists at Target Location and not Source.'
                                      )
                                    )
                                  }
                                  {(DQ (Enabled))}
                                  {
                                    (DQ 
                                      (
'Deletes data at Target location if not in Source Location.'
                                      )
                                    )
                                  }
                                ]
                                redirects: [
                                  (Redir
                                    op: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1670 1749]
                      )
                    }
                  spids: [1669]
                )
              ]
              spids: [1669]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [1752]
                )
              ]
              spids: [1752]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [1759 1768]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$OPTION'))}
                      arms: [
                        (case_arm
                          pat_list: [{(Disabled)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:SYNC_DELETE_MODE)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [1790]
                                )
                              ]
                              spids: [1790]
                            )
                          ]
                          spids: [1785 1786 1795 16777215]
                        )
                        (case_arm
                          pat_list: [{(Enabled)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:SYNC_DELETE_MODE)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [1804]
                                )
                              ]
                              spids: [1804]
                            )
                          ]
                          spids: [1799 1800 1809 16777215]
                        )
                      ]
                      spids: [1775 1781 1813]
                    )
                  ]
                  spids: [16777215 1771]
                )
              ]
              spids: [16777215 1817]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[1825])]
              spids: [1825]
            )
          ]
          spids: [1659]
        )
      spids: [1656 1659]
    )
    (FuncDef
      name: Menu_Set_Compression
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_TITLE)
                  op: Equal
                  rhs: {(SQ <' Sync Compression Mode '>)}
                  spids: [1845]
                )
              ]
              spids: [1845]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OPTION)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [
                                  {(whiptail)}
                                  {(--title)}
                                  {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                  {(--menu)}
                                  {
                                    (DQ ('Please select the compression mode.') (Lit_Other '\\') (n) 
                                      (Lit_Other '\\') ('nDisabled:') (Lit_Other '\\') ('nNo compression will be used during data transfer.') (Lit_Other '\\') 
                                      (n) (Lit_Other '\\') ('nEnabled:') (Lit_Other '\\') 
                                      (
'nData will be compressed when its being transfered. Useful for slow connections, however, its CPU intensive.'
                                      )
                                    )
                                  }
                                  {(--cancel-button)}
                                  {(DQ (Back))}
                                  {(--default-item)}
                                  {(DQ ($ VSub_Name '$SYNC_COMPRESSION_TEXT'))}
                                  {(--backtitle)}
                                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                  {(17)}
                                  {(75)}
                                  {(2)}
                                  {(DQ (Disabled))}
                                  {(DQ ('Transfer data in its original state.'))}
                                  {(DQ (Enabled))}
                                  {(DQ ('Compress the data during transfer.'))}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [1852 1931]
                      )
                    }
                  spids: [1851]
                )
              ]
              spids: [1851]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [1934]
                )
              ]
              spids: [1934]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [1941 1950]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$OPTION'))}
                      arms: [
                        (case_arm
                          pat_list: [{(Disabled)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:SYNC_COMPRESSION)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [1972]
                                )
                              ]
                              spids: [1972]
                            )
                          ]
                          spids: [1967 1968 1977 16777215]
                        )
                        (case_arm
                          pat_list: [{(Enabled)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:SYNC_COMPRESSION)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [1986]
                                )
                              ]
                              spids: [1986]
                            )
                          ]
                          spids: [1981 1982 1991 16777215]
                        )
                      ]
                      spids: [1957 1963 1995]
                    )
                  ]
                  spids: [16777215 1953]
                )
              ]
              spids: [16777215 1999]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[2007])]
              spids: [2007]
            )
          ]
          spids: [1841]
        )
      spids: [1838 1841]
    )
    (FuncDef
      name: Menu_Set_CronDaily
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:WHIP_TITLE)
                  op: Equal
                  rhs: {(SQ <' Sync Cron Daily '>)}
                  spids: [2027]
                )
              ]
              spids: [2027]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:OPTION)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (SimpleCommand
                                words: [
                                  {(whiptail)}
                                  {(--title)}
                                  {(DQ ($ VSub_Name '$WHIP_TITLE'))}
                                  {(--menu)}
                                  {
                                    (DQ ('Disabled:') (Lit_Other '\\') 
                                      ('nThe user must manually sync using dietpi-sync.') (Lit_Other '\\') (n) (Lit_Other '\\') ('nEnabled:') (Lit_Other '\\') 
                                      (
'nA cron job will be created that automatically runs dietpi-sync, once a day.'
                                      ) (Lit_Other '\\') (n) (Lit_Other '\\') ('n(NOTICE):') (Lit_Other '\\') 
                                      (
'nBefore enabling this feature, please run a test sync (Dry Run) to verify what will happen.'
                                      )
                                    )
                                  }
                                  {(--cancel-button)}
                                  {(DQ (Back))}
                                  {(--default-item)}
                                  {(DQ ($ VSub_Name '$SYNC_CRONDAILY_TEXT'))}
                                  {(--backtitle)}
                                  {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                  {(19)}
                                  {(75)}
                                  {(2)}
                                  {(DQ (Disabled))}
                                  {(DQ ('Manual sync.'))}
                                  {(DQ (Enabled))}
                                  {(DQ ('Automatically sync once a day.'))}
                                ]
                                redirects: [
                                  (Redir
                                    op: <Redir_GreatAnd '3>&'>
                                    fd: 3
                                    arg_word: {(1)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '1>&'>
                                    fd: 1
                                    arg_word: {(2)}
                                  )
                                  (Redir
                                    op: <Redir_GreatAnd '2>&'>
                                    fd: 2
                                    arg_word: {(3)}
                                  )
                                ]
                              )
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [2034 2115]
                      )
                    }
                  spids: [2033]
                )
              ]
              spids: [2033]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [2118]
                )
              ]
              spids: [2118]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [2125 2134]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Case
                      to_match: {(DQ ($ VSub_Name '$OPTION'))}
                      arms: [
                        (case_arm
                          pat_list: [{(Disabled)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:SYNC_CRONDAILY)
                                  op: Equal
                                  rhs: {(0)}
                                  spids: [2156]
                                )
                              ]
                              spids: [2156]
                            )
                          ]
                          spids: [2151 2152 2161 16777215]
                        )
                        (case_arm
                          pat_list: [{(Enabled)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:SYNC_CRONDAILY)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [2170]
                                )
                              ]
                              spids: [2170]
                            )
                          ]
                          spids: [2165 2166 2175 16777215]
                        )
                      ]
                      spids: [2141 2147 2179]
                    )
                  ]
                  spids: [16777215 2137]
                )
              ]
              spids: [16777215 2183]
            )
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[2191])]
              spids: [2191]
            )
          ]
          spids: [2023]
        )
      spids: [2020 2023]
    )
    (FuncDef
      name: Input_User_Directory
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [2222 2231]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:OPTION)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [
                                          {(whiptail)}
                                          {(--inputbox)}
                                          {
                                            (DQ 
                                              (
'Please enter the filepath to your Target directory. '
                                              ) (Lit_Other '\\') ('neg: /mnt/target')
                                            )
                                          }
                                          {(8)}
                                          {(70)}
                                          {(DQ ($ VSub_Name '$FP_TARGET'))}
                                          {(--title)}
                                          {(DQ ('Manual sync directory'))}
                                          {(--backtitle)}
                                          {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                        ]
                                        redirects: [
                                          (Redir
                                            op: <Redir_GreatAnd '3>&'>
                                            fd: 3
                                            arg_word: {(1)}
                                          )
                                          (Redir
                                            op: <Redir_GreatAnd '1>&'>
                                            fd: 1
                                            arg_word: {(2)}
                                          )
                                          (Redir
                                            op: <Redir_GreatAnd '2>&'>
                                            fd: 2
                                            arg_word: {(3)}
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2239 2278]
                              )
                            }
                          spids: [2238]
                        )
                      ]
                      spids: [2238]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CHOICE)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [2281]
                        )
                      ]
                      spids: [2281]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                  spids: [2287 2296]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:FP_TARGET)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$OPTION'))}
                                  spids: [2303]
                                )
                              ]
                              spids: [2303]
                            )
                          ]
                          spids: [16777215 2299]
                        )
                      ]
                      spids: [16777215 2310]
                    )
                  ]
                  spids: [16777215 2234]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                              right: (ArithWord w:{(Lit_Digits 2)})
                            )
                          spids: [2320 2329]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:OPTION)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [
                                          {(whiptail)}
                                          {(--inputbox)}
                                          {
                                            (DQ 
                                              (
'Please enter the filepath to your Source directory. '
                                              ) (Lit_Other '\\') ('neg: /mnt/source')
                                            )
                                          }
                                          {(8)}
                                          {(70)}
                                          {(DQ ($ VSub_Name '$FP_SOURCE'))}
                                          {(--title)}
                                          {(DQ ('Manual sync directory'))}
                                          {(--backtitle)}
                                          {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))}
                                        ]
                                        redirects: [
                                          (Redir
                                            op: <Redir_GreatAnd '3>&'>
                                            fd: 3
                                            arg_word: {(1)}
                                          )
                                          (Redir
                                            op: <Redir_GreatAnd '1>&'>
                                            fd: 1
                                            arg_word: {(2)}
                                          )
                                          (Redir
                                            op: <Redir_GreatAnd '2>&'>
                                            fd: 2
                                            arg_word: {(3)}
                                          )
                                        ]
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2337 2376]
                              )
                            }
                          spids: [2336]
                        )
                      ]
                      spids: [2336]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CHOICE)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [2379]
                        )
                      ]
                      spids: [2379]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                  spids: [2385 2394]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:FP_SOURCE)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name '$OPTION'))}
                                  spids: [2401]
                                )
                              ]
                              spids: [2401]
                            )
                          ]
                          spids: [16777215 2397]
                        )
                      ]
                      spids: [16777215 2408]
                    )
                  ]
                  spids: [2318 2332]
                )
              ]
              spids: [16777215 2412]
            )
          ]
          spids: [2203]
        )
      spids: [2200 2203]
    )
    (FuncDef
      name: Prompt_Setup_Samba_Mount
      body: 
        (BraceGroup
          children: [
            (C {(whiptail)} {(--title)} {(DQ ('Not available. Setup Now?'))} {(--yesno)} 
              {
                (DQ ($ VSub_Name '$SAMBA_MOUNT_TEXT') (Lit_Other '\\') (n) (Lit_Other '\\') 
                  ('nWould you like to run DietPi-Config and setup your Samba Client Mount now?')
                )
              } {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} 
              {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(70)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [2470]
                )
              ]
              spids: [2470]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [2476 2485]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(/DietPi/dietpi/dietpi-config)} {(16)} {(1)})]
                  spids: [16777215 2488]
                )
              ]
              spids: [16777215 2504]
            )
          ]
          spids: [2423]
        )
      spids: [2420 2423]
    )
    (FuncDef
      name: Prompt_Setup_FTP_Mount
      body: 
        (BraceGroup
          children: [
            (C {(whiptail)} {(--title)} {(DQ ('Not available. Setup Now?'))} {(--yesno)} 
              {
                (DQ ($ VSub_Name '$FTP_MOUNT_TEXT') (Lit_Other '\\') (n) (Lit_Other '\\') 
                  ('nWould you like to run DietPi-Config and setup your FTP Client Mount now?')
                )
              } {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} 
              {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(70)}
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:CHOICE)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [2562]
                )
              ]
              spids: [2562]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$CHOICE')})
                              right: (ArithWord w:{(Lit_Digits 0)})
                            )
                          spids: [2568 2577]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(/DietPi/dietpi/dietpi-config)} {(16)} {(1)})]
                  spids: [16777215 2580]
                )
              ]
              spids: [16777215 2596]
            )
          ]
          spids: [2515]
        )
      spids: [2512 2515]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:LOGFILE)
          op: Equal
          rhs: {(SQ </var/log/dietpi-sync.log>)}
          spids: [2620]
        )
      ]
      spids: [2620]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_SOURCE)
          op: Equal
          rhs: {(SQ </mnt/Source>)}
          spids: [2631]
        )
      ]
      spids: [2631]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_TARGET)
          op: Equal
          rhs: {(SQ </mnt/Target>)}
          spids: [2637]
        )
      ]
      spids: [2637]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_FTP_MOUNT)
          op: Equal
          rhs: {(SQ </mnt/ftp_client>)}
          spids: [2648]
        )
      ]
      spids: [2648]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_SAMBA_MOUNT)
          op: Equal
          rhs: {(SQ </mnt/samba>)}
          spids: [2654]
        )
      ]
      spids: [2654]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SYNC_STATS_FILENAME)
          op: Equal
          rhs: {(SQ <.dietpi-sync_stats>)}
          spids: [2665]
        )
      ]
      spids: [2665]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_EXCLUDE_GLOBAL)
          op: Equal
          rhs: {(SQ </tmp/.dietpi-sync_exclude>)}
          spids: [2676]
        )
      ]
      spids: [2676]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_INCLUDE_GLOBAL)
          op: Equal
          rhs: {(SQ </tmp/.dietpi-sync_include>)}
          spids: [2682]
        )
      ]
      spids: [2682]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_EXCLUDE_USER)
          op: Equal
          rhs: {(SQ </DietPi/dietpi/.dietpi-sync_exclude>)}
          spids: [2688]
        )
      ]
      spids: [2688]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_INCLUDE_USER)
          op: Equal
          rhs: {(SQ </DietPi/dietpi/.dietpi-sync_include>)}
          spids: [2694]
        )
      ]
      spids: [2694]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:SYNC_DELETE_MODE) op:Equal rhs:{(0)} spids:[2705])]
      spids: [2705]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:SYNC_COMPRESSION) op:Equal rhs:{(0)} spids:[2709])]
      spids: [2709]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:SYNC_CRONDAILY) op:Equal rhs:{(0)} spids:[2713])]
      spids: [2713]
    )
    (FuncDef
      name: Create_Exclude_File
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(rm)} {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$FP_TARGET'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('/boot/dietpi/*'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('/DietPi/*'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('/dev/*'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('/proc/*'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('/sys/*'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('/tmp/*'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('/run/*'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$LOGFILE'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$FP_EXCLUDE_USER'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$FP_INCLUDE_USER'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$SYNC_STATS_FILENAME'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ (/var/swap))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('*.tmp'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ (Thumbs.db))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ (desktop.ini))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('SyncToy*'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ('System Volume Information'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FP_EXCLUDE_USER'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)} {(DQ ($ VSub_Name '$FP_EXCLUDE_USER'))}]
                      redirects: [
                        (Redir
                          op: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}
                        )
                      ]
                    )
                  ]
                  spids: [16777215 3064]
                )
              ]
              spids: [16777215 3082]
            )
          ]
          spids: [2722]
        )
      spids: [2719 2722]
    )
    (FuncDef
      name: Create_Include_File
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(rm)} {(DQ ($ VSub_Name '$FP_INCLUDE_GLOBAL'))}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ )}]
              redirects: [
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_INCLUDE_GLOBAL'))}
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FP_INCLUDE_USER'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(cat)} {(DQ ($ VSub_Name '$FP_INCLUDE_USER'))}]
                      redirects: [
                        (Redir
                          op: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: {(DQ ($ VSub_Name '$FP_INCLUDE_GLOBAL'))}
                        )
                      ]
                    )
                  ]
                  spids: [16777215 3154]
                )
              ]
              spids: [16777215 3172]
            )
          ]
          spids: [3093]
        )
      spids: [3090 3093]
    )
    (FuncDef
      name: Services_Stop
      body: (BraceGroup children:[(C {(/DietPi/dietpi/dietpi-services)} {(stop)})] spids:[3183])
      spids: [3180 3183]
    )
    (FuncDef
      name: Services_Start
      body: (BraceGroup children:[(C {(/DietPi/dietpi/dietpi-services)} {(start)})] spids:[3198])
      spids: [3195 3198]
    )
    (FuncDef
      name: Banner_Start
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:mode) op:Equal rhs:{(SQ <Sync>)} spids:[3219])]
              spids: [3217]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: (ArithWord w:{($ VSub_Name '$SYNC_DRY_RUN')})
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [3231 3240]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:mode)
                          op: Equal
                          rhs: {(SQ <'Dry Run'>)}
                          spids: [3247]
                        )
                      ]
                      spids: [3247]
                    )
                  ]
                  spids: [16777215 3243]
                )
              ]
              spids: [16777215 3254]
            )
            (C {(G_DIETPI-NOTIFY)} {(3)} {(DietPi-Sync)} {(DQ ($ VSub_Name '$mode'))})
          ]
          spids: [3213]
        )
      spids: [3210 3213]
    )
    (FuncDef
      name: Run_Sync
      body: 
        (BraceGroup
          children: [
            (C {(Banner_Start)})
            (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$FP_TARGET'))})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_Name '$FP_TARGET'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                                  spids: [3325 3330]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(whiptail)} {(--title)} {(DQ ('Sync failed.'))} {(--msgbox)} 
                              {
                                (DQ ('Unable to create Target directory ') ($ VSub_Name '$FP_TARGET'))
                              } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(10)} {(60)}
                            )
                          ]
                          spids: [16777215 3333]
                        )
                      ]
                      spids: [16777215 3364]
                    )
                  ]
                  spids: [16777215 3319]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: 
                                (ArithWord
                                  w: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(ps)} {(aux)})
                                                  (C {(grep)} {(-ci)} {(-m1)} {(DQ ('[r]sync'))})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [3376 3392]
                                      )
                                    }
                                )
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [3374 3399]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {(-e)}
                        {
                          (DQ ('Sync failed: ') 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [(C {(date)} {(Lit_Other '+') (DQ ('%d-%m-%Y_%H%M'))})]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [3412 3419]
                            ) ('. Rsync is already running.')
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: 
                            {
                              (DQ ($ VSub_Name '$FP_TARGET') (/) ($ VSub_Name '$SYNC_STATS_FILENAME'))
                            }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                                  spids: [3439 3444]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(whiptail)} {(--title)} {(DQ ('Sync Error'))} {(--msgbox)} 
                              {(DQ ('A sync job could not be started as rsync is already running.'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(60)}
                            )
                          ]
                          spids: [16777215 3447]
                        )
                      ]
                      spids: [16777215 3477]
                    )
                  ]
                  spids: [3372 3402]
                )
              ]
              else_action: [
                (C {(Create_Exclude_File)})
                (C {(Create_Include_File)})
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:rync_options)
                      op: Equal
                      rhs: {(DQ (-a))}
                      spids: [3506]
                    )
                  ]
                  spids: [3504]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:rync_options)
                      op: PlusEqual
                      rhs: {(DQ (v))}
                      spids: [3516]
                    )
                  ]
                  spids: [3516]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:rync_options)
                      op: PlusEqual
                      rhs: {(DQ (P))}
                      spids: [3526]
                    )
                  ]
                  spids: [3526]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:rync_options)
                      op: PlusEqual
                      rhs: {(DQ (4))}
                      spids: [3536]
                    )
                  ]
                  spids: [3536]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$SYNC_COMPRESSION')})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                              spids: [3549 3558]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:rync_options)
                              op: PlusEqual
                              rhs: {(DQ (z))}
                              spids: [3565]
                            )
                          ]
                          spids: [3565]
                        )
                      ]
                      spids: [16777215 3561]
                    )
                  ]
                  spids: [16777215 3572]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$SYNC_DRY_RUN')})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                              spids: [3582 3591]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:rync_options)
                              op: PlusEqual
                              rhs: {(DQ (n))}
                              spids: [3598]
                            )
                          ]
                          spids: [3598]
                        )
                      ]
                      spids: [16777215 3594]
                    )
                  ]
                  spids: [16777215 3605]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_Name '$SYNC_DELETE_MODE')})
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                              spids: [3615 3624]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:rync_options)
                              op: PlusEqual
                              rhs: {(DQ (' --delete'))}
                              spids: [3631]
                            )
                          ]
                          spids: [3631]
                        )
                      ]
                      spids: [16777215 3627]
                    )
                  ]
                  spids: [16777215 3638]
                )
                (SimpleCommand
                  words: [
                    {(echo)}
                    {(-e)}
                    {
                      (DQ ('DietPi-Sync Log File.') (Lit_Other '\\') (n) 
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [
                                (C {(date)} 
                                  {(Lit_Other '+') (Lit_Other '%') (d-) (Lit_Other '%') (m-) 
                                    (Lit_Other '%') (Y_) (Lit_Other '%') (H) (Lit_Other '%') (M)
                                  }
                                )
                              ]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [3654 3668]
                        ) (Lit_Other '\\') ('nSYNC_DRY_RUN=') ($ VSub_Name '$SYNC_DRY_RUN') (Lit_Other '\\') (n) (Lit_Other '\\') (n)
                      )
                    }
                  ]
                  redirects: [
                    (Redir
                      op: <Redir_Great '>'>
                      fd: 16777215
                      arg_word: {(DQ ($ VSub_Name '$LOGFILE'))}
                    )
                  ]
                )
                (C {(rsync)} {($ VSub_Name '$rync_options')} 
                  {(--log-file) (Lit_Other '=') ($ VSub_Name '$LOGFILE')} {(--exclude-from) (Lit_Other '=') (DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))} 
                  {(--include-from) (Lit_Other '=') (DQ ($ VSub_Name '$FP_INCLUDE_GLOBAL'))} {(DQ ($ VSub_Name '$FP_SOURCE')) (/)} {(DQ ($ VSub_Name '$FP_TARGET')) (/)}
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (DParen
                              child: 
                                (ArithBinary
                                  op_id: Arith_DEqual
                                  left: (ArithWord w:{($ VSub_QMark '$?')})
                                  right: (ArithWord w:{(Lit_Digits 0)})
                                )
                              spids: [3738 3747]
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (SimpleCommand
                          words: [
                            {(echo)}
                            {(-e)}
                            {
                              (DQ ('Sync completed: ') 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [(C {(date)} {(Lit_Other '+') (DQ ('%d-%m-%Y_%H%M'))})]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [3760 3767]
                                )
                              )
                            }
                          ]
                          redirects: [
                            (Redir
                              op: <Redir_DGreat '>>'>
                              fd: 16777215
                              arg_word: 
                                {
                                  (DQ ($ VSub_Name '$FP_TARGET') (/) 
                                    ($ VSub_Name '$SYNC_STATS_FILENAME')
                                  )
                                }
                            )
                          ]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DParen
                                      child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                                      spids: [3786 3791]
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DParen
                                              child: 
                                                (ArithBinary
                                                  op_id: Arith_DEqual
                                                  left: (ArithWord w:{($ VSub_Name '$SYNC_DRY_RUN')})
                                                  right: (ArithWord w:{(Lit_Digits 0)})
                                                )
                                              spids: [3800 3809]
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(whiptail)} {(--title)} {(DQ ('Sync completed'))} 
                                          {(--msgbox)} 
                                          {
                                            (DQ ($ VSub_Name '$FP_SOURCE') (Lit_Other '\\') (n) 
                                              (Lit_Other '\\') ('nHas been synced to:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET') (Lit_Other '\\') (n) 
                                              (Lit_Other '\\') ('nLog file: ') ($ VSub_Name '$LOGFILE')
                                            )
                                          } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(60)}
                                        )
                                      ]
                                      spids: [16777215 3812]
                                    )
                                  ]
                                  else_action: [
                                    (C {(whiptail)} {(--title)} {(DQ ('Dry Run Sync completed'))} 
                                      {(--msgbox)} 
                                      {
                                        (DQ ($ VSub_Name '$FP_SOURCE') (Lit_Other '\\') (n) 
                                          (Lit_Other '\\') ('nHas been synced with a Dry Run (NO modifications) to:') (Lit_Other '\\') (n) 
                                          ($ VSub_Name '$FP_TARGET') (Lit_Other '\\') (n) (Lit_Other '\\') ('nLog file: ') ($ VSub_Name '$LOGFILE')
                                        )
                                      } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(60)}
                                    )
                                  ]
                                  spids: [3854 3896]
                                )
                              ]
                              spids: [16777215 3794]
                            )
                          ]
                          spids: [16777215 3900]
                        )
                      ]
                      spids: [16777215 3750]
                    )
                  ]
                  else_action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {(-e)}
                        {
                          (DQ ('Sync failed: ') 
                            (CommandSubPart
                              command_list: 
                                (CommandList
                                  children: [(C {(date)} {(Lit_Other '+') (DQ ('%d-%m-%Y_%H%M'))})]
                                )
                              left_token: <Left_CommandSub '$('>
                              spids: [3918 3925]
                            )
                          )
                        }
                      ]
                      redirects: [
                        (Redir
                          op: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: 
                            {
                              (DQ ($ VSub_Name '$FP_TARGET') (/) ($ VSub_Name '$SYNC_STATS_FILENAME'))
                            }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})
                                  spids: [3944 3949]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DParen
                                          child: 
                                            (ArithBinary
                                              op_id: Arith_DEqual
                                              left: (ArithWord w:{($ VSub_Name '$SYNC_DRY_RUN')})
                                              right: (ArithWord w:{(Lit_Digits 0)})
                                            )
                                          spids: [3958 3967]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(whiptail)} {(--title)} {(DQ ('Sync failed'))} {(--msgbox)} 
                                      {
                                        (DQ 
                                          (
'Your sync has failed. Please see the Log file for more information:'
                                          ) (Lit_Other '\\') (n) (Lit_Other '\\') (n) ($ VSub_Name '$LOGFILE')
                                        )
                                      } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(60)}
                                    )
                                  ]
                                  spids: [16777215 3970]
                                )
                              ]
                              else_action: [
                                (C {(whiptail)} {(--title)} {(DQ ('Dry Run Sync failed'))} {(--msgbox)} 
                                  {
                                    (DQ 
                                      (
'Your sync has failed. Please see the Log file for more information:'
                                      ) (Lit_Other '\\') (n) (Lit_Other '\\') (n) ($ VSub_Name '$LOGFILE')
                                    )
                                  } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(60)}
                                )
                              ]
                              spids: [4005 4040]
                            )
                          ]
                          spids: [16777215 3952]
                        )
                      ]
                      spids: [16777215 4044]
                    )
                  ]
                  spids: [3908 4047]
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:TARGETMENUID)
                      op: Equal
                      rhs: {(0)}
                      spids: [4055]
                    )
                  ]
                  spids: [4055]
                )
              ]
              spids: [3485 4060]
            )
          ]
          spids: [3278]
        )
      spids: [3275 3278]
    )
    (FuncDef
      name: Check_Install_PreReqs
      body: (BraceGroup children:[(C {(G_AG_CHECK_INSTALL_PREREQ)} {(rsync)})] spids:[4071])
      spids: [4068 4071]
    )
    (FuncDef
      name: Check_Available_DietPi_Mounts
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:temp_file_mounts)
                  op: Equal
                  rhs: {(DQ (/tmp/.dietpi-sync_dietpi_mounts))}
                  spids: [4094]
                )
              ]
              spids: [4092]
            )
            (SimpleCommand
              words: [{(df)} {(-h)}]
              redirects: [
                (Redir
                  op: <Redir_Great '>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$temp_file_mounts'))}
                )
              ]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SAMBA_MOUNT_AVAILABLE)
                  op: Equal
                  rhs: {(0)}
                  spids: [4116]
                )
              ]
              spids: [4116]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:SAMBA_MOUNT_TEXT)
                  op: Equal
                  rhs: {(DQ ('Not mounted (') ($ VSub_Name '$FP_SAMBA_MOUNT') ('). Select to setup.'))}
                  spids: [4120]
                )
              ]
              spids: [4120]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: 
                                (ArithWord
                                  w: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(cat)} {(DQ ($ VSub_Name '$temp_file_mounts'))})
                                                  (C {(grep)} {(-ci)} {(-m1)} {(DQ (/mnt/samba))})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [4132 4150]
                                      )
                                    }
                                )
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [4130 4157]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SAMBA_MOUNT_AVAILABLE)
                          op: Equal
                          rhs: {(1)}
                          spids: [4164]
                        )
                      ]
                      spids: [4164]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SAMBA_MOUNT_TEXT)
                          op: Equal
                          rhs: 
                            {
                              (DQ ('Size: ') 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(df)} {(-h)})
                                            (C {(grep)} {(/mnt/samba)})
                                            (C {(awk)} {(SQ <'{print $2}'>)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [4171 4189]
                                ) ('B | Available: ') 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (Pipeline
                                          children: [
                                            (C {(df)} {(-h)})
                                            (C {(grep)} {(/mnt/samba)})
                                            (C {(awk)} {(SQ <'{print $4}'>)})
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [4191 4209]
                                ) (B)
                              )
                            }
                          spids: [4168]
                        )
                      ]
                      spids: [4168]
                    )
                  ]
                  spids: [16777215 4160]
                )
              ]
              spids: [16777215 4215]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FTP_MOUNT_AVAILABLE)
                  op: Equal
                  rhs: {(0)}
                  spids: [4223]
                )
              ]
              spids: [4223]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FTP_MOUNT_TEXT)
                  op: Equal
                  rhs: {(DQ ('Not mounted (') ($ VSub_Name '$FP_FTP_MOUNT') ('). Select to setup.'))}
                  spids: [4227]
                )
              ]
              spids: [4227]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DParen
                          child: 
                            (ArithBinary
                              op_id: Arith_DEqual
                              left: 
                                (ArithWord
                                  w: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(cat)} {(DQ ($ VSub_Name '$temp_file_mounts'))})
                                                  (C {(grep)} {(-ci)} {(-m1)} {(DQ (/mnt/ftp_client))})
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [4239 4257]
                                      )
                                    }
                                )
                              right: (ArithWord w:{(Lit_Digits 1)})
                            )
                          spids: [4237 4264]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:FTP_MOUNT_AVAILABLE)
                          op: Equal
                          rhs: {(1)}
                          spids: [4271]
                        )
                      ]
                      spids: [4271]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:FTP_MOUNT_TEXT)
                          op: Equal
                          rhs: {(DQ ('Mounted and online.'))}
                          spids: [4275]
                        )
                      ]
                      spids: [4275]
                    )
                  ]
                  spids: [16777215 4267]
                )
              ]
              spids: [16777215 4282]
            )
            (C {(rm)} {(DQ ($ VSub_Name '$temp_file_mounts'))})
          ]
          spids: [4088]
        )
      spids: [4085 4088]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FP_DIETPISYNC_SETTINGS)
          op: Equal
          rhs: {(DQ (/DietPi/dietpi/.dietpi-sync_settings))}
          spids: [4314]
        )
      ]
      spids: [4314]
    )
    (FuncDef
      name: Write_Settings_File
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(rm)} {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}]
              redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$FP_SOURCE'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$FP_TARGET'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$SYNC_DELETE_MODE'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$SYNC_COMPRESSION'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}
                )
              ]
            )
            (SimpleCommand
              words: [{(echo)} {(-e)} {(DQ ($ VSub_Name '$SYNC_CRONDAILY'))}]
              redirects: [
                (Redir
                  op: <Redir_DGreat '>>'>
                  fd: 16777215
                  arg_word: {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}
                )
              ]
            )
          ]
          spids: [4324]
        )
      spids: [4321 4324]
    )
    (FuncDef
      name: Read_Settings_File
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:sed_index)
                          op: Equal
                          rhs: {(1)}
                          spids: [4446]
                        )
                      ]
                      spids: [4444]
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:FP_SOURCE)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(sed)} {(-n)} {(DQ ($ VSub_Name '$sed_index')) (p)} 
                                            {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [4451 4464]
                                  )
                                }
                              spids: [4450]
                            )
                          ]
                          spids: [4450]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (DParen
                      child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:sed_index))
                      spids: [4466 4470]
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:FP_TARGET)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(sed)} {(-n)} {(DQ ($ VSub_Name '$sed_index')) (p)} 
                                            {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [4474 4487]
                                  )
                                }
                              spids: [4473]
                            )
                          ]
                          spids: [4473]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (DParen
                      child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:sed_index))
                      spids: [4489 4493]
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:SYNC_DELETE_MODE)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(sed)} {(-n)} {(DQ ($ VSub_Name '$sed_index')) (p)} 
                                            {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [4497 4510]
                                  )
                                }
                              spids: [4496]
                            )
                          ]
                          spids: [4496]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (DParen
                      child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:sed_index))
                      spids: [4512 4516]
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:SYNC_COMPRESSION)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(sed)} {(-n)} {(DQ ($ VSub_Name '$sed_index')) (p)} 
                                            {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [4520 4533]
                                  )
                                }
                              spids: [4519]
                            )
                          ]
                          spids: [4519]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (DParen
                      child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:sed_index))
                      spids: [4535 4539]
                    )
                    (Sentence
                      child: 
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:SYNC_CRONDAILY)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C {(sed)} {(-n)} {(DQ ($ VSub_Name '$sed_index')) (p)} 
                                            {(DQ ($ VSub_Name '$FP_DIETPISYNC_SETTINGS'))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [4543 4556]
                                  )
                                }
                              spids: [4542]
                            )
                          ]
                          spids: [4542]
                        )
                      terminator: <Op_Semi ';'>
                    )
                    (DParen
                      child: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:sed_index))
                      spids: [4558 4562]
                    )
                  ]
                  spids: [16777215 4440]
                )
              ]
              spids: [16777215 4566]
            )
          ]
          spids: [4423]
        )
      spids: [4420 4423]
    )
    (C {(Check_Install_PreReqs)})
    (C {(Read_Settings_File)})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$INPUT')})
                      right: (ArithWord w:{(Lit_Digits 1)})
                    )
                  spids: [4613 4622]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(Run_Sync)})]
          spids: [16777215 4625]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_DEqual
                      left: (ArithWord w:{($ VSub_Name '$INPUT')})
                      right: (ArithWord w:{(Lit_Digits 0)})
                    )
                  spids: [4643 4652]
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (WhileUntil
              keyword: <KW_While while>
              cond: [
                (Sentence
                  child: 
                    (DParen
                      child: 
                        (ArithBinary
                          op_id: Arith_Great
                          left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                          right: (ArithUnary op_id:Node_UnaryMinus child:(ArithWord w:{(Lit_Digits 1)}))
                        )
                      spids: [4661 4671]
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              body: 
                (DoGroup
                  children: [
                    (C {(clear)})
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                      right: (ArithWord w:{(Lit_Digits 0)})
                                    )
                                  spids: [4684 4693]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Menu_Main)})]
                          spids: [16777215 4696]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DPipe]
                                  children: [
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                          right: (ArithWord w:{(Lit_Digits 1)})
                                        )
                                      spids: [4706 4715]
                                    )
                                    (DParen
                                      child: 
                                        (ArithBinary
                                          op_id: Arith_DEqual
                                          left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                          right: (ArithWord w:{(Lit_Digits 2)})
                                        )
                                      spids: [4720 4729]
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Menu_Set_Directories)})]
                          spids: [4704 4732]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                      right: (ArithWord w:{(Lit_Digits 3)})
                                    )
                                  spids: [4742 4751]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Menu_Set_Sync_Delete_Mode)})]
                          spids: [4740 4754]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                      right: (ArithWord w:{(Lit_Digits 4)})
                                    )
                                  spids: [4764 4773]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Menu_Set_Compression)})]
                          spids: [4762 4776]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DParen
                                  child: 
                                    (ArithBinary
                                      op_id: Arith_DEqual
                                      left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')})
                                      right: (ArithWord w:{(Lit_Digits 5)})
                                    )
                                  spids: [4786 4795]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(Menu_Set_CronDaily)})]
                          spids: [4784 4798]
                        )
                      ]
                      spids: [16777215 4806]
                    )
                  ]
                  spids: [4674 4810]
                )
            )
            (C {(Write_Settings_File)})
          ]
          spids: [4641 4655]
        )
      ]
      spids: [16777215 4822]
    )
    (SimpleCommand
      words: [{(rm)} {(DQ ($ VSub_Name '$FP_INCLUDE_GLOBAL'))}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (SimpleCommand
      words: [{(rm)} {(DQ ($ VSub_Name '$FP_EXCLUDE_GLOBAL'))}]
      redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})
  ]
  spids: [3]
)