(command.CommandList
  children: [
    (C {<export>} {<Id.Lit_VarLike 'DESTTREE='> <'/usr'>})
    (C {<export>} {<Id.Lit_VarLike 'INSDESTTREE='> (DQ )})
    (C {<export>} {<Id.Lit_VarLike '_E_EXEDESTTREE_='> (DQ )})
    (C {<export>} {<Id.Lit_VarLike '_E_DOCDESTTREE_='> (DQ )})
    (C {<export>} {<Id.Lit_VarLike 'INSOPTIONS='> (DQ <-m0644>)})
    (C {<export>} {<Id.Lit_VarLike 'EXEOPTIONS='> (DQ <-m0755>)})
    (C {<export>} {<Id.Lit_VarLike 'LIBOPTIONS='> (DQ <-m0644>)})
    (C {<export>} {<Id.Lit_VarLike 'DIROPTIONS='> (DQ <-m0755>)})
    (C {<export>} {<Id.Lit_VarLike 'MOPREFIX='> (${ Id.VSub_Name PN)})
    (C {<export>} {<Id.Lit_VarLike 'PORTAGE_DOCOMPRESS_SIZE_LIMIT='> (DQ <128>)})
    (C {<declare>} {<-a>} 
      {<Id.Lit_VarLike 'PORTAGE_DOCOMPRESS='> 
        (sh_array_literal
          left: <Id.Op_LParen _>
          words: [
            (word.BracedTree
              parts: [<'/usr/share/'> (word_part.BracedTuple words:[{<doc>} {<info>} {<man>}])]
            )
          ]
        )
      }
    )
    (C {<declare>} {<-a>} 
      {<Id.Lit_VarLike 'PORTAGE_DOCOMPRESS_SKIP='> 
        (sh_array_literal
          left: <Id.Op_LParen _>
          words: [{<'/usr/share/doc/'> (${ Id.VSub_Name PF) <'/html'>}]
        )
      }
    )
    (command.ShFunction
      name: into
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} 
                              {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<export>} {<Id.Lit_VarLike 'DESTTREE='> (DQ )})]
                  spids: [119 137]
                )
              ]
              else_action: [
                (C {<export>} {<Id.Lit_VarLike 'DESTTREE='> ($ Id.VSub_Number '$1')})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [(C {<___eapi_has_prefix_variables>})]
                                  negated: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})]
                      spids: [156 163]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name DESTTREE))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<install>} {<-d>} {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name DESTTREE))})
                        (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '$?')})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_ne
                                              left: {($ Id.VSub_DollarName '$ret')}
                                              right: {<0>}
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<__helpers_die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name FUNCNAME>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                      ) <' failed'>
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {($ Id.VSub_DollarName '$ret')}
                                )
                              ]
                              spids: [220 234]
                            )
                          ]
                        )
                      ]
                      spids: [177 197]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: insinto
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} 
                              {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<export>} {<Id.Lit_VarLike 'INSDESTTREE='> (DQ )})]
                  spids: [273 291]
                )
              ]
              else_action: [
                (C {<export>} {<Id.Lit_VarLike 'INSDESTTREE='> ($ Id.VSub_Number '$1')})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [(C {<___eapi_has_prefix_variables>})]
                                  negated: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})]
                      spids: [310 317]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name INSDESTTREE))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<install>} {<-d>} {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name INSDESTTREE))})
                        (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '$?')})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_ne
                                              left: {($ Id.VSub_DollarName '$ret')}
                                              right: {<0>}
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<__helpers_die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name FUNCNAME>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                      ) <' failed'>
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {($ Id.VSub_DollarName '$ret')}
                                )
                              ]
                              spids: [374 388]
                            )
                          ]
                        )
                      ]
                      spids: [331 351]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: exeinto
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} 
                              {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<export>} {<Id.Lit_VarLike '_E_EXEDESTTREE_='> (DQ )})]
                  spids: [427 445]
                )
              ]
              else_action: [
                (C {<export>} {<Id.Lit_VarLike '_E_EXEDESTTREE_='> (DQ ($ Id.VSub_Number '$1'))})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [(C {<___eapi_has_prefix_variables>})]
                                  negated: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})]
                      spids: [466 473]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name _E_EXEDESTTREE_))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<install>} {<-d>} 
                          {(DQ (${ Id.VSub_Name ED) (${ Id.VSub_Name _E_EXEDESTTREE_))}
                        )
                        (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '$?')})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_ne
                                              left: {($ Id.VSub_DollarName '$ret')}
                                              right: {<0>}
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<__helpers_die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name FUNCNAME>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                      ) <' failed'>
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {($ Id.VSub_DollarName '$ret')}
                                )
                              ]
                              spids: [530 544]
                            )
                          ]
                        )
                      ]
                      spids: [487 507]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: docinto
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} 
                              {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <'/'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<export>} {<Id.Lit_VarLike '_E_DOCDESTTREE_='> (DQ )})]
                  spids: [583 601]
                )
              ]
              else_action: [
                (C {<export>} {<Id.Lit_VarLike '_E_DOCDESTTREE_='> (DQ ($ Id.VSub_Number '$1'))})
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [(C {<___eapi_has_prefix_variables>})]
                                  negated: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})]
                      spids: [622 629]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                                  {
                                    (DQ (${ Id.VSub_Name ED) <'usr/share/doc/'> (${ Id.VSub_Name PF) 
                                      <'/'> (${ Id.VSub_Name _E_DOCDESTTREE_)
                                    )
                                  } {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<install>} {<-d>} 
                          {
                            (DQ (${ Id.VSub_Name ED) <'usr/share/doc/'> (${ Id.VSub_Name PF) <'/'> 
                              (${ Id.VSub_Name _E_DOCDESTTREE_)
                            )
                          }
                        )
                        (C {<local>} {<Id.Lit_VarLike 'ret='> ($ Id.VSub_QMark '$?')})
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_ne
                                              left: {($ Id.VSub_DollarName '$ret')}
                                              right: {<0>}
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<__helpers_die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name FUNCNAME>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                      ) <' failed'>
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {($ Id.VSub_DollarName '$ret')}
                                )
                              ]
                              spids: [696 710]
                            )
                          ]
                        )
                      ]
                      spids: [643 668]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: insopts
      body: 
        (BraceGroup
          children: [
            (C {<export>} {<Id.Lit_VarLike 'INSOPTIONS='> (DQ ($ Id.VSub_At '$@'))})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<has>} {<-s>} {(${ Id.VSub_Name INSOPTIONS)})
                (C {<die>} {(DQ <'Never call insopts() with -s'>)})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: diropts
      body: 
        (BraceGroup
          children: [(C {<export>} {<Id.Lit_VarLike 'DIROPTIONS='> (DQ ($ Id.VSub_At '$@'))})]
        )
    )
    (command.ShFunction
      name: exeopts
      body: 
        (BraceGroup
          children: [
            (C {<export>} {<Id.Lit_VarLike 'EXEOPTIONS='> (DQ ($ Id.VSub_At '$@'))})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<has>} {<-s>} {(${ Id.VSub_Name EXEOPTIONS)})
                (C {<die>} {(DQ <'Never call exeopts() with -s'>)})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: libopts
      body: 
        (BraceGroup
          children: [
            (C {<export>} {<Id.Lit_VarLike 'LIBOPTIONS='> (DQ ($ Id.VSub_At '$@'))})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<has>} {<-s>} {(${ Id.VSub_Name LIBOPTIONS)})
                (C {<die>} {(DQ <'Never call libopts() with -s'>)})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: docompress
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<___eapi_has_docompress>})
                (C {<die>} {(DQ <'\'docompress\' not supported in this EAPI'>)})
              ]
            )
            (C {<local>} {<f>} {<g>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobEqual
                                  left: {($ Id.VSub_Number '$1')}
                                  right: {(DQ <-x>)}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<shift>})
                    (command.ForEach
                      iter_name: f
                      do_arg_iter: T
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:f)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: 
                                              (C {<__strip_duplicate_slashes>} 
                                                {(DQ (${ Id.VSub_Name f))}
                                              )
                                          )
                                        }
                                      spids: [931]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:f)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name f>
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op_id: Id.VOp1_Percent
                                            arg_word: {<Id.Lit_Slash '/'>}
                                          )
                                      )
                                    }
                                  spids: [943]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobEqual
                                      left: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name f>
                                            suffix_op: 
                                              (suffix_op.Slice
                                                begin: {<Id.Lit_Digits 0>}
                                                length: {<Id.Lit_Digits 1>}
                                              )
                                          )
                                        }
                                      right: {<'/'>}
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:f)
                                      op: assign_op.Equal
                                      rhs: {(DQ <'/'> (${ Id.VSub_Name f))}
                                      spids: [969]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: g
                              iter_words: [
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name PORTAGE_DOCOMPRESS_SKIP>
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    )
                                  )
                                }
                              ]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobEqual
                                              left: {(${ Id.VSub_Name f)}
                                              right: {(DQ (${ Id.VSub_Name g))}
                                            )
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Continue continue>
                                          arg_word: {<2>}
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: 
                                    (sh_lhs_expr.IndexedName
                                      name: PORTAGE_DOCOMPRESS_SKIP
                                      index: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name PORTAGE_DOCOMPRESS_SKIP>
                                            prefix_op: (Id.VSub_Pound)
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          )
                                        }
                                    )
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name f)}
                                  spids: [1023]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [902 917]
                )
              ]
              else_action: [
                (command.ForEach
                  iter_name: f
                  do_arg_iter: T
                  body: 
                    (command.DoGroup
                      children: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:f)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (C {<__strip_duplicate_slashes>} {(DQ (${ Id.VSub_Name f))})
                                      )
                                    }
                                  spids: [1059]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:f)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    token: <Id.VSub_Name f>
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op_id: Id.VOp1_Percent
                                        arg_word: {<Id.Lit_Slash '/'>}
                                      )
                                  )
                                }
                              spids: [1071]
                            )
                          ]
                        )
                        (command.AndOr
                          ops: [Id.Op_DPipe]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobEqual
                                  left: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name f>
                                        suffix_op: 
                                          (suffix_op.Slice
                                            begin: {<Id.Lit_Digits 0>}
                                            length: {<Id.Lit_Digits 1>}
                                          )
                                      )
                                    }
                                  right: {<'/'>}
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:f)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'/'> (${ Id.VSub_Name f))}
                                  spids: [1097]
                                )
                              ]
                            )
                          ]
                        )
                        (command.ForEach
                          iter_name: g
                          iter_words: [
                            {
                              (DQ 
                                (braced_var_sub
                                  token: <Id.VSub_Name PORTAGE_DOCOMPRESS>
                                  bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                )
                              )
                            }
                          ]
                          do_arg_iter: F
                          body: 
                            (command.DoGroup
                              children: [
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobEqual
                                          left: {(${ Id.VSub_Name f)}
                                          right: {(DQ (${ Id.VSub_Name g))}
                                        )
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                      arg_word: {<2>}
                                    )
                                  ]
                                )
                              ]
                            )
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: 
                                (sh_lhs_expr.IndexedName
                                  name: PORTAGE_DOCOMPRESS
                                  index: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name PORTAGE_DOCOMPRESS>
                                        prefix_op: (Id.VSub_Pound)
                                        bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                      )
                                    }
                                )
                              op: assign_op.Equal
                              rhs: {(${ Id.VSub_Name f)}
                              spids: [1151]
                            )
                          ]
                        )
                      ]
                    )
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: useq
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<has>} {($ Id.VSub_DollarName '$EBUILD_PHASE')} {<prerm>} {<postrm>})
                (C {<eqawarn>} 
                  {(DQ <'QA Notice: The \'useq\' function is deprecated (replaced by \'use\')'>)}
                )
              ]
            )
            (C {<use>} {(${ Id.VSub_Number 1)})
          ]
        )
    )
    (command.ShFunction
      name: usev
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<use>} {(${ Id.VSub_Number 1)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Number 1>
                            suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<'!'>})
                          )
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                  spids: [1223 1232]
                )
              ]
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [(command.Sentence child:(C {<___eapi_has_usex>}) terminator:<Id.Op_Semi _>)]
            )
          action: [
            (command.ShFunction
              name: usex
              body: 
                (BraceGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {<use>} {(DQ ($ Id.VSub_Number '$1'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<echo>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Number 2>
                                    suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<yes>})
                                  ) ($ Id.VSub_Number '$4')
                                )
                              }
                            )
                          ]
                          spids: [1276 1285]
                        )
                      ]
                      else_action: [
                        (C {<echo>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Number 3>
                                suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<no>})
                              ) ($ Id.VSub_Number '$5')
                            )
                          }
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                )
            )
          ]
          spids: [1261 1266]
        )
      ]
    )
    (command.ShFunction
      name: use
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'u='> ($ Id.VSub_Number '$1')})
            (C {<local>} {<Id.Lit_VarLike 'found='> <0>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name u>
                                        suffix_op: 
                                          (suffix_op.Slice
                                            begin: {<Id.Lit_Digits 0>}
                                            length: {<Id.Lit_Digits 1>}
                                          )
                                      )
                                    }
                                  right: {(DQ <'!'>)}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:u)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                token: <Id.VSub_Name u>
                                suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 1>})
                              )
                            }
                          spids: [1377]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:found)
                          op: assign_op.Equal
                          rhs: {<1>}
                          spids: [1385]
                        )
                      ]
                    )
                  ]
                  spids: [1352 1374]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobEqual
                                  left: {($ Id.VSub_DollarName '$EBUILD_PHASE')}
                                  right: {<depend>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<true>})]
                  spids: [1393 1407]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalAnd
                                  left: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_n
                                      child: {($ Id.VSub_DollarName '$PORTAGE_IUSE')}
                                    )
                                  right: 
                                    (bool_expr.LogicalAnd
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName '$EBUILD_PHASE')}
                                        )
                                      right: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {($ Id.VSub_DollarName '$PORTAGE_INTERNAL_CALLER')}
                                        )
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalNot
                                          child: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_EqualTilde
                                              left: {($ Id.VSub_DollarName '$u')}
                                              right: {($ Id.VSub_DollarName '$PORTAGE_IUSE')}
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.LogicalNot
                                                  child: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_EqualTilde
                                                      left: {(${ Id.VSub_Name EAPI)}
                                                      right: 
                                                        {<Id.Lit_Other '^'> <Id.Lit_Other '('> <0> 
                                                          <Id.Lit_Other '|'> <1> <Id.Lit_Other '|'> <2> <Id.Lit_Other '|'> <3> <Id.Lit_Other '|'> <4> <Id.Lit_Other '|'> <4-python> 
                                                          <Id.Lit_Other '|'> <4-slot-abi> <Id.Lit_Other ')'> <Id.Lit_Other '$'>
                                                        }
                                                    )
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ <'USE Flag \''> (${ Id.VSub_Name u) <'\' not in IUSE for '> 
                                          (${ Id.VSub_Name CATEGORY) <'/'> (${ Id.VSub_Name PF)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [1501 1535]
                                )
                              ]
                            )
                            (C {<eqawarn>} 
                              {(DQ <'QA Notice: USE Flag \''> (${ Id.VSub_Name u) <'\' not'>)} {(DQ <'in IUSE for '> (${ Id.VSub_Name CATEGORY) <'/'> (${ Id.VSub_Name PF))}
                            )
                          ]
                          spids: [1482 1498]
                        )
                      ]
                    )
                  ]
                  spids: [1454 1479]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'IFS='> 
                (single_quoted
                  left: <Id.Left_CSingleQuote '$\''>
                  tokens: [<Id.Char_Literals ' '> <Id.Char_OneChar '\\t'> <Id.Char_OneChar '\\n'>]
                  multiline: F
                )
              } {<Id.Lit_VarLike 'prev_shopts='> ($ Id.VSub_Hyphen '$-')} {<ret>}
            )
            (C {<Id.KW_Set set>} {<-f>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<has>} {(${ Id.VSub_Name u)} {(${ Id.VSub_Name USE)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:ret)
                          op: assign_op.Equal
                          rhs: {(${ Id.VSub_Name found)}
                          spids: [1635]
                        )
                      ]
                    )
                  ]
                  spids: [1618 1632]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:ret)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (word_part.ArithSub
                            anode: 
                              (arith_expr.Unary
                                op_id: Id.Arith_Bang
                                child: <Id.Lit_ArithVarLike found>
                              )
                          )
                        }
                      spids: [1644]
                    )
                  ]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_GlobDEqual
                      left: {(${ Id.VSub_Name prev_shopts)}
                      right: {<Id.Lit_Other '*'> <f> <Id.Lit_Other '*'>}
                    )
                )
                (C {<Id.KW_Set set>} {<Id.Lit_Other '+'> <f>})
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Return return>
              arg_word: {(${ Id.VSub_Name ret)}
            )
          ]
        )
    )
    (command.ShFunction
      name: use_with
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number '$1'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {(DQ <'!!! use_with() called without a parameter.'>)}]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {(DQ <'!!! use_with <USEFLAG> [<flagname> [value]]'>)}]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1693 1706]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<___eapi_use_enable_and_use_with_support_empty_third_argument>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'UW_SUFFIX='> 
                        (braced_var_sub
                          token: <Id.VSub_Number 3>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Plus
                              arg_word: {<'='> ($ Id.VSub_Number '$3')}
                            )
                        )
                      }
                    )
                  ]
                  spids: [1738 1743]
                )
              ]
              else_action: [
                (C {<local>} 
                  {<Id.Lit_VarLike 'UW_SUFFIX='> 
                    (braced_var_sub
                      token: <Id.VSub_Number 3>
                      suffix_op: 
                        (suffix_op.Unary
                          op_id: Id.VTest_ColonPlus
                          arg_word: {<'='> ($ Id.VSub_Number '$3')}
                        )
                    )
                  }
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'UWORD='> 
                (braced_var_sub
                  token: <Id.VSub_Number 2>
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {($ Id.VSub_Number '$1')}
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<use>} {($ Id.VSub_Number '$1')})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {(DQ <--with-> (${ Id.VSub_Name UWORD) (${ Id.VSub_Name UW_SUFFIX))})
                  ]
                  spids: [1785 1792]
                )
              ]
              else_action: [(C {<echo>} {(DQ <--without-> (${ Id.VSub_Name UWORD))})]
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
        )
    )
    (command.ShFunction
      name: use_enable
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Number '$1'))} 
                              {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [{<echo>} {(DQ <'!!! use_enable() called without a parameter.'>)}]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.Simple
                      words: [{<echo>} {(DQ <'!!! use_enable <USEFLAG> [<flagname> [value]]'>)}]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [1838 1851]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<___eapi_use_enable_and_use_with_support_empty_third_argument>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} 
                      {<Id.Lit_VarLike 'UE_SUFFIX='> 
                        (braced_var_sub
                          token: <Id.VSub_Number 3>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Plus
                              arg_word: {<'='> ($ Id.VSub_Number '$3')}
                            )
                        )
                      }
                    )
                  ]
                  spids: [1883 1888]
                )
              ]
              else_action: [
                (C {<local>} 
                  {<Id.Lit_VarLike 'UE_SUFFIX='> 
                    (braced_var_sub
                      token: <Id.VSub_Number 3>
                      suffix_op: 
                        (suffix_op.Unary
                          op_id: Id.VTest_ColonPlus
                          arg_word: {<'='> ($ Id.VSub_Number '$3')}
                        )
                    )
                  }
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'UWORD='> 
                (braced_var_sub
                  token: <Id.VSub_Number 2>
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: {($ Id.VSub_Number '$1')}
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<use>} {($ Id.VSub_Number '$1')})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<echo>} {(DQ <--enable-> (${ Id.VSub_Name UWORD) (${ Id.VSub_Name UE_SUFFIX))})
                  ]
                  spids: [1930 1937]
                )
              ]
              else_action: [(C {<echo>} {(DQ <--disable-> (${ Id.VSub_Name UWORD))})]
            )
            (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})
          ]
        )
    )
    (command.ShFunction
      name: unpack
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<srcdir>})
            (C {<local>} {<x>})
            (C {<local>} {<y>} {<y_insensitive>})
            (C {<local>} {<suffix>} {<suffix_insensitive>})
            (C {<local>} {<myfail>})
            (C {<local>} 
              {<Id.Lit_VarLike 'eapi='> 
                (braced_var_sub
                  token: <Id.VSub_Name EAPI>
                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{<0>})
                )
              }
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_Star '$*'))} {<Id.Lit_RBracket ']'>})
                (C {<die>} {(DQ <'Nothing passed to the \'unpack\' command'>)})
              ]
            )
            (command.ForEach
              iter_name: x
              iter_words: [{(DQ ($ Id.VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<__vecho>} 
                      {(DQ <'>>> Unpacking '> (${ Id.VSub_Name x) <' to '> (${ Id.VSub_Name PWD))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suffix)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                token: <Id.VSub_Name x>
                                suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{<'*.'>})
                              )
                            }
                          spids: [2070]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:suffix_insensitive)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    words: [{<tr>} {(DQ <'[:upper:]'>)} {(DQ <'[:lower:]'>)}]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_TLess '<<<'>
                                        loc: (redir_loc.Fd fd:0)
                                        arg: {(DQ (${ Id.VSub_Name suffix))}
                                      )
                                    ]
                                    more_env: [(env_pair name:LC_ALL val:{<C>} spids:[2080])]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [2078]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:y)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                token: <Id.VSub_Name x>
                                suffix_op: (suffix_op.Unary op_id:Id.VOp1_Percent arg_word:{<'.*'>})
                              )
                            }
                          spids: [2103]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:y)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (braced_var_sub
                                token: <Id.VSub_Name y>
                                suffix_op: (suffix_op.Unary op_id:Id.VOp1_DPound arg_word:{<'*.'>})
                              )
                            }
                          spids: [2111]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:y_insensitive)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_DollarParen '$('>
                                child: 
                                  (command.Simple
                                    words: [{<tr>} {(DQ <'[:upper:]'>)} {(DQ <'[:lower:]'>)}]
                                    redirects: [
                                      (redir
                                        op: <Id.Redir_TLess '<<<'>
                                        loc: (redir_loc.Fd fd:0)
                                        arg: {(DQ (${ Id.VSub_Name y))}
                                      )
                                    ]
                                    more_env: [(env_pair name:LC_ALL val:{<C>} spids:[2121])]
                                    do_fork: T
                                  )
                              )
                            }
                          spids: [2119]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobNEqual
                                          left: {(${ Id.VSub_Name x)}
                                          right: {<Id.Lit_Other '*'> <'/'> <Id.Lit_Other '*'>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:srcdir)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name DISTDIR) <'/'>}
                                  spids: [2173]
                                )
                              ]
                            )
                          ]
                          spids: [2149 2166]
                        )
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {(${ Id.VSub_Name x)}
                                          right: {<'./'> <Id.Lit_Other '*'>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:srcdir)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [2203]
                                )
                              ]
                            )
                          ]
                          spids: [2180 2196]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: (C {<___eapi_unpack_supports_absolute_paths>})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:srcdir)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [2225]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobDEqual
                                                      left: {(${ Id.VSub_Name x)}
                                                      right: 
                                                        {
                                                          (braced_var_sub
                                                            token: <Id.VSub_Name DISTDIR>
                                                            suffix_op: 
                                                              (suffix_op.Unary
                                                                op_id: Id.VOp1_Percent
                                                                arg_word: {<Id.Lit_Slash '/'>}
                                                              )
                                                          ) <'/'> <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<eqawarn>} 
                                          {
                                            (DQ <'QA Notice: unpack called with redundant '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\$'>
                                              ) <'{DISTDIR} in path'>
                                            )
                                          }
                                        )
                                      ]
                                      spids: [2229 2250]
                                    )
                                  ]
                                )
                              ]
                              spids: [2213 2218]
                            )
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {(${ Id.VSub_Name x)}
                                              right: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name DISTDIR>
                                                    suffix_op: 
                                                      (suffix_op.Unary
                                                        op_id: Id.VOp1_Percent
                                                        arg_word: {<Id.Lit_Slash '/'>}
                                                      )
                                                  ) <'/'> <Id.Lit_Other '*'>
                                                }
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<die>} 
                                  {
                                    (DQ <'Arguments to unpack() cannot begin with '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\$'>
                                      ) <'{DISTDIR} in EAPI '> (${ Id.VSub_Name EAPI)
                                    )
                                  }
                                )
                              ]
                              spids: [2265 2286]
                            )
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: {(${ Id.VSub_Name x)}
                                              right: {<'/'> <Id.Lit_Other '*'>}
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<die>} 
                                  {
                                    (DQ <'Arguments to unpack() cannot be absolute in EAPI '> 
                                      (${ Id.VSub_Name EAPI)
                                    )
                                  }
                                )
                              ]
                              spids: [2301 2318]
                            )
                          ]
                          else_action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  <
