(command.CommandList
  children: [
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <gawk>
          more_env: []
          words: [{<gawk>} {<--version>}]
          redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ ($ Id.VSub_Number 1))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <--version>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [{<printf>} {(SQ <'0.23\\n'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
              ]
              ops: [<Id.Op_DAmp _>]
            )
          ]
          spids: [119 136]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <usage>
      name: usage
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <printf>
              more_env: []
              words: [
                {<printf>}
                {(SQ <'%s\\n'>)}
                {
                  (SQ <'This utility converts ANSI codes in data passed to stdin\n'> 
                    <'It has 4 optional parameters:\n'> <'--bg=dark --palette=linux|solarized|tango|xterm --css-only|--body-only\n'> 
                    <'E.g.: ls -l --color=always | ansi2html.sh --bg=dark > ls.html'>
                  )
                }
              ]
              redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      blame_tok: <Id.Lit_LBracket '['>
                      more_env: []
                      words: [
                        {<Id.Lit_LBracket '['>}
                        {(DQ ($ Id.VSub_Number 1))}
                        {<Id.Lit_Equals '='>}
                        {(DQ <--help>)}
                        {<Id.Lit_RBracket ']'>}
                      ]
                      redirects: []
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.Simple
              blame_tok: <usage>
              more_env: []
              words: [{<usage>}]
              redirects: []
              do_fork: T
            )
          ]
          spids: [181 198]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.ShFunction
      name_tok: <processArg>
      name: processArg
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_Number 1))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <'--bg=dark'>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'dark_bg='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'dark_bg='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dark_bg='> name:dark_bg)
                              op: assign_op.Equal
                              rhs: {<yes>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_Number 1))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <--css-only>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'css_only='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'css_only='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'css_only='> name:css_only)
                              op: assign_op.Equal
                              rhs: {<yes>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_Number 1))}
                    {<Id.Lit_Equals '='>}
                    {(DQ <--body-only>)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (BraceGroup
                  left: <Id.Lit_LBrace '{'>
                  children: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'body_only='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'body_only='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'body_only='>
                                  name: body_only
                                )
                              op: assign_op.Equal
                              rhs: {<yes>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  redirects: []
                  right: <Id.Lit_RBrace '}'>
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_Number 1))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <'--palette=solarized'>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P0='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P0='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P0='> name:P0)
                              op: assign_op.Equal
                              rhs: {<073642>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P1='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P1='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P1='> name:P1)
                              op: assign_op.Equal
                              rhs: {<D30102>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P2='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P2='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P2='> name:P2)
                              op: assign_op.Equal
                              rhs: {<859900>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P3='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P3='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P3='> name:P3)
                              op: assign_op.Equal
                              rhs: {<B58900>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P4='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P4='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P4='> name:P4)
                              op: assign_op.Equal
                              rhs: {<268BD2>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P5='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P5='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P5='> name:P5)
                              op: assign_op.Equal
                              rhs: {<D33682>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P6='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P6='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P6='> name:P6)
                              op: assign_op.Equal
                              rhs: {<2AA198>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P7='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P7='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P7='> name:P7)
                              op: assign_op.Equal
                              rhs: {<EEE8D5>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P8='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P8='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P8='> name:P8)
                              op: assign_op.Equal
                              rhs: {<002B36>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P9='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P9='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P9='> name:P9)
                              op: assign_op.Equal
                              rhs: {<CB4B16>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P10='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P10='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P10='> name:P10)
                              op: assign_op.Equal
                              rhs: {<586E75>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P11='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P11='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P11='> name:P11)
                              op: assign_op.Equal
                              rhs: {<657B83>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P12='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P12='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P12='> name:P12)
                              op: assign_op.Equal
                              rhs: {<839496>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P13='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P13='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P13='> name:P13)
                              op: assign_op.Equal
                              rhs: {<6C71C4>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P14='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P14='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P14='> name:P14)
                              op: assign_op.Equal
                              rhs: {<93A1A1>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P15='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P15='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P15='> name:P15)
                              op: assign_op.Equal
                              rhs: {<FDF6E3>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [297 314]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_Number 1))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <'--palette=solarized-xterm'>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P0='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P0='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P0='> name:P0)
                              op: assign_op.Equal
                              rhs: {<262626>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P1='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P1='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P1='> name:P1)
                              op: assign_op.Equal
                              rhs: {<AF0000>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P2='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P2='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P2='> name:P2)
                              op: assign_op.Equal
                              rhs: {<5F8700>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P3='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P3='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P3='> name:P3)
                              op: assign_op.Equal
                              rhs: {<AF8700>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P4='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P4='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P4='> name:P4)
                              op: assign_op.Equal
                              rhs: {<0087FF>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P5='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P5='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P5='> name:P5)
                              op: assign_op.Equal
                              rhs: {<AF005F>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P6='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P6='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P6='> name:P6)
                              op: assign_op.Equal
                              rhs: {<00AFAF>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P7='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P7='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P7='> name:P7)
                              op: assign_op.Equal
                              rhs: {<E4E4E4>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P8='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P8='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P8='> name:P8)
                              op: assign_op.Equal
                              rhs: {<1C1C1C>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P9='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P9='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P9='> name:P9)
                              op: assign_op.Equal
                              rhs: {<D75F00>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P10='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P10='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P10='> name:P10)
                              op: assign_op.Equal
                              rhs: {<585858>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P11='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P11='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P11='> name:P11)
                              op: assign_op.Equal
                              rhs: {<626262>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P12='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P12='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P12='> name:P12)
                              op: assign_op.Equal
                              rhs: {<808080>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P13='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P13='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P13='> name:P13)
                              op: assign_op.Equal
                              rhs: {<5F5FAF>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P14='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P14='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P14='> name:P14)
                              op: assign_op.Equal
                              rhs: {<8A8A8A>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P15='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P15='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P15='> name:P15)
                              op: assign_op.Equal
                              rhs: {<FFFFD7>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [393 410]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_Number 1))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <'--palette=tango'>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P0='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P0='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P0='> name:P0)
                              op: assign_op.Equal
                              rhs: {<000000>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P1='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P1='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P1='> name:P1)
                              op: assign_op.Equal
                              rhs: {<CC0000>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P2='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P2='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P2='> name:P2)
                              op: assign_op.Equal
                              rhs: {<4E9A06>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P3='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P3='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P3='> name:P3)
                              op: assign_op.Equal
                              rhs: {<C4A000>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P4='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P4='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P4='> name:P4)
                              op: assign_op.Equal
                              rhs: {<3465A4>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P5='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P5='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P5='> name:P5)
                              op: assign_op.Equal
                              rhs: {<75507B>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P6='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P6='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P6='> name:P6)
                              op: assign_op.Equal
                              rhs: {<06989A>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P7='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P7='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P7='> name:P7)
                              op: assign_op.Equal
                              rhs: {<D3D7CF>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P8='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P8='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P8='> name:P8)
                              op: assign_op.Equal
                              rhs: {<555753>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P9='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P9='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P9='> name:P9)
                              op: assign_op.Equal
                              rhs: {<EF2929>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P10='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P10='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P10='> name:P10)
                              op: assign_op.Equal
                              rhs: {<8AE234>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P11='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P11='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P11='> name:P11)
                              op: assign_op.Equal
                              rhs: {<FCE94F>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P12='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P12='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P12='> name:P12)
                              op: assign_op.Equal
                              rhs: {<729FCF>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P13='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P13='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P13='> name:P13)
                              op: assign_op.Equal
                              rhs: {<AD7FA8>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P14='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P14='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P14='> name:P14)
                              op: assign_op.Equal
                              rhs: {<34E2E2>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P15='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P15='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P15='> name:P15)
                              op: assign_op.Equal
                              rhs: {<EEEEEC>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [489 506]
                )
                (IfArm
                  keyword: <Id.KW_Elif elif>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <Id.Lit_LBracket '['>
                              more_env: []
                              words: [
                                {<Id.Lit_LBracket '['>}
                                {(DQ ($ Id.VSub_Number 1))}
                                {<Id.Lit_Equals '='>}
                                {(DQ <'--palette=xterm'>)}
                                {<Id.Lit_RBracket ']'>}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P0='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P0='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P0='> name:P0)
                              op: assign_op.Equal
                              rhs: {<000000>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P1='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P1='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P1='> name:P1)
                              op: assign_op.Equal
                              rhs: {<CD0000>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P2='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P2='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P2='> name:P2)
                              op: assign_op.Equal
                              rhs: {<00CD00>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P3='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P3='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P3='> name:P3)
                              op: assign_op.Equal
                              rhs: {<CDCD00>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P4='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P4='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P4='> name:P4)
                              op: assign_op.Equal
                              rhs: {<0000EE>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P5='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P5='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P5='> name:P5)
                              op: assign_op.Equal
                              rhs: {<CD00CD>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P6='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P6='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P6='> name:P6)
                              op: assign_op.Equal
                              rhs: {<00CDCD>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P7='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P7='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P7='> name:P7)
                              op: assign_op.Equal
                              rhs: {<E5E5E5>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P8='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P8='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P8='> name:P8)
                              op: assign_op.Equal
                              rhs: {<7F7F7F>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P9='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P9='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P9='> name:P9)
                              op: assign_op.Equal
                              rhs: {<FF0000>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P10='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P10='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P10='> name:P10)
                              op: assign_op.Equal
                              rhs: {<00FF00>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P11='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P11='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P11='> name:P11)
                              op: assign_op.Equal
                              rhs: {<FFFF00>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P12='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P12='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P12='> name:P12)
                              op: assign_op.Equal
                              rhs: {<5C5CFF>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P13='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P13='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P13='> name:P13)
                              op: assign_op.Equal
                              rhs: {<FF00FF>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P14='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P14='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P14='> name:P14)
                              op: assign_op.Equal
                              rhs: {<00FFFF>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'P15='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'P15='>
                              lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P15='> name:P15)
                              op: assign_op.Equal
                              rhs: {<FFFFFF>}
                            )
                          ]
                          redirects: []
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.Sentence
                      child: (command.ControlFlow keyword:<Id.ControlFlow_Return return>)
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  spids: [585 602]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P0='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P0='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P0='> name:P0)
                          op: assign_op.Equal
                          rhs: {<000000>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P1='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P1='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P1='> name:P1)
                          op: assign_op.Equal
                          rhs: {<AA0000>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P2='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P2='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P2='> name:P2)
                          op: assign_op.Equal
                          rhs: {<00AA00>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P3='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P3='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P3='> name:P3)
                          op: assign_op.Equal
                          rhs: {<AA5500>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P4='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P4='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P4='> name:P4)
                          op: assign_op.Equal
                          rhs: {<0000AA>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P5='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P5='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P5='> name:P5)
                          op: assign_op.Equal
                          rhs: {<AA00AA>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P6='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P6='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P6='> name:P6)
                          op: assign_op.Equal
                          rhs: {<00AAAA>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P7='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P7='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P7='> name:P7)
                          op: assign_op.Equal
                          rhs: {<AAAAAA>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P8='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P8='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P8='> name:P8)
                          op: assign_op.Equal
                          rhs: {<555555>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P9='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P9='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P9='> name:P9)
                          op: assign_op.Equal
                          rhs: {<FF5555>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P10='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P10='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P10='> name:P10)
                          op: assign_op.Equal
                          rhs: {<55FF55>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P11='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P11='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P11='> name:P11)
                          op: assign_op.Equal
                          rhs: {<FFFF55>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P12='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P12='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P12='> name:P12)
                          op: assign_op.Equal
                          rhs: {<5555FF>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P13='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P13='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P13='> name:P13)
                          op: assign_op.Equal
                          rhs: {<FF55FF>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P14='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P14='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P14='> name:P14)
                          op: assign_op.Equal
                          rhs: {<55FFFF>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.ShAssignment
                      left: <Id.Lit_VarLike 'P15='>
                      pairs: [
                        (AssignPair
                          left: <Id.Lit_VarLike 'P15='>
                          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'P15='> name:P15)
                          op: assign_op.Equal
                          rhs: {<FFFFFF>}
                        )
                      ]
                      redirects: []
                    )
                  terminator: <Id.Op_Semi _>
                )
                (command.Sentence
                  child: 
                    (command.AndOr
                      children: [
                        (command.Simple
                          blame_tok: <Id.Lit_LBracket '['>
                          more_env: []
                          words: [
                            {<Id.Lit_LBracket '['>}
                            {(DQ ($ Id.VSub_Number 1))}
                            {<Id.Lit_Equals '='>}
                            {(DQ <'--palette=linux'>)}
                            {<Id.Lit_RBracket ']'>}
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ControlFlow
                          keyword: <Id.ControlFlow_Return return>
                        )
                      ]
                      ops: [<Id.Op_DAmp _>]
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <processArg>
      more_env: []
      words: [{<processArg>}]
      redirects: []
      do_fork: T
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [var]
      iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}])
      semi_tok: <Id.Op_Semi _>
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <processArg>
                  more_env: []
                  words: [{<processArg>} {($ Id.VSub_DollarName var)}]
                  redirects: []
                  do_fork: T
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [{<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName css_only))} {<Id.Lit_RBracket ']'>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [
            {<Id.Lit_LBracket '['>}
            {(DQ ($ Id.VSub_DollarName body_only))}
            {<Id.Lit_RBracket ']'>}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <usage>
          more_env: []
          words: [{<usage>}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _> <Id.Op_DAmp _>]
    )
    (command.If
      if_kw: <Id.KW_If if>
      arms: [
        (IfArm
          keyword: <Id.KW_If if>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Pipeline
                      negated: <Id.KW_Bang '!'>
                      children: [
                        (command.Simple
                          blame_tok: <sed>
                          more_env: []
                          words: [{<sed>} {<--version>}]
                          redirects: [
                            (Redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                            (Redir
                              op: <Id.Redir_GreatAnd '2>&'>
                              loc: (redir_loc.Fd fd:2)
                              arg: {<1>}
                            )
                          ]
                          do_fork: T
                        )
                      ]
                      ops: []
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          then_kw: <Id.KW_Then then>
          action: [
            (command.If
              if_kw: <Id.KW_If if>
              arms: [
                (IfArm
                  keyword: <Id.KW_If if>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <gsed>
                              more_env: []
                              words: [{<gsed>} {<--version>}]
                              redirects: [
                                (Redir
                                  op: <Id.Redir_Great '>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                                (Redir
                                  op: <Id.Redir_GreatAnd '2>&'>
                                  loc: (redir_loc.Fd fd:2)
                                  arg: {<1>}
                                )
                              ]
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  then_kw: <Id.KW_Then then>
                  action: [
                    (command.Simple
                      blame_tok: <alias>
                      more_env: []
                      words: [{<alias>} {<Id.Lit_VarLike 'sed='> <gsed>}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  spids: [848 861]
                )
              ]
              else_kw: <Id.KW_Else else>
              else_action: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ <'Error, can\'t find an acceptable GNU sed.'>)}]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
                (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
              ]
              fi_kw: <Id.KW_Fi fi>
              redirects: []
            )
          ]
          spids: [830 845]
        )
      ]
      else_action: []
      fi_kw: <Id.KW_Fi fi>
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [{<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName css_only))} {<Id.Lit_RBracket ']'>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [
            {<Id.Lit_LBracket '['>}
            {(DQ ($ Id.VSub_DollarName body_only))}
            {<Id.Lit_RBracket ']'>}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <printf>
          more_env: []
          words: [
            {<printf>}
            {(SQ <'%s'>)}
            {
              (DQ <'<html>\n'> <'<head>\n'> <'<meta http-equiv='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <Content-Type> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' content='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'text/html; charset=utf-8'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <'/>\n'> <'<style type='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'text/css'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>\n'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [
            {<Id.Lit_LBracket '['>}
            {(DQ ($ Id.VSub_DollarName body_only))}
            {<Id.Lit_RBracket ']'>}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <printf>
          more_env: []
          words: [
            {<printf>}
            {
              (DQ <'.ef0,.f0 { color: #'> ($ Id.VSub_DollarName P0) 
                <'; } .eb0,.b0 { background-color: #'> ($ Id.VSub_DollarName P0) <'; }\n'> <'.ef1,.f1 { color: #'> ($ Id.VSub_DollarName P1) 
                <'; } .eb1,.b1 { background-color: #'> ($ Id.VSub_DollarName P1) <'; }\n'> <'.ef2,.f2 { color: #'> ($ Id.VSub_DollarName P2) 
                <'; } .eb2,.b2 { background-color: #'> ($ Id.VSub_DollarName P2) <'; }\n'> <'.ef3,.f3 { color: #'> ($ Id.VSub_DollarName P3) 
                <'; } .eb3,.b3 { background-color: #'> ($ Id.VSub_DollarName P3) <'; }\n'> <'.ef4,.f4 { color: #'> ($ Id.VSub_DollarName P4) 
                <'; } .eb4,.b4 { background-color: #'> ($ Id.VSub_DollarName P4) <'; }\n'> <'.ef5,.f5 { color: #'> ($ Id.VSub_DollarName P5) 
                <'; } .eb5,.b5 { background-color: #'> ($ Id.VSub_DollarName P5) <'; }\n'> <'.ef6,.f6 { color: #'> ($ Id.VSub_DollarName P6) 
                <'; } .eb6,.b6 { background-color: #'> ($ Id.VSub_DollarName P6) <'; }\n'> <'.ef7,.f7 { color: #'> ($ Id.VSub_DollarName P7) 
                <'; } .eb7,.b7 { background-color: #'> ($ Id.VSub_DollarName P7) <'; }\n'> <'.ef8, .f0 > .bold,.bold > .f0 { color: #'> 
                ($ Id.VSub_DollarName P8) <'; font-weight: normal; }\n'> <'.ef9, .f1 > .bold,.bold > .f1 { color: #'> ($ Id.VSub_DollarName P9) 
                <'; font-weight: normal; }\n'> <'.ef10,.f2 > .bold,.bold > .f2 { color: #'> ($ Id.VSub_DollarName P10) <'; font-weight: normal; }\n'> 
                <'.ef11,.f3 > .bold,.bold > .f3 { color: #'> ($ Id.VSub_DollarName P11) <'; font-weight: normal; }\n'> <'.ef12,.f4 > .bold,.bold > .f4 { color: #'> 
                ($ Id.VSub_DollarName P12) <'; font-weight: normal; }\n'> <'.ef13,.f5 > .bold,.bold > .f5 { color: #'> ($ Id.VSub_DollarName P13) 
                <'; font-weight: normal; }\n'> <'.ef14,.f6 > .bold,.bold > .f6 { color: #'> ($ Id.VSub_DollarName P14) <'; font-weight: normal; }\n'> 
                <'.ef15,.f7 > .bold,.bold > .f7 { color: #'> ($ Id.VSub_DollarName P15) <'; font-weight: normal; }\n'> <'.eb8  { background-color: #'> 
                ($ Id.VSub_DollarName P8) <'; }\n'> <'.eb9  { background-color: #'> ($ Id.VSub_DollarName P9) <'; }\n'> 
                <'.eb10 { background-color: #'> ($ Id.VSub_DollarName P10) <'; }\n'> <'.eb11 { background-color: #'> ($ Id.VSub_DollarName P11) <'; }\n'> 
                <'.eb12 { background-color: #'> ($ Id.VSub_DollarName P12) <'; }\n'> <'.eb13 { background-color: #'> ($ Id.VSub_DollarName P13) <'; }\n'> 
                <'.eb14 { background-color: #'> ($ Id.VSub_DollarName P14) <'; }\n'> <'.eb15 { background-color: #'> ($ Id.VSub_DollarName P15) <'; }\n'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [red]
      iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>} {<4>} {<5>}])
      semi_tok: <Id.Op_Semi _>
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [green]
              iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>} {<4>} {<5>}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [blue]
                      iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>} {<4>} {<5>}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'c='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'c='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        left: <Id.Left_DollarDParen '$(('>
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Plus
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Plus
                                                    left: {<Id.Lit_Digits 16>}
                                                    right: 
                                                      (arith_expr.Binary
                                                        op_id: Id.Arith_Star
                                                        left: {($ Id.VSub_DollarName red)}
                                                        right: {<Id.Lit_Digits 36>}
                                                      )
                                                  )
                                                right: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: {($ Id.VSub_DollarName green)}
                                                    right: {<Id.Lit_Digits 6>}
                                                  )
                                              )
                                            right: {($ Id.VSub_DollarName blue)}
                                          )
                                        right: <Id.Right_DollarDParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'r='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'r='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        left: <Id.Left_DollarDParen '$(('>
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Star
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: {($ Id.VSub_DollarName red)}
                                                    right: {<Id.Lit_Digits 40>}
                                                  )
                                                right: {<Id.Lit_Digits 55>}
                                              )
                                            right: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Great
                                                left: {($ Id.VSub_DollarName red)}
                                                right: {<Id.Lit_Digits 0>}
                                              )
                                          )
                                        right: <Id.Right_DollarDParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'g='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'g='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'g='> name:g)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        left: <Id.Left_DollarDParen '$(('>
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Star
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: {($ Id.VSub_DollarName green)}
                                                    right: {<Id.Lit_Digits 40>}
                                                  )
                                                right: {<Id.Lit_Digits 55>}
                                              )
                                            right: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Great
                                                left: {($ Id.VSub_DollarName green)}
                                                right: {<Id.Lit_Digits 0>}
                                              )
                                          )
                                        right: <Id.Right_DollarDParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.ShAssignment
                              left: <Id.Lit_VarLike 'b='>
                              pairs: [
                                (AssignPair
                                  left: <Id.Lit_VarLike 'b='>
                                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b='> name:b)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (word_part.ArithSub
                                        left: <Id.Left_DollarDParen '$(('>
                                        anode: 
                                          (arith_expr.Binary
                                            op_id: Id.Arith_Star
                                            left: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Plus
                                                left: 
                                                  (arith_expr.Binary
                                                    op_id: Id.Arith_Star
                                                    left: {($ Id.VSub_DollarName blue)}
                                                    right: {<Id.Lit_Digits 40>}
                                                  )
                                                right: {<Id.Lit_Digits 55>}
                                              )
                                            right: 
                                              (arith_expr.Binary
                                                op_id: Id.Arith_Great
                                                left: {($ Id.VSub_DollarName blue)}
                                                right: {<Id.Lit_Digits 0>}
                                              )
                                          )
                                        right: <Id.Right_DollarDParen _>
                                      )
                                    }
                                )
                              ]
                              redirects: []
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(DQ ($ Id.VSub_DollarName body_only))}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <printf>
                                  more_env: []
                                  words: [
                                    {<printf>}
                                    {(DQ <'.ef%d { color: #%2.2x%2.2x%2.2x; } '>)}
                                    {($ Id.VSub_DollarName c)}
                                    {($ Id.VSub_DollarName r)}
                                    {($ Id.VSub_DollarName g)}
                                    {($ Id.VSub_DollarName b)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                            (command.AndOr
                              children: [
                                (command.Simple
                                  blame_tok: <Id.Lit_LBracket '['>
                                  more_env: []
                                  words: [
                                    {<Id.Lit_LBracket '['>}
                                    {(DQ ($ Id.VSub_DollarName body_only))}
                                    {<Id.Lit_RBracket ']'>}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                                (command.Simple
                                  blame_tok: <printf>
                                  more_env: []
                                  words: [
                                    {<printf>}
                                    {
                                      (DQ <'.eb%d { background-color: #%2.2x%2.2x%2.2x; }'> 
                                        <Id.Lit_BadBackslash '\\'> <n>
                                      )
                                    }
                                    {($ Id.VSub_DollarName c)}
                                    {($ Id.VSub_DollarName r)}
                                    {($ Id.VSub_DollarName g)}
                                    {($ Id.VSub_DollarName b)}
                                  ]
                                  redirects: []
                                  do_fork: T
                                )
                              ]
                              ops: [<Id.Op_DPipe _>]
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.ForEach
      keyword: <Id.KW_For for>
      iter_names: [gray]
      iterable: 
        (for_iter.Words
          words: [
            {
              (CommandSub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Simple
                    blame_tok: <seq>
                    more_env: []
                    words: [{<seq>} {<0>} {<23>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Eof_RParen _>
              )
            }
          ]
        )
      semi_tok: <Id.Op_Semi _>
      body: 
        (command.DoGroup
          left: <Id.KW_Do do>
          children: [
            (command.ShAssignment
              left: <Id.Lit_VarLike 'c='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'c='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'c='> name:c)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: {($ Id.VSub_DollarName gray)}
                            right: {<Id.Lit_Digits 232>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'l='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'l='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'l='> name:l)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (word_part.ArithSub
                        left: <Id.Left_DollarDParen '$(('>
                        anode: 
                          (arith_expr.Binary
                            op_id: Id.Arith_Plus
                            left: 
                              (arith_expr.Binary
                                op_id: Id.Arith_Star
                                left: {($ Id.VSub_DollarName gray)}
                                right: {<Id.Lit_Digits 10>}
                              )
                            right: {<Id.Lit_Digits 8>}
                          )
                        right: <Id.Right_DollarDParen _>
                      )
                    }
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName body_only))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {(DQ <'.ef%d { color: #%2.2x%2.2x%2.2x; } '>)}
                    {($ Id.VSub_DollarName c)}
                    {($ Id.VSub_DollarName l)}
                    {($ Id.VSub_DollarName l)}
                    {($ Id.VSub_DollarName l)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {(DQ ($ Id.VSub_DollarName body_only))}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <printf>
                  more_env: []
                  words: [
                    {<printf>}
                    {
                      (DQ <'.eb%d { background-color: #%2.2x%2.2x%2.2x; }'> <Id.Lit_BadBackslash '\\'> 
                        <n>
                      )
                    }
                    {($ Id.VSub_DollarName c)}
                    {($ Id.VSub_DollarName l)}
                    {($ Id.VSub_DollarName l)}
                    {($ Id.VSub_DollarName l)}
                  ]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          right: <Id.KW_Done done>
        )
      redirects: []
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [
            {<Id.Lit_LBracket '['>}
            {(DQ ($ Id.VSub_DollarName body_only))}
            {<Id.Lit_RBracket ']'>}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <printf>
          more_env: []
          words: [
            {<printf>}
            {(SQ <'%s'>)}
            {(SQ <'\n'> <'.f9 { color: '>) 
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.AndOr
                    children: [
                      (command.Simple
                        blame_tok: <Id.Lit_LBracket '['>
                        more_env: []
                        words: [
                          {<Id.Lit_LBracket '['>}
                          {(DQ ($ Id.VSub_DollarName dark_bg))}
                          {<Id.Lit_RBracket ']'>}
                        ]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <printf>
                        more_env: []
                        words: [{<printf>} {(DQ <'#'> ($ Id.VSub_DollarName P7) <';'>)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <printf>
                        more_env: []
                        words: [{<printf>} {(DQ <'#'> ($ Id.VSub_DollarName P0) <';'>)}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
                  )
                right: <Id.Backtick_Right '`'>
              ) (SQ <' }\n'> <'.b9 { background-color: #'>) 
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.AndOr
                    children: [
                      (command.Simple
                        blame_tok: <Id.Lit_LBracket '['>
                        more_env: []
                        words: [
                          {<Id.Lit_LBracket '['>}
                          {(DQ ($ Id.VSub_DollarName dark_bg))}
                          {<Id.Lit_RBracket ']'>}
                        ]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <printf>
                        more_env: []
                        words: [{<printf>} {($ Id.VSub_DollarName P0)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <printf>
                        more_env: []
                        words: [{<printf>} {($ Id.VSub_DollarName P15)}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
                  )
                right: <Id.Backtick_Right '`'>
              ) 
              (SQ <'; }\n'> <'.f9 > .bold,.bold > .f9, body.f9 > pre > .bold {\n'> 
                <'  /* Bold is heavy black on white, or bright white\n'> <'     depending on the default background */\n'> <'  color: '>
              ) 
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.AndOr
                    children: [
                      (command.Simple
                        blame_tok: <Id.Lit_LBracket '['>
                        more_env: []
                        words: [
                          {<Id.Lit_LBracket '['>}
                          {(DQ ($ Id.VSub_DollarName dark_bg))}
                          {<Id.Lit_RBracket ']'>}
                        ]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <printf>
                        more_env: []
                        words: [{<printf>} {(DQ <'#'> ($ Id.VSub_DollarName P15) <';'>)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <printf>
                        more_env: []
                        words: [{<printf>} {(DQ <'#'> ($ Id.VSub_DollarName P0) <';'>)}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
                  )
                right: <Id.Backtick_Right '`'>
              ) (SQ <'\n'> <'  font-weight: '>) 
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.AndOr
                    children: [
                      (command.Simple
                        blame_tok: <Id.Lit_LBracket '['>
                        more_env: []
                        words: [
                          {<Id.Lit_LBracket '['>}
                          {(DQ ($ Id.VSub_DollarName dark_bg))}
                          {<Id.Lit_RBracket ']'>}
                        ]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <printf>
                        more_env: []
                        words: [{<printf>} {(SQ <'normal;'>)}]
                        redirects: []
                        do_fork: T
                      )
                      (command.Simple
                        blame_tok: <printf>
                        more_env: []
                        words: [{<printf>} {(SQ <'bold;'>)}]
                        redirects: []
                        do_fork: T
                      )
                    ]
                    ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>]
                  )
                right: <Id.Backtick_Right '`'>
              ) 
              (SQ <'\n'> <'}\n'> <'.reverse {\n'> 
                <'  /* CSS does not support swapping fg and bg colours unfortunately,\n'> <'     so just hardcode something that will look OK on all backgrounds. */\n'> <'  '>
              ) (DQ <'color: #'> ($ Id.VSub_DollarName P0) <'; background-color: #'> ($ Id.VSub_DollarName P7) <';'>) 
              (SQ <'\n'> <'}\n'> <'.underline { text-decoration: underline; }\n'> 
                <'.line-through { text-decoration: line-through; }\n'> <'.blink { text-decoration: blink; }\n'> <'\n'> <'/* Avoid pixels between adjacent span elements.\n'> 
                <'   Note this only works for lines less than 80 chars\n'> <'   where we close span elements on the same line.\n'> <'span { display: inline-block; }\n'> <'*/\n'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [
            {<Id.Lit_LBracket '['>}
            {(DQ ($ Id.VSub_DollarName body_only))}
            {<Id.Lit_RBracket ']'>}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [{<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName css_only))} {<Id.Lit_RBracket ']'>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <printf>
          more_env: []
          words: [
            {<printf>}
            {(SQ <'%s\\n'>)}
            {(SQ <'To use the css generated from --css-only, do: '>) 
              (SQ <'<head><link rel="stylesheet" type="text/css" href="style.css"></head>'>)
            }
          ]
          redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _> <Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [{<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName css_only))} {<Id.Lit_RBracket ']'>}]
          redirects: []
          do_fork: T
        )
        (command.ControlFlow keyword:<Id.ControlFlow_Exit exit>)
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [
            {<Id.Lit_LBracket '['>}
            {(DQ ($ Id.VSub_DollarName body_only))}
            {<Id.Lit_RBracket ']'>}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <printf>
          more_env: []
          words: [
            {<printf>}
            {(SQ <'%s'>)}
            {(SQ <'</style>\n'> <'</head>\n'> <'\n'> <'<body class="f9 b9">\n'> <'<pre>\n'>)}
          ]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [
            {<Id.Lit_LBracket '['>}
            {(DQ ($ Id.VSub_DollarName body_only))}
            {<Id.Lit_RBracket ']'>}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <printf>
          more_env: []
          words: [{<printf>} {(SQ <'%s\\n'>)} {(SQ <'Be sure to use <body class="f9 b9"> and <pre>'>)}]
          redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          do_fork: T
        )
      ]
      ops: [<Id.Op_DAmp _>]
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'p='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'p='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'p='> name:p)
          op: assign_op.Equal
          rhs: {(SQ <'\\x1b\\['>)}
        )
      ]
      redirects: []
    )
    (command.Pipeline
      children: [
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [
            {<sed>}
            {
              (DQ <'\n'> <'# escape ampersand and quote\n'> <'s#&#'> <Id.Lit_BadBackslash '\\'> 
                <'&amp;#g; s#'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'#'> <Id.Lit_BadBackslash '\\'> 
                <'&quot;#g;\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x1b[^'> <Id.Lit_BadBackslash '\\'> <'x1b]*'> 
                <Id.Lit_BadBackslash '\\'> <x1b> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <Id.Lit_BadBackslash '\\'> 
                <'##g  # strip anything between '> <Id.Lit_BadBackslash '\\'> <'e and ST\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x1b][0-9]*;[^'> 
                <Id.Lit_BadBackslash '\\'> <'a]*'> <Id.Lit_BadBackslash '\\'> <'a##g # strip any OSC (xterm title etc.)\n'> <'\n'> <'s#'> 
                <Id.Lit_BadBackslash '\\'> <r> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'## # strip trailing '> 
                <Id.Lit_BadBackslash '\\'> <'r\n'> <'\n'> <'# strip other non SGR escape sequences\n'> <'s#['> <Id.Lit_BadBackslash '\\'> 
                <'x07]##g\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x1b[]>='> <Id.Lit_BadBackslash '\\'> <'][0-9;]*##g\n'> <'s#'> 
                <Id.Lit_BadBackslash '\\'> <'x1bP+.'> <Id.Lit_BadBackslash '\\'> <'{5'> <Id.Lit_BadBackslash '\\'> <'}##g\n'> 
                <'# Mark cursor positioning codes '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Jr;c;\n'> <'s#'> 
                (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> <'{1,2'> <Id.Lit_BadBackslash '\\'> <'}'> 
                <Id.Lit_BadBackslash '\\'> <')G#'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'J;'> 
                <Id.Lit_BadBackslash '\\'> <'1;#g\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> 
                <'{1,2'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <');'> <Id.Lit_BadBackslash '\\'> <'([0-9]'> 
                <Id.Lit_BadBackslash '\\'> <'{1,2'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')H#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <J> <Id.Lit_BadBackslash '\\'> <'1;'> <Id.Lit_BadBackslash '\\'> <'2;#g\n'> <'\n'> <'# Mark clear as '> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Cn where n=1 is screen and n=0 is to end-of-line\n'> <'s#'> (${ Id.VSub_Name p) <'H#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'C1;#g\n'> <'s#'> (${ Id.VSub_Name p) <'K#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'C0;#g\n'> <'# Mark Cursor move columns as '> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'Mn where n is +ve for right, -ve for left\n'> <'s#'> (${ Id.VSub_Name p) <'C#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'M1;#g\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> 
                <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')C#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <M> <Id.Lit_BadBackslash '\\'> <'1;#g\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> 
                <Id.Lit_BadBackslash '\\'> <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')D#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <M-> <Id.Lit_BadBackslash '\\'> <'1;#g\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> 
                <Id.Lit_BadBackslash '\\'> <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')P#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <X> <Id.Lit_BadBackslash '\\'> <'1;#g\n'> <'\n'> <'s#'> (${ Id.VSub_Name p) <'[0-9;?]*[^0-9;?m]##g\n'> 
                <'\n'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [
            {<sed>}
            {
              (DQ <'\n'> <'# escape HTML (ampersand and quote done above)\n'> <'s#>#'> 
                <Id.Lit_BadBackslash '\\'> <'&gt;#g; s#<#'> <Id.Lit_BadBackslash '\\'> <'&lt;#g;\n'> <'\n'> <'# normalize SGR codes a little\n'> 
                <'\n'> <'# split 256 colors out and mark so that they\'re not\n'> 
                <'# recognised by the following \'split combined\' line\n'> <':e\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9;]'> <Id.Lit_BadBackslash '\\'> 
                <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <');'> <Id.Lit_BadBackslash '\\'> 
                <'([34]8;5;[0-9]'> <Id.Lit_BadBackslash '\\'> <'{1,3'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#'> 
                (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <1m> (${ Id.VSub_Name p) <'¬'> <Id.Lit_BadBackslash '\\'> <'2m#g; t e\n'> 
                <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([34]8;5;[0-9]'> <Id.Lit_BadBackslash '\\'> <'{1,3'> 
                <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#'> (${ Id.VSub_Name p) <'¬'> <Id.Lit_BadBackslash '\\'> <'1m#g;\n'> 
                <'\n'> <':c\n'> <'s#'> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> 
                <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <');'> <Id.Lit_BadBackslash '\\'> <'([0-9;]'> 
                <Id.Lit_BadBackslash '\\'> <'{1,'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#'> (${ Id.VSub_Name p) 
                <Id.Lit_BadBackslash '\\'> <1m> (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'2m#g; t c   # split combined\n'> <'s#'> 
                (${ Id.VSub_Name p) <0> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> <')#'> (${ Id.VSub_Name p) 
                <Id.Lit_BadBackslash '\\'> <'1#g                                 #strip leading 0\n'> <'s#'> (${ Id.VSub_Name p) <1m> 
                <Id.Lit_BadBackslash '\\'> <'('> <Id.Lit_BadBackslash '\\'> <'('> (${ Id.VSub_Name p) <'[4579]m'> <Id.Lit_BadBackslash '\\'> <')*'> 
                <Id.Lit_BadBackslash '\\'> <')#'> <Id.Lit_BadBackslash '\\'> <1> (${ Id.VSub_Name p) 
                <'1m#g                   #bold last (with clr)\n'> <'s#'> (${ Id.VSub_Name p) <'m#'> (${ Id.VSub_Name p) 
                <'0m#g                                          #add leading 0 to norm\n'> <'\n'> <'# undo any 256 color marking\n'> <'s#'> (${ Id.VSub_Name p) <'¬'> <Id.Lit_BadBackslash '\\'> 
                <'([34]8;5;[0-9]'> <Id.Lit_BadBackslash '\\'> <'{1,3'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#'> 
                (${ Id.VSub_Name p) <Id.Lit_BadBackslash '\\'> <'1m#g;\n'> <'\n'> <'# map 16 color codes to color + bold\n'> <'s#'> 
                (${ Id.VSub_Name p) <9> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> <')m#'> (${ Id.VSub_Name p) <3> 
                <Id.Lit_BadBackslash '\\'> <1m> (${ Id.VSub_Name p) <'1m#g;\n'> <'s#'> (${ Id.VSub_Name p) <10> <Id.Lit_BadBackslash '\\'> <'([0-7]'> 
                <Id.Lit_BadBackslash '\\'> <')m#'> (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <1m> (${ Id.VSub_Name p) <'1m#g;\n'> <'\n'> 
                <'# change \'reset\' code to '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'R\n'> <'s#'> (${ Id.VSub_Name p) 
                <'0m#'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'R;#g\n'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [
            {<sed>}
            {
              (DQ <'\n'> <'# common combinations to minimise html (optional)\n'> <':f\n'> <'s#'> 
                (${ Id.VSub_Name p) <'3[0-7]m'> (${ Id.VSub_Name p) <3> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> 
                <')m#'> (${ Id.VSub_Name p) <3> <Id.Lit_BadBackslash '\\'> <'1m#g; t f\n'> <':b\n'> <'s#'> (${ Id.VSub_Name p) 
                <'4[0-7]m'> (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> <')m#'> 
                (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <'1m#g; t b\n'> <'s#'> (${ Id.VSub_Name p) <3> <Id.Lit_BadBackslash '\\'> 
                <'([0-7]'> <Id.Lit_BadBackslash '\\'> <')m'> (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <'([0-7]'> 
                <Id.Lit_BadBackslash '\\'> <')m#<span class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <f> 
                <Id.Lit_BadBackslash '\\'> <'1 b'> <Id.Lit_BadBackslash '\\'> <2> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> 
                <')m'> (${ Id.VSub_Name p) <3> <Id.Lit_BadBackslash '\\'> <'([0-7]'> <Id.Lit_BadBackslash '\\'> 
                <')m#<span class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <f> <Id.Lit_BadBackslash '\\'> 
                <'2 b'> <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <'>#g\n'> <'\n'> <'s#'> (${ Id.VSub_Name p) <'1m#<span class='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <bold> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> 
                (${ Id.VSub_Name p) <'4m#<span class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <underline> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> (${ Id.VSub_Name p) <'5m#<span class='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <blink> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> 
                (${ Id.VSub_Name p) <'7m#<span class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <reverse> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> (${ Id.VSub_Name p) <'9m#<span class='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <line-through> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'s#'> 
                (${ Id.VSub_Name p) <3> <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> <')m#<span class='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <f> <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <'>#g\n'> <'s#'> (${ Id.VSub_Name p) <4> <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> 
                <')m#<span class='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <b> <Id.Lit_BadBackslash '\\'> <1> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'>#g\n'> <'\n'> <'s#'> (${ Id.VSub_Name p) <'38;5;'> <Id.Lit_BadBackslash '\\'> <'([0-9]'> 
                <Id.Lit_BadBackslash '\\'> <'{1,3'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#<span class='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <ef> <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <'>#g\n'> <'s#'> (${ Id.VSub_Name p) <'48;5;'> <Id.Lit_BadBackslash '\\'> <'([0-9]'> <Id.Lit_BadBackslash '\\'> 
                <'{1,3'> <Id.Lit_BadBackslash '\\'> <'}'> <Id.Lit_BadBackslash '\\'> <')m#<span class='> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <eb> <Id.Lit_BadBackslash '\\'> <1> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <'>#g\n'> <'\n'> <'s#'> (${ Id.VSub_Name p) <'[0-9;]*m##g # strip unhandled codes\n'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <sed>
          more_env: []
          words: [
            {<sed>}
            {
              (DQ <'\n'> <'# change \'smacs\' and \'rmacs\' to '> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'T1 and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') 
                <'T0 to simplify matching.\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x1b(0#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'T1;#g;\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x0E#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'T1;#g;\n'> <'\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x1b(B#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'T0;#g\n'> <'s#'> <Id.Lit_BadBackslash '\\'> <'x0F#'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'T0;#g\n'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
        (command.Subshell
          left: <Id.Op_LParen _>
          child: 
            (command.Simple
              blame_tok: <gawk>
              more_env: []
              words: [
                {<gawk>}
                {
                  (SQ <'\n'> <'function dump_line(l,del,c,blanks,ret) {\n'> 
                    <'  for(c=1;c<maxX;c++) {\n'> <'    if ((c SUBSEP l) in attr || length(cur)) {\n'> <'      ret = ret blanks fixas(cur,attr[c,l])\n'> 
                    <'      if(del) delete attr[c,l]\n'> <'      blanks=""\n'> <'    }\n'> <'    if ((c SUBSEP l) in dump) {\n'> 
                    <'      ret=ret blanks dump[c,l]\n'> <'      if(del) delete dump[c,l]\n'> <'      blanks=""\n'> <'    } else blanks=blanks " "\n'> <'  }\n'> 
                    <'  if(length(cur)) ret=ret blanks\n'> <'  return ret\n'> <'}\n'> <'\n'> <'function dump_screen(l,ret) {\n'> <'  for(l=1;l<=maxY;l++)\n'> 
                    <'    ret=ret dump_line(l,0) "\\n"\n'> <'  return ret fixas(cur, "")\n'> <'}\n'> <'\n'> <'function atos(a,i,ret) {\n'> 
                    <'  for(i=1;i<=length(a);i++) if(i in a) ret=ret a[i]\n'> <'  return ret\n'> <'}\n'> <'\n'> <'function fixas(a,s,spc,i,attr,rm,ret) {\n'> <'  spc=length(a)\n'> 
                    <'  l=split(s,attr,">")\n'> <'  for(i=1;i<=spc;i++) {\n'> <'    rm=rm?rm:(a[i]!=attr[i]">")\n'> <'    if(rm) {\n'> 
                    <'      ret=ret "</span>"\n'> <'      delete a[i];\n'> <'    }\n'> <'  }\n'> <'  for(i=1;i<l;i++) {\n'> <'    attr[i]=attr[i]">"\n'> 
                    <'    if(a[i]!=attr[i]) {\n'> <'      a[i]=attr[i]\n'> <'      ret = ret attr[i]\n'> <'    }\n'> <'  }\n'> <'  return ret\n'> <'}\n'> 
                    <'\n'> <'function encode(string,start,end,i,ret,pos,sc,buf) {\n'> <'   if(!end) end=length(string);\n'> 
                    <'   if(!start) start=1;\n'> <'   state=3\n'> <'   for(i=1;i<=length(string);i++) {\n'> <'     c=substr(string,i,1)\n'> 
                    <'     if(state==2) {\n'> <'       sc=sc c\n'> <'       if(c==";") {\n'> <'          c=sc\n'> <'          state=last_mode\n'> 
                    <'       } else continue\n'> <'     } else {\n'> <'       if(c=="\\r") { x=1; continue }\n'> <'       if(c=="<") {\n'> 
                    <'         # Change attributes - store current active\n'> <'         # attributes in span array\n'> <'         split(substr(string,i),cord,">");\n'> 
                    <'         i+=length(cord[1])\n'> <'         span[++spc]=cord[1] ">"\n'> <'         continue\n'> <'       }\n'> 
                    <'       else if(c=="&") {\n'> <'         # All goes to single position till we see a semicolon\n'> <'         sc=c\n'> 
                    <'         state=2\n'> <'         continue\n'> <'       }\n'> <'       else if(c=="\\b") {\n'> 
                    <'          # backspace move insertion point back 1\n'> <'          if(spc) attr[x,y]=atos(span)\n'> <'          x=x>1?x-1:1\n'> <'          continue\n'> 
                    <'       }\n'> <'       else if(c=="\\"") {\n'> <'          split(substr(string,i+2),cord,";")\n'> 
                    <'          cc=substr(string,i+1,1);\n'> <'          if(cc=="T") {\n'> <'              # Transliterate on/off\n'> 
                    <'              if(cord[1]==1&&state==3) last_mode=state=4\n'> <'              if(cord[1]==0&&state==4) last_mode=state=3\n'> <'          }\n'> 
                    <'          else if(cc=="C") {\n'> <'              # Clear\n'> <'              if(cord[1]+0) {\n'> 
                    <'                # Screen - if Recording dump screen\n'> <'                if(dumpStatus==dsActive) ret=ret dump_screen()\n'> 
                    <'                dumpStatus=dsActive\n'> <'                delete dump\n'> <'                delete attr\n'> <'                x=y=1\n'> 
                    <'              } else {\n'> <'                # To end of line\n'> <'                for(pos=x;pos<maxX;pos++) {\n'> 
                    <'                  dump[pos,y]=" "\n'> <'                  if (!spc) delete attr[pos,y]\n'> 
                    <'                  else attr[pos,y]=atos(span)\n'> <'                }\n'> <'              }\n'> <'          }\n'> <'          else if(cc=="J") {\n'> 
                    <'              # Jump to x,y\n'> <'              i+=length(cord[2])+1\n'> 
                    <'              # If line is higher - dump previous screen\n'> <'              if(dumpStatus==dsActive&&cord[1]<y) {\n'> <'                ret=ret dump_screen();\n'> 
                    <'                dumpStatus=dsNew;\n'> <'              }\n'> <'              x=cord[2]\n'> 
                    <'              if(length(cord[1]) && y!=cord[1]){\n'> <'                y=cord[1]\n'> <'                if(y>maxY) maxY=y\n'> 
                    <'                # Change y - start recording\n'> <'                dumpStatus=dumpStatus?dumpStatus:dsReset\n'> <'              }\n'> <'          }\n'> 
                    <'          else if(cc=="M") {\n'> <'              # Move left/right on current line\n'> <'              x+=cord[1]\n'> <'          }\n'> 
                    <'          else if(cc=="X") {\n'> <'              # delete on right\n'> <'              for(pos=x;pos<=maxX;pos++) {\n'> 
                    <'                nx=pos+cord[1]\n'> <'                if(nx<maxX) {\n'> 
                    <'                  if((nx SUBSEP y) in attr) attr[pos,y] = attr[nx,y]\n'> <'                  else delete attr[pos,y]\n'> 
                    <'                  if((nx SUBSEP y) in dump) dump[pos,y] = dump[nx,y]\n'> <'                  else delete dump[pos,y]\n'> <'                } else if(spc) {\n'> 
                    <'                  attr[pos,y]=atos(span)\n'> <'                  dump[pos,y]=" "\n'> <'                }\n'> <'              }\n'> <'          }\n'> 
                    <'          else if(cc=="R") {\n'> <'              # Reset attributes\n'> <'              while(spc) delete span[spc--]\n'> 
                    <'          }\n'> <'          i+=length(cord[1])+2\n'> <'          continue\n'> <'       }\n'> 
                    <'       else if(state==4&&i>=start&&i<=end&&c in Trans) c=Trans[c]\n'> <'     }\n'> <'     if(dumpStatus==dsReset) {\n'> <'       delete dump\n'> <'       delete attr\n'> 
                    <'       ret=ret"\\n"\n'> <'       dumpStatus=dsActive\n'> <'     }\n'> <'     if(dumpStatus==dsNew) {\n'> 
                    <'       # After moving/clearing we are now ready to write\n'> <'       # somthing to the screen so start recording now\n'> <'       ret=ret"\\n"\n'> 
                    <'       dumpStatus=dsActive\n'> <'     }\n'> <'     if(dumpStatus==dsActive||dumpStatus==dsOff) {\n'> <'       dump[x,y] = c\n'> 
                    <'       if(!spc) delete attr[x,y]\n'> <'       else attr[x,y] = atos(span)\n'> <'       if(++x>maxX) maxX=x;\n'> <'     }\n'> <'    }\n'> 
                    <'    # End of line if dumping increment y and set x back to first col\n'> <'    x=1\n'> <'    if(!dumpStatus) return ret dump_line(y,1);\n'> <'    else if(++y>maxY) maxY=y;\n'> 
                    <'    return ret\n'> <'}\n'> <'BEGIN{\n'> <'  OFS=FS\n'> <'  # dump screen status\n'> 
                    <'  dsOff=0    # Not dumping screen contents just write output direct\n'> <'  dsNew=1    # Just after move/clear waiting for activity to start recording\n'> 
                    <'  dsReset=2  # Screen cleared build new empty buffer and record\n'> <'  dsActive=3 # Currently recording\n'> <'  F="abcdefghijklmnopqrstuvwxyz{}`~"\n'> 
                    <
'  T="▒␉␌␍␊°±␤␋┘┐┌└┼⎺⎻─⎼⎽├┤┴┬│≤≥π£◆·"\n'
                    > <'  maxX=80\n'> <'  delete cur;\n'> <'  x=y=1\n'> 
                    <'  for(i=1;i<=length(F);i++)Trans[substr(F,i,1)]=substr(T,i,1);\n'> <'}\n'> <'\n'> <'{ $0=encode($0) }\n'> <'1\n'> <'END {\n'> <'  if(dumpStatus) {\n'> 
                    <'    print dump_screen();\n'> <'  }\n'> <'}'>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          right: <Id.Right_Subshell _>
          redirects: []
        )
      ]
      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>]
    )
    (command.AndOr
      children: [
        (command.Simple
          blame_tok: <Id.Lit_LBracket '['>
          more_env: []
          words: [
            {<Id.Lit_LBracket '['>}
            {(DQ ($ Id.VSub_DollarName body_only))}
            {<Id.Lit_RBracket ']'>}
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <printf>
          more_env: []
          words: [{<printf>} {(SQ <'</pre>\n'> <'</body>\n'> <'</html>\\n'>)}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_DPipe _>]
    )
  ]
)