(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Pound '$#'))} {<-lt>} {<2>} 
                  {<Id.Lit_RBracket ']'>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.Simple
              words: [
                {<echo>}
                {
                  (DQ <'Usage: '> 
                    (command_sub
                      left_token: <Id.Left_Backtick '`'>
                      command_list: 
                        (command.CommandList
                          children: [(C {<basename>} {($ Id.VSub_Number '$0')})]
                        )
                    ) <' MM YYYY [other find parameters]'>
                  )
                }
              ]
              redirects: [(redir.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})]
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [36 51]
        )
      ]
    )
    (C {<Id.KW_Set set>} {<-e>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:month)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$1')}
          spids: [87]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:year)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$2')}
          spids: [90]
        )
      ]
    )
    (command.CommandList
      children: [(command.Sentence child:(C {<shift>}) terminator:<Id.Op_Semi _>) (C {<shift>})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$month'))} {<Id.Lit_Equals '='>} 
                  {(DQ <12>)} {<Id.Lit_RBracket ']'>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:next_year)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {<expr>} {($ Id.VSub_DollarName '$year')} {<Id.Lit_Other '+'>} {<1>})
                            ]
                          )
                      )
                    }
                  spids: [119]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:next_year)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {<printf>} {(DQ <'%02d'>)} {($ Id.VSub_DollarName '$next_year')})
                            ]
                          )
                      )
                    }
                  spids: [133]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:next_month)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [150]
                )
              ]
            )
          ]
          spids: [99 116]
        )
      ]
      else_action: [
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:next_year)
              op: assign_op.Equal
              rhs: {($ Id.VSub_DollarName '$year')}
              spids: [156]
            )
          ]
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:next_month)
              op: assign_op.Equal
              rhs: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    command_list: 
                      (command.CommandList
                        children: [
                          (C {<expr>} {($ Id.VSub_DollarName '$month')} {<Id.Lit_Other '+'>} {<1>})
                        ]
                      )
                  )
                }
              spids: [160]
            )
          ]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:now)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [(C {<date>} {<--utc>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>})]
                  )
              )
            }
          spids: [175]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:start)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (C {<date>} 
                        {<--date> <Id.Lit_Equals '='> 
                          (DQ ($ Id.VSub_DollarName '$year') <-> ($ Id.VSub_DollarName '$month') 
                            <'-01 UTC'>
                          )
                        } {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}
                      )
                    ]
                  )
              )
            }
          spids: [188]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:end)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (C {<date>} 
                        {<--date> <Id.Lit_Equals '='> 
                          (DQ ($ Id.VSub_DollarName '$next_year') <-> 
                            ($ Id.VSub_DollarName '$next_month') <'-01 UTC'>
                          )
                        } {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}
                      )
                    ]
                  )
              )
            }
          spids: [208]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$start')} {<-gt>} 
                  {($ Id.VSub_DollarName '$now')} {<Id.Lit_RBracket ']'>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:start)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$now')}
                  spids: [245]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:end)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [249]
                )
              ]
            )
          ]
          spids: [229 242]
        )
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$end')} {<-gt>} 
                  {($ Id.VSub_DollarName '$now')} {<Id.Lit_RBracket ']'>}
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:end)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [269]
                )
              ]
            )
          ]
          spids: [253 266]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:start_days_ago)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (C {<expr>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('>)} 
                        {($ Id.VSub_DollarName '$now')} {<->} {($ Id.VSub_DollarName '$start')} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>)} 
                        {</>} {<86400>}
                      )
                    ]
                  )
              )
            }
          spids: [276]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:start_days_ago)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (C {<expr>} {($ Id.VSub_DollarName '$start_days_ago')} {<Id.Lit_Other '+'>} {<1>})
                    ]
                  )
              )
            }
          spids: [301]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$end'))} {<Id.Lit_RBracket ']'>})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:end_days_ago)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        command_list: 
                          (command.CommandList
                            children: [
                              (C {<expr>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('>)} 
                                {($ Id.VSub_DollarName '$now')} {<->} {($ Id.VSub_DollarName '$end')} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>)} {</>} 
                                {<86400>}
                              )
                            ]
                          )
                      )
                    }
                  spids: [331]
                )
              ]
            )
            (C {<find>} {(DQ ($ Id.VSub_At '$@'))} {<-daystart>} {<-mtime>} 
              {<-> ($ Id.VSub_DollarName '$start_days_ago')} {<-mtime>} {<Id.Lit_Other '+'> ($ Id.VSub_DollarName '$end_days_ago')}
            )
          ]
          spids: [314 325]
        )
      ]
      else_action: [
        (command.AndOr
          ops: [Id.Op_DAmp]
          children: [
            (C {<Id.Lit_LBracket '['>} 
              {
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Pipeline
                          children: [
                            (C {<echo>} {<-n>} {($ Id.VSub_DollarName '$month')})
                            (C {<wc>} {<-c>})
                          ]
                          negated: F
                        )
                      ]
                    )
                )
              } {<-eq>} {<1>} {<Id.Lit_RBracket ']'>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:month)
                  op: assign_op.Equal
                  rhs: {(DQ <0> ($ Id.VSub_DollarName '$month'))}
                  spids: [404]
                )
              ]
            )
          ]
        )
        (command.AndOr
          ops: [Id.Op_DAmp]
          children: [
            (C {<Id.Lit_LBracket '['>} 
              {
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  command_list: 
                    (command.CommandList
                      children: [
                        (command.Pipeline
                          children: [
                            (C {<echo>} {<-n>} {($ Id.VSub_DollarName '$year')})
                            (C {<wc>} {<-c>})
                          ]
                          negated: F
                        )
                      ]
                    )
                )
              } {<-eq>} {<2>} {<Id.Lit_RBracket ']'>}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:year)
                  op: assign_op.Equal
                  rhs: {(DQ <20> ($ Id.VSub_DollarName '$year'))}
                  spids: [437]
                )
              ]
            )
          ]
        )
        (command.Pipeline
          children: [
            (C {<find>} {(DQ ($ Id.VSub_At '$@'))} {<-daystart>} {<-mtime>} 
              {<-> ($ Id.VSub_DollarName '$start_days_ago')} {<-printf>} {(DQ <'%p'> <Id.Lit_Other '\\'> <'0%Tm-%TY'> <Id.Lit_Other '\\'> <n>)}
            )
            (command.Simple
              words: [
                {<grep>}
                {<-a>}
                {
                  (DQ ($ Id.VSub_DollarName '$month') <-> ($ Id.VSub_DollarName '$year') 
                    <Id.Lit_Other '$'>
                  )
                }
              ]
              more_env: [(env_pair name:LANG val:{<C>} spids:[470])]
            )
            (C {<cut>} {<-d>} {(SQ )} {<-f1>})
          ]
          negated: F
        )
      ]
    )
  ]
)