(CommandList
  children: [
    (C {(Lit_Other ":")} {(generate)} {(list)} {(of)} {(file)} {(servers)})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:dir) op:Equal rhs:{(.)} spids:[85])]
      spids: [85]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:rsh) op:Equal rhs:{(rsh)} spids:[88])]
      spids: [88]
    )
    (While
      cond: [(C {(Lit_Other ":")})]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Pound "$#")}
              arms: [
                (case_arm
                  pat_list: [{(0)}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [104 105 109 -1]
                )
              ]
              spids: [97 101 112]
            )
            (Case
              to_match: {($ VSub_Number "$1")}
              arms: [
                (case_arm
                  pat_list: [{(-) (Lit_Other "[") (dr) (Lit_Other "]")}]
                  action: [
                    (Case
                      to_match: {($ VSub_Pound "$#")}
                      arms: [
                        (case_arm
                          pat_list: [{(1)}]
                          action: [
                            (C {(set)} {(--)} {(SQ <"-?">)})
                            (ControlFlow token:<ControlFlow_Break break>)
                          ]
                          spids: [135 136 150 -1]
                        )
                      ]
                      spids: [128 132 153]
                    )
                    (Case
                      to_match: {($ VSub_Number "$1")}
                      arms: [
                        (case_arm
                          pat_list: [{(-d)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:dir)
                                  op: Equal
                                  rhs: {($ VSub_Number "$2")}
                                  spids: [166]
                                )
                              ]
                              spids: [166]
                            )
                          ]
                          spids: [163 164 169 -1]
                        )
                        (case_arm
                          pat_list: [{(-r)}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:rsh)
                                  op: Equal
                                  rhs: {($ VSub_Number "$2")}
                                  spids: [175]
                                )
                              ]
                              spids: [175]
                            )
                          ]
                          spids: [172 173 178 -1]
                        )
                      ]
                      spids: [156 160 181]
                    )
                    (C {(shift)})
                  ]
                  spids: [122 126 187 -1]
                )
                (case_arm
                  pat_list: [{(SQ <"-?">)}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [191 193 198 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "[") (-) (Lit_Other "+") (Lit_Other "]") (Lit_Other "*")}]
                  action: [
                    (SimpleCommand
                      words: [
                        {(echo)}
                        {(DQ ($ VSub_Number "$0") (": ") ($ VSub_Number "$1") (": invalid option"))}
                      ]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[217])]
                    )
                    (C {(set)} {(--)} {(SQ <"-?">)})
                    (ControlFlow token:<ControlFlow_Break break>)
                  ]
                  spids: [201 206 233 -1]
                )
                (case_arm
                  pat_list: [{(Lit_Other "*")}]
                  action: [(ControlFlow token:<ControlFlow_Break break>)]
                  spids: [236 237 242 -1]
                )
              ]
              spids: [115 119 245]
            )
            (C {(shift)})
          ]
          spids: [95 250]
        )
    )
    (Case
      to_match: {($ VSub_Number "$1")}
      arms: [
        (case_arm
          pat_list: [{(Lit_Other "?") (Lit_Other "*")}]
          action: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [
                    {(echo)}
                    {(DQ ("Usage: ") ($ VSub_Number "$0") (" [-d share-dir] [-r rsh-path]"))}
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[270])]
                )
              terminator: <Op_Semi ";">
            )
            (C {(exit)} {(1)})
          ]
          spids: [258 260 278 -1]
        )
      ]
      spids: [252 256 280]
    )
    (If
      arms: [
        (if_arm
          cond: [(C {(test)} {(KW_Bang "!")} {(-d)} {($ VSub_Name "$dir")})]
          action: [
            (Sentence
              child: 
                (SimpleCommand
                  words: [
                    {(echo)}
                    {(DQ ($ VSub_Number "$0") (": ") ($ VSub_Name "$dir") (": invalid directory"))}
                  ]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[303])]
                )
              terminator: <Op_Semi ";">
            )
            (C {(exit)} {(1)})
          ]
          spids: [-1 292]
        )
      ]
      spids: [-1 311]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:s)
          op: Equal
          rhs: 
            {
              (DQ 
                (CommandSubPart
                  command_list: 
                    (CommandList
                      children: [
                        (Pipeline
                          children: [
                            (SimpleCommand
                              words: [{(df)}]
                              redirects: [
                                (Redir
                                  op_id: Redir_Great
                                  fd: 2
                                  arg_word: {(/dev/null)}
                                  spids: [318]
                                )
                              ]
                            )
                            (C {(sed)} {(-e)} {(SQ <"s/^[^(]*(//">)} {(-e)} 
                              {
                                (SQ 
                                  <
"/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*:/!d"
                                  >
                                )
                              } {(-e)} {(SQ <"s/:.*//">)} {(-e)} {(SQ <"/^.$/d">)}
                            )
                            (C {(sort)} {(-u)})
                          ]
                          negated: False
                        )
                      ]
                    )
                  left_token: <Left_Backtick "`">
                  spids: [315 354]
                )
              )
            }
          spids: [313]
        )
      ]
      spids: [313]
    )
    (Case
      to_match: {($ VSub_Name "$s")}
      arms: [
        (case_arm
          pat_list: [{(DQ )}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:s)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (AndOr
                                children: [
                                  (SimpleCommand
                                    words: [{(hostname)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [371]
                                      )
                                    ]
                                  )
                                  (AndOr
                                    children: [
                                      (SimpleCommand
                                        words: [{(uname)} {(-n)}]
                                        redirects: [
                                          (Redir
                                            op_id: Redir_Great
                                            fd: 2
                                            arg_word: {(/dev/null)}
                                            spids: [380]
                                          )
                                        ]
                                      )
                                      (AndOr
                                        children: [
                                          (SimpleCommand
                                            words: [{(cat)} {(/etc/whoami)}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Great
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                                spids: [389]
                                              )
                                            ]
                                          )
                                          (SimpleCommand
                                            words: [{(echo)} {(Assign_Local local)}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Great
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                                spids: [398]
                                              )
                                            ]
                                          )
                                        ]
                                        op_id: Op_DPipe
                                      )
                                    ]
                                    op_id: Op_DPipe
                                  )
                                ]
                                op_id: Op_DPipe
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [368 400]
                      )
                    }
                  spids: [367]
                )
              ]
              spids: [367]
            )
          ]
          spids: [-1 365 403 -1]
        )
        (case_arm
          pat_list: [{(Lit_Other "*")}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:p)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (SimpleCommand
                                    words: [{(df)} {($ VSub_Name "$dir") (/.)}]
                                    redirects: [
                                      (Redir
                                        op_id: Redir_Great
                                        fd: 2
                                        arg_word: {(/dev/null)}
                                        spids: [415]
                                      )
                                    ]
                                  )
                                  (C {(sed)} {(-e)} {(SQ <"s/^[^(]*(//">)} {(-e)} 
                                    {
                                      (SQ 
                                        <
"/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*:/!d"
                                        >
                                      )
                                    } {(-e)} {(SQ <"s/:.*//">)} {(-e)} {(SQ <"/^.$/d">)}
                                  )
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [409 445]
                      )
                    }
                  spids: [408]
                )
              ]
              spids: [408]
            )
            (Case
              to_match: {($ VSub_Name "$p")}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:p)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (AndOr
                                        children: [
                                          (SimpleCommand
                                            words: [{(hostname)}]
                                            redirects: [
                                              (Redir
                                                op_id: Redir_Great
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                                spids: [463]
                                              )
                                            ]
                                          )
                                          (AndOr
                                            children: [
                                              (SimpleCommand
                                                words: [{(uname)} {(-n)}]
                                                redirects: [
                                                  (Redir
                                                    op_id: Redir_Great
                                                    fd: 2
                                                    arg_word: {(/dev/null)}
                                                    spids: [472]
                                                  )
                                                ]
                                              )
                                              (AndOr
                                                children: [
                                                  (SimpleCommand
                                                    words: [{(cat)} {(/etc/whoami)}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Great
                                                        fd: 2
                                                        arg_word: {(/dev/null)}
                                                        spids: [481]
                                                      )
                                                    ]
                                                  )
                                                  (SimpleCommand
                                                    words: [{(echo)} {(Assign_Local local)}]
                                                    redirects: [
                                                      (Redir
                                                        op_id: Redir_Great
                                                        fd: 2
                                                        arg_word: {(/dev/null)}
                                                        spids: [490]
                                                      )
                                                    ]
                                                  )
                                                ]
                                                op_id: Op_DPipe
                                              )
                                            ]
                                            op_id: Op_DPipe
                                          )
                                        ]
                                        op_id: Op_DPipe
                                      )
                                    ]
                                  )
                                left_token: <Left_Backtick "`">
                                spids: [460 492]
                              )
                            }
                          spids: [459]
                        )
                      ]
                      spids: [459]
                    )
                  ]
                  spids: [-1 457 494 -1]
                )
              ]
              spids: [448 452 497]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:t)
                  op: Equal
                  rhs: {($ VSub_Name "$s")}
                  spids: [500]
                )
              ]
              spids: [500]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:s)
                  op: Equal
                  rhs: {($ VSub_Name "$p")}
                  spids: [504]
                )
              ]
              spids: [504]
            )
            (ForEach
              iter_name: h
              iter_words: [{($ VSub_Name "$t")}]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Case
                      to_match: {($ VSub_Name "$s")}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other "*") ($ VSub_Name "$h") (Lit_Other "*")}]
                          spids: [526 529 531 -1]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other "*")}]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:s)
                                  op: Equal
                                  rhs: {(DQ ($ VSub_Name "$s") ("\n") ($ VSub_Name "$h"))}
                                  spids: [537]
                                )
                              ]
                              spids: [537]
                            )
                          ]
                          spids: [534 535 544 -1]
                        )
                      ]
                      spids: [519 523 547]
                    )
                  ]
                  spids: [517 550]
                )
              spids: [513 -1]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:t)
                  op: Equal
                  rhs: {($ VSub_Name "$s")}
                  spids: [553]
                )
              ]
              spids: [553]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:s)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (Pipeline
                                children: [
                                  (Subshell
                                    child: 
                                      (CommandList
                                        children: [
                                          (Sentence
                                            child: (C {(echo)} {(DQ ($ VSub_Name "$t"))})
                                            terminator: <Op_Semi ";">
                                          )
                                          (ForEach
                                            iter_name: h
                                            iter_words: [{($ VSub_Name "$t")}]
                                            do_arg_iter: False
                                            body: 
                                              (DoGroup
                                                children: [
                                                  (Pipeline
                                                    children: [
                                                      (C {($ VSub_Name "$rsh")} {($ VSub_Name "$h")} 
                                                        {(df)} {(SQ <"2>/dev/null">)}
                                                      )
                                                      (C {(sed)} {(-e)} {(SQ <"s/^[^(]*(//">)} {(-e)} 
                                                        {
                                                          (SQ 
                                                            <
"/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*:/!d"
                                                            >
                                                          )
                                                        } {(-e)} {(SQ <"s/:.*//">)}
                                                      )
                                                    ]
                                                    negated: False
                                                  )
                                                ]
                                                spids: [576 611]
                                              )
                                            spids: [572 -1]
                                          )
                                        ]
                                      )
                                    spids: [559 612]
                                  )
                                  (C {(sort)})
                                  (C {(uniq)} {(-c)})
                                  (C {(sort)} {(-bnr)})
                                  (C {(sed)} {(-e)} {(SQ <"s/^[ \t]*[0-9]*[ \t]*//">)})
                                ]
                                negated: False
                              )
                            ]
                          )
                        left_token: <Left_Backtick "`">
                        spids: [558 639]
                      )
                    }
                  spids: [557]
                )
              ]
              spids: [557]
            )
          ]
          spids: [405 406 642 -1]
        )
      ]
      spids: [357 361 644]
    )
    (C {(echo)} {(SQ <"#">)})
    (C {(echo)} {(SQ <"# local file servers">)})
    (C {(echo)} {(SQ <"#">)})
    (C {(echo)} {(DQ ($ VSub_Name "$s"))})
  ]
)