'Relative paths to unpack() must be prefixed with \'./\' in EAPI '
                                  > (${ Id.VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalNot
                                          child: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_s
                                              child: {(${ Id.VSub_Name srcdir) (${ Id.VSub_Name x)}
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<__helpers_die>} 
                              {(DQ <'unpack: '> (${ Id.VSub_Name x) <' does not exist'>)}
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [2350 2368]
                        )
                      ]
                    )
                    (command.ShFunction
                      name: __unpack_tar
                      body: 
                        (BraceGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: {(${ Id.VSub_Name y_insensitive)}
                                                  right: {<tar>}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<___eapi_unpack_is_case_sensitive>})
                                                        (command.DBracket
                                                          expr: 
                                                            (bool_expr.Binary
                                                              op_id: Id.BoolBinary_GlobNEqual
                                                              left: {<tar>}
                                                              right: {(${ Id.VSub_Name y)}
                                                            )
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                              {
                                                (DQ <'secondary suffix \''> (${ Id.VSub_Name y) 
                                                  <'\' which is unofficially'>
                                                )
                                              } {(DQ <'supported with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tar\'.'>)}
                                            )
                                          ]
                                          spids: [2417 2439]
                                        )
                                      ]
                                    )
                                    (command.Pipeline
                                      children: [
                                        (C {($ Id.VSub_Number '$1')} {<-c>} {<-->} 
                                          {
                                            (DQ ($ Id.VSub_DollarName '$srcdir') 
                                              ($ Id.VSub_DollarName '$x')
                                            )
                                          }
                                        )
                                        (C {<tar>} {<xof>} {<->})
                                      ]
                                      negated: F
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<__assert_sigpipe_ok>} 
                                          {(DQ ($ Id.VSub_DollarName '$myfail'))}
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Return return>
                                          arg_word: {<1>}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [2398 2414]
                                )
                              ]
                              else_action: [
                                (C {<local>} 
                                  {<Id.Lit_VarLike 'cwd_dest='> 
                                    (braced_var_sub
                                      token: <Id.VSub_Name x>
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op_id: Id.VOp1_DPound
                                          arg_word: {<'*'> <Id.Lit_Slash '/'>}
                                        )
                                    )
                                  }
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:cwd_dest)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (braced_var_sub
                                            token: <Id.VSub_Name cwd_dest>
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op_id: Id.VOp1_Percent
                                                arg_word: {<'.*'>}
                                              )
                                          )
                                        }
                                      spids: [2519]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.Pipeline
                                                  children: [
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_Number '$1')}
                                                        {<-c>}
                                                        {<-->}
                                                        {
                                                          (DQ (${ Id.VSub_Name srcdir) 
                                                            (${ Id.VSub_Name x)
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: {(DQ (${ Id.VSub_Name cwd_dest))}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                  negated: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Return return>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      spids: [2527 2555]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:myfail)
                          op: assign_op.Equal
                          rhs: {(DQ <'unpack: failure unpacking '> (${ Id.VSub_Name x))}
                          spids: [2580]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name suffix_insensitive))}
                      arms: [
                        (case_arm
                          pat_list: [{<tar>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {<tar>}
                                                      right: {(${ Id.VSub_Name suffix)}
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tar\'.'>)}
                                    )
                                  ]
                                  spids: [2604 2626]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<tar>} {<xof>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName '$srcdir') 
                                                      ($ Id.VSub_DollarName '$x')
                                                    )
                                                  }
                                                )
                                              ]
                                              negated: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2659 2673]
                                )
                              ]
                            )
                          ]
                          spids: [2600 2601 2691 -1]
                        )
                        (case_arm
                          pat_list: [{<tgz>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {<tgz>}
                                                      right: {(${ Id.VSub_Name suffix)}
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tgz\'.'>)}
                                    )
                                  ]
                                  spids: [2698 2720]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<tar>} {<xozf>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName '$srcdir') 
                                                      ($ Id.VSub_DollarName '$x')
                                                    )
                                                  }
                                                )
                                              ]
                                              negated: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2753 2767]
                                )
                              ]
                            )
                          ]
                          spids: [2694 2695 2785 -1]
                        )
                        (case_arm
                          pat_list: [{<tbz>} {<tbz2>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' tbz tbz2 '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'tbz\' or \'tbz2\'.'>)}
                                    )
                                  ]
                                  spids: [2794 2824]
                                )
                              ]
                            )
                            (command.Pipeline
                              children: [
                                (C 
                                  {
                                    (braced_var_sub
                                      token: <Id.VSub_Name PORTAGE_BUNZIP2_COMMAND>
                                      suffix_op: 
                                        (suffix_op.Unary
                                          op_id: Id.VTest_ColonHyphen
                                          arg_word: {(${ Id.VSub_Name PORTAGE_BZIP2_COMMAND) <' -d'>}
                                        )
                                    )
                                  } {<-c>} {<-->} {(DQ ($ Id.VSub_DollarName '$srcdir') ($ Id.VSub_DollarName '$x'))}
                                )
                                (C {<tar>} {<xof>} {<->})
                              ]
                              negated: F
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<__assert_sigpipe_ok>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [2788 2791 2897 -1]
                        )
                        (case_arm
                          pat_list: [{<zip>} {<jar>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' ZIP zip jar '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'.'>)} 
                                      {(DQ <'Instead use \'ZIP\', \'zip\', or \'jar\'.'>)}
                                    )
                                  ]
                                  spids: [2906 2936]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<unzip>} {<-qo>} 
                                                  {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))}
                                                )
                                              ]
                                              negated: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [2983 3001]
                                )
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Less '<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_ProcSubIn '<('>
                                        child: 
                                          (command.CommandList
                                            children: [
                                              (command.Sentence
                                                child: (C {<Id.KW_Set set>} {<Id.Lit_Other '+'> <x>})
                                                terminator: <Id.Op_Semi _>
                                              )
                                              (command.WhileUntil
                                                keyword: <Id.KW_While while>
                                                cond: 
                                                  (condition.Shell
                                                    commands: [
                                                      (command.Sentence
                                                        child: (C {<true>})
                                                        terminator: <Id.Op_Semi _>
                                                      )
                                                    ]
                                                  )
                                                body: 
                                                  (command.DoGroup
                                                    children: [
                                                      (command.Sentence
                                                        child: 
                                                          (command.AndOr
                                                            ops: [Id.Op_DPipe]
                                                            children: [
                                                              (C {<echo>} {<n>})
                                                              (command.ControlFlow
                                                                token: <Id.ControlFlow_Break break>
                                                              )
                                                            ]
                                                          )
                                                        terminator: <Id.Op_Semi _>
                                                      )
                                                    ]
                                                  )
                                              )
                                            ]
                                          )
                                      )
                                    }
                                )
                              ]
                            )
                          ]
                          spids: [2900 2903 3050 -1]
                        )
                        (case_arm
                          pat_list: [{<gz>} {<z>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' gz z Z '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'gz\', \'z\', or \'Z\'.'>)}
                                    )
                                  ]
                                  spids: [3059 3089]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<__unpack_tar>} {(DQ <'gzip -d'>)})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [3053 3056 3135 -1]
                        )
                        (case_arm
                          pat_list: [{<bz2>} {<bz>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' bz bz2 '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'bz\' or \'bz2\'.'>)}
                                    )
                                  ]
                                  spids: [3144 3174]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<__unpack_tar>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name PORTAGE_BUNZIP2_COMMAND>
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op_id: Id.VTest_ColonHyphen
                                            arg_word: 
                                              {(${ Id.VSub_Name PORTAGE_BZIP2_COMMAND) <' -d'>}
                                          )
                                      )
                                    )
                                  }
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [3138 3141 3229 -1]
                        )
                        (case_arm
                          pat_list: [{<7z>}]
                          action: [
                            (C {<local>} {<my_output>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:my_output)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (command_sub
                                          left_token: <Id.Left_DollarParen '$('>
                                          child: 
                                            (C {<7z>} {<x>} {<-y>} 
                                              {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))}
                                            )
                                        )
                                      )
                                    }
                                  spids: [3241]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} 
                                              {<0>} {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.Simple
                                      words: [{<echo>} {(DQ (${ Id.VSub_Name my_output))}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_GreatAnd '>&'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<2>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (C {<die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                  ]
                                  spids: [3262 3275]
                                )
                              ]
                            )
                          ]
                          spids: [3232 3233 3300 -1]
                        )
                        (case_arm
                          pat_list: [{<rar>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' rar RAR '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'rar\' or \'RAR\'.'>)}
                                    )
                                  ]
                                  spids: [3307 3337]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<unrar>} {<x>} {<-idq>} {<-o> <Id.Lit_Other '+'>} 
                                                  {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))}
                                                )
                                              ]
                                              negated: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [3370 3393]
                                )
                              ]
                            )
                          ]
                          spids: [3303 3304 3411 -1]
                        )
                        (case_arm
                          pat_list: [{<lha>} {<lzh>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' LHA LHa lha lzh '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'.'>)} 
                                      {(DQ <'Instead use \'LHA\', \'LHa\', \'lha\', or \'lzh\'.'>)}
                                    )
                                  ]
                                  spids: [3420 3450]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<lha>} {<xfq>} 
                                                  {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))}
                                                )
                                              ]
                                              negated: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [3489 3507]
                                )
                              ]
                            )
                          ]
                          spids: [3414 3417 3525 -1]
                        )
                        (case_arm
                          pat_list: [{<a>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' a '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'a\'.'>)}
                                    )
                                  ]
                                  spids: [3532 3562]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [
                                                (C {<ar>} {<x>} 
                                                  {(DQ (${ Id.VSub_Name srcdir) (${ Id.VSub_Name x))}
                                                )
                                              ]
                                              negated: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<1>}
                                    )
                                  ]
                                  spids: [3595 3613]
                                )
                              ]
                            )
                          ]
                          spids: [3528 3529 3631 -1]
                        )
                        (case_arm
                          pat_list: [{<deb>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' deb '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'deb\'.'>)}
                                    )
                                  ]
                                  spids: [3638 3668]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: 
                                                        {
                                                          (command_sub
                                                            left_token: <Id.Left_DollarParen '$('>
                                                            child: 
                                                              (command.Simple
                                                                words: [{<ar>} {<--version>}]
                                                                redirects: [
                                                                  (redir
                                                                    op: <Id.Redir_Great '2>'>
                                                                    loc: (redir_loc.Fd fd:2)
                                                                    arg: {<'/dev/null'>}
                                                                  )
                                                                ]
                                                                do_fork: T
                                                              )
                                                          )
                                                        }
                                                      right: {(DQ <'GNU ar'>) <Id.Lit_Other '*'>}
                                                    )
                                                )
                                                (command.Simple
                                                  words: [{<type>} {<-P>} {<deb2targz>}]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:y)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name x>
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op_id: Id.VOp1_DPound
                                                    arg_word: {<'*'> <Id.Lit_Slash '/'>}
                                                  )
                                              )
                                            }
                                          spids: [3765]
                                        )
                                      ]
                                    )
                                    (C {<local>} {<Id.Lit_VarLike 'created_symlink='> <0>})
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$srcdir') 
                                                          ($ Id.VSub_DollarName '$x')
                                                        )
                                                      } {<-ef>} {(DQ ($ Id.VSub_DollarName '$y'))} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Pipeline
                                                              children: [
                                                                (C {<ln>} {<-sf>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName '$srcdir') ($ Id.VSub_DollarName '$x')
                                                                    )
                                                                  } {(DQ ($ Id.VSub_DollarName '$y'))}
                                                                )
                                                              ]
                                                              negated: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<__helpers_die>} 
                                                      {(DQ ($ Id.VSub_DollarName '$myfail'))}
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Return return>
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  spids: [3816 3834]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:created_symlink)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [3852]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [3780 3801]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Pipeline
                                                      children: [
                                                        (C {<deb2targz>} 
                                                          {(DQ ($ Id.VSub_DollarName '$y'))}
                                                        )
                                                      ]
                                                      negated: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Return return>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          spids: [3859 3870]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<Id.Lit_LBracket '['>} 
                                                      {($ Id.VSub_DollarName '$created_symlink')} {<Id.Lit_Equals '='>} {<1>} {<Id.Lit_RBracket ']'>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [(C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$y'))})]
                                          spids: [3888 3902]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Pipeline
                                                      children: [
                                                        (C {<mv>} {<-f>} 
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                token: <Id.VSub_Name y>
                                                                suffix_op: 
                                                                  (suffix_op.Unary
                                                                    op_id: Id.VOp1_Percent
                                                                    arg_word: {<.deb>}
                                                                  )
                                                              )
                                                            ) <.tar.gz>
                                                          } {<data.tar.gz>}
                                                        )
                                                      ]
                                                      negated: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: 
                                                    (condition.Shell
                                                      commands: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.Pipeline
                                                              children: [
                                                                (C {<mv>} {<-f>} 
                                                                  {
                                                                    (DQ 
                                                                      (braced_var_sub
                                                                        token: <Id.VSub_Name y>
                                                                        suffix_op: 
                                                                          (suffix_op.Unary
                                                                            op_id: Id.VOp1_Percent
                                                                            arg_word: {<.deb>}
                                                                          )
                                                                      )
                                                                    ) <.tar.xz>
                                                                  } {<data.tar.xz>}
                                                                )
                                                              ]
                                                              negated: T
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  action: [
                                                    (C {<__helpers_die>} 
                                                      {(DQ ($ Id.VSub_DollarName '$myfail'))}
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Return return>
                                                      arg_word: {<1>}
                                                    )
                                                  ]
                                                  spids: [3948 3968]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [3925 3945]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [3725 3762]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: 
                                        (condition.Shell
                                          commands: [
                                            (command.Sentence
                                              child: 
                                                (command.Pipeline
                                                  children: [
                                                    (C {<ar>} {<x>} 
                                                      {
                                                        (DQ ($ Id.VSub_DollarName '$srcdir') 
                                                          ($ Id.VSub_DollarName '$x')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  negated: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                        )
                                      action: [
                                        (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Return return>
                                          arg_word: {<1>}
                                        )
                                      ]
                                      spids: [3992 4006]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [3634 3635 4027 -1]
                        )
                        (case_arm
                          pat_list: [{<lzma>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' lzma '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'lzma\'.'>)}
                                    )
                                  ]
                                  spids: [4034 4064]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<__unpack_tar>} {(DQ <'lzma -d'>)})
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Return return>
                                  arg_word: {<1>}
                                )
                              ]
                            )
                          ]
                          spids: [4030 4031 4110 -1]
                        )
                        (case_arm
                          pat_list: [{<xz>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' xz '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'xz\'.'>)}
                                    )
                                  ]
                                  spids: [4117 4147]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<___eapi_unpack_supports_xz>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<__unpack_tar>} {(DQ <'xz -d'>)})
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Return return>
                                          arg_word: {<1>}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [4180 4185]
                                )
                              ]
                              else_action: [
                                (C {<__vecho>} 
                                  {
                                    (DQ <'unpack '> (${ Id.VSub_Name x) 
                                      <': file format not recognized. Ignoring.'>
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [4113 4114 4218 -1]
                        )
                        (case_arm
                          pat_list: [{<txz>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<___eapi_unpack_is_case_sensitive>})
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_GlobNEqual
                                                      left: {(DQ <' txz '>)}
                                                      right: 
                                                        {<Id.Lit_Other '*'> 
                                                          (DQ <' '> (${ Id.VSub_Name suffix) <' '>) <Id.Lit_Other '*'>
                                                        }
                                                    )
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<eqawarn>} {(DQ <'QA Notice: unpack called with'>)} 
                                      {
                                        (DQ <'suffix \''> (${ Id.VSub_Name suffix) 
                                          <'\' which is unofficially supported'>
                                        )
                                      } {(DQ <'with EAPI \''> (${ Id.VSub_Name EAPI) <'\'. Instead use \'txz\'.'>)}
                                    )
                                  ]
                                  spids: [4225 4255]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<___eapi_unpack_supports_txz>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.Pipeline
                                                      children: [
                                                        (C {<tar>} {<xof>} 
                                                          {
                                                            (DQ ($ Id.VSub_DollarName '$srcdir') 
                                                              ($ Id.VSub_DollarName '$x')
                                                            )
                                                          }
                                                        )
                                                      ]
                                                      negated: T
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<__helpers_die>} {(DQ ($ Id.VSub_DollarName '$myfail'))})
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Return return>
                                              arg_word: {<1>}
                                            )
                                          ]
                                          spids: [4296 4310]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [4288 4293]
                                )
                              ]
                              else_action: [
                                (C {<__vecho>} 
                                  {
                                    (DQ <'unpack '> (${ Id.VSub_Name x) 
                                      <': file format not recognized. Ignoring.'>
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [4221 4222 4345 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<__vecho>} 
                              {
                                (DQ <'unpack '> (${ Id.VSub_Name x) 
                                  <': file format not recognized. Ignoring.'>
                                )
                              }
                            )
                          ]
                          spids: [4348 4349 4363 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.Pipeline
              children: [
                (C {<find>} {<.>} {<-mindepth>} {<1>} {<-maxdepth>} {<1>} {<Id.KW_Bang '!'>} {<-type>} {<l>} 
                  {<-print0>}
                )
                (C {(${ Id.VSub_Name XARGS)} {<-0>} 
                  {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/chmod-lite'>)}
                )
              ]
              negated: F
            )
          ]
        )
    )
    (command.ShFunction
      name: econf
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<x>})
            (C {<local>} 
              {<Id.Lit_VarLike 'pid='> 
                (braced_var_sub
                  token: <Id.VSub_Name BASHPID>
                  suffix_op: 
                    (suffix_op.Unary
                      op_id: Id.VTest_ColonHyphen
                      arg_word: 
                        {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<__bashpid>}))}
                    )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [(C {<___eapi_has_prefix_variables>})]
                              negated: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<local>} {<Id.Lit_VarLike 'EPREFIX='>})]
                  spids: [4445 4452]
                )
              ]
            )
            (command.ShFunction
              name: __hasg
              body: 
                (BraceGroup
                  children: [
                    (C {<local>} {<x>} {<Id.Lit_VarLike 's='> ($ Id.VSub_Number '$1')})
                    (C {<shift>})
                    (command.ForEach
                      iter_name: x
                      do_arg_iter: T
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_GlobDEqual
                                          left: {(${ Id.VSub_Name x)}
                                          right: {(${ Id.VSub_Name s)}
                                        )
                                    )
                                    (C {<echo>} {(DQ (${ Id.VSub_Name x))})
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {<0>}
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<1>}
                    )
                  ]
                )
            )
            (command.ShFunction
              name: __hasgq
              body: 
                (BraceGroup
                  children: [
                    (command.Sentence
                      child: 
                        (command.Simple
                          words: [{<__hasg>} {(DQ ($ Id.VSub_At '$@'))}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                )
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'phase_func='> 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: (C {<__ebuild_arg_to_phase>} {(DQ ($ Id.VSub_DollarName '$EBUILD_PHASE'))})
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName '$phase_func')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [(C {<___eapi_has_src_configure>})]
                                      negated: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {($ Id.VSub_DollarName '$phase_func')}
                                      right: {<src_compile>}
                                    )
                                )
                                (C {<eqawarn>} {(DQ <'QA Notice: econf called in'>)} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$phase_func') 
                                      <' instead of src_compile'>
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [4582 4589]
                        )
                      ]
                      else_action: [
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobNEqual
                                  left: {($ Id.VSub_DollarName '$phase_func')}
                                  right: {<src_configure>}
                                )
                            )
                            (C {<eqawarn>} {(DQ <'QA Notice: econf called in'>)} 
                              {
                                (DQ ($ Id.VSub_DollarName '$phase_func') <' instead of src_configure'>)
                              }
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [4567 4579]
                )
              ]
            )
            (C {<Id.Lit_Colon ':'>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Name ECONF_SOURCE>
                  suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonEquals arg_word:{<.>})
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-x>} 
                              {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {($ Id.VSub_DollarName '$CONFIG_SHELL')}
                                            )
                                          right: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_EqualTilde
                                              left: 
                                                {
                                                  (DQ 
                                                    (command_sub
                                                      left_token: <Id.Left_DollarParen '$('>
                                                      child: 
                                                        (C {<head>} {<-n1>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$ECONF_SOURCE') <'/configure'>
                                                            )
                                                          }
                                                        )
                                                    )
                                                  )
                                                }
                                              right: 
                                                {<Id.Lit_Other '^'> (SQ <'#!'>) <Id.Lit_Other '['> 
                                                  <Id.Lit_Other '['> <Id.Lit_Other ':'> <space> <Id.Lit_Other ':'> <Id.Lit_Other ']'> <Id.Lit_Other ']'> <Id.Lit_Other '*'> 
                                                  <'/bin/sh'> <Id.Lit_Other '('> <Id.Lit_Other '['> <Id.Lit_Other '['> <Id.Lit_Other ':'> <space> <Id.Lit_Other ':'> 
                                                  <Id.Lit_Other ']'> <Id.Lit_Other ']'> <Id.Lit_Other '|'> <Id.Lit_Other '$'> <Id.Lit_Other ')'>
                                                }
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<cp>} {<-p>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} 
                                  {
                                    (DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> 
                                      (${ Id.VSub_Name pid)
                                    )
                                  }
                                )
                                (C {<die>})
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<sed>} {<-i>} {<-e>} 
                                  {
                                    (DQ <'1s:^#![[:space:]]*/bin/sh:#!'> 
                                      ($ Id.VSub_DollarName '$CONFIG_SHELL') <':'>
                                    )
                                  } {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> (${ Id.VSub_Name pid))}
                                )
                                (C {<die>} 
                                  {
                                    (DQ <'Substition of shebang in \''> (${ Id.VSub_Name ECONF_SOURCE) 
                                      <'/configure\' failed'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<touch>} {<-r>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} 
                                  {
                                    (DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> 
                                      (${ Id.VSub_Name pid)
                                    )
                                  }
                                )
                                (C {<die>})
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<mv>} {<-f>} 
                                  {
                                    (DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure._portage_tmp_.'> 
                                      (${ Id.VSub_Name pid)
                                    )
                                  } {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)}
                                )
                                (C {<die>})
                              ]
                            )
                          ]
                          spids: [4686 4742]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {<-e>} 
                                      {(DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/gnuconfig/'>} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Pipeline
                              children: [
                                (C {<find>} {(DQ (${ Id.VSub_Name WORKDIR))} {<-type>} {<f>} {(SQ <'('>)} 
                                  {<-name>} {<config.guess>} {<-o>} {<-name>} {<config.sub>} {(SQ <')'>)} {<-print0>}
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<read>} {<-r>} {<-d>} 
                                              {
                                                (single_quoted
                                                  left: <Id.Left_CSingleQuote '$\''>
                                                  tokens: [<Id.Char_OneChar '\\0'>]
                                                  multiline: F
                                                )
                                              } {<x>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (C {<__vecho>} 
                                          {
                                            (DQ <' * econf: updating '> 
                                              (braced_var_sub
                                                token: <Id.VSub_Name x>
                                                suffix_op: 
                                                  (suffix_op.PatSub
                                                    pat: 
                                                      {(${ Id.VSub_Name WORKDIR) 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\/'>
                                                        )
                                                      }
                                                    replace_mode: Id.Undefined_Tok
                                                  )
                                              ) <' with '> (${ Id.VSub_Name EPREFIX) <'/usr/share/gnuconfig/'> 
                                              (braced_var_sub
                                                token: <Id.VSub_Name x>
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op_id: Id.VOp1_DPound
                                                    arg_word: {<'*'> <Id.Lit_Slash '/'>}
                                                  )
                                              )
                                            )
                                          }
                                        )
                                        (C {<cp>} {<-f>} 
                                          {(DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/gnuconfig/'> 
                                            (DQ 
                                              (braced_var_sub
                                                token: <Id.VSub_Name x>
                                                suffix_op: 
                                                  (suffix_op.Unary
                                                    op_id: Id.VOp1_DPound
                                                    arg_word: {<'*'> <Id.Lit_Slash '/'>}
                                                  )
                                              )
                                            )
                                          } {(DQ (${ Id.VSub_Name x) <.> (${ Id.VSub_Name pid))}
                                        )
                                        (C {<mv>} {<-f>} 
                                          {(DQ (${ Id.VSub_Name x) <.> (${ Id.VSub_Name pid))} {(DQ (${ Id.VSub_Name x))}
                                        )
                                      ]
                                    )
                                )
                              ]
                              negated: F
                            )
                          ]
                          spids: [4871 4887]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'conf_args='> (sh_array_literal left:<Id.Op_LParen _>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (C {<___eapi_econf_passes_--disable-dependency-tracking>})
                                        (C {<___eapi_econf_passes_--disable-silent-rules>})
                                        (C {<___eapi_econf_passes_--docdir_and_--htmldir>})
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<local>} 
                              {<Id.Lit_VarLike 'conf_help='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Simple
                                      words: [
                                        {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)}
                                        {<--help>}
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                )
                              }
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<___eapi_econf_passes_--disable-dependency-tracking>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(${ Id.VSub_Name conf_help)}
                                                          right: 
                                                            {<Id.Lit_Other '*'> 
                                                              <--disable-dependency-tracking> <Id.Lit_Other '*'>
                                                            }
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:conf_args)
                                                  op: assign_op.PlusEqual
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [{<--disable-dependency-tracking>}]
                                                      )
                                                    }
                                                  spids: [5105]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [5085 5102]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [5077 5082]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<___eapi_econf_passes_--disable-silent-rules>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(${ Id.VSub_Name conf_help)}
                                                          right: 
                                                            {<Id.Lit_Other '*'> 
                                                              <--disable-silent-rules> <Id.Lit_Other '*'>
                                                            }
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:conf_args)
                                                  op: assign_op.PlusEqual
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [{<--disable-silent-rules>}]
                                                      )
                                                    }
                                                  spids: [5148]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [5128 5145]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [5120 5125]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: (C {<___eapi_econf_passes_--docdir_and_--htmldir>})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(${ Id.VSub_Name conf_help)}
                                                          right: 
                                                            {<Id.Lit_Other '*'> <--docdir> 
                                                              <Id.Lit_Other '*'>
                                                            }
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:conf_args)
                                                  op: assign_op.PlusEqual
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [
                                                          {<--docdir> <Id.Lit_Equals '='> 
                                                            (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/doc/'> (${ Id.VSub_Name PF)
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [5191]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [5171 5188]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(${ Id.VSub_Name conf_help)}
                                                          right: 
                                                            {<Id.Lit_Other '*'> <--htmldir> 
                                                              <Id.Lit_Other '*'>
                                                            }
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:conf_args)
                                                  op: assign_op.PlusEqual
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [
                                                          {<--htmldir> <Id.Lit_Equals '='> 
                                                            (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/doc/'> (${ Id.VSub_Name PF) <'/html'>
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [5233]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [5213 5230]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [5163 5168]
                                )
                              ]
                            )
                          ]
                          spids: [5042 5055]
                        )
                      ]
                    )
                    (C {<local>} {<CONF_LIBDIR>} 
                      {<Id.Lit_VarLike 'LIBDIR_VAR='> (DQ <LIBDIR_> (${ Id.VSub_Name ABI))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.LogicalAnd
                                          left: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {(${ Id.VSub_Name ABI)}
                                            )
                                          right: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name LIBDIR_VAR>
                                                    prefix_op: (Id.VSub_Bang)
                                                  )
                                                }
                                            )
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CONF_LIBDIR)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name LIBDIR_VAR>
                                        prefix_op: (Id.VSub_Bang)
                                      )
                                    }
                                  spids: [5309]
                                )
                              ]
                            )
                          ]
                          spids: [5283 5306]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_n
                                              child: {(${ Id.VSub_Name CONF_LIBDIR)}
                                            )
                                        )
                                        (command.Pipeline
                                          children: [
                                            (C {<__hasgq>} 
                                              {<--libdir> <Id.Lit_Equals '='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\*'>
                                                )
                                              } {(DQ ($ Id.VSub_At '$@'))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<export>} 
                              {<Id.Lit_VarLike 'CONF_PREFIX='> 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (C {<__hasg>} 
                                      {<--exec-prefix> <Id.Lit_Equals '='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\*'>
                                        )
                                      } {(DQ ($ Id.VSub_At '$@'))}
                                    )
                                )
                              }
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_z
                                      child: {(${ Id.VSub_Name CONF_PREFIX)}
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:CONF_PREFIX)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_DollarParen '$('>
                                            child: 
                                              (C {<__hasg>} 
                                                {<--prefix> <Id.Lit_Equals '='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\*'>
                                                  )
                                                } {(DQ ($ Id.VSub_At '$@'))}
                                              )
                                          )
                                        }
                                      spids: [5378]
                                    )
                                  ]
                                )
                              ]
                            )
                            (C {<Id.Lit_Colon ':'>} 
                              {
                                (braced_var_sub
                                  token: <Id.VSub_Name CONF_PREFIX>
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonEquals
                                      arg_word: {(${ Id.VSub_Name EPREFIX) <Id.Lit_Slash '/'> <usr>}
                                    )
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CONF_PREFIX)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name CONF_PREFIX>
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op_id: Id.VOp1_Pound
                                            arg_word: {<'*='>}
                                          )
                                      )
                                    }
                                  spids: [5405]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {(${ Id.VSub_Name CONF_PREFIX)}
                                      right: {<'/'> <Id.Lit_Other '*'>}
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:CONF_PREFIX)
                                      op: assign_op.Equal
                                      rhs: {(DQ <'/'> (${ Id.VSub_Name CONF_PREFIX))}
                                      spids: [5428]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Binary
                                      op_id: Id.BoolBinary_GlobNEqual
                                      left: {(${ Id.VSub_Name CONF_LIBDIR)}
                                      right: {<'/'> <Id.Lit_Other '*'>}
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:CONF_LIBDIR)
                                      op: assign_op.Equal
                                      rhs: {(DQ <'/'> (${ Id.VSub_Name CONF_LIBDIR))}
                                      spids: [5452]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:conf_args)
                                  op: assign_op.PlusEqual
                                  rhs: 
                                    {
                                      (sh_array_literal
                                        left: <Id.Op_LParen _>
                                        words: [
                                          {<--libdir> <Id.Lit_Equals '='> 
                                            (DQ 
                                              (command_sub
                                                left_token: <Id.Left_DollarParen '$('>
                                                child: 
                                                  (C {<__strip_duplicate_slashes>} 
                                                    {
                                                      (DQ (${ Id.VSub_Name CONF_PREFIX) 
                                                        (${ Id.VSub_Name CONF_LIBDIR)
                                                      )
                                                    }
                                                  )
                                              )
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [5461]
                                )
                              ]
                            )
                          ]
                          spids: [5319 5347]
                        )
                      ]
                    )
                    (C {<eval>} {(DQ <'local -a EXTRA_ECONF=('> (${ Id.VSub_Name EXTRA_ECONF) <')'>)})
                    (C {<Id.KW_Set set>} {<-->} 
                      {<--prefix> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr'>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Name CBUILD>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_ColonPlus
                              arg_word: {<'--build='> (${ Id.VSub_Name CBUILD)}
                            )
                        )
                      } {<--host> <Id.Lit_Equals '='> (${ Id.VSub_Name CHOST)} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Name CTARGET>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_ColonPlus
                              arg_word: {<'--target='> (${ Id.VSub_Name CTARGET)}
                            )
                        )
                      } {<--mandir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share/man'>} 
                      {<--infodir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) 
                        <'/usr/share/info'>
                      } {<--datadir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/usr/share'>} 
                      {<--sysconfdir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/etc'>} {<--localstatedir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name EPREFIX)) <'/var/lib'>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name conf_args>
                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                          )
                        )
                      } {(DQ ($ Id.VSub_At '$@'))} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name EXTRA_ECONF>
                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                          )
                        )
                      }
                    )
                    (C {<__vecho>} {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} 
                      {(DQ ($ Id.VSub_At '$@'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} 
                                          {(DQ ($ Id.VSub_At '$@'))}
                                        )
                                      ]
                                      negated: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (C {<Id.Lit_LBracket '['>} {<-s>} {<config.log>} 
                                              {<Id.Lit_RBracket ']'>}
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<echo>})
                                    (C {<echo>} 
                                      {
                                        (DQ 
                                          <
'!!! Please attach the following file when seeking support:'
                                          >
                                        )
                                      }
                                    )
                                    (C {<echo>} {(DQ <'!!! '> (${ Id.VSub_Name PWD) <'/config.log'>)})
                                  ]
                                  spids: [5671 5682]
                                )
                              ]
                            )
                            (C {<__helpers_die>} {(DQ <'econf failed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [5650 5667]
                        )
                      ]
                    )
                  ]
                  spids: [4667 4683]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {(DQ (${ Id.VSub_Name ECONF_SOURCE) <'/configure'>)} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<die>} {(DQ <'configure is not executable'>)})]
                  spids: [5724 5740]
                )
              ]
              else_action: [(C {<die>} {(DQ <'no configure script found'>)})]
            )
          ]
        )
    )
    (command.ShFunction
      name: einstall
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (command.Pipeline children:[(C {<___eapi_has_einstall>})] negated:T)
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<die>} 
                      {
                        (DQ <'\''> (${ Id.VSub_Name FUNCNAME) <'\' has been banned for EAPI \''> 
                          ($ Id.VSub_DollarName '$EAPI') <'\''>
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {<1>}
                    )
                  ]
                  spids: [5772 5779]
                )
              ]
            )
            (C {<local>} 
              {<Id.Lit_VarLike 'LOCAL_EXTRA_EINSTALL='> (DQ (${ Id.VSub_Name EXTRA_EINSTALL))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [(C {<___eapi_has_prefix_variables>})]
                              negated: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<local>} {<Id.Lit_VarLike 'ED='> (${ Id.VSub_Name D)})]
                  spids: [5818 5825]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:LIBDIR_VAR)
                  op: assign_op.Equal
                  rhs: {(DQ <LIBDIR_> (${ Id.VSub_Name ABI))}
                  spids: [5839]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name ABI))} {<-a>} {<-n>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name LIBDIR_VAR>
                                    prefix_op: (Id.VSub_Bang)
                                  )
                                )
                              } {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CONF_LIBDIR)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (braced_var_sub
                                  token: <Id.VSub_Name LIBDIR_VAR>
                                  prefix_op: (Id.VSub_Bang)
                                )
                              )
                            }
                          spids: [5877]
                        )
                      ]
                    )
                  ]
                  spids: [5848 5874]
                )
              ]
            )
            (C {<unset>} {<LIBDIR_VAR>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name CONF_LIBDIR))} 
                                  {<Id.Lit_RBracket ']'>}
                                )
                                (C {<Id.Lit_LBracket '['>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name CONF_PREFIX>
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op_id: Id.VTest_ColonPlus
                                            arg_word: {<set>}
                                          )
                                      )
                                    )
                                  } {<Id.Lit_Equals '='>} {<Id.KW_Set set>} {<Id.Lit_RBracket ']'>}
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:EI_DESTLIBDIR)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (${ Id.VSub_Name D) <'/'> (${ Id.VSub_Name CONF_PREFIX) <'/'> 
                                (${ Id.VSub_Name CONF_LIBDIR)
                              )
                            }
                          spids: [5930]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:EI_DESTLIBDIR)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ 
                                (command_sub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (C {<__strip_duplicate_slashes>} 
                                      {(DQ (${ Id.VSub_Name EI_DESTLIBDIR))}
                                    )
                                )
                              )
                            }
                          spids: [5946]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:LOCAL_EXTRA_EINSTALL)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'libdir='> (${ Id.VSub_Name EI_DESTLIBDIR) <' '> 
                                (${ Id.VSub_Name LOCAL_EXTRA_EINSTALL)
                              )
                            }
                          spids: [5960]
                        )
                      ]
                    )
                    (C {<unset>} {<EI_DESTLIBDIR>})
                  ]
                  spids: [5894 5927]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-f>} 
                              {<'./'> <Id.Lit_LBracket '['> <mM> <Id.Lit_RBracket ']'> <akefile>} {<-o>} {<-f>} {<'./GNUmakefile'>} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name PORTAGE_DEBUG))} 
                                      {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <1>)} {<Id.Lit_RBracket ']'>}
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C 
                              {
                                (braced_var_sub
                                  token: <Id.VSub_Name MAKE>
                                  suffix_op: 
                                    (suffix_op.Unary
                                      op_id: Id.VTest_ColonHyphen
                                      arg_word: {<make>}
                                    )
                                )
                              } {<-n>} {<Id.Lit_VarLike 'prefix='> (DQ (${ Id.VSub_Name ED) <usr>)} 
                              {<Id.Lit_VarLike 'datadir='> (DQ (${ Id.VSub_Name ED) <'usr/share'>)} {<Id.Lit_VarLike 'infodir='> (DQ (${ Id.VSub_Name ED) <'usr/share/info'>)} 
                              {<Id.Lit_VarLike 'localstatedir='> (DQ (${ Id.VSub_Name ED) <'var/lib'>)} {<Id.Lit_VarLike 'mandir='> (DQ (${ Id.VSub_Name ED) <'usr/share/man'>)} 
                              {<Id.Lit_VarLike 'sysconfdir='> (DQ (${ Id.VSub_Name ED) <etc>)} {(${ Id.VSub_Name LOCAL_EXTRA_EINSTALL)} {(${ Id.VSub_Name MAKEOPTS)} {<-j1>} {(DQ ($ Id.VSub_At '$@'))} 
                              {(${ Id.VSub_Name EXTRA_EMAKE)} {<install>}
                            )
                          ]
                          spids: [6007 6027]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Pipeline
                                  children: [
                                    (C 
                                      {
                                        (braced_var_sub
                                          token: <Id.VSub_Name MAKE>
                                          suffix_op: 
                                            (suffix_op.Unary
                                              op_id: Id.VTest_ColonHyphen
                                              arg_word: {<make>}
                                            )
                                        )
                                      } {<Id.Lit_VarLike 'prefix='> (DQ (${ Id.VSub_Name ED) <usr>)} 
                                      {<Id.Lit_VarLike 'datadir='> 
                                        (DQ (${ Id.VSub_Name ED) <'usr/share'>)
                                      } {<Id.Lit_VarLike 'infodir='> (DQ (${ Id.VSub_Name ED) <'usr/share/info'>)} 
                                      {<Id.Lit_VarLike 'localstatedir='> 
                                        (DQ (${ Id.VSub_Name ED) <'var/lib'>)
                                      } {<Id.Lit_VarLike 'mandir='> (DQ (${ Id.VSub_Name ED) <'usr/share/man'>)} 
                                      {<Id.Lit_VarLike 'sysconfdir='> (DQ (${ Id.VSub_Name ED) <etc>)} {(${ Id.VSub_Name LOCAL_EXTRA_EINSTALL)} {(${ Id.VSub_Name MAKEOPTS)} {<-j1>} {(DQ ($ Id.VSub_At '$@'))} 
                                      {(${ Id.VSub_Name EXTRA_EMAKE)} {<install>}
                                    )
                                  ]
                                  negated: T
                                )
                              ]
                            )
                          action: [
                            (C {<__helpers_die>} {(DQ <'einstall failed'>)})
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {<1>}
                            )
                          ]
                          spids: [6126 6221]
                        )
                      ]
                    )
                  ]
                  spids: [5982 6004]
                )
              ]
              else_action: [(C {<die>} {(DQ <'no Makefile found'>)})]
            )
          ]
        )
    )
    (command.ShFunction
      name: __eapi0_pkg_nofetch
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(${ Id.VSub_Name A)})
                )
                (command.ControlFlow token:<Id.ControlFlow_Return return>)
              ]
            )
            (C {<elog>} {(DQ <'The following files cannot be fetched for '> (${ Id.VSub_Name PN) <':'>)})
            (C {<local>} {<x>})
            (command.ForEach
              iter_name: x
              iter_words: [{(${ Id.VSub_Name A)}]
              do_arg_iter: F
              body: (command.DoGroup children:[(C {<elog>} {(DQ <'   '> (${ Id.VSub_Name x))})])
            )
          ]
        )
    )
    (command.ShFunction
      name: __eapi0_src_unpack
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (command.DBracket
                  expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name A)})
                )
                (C {<unpack>} {(${ Id.VSub_Name A)})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: __eapi0_src_compile
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<-x>} {<'./configure'>} {<Id.Lit_RBracket ']'>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<econf>})]
                  spids: [6357 6369]
                )
              ]
            )
            (C {<__eapi2_src_compile>})
          ]
        )
    )
    (command.ShFunction
      name: __eapi0_src_test
      body: 
        (BraceGroup
          children: [
            (C {<local>} 
              {<Id.Lit_VarLike 'emake_cmd='> 
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Name MAKE>
                    suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{<make>})
                  ) <' '> (${ Id.VSub_Name MAKEOPTS) <' '> (${ Id.VSub_Name EXTRA_EMAKE)
                )
              }
            )
            (C {<local>} {<Id.Lit_VarLike 'internal_opts='>})
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<___eapi_default_src_test_disables_parallel_jobs>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:internal_opts)
                          op: assign_op.PlusEqual
                          rhs: {(DQ <' -j1'>)}
                          spids: [6443]
                        )
                      ]
                    )
                  ]
                  spids: [6435 6440]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              words: [
                                {($ Id.VSub_DollarName '$emake_cmd')}
                                {(${ Id.VSub_Name internal_opts)}
                                {<check>}
                                {<-n>}
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [
                        {<__vecho>}
                        {
                          (DQ (${ Id.VSub_Name emake_cmd) <' '> (${ Id.VSub_Name internal_opts) 
                            <' check'>
                          )
                        }
                      ]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$emake_cmd')} {(${ Id.VSub_Name internal_opts)} 
                          {<check>}
                        )
                        (C {<die>} {(DQ <'Make check failed. See above for details.'>)})
                      ]
                    )
                  ]
                  spids: [6452 6469]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              words: [
                                {($ Id.VSub_DollarName '$emake_cmd')}
                                {(${ Id.VSub_Name internal_opts)}
                                {<test>}
                                {<-n>}
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_AndGreat '&>'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<'/dev/null'>}
                                )
                              ]
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.Simple
                      words: [
                        {<__vecho>}
                        {
                          (DQ (${ Id.VSub_Name emake_cmd) <' '> (${ Id.VSub_Name internal_opts) 
                            <' test'>
                          )
                        }
                      ]
                      redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                      do_fork: T
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$emake_cmd')} {(${ Id.VSub_Name internal_opts)} 
                          {<test>}
                        )
                        (C {<die>} {(DQ <'Make test failed. See above for details.'>)})
                      ]
                    )
                  ]
                  spids: [6508 6525]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: __eapi1_src_compile
      body: (BraceGroup children:[(C {<__eapi2_src_configure>}) (C {<__eapi2_src_compile>})])
    )
    (command.ShFunction
      name: __eapi2_src_prepare
      body: (BraceGroup children:[(C {<Id.Lit_Colon ':'>})])
    )
    (command.ShFunction
      name: __eapi2_src_configure
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_x
                                  child: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name ECONF_SOURCE>
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op_id: Id.VTest_ColonHyphen
                                            arg_word: {<.>}
                                          )
                                      ) <'/configure'>
                                    }
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<econf>})]
                  spids: [6603 6620]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: __eapi2_src_compile
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DPipe Id.Op_DPipe]
                              children: [
                                (C {<Id.Lit_LBracket '['>} {<-f>} {<Makefile>} {<Id.Lit_RBracket ']'>})
                                (C {<Id.Lit_LBracket '['>} {<-f>} {<GNUmakefile>} {<Id.Lit_RBracket ']'>})
                                (C {<Id.Lit_LBracket '['>} {<-f>} {<makefile>} {<Id.Lit_RBracket ']'>})
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [(C {<emake>}) (C {<die>} {(DQ <'emake failed'>)})]
                    )
                  ]
                  spids: [6638 6669]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: __eapi4_src_install
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalOr
                                  left: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<Makefile>})
                                  right: 
                                    (bool_expr.LogicalOr
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: {<GNUmakefile>}
                                        )
                                      right: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<makefile>})
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<emake>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name D))} {<install>})
                  ]
                  spids: [6695 6719]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Pipeline
                              children: [
                                (command.Simple
                                  words: [{<declare>} {<-p>} {<DOCS>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_AndGreat '&>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              negated: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<local>} {<d>})
                    (command.ForEach
                      iter_name: d
                      iter_words: [
                        {<README> <Id.Lit_Star '*'>}
                        {<ChangeLog>}
                        {<AUTHORS>}
                        {<NEWS>}
                        {<TODO>}
                        {<CHANGES>}
                        {<THANKS>}
                        {<BUGS>}
                        {<FAQ>}
                        {<CREDITS>}
                        {<CHANGELOG>}
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: 
                                    (bool_expr.Unary
                                      op_id: Id.BoolUnary_s
                                      child: {(DQ (${ Id.VSub_Name d))}
                                    )
                                )
                                (C {<dodoc>} {(DQ (${ Id.VSub_Name d))})
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [6738 6753]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: (C {<declare>} {<-p>} {<DOCS>})
                                      )
                                    }
                                  right: {(DQ <'declare -a '>) <Id.Lit_Other '*'>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<dodoc>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name DOCS>
                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                          )
                        )
                      }
                    )
                  ]
                  spids: [6823 6846]
                )
              ]
              else_action: [(C {<dodoc>} {(${ Id.VSub_Name DOCS)})]
            )
          ]
        )
    )
    (command.ShFunction
      name: __eapi6_src_prepare
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_DollarParen '$('>
                                        child: 
                                          (command.Simple
                                            words: [{<declare>} {<-p>} {<PATCHES>}]
                                            redirects: [
                                              (redir
                                                op: <Id.Redir_Great '2>'>
                                                loc: (redir_loc.Fd fd:2)
                                                arg: {<'/dev/null'>}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: 
                                {
                                  (braced_var_sub
                                    token: <Id.VSub_Name PATCHES>
                                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                  )
                                }
                            )
                        )
                        (C {<eapply>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name PATCHES>
                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              )
                            )
                          }
                        )
                      ]
                    )
                  ]
                  spids: [6883 6908]
                )
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(${ Id.VSub_Name PATCHES)}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [(C {<eapply>} {(${ Id.VSub_Name PATCHES)})]
                  spids: [6938 6951]
                )
              ]
            )
            (C {<eapply_user>})
          ]
        )
    )
    (command.ShFunction
      name: __eapi6_src_install
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.LogicalOr
                                  left: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<Makefile>})
                                  right: 
                                    (bool_expr.LogicalOr
                                      left: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_f
                                          child: {<GNUmakefile>}
                                        )
                                      right: (bool_expr.Unary op_id:Id.BoolUnary_f child:{<makefile>})
                                    )
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<emake>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name D))} {<install>})
                  ]
                  spids: [6977 7001]
                )
              ]
            )
            (C {<einstalldocs>})
          ]
        )
    )
    (command.ShFunction
      name: has_version
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<atom>} {<eroot>} {<Id.Lit_VarLike 'host_root='> <false>} 
              {<Id.Lit_VarLike 'root='> (${ Id.VSub_Name ROOT)}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_Number '$1')}
                                  right: {<--host-root>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:host_root)
                          op: assign_op.Equal
                          rhs: {<true>}
                          spids: [7083]
                        )
                      ]
                    )
                    (C {<shift>})
                  ]
                  spids: [7066 7080]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:atom)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [7093]
                )
              ]
            )
            (C {<shift>})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>})
                (C {<die>} 
                  {
                    (DQ 
                      (braced_var_sub
                        token: <Id.VSub_Name FUNCNAME>
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                      ) <': unused argument(s): '> ($ Id.VSub_Star '$*')
                    )
                  }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {(${ Id.VSub_Name host_root)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C 
                                          {
                                            <
___eapi_best_version_and_has_version_support_--host-root
                                            >
                                          }
                                        )
                                      ]
                                      negated: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name FUNCNAME>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  ) <': option --host-root is not supported with EAPI '> (${ Id.VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          spids: [7138 7145]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:root)
                          op: assign_op.Equal
                          rhs: {<'/'>}
                          spids: [7167]
                        )
                      ]
                    )
                  ]
                  spids: [7127 7135]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<___eapi_has_prefix_variables>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {(${ Id.VSub_Name host_root)})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:eroot)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name root>
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op_id: Id.VOp1_Percent
                                            arg_word: {<Id.Lit_Slash '/'>}
                                          )
                                      ) (${ Id.VSub_Name PORTAGE_OVERRIDE_EPREFIX) <'/'>
                                    }
                                  spids: [7206]
                                )
                              ]
                            )
                          ]
                          spids: [7195 7203]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:eroot)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    token: <Id.VSub_Name root>
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op_id: Id.VOp1_Percent
                                        arg_word: {<Id.Lit_Slash '/'>}
                                      )
                                  ) (${ Id.VSub_Name EPREFIX) <'/'>
                                }
                              spids: [7221]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7175 7180]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:eroot)
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Name root)}
                      spids: [7239]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName '$PORTAGE_IPC_DAEMON')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {(DQ ($ Id.VSub_DollarName '$PORTAGE_BIN_PATH')) <'/ebuild-ipc'>} 
                      {<has_version>} {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))}
                    )
                  ]
                  spids: [7248 7260]
                )
              ]
              else_action: [
                (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'>)} 
                  {<has_version>} {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))}
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'retval='> ($ Id.VSub_QMark '$?')})
            (command.Case
              to_match: {(DQ (${ Id.VSub_Name retval))}
              arms: [
                (case_arm
                  pat_list: [{<0>} {<1>}]
                  action: [
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {(${ Id.VSub_Name retval)}
                    )
                  ]
                  spids: [7328 7331 7341 -1]
                )
                (case_arm
                  pat_list: [{<2>}]
                  action: [
                    (C {<die>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name FUNCNAME>
                            bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                          ) <': invalid atom: '> (${ Id.VSub_Name atom)
                        )
                      }
                    )
                  ]
                  spids: [7344 7345 7364 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name FUNCNAME>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                )
                              }
                            )
                          ]
                          spids: [7371 7384]
                        )
                      ]
                      else_action: [
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name FUNCNAME>
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                              ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                            )
                          }
                        )
                      ]
                    )
                  ]
                  spids: [7367 7368 7425 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: best_version
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<atom>} {<eroot>} {<Id.Lit_VarLike 'host_root='> <false>} 
              {<Id.Lit_VarLike 'root='> (${ Id.VSub_Name ROOT)}
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Binary
                                  op_id: Id.BoolBinary_GlobDEqual
                                  left: {($ Id.VSub_Number '$1')}
                                  right: {<--host-root>}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:host_root)
                          op: assign_op.Equal
                          rhs: {<true>}
                          spids: [7491]
                        )
                      ]
                    )
                    (C {<shift>})
                  ]
                  spids: [7474 7488]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:atom)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [7501]
                )
              ]
            )
            (C {<shift>})
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>})
                (C {<die>} 
                  {
                    (DQ 
                      (braced_var_sub
                        token: <Id.VSub_Name FUNCNAME>
                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                      ) <': unused argument(s): '> ($ Id.VSub_Star '$*')
                    )
                  }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {(${ Id.VSub_Name host_root)})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (C 
                                          {
                                            <
___eapi_best_version_and_has_version_support_--host-root
                                            >
                                          }
                                        )
                                      ]
                                      negated: T
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name FUNCNAME>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  ) <': option --host-root is not supported with EAPI '> (${ Id.VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          spids: [7546 7553]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:root)
                          op: assign_op.Equal
                          rhs: {<'/'>}
                          spids: [7575]
                        )
                      ]
                    )
                  ]
                  spids: [7535 7543]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: (C {<___eapi_has_prefix_variables>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: (C {(${ Id.VSub_Name host_root)})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:eroot)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name root>
                                        suffix_op: 
                                          (suffix_op.Unary
                                            op_id: Id.VOp1_Percent
                                            arg_word: {<Id.Lit_Slash '/'>}
                                          )
                                      ) (${ Id.VSub_Name PORTAGE_OVERRIDE_EPREFIX) <'/'>
                                    }
                                  spids: [7614]
                                )
                              ]
                            )
                          ]
                          spids: [7603 7611]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:eroot)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    token: <Id.VSub_Name root>
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op_id: Id.VOp1_Percent
                                        arg_word: {<Id.Lit_Slash '/'>}
                                      )
                                  ) (${ Id.VSub_Name EPREFIX) <'/'>
                                }
                              spids: [7629]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7583 7588]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:eroot)
                      op: assign_op.Equal
                      rhs: {(${ Id.VSub_Name root)}
                      spids: [7647]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {($ Id.VSub_DollarName '$PORTAGE_IPC_DAEMON')}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {(DQ ($ Id.VSub_DollarName '$PORTAGE_BIN_PATH')) <'/ebuild-ipc'>} 
                      {<best_version>} {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))}
                    )
                  ]
                  spids: [7656 7668]
                )
              ]
              else_action: [
                (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-helpers/portageq'>)} 
                  {<best_version>} {(DQ (${ Id.VSub_Name eroot))} {(DQ (${ Id.VSub_Name atom))}
                )
              ]
            )
            (C {<local>} {<Id.Lit_VarLike 'retval='> ($ Id.VSub_QMark '$?')})
            (command.Case
              to_match: {(DQ (${ Id.VSub_Name retval))}
              arms: [
                (case_arm
                  pat_list: [{<0>} {<1>}]
                  action: [
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {(${ Id.VSub_Name retval)}
                    )
                  ]
                  spids: [7736 7739 7749 -1]
                )
                (case_arm
                  pat_list: [{<2>}]
                  action: [
                    (C {<die>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name FUNCNAME>
                            bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                          ) <': invalid atom: '> (${ Id.VSub_Name atom)
                        )
                      }
                    )
                  ]
                  spids: [7752 7753 7772 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name FUNCNAME>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                )
                              }
                            )
                          ]
                          spids: [7779 7792]
                        )
                      ]
                      else_action: [
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name FUNCNAME>
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                              ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                            )
                          }
                        )
                      ]
                    )
                  ]
                  spids: [7775 7776 7833 -1]
                )
              ]
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_get_libdir>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: get_libdir
              body: 
                (BraceGroup
                  children: [
                    (C {<local>} {<Id.Lit_VarLike 'libdir_var='> (DQ <LIBDIR_> (${ Id.VSub_Name ABI))})
                    (C {<local>} {<Id.Lit_VarLike 'libdir='> (DQ <lib>)})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.LogicalAnd
                              left: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: {(${ Id.VSub_Name ABI)}
                                )
                              right: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_n
                                  child: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_Name libdir_var>
                                        prefix_op: (Id.VSub_Bang)
                                      )
                                    }
                                )
                            )
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:libdir)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (braced_var_sub
                                    token: <Id.VSub_Name libdir_var>
                                    prefix_op: (Id.VSub_Bang)
                                  )
                                }
                              spids: [7897]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<echo>} {(DQ (${ Id.VSub_Name libdir))})
                  ]
                )
            )
          ]
          spids: [7841 7846]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_einstalldocs>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: einstalldocs
              body: 
                (BraceGroup
                  children: [
                    (command.Subshell
                      child: 
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (command.Simple
                                              words: [{<declare>} {<-p>} {<DOCS>}]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_AndGreat '&>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<'/dev/null'>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (C {<local>} {<d>})
                                (command.ForEach
                                  iter_name: d
                                  iter_words: [
                                    {<README> <Id.Lit_Star '*'>}
                                    {<ChangeLog>}
                                    {<AUTHORS>}
                                    {<NEWS>}
                                    {<TODO>}
                                    {<CHANGES>}
                                    {<THANKS>}
                                    {<BUGS>}
                                    {<FAQ>}
                                    {<CREDITS>}
                                    {<CHANGELOG>}
                                  ]
                                  do_arg_iter: F
                                  body: 
                                    (command.DoGroup
                                      children: [
                                        (command.AndOr
                                          ops: [Id.Op_DAmp Id.Op_DAmp]
                                          children: [
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.LogicalAnd
                                                  left: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_f
                                                      child: {(${ Id.VSub_Name d)}
                                                    )
                                                  right: 
                                                    (bool_expr.Unary
                                                      op_id: Id.BoolUnary_s
                                                      child: {(${ Id.VSub_Name d)}
                                                    )
                                                )
                                            )
                                            (C {<docinto>} {<'/'>})
                                            (C {<dodoc>} {(DQ (${ Id.VSub_Name d))})
                                          ]
                                        )
                                      ]
                                    )
                                )
                              ]
                              spids: [7937 7952]
                            )
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    child: (C {<declare>} {<-p>} {<DOCS>})
                                                  )
                                                }
                                              right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>}
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.AndOr
                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.WordTest
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name DOCS>
                                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                              )
                                            }
                                        )
                                    )
                                    (C {<docinto>} {<'/'>})
                                    (C {<dodoc>} {<-r>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            token: <Id.VSub_Name DOCS>
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          )
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                              spids: [8034 8057]
                            )
                          ]
                          else_action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: (bool_expr.WordTest w:{(${ Id.VSub_Name DOCS)})
                                )
                                (C {<docinto>} {<'/'>})
                                (C {<dodoc>} {<-r>} {(${ Id.VSub_Name DOCS)})
                              ]
                            )
                          ]
                        )
                    )
                    (command.Subshell
                      child: 
                        (command.If
                          arms: [
                            (if_arm
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Binary
                                              op_id: Id.BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    child: 
                                                      (command.Simple
                                                        words: [{<declare>} {<-p>} {<HTML_DOCS>}]
                                                        redirects: [
                                                          (redir
                                                            op: <Id.Redir_Great '2>'>
                                                            loc: (redir_loc.Fd fd:2)
                                                            arg: {<'/dev/null'>}
                                                          )
                                                        ]
                                                        do_fork: T
                                                      )
                                                  )
                                                }
                                              right: {(DQ <'declare -a'>) <Id.Lit_Other '*'>}
                                            )
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              action: [
                                (command.AndOr
                                  ops: [Id.Op_DAmp Id.Op_DAmp]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.WordTest
                                          w: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name HTML_DOCS>
                                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                              )
                                            }
                                        )
                                    )
                                    (C {<docinto>} {<html>})
                                    (C {<dodoc>} {<-r>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            token: <Id.VSub_Name HTML_DOCS>
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                          )
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                              spids: [8131 8157]
                            )
                          ]
                          else_action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp Id.Op_DAmp]
                              children: [
                                (command.DBracket
                                  expr: (bool_expr.WordTest w:{(${ Id.VSub_Name HTML_DOCS)})
                                )
                                (C {<docinto>} {<html>})
                                (C {<dodoc>} {<-r>} {(${ Id.VSub_Name HTML_DOCS)})
                              ]
                            )
                          ]
                        )
                    )
                  ]
                )
            )
          ]
          spids: [7919 7924]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [(command.Sentence child:(C {<___eapi_has_eapply>}) terminator:<Id.Op_Semi _>)]
            )
          action: [
            (command.ShFunction
              name: eapply
              body: 
                (BraceGroup
                  children: [
                    (C {<local>} {<failed>} {<Id.Lit_VarLike 'patch_cmd='> <patch>})
                    (C {<local>} {<-x>} {<Id.Lit_VarLike 'LC_COLLATE='> <POSIX>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.Simple
                          words: [{<type>} {<-P>} {<gpatch>}]
                          redirects: [
                            (redir
                              op: <Id.Redir_Great '>'>
                              loc: (redir_loc.Fd fd:1)
                              arg: {<'/dev/null'>}
                            )
                          ]
                          do_fork: T
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:patch_cmd)
                              op: assign_op.Equal
                              rhs: {<gpatch>}
                              spids: [8284]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShFunction
                      name: _eapply_patch
                      body: 
                        (BraceGroup
                          children: [
                            (C {<local>} {<Id.Lit_VarLike 'f='> (${ Id.VSub_Number 1)})
                            (C {<local>} {<Id.Lit_VarLike 'prefix='> (${ Id.VSub_Number 2)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:started_applying)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [8313]
                                )
                              ]
                            )
                            (C {<ebegin>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name prefix>
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op_id: Id.VTest_ColonHyphen
                                        arg_word: {<'Applying '>}
                                      )
                                  ) 
                                  (braced_var_sub
                                    token: <Id.VSub_Name f>
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op_id: Id.VOp1_DPound
                                        arg_word: {<'*'> <Id.Lit_Slash '/'>}
                                      )
                                  )
                                )
                              }
                            )
                            (command.Simple
                              words: [
                                {(${ Id.VSub_Name patch_cmd)}
                                {<-p1>}
                                {<-f>}
                                {<-s>}
                                {<-g0>}
                                {<--no-backup-if-mismatch>}
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name patch_options>
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (redir
                                  op: <Id.Redir_Less '<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: {(DQ (${ Id.VSub_Name f))}
                                )
                              ]
                              do_fork: T
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:failed)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_QMark '?')}
                                  spids: [8388]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.Pipeline
                                              children: [(C {<eend>} {(DQ (${ Id.VSub_Name failed))})]
                                              negated: T
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<__helpers_die>} 
                                      {
                                        (DQ <'patch -p1 '> 
                                          (braced_var_sub
                                            token: <Id.VSub_Name patch_options>
                                            bracket_op: (bracket_op.WholeArray op_id:Id.Arith_Star)
                                          ) <' failed with '> (${ Id.VSub_Name f)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [8394 8407]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'patch_options='> (sh_array_literal left:<Id.Op_LParen _>)} {<Id.Lit_VarLike 'files='> (sh_array_literal left:<Id.Op_LParen _>)}
                    )
                    (C {<local>} {<i>} {<found_doublehyphen>})
                    (command.ForExpr
                      init: 
                        (arith_expr.BinaryAssign
                          op_id: Id.Arith_Equal
                          left: <Id.Lit_ArithVarLike i>
                          right: {<Id.Lit_Digits 1>}
                        )
                      cond: 
                        (arith_expr.Binary
                          op_id: Id.Arith_LessEqual
                          left: <Id.Lit_ArithVarLike i>
                          right: {(braced_var_sub token:<Id.VSub_At '@'> prefix_op:(Id.VSub_Pound))}
                        )
                      update: 
                        (arith_expr.UnaryAssign
                          op_id: Id.Arith_DPlus
                          child: <Id.Lit_ArithVarLike i>
                        )
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Binary
                                                  op_id: Id.BoolBinary_GlobDEqual
                                                  left: 
                                                    {
                                                      (braced_var_sub
                                                        token: <Id.VSub_At '@'>
                                                        suffix_op: 
                                                          (suffix_op.Slice
                                                            begin: <Id.Lit_ArithVarLike i>
                                                            length: {<Id.Lit_Digits 1>}
                                                          )
                                                      )
                                                    }
                                                  right: {<-->}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:patch_options)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (sh_array_literal
                                                left: <Id.Op_LParen _>
                                                words: [
                                                  {
                                                    (DQ 
                                                      (braced_var_sub
                                                        token: <Id.VSub_At '@'>
                                                        suffix_op: 
                                                          (suffix_op.Slice
                                                            begin: {<Id.Lit_Digits 1>}
                                                            length: 
                                                              (arith_expr.Binary
                                                                op_id: Id.Arith_Minus
                                                                left: <Id.Lit_ArithVarLike i>
                                                                right: {<Id.Lit_Digits 1>}
                                                              )
                                                          )
                                                      )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [8509]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:files)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (sh_array_literal
                                                left: <Id.Op_LParen _>
                                                words: [
                                                  {
                                                    (DQ 
                                                      (braced_var_sub
                                                        token: <Id.VSub_At '@'>
                                                        suffix_op: 
                                                          (suffix_op.Slice
                                                            begin: 
                                                              (arith_expr.Binary
                                                                op_id: Id.Arith_Plus
                                                                left: <Id.Lit_ArithVarLike i>
                                                                right: {<Id.Lit_Digits 1>}
                                                              )
                                                          )
                                                      )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [8527]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:found_doublehyphen)
                                          op: assign_op.Equal
                                          rhs: {<1>}
                                          spids: [8543]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [8487 8506]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {(${ Id.VSub_Name found_doublehyphen)}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.ForExpr
                              init: 
                                (arith_expr.BinaryAssign
                                  op_id: Id.Arith_Equal
                                  left: <Id.Lit_ArithVarLike i>
                                  right: {<Id.Lit_Digits 1>}
                                )
                              cond: 
                                (arith_expr.Binary
                                  op_id: Id.Arith_LessEqual
                                  left: <Id.Lit_ArithVarLike i>
                                  right: 
                                    {
                                      (braced_var_sub
                                        token: <Id.VSub_At '@'>
                                        prefix_op: (Id.VSub_Pound)
                                      )
                                    }
                                )
                              update: 
                                (arith_expr.UnaryAssign
                                  op_id: Id.Arith_DPlus
                                  child: <Id.Lit_ArithVarLike i>
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobNEqual
                                                          left: 
                                                            {
                                                              (braced_var_sub
                                                                token: <Id.VSub_At '@'>
                                                                suffix_op: 
                                                                  (suffix_op.Slice
                                                                    begin: <Id.Lit_ArithVarLike i>
                                                                    length: {<Id.Lit_Digits 1>}
                                                                  )
                                                              )
                                                            }
                                                          right: {<-> <Id.Lit_Other '*'>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:patch_options)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                token: <Id.VSub_At '@'>
                                                                suffix_op: 
                                                                  (suffix_op.Slice
                                                                    begin: {<Id.Lit_Digits 1>}
                                                                    length: 
                                                                      (arith_expr.Binary
                                                                        op_id: Id.Arith_Minus
                                                                        left: <Id.Lit_ArithVarLike i>
                                                                        right: {<Id.Lit_Digits 1>}
                                                                      )
                                                                  )
                                                              )
                                                            )
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [8631]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:files)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (sh_array_literal
                                                        left: <Id.Op_LParen _>
                                                        words: [
                                                          {
                                                            (DQ 
                                                              (braced_var_sub
                                                                token: <Id.VSub_At '@'>
                                                                suffix_op: 
                                                                  (suffix_op.Slice
                                                                    begin: <Id.Lit_ArithVarLike i>
                                                                  )
                                                              )
                                                            )
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [8649]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [8608 8628]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ForEach
                              iter_name: i
                              iter_words: [
                                {
                                  (DQ 
                                    (braced_var_sub
                                      token: <Id.VSub_Name files>
                                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                    )
                                  )
                                }
                              ]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Binary
                                                          op_id: Id.BoolBinary_GlobDEqual
                                                          left: {(${ Id.VSub_Name i)}
                                                          right: {<-> <Id.Lit_Other '*'>}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<die>} 
                                              {
                                                (DQ 
                                                  <
'eapply: all options must be passed before non-options'
                                                  >
                                                )
                                              }
                                            )
                                          ]
                                          spids: [8696 8712]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [8561 8574]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name files>
                                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                              )
                                            }
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [(C {<die>} {(DQ <'eapply: no files specified'>)})]
                          spids: [8732 8748]
                        )
                      ]
                    )
                    (C {<local>} {<f>})
                    (command.ForEach
                      iter_name: f
                      iter_words: [
                        {
                          (DQ 
                            (braced_var_sub
                              token: <Id.VSub_Name files>
                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            )
                          )
                        }
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_d
                                                  child: {(${ Id.VSub_Name f)}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (command.ShFunction
                                      name: _eapply_get_files
                                      body: 
                                        (BraceGroup
                                          children: [
                                            (C {<local>} {<Id.Lit_VarLike 'LC_ALL='> <POSIX>})
                                            (C {<local>} 
                                              {<Id.Lit_VarLike 'prev_shopt='> 
                                                (command_sub
                                                  left_token: <Id.Left_DollarParen '$('>
                                                  child: (C {<shopt>} {<-p>} {<nullglob>})
                                                )
                                              }
                                            )
                                            (C {<shopt>} {<-s>} {<nullglob>})
                                            (C {<local>} {<f>})
                                            (command.ForEach
                                              iter_name: f
                                              iter_words: [
                                                {(DQ (${ Id.VSub_Number 1)) <'/'> <Id.Lit_Star '*'>}
                                              ]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: 
                                                            (condition.Shell
                                                              commands: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (command.DBracket
                                                                      expr: 
                                                                        (bool_expr.LogicalOr
                                                                          left: 
                                                                            (bool_expr.Binary
                                                                              op_id: 
Id.BoolBinary_GlobDEqual
                                                                              left: 
                                                                                {(${ Id.VSub_Name f)}
                                                                              right: 
                                                                                {<Id.Lit_Other '*'> 
                                                                                  <.diff>
                                                                                }
                                                                            )
                                                                          right: 
                                                                            (bool_expr.Binary
                                                                              op_id: 
Id.BoolBinary_GlobDEqual
                                                                              left: 
                                                                                {(${ Id.VSub_Name f)}
                                                                              right: 
                                                                                {<Id.Lit_Other '*'> 
                                                                                  <.patch>
                                                                                }
                                                                            )
                                                                        )
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                            )
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:files)
                                                                  op: assign_op.PlusEqual
                                                                  rhs: 
                                                                    {
                                                                      (sh_array_literal
                                                                        left: <Id.Op_LParen _>
                                                                        words: [
                                                                          {(DQ (${ Id.VSub_Name f))}
                                                                        ]
                                                                      )
                                                                    }
                                                                  spids: [8887]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [8857 8884]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {(${ Id.VSub_Name prev_shopt)})
                                          ]
                                        )
                                    )
                                    (C {<local>} 
                                      {<Id.Lit_VarLike 'files='> 
                                        (sh_array_literal
                                          left: <Id.Op_LParen _>
                                        )
                                      }
                                    )
                                    (C {<_eapply_get_files>} {(DQ (${ Id.VSub_Name f))})
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (command.DBracket
                                          expr: 
                                            (bool_expr.Unary
                                              op_id: Id.BoolUnary_z
                                              child: 
                                                {
                                                  (braced_var_sub
                                                    token: <Id.VSub_Name files>
                                                    bracket_op: 
                                                      (bracket_op.WholeArray
                                                        op_id: Id.Lit_At
                                                      )
                                                  )
                                                }
                                            )
                                        )
                                        (C {<die>} 
                                          {
                                            (DQ <'No *.{patch,diff} files in directory '> 
                                              (${ Id.VSub_Name f)
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (C {<einfo>} 
                                      {(DQ <'Applying patches from '> (${ Id.VSub_Name f) <' ...'>)}
                                    )
                                    (C {<local>} {<f2>})
                                    (command.ForEach
                                      iter_name: f2
                                      iter_words: [
                                        {
                                          (DQ 
                                            (braced_var_sub
                                              token: <Id.VSub_Name files>
                                              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                            )
                                          )
                                        }
                                      ]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {<_eapply_patch>} {(DQ (${ Id.VSub_Name f2))} 
                                              {(SQ <'  '>)}
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (command.DBracket
                                                  expr: 
                                                    (bool_expr.Binary
                                                      op_id: Id.BoolBinary_ne
                                                      left: {(${ Id.VSub_Name failed)}
                                                      right: {<0>}
                                                    )
                                                )
                                                (command.ControlFlow
                                                  token: <Id.ControlFlow_Return return>
                                                  arg_word: {(DQ (${ Id.VSub_Name failed))}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  ]
                                  spids: [8786 8799]
                                )
                              ]
                              else_action: [
                                (C {<_eapply_patch>} {(DQ (${ Id.VSub_Name f))})
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_ne
                                          left: {(${ Id.VSub_Name failed)}
                                          right: {<0>}
                                        )
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Return return>
                                      arg_word: {(DQ (${ Id.VSub_Name failed))}
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Return return>
                      arg_word: {<0>}
                    )
                  ]
                )
            )
          ]
          spids: [8236 8241]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_eapply_user>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: eapply_user
              body: 
                (BraceGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_GlobDEqual
                              left: {(${ Id.VSub_Name EBUILD_PHASE)}
                              right: {<prepare>}
                            )
                        )
                        (C {<die>} 
                          {
                            (DQ <'eapply_user() called during invalid phase: '> 
                              (${ Id.VSub_Name EBUILD_PHASE)
                            )
                          }
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'tagfile='> (${ Id.VSub_Name T) 
                        <'/.portage_user_patches_applied'>
                      }
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_f
                              child: {(${ Id.VSub_Name tagfile)}
                            )
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Return return>
                        )
                      ]
                    )
                    (command.Simple
                      redirects: [
                        (redir
                          op: <Id.Redir_DGreat '>>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ (${ Id.VSub_Name tagfile))}
                        )
                      ]
                      do_fork: F
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'basedir='> 
                        (braced_var_sub
                          token: <Id.VSub_Name PORTAGE_CONFIGROOT>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VOp1_Percent
                              arg_word: {<Id.Lit_Slash '/'>}
                            )
                        ) <'/etc/portage/patches'>
                      }
                    )
                    (C {<local>} {<applied>} {<d>} {<f>})
                    (C {<local>} {<-A>} {<_eapply_user_patches>})
                    (C {<local>} 
                      {<Id.Lit_VarLike 'prev_shopt='> 
                        (command_sub
                          left_token: <Id.Left_DollarParen '$('>
                          child: (C {<shopt>} {<-p>} {<nullglob>})
                        )
                      }
                    )
                    (C {<shopt>} {<-s>} {<nullglob>})
                    (command.ForEach
                      iter_name: d
                      iter_words: [
                        (word.BracedTree
                          parts: [
                            (DQ (${ Id.VSub_Name basedir))
                            <'/'>
                            (${ Id.VSub_Name CATEGORY)
                            <'/'>
                            (word_part.BracedTuple
                              words: [
                                {(${ Id.VSub_Name P) <-> (${ Id.VSub_Name PR)}
                                {(${ Id.VSub_Name P)}
                                {(${ Id.VSub_Name PN)}
                              ]
                            )
                            (word_part.BracedTuple
                              words: [
                                {<Id.Lit_Colon ':'> 
                                  (braced_var_sub
                                    token: <Id.VSub_Name SLOT>
                                    suffix_op: 
                                      (suffix_op.Unary
                                        op_id: Id.VOp1_Percent
                                        arg_word: {<Id.Lit_Slash '/'> <'*'>}
                                      )
                                  )
                                }
                                {}
                              ]
                            )
                          ]
                        )
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ForEach
                              iter_name: f
                              iter_words: [{(DQ (${ Id.VSub_Name d)) <'/'> <Id.Lit_Star '*'>}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.LogicalAnd
                                                          left: 
                                                            (bool_expr.LogicalOr
                                                              left: 
                                                                (bool_expr.Binary
                                                                  op_id: Id.BoolBinary_GlobDEqual
                                                                  left: {(${ Id.VSub_Name f)}
                                                                  right: {<Id.Lit_Other '*'> <.diff>}
                                                                )
                                                              right: 
                                                                (bool_expr.Binary
                                                                  op_id: Id.BoolBinary_GlobDEqual
                                                                  left: {(${ Id.VSub_Name f)}
                                                                  right: {<Id.Lit_Other '*'> <.patch>}
                                                                )
                                                            )
                                                          right: 
                                                            (bool_expr.Unary
                                                              op_id: Id.BoolUnary_z
                                                              child: 
                                                                {
                                                                  (braced_var_sub
                                                                    token: 
                                                                      <Id.VSub_Name 
_eapply_user_patches
                                                                      >
                                                                    bracket_op: 
                                                                      (bracket_op.ArrayIndex
                                                                        expr: 
                                                                          {
                                                                            (braced_var_sub
                                                                              token: <Id.VSub_Name f>
                                                                              suffix_op: 
                                                                                (suffix_op.Unary
                                                                                  op_id: 
Id.VOp1_DPound
                                                                                  arg_word: 
                                                                                    {<'*'> 
                                                                                      <Id.Lit_Slash 
'/'
                                                                                      >
                                                                                    }
                                                                                )
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                                }
                                                            )
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: 
                                                    (sh_lhs_expr.IndexedName
                                                      name: _eapply_user_patches
                                                      index: 
                                                        {
                                                          (braced_var_sub
                                                            token: <Id.VSub_Name f>
                                                            suffix_op: 
                                                              (suffix_op.Unary
                                                                op_id: Id.VOp1_DPound
                                                                arg_word: {<'*'> <Id.Lit_Slash '/'>}
                                                              )
                                                          )
                                                        }
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: {(${ Id.VSub_Name f)}
                                                  spids: [9388]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [9337 9385]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Binary
                                          op_id: Id.BoolBinary_gt
                                          left: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name _eapply_user_patches>
                                                prefix_op: (Id.VSub_Pound)
                                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                                              )
                                            }
                                          right: {<0>}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.WhileUntil
                              keyword: <Id.KW_While while>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: (C {<read>} {<-r>} {<-d>} {(SQ )} {<f>})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:f)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (braced_var_sub
                                                token: <Id.VSub_Name _eapply_user_patches>
                                                bracket_op: 
                                                  (bracket_op.ArrayIndex
                                                    expr: {(${ Id.VSub_Name f)}
                                                  )
                                              )
                                            }
                                          spids: [9457]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: 
                                            (condition.Shell
                                              commands: [
                                                (command.Sentence
                                                  child: 
                                                    (command.DBracket
                                                      expr: 
                                                        (bool_expr.Unary
                                                          op_id: Id.BoolUnary_s
                                                          child: {(${ Id.VSub_Name f)}
                                                        )
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          action: [
                                            (C {<eapply>} {(DQ (${ Id.VSub_Name f))})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:applied)
                                                  op: assign_op.Equal
                                                  rhs: {<1>}
                                                  spids: [9493]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [9468 9481]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              redirects: [
                                (redir
                                  op: <Id.Redir_Less '<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_ProcSubIn '<('>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {<printf>} {<-->} {(SQ <'%s\\0'>)} 
                                                {
                                                  (DQ 
                                                    (braced_var_sub
                                                      token: <Id.VSub_Name _eapply_user_patches>
                                                      prefix_op: (Id.VSub_Bang)
                                                      bracket_op: 
                                                        (bracket_op.WholeArray
                                                          op_id: Id.Lit_At
                                                        )
                                                    )
                                                  )
                                                }
                                              )
                                              (command.Simple
                                                words: [{<sort>} {<-z>}]
                                                more_env: [
                                                  (env_pair
                                                    name: LC_ALL
                                                    val: {<C>}
                                                    spids: [9526]
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                )
                              ]
                            )
                          ]
                          spids: [9418 9437]
                        )
                      ]
                    )
                    (C {(${ Id.VSub_Name prev_shopt)})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Unary
                              op_id: Id.BoolUnary_n
                              child: {(${ Id.VSub_Name applied)}
                            )
                        )
                        (C {<ewarn>} {(DQ <'User patches applied.'>)})
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [9092 9097]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_in_iuse>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: in_iuse
              body: 
                (BraceGroup
                  children: [
                    (C {<local>} {<Id.Lit_VarLike 'use='> (${ Id.VSub_Number 1)})
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_z
                                          child: {(DQ (${ Id.VSub_Name use))}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (command.Simple
                              words: [{<echo>} {(DQ <'!!! in_iuse() called without a parameter.'>)}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (command.Simple
                              words: [{<echo>} {(DQ <'!!! in_iuse <USEFLAG>'>)}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_GreatAnd '>&'>
                                  loc: (redir_loc.Fd fd:1)
                                  arg: {<2>}
                                )
                              ]
                              do_fork: T
                            )
                            (C {<die>} {(DQ <'in_iuse() called without a parameter'>)})
                          ]
                          spids: [9593 9608]
                        )
                      ]
                    )
                    (C {<local>} 
                      {<Id.Lit_VarLike 'liuse='> 
                        (sh_array_literal
                          left: <Id.Op_LParen _>
                          words: [{(${ Id.VSub_Name IUSE_EFFECTIVE)}]
                        )
                      }
                    )
                    (C {<has>} {(DQ (${ Id.VSub_Name use))} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name liuse>
                            bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                            suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{<'[+-]'>})
                          )
                        )
                      }
                    )
                  ]
                )
            )
          ]
          spids: [9569 9574]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_master_repositories>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: master_repositories
              body: 
                (BraceGroup
                  children: [
                    (C {<local>} {<output>} {<Id.Lit_VarLike 'repository='> ($ Id.VSub_Number '$1')} 
                      {<retval>}
                    )
                    (C {<shift>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {($ Id.VSub_Pound '$#')}
                              right: {<0>}
                            )
                        )
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name FUNCNAME>
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                              ) <': unused argument(s): '> ($ Id.VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} 
                              {<master_repositories>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                            )
                          ]
                          spids: [9735 9748]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:output)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C 
                                        {
                                          (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) 
                                            <'/ebuild-helpers/portageq'>
                                          )
                                        } {<master_repositories>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                                      )
                                  )
                                }
                              spids: [9776]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:retval)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [9804]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)})
                        )
                        (C {<echo>} {(DQ (${ Id.VSub_Name output))})
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>} {<1>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {(${ Id.VSub_Name retval)}
                            )
                          ]
                          spids: [9840 9843 9853 -1]
                        )
                        (case_arm
                          pat_list: [{<2>}]
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name FUNCNAME>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  ) <': invalid repository: '> (${ Id.VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [9856 9857 9876 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            token: <Id.VSub_Name FUNCNAME>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {<Id.Lit_Digits 0>}
                                              )
                                          ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [9883 9896]
                                )
                              ]
                              else_action: [
                                (C {<die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name FUNCNAME>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                      ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [9879 9880 9937 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [9680 9685]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_repository_path>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: repository_path
              body: 
                (BraceGroup
                  children: [
                    (C {<local>} {<output>} {<Id.Lit_VarLike 'repository='> ($ Id.VSub_Number '$1')} 
                      {<retval>}
                    )
                    (C {<shift>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {($ Id.VSub_Pound '$#')}
                              right: {<0>}
                            )
                        )
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name FUNCNAME>
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                              ) <': unused argument(s): '> ($ Id.VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} 
                              {<repository_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                            )
                          ]
                          spids: [10003 10016]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:output)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C 
                                        {
                                          (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) 
                                            <'/ebuild-helpers/portageq'>
                                          )
                                        } {<get_repo_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                                      )
                                  )
                                }
                              spids: [10044]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:retval)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [10072]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)})
                        )
                        (C {<echo>} {(DQ (${ Id.VSub_Name output))})
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>} {<1>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {(${ Id.VSub_Name retval)}
                            )
                          ]
                          spids: [10108 10111 10121 -1]
                        )
                        (case_arm
                          pat_list: [{<2>}]
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name FUNCNAME>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  ) <': invalid repository: '> (${ Id.VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10124 10125 10144 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            token: <Id.VSub_Name FUNCNAME>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {<Id.Lit_Digits 0>}
                                              )
                                          ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [10151 10164]
                                )
                              ]
                              else_action: [
                                (C {<die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name FUNCNAME>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                      ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [10147 10148 10205 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [9948 9953]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_available_eclasses>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: available_eclasses
              body: 
                (BraceGroup
                  children: [
                    (C {<local>} {<output>} 
                      {<Id.Lit_VarLike 'repository='> (${ Id.VSub_Name PORTAGE_REPO_NAME)} {<retval>}
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {($ Id.VSub_Pound '$#')}
                              right: {<0>}
                            )
                        )
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name FUNCNAME>
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                              ) <': unused argument(s): '> ($ Id.VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} 
                              {<available_eclasses>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                            )
                          ]
                          spids: [10270 10283]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:output)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C 
                                        {
                                          (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) 
                                            <'/ebuild-helpers/portageq'>
                                          )
                                        } {<available_eclasses>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))}
                                      )
                                  )
                                }
                              spids: [10311]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:retval)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [10339]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)})
                        )
                        (C {<echo>} {(DQ (${ Id.VSub_Name output))})
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>} {<1>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {(${ Id.VSub_Name retval)}
                            )
                          ]
                          spids: [10375 10378 10388 -1]
                        )
                        (case_arm
                          pat_list: [{<2>}]
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name FUNCNAME>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  ) <': invalid repository: '> (${ Id.VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10391 10392 10411 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            token: <Id.VSub_Name FUNCNAME>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {<Id.Lit_Digits 0>}
                                              )
                                          ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [10418 10431]
                                )
                              ]
                              else_action: [
                                (C {<die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name FUNCNAME>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                      ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [10414 10415 10472 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [10216 10221]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_eclass_path>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: eclass_path
              body: 
                (BraceGroup
                  children: [
                    (C {<local>} {<Id.Lit_VarLike 'eclass='> ($ Id.VSub_Number '$1')} {<output>} 
                      {<Id.Lit_VarLike 'repository='> (${ Id.VSub_Name PORTAGE_REPO_NAME)} {<retval>}
                    )
                    (C {<shift>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {($ Id.VSub_Pound '$#')}
                              right: {<0>}
                            )
                        )
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name FUNCNAME>
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                              ) <': unused argument(s): '> ($ Id.VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} 
                              {<eclass_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} {(DQ (${ Id.VSub_Name eclass))}
                            )
                          ]
                          spids: [10543 10556]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:output)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C 
                                        {
                                          (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) 
                                            <'/ebuild-helpers/portageq'>
                                          )
                                        } {<eclass_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} 
                                        {(DQ (${ Id.VSub_Name eclass))}
                                      )
                                  )
                                }
                              spids: [10590]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:retval)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [10624]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)})
                        )
                        (C {<echo>} {(DQ (${ Id.VSub_Name output))})
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>} {<1>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {(${ Id.VSub_Name retval)}
                            )
                          ]
                          spids: [10660 10663 10673 -1]
                        )
                        (case_arm
                          pat_list: [{<2>}]
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name FUNCNAME>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  ) <': invalid repository: '> (${ Id.VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10676 10677 10696 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            token: <Id.VSub_Name FUNCNAME>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {<Id.Lit_Digits 0>}
                                              )
                                          ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [10703 10716]
                                )
                              ]
                              else_action: [
                                (C {<die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name FUNCNAME>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                      ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [10699 10700 10757 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [10483 10488]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_license_path>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: license_path
              body: 
                (BraceGroup
                  children: [
                    (C {<local>} {<Id.Lit_VarLike 'license='> ($ Id.VSub_Number '$1')} {<output>} 
                      {<Id.Lit_VarLike 'repository='> (${ Id.VSub_Name PORTAGE_REPO_NAME)} {<retval>}
                    )
                    (C {<shift>})
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: 
                            (bool_expr.Binary
                              op_id: Id.BoolBinary_gt
                              left: {($ Id.VSub_Pound '$#')}
                              right: {<0>}
                            )
                        )
                        (C {<die>} 
                          {
                            (DQ 
                              (braced_var_sub
                                token: <Id.VSub_Name FUNCNAME>
                                bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                              ) <': unused argument(s): '> ($ Id.VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: 
                            (condition.Shell
                              commands: [
                                (command.Sentence
                                  child: 
                                    (command.DBracket
                                      expr: 
                                        (bool_expr.Unary
                                          op_id: Id.BoolUnary_n
                                          child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                            )
                          action: [
                            (C {(DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) <'/ebuild-ipc'>)} 
                              {<license_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} {(DQ (${ Id.VSub_Name license))}
                            )
                          ]
                          spids: [10828 10841]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:output)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (command_sub
                                    left_token: <Id.Left_DollarParen '$('>
                                    child: 
                                      (C 
                                        {
                                          (DQ (${ Id.VSub_Name PORTAGE_BIN_PATH) 
                                            <'/ebuild-helpers/portageq'>
                                          )
                                        } {<license_path>} {(DQ (${ Id.VSub_Name EROOT))} {(DQ (${ Id.VSub_Name repository))} 
                                        {(DQ (${ Id.VSub_Name license))}
                                      )
                                  )
                                }
                              spids: [10875]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:retval)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_QMark '$?')}
                          spids: [10909]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (command.DBracket
                          expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(${ Id.VSub_Name output)})
                        )
                        (C {<echo>} {(DQ (${ Id.VSub_Name output))})
                      ]
                    )
                    (command.Case
                      to_match: {(DQ (${ Id.VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{<0>} {<1>}]
                          action: [
                            (command.ControlFlow
                              token: <Id.ControlFlow_Return return>
                              arg_word: {(${ Id.VSub_Name retval)}
                            )
                          ]
                          spids: [10945 10948 10958 -1]
                        )
                        (case_arm
                          pat_list: [{<2>}]
                          action: [
                            (C {<die>} 
                              {
                                (DQ 
                                  (braced_var_sub
                                    token: <Id.VSub_Name FUNCNAME>
                                    bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                  ) <': invalid repository: '> (${ Id.VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10961 10962 10981 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: 
                                    (condition.Shell
                                      commands: [
                                        (command.Sentence
                                          child: 
                                            (command.DBracket
                                              expr: 
                                                (bool_expr.Unary
                                                  op_id: Id.BoolUnary_n
                                                  child: {(${ Id.VSub_Name PORTAGE_IPC_DAEMON)}
                                                )
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                    )
                                  action: [
                                    (C {<die>} 
                                      {
                                        (DQ 
                                          (braced_var_sub
                                            token: <Id.VSub_Name FUNCNAME>
                                            bracket_op: 
                                              (bracket_op.ArrayIndex
                                                expr: {<Id.Lit_Digits 0>}
                                              )
                                          ) <': unexpected ebuild-ipc exit code: '> (${ Id.VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [10988 11001]
                                )
                              ]
                              else_action: [
                                (C {<die>} 
                                  {
                                    (DQ 
                                      (braced_var_sub
                                        token: <Id.VSub_Name FUNCNAME>
                                        bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 0>})
                                      ) <': unexpected portageq exit code: '> (${ Id.VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [10984 10985 11042 -1]
                        )
                      ]
                    )
                  ]
                )
            )
          ]
          spids: [10768 10773]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_package_manager_build_user>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: package_manager_build_user
              body: (BraceGroup children:[(C {<echo>} {(DQ (${ Id.VSub_Name PORTAGE_BUILD_USER))})])
            )
          ]
          spids: [11053 11058]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<___eapi_has_package_manager_build_group>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ShFunction
              name: package_manager_build_group
              body: (BraceGroup children:[(C {<echo>} {(DQ (${ Id.VSub_Name PORTAGE_BUILD_GROUP))})])
            )
          ]
          spids: [11082 11087]
        )
      ]
    )
  ]
)