(CommandList
  children: [
    (C {(export)} {(Lit_VarLike 'DESTTREE=') (/usr)})
    (C {(export)} {(Lit_VarLike 'INSDESTTREE=') (DQ )})
    (C {(export)} {(Lit_VarLike '_E_EXEDESTTREE_=') (DQ )})
    (C {(export)} {(Lit_VarLike '_E_DOCDESTTREE_=') (DQ )})
    (C {(export)} {(Lit_VarLike 'INSOPTIONS=') (DQ (-m0644))})
    (C {(export)} {(Lit_VarLike 'EXEOPTIONS=') (DQ (-m0755))})
    (C {(export)} {(Lit_VarLike 'LIBOPTIONS=') (DQ (-m0644))})
    (C {(export)} {(Lit_VarLike 'DIROPTIONS=') (DQ (-m0755))})
    (C {(export)} {(Lit_VarLike 'MOPREFIX=') (${ VSub_Name PN)})
    (C {(export)} {(Lit_VarLike 'PORTAGE_DOCOMPRESS_SIZE_LIMIT=') (DQ (128))})
    (Assignment
      keyword: Assign_Declare
      flags: [-a]
      pairs: [
        (assign_pair
          lhs: (LhsName name:PORTAGE_DOCOMPRESS)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  (BracedWordTree
                    parts: [(/usr/share/) (BracedAltPart words:[{(doc)} {(info)} {(man)}])]
                  )
                ]
              )
            }
          spids: [82]
        )
      ]
      spids: [78]
    )
    (Assignment
      keyword: Assign_Declare
      flags: [-a]
      pairs: [
        (assign_pair
          lhs: (LhsName name:PORTAGE_DOCOMPRESS_SKIP)
          op: Equal
          rhs: {(ArrayLiteralPart words:[{(/usr/share/doc/) (${ VSub_Name PF) (/html)}])}
          spids: [100]
        )
      ]
      spids: [96]
    )
    (FuncDef
      name: into
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(export)} {(Lit_VarLike 'DESTTREE=') (DQ )})]
                  spids: [16777215 137]
                )
              ]
              else_action: [
                (C {(export)} {(Lit_VarLike 'DESTTREE=') ($ VSub_Number '$1')})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ED)
                              op: Equal
                              rhs: {(${ VSub_Name D)}
                              spids: [168]
                            )
                          ]
                          spids: [166]
                        )
                      ]
                      spids: [16777215 163]
                    )
                  ]
                  spids: [16777215 174]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                              {(DQ (${ VSub_Name ED) (${ VSub_Name DESTTREE))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(install)} {(-d)} {(DQ (${ VSub_Name ED) (${ VSub_Name DESTTREE))})
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ret)
                              op: Equal
                              rhs: {($ VSub_QMark '$?')}
                              spids: [216]
                            )
                          ]
                          spids: [214]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_ne
                                          left: {($ VSub_Name '$ret')}
                                          right: {(0)}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(__helpers_die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [240 245]
                                      ) (' failed')
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {($ VSub_Name '$ret')}
                                )
                              ]
                              spids: [16777215 234]
                            )
                          ]
                          spids: [16777215 255]
                        )
                      ]
                      spids: [16777215 197]
                    )
                  ]
                  spids: [16777215 258]
                )
              ]
              spids: [147 261]
            )
          ]
          spids: [116]
        )
      spids: [112 115]
    )
    (FuncDef
      name: insinto
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(export)} {(Lit_VarLike 'INSDESTTREE=') (DQ )})]
                  spids: [16777215 291]
                )
              ]
              else_action: [
                (C {(export)} {(Lit_VarLike 'INSDESTTREE=') ($ VSub_Number '$1')})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ED)
                              op: Equal
                              rhs: {(${ VSub_Name D)}
                              spids: [322]
                            )
                          ]
                          spids: [320]
                        )
                      ]
                      spids: [16777215 317]
                    )
                  ]
                  spids: [16777215 328]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                              {(DQ (${ VSub_Name ED) (${ VSub_Name INSDESTTREE))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(install)} {(-d)} {(DQ (${ VSub_Name ED) (${ VSub_Name INSDESTTREE))})
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ret)
                              op: Equal
                              rhs: {($ VSub_QMark '$?')}
                              spids: [370]
                            )
                          ]
                          spids: [368]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_ne
                                          left: {($ VSub_Name '$ret')}
                                          right: {(0)}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(__helpers_die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [394 399]
                                      ) (' failed')
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {($ VSub_Name '$ret')}
                                )
                              ]
                              spids: [16777215 388]
                            )
                          ]
                          spids: [16777215 409]
                        )
                      ]
                      spids: [16777215 351]
                    )
                  ]
                  spids: [16777215 412]
                )
              ]
              spids: [301 415]
            )
          ]
          spids: [270]
        )
      spids: [266 269]
    )
    (FuncDef
      name: exeinto
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(export)} {(Lit_VarLike '_E_EXEDESTTREE_=') (DQ )})]
                  spids: [16777215 445]
                )
              ]
              else_action: [
                (C {(export)} {(Lit_VarLike '_E_EXEDESTTREE_=') (DQ ($ VSub_Number '$1'))})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ED)
                              op: Equal
                              rhs: {(${ VSub_Name D)}
                              spids: [478]
                            )
                          ]
                          spids: [476]
                        )
                      ]
                      spids: [16777215 473]
                    )
                  ]
                  spids: [16777215 484]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                              {(DQ (${ VSub_Name ED) (${ VSub_Name _E_EXEDESTTREE_))} {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(install)} {(-d)} {(DQ (${ VSub_Name ED) (${ VSub_Name _E_EXEDESTTREE_))})
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ret)
                              op: Equal
                              rhs: {($ VSub_QMark '$?')}
                              spids: [526]
                            )
                          ]
                          spids: [524]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_ne
                                          left: {($ VSub_Name '$ret')}
                                          right: {(0)}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(__helpers_die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [550 555]
                                      ) (' failed')
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {($ VSub_Name '$ret')}
                                )
                              ]
                              spids: [16777215 544]
                            )
                          ]
                          spids: [16777215 565]
                        )
                      ]
                      spids: [16777215 507]
                    )
                  ]
                  spids: [16777215 568]
                )
              ]
              spids: [455 571]
            )
          ]
          spids: [424]
        )
      spids: [420 423]
    )
    (FuncDef
      name: docinto
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} 
                          {(Lit_Other '=') (Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(export)} {(Lit_VarLike '_E_DOCDESTTREE_=') (DQ )})]
                  spids: [16777215 601]
                )
              ]
              else_action: [
                (C {(export)} {(Lit_VarLike '_E_DOCDESTTREE_=') (DQ ($ VSub_Number '$1'))})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ED)
                              op: Equal
                              rhs: {(${ VSub_Name D)}
                              spids: [634]
                            )
                          ]
                          spids: [632]
                        )
                      ]
                      spids: [16777215 629]
                    )
                  ]
                  spids: [16777215 640]
                )
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} 
                              {
                                (DQ (${ VSub_Name ED) (usr/share/doc/) (${ VSub_Name PF) (/) 
                                  (${ VSub_Name _E_DOCDESTTREE_)
                                )
                              } {(Lit_Other ']')}
                            )
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(install)} {(-d)} 
                          {
                            (DQ (${ VSub_Name ED) (usr/share/doc/) (${ VSub_Name PF) (/) 
                              (${ VSub_Name _E_DOCDESTTREE_)
                            )
                          }
                        )
                        (Assignment
                          keyword: Assign_Local
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:ret)
                              op: Equal
                              rhs: {($ VSub_QMark '$?')}
                              spids: [692]
                            )
                          ]
                          spids: [690]
                        )
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_ne
                                          left: {($ VSub_Name '$ret')}
                                          right: {(0)}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(__helpers_die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [716 721]
                                      ) (' failed')
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {($ VSub_Name '$ret')}
                                )
                              ]
                              spids: [16777215 710]
                            )
                          ]
                          spids: [16777215 731]
                        )
                      ]
                      spids: [16777215 668]
                    )
                  ]
                  spids: [16777215 734]
                )
              ]
              spids: [611 737]
            )
          ]
          spids: [580]
        )
      spids: [576 579]
    )
    (FuncDef
      name: insopts
      body: 
        (BraceGroup
          children: [
            (C {(export)} {(Lit_VarLike 'INSOPTIONS=') (DQ ($ VSub_At '$@'))})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(has)} {(-s)} {(${ VSub_Name INSOPTIONS)})
                (C {(die)} {(DQ ('Never call insopts() with -s'))})
              ]
            )
          ]
          spids: [746]
        )
      spids: [742 745]
    )
    (FuncDef
      name: diropts
      body: 
        (BraceGroup
          children: [(C {(export)} {(Lit_VarLike 'DIROPTIONS=') (DQ ($ VSub_At '$@'))})]
          spids: [785]
        )
      spids: [781 784]
    )
    (FuncDef
      name: exeopts
      body: 
        (BraceGroup
          children: [
            (C {(export)} {(Lit_VarLike 'EXEOPTIONS=') (DQ ($ VSub_At '$@'))})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(has)} {(-s)} {(${ VSub_Name EXEOPTIONS)})
                (C {(die)} {(DQ ('Never call exeopts() with -s'))})
              ]
            )
          ]
          spids: [802]
        )
      spids: [798 801]
    )
    (FuncDef
      name: libopts
      body: 
        (BraceGroup
          children: [
            (C {(export)} {(Lit_VarLike 'LIBOPTIONS=') (DQ ($ VSub_At '$@'))})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(has)} {(-s)} {(${ VSub_Name LIBOPTIONS)})
                (C {(die)} {(DQ ('Never call libopts() with -s'))})
              ]
            )
          ]
          spids: [841]
        )
      spids: [837 840]
    )
    (FuncDef
      name: docompress
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(___eapi_has_docompress)})
                (C {(die)} {(DQ ("'docompress' not supported in this EAPI"))})
              ]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:f) op:Equal spids:[897])
                (assign_pair lhs:(LhsName name:g) op:Equal spids:[899])
              ]
              spids: [895]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobEqual
                              left: {($ VSub_Number '$1')}
                              right: {(DQ (-x))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(shift)})
                    (ForEach
                      iter_name: f
                      do_arg_iter: T
                      body: 
                        (DoGroup
                          children: [
                            (Sentence
                              child: 
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:f)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(__strip_duplicate_slashes)} 
                                                    {(DQ (${ VSub_Name f))}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [932 940]
                                          )
                                        }
                                      spids: [931]
                                    )
                                  ]
                                  spids: [931]
                                )
                              terminator: <Op_Semi ';'>
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:f)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name f>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Percent
                                            arg_word: {(Lit_Slash /)}
                                          )
                                        spids: [944 948]
                                      )
                                    }
                                  spids: [943]
                                )
                              ]
                              spids: [943]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobEqual
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name f>
                                            suffix_op: 
                                              (Slice
                                                begin: (ArithWord w:{(Lit_Digits 0)})
                                                length: (ArithWord w:{(Lit_Digits 1)})
                                              )
                                            spids: [953 959]
                                          )
                                        }
                                      right: {(/)}
                                    )
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:f)
                                      op: Equal
                                      rhs: {(DQ (/) (${ VSub_Name f))}
                                      spids: [969]
                                    )
                                  ]
                                  spids: [969]
                                )
                              ]
                            )
                            (ForEach
                              iter_name: g
                              iter_words: [
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name PORTAGE_DOCOMPRESS_SKIP>
                                      bracket_op: (WholeArray op_id:Lit_At)
                                      spids: [985 990]
                                    )
                                  )
                                }
                              ]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobEqual
                                              left: {(${ VSub_Name f)}
                                              right: {(DQ (${ VSub_Name g))}
                                            )
                                        )
                                        (ControlFlow
                                          token: <ControlFlow_Continue continue>
                                          arg_word: {(2)}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [994 1020]
                                )
                              spids: [983 992]
                            )
                            (C 
                              {(PORTAGE_DOCOMPRESS_SKIP) (Lit_Other '[') 
                                (BracedVarSub
                                  token: <VSub_Name PORTAGE_DOCOMPRESS_SKIP>
                                  prefix_op: VSub_Pound
                                  bracket_op: (WholeArray op_id:Lit_At)
                                  spids: [1025 1031]
                                ) (Lit_Other ']') (Lit_Other '=') (${ VSub_Name f)
                              }
                            )
                          ]
                          spids: [928 1039]
                        )
                      spids: [16777215 16777215]
                    )
                  ]
                  spids: [16777215 917]
                )
              ]
              else_action: [
                (ForEach
                  iter_name: f
                  do_arg_iter: T
                  body: 
                    (DoGroup
                      children: [
                        (Sentence
                          child: 
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:f)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (C {(__strip_duplicate_slashes)} {(DQ (${ VSub_Name f))})
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [1054 1062]
                                      )
                                    }
                                  spids: [1053]
                                )
                              ]
                              spids: [1053]
                            )
                          terminator: <Op_Semi ';'>
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:f)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name f>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: {(Lit_Slash /)}
                                      )
                                    spids: [1066 1070]
                                  )
                                }
                              spids: [1065]
                            )
                          ]
                          spids: [1065]
                        )
                        (AndOr
                          ops: [Op_DPipe]
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobEqual
                                  left: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name f>
                                        suffix_op: 
                                          (Slice
                                            begin: (ArithWord w:{(Lit_Digits 0)})
                                            length: (ArithWord w:{(Lit_Digits 1)})
                                          )
                                        spids: [1075 1081]
                                      )
                                    }
                                  right: {(/)}
                                )
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:f)
                                  op: Equal
                                  rhs: {(DQ (/) (${ VSub_Name f))}
                                  spids: [1091]
                                )
                              ]
                              spids: [1091]
                            )
                          ]
                        )
                        (ForEach
                          iter_name: g
                          iter_words: [
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name PORTAGE_DOCOMPRESS>
                                  bracket_op: (WholeArray op_id:Lit_At)
                                  spids: [1107 1112]
                                )
                              )
                            }
                          ]
                          do_arg_iter: F
                          body: 
                            (DoGroup
                              children: [
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobEqual
                                          left: {(${ VSub_Name f)}
                                          right: {(DQ (${ VSub_Name g))}
                                        )
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Continue continue>
                                      arg_word: {(2)}
                                    )
                                  ]
                                )
                              ]
                              spids: [1116 1142]
                            )
                          spids: [1105 1114]
                        )
                        (C 
                          {(PORTAGE_DOCOMPRESS) (Lit_Other '[') 
                            (BracedVarSub
                              token: <VSub_Name PORTAGE_DOCOMPRESS>
                              prefix_op: VSub_Pound
                              bracket_op: (WholeArray op_id:Lit_At)
                              spids: [1147 1153]
                            ) (Lit_Other ']') (Lit_Other '=') (${ VSub_Name f)
                          }
                        )
                      ]
                      spids: [1050 1161]
                    )
                  spids: [16777215 16777215]
                )
              ]
              spids: [1042 1164]
            )
          ]
          spids: [880]
        )
      spids: [876 879]
    )
    (FuncDef
      name: useq
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DPipe]
              children: [
                (C {(has)} {($ VSub_Name '$EBUILD_PHASE')} {(prerm)} {(postrm)})
                (C {(eqawarn)} 
                  {(DQ ("QA Notice: The 'useq' function is deprecated (replaced by 'use')"))}
                )
              ]
            )
            (C {(use)} {(${ VSub_Number 1)})
          ]
          spids: [1173]
        )
      spids: [1169 1172]
    )
    (FuncDef
      name: usev
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(use)} {(${ VSub_Number 1)}) terminator:<Op_Semi ';'>)]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Number 1>
                            suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('!')})
                            spids: [1226 1230]
                          )
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [16777215 1220]
                )
              ]
              spids: [16777215 1239]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
          ]
          spids: [1208]
        )
      spids: [1204 1207]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_usex)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: usex
              body: 
                (BraceGroup
                  children: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(use)} {(DQ ($ VSub_Number '$1'))})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Number 2>
                                    suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(yes)})
                                    spids: [1279 1283]
                                  ) ($ VSub_Number '$4')
                                )
                              }
                            )
                          ]
                          spids: [16777215 1273]
                        )
                      ]
                      else_action: [
                        (C {(echo)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Number 3>
                                suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(no)})
                                spids: [1294 1298]
                              ) ($ VSub_Number '$5')
                            )
                          }
                        )
                      ]
                      spids: [1288 1303]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [1261]
                )
              spids: [1257 1260]
            )
          ]
          spids: [16777215 1254]
        )
      ]
      spids: [16777215 1313]
    )
    (FuncDef
      name: use
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:u)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [1325]
                )
              ]
              spids: [1323]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(0)} spids:[1331])]
              spids: [1329]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name u>
                                    suffix_op: 
                                      (Slice
                                        begin: (ArithWord w:{(Lit_Digits 0)})
                                        length: (ArithWord w:{(Lit_Digits 1)})
                                      )
                                    spids: [1344 1350]
                                  )
                                }
                              right: {(DQ ('!'))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:u)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name u>
                                suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 1)}))
                                spids: [1366 1370]
                              )
                            }
                          spids: [1365]
                        )
                      ]
                      spids: [1365]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(1)} spids:[1373])]
                      spids: [1373]
                    )
                  ]
                  spids: [16777215 1362]
                )
              ]
              spids: [16777215 1377]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobEqual
                              left: {($ VSub_Name '$EBUILD_PHASE')}
                              right: {(depend)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(true)})]
                  spids: [16777215 1395]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name '$PORTAGE_IUSE')})
                              right: 
                                (LogicalAnd
                                  left: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {($ VSub_Name '$EBUILD_PHASE')}
                                    )
                                  right: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {($ VSub_Name '$PORTAGE_INTERNAL_CALLER')}
                                    )
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (LogicalNot
                                      child: 
                                        (BoolBinary
                                          op_id: BoolBinary_EqualTilde
                                          left: {($ VSub_Name '$u')}
                                          right: {($ VSub_Name '$PORTAGE_IUSE')}
                                        )
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (LogicalNot
                                              child: 
                                                (BoolBinary
                                                  op_id: BoolBinary_EqualTilde
                                                  left: {(${ VSub_Name EAPI)}
                                                  right: 
                                                    {(Lit_Other '^') ('(') (0) ('|') (1) ('|') (2) ('|') 
                                                      (3) ('|') (4) ('|') (4-python) ('|') (4-slot-abi) (')') (Lit_Other '$')
                                                    }
                                                )
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ ("USE Flag '") (${ VSub_Name u) ("' not in IUSE for ") 
                                          (${ VSub_Name CATEGORY) (/) (${ VSub_Name PF)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 1523]
                                )
                              ]
                              spids: [16777215 1552]
                            )
                            (C {(eqawarn)} {(DQ ("QA Notice: USE Flag '") (${ VSub_Name u) ("' not"))} 
                              {(DQ ('in IUSE for ') (${ VSub_Name CATEGORY) (/) (${ VSub_Name PF))}
                            )
                          ]
                          spids: [16777215 1486]
                        )
                      ]
                      spids: [16777215 1579]
                    )
                  ]
                  spids: [1442 1467]
                )
              ]
              spids: [16777215 1582]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:IFS)
                  op: Equal
                  rhs: 
                    {
                      (SingleQuotedPart
                        left: <Left_DollarSingleQuote "$'">
                        tokens: [<Char_Literals ' '> <Char_OneChar '\\t'> <Char_OneChar '\\n'>]
                        spids: [1589 1593]
                      )
                    }
                  spids: [1588]
                )
                (assign_pair
                  lhs: (LhsName name:prev_shopts)
                  op: Equal
                  rhs: {($ VSub_Hyphen '$-')}
                  spids: [1595]
                )
                (assign_pair lhs:(LhsName name:ret) op:Equal spids:[1598])
              ]
              spids: [1586]
            )
            (C {(set)} {(-f)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(has)} {(${ VSub_Name u)} {(${ VSub_Name USE)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ret)
                          op: Equal
                          rhs: {(${ VSub_Name found)}
                          spids: [1623]
                        )
                      ]
                      spids: [1623]
                    )
                  ]
                  spids: [16777215 1620]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ret)
                      op: Equal
                      rhs: 
                        {
                          (ArithSubPart
                            anode: (ArithUnary op_id:Arith_Bang child:(ArithVarRef name:found))
                            spids: [1633 1637]
                          )
                        }
                      spids: [1632]
                    )
                  ]
                  spids: [1632]
                )
              ]
              spids: [1629 1640]
            )
            (AndOr
              ops: [Op_DPipe]
              children: [
                (DBracket
                  expr: 
                    (BoolBinary
                      op_id: BoolBinary_GlobDEqual
                      left: {(${ VSub_Name prev_shopts)}
                      right: {(Lit_Other '*') (f) (Lit_Other '*')}
                    )
                )
                (C {(set)} {(Lit_Other '+') (f)})
              ]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(${ VSub_Name ret)})
          ]
          spids: [1320]
        )
      spids: [1316 1319]
    )
    (FuncDef
      name: use_with
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('!!! use_with() called without a parameter.'))}]
                      redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                    )
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('!!! use_with <USEFLAG> [<flagname> [value]]'))}]
                      redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 1694]
                )
              ]
              spids: [16777215 1722]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(___eapi_use_enable_and_use_with_support_empty_third_argument)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:UW_SUFFIX)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Number 3>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VTest_Plus
                                    arg_word: {('=') ($ VSub_Number '$3')}
                                  )
                                spids: [1737 1742]
                              )
                            }
                          spids: [1736]
                        )
                      ]
                      spids: [1734]
                    )
                  ]
                  spids: [16777215 1731]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:UW_SUFFIX)
                      op: Equal
                      rhs: 
                        {
                          (BracedVarSub
                            token: <VSub_Number 3>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonPlus
                                arg_word: {('=') ($ VSub_Number '$3')}
                              )
                            spids: [1751 1756]
                          )
                        }
                      spids: [1750]
                    )
                  ]
                  spids: [1748]
                )
              ]
              spids: [1745 1759]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:UWORD)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {($ VSub_Number '$1')}
                          )
                        spids: [1765 1769]
                      )
                    }
                  spids: [1764]
                )
              ]
              spids: [1762]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(use)} {($ VSub_Number '$1')}) terminator:<Op_Semi ';'>)]
                  action: [(C {(echo)} {(DQ (--with-) (${ VSub_Name UWORD) (${ VSub_Name UW_SUFFIX))})]
                  spids: [16777215 1780]
                )
              ]
              else_action: [(C {(echo)} {(DQ (--without-) (${ VSub_Name UWORD))})]
              spids: [1796 1809]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [1678]
        )
      spids: [1674 1677]
    )
    (FuncDef
      name: use_enable
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('!!! use_enable() called without a parameter.'))}]
                      redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                    )
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('!!! use_enable <USEFLAG> [<flagname> [value]]'))}]
                      redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [16777215 1839]
                )
              ]
              spids: [16777215 1867]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(___eapi_use_enable_and_use_with_support_empty_third_argument)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:UE_SUFFIX)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Number 3>
                                suffix_op: 
                                  (StringUnary
                                    op_id: VTest_Plus
                                    arg_word: {('=') ($ VSub_Number '$3')}
                                  )
                                spids: [1882 1887]
                              )
                            }
                          spids: [1881]
                        )
                      ]
                      spids: [1879]
                    )
                  ]
                  spids: [16777215 1876]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_Local
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:UE_SUFFIX)
                      op: Equal
                      rhs: 
                        {
                          (BracedVarSub
                            token: <VSub_Number 3>
                            suffix_op: 
                              (StringUnary
                                op_id: VTest_ColonPlus
                                arg_word: {('=') ($ VSub_Number '$3')}
                              )
                            spids: [1896 1901]
                          )
                        }
                      spids: [1895]
                    )
                  ]
                  spids: [1893]
                )
              ]
              spids: [1890 1904]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:UWORD)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Number 2>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: {($ VSub_Number '$1')}
                          )
                        spids: [1910 1914]
                      )
                    }
                  spids: [1909]
                )
              ]
              spids: [1907]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(use)} {($ VSub_Number '$1')}) terminator:<Op_Semi ';'>)]
                  action: [(C {(echo)} {(DQ (--enable-) (${ VSub_Name UWORD) (${ VSub_Name UE_SUFFIX))})]
                  spids: [16777215 1925]
                )
              ]
              else_action: [(C {(echo)} {(DQ (--disable-) (${ VSub_Name UWORD))})]
              spids: [1941 1954]
            )
            (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
          ]
          spids: [1823]
        )
      spids: [1819 1822]
    )
    (FuncDef
      name: unpack
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:srcdir) op:Equal spids:[1973])]
              spids: [1971]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:x) op:Equal spids:[1978])]
              spids: [1976]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:y) op:Equal spids:[1983])
                (assign_pair lhs:(LhsName name:y_insensitive) op:Equal spids:[1985])
              ]
              spids: [1981]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:suffix) op:Equal spids:[1990])
                (assign_pair
                  lhs: (LhsName name:suffix_insensitive)
                  op: Equal
                  spids: [1992]
                )
              ]
              spids: [1988]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:myfail) op:Equal spids:[1997])]
              spids: [1995]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:eapi)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name EAPI>
                        suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0)})
                        spids: [2003 2007]
                      )
                    }
                  spids: [2002]
                )
              ]
              spids: [2000]
            )
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Star '$*'))} {(Lit_Other ']')})
                (C {(die)} {(DQ ("Nothing passed to the 'unpack' command"))})
              ]
            )
            (ForEach
              iter_name: x
              iter_words: [{(DQ ($ VSub_At '$@'))}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (C {(__vecho)} 
                      {(DQ ('>>> Unpacking ') (${ VSub_Name x) (' to ') (${ VSub_Name PWD))}
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:suffix)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name x>
                                suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*.')})
                                spids: [2059 2063]
                              )
                            }
                          spids: [2058]
                        )
                      ]
                      spids: [2058]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:suffix_insensitive)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [{(tr)} {(DQ ('[:upper:]'))} {(DQ ('[:lower:]'))}]
                                        redirects: [
                                          (Redir
                                            op: <Redir_TLess '<<<'>
                                            fd: 16777215
                                            arg_word: {(DQ (${ VSub_Name suffix))}
                                          )
                                        ]
                                        more_env: [(env_pair name:LC_ALL val:{(C)} spids:[2068])]
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2067 2088]
                              )
                            }
                          spids: [2066]
                        )
                      ]
                      spids: [2066]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:y)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name x>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{('.*')})
                                spids: [2092 2096]
                              )
                            }
                          spids: [2091]
                        )
                      ]
                      spids: [2091]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:y)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name y>
                                suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{('*.')})
                                spids: [2100 2104]
                              )
                            }
                          spids: [2099]
                        )
                      ]
                      spids: [2099]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:y_insensitive)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [
                                      (SimpleCommand
                                        words: [{(tr)} {(DQ ('[:upper:]'))} {(DQ ('[:lower:]'))}]
                                        redirects: [
                                          (Redir
                                            op: <Redir_TLess '<<<'>
                                            fd: 16777215
                                            arg_word: {(DQ (${ VSub_Name y))}
                                          )
                                        ]
                                        more_env: [(env_pair name:LC_ALL val:{(C)} spids:[2109])]
                                      )
                                    ]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [2108 2129]
                              )
                            }
                          spids: [2107]
                        )
                      ]
                      spids: [2107]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {(${ VSub_Name x)}
                                      right: {(Lit_Other '*') (/) (Lit_Other '*')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:srcdir)
                                  op: Equal
                                  rhs: {(${ VSub_Name DISTDIR) (/)}
                                  spids: [2161]
                                )
                              ]
                              spids: [2161]
                            )
                          ]
                          spids: [16777215 2154]
                        )
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobDEqual
                                      left: {(${ VSub_Name x)}
                                      right: {(./) (Lit_Other '*')}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:srcdir)
                                  op: Equal
                                  rhs: {(EmptyPart)}
                                  spids: [2191]
                                )
                              ]
                              spids: [2191]
                            )
                          ]
                          spids: [2168 2184]
                        )
                      ]
                      else_action: [
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: (C {(___eapi_unpack_supports_absolute_paths)})
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:srcdir)
                                      op: Equal
                                      rhs: {(EmptyPart)}
                                      spids: [2213]
                                    )
                                  ]
                                  spids: [2213]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobDEqual
                                                  left: {(${ VSub_Name x)}
                                                  right: 
                                                    {
                                                      (BracedVarSub
                                                        token: <VSub_Name DISTDIR>
                                                        suffix_op: 
                                                          (StringUnary
                                                            op_id: VOp1_Percent
                                                            arg_word: {(Lit_Slash /)}
                                                          )
                                                        spids: [2227 2231]
                                                      ) (/) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(eqawarn)} 
                                          {
                                            (DQ ('QA Notice: unpack called with redundant ') 
                                              (EscapedLiteralPart
                                                token: <Lit_EscapedChar '\\$'>
                                              ) ('{DISTDIR} in path')
                                            )
                                          }
                                        )
                                      ]
                                      spids: [16777215 2238]
                                    )
                                  ]
                                  spids: [16777215 2250]
                                )
                              ]
                              spids: [16777215 2206]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(${ VSub_Name x)}
                                          right: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name DISTDIR>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_Percent
                                                    arg_word: {(Lit_Slash /)}
                                                  )
                                                spids: [2263 2267]
                                              ) (/) (Lit_Other '*')
                                            }
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(die)} 
                                  {
                                    (DQ ('Arguments to unpack() cannot begin with ') 
                                      (EscapedLiteralPart
                                        token: <Lit_EscapedChar '\\$'>
                                      ) ('{DISTDIR} in EAPI ') (${ VSub_Name EAPI)
                                    )
                                  }
                                )
                              ]
                              spids: [2253 2274]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(${ VSub_Name x)}
                                          right: {(/) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (C {(die)} 
                                  {
                                    (DQ ('Arguments to unpack() cannot be absolute in EAPI ') 
                                      (${ VSub_Name EAPI)
                                    )
                                  }
                                )
                              ]
                              spids: [2289 2306]
                            )
                          ]
                          else_action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (
"Relative paths to unpack() must be prefixed with './' in EAPI "
                                  ) (${ VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          spids: [2319 2332]
                        )
                      ]
                      spids: [2194 2335]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (LogicalNot
                                      child: 
                                        (BoolUnary
                                          op_id: BoolUnary_s
                                          child: {(${ VSub_Name srcdir) (${ VSub_Name x)}
                                        )
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(__helpers_die)} 
                              {(DQ ('unpack: ') (${ VSub_Name x) (' does not exist'))}
                            )
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 2356]
                        )
                      ]
                      spids: [16777215 2375]
                    )
                    (FuncDef
                      name: __unpack_tar
                      body: 
                        (BraceGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: {(${ VSub_Name y_insensitive)}
                                              right: {(tar)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (AndOr
                                                  ops: [Op_DAmp]
                                                  children: [
                                                    (C {(___eapi_unpack_is_case_sensitive)})
                                                    (DBracket
                                                      expr: 
                                                        (BoolBinary
                                                          op_id: BoolBinary_GlobNEqual
                                                          left: {(tar)}
                                                          right: {(${ VSub_Name y)}
                                                        )
                                                    )
                                                  ]
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                              {
                                                (DQ ("secondary suffix '") (${ VSub_Name y) 
                                                  ("' which is unofficially")
                                                )
                                              } {(DQ ("supported with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'tar'."))}
                                            )
                                          ]
                                          spids: [16777215 2427]
                                        )
                                      ]
                                      spids: [16777215 2457]
                                    )
                                    (Pipeline
                                      children: [
                                        (C {($ VSub_Number '$1')} {(-c)} {(--)} 
                                          {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))}
                                        )
                                        (C {(tar)} {(xof)} {(-)})
                                      ]
                                      negated: F
                                    )
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (C {(__assert_sigpipe_ok)} {(DQ ($ VSub_Name '$myfail'))})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(1)}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [16777215 2402]
                                )
                              ]
                              else_action: [
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:cwd_dest)
                                      op: Equal
                                      rhs: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name x>
                                            suffix_op: 
                                              (StringUnary
                                                op_id: VOp1_DPound
                                                arg_word: {('*') (Lit_Slash /)}
                                              )
                                            spids: [2499 2504]
                                          )
                                        }
                                      spids: [2498]
                                    )
                                  ]
                                  spids: [2496]
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:cwd_dest)
                                      op: Equal
                                      rhs: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name cwd_dest>
                                            suffix_op: 
                                              (StringUnary
                                                op_id: VOp1_Percent
                                                arg_word: {('.*')}
                                              )
                                            spids: [2508 2512]
                                          )
                                        }
                                      spids: [2507]
                                    )
                                  ]
                                  spids: [2507]
                                )
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (Pipeline
                                              children: [
                                                (SimpleCommand
                                                  words: [
                                                    {($ VSub_Number '$1')}
                                                    {(-c)}
                                                    {(--)}
                                                    {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))}
                                                  ]
                                                  redirects: [
                                                    (Redir
                                                      op: <Redir_Great '>'>
                                                      fd: 16777215
                                                      arg_word: {(DQ (${ VSub_Name cwd_dest))}
                                                    )
                                                  ]
                                                )
                                              ]
                                              negated: T
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(1)}
                                        )
                                      ]
                                      spids: [16777215 2543]
                                    )
                                  ]
                                  spids: [16777215 2558]
                                )
                              ]
                              spids: [2493 2561]
                            )
                          ]
                          spids: [2383]
                        )
                      spids: [2379 2382]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:myfail)
                          op: Equal
                          rhs: {(DQ ('unpack: failure unpacking ') (${ VSub_Name x))}
                          spids: [2568]
                        )
                      ]
                      spids: [2568]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name suffix_insensitive))}
                      arms: [
                        (case_arm
                          pat_list: [{(tar)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(tar)}
                                                  right: {(${ VSub_Name suffix)}
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'tar'."))}
                                    )
                                  ]
                                  spids: [16777215 2614]
                                )
                              ]
                              spids: [16777215 2644]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(tar)} {(xof)} 
                                              {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 2661]
                                )
                              ]
                              spids: [16777215 2676]
                            )
                          ]
                          spids: [2588 2589 2679 16777215]
                        )
                        (case_arm
                          pat_list: [{(tgz)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(tgz)}
                                                  right: {(${ VSub_Name suffix)}
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'tgz'."))}
                                    )
                                  ]
                                  spids: [16777215 2708]
                                )
                              ]
                              spids: [16777215 2738]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(tar)} {(xozf)} 
                                              {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 2755]
                                )
                              ]
                              spids: [16777215 2770]
                            )
                          ]
                          spids: [2682 2683 2773 16777215]
                        )
                        (case_arm
                          pat_list: [{(tbz)} {(tbz2)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' tbz tbz2 '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'tbz' or 'tbz2'."))}
                                    )
                                  ]
                                  spids: [16777215 2812]
                                )
                              ]
                              spids: [16777215 2842]
                            )
                            (Pipeline
                              children: [
                                (C 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Name PORTAGE_BUNZIP2_COMMAND>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(${ VSub_Name PORTAGE_BZIP2_COMMAND) (' -d')}
                                        )
                                      spids: [2845 2852]
                                    )
                                  } {(-c)} {(--)} {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))}
                                )
                                (C {(tar)} {(xof)} {(-)})
                              ]
                              negated: F
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(__assert_sigpipe_ok)} {(DQ ($ VSub_Name '$myfail'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          spids: [2776 2779 2885 16777215]
                        )
                        (case_arm
                          pat_list: [{(zip)} {(jar)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' ZIP zip jar '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'."))} {(DQ ("Instead use 'ZIP', 'zip', or 'jar'."))}
                                    )
                                  ]
                                  spids: [16777215 2924]
                                )
                              ]
                              spids: [16777215 2960]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(unzip)} {(-qo)} 
                                              {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 2989]
                                )
                              ]
                              redirects: [
                                (Redir
                                  op: <Redir_Less '<'>
                                  fd: 16777215
                                  arg_word: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Sentence
                                                child: (C {(set)} {(Lit_Other '+') (x)})
                                                terminator: <Op_Semi ';'>
                                              )
                                              (WhileUntil
                                                keyword: <KW_While while>
                                                cond: [
                                                  (Sentence
                                                    child: (C {(true)})
                                                    terminator: <Op_Semi ';'>
                                                  )
                                                ]
                                                body: 
                                                  (DoGroup
                                                    children: [
                                                      (Sentence
                                                        child: 
                                                          (AndOr
                                                            ops: [Op_DPipe]
                                                            children: [
                                                              (C {(echo)} {(n)})
                                                              (ControlFlow
                                                                token: <ControlFlow_Break break>
                                                              )
                                                            ]
                                                          )
                                                        terminator: <Op_Semi ';'>
                                                      )
                                                    ]
                                                    spids: [3022 3034]
                                                  )
                                              )
                                            ]
                                          )
                                        left_token: <Left_ProcSubIn '<('>
                                        spids: [3008 3035]
                                      )
                                    }
                                )
                              ]
                              spids: [16777215 3004]
                            )
                          ]
                          spids: [2888 2891 3038 16777215]
                        )
                        (case_arm
                          pat_list: [{(gz)} {(z)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' gz z Z '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'gz', 'z', or 'Z'."))}
                                    )
                                  ]
                                  spids: [16777215 3077]
                                )
                              ]
                              spids: [16777215 3107]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(__unpack_tar)} {(DQ ('gzip -d'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          spids: [3041 3044 3123 16777215]
                        )
                        (case_arm
                          pat_list: [{(bz2)} {(bz)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' bz bz2 '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'bz' or 'bz2'."))}
                                    )
                                  ]
                                  spids: [16777215 3162]
                                )
                              ]
                              spids: [16777215 3192]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(__unpack_tar)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name PORTAGE_BUNZIP2_COMMAND>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VTest_ColonHyphen
                                            arg_word: {(${ VSub_Name PORTAGE_BZIP2_COMMAND) (' -d')}
                                          )
                                        spids: [3198 3205]
                                      )
                                    )
                                  }
                                )
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          spids: [3126 3129 3217 16777215]
                        )
                        (case_arm
                          pat_list: [{(7z)}]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:my_output)
                                  op: Equal
                                  spids: [3226]
                                )
                              ]
                              spids: [3224]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:my_output)
                                  op: Equal
                                  rhs: 
                                    {
                                      (DQ 
                                        (CommandSubPart
                                          command_list: 
                                            (CommandList
                                              children: [
                                                (C {(7z)} {(x)} {(-y)} 
                                                  {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))}
                                                )
                                              ]
                                            )
                                          left_token: <Left_CommandSub '$('>
                                          spids: [3231 3246]
                                        )
                                      )
                                    }
                                  spids: [3229]
                                )
                              ]
                              spids: [3229]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} 
                                          {(Lit_Other ']')}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (SimpleCommand
                                      words: [{(echo)} {(DQ (${ VSub_Name my_output))}]
                                      redirects: [
                                        (Redir
                                          op: <Redir_GreatAnd '>&'>
                                          fd: 16777215
                                          arg_word: {(2)}
                                        )
                                      ]
                                    )
                                    (C {(die)} {(DQ ($ VSub_Name '$myfail'))})
                                  ]
                                  spids: [16777215 3263]
                                )
                              ]
                              spids: [16777215 3285]
                            )
                          ]
                          spids: [3220 3221 3288 16777215]
                        )
                        (case_arm
                          pat_list: [{(rar)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' rar RAR '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'rar' or 'RAR'."))}
                                    )
                                  ]
                                  spids: [16777215 3325]
                                )
                              ]
                              spids: [16777215 3355]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(unrar)} {(x)} {(-idq)} {(-o) (Lit_Other '+')} 
                                              {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 3381]
                                )
                              ]
                              spids: [16777215 3396]
                            )
                          ]
                          spids: [3291 3292 3399 16777215]
                        )
                        (case_arm
                          pat_list: [{(lha)} {(lzh)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' LHA LHa lha lzh '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'."))} {(DQ ("Instead use 'LHA', 'LHa', 'lha', or 'lzh'."))}
                                    )
                                  ]
                                  spids: [16777215 3438]
                                )
                              ]
                              spids: [16777215 3474]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(lha)} {(xfq)} 
                                              {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))}
                                            )
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 3495]
                                )
                              ]
                              spids: [16777215 3510]
                            )
                          ]
                          spids: [3402 3405 3513 16777215]
                        )
                        (case_arm
                          pat_list: [{(a)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' a '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'a'."))}
                                    )
                                  ]
                                  spids: [16777215 3550]
                                )
                              ]
                              spids: [16777215 3580]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [
                                            (C {(ar)} {(x)} {(DQ (${ VSub_Name srcdir) (${ VSub_Name x))})
                                          ]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(1)}
                                    )
                                  ]
                                  spids: [16777215 3601]
                                )
                              ]
                              spids: [16777215 3616]
                            )
                          ]
                          spids: [3516 3517 3619 16777215]
                        )
                        (case_arm
                          pat_list: [{(deb)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' deb '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'deb'."))}
                                    )
                                  ]
                                  spids: [16777215 3656]
                                )
                              ]
                              spids: [16777215 3686]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (SimpleCommand
                                                                words: [{(ar)} {(--version)}]
                                                                redirects: [
                                                                  (Redir
                                                                    op: <Redir_Great '2>'>
                                                                    fd: 2
                                                                    arg_word: {(/dev/null)}
                                                                  )
                                                                ]
                                                              )
                                                            ]
                                                          )
                                                        left_token: <Left_CommandSub '$('>
                                                        spids: [3717 3724]
                                                      )
                                                    }
                                                  right: {(DQ ('GNU ar')) (Lit_Other '*')}
                                                )
                                            )
                                            (SimpleCommand
                                              words: [{(type)} {(-P)} {(deb2targz)}]
                                              redirects: [
                                                (Redir
                                                  op: <Redir_Great '>'>
                                                  fd: 16777215
                                                  arg_word: {(/dev/null)}
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:y)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name x>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {('*') (Lit_Slash /)}
                                                  )
                                                spids: [3754 3759]
                                              )
                                            }
                                          spids: [3753]
                                        )
                                      ]
                                      spids: [3753]
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:created_symlink)
                                          op: Equal
                                          rhs: {(0)}
                                          spids: [3764]
                                        )
                                      ]
                                      spids: [3762]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {(KW_Bang '!')} 
                                                  {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))} {(-ef)} {(DQ ($ VSub_Name '$y'))} {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (Pipeline
                                                          children: [
                                                            (C {(ln)} {(-sf)} 
                                                              {
                                                                (DQ ($ VSub_Name '$srcdir') 
                                                                  ($ VSub_Name '$x')
                                                                )
                                                              } {(DQ ($ VSub_Name '$y'))}
                                                            )
                                                          ]
                                                          negated: T
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                                    (ControlFlow
                                                      token: <ControlFlow_Return return>
                                                      arg_word: {(1)}
                                                    )
                                                  ]
                                                  spids: [16777215 3822]
                                                )
                                              ]
                                              spids: [16777215 3837]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:created_symlink)
                                                  op: Equal
                                                  rhs: {(1)}
                                                  spids: [3840]
                                                )
                                              ]
                                              spids: [3840]
                                            )
                                          ]
                                          spids: [16777215 3789]
                                        )
                                      ]
                                      spids: [16777215 3844]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (Pipeline
                                                  children: [(C {(deb2targz)} {(DQ ($ VSub_Name '$y'))})]
                                                  negated: T
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                              arg_word: {(1)}
                                            )
                                          ]
                                          spids: [16777215 3858]
                                        )
                                      ]
                                      spids: [16777215 3873]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (C {(Lit_Other '[')} {($ VSub_Name '$created_symlink')} 
                                                  {(Lit_Other '=')} {(1)} {(Lit_Other ']')}
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Name '$y'))})]
                                          spids: [16777215 3890]
                                        )
                                      ]
                                      spids: [16777215 3910]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (Pipeline
                                                  children: [
                                                    (C {(mv)} {(-f)} 
                                                      {
                                                        (DQ 
                                                          (BracedVarSub
                                                            token: <VSub_Name y>
                                                            suffix_op: 
                                                              (StringUnary
                                                                op_id: VOp1_Percent
                                                                arg_word: {(.deb)}
                                                              )
                                                            spids: [3922 3926]
                                                          )
                                                        ) (.tar.gz)
                                                      } {(data.tar.gz)}
                                                    )
                                                  ]
                                                  negated: T
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (Sentence
                                                      child: 
                                                        (Pipeline
                                                          children: [
                                                            (C {(mv)} {(-f)} 
                                                              {
                                                                (DQ 
                                                                  (BracedVarSub
                                                                    token: <VSub_Name y>
                                                                    suffix_op: 
                                                                      (StringUnary
                                                                        op_id: VOp1_Percent
                                                                        arg_word: {(.deb)}
                                                                      )
                                                                    spids: [3945 3949]
                                                                  )
                                                                ) (.tar.xz)
                                                              } {(data.tar.xz)}
                                                            )
                                                          ]
                                                          negated: T
                                                        )
                                                      terminator: <Op_Semi ';'>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                                    (ControlFlow
                                                      token: <ControlFlow_Return return>
                                                      arg_word: {(1)}
                                                    )
                                                  ]
                                                  spids: [16777215 3956]
                                                )
                                              ]
                                              spids: [16777215 3971]
                                            )
                                          ]
                                          spids: [16777215 3933]
                                        )
                                      ]
                                      spids: [16777215 3974]
                                    )
                                  ]
                                  spids: [16777215 3750]
                                )
                              ]
                              else_action: [
                                (If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (Sentence
                                          child: 
                                            (Pipeline
                                              children: [
                                                (C {(ar)} {(x)} 
                                                  {(DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))}
                                                )
                                              ]
                                              negated: T
                                            )
                                          terminator: <Op_Semi ';'>
                                        )
                                      ]
                                      action: [
                                        (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(1)}
                                        )
                                      ]
                                      spids: [16777215 3994]
                                    )
                                  ]
                                  spids: [16777215 4009]
                                )
                              ]
                              spids: [3977 4012]
                            )
                          ]
                          spids: [3622 3623 4015 16777215]
                        )
                        (case_arm
                          pat_list: [{(lzma)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' lzma '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'lzma'."))}
                                    )
                                  ]
                                  spids: [16777215 4052]
                                )
                              ]
                              spids: [16777215 4082]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(__unpack_tar)} {(DQ ('lzma -d'))})
                                (ControlFlow
                                  token: <ControlFlow_Return return>
                                  arg_word: {(1)}
                                )
                              ]
                            )
                          ]
                          spids: [4018 4019 4098 16777215]
                        )
                        (case_arm
                          pat_list: [{(xz)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' xz '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'xz'."))}
                                    )
                                  ]
                                  spids: [16777215 4135]
                                )
                              ]
                              spids: [16777215 4165]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(___eapi_unpack_supports_xz)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (AndOr
                                      ops: [Op_DPipe]
                                      children: [
                                        (C {(__unpack_tar)} {(DQ ('xz -d'))})
                                        (ControlFlow
                                          token: <ControlFlow_Return return>
                                          arg_word: {(1)}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [16777215 4173]
                                )
                              ]
                              else_action: [
                                (C {(__vecho)} 
                                  {
                                    (DQ ('unpack ') (${ VSub_Name x) 
                                      (': file format not recognized. Ignoring.')
                                    )
                                  }
                                )
                              ]
                              spids: [4189 4203]
                            )
                          ]
                          spids: [4101 4102 4206 16777215]
                        )
                        (case_arm
                          pat_list: [{(txz)}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (AndOr
                                          ops: [Op_DAmp]
                                          children: [
                                            (C {(___eapi_unpack_is_case_sensitive)})
                                            (DBracket
                                              expr: 
                                                (BoolBinary
                                                  op_id: BoolBinary_GlobNEqual
                                                  left: {(DQ (' txz '))}
                                                  right: 
                                                    {(Lit_Other '*') 
                                                      (DQ (' ') (${ VSub_Name suffix) (' ')) (Lit_Other '*')
                                                    }
                                                )
                                            )
                                          ]
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(eqawarn)} {(DQ ('QA Notice: unpack called with'))} 
                                      {
                                        (DQ ("suffix '") (${ VSub_Name suffix) 
                                          ("' which is unofficially supported")
                                        )
                                      } {(DQ ("with EAPI '") (${ VSub_Name EAPI) ("'. Instead use 'txz'."))}
                                    )
                                  ]
                                  spids: [16777215 4243]
                                )
                              ]
                              spids: [16777215 4273]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(___eapi_unpack_supports_txz)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (Pipeline
                                                  children: [
                                                    (C {(tar)} {(xof)} 
                                                      {
                                                        (DQ ($ VSub_Name '$srcdir') ($ VSub_Name '$x'))
                                                      }
                                                    )
                                                  ]
                                                  negated: T
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(__helpers_die)} {(DQ ($ VSub_Name '$myfail'))})
                                            (ControlFlow
                                              token: <ControlFlow_Return return>
                                              arg_word: {(1)}
                                            )
                                          ]
                                          spids: [16777215 4298]
                                        )
                                      ]
                                      spids: [16777215 4313]
                                    )
                                  ]
                                  spids: [16777215 4281]
                                )
                              ]
                              else_action: [
                                (C {(__vecho)} 
                                  {
                                    (DQ ('unpack ') (${ VSub_Name x) 
                                      (': file format not recognized. Ignoring.')
                                    )
                                  }
                                )
                              ]
                              spids: [4316 4330]
                            )
                          ]
                          spids: [4209 4210 4333 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (C {(__vecho)} 
                              {
                                (DQ ('unpack ') (${ VSub_Name x) 
                                  (': file format not recognized. Ignoring.')
                                )
                              }
                            )
                          ]
                          spids: [4336 4337 4351 16777215]
                        )
                      ]
                      spids: [2577 2585 4354]
                    )
                  ]
                  spids: [2041 4357]
                )
              spids: [2035 2039]
            )
            (Pipeline
              children: [
                (C {(find)} {(.)} {(-mindepth)} {(1)} {(-maxdepth)} {(1)} {(KW_Bang '!')} {(-type)} {(l)} 
                  {(-print0)}
                )
                (C {(${ VSub_Name XARGS)} {(-0)} {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/chmod-lite))})
              ]
              negated: F
            )
          ]
          spids: [1968]
        )
      spids: [1964 1967]
    )
    (FuncDef
      name: econf
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:x) op:Equal spids:[4417])]
              spids: [4415]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:pid)
                  op: Equal
                  rhs: 
                    {
                      (BracedVarSub
                        token: <VSub_Name BASHPID>
                        suffix_op: 
                          (StringUnary
                            op_id: VTest_ColonHyphen
                            arg_word: 
                              {
                                (CommandSubPart
                                  command_list: (CommandList children:[(C {(__bashpid)})])
                                  left_token: <Left_CommandSub '$('>
                                  spids: [4426 4428]
                                )
                              }
                          )
                        spids: [4423 4429]
                      )
                    }
                  spids: [4422]
                )
              ]
              spids: [4420]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:EPREFIX)
                          op: Equal
                          rhs: {(EmptyPart)}
                          spids: [4445]
                        )
                      ]
                      spids: [4443]
                    )
                  ]
                  spids: [16777215 4440]
                )
              ]
              spids: [16777215 4448]
            )
            (FuncDef
              name: __hasg
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:x)
                          op: Equal
                          spids: [4461]
                        )
                        (assign_pair
                          lhs: (LhsName name:s)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [4463]
                        )
                      ]
                      spids: [4459]
                    )
                    (C {(shift)})
                    (ForEach
                      iter_name: x
                      do_arg_iter: T
                      body: 
                        (DoGroup
                          children: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: {(${ VSub_Name x)}
                                          right: {(${ VSub_Name s)}
                                        )
                                    )
                                    (C {(echo)} {(DQ (${ VSub_Name x))})
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(0)}
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          spids: [4476 4510]
                        )
                      spids: [16777215 16777215]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
                  ]
                  spids: [4456]
                )
              spids: [4452 4455]
            )
            (FuncDef
              name: __hasgq
              body: 
                (BraceGroup
                  children: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [{(__hasg)} {(DQ ($ VSub_At '$@'))}]
                          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  spids: [4526]
                )
              spids: [4522 4525]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:phase_func)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [
                              (C {(__ebuild_arg_to_phase)} {(DQ ($ VSub_Name '$EBUILD_PHASE'))})
                            ]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [4546 4552]
                      )
                    }
                  spids: [4545]
                )
              ]
              spids: [4543]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{($ VSub_Name '$phase_func')})
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [(C {(___eapi_has_src_configure)})]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {($ VSub_Name '$phase_func')}
                                      right: {(src_compile)}
                                    )
                                )
                                (C {(eqawarn)} {(DQ ('QA Notice: econf called in'))} 
                                  {(DQ ($ VSub_Name '$phase_func') (' instead of src_compile'))}
                                )
                              ]
                            )
                          ]
                          spids: [16777215 4577]
                        )
                      ]
                      else_action: [
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (DBracket
                              expr: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobNEqual
                                  left: {($ VSub_Name '$phase_func')}
                                  right: {(src_configure)}
                                )
                            )
                            (C {(eqawarn)} {(DQ ('QA Notice: econf called in'))} 
                              {(DQ ($ VSub_Name '$phase_func') (' instead of src_configure'))}
                            )
                          ]
                        )
                      ]
                      spids: [4608 4639]
                    )
                  ]
                  spids: [16777215 4567]
                )
              ]
              spids: [16777215 4642]
            )
            (C {(Lit_Other ':')} 
              {
                (BracedVarSub
                  token: <VSub_Name ECONF_SOURCE>
                  suffix_op: (StringUnary op_id:VTest_ColonEquals arg_word:{(.)})
                  spids: [4648 4652]
                )
              }
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-x)} {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (LogicalAnd
                                      left: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: {($ VSub_Name '$CONFIG_SHELL')}
                                        )
                                      right: 
                                        (BoolBinary
                                          op_id: BoolBinary_EqualTilde
                                          left: 
                                            {
                                              (DQ 
                                                (CommandSubPart
                                                  command_list: 
                                                    (CommandList
                                                      children: [
                                                        (C {(head)} {(-n1)} 
                                                          {
                                                            (DQ ($ VSub_Name '$ECONF_SOURCE') 
                                                              (/configure)
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  left_token: <Left_CommandSub '$('>
                                                  spids: [4687 4696]
                                                )
                                              )
                                            }
                                          right: 
                                            {(Lit_Other '^') (SQ <'#!'>) (Lit_Other '[') 
                                              (Lit_Other '[') (Lit_Other ':') (space) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') (Lit_Other '*') (/bin/sh) ('(') 
                                              (Lit_Other '[') (Lit_Other '[') (Lit_Other ':') (space) (Lit_Other ':') (Lit_Other ']') (Lit_Other ']') ('|') 
                                              (Lit_Other '$') (')')
                                            }
                                        )
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(cp)} {(-p)} {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                                  {
                                    (DQ (${ VSub_Name ECONF_SOURCE) (/configure._portage_tmp_.) 
                                      (${ VSub_Name pid)
                                    )
                                  }
                                )
                                (C {(die)})
                              ]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(sed)} {(-i)} {(-e)} 
                                  {
                                    (DQ ('1s:^#![[:space:]]*/bin/sh:#!') ($ VSub_Name '$CONFIG_SHELL') 
                                      (':')
                                    )
                                  } {(DQ (${ VSub_Name ECONF_SOURCE) (/configure._portage_tmp_.) (${ VSub_Name pid))}
                                )
                                (C {(die)} 
                                  {
                                    (DQ ("Substition of shebang in '") (${ VSub_Name ECONF_SOURCE) 
                                      ("/configure' failed")
                                    )
                                  }
                                )
                              ]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(touch)} {(-r)} {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                                  {
                                    (DQ (${ VSub_Name ECONF_SOURCE) (/configure._portage_tmp_.) 
                                      (${ VSub_Name pid)
                                    )
                                  }
                                )
                                (C {(die)})
                              ]
                            )
                            (AndOr
                              ops: [Op_DPipe]
                              children: [
                                (C {(mv)} {(-f)} 
                                  {
                                    (DQ (${ VSub_Name ECONF_SOURCE) (/configure._portage_tmp_.) 
                                      (${ VSub_Name pid)
                                    )
                                  } {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))}
                                )
                                (C {(die)})
                              ]
                            )
                          ]
                          spids: [16777215 4730]
                        )
                      ]
                      spids: [16777215 4856]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(-e)} 
                                  {(DQ (${ VSub_Name EPREFIX)) (/usr/share/gnuconfig/)} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Pipeline
                              children: [
                                (C {(find)} {(DQ (${ VSub_Name WORKDIR))} {(-type)} {(f)} {(SQ <'('>)} 
                                  {(-name)} {(config.guess)} {(-o)} {(-name)} {(config.sub)} {(SQ <')'>)} {(-print0)}
                                )
                                (WhileUntil
                                  keyword: <KW_While while>
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(read)} {(-r)} {(-d)} 
                                          {
                                            (SingleQuotedPart
                                              left: <Left_DollarSingleQuote "$'">
                                              tokens: [<Char_OneChar '\\0'>]
                                              spids: [4924 4926]
                                            )
                                          } {(x)}
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  body: 
                                    (DoGroup
                                      children: [
                                        (C {(__vecho)} 
                                          {
                                            (DQ (' * econf: updating ') 
                                              (BracedVarSub
                                                token: <VSub_Name x>
                                                suffix_op: 
                                                  (PatSub
                                                    pat: 
                                                      {(${ VSub_Name WORKDIR) 
                                                        (EscapedLiteralPart
                                                          token: <Lit_EscapedChar '\\/'>
                                                        )
                                                      }
                                                    do_all: F
                                                    do_prefix: F
                                                    do_suffix: F
                                                  )
                                                spids: [4939 4946]
                                              ) (' with ') (${ VSub_Name EPREFIX) (/usr/share/gnuconfig/) 
                                              (BracedVarSub
                                                token: <VSub_Name x>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {('*') (Lit_Slash /)}
                                                  )
                                                spids: [4952 4957]
                                              )
                                            )
                                          }
                                        )
                                        (C {(cp)} {(-f)} 
                                          {(DQ (${ VSub_Name EPREFIX)) (/usr/share/gnuconfig/) 
                                            (DQ 
                                              (BracedVarSub
                                                token: <VSub_Name x>
                                                suffix_op: 
                                                  (StringUnary
                                                    op_id: VOp1_DPound
                                                    arg_word: {('*') (Lit_Slash /)}
                                                  )
                                                spids: [4976 4981]
                                              )
                                            )
                                          } {(DQ (${ VSub_Name x) (.) (${ VSub_Name pid))}
                                        )
                                        (C {(mv)} {(-f)} {(DQ (${ VSub_Name x) (.) (${ VSub_Name pid))} 
                                          {(DQ (${ VSub_Name x))}
                                        )
                                      ]
                                      spids: [4932 5016]
                                    )
                                )
                              ]
                              negated: F
                            )
                          ]
                          spids: [16777215 4875]
                        )
                      ]
                      spids: [16777215 5019]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:conf_args)
                          op: Equal
                          rhs: {(ArrayLiteralPart)}
                          spids: [5025]
                        )
                      ]
                      spids: [5023]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DPipe 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: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:conf_help)
                                  op: Equal
                                  rhs: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (SimpleCommand
                                                words: [
                                                  {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))}
                                                  {(--help)}
                                                ]
                                                redirects: [
                                                  (Redir
                                                    op: <Redir_Great '2>'>
                                                    fd: 2
                                                    arg_word: {(/dev/null)}
                                                  )
                                                ]
                                              )
                                            ]
                                          )
                                        left_token: <Left_CommandSub '$('>
                                        spids: [5049 5061]
                                      )
                                    }
                                  spids: [5048]
                                )
                              ]
                              spids: [5046]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(___eapi_econf_passes_--disable-dependency-tracking)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobDEqual
                                                      left: {(${ VSub_Name conf_help)}
                                                      right: 
                                                        {(Lit_Other '*') 
                                                          (--disable-dependency-tracking) (Lit_Other '*')
                                                        }
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:conf_args)
                                                  op: PlusEqual
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [{(--disable-dependency-tracking)}]
                                                      )
                                                    }
                                                  spids: [5093]
                                                )
                                              ]
                                              spids: [5093]
                                            )
                                          ]
                                          spids: [16777215 5090]
                                        )
                                      ]
                                      spids: [16777215 5101]
                                    )
                                  ]
                                  spids: [16777215 5070]
                                )
                              ]
                              spids: [16777215 5104]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(___eapi_econf_passes_--disable-silent-rules)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobDEqual
                                                      left: {(${ VSub_Name conf_help)}
                                                      right: 
                                                        {(Lit_Other '*') (--disable-silent-rules) 
                                                          (Lit_Other '*')
                                                        }
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:conf_args)
                                                  op: PlusEqual
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [{(--disable-silent-rules)}]
                                                      )
                                                    }
                                                  spids: [5136]
                                                )
                                              ]
                                              spids: [5136]
                                            )
                                          ]
                                          spids: [16777215 5133]
                                        )
                                      ]
                                      spids: [16777215 5144]
                                    )
                                  ]
                                  spids: [16777215 5113]
                                )
                              ]
                              spids: [16777215 5147]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: (C {(___eapi_econf_passes_--docdir_and_--htmldir)})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobDEqual
                                                      left: {(${ VSub_Name conf_help)}
                                                      right: 
                                                        {(Lit_Other '*') (--docdir) (Lit_Other '*')}
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:conf_args)
                                                  op: PlusEqual
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [
                                                          {(--docdir) (Lit_Other '=') 
                                                            (DQ (${ VSub_Name EPREFIX)) (/usr/share/doc/) (${ VSub_Name PF)
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [5179]
                                                )
                                              ]
                                              spids: [5179]
                                            )
                                          ]
                                          spids: [16777215 5176]
                                        )
                                      ]
                                      spids: [16777215 5197]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobDEqual
                                                      left: {(${ VSub_Name conf_help)}
                                                      right: 
                                                        {(Lit_Other '*') (--htmldir) (Lit_Other '*')}
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:conf_args)
                                                  op: PlusEqual
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [
                                                          {(--htmldir) (Lit_Other '=') 
                                                            (DQ (${ VSub_Name EPREFIX)) (/usr/share/doc/) (${ VSub_Name PF) (/html)
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [5221]
                                                )
                                              ]
                                              spids: [5221]
                                            )
                                          ]
                                          spids: [16777215 5218]
                                        )
                                      ]
                                      spids: [16777215 5240]
                                    )
                                  ]
                                  spids: [16777215 5156]
                                )
                              ]
                              spids: [16777215 5243]
                            )
                          ]
                          spids: [16777215 5043]
                        )
                      ]
                      spids: [16777215 5246]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CONF_LIBDIR)
                          op: Equal
                          spids: [5260]
                        )
                        (assign_pair
                          lhs: (LhsName name:LIBDIR_VAR)
                          op: Equal
                          rhs: {(DQ (LIBDIR_) (${ VSub_Name ABI))}
                          spids: [5262]
                        )
                      ]
                      spids: [5258]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (LogicalAnd
                                      left: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name ABI)})
                                      right: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name LIBDIR_VAR>
                                                prefix_op: VSub_Bang
                                                spids: [5285 5288]
                                              )
                                            }
                                        )
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:CONF_LIBDIR)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name LIBDIR_VAR>
                                        prefix_op: VSub_Bang
                                        spids: [5298 5301]
                                      )
                                    }
                                  spids: [5297]
                                )
                              ]
                              spids: [5297]
                            )
                          ]
                          spids: [16777215 5294]
                        )
                      ]
                      spids: [16777215 5304]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolUnary
                                          op_id: BoolUnary_n
                                          child: {(${ VSub_Name CONF_LIBDIR)}
                                        )
                                    )
                                    (Pipeline
                                      children: [
                                        (C {(__hasgq)} 
                                          {(--libdir) (Lit_Other '=') 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar '\\*'>
                                            )
                                          } {(DQ ($ VSub_At '$@'))}
                                        )
                                      ]
                                      negated: T
                                    )
                                  ]
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(export)} 
                              {(Lit_VarLike 'CONF_PREFIX=') 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(__hasg)} 
                                          {(--exec-prefix) (Lit_Other '=') 
                                            (EscapedLiteralPart
                                              token: <Lit_EscapedChar '\\*'>
                                            )
                                          } {(DQ ($ VSub_At '$@'))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [5341 5351]
                                )
                              }
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_z
                                      child: {(${ VSub_Name CONF_PREFIX)}
                                    )
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:CONF_PREFIX)
                                      op: Equal
                                      rhs: 
                                        {
                                          (CommandSubPart
                                            command_list: 
                                              (CommandList
                                                children: [
                                                  (C {(__hasg)} 
                                                    {(--prefix) (Lit_Other '=') 
                                                      (EscapedLiteralPart
                                                        token: <Lit_EscapedChar '\\*'>
                                                      )
                                                    } {(DQ ($ VSub_At '$@'))}
                                                  )
                                                ]
                                              )
                                            left_token: <Left_CommandSub '$('>
                                            spids: [5367 5377]
                                          )
                                        }
                                      spids: [5366]
                                    )
                                  ]
                                  spids: [5366]
                                )
                              ]
                            )
                            (C {(Lit_Other ':')} 
                              {
                                (BracedVarSub
                                  token: <VSub_Name CONF_PREFIX>
                                  suffix_op: 
                                    (StringUnary
                                      op_id: VTest_ColonEquals
                                      arg_word: {(${ VSub_Name EPREFIX) (Lit_Slash /) (usr)}
                                    )
                                  spids: [5382 5390]
                                )
                              }
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:CONF_PREFIX)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name CONF_PREFIX>
                                        suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('*=')})
                                        spids: [5394 5398]
                                      )
                                    }
                                  spids: [5393]
                                )
                              ]
                              spids: [5393]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {(${ VSub_Name CONF_PREFIX)}
                                      right: {(/) (Lit_Other '*')}
                                    )
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:CONF_PREFIX)
                                      op: Equal
                                      rhs: {(DQ (/) (${ VSub_Name CONF_PREFIX))}
                                      spids: [5416]
                                    )
                                  ]
                                  spids: [5416]
                                )
                              ]
                            )
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_GlobNEqual
                                      left: {(${ VSub_Name CONF_LIBDIR)}
                                      right: {(/) (Lit_Other '*')}
                                    )
                                )
                                (Assignment
                                  keyword: Assign_None
                                  pairs: [
                                    (assign_pair
                                      lhs: (LhsName name:CONF_LIBDIR)
                                      op: Equal
                                      rhs: {(DQ (/) (${ VSub_Name CONF_LIBDIR))}
                                      spids: [5440]
                                    )
                                  ]
                                  spids: [5440]
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:conf_args)
                                  op: PlusEqual
                                  rhs: 
                                    {
                                      (ArrayLiteralPart
                                        words: [
                                          {(--libdir) (Lit_Other '=') 
                                            (DQ 
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(__strip_duplicate_slashes)} 
                                                        {
                                                          (DQ (${ VSub_Name CONF_PREFIX) 
                                                            (${ VSub_Name CONF_LIBDIR)
                                                          )
                                                        }
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [5456 5467]
                                              )
                                            )
                                          }
                                        ]
                                      )
                                    }
                                  spids: [5449]
                                )
                              ]
                              spids: [5449]
                            )
                          ]
                          spids: [16777215 5335]
                        )
                      ]
                      spids: [16777215 5474]
                    )
                    (C {(eval)} {(DQ ('local -a EXTRA_ECONF=(') (${ VSub_Name EXTRA_ECONF) (')'))})
                    (C {(set)} {(--)} {(--prefix) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/usr)} 
                      {
                        (BracedVarSub
                          token: <VSub_Name CBUILD>
                          suffix_op: 
                            (StringUnary
                              op_id: VTest_ColonPlus
                              arg_word: {('--build=') (${ VSub_Name CBUILD)}
                            )
                          spids: [5511 5518]
                        )
                      } {(--host) (Lit_Other '=') (${ VSub_Name CHOST)} 
                      {
                        (BracedVarSub
                          token: <VSub_Name CTARGET>
                          suffix_op: 
                            (StringUnary
                              op_id: VTest_ColonPlus
                              arg_word: {('--target=') (${ VSub_Name CTARGET)}
                            )
                          spids: [5530 5537]
                        )
                      } {(--mandir) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/usr/share/man)} 
                      {(--infodir) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/usr/share/info)} {(--datadir) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/usr/share)} 
                      {(--sysconfdir) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/etc)} {(--localstatedir) (Lit_Other '=') (DQ (${ VSub_Name EPREFIX)) (/var/lib)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name conf_args>
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [5597 5602]
                          )
                        )
                      } {(DQ ($ VSub_At '$@'))} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name EXTRA_ECONF>
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [5614 5619]
                          )
                        )
                      }
                    )
                    (C {(__vecho)} {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                      {(DQ ($ VSub_At '$@'))}
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                                      {(DQ ($ VSub_At '$@'))}
                                    )
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (C {(Lit_Other '[')} {(-s)} {(config.log)} {(Lit_Other ']')})
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(echo)})
                                    (C {(echo)} 
                                      {
                                        (DQ 
                                          (
'!!! Please attach the following file when seeking support:'
                                          )
                                        )
                                      }
                                    )
                                    (C {(echo)} {(DQ ('!!! ') (${ VSub_Name PWD) (/config.log))})
                                  ]
                                  spids: [16777215 5670]
                                )
                              ]
                              spids: [16777215 5694]
                            )
                            (C {(__helpers_die)} {(DQ ('econf failed'))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 5655]
                        )
                      ]
                      spids: [16777215 5709]
                    )
                  ]
                  spids: [16777215 4671]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} {(DQ (${ VSub_Name ECONF_SOURCE) (/configure))} 
                          {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(die)} {(DQ ('configure is not executable'))})]
                  spids: [5712 5728]
                )
              ]
              else_action: [(C {(die)} {(DQ ('no configure script found'))})]
              spids: [5738 5748]
            )
          ]
          spids: [4412]
        )
      spids: [4408 4411]
    )
    (FuncDef
      name: einstall
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (Pipeline children:[(C {(___eapi_has_einstall)})] negated:T)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(die)} 
                      {
                        (DQ ("'") (${ VSub_Name FUNCNAME) ("' has been banned for EAPI '") 
                          ($ VSub_Name '$EAPI') ("'")
                        )
                      }
                    )
                    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
                  ]
                  spids: [16777215 5767]
                )
              ]
              spids: [16777215 5788]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LOCAL_EXTRA_EINSTALL)
                  op: Equal
                  rhs: {(DQ (${ VSub_Name EXTRA_EINSTALL))}
                  spids: [5798]
                )
              ]
              spids: [5796]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (Pipeline children:[(C {(___eapi_has_prefix_variables)})] negated:T)
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:ED)
                          op: Equal
                          rhs: {(${ VSub_Name D)}
                          spids: [5818]
                        )
                      ]
                      spids: [5816]
                    )
                  ]
                  spids: [16777215 5813]
                )
              ]
              spids: [16777215 5824]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:LIBDIR_VAR)
                  op: Equal
                  rhs: {(DQ (LIBDIR_) (${ VSub_Name ABI))}
                  spids: [5827]
                )
              ]
              spids: [5827]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name ABI))} {(-a)} {(-n)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name LIBDIR_VAR>
                                prefix_op: VSub_Bang
                                spids: [5853 5856]
                              )
                            )
                          } {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:CONF_LIBDIR)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (BracedVarSub
                                  token: <VSub_Name LIBDIR_VAR>
                                  prefix_op: VSub_Bang
                                  spids: [5867 5870]
                                )
                              )
                            }
                          spids: [5865]
                        )
                      ]
                      spids: [5865]
                    )
                  ]
                  spids: [16777215 5862]
                )
              ]
              spids: [16777215 5874]
            )
            (C {(unset)} {(LIBDIR_VAR)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DAmp]
                          children: [
                            (C {(Lit_Other '[')} {(-n)} {(DQ (${ VSub_Name CONF_LIBDIR))} 
                              {(Lit_Other ']')}
                            )
                            (C {(Lit_Other '[')} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name CONF_PREFIX>
                                    suffix_op: (StringUnary op_id:VTest_ColonPlus arg_word:{(set)})
                                    spids: [5901 5905]
                                  )
                                )
                              } {(Lit_Other '=')} {(set)} {(Lit_Other ']')}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:EI_DESTLIBDIR)
                          op: Equal
                          rhs: 
                            {
                              (DQ (${ VSub_Name D) (/) (${ VSub_Name CONF_PREFIX) (/) 
                                (${ VSub_Name CONF_LIBDIR)
                              )
                            }
                          spids: [5918]
                        )
                      ]
                      spids: [5918]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:EI_DESTLIBDIR)
                          op: Equal
                          rhs: 
                            {
                              (DQ 
                                (CommandSubPart
                                  command_list: 
                                    (CommandList
                                      children: [
                                        (C {(__strip_duplicate_slashes)} 
                                          {(DQ (${ VSub_Name EI_DESTLIBDIR))}
                                        )
                                      ]
                                    )
                                  left_token: <Left_CommandSub '$('>
                                  spids: [5936 5944]
                                )
                              )
                            }
                          spids: [5934]
                        )
                      ]
                      spids: [5934]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LOCAL_EXTRA_EINSTALL)
                          op: Equal
                          rhs: 
                            {
                              (DQ ('libdir=') (${ VSub_Name EI_DESTLIBDIR) (' ') 
                                (${ VSub_Name LOCAL_EXTRA_EINSTALL)
                              )
                            }
                          spids: [5948]
                        )
                      ]
                      spids: [5948]
                    )
                    (C {(unset)} {(EI_DESTLIBDIR)})
                  ]
                  spids: [16777215 5915]
                )
              ]
              spids: [16777215 5966]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(-f)} 
                          {(./) (Lit_Other '[') (mM) (Lit_Other ']') (akefile)} {(-o)} {(-f)} {(./GNUmakefile)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (C {(Lit_Other '[')} {(DQ (${ VSub_Name PORTAGE_DEBUG))} 
                                  {(Lit_Other '=') (Lit_Other '=')} {(DQ (1))} {(Lit_Other ']')}
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C 
                              {
                                (BracedVarSub
                                  token: <VSub_Name MAKE>
                                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(make)})
                                  spids: [6018 6022]
                                )
                              } {(-n)} {(Lit_VarLike 'prefix=') (DQ (${ VSub_Name ED) (usr))} 
                              {(Lit_VarLike 'datadir=') (DQ (${ VSub_Name ED) (usr/share))} {(Lit_VarLike 'infodir=') (DQ (${ VSub_Name ED) (usr/share/info))} 
                              {(Lit_VarLike 'localstatedir=') (DQ (${ VSub_Name ED) (var/lib))} {(Lit_VarLike 'mandir=') (DQ (${ VSub_Name ED) (usr/share/man))} 
                              {(Lit_VarLike 'sysconfdir=') (DQ (${ VSub_Name ED) (etc))} {(${ VSub_Name LOCAL_EXTRA_EINSTALL)} {(${ VSub_Name MAKEOPTS)} {(-j1)} {(DQ ($ VSub_At '$@'))} 
                              {(${ VSub_Name EXTRA_EMAKE)} {(install)}
                            )
                          ]
                          spids: [16777215 6015]
                        )
                      ]
                      spids: [16777215 6111]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Pipeline
                              children: [
                                (C 
                                  {
                                    (BracedVarSub
                                      token: <VSub_Name MAKE>
                                      suffix_op: 
                                        (StringUnary
                                          op_id: VTest_ColonHyphen
                                          arg_word: {(make)}
                                        )
                                      spids: [6118 6122]
                                    )
                                  } {(Lit_VarLike 'prefix=') (DQ (${ VSub_Name ED) (usr))} 
                                  {(Lit_VarLike 'datadir=') (DQ (${ VSub_Name ED) (usr/share))} {(Lit_VarLike 'infodir=') (DQ (${ VSub_Name ED) (usr/share/info))} 
                                  {(Lit_VarLike 'localstatedir=') (DQ (${ VSub_Name ED) (var/lib))} {(Lit_VarLike 'mandir=') (DQ (${ VSub_Name ED) (usr/share/man))} 
                                  {(Lit_VarLike 'sysconfdir=') (DQ (${ VSub_Name ED) (etc))} {(${ VSub_Name LOCAL_EXTRA_EINSTALL)} {(${ VSub_Name MAKEOPTS)} {(-j1)} {(DQ ($ VSub_At '$@'))} 
                                  {(${ VSub_Name EXTRA_EMAKE)} {(install)}
                                )
                              ]
                              negated: T
                            )
                          ]
                          action: [
                            (C {(__helpers_die)} {(DQ ('einstall failed'))})
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(1)}
                            )
                          ]
                          spids: [16777215 6209]
                        )
                      ]
                      spids: [16777215 6224]
                    )
                  ]
                  spids: [16777215 5992]
                )
              ]
              else_action: [(C {(die)} {(DQ ('no Makefile found'))})]
              spids: [6227 6237]
            )
          ]
          spids: [5757]
        )
      spids: [5753 5756]
    )
    (FuncDef
      name: __eapi0_pkg_nofetch
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket expr:(BoolUnary op_id:BoolUnary_z child:{(${ VSub_Name A)}))
                (ControlFlow token:<ControlFlow_Return return>)
              ]
            )
            (C {(elog)} {(DQ ('The following files cannot be fetched for ') (${ VSub_Name PN) (':'))})
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:x) op:Equal spids:[6278])]
              spids: [6276]
            )
            (ForEach
              iter_name: x
              iter_words: [{(${ VSub_Name A)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [(C {(elog)} {(DQ ('   ') (${ VSub_Name x))})]
                  spids: [6292 6305]
                )
              spids: [6286 6290]
            )
          ]
          spids: [6246]
        )
      spids: [6242 6245]
    )
    (FuncDef
      name: __eapi0_src_unpack
      body: 
        (BraceGroup
          children: [
            (AndOr
              ops: [Op_DAmp]
              children: [
                (DBracket expr:(BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name A)}))
                (C {(unpack)} {(${ VSub_Name A)})
              ]
            )
          ]
          spids: [6314]
        )
      spids: [6310 6313]
    )
    (FuncDef
      name: __eapi0_src_compile
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-x)} {(./configure)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(econf)})]
                  spids: [16777215 6357]
                )
              ]
              spids: [16777215 6363]
            )
            (C {(__eapi2_src_compile)})
          ]
          spids: [6342]
        )
      spids: [6338 6341]
    )
    (FuncDef
      name: __eapi0_src_test
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:emake_cmd)
                  op: Equal
                  rhs: 
                    {
                      (DQ 
                        (BracedVarSub
                          token: <VSub_Name MAKE>
                          suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(make)})
                          spids: [6402 6406]
                        ) (' ') (${ VSub_Name MAKEOPTS) (' ') (${ VSub_Name EXTRA_EMAKE)
                      )
                    }
                  spids: [6400]
                )
              ]
              spids: [6398]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:internal_opts)
                  op: Equal
                  rhs: {(EmptyPart)}
                  spids: [6420]
                )
              ]
              spids: [6418]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(___eapi_default_src_test_disables_parallel_jobs)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:internal_opts)
                          op: PlusEqual
                          rhs: {(DQ (' -j1'))}
                          spids: [6431]
                        )
                      ]
                      spids: [6431]
                    )
                  ]
                  spids: [16777215 6428]
                )
              ]
              spids: [16777215 6437]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [
                            {($ VSub_Name '$emake_cmd')}
                            {(${ VSub_Name internal_opts)}
                            {(check)}
                            {(-n)}
                          ]
                          redirects: [
                            (Redir
                              op: <Redir_AndGreat '&>'>
                              fd: 16777215
                              arg_word: {(/dev/null)}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(__vecho)}
                        {(DQ (${ VSub_Name emake_cmd) (' ') (${ VSub_Name internal_opts) (' check'))}
                      ]
                      redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {($ VSub_Name '$emake_cmd')} {(${ VSub_Name internal_opts)} {(check)})
                        (C {(die)} {(DQ ('Make check failed. See above for details.'))})
                      ]
                    )
                  ]
                  spids: [16777215 6457]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (SimpleCommand
                          words: [
                            {($ VSub_Name '$emake_cmd')}
                            {(${ VSub_Name internal_opts)}
                            {(test)}
                            {(-n)}
                          ]
                          redirects: [
                            (Redir
                              op: <Redir_AndGreat '&>'>
                              fd: 16777215
                              arg_word: {(/dev/null)}
                            )
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (SimpleCommand
                      words: [
                        {(__vecho)}
                        {(DQ (${ VSub_Name emake_cmd) (' ') (${ VSub_Name internal_opts) (' test'))}
                      ]
                      redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                    )
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {($ VSub_Name '$emake_cmd')} {(${ VSub_Name internal_opts)} {(test)})
                        (C {(die)} {(DQ ('Make test failed. See above for details.'))})
                      ]
                    )
                  ]
                  spids: [6496 6513]
                )
              ]
              spids: [16777215 6552]
            )
          ]
          spids: [6375]
        )
      spids: [6371 6374]
    )
    (FuncDef
      name: __eapi1_src_compile
      body: 
        (BraceGroup
          children: [(C {(__eapi2_src_configure)}) (C {(__eapi2_src_compile)})]
          spids: [6561]
        )
      spids: [6557 6560]
    )
    (FuncDef
      name: __eapi2_src_prepare
      body: (BraceGroup children:[(C {(Lit_Other ':')})] spids:[6576])
      spids: [6572 6575]
    )
    (FuncDef
      name: __eapi2_src_configure
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_x
                              child: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name ECONF_SOURCE>
                                    suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(.)})
                                    spids: [6597 6601]
                                  ) (/configure)
                                }
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(econf)})]
                  spids: [16777215 6608]
                )
              ]
              spids: [16777215 6614]
            )
          ]
          spids: [6588]
        )
      spids: [6584 6587]
    )
    (FuncDef
      name: __eapi2_src_compile
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (AndOr
                          ops: [Op_DPipe Op_DPipe]
                          children: [
                            (C {(Lit_Other '[')} {(-f)} {(Makefile)} {(Lit_Other ']')})
                            (C {(Lit_Other '[')} {(-f)} {(GNUmakefile)} {(Lit_Other ']')})
                            (C {(Lit_Other '[')} {(-f)} {(makefile)} {(Lit_Other ']')})
                          ]
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [(C {(emake)}) (C {(die)} {(DQ ('emake failed'))})]
                    )
                  ]
                  spids: [16777215 6657]
                )
              ]
              spids: [16777215 6671]
            )
          ]
          spids: [6623]
        )
      spids: [6619 6622]
    )
    (FuncDef
      name: __eapi4_src_install
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalOr
                              left: (BoolUnary op_id:BoolUnary_f child:{(Makefile)})
                              right: 
                                (LogicalOr
                                  left: (BoolUnary op_id:BoolUnary_f child:{(GNUmakefile)})
                                  right: (BoolUnary op_id:BoolUnary_f child:{(makefile)})
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(emake)} {(Lit_VarLike 'DESTDIR=') (DQ (${ VSub_Name D))} {(install)})]
                  spids: [16777215 6707]
                )
              ]
              spids: [16777215 6722]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (Pipeline
                          children: [
                            (SimpleCommand
                              words: [{(Assign_Declare declare)} {(-p)} {(DOCS)}]
                              redirects: [
                                (Redir
                                  op: <Redir_AndGreat '&>'>
                                  fd: 16777215
                                  arg_word: {(/dev/null)}
                                )
                              ]
                            )
                          ]
                          negated: T
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:d) op:Equal spids:[6746])]
                      spids: [6744]
                    )
                    (ForEach
                      iter_name: d
                      iter_words: [
                        {(README) (Lit_Other '*')}
                        {(ChangeLog)}
                        {(AUTHORS)}
                        {(NEWS)}
                        {(TODO)}
                        {(CHANGES)}
                        {(THANKS)}
                        {(BUGS)}
                        {(FAQ)}
                        {(CREDITS)}
                        {(CHANGELOG)}
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (DBracket
                                  expr: (BoolUnary op_id:BoolUnary_s child:{(DQ (${ VSub_Name d))})
                                )
                                (C {(dodoc)} {(DQ (${ VSub_Name d))})
                              ]
                            )
                          ]
                          spids: [6782 6808]
                        )
                      spids: [6754 6780]
                    )
                  ]
                  spids: [16777215 6741]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [(C {(Assign_Declare declare)} {(-p)} {(DOCS)})]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [6815 6821]
                                  )
                                }
                              right: {(DQ ('declare -a ')) (Lit_Other '*')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(dodoc)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name DOCS>
                            bracket_op: (WholeArray op_id:Lit_At)
                            spids: [6840 6845]
                          )
                        )
                      }
                    )
                  ]
                  spids: [6811 6834]
                )
              ]
              else_action: [(C {(dodoc)} {(${ VSub_Name DOCS)})]
              spids: [6849 6859]
            )
          ]
          spids: [6680]
        )
      spids: [6676 6679]
    )
    (FuncDef
      name: __eapi6_src_prepare
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (SimpleCommand
                                            words: [{(Assign_Declare declare)} {(-p)} {(PATCHES)}]
                                            redirects: [
                                              (Redir
                                                op: <Redir_Great '2>'>
                                                fd: 2
                                                arg_word: {(/dev/null)}
                                              )
                                            ]
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [6875 6884]
                                  )
                                }
                              right: {(DQ ('declare -a')) (Lit_Other '*')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name PATCHES>
                                    bracket_op: (WholeArray op_id:Lit_At)
                                    spids: [6903 6908]
                                  )
                                }
                            )
                        )
                        (C {(eapply)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name PATCHES>
                                bracket_op: (WholeArray op_id:Lit_At)
                                spids: [6917 6922]
                              )
                            )
                          }
                        )
                      ]
                    )
                  ]
                  spids: [16777215 6896]
                )
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name PATCHES)})
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(eapply)} {(${ VSub_Name PATCHES)})]
                  spids: [6926 6939]
                )
              ]
              spids: [16777215 6949]
            )
            (C {(eapply_user)})
          ]
          spids: [6868]
        )
      spids: [6864 6867]
    )
    (FuncDef
      name: __eapi6_src_install
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalOr
                              left: (BoolUnary op_id:BoolUnary_f child:{(Makefile)})
                              right: 
                                (LogicalOr
                                  left: (BoolUnary op_id:BoolUnary_f child:{(GNUmakefile)})
                                  right: (BoolUnary op_id:BoolUnary_f child:{(makefile)})
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(emake)} {(Lit_VarLike 'DESTDIR=') (DQ (${ VSub_Name D))} {(install)})]
                  spids: [16777215 6989]
                )
              ]
              spids: [16777215 7004]
            )
            (C {(einstalldocs)})
          ]
          spids: [6962]
        )
      spids: [6958 6961]
    )
    (FuncDef
      name: has_version
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:atom) op:Equal spids:[7041])
                (assign_pair lhs:(LhsName name:eroot) op:Equal spids:[7043])
                (assign_pair
                  lhs: (LhsName name:host_root)
                  op: Equal
                  rhs: {(false)}
                  spids: [7045]
                )
                (assign_pair
                  lhs: (LhsName name:root)
                  op: Equal
                  rhs: {(${ VSub_Name ROOT)}
                  spids: [7048]
                )
              ]
              spids: [7039]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {($ VSub_Number '$1')}
                              right: {(--host-root)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:host_root)
                          op: Equal
                          rhs: {(true)}
                          spids: [7071]
                        )
                      ]
                      spids: [7071]
                    )
                    (C {(shift)})
                  ]
                  spids: [16777215 7068]
                )
              ]
              spids: [16777215 7078]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:atom)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [7081]
                )
              ]
              spids: [7081]
            )
            (C {(shift)})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
                (C {(die)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name FUNCNAME>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                        spids: [7103 7108]
                      ) (': unused argument(s): ') ($ VSub_Star '$*')
                    )
                  }
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(${ VSub_Name host_root)}) terminator:<Op_Semi ';'>)]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(___eapi_best_version_and_has_version_support_--host-root)})
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [7139 7144]
                                  ) (': option --host-root is not supported with EAPI ') (${ VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          spids: [16777215 7133]
                        )
                      ]
                      spids: [16777215 7152]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:root) op:Equal rhs:{(/)} spids:[7155])]
                      spids: [7155]
                    )
                  ]
                  spids: [16777215 7123]
                )
              ]
              spids: [16777215 7159]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(___eapi_has_prefix_variables)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(${ VSub_Name host_root)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:eroot)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name root>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Percent
                                            arg_word: {(Lit_Slash /)}
                                          )
                                        spids: [7195 7199]
                                      ) (${ VSub_Name PORTAGE_OVERRIDE_EPREFIX) (/)
                                    }
                                  spids: [7194]
                                )
                              ]
                              spids: [7194]
                            )
                          ]
                          spids: [16777215 7191]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:eroot)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name root>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: {(Lit_Slash /)}
                                      )
                                    spids: [7210 7214]
                                  ) (${ VSub_Name EPREFIX) (/)
                                }
                              spids: [7209]
                            )
                          ]
                          spids: [7209]
                        )
                      ]
                      spids: [7206 7221]
                    )
                  ]
                  spids: [16777215 7168]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:eroot)
                      op: Equal
                      rhs: {(${ VSub_Name root)}
                      spids: [7227]
                    )
                  ]
                  spids: [7227]
                )
              ]
              spids: [7224 7233]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: {($ VSub_Name '$PORTAGE_IPC_DAEMON')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(DQ ($ VSub_Name '$PORTAGE_BIN_PATH')) (/ebuild-ipc)} {(has_version)} 
                      {(DQ (${ VSub_Name eroot))} {(DQ (${ VSub_Name atom))}
                    )
                  ]
                  spids: [16777215 7248]
                )
              ]
              else_action: [
                (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-helpers/portageq))} {(has_version)} 
                  {(DQ (${ VSub_Name eroot))} {(DQ (${ VSub_Name atom))}
                )
              ]
              spids: [7271 7296]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:retval)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [7301]
                )
              ]
              spids: [7299]
            )
            (Case
              to_match: {(DQ (${ VSub_Name retval))}
              arms: [
                (case_arm
                  pat_list: [{(0)} {(1)}]
                  action: [
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {(${ VSub_Name retval)}
                    )
                  ]
                  spids: [7316 7319 7329 16777215]
                )
                (case_arm
                  pat_list: [{(2)}]
                  action: [
                    (C {(die)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name FUNCNAME>
                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                            spids: [7339 7344]
                          ) (': invalid atom: ') (${ VSub_Name atom)
                        )
                      }
                    )
                  ]
                  spids: [7332 7333 7352 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [7378 7383]
                                  ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                )
                              }
                            )
                          ]
                          spids: [16777215 7372]
                        )
                      ]
                      else_action: [
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [7397 7402]
                              ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                            )
                          }
                        )
                      ]
                      spids: [7391 7410]
                    )
                  ]
                  spids: [7355 7356 7413 16777215]
                )
              ]
              spids: [7305 7313 7416]
            )
          ]
          spids: [7035]
        )
      spids: [7031 7034]
    )
    (FuncDef
      name: best_version
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair lhs:(LhsName name:atom) op:Equal spids:[7449])
                (assign_pair lhs:(LhsName name:eroot) op:Equal spids:[7451])
                (assign_pair
                  lhs: (LhsName name:host_root)
                  op: Equal
                  rhs: {(false)}
                  spids: [7453]
                )
                (assign_pair
                  lhs: (LhsName name:root)
                  op: Equal
                  rhs: {(${ VSub_Name ROOT)}
                  spids: [7456]
                )
              ]
              spids: [7447]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {($ VSub_Number '$1')}
                              right: {(--host-root)}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:host_root)
                          op: Equal
                          rhs: {(true)}
                          spids: [7479]
                        )
                      ]
                      spids: [7479]
                    )
                    (C {(shift)})
                  ]
                  spids: [16777215 7476]
                )
              ]
              spids: [16777215 7486]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:atom)
                  op: Equal
                  rhs: {($ VSub_Number '$1')}
                  spids: [7489]
                )
              ]
              spids: [7489]
            )
            (C {(shift)})
            (AndOr
              ops: [Op_DAmp]
              children: [
                (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})
                (C {(die)} 
                  {
                    (DQ 
                      (BracedVarSub
                        token: <VSub_Name FUNCNAME>
                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                        spids: [7511 7516]
                      ) (': unused argument(s): ') ($ VSub_Star '$*')
                    )
                  }
                )
              ]
            )
            (If
              arms: [
                (if_arm
                  cond: [(Sentence child:(C {(${ VSub_Name host_root)}) terminator:<Op_Semi ';'>)]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (Pipeline
                                  children: [
                                    (C {(___eapi_best_version_and_has_version_support_--host-root)})
                                  ]
                                  negated: T
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [7547 7552]
                                  ) (': option --host-root is not supported with EAPI ') (${ VSub_Name EAPI)
                                )
                              }
                            )
                          ]
                          spids: [16777215 7541]
                        )
                      ]
                      spids: [16777215 7560]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [(assign_pair lhs:(LhsName name:root) op:Equal rhs:{(/)} spids:[7563])]
                      spids: [7563]
                    )
                  ]
                  spids: [16777215 7531]
                )
              ]
              spids: [16777215 7567]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(___eapi_has_prefix_variables)})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: (C {(${ VSub_Name host_root)})
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:eroot)
                                  op: Equal
                                  rhs: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name root>
                                        suffix_op: 
                                          (StringUnary
                                            op_id: VOp1_Percent
                                            arg_word: {(Lit_Slash /)}
                                          )
                                        spids: [7603 7607]
                                      ) (${ VSub_Name PORTAGE_OVERRIDE_EPREFIX) (/)
                                    }
                                  spids: [7602]
                                )
                              ]
                              spids: [7602]
                            )
                          ]
                          spids: [16777215 7599]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:eroot)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name root>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: {(Lit_Slash /)}
                                      )
                                    spids: [7618 7622]
                                  ) (${ VSub_Name EPREFIX) (/)
                                }
                              spids: [7617]
                            )
                          ]
                          spids: [7617]
                        )
                      ]
                      spids: [7614 7629]
                    )
                  ]
                  spids: [16777215 7576]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:eroot)
                      op: Equal
                      rhs: {(${ VSub_Name root)}
                      spids: [7635]
                    )
                  ]
                  spids: [7635]
                )
              ]
              spids: [7632 7641]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_n
                              child: {($ VSub_Name '$PORTAGE_IPC_DAEMON')}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(DQ ($ VSub_Name '$PORTAGE_BIN_PATH')) (/ebuild-ipc)} {(best_version)} 
                      {(DQ (${ VSub_Name eroot))} {(DQ (${ VSub_Name atom))}
                    )
                  ]
                  spids: [16777215 7656]
                )
              ]
              else_action: [
                (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-helpers/portageq))} {(best_version)} 
                  {(DQ (${ VSub_Name eroot))} {(DQ (${ VSub_Name atom))}
                )
              ]
              spids: [7679 7704]
            )
            (Assignment
              keyword: Assign_Local
              pairs: [
                (assign_pair
                  lhs: (LhsName name:retval)
                  op: Equal
                  rhs: {($ VSub_QMark '$?')}
                  spids: [7709]
                )
              ]
              spids: [7707]
            )
            (Case
              to_match: {(DQ (${ VSub_Name retval))}
              arms: [
                (case_arm
                  pat_list: [{(0)} {(1)}]
                  action: [
                    (ControlFlow
                      token: <ControlFlow_Return return>
                      arg_word: {(${ VSub_Name retval)}
                    )
                  ]
                  spids: [7724 7727 7737 16777215]
                )
                (case_arm
                  pat_list: [{(2)}]
                  action: [
                    (C {(die)} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name FUNCNAME>
                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                            spids: [7747 7752]
                          ) (': invalid atom: ') (${ VSub_Name atom)
                        )
                      }
                    )
                  ]
                  spids: [7740 7741 7760 16777215]
                )
                (case_arm
                  pat_list: [{(Lit_Other '*')}]
                  action: [
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [7786 7791]
                                  ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                )
                              }
                            )
                          ]
                          spids: [16777215 7780]
                        )
                      ]
                      else_action: [
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [7805 7810]
                              ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                            )
                          }
                        )
                      ]
                      spids: [7799 7818]
                    )
                  ]
                  spids: [7763 7764 7821 16777215]
                )
              ]
              spids: [7713 7721 7824]
            )
          ]
          spids: [7443]
        )
      spids: [7439 7442]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_get_libdir)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: get_libdir
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:libdir_var)
                          op: Equal
                          rhs: {(DQ (LIBDIR_) (${ VSub_Name ABI))}
                          spids: [7846]
                        )
                      ]
                      spids: [7844]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:libdir)
                          op: Equal
                          rhs: {(DQ (lib))}
                          spids: [7857]
                        )
                      ]
                      spids: [7855]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name ABI)})
                              right: 
                                (BoolUnary
                                  op_id: BoolUnary_n
                                  child: 
                                    {
                                      (BracedVarSub
                                        token: <VSub_Name libdir_var>
                                        prefix_op: VSub_Bang
                                        spids: [7876 7879]
                                      )
                                    }
                                )
                            )
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:libdir)
                              op: Equal
                              rhs: 
                                {
                                  (BracedVarSub
                                    token: <VSub_Name libdir_var>
                                    prefix_op: VSub_Bang
                                    spids: [7886 7889]
                                  )
                                }
                              spids: [7885]
                            )
                          ]
                          spids: [7885]
                        )
                      ]
                    )
                    (C {(echo)} {(DQ (${ VSub_Name libdir))})
                  ]
                  spids: [7841]
                )
              spids: [7837 7840]
            )
          ]
          spids: [16777215 7834]
        )
      ]
      spids: [16777215 7904]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_einstalldocs)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: einstalldocs
              body: 
                (BraceGroup
                  children: [
                    (Subshell
                      child: 
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (Pipeline
                                      children: [
                                        (SimpleCommand
                                          words: [{(Assign_Declare declare)} {(-p)} {(DOCS)}]
                                          redirects: [
                                            (Redir
                                              op: <Redir_AndGreat '&>'>
                                              fd: 16777215
                                              arg_word: {(/dev/null)}
                                            )
                                          ]
                                        )
                                      ]
                                      negated: T
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (Assignment
                                  keyword: Assign_Local
                                  pairs: [(assign_pair lhs:(LhsName name:d) op:Equal spids:[7945])]
                                  spids: [7943]
                                )
                                (ForEach
                                  iter_name: d
                                  iter_words: [
                                    {(README) (Lit_Other '*')}
                                    {(ChangeLog)}
                                    {(AUTHORS)}
                                    {(NEWS)}
                                    {(TODO)}
                                    {(CHANGES)}
                                    {(THANKS)}
                                    {(BUGS)}
                                    {(FAQ)}
                                    {(CREDITS)}
                                    {(CHANGELOG)}
                                  ]
                                  do_arg_iter: F
                                  body: 
                                    (DoGroup
                                      children: [
                                        (AndOr
                                          ops: [Op_DAmp Op_DAmp]
                                          children: [
                                            (DBracket
                                              expr: 
                                                (LogicalAnd
                                                  left: 
                                                    (BoolUnary
                                                      op_id: BoolUnary_f
                                                      child: {(${ VSub_Name d)}
                                                    )
                                                  right: 
                                                    (BoolUnary
                                                      op_id: BoolUnary_s
                                                      child: {(${ VSub_Name d)}
                                                    )
                                                )
                                            )
                                            (C {(docinto)} {(/)})
                                            (C {(dodoc)} {(DQ (${ VSub_Name d))})
                                          ]
                                        )
                                      ]
                                      spids: [7981 8019]
                                    )
                                  spids: [7953 7979]
                                )
                              ]
                              spids: [16777215 7940]
                            )
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (C {(Assign_Declare declare)} {(-p)} {(DOCS)})
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [8026 8032]
                                              )
                                            }
                                          right: {(DQ ('declare -a')) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (AndOr
                                  ops: [Op_DAmp Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (WordTest
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name DOCS>
                                                bracket_op: (WholeArray op_id:Lit_At)
                                                spids: [8050 8055]
                                              )
                                            }
                                        )
                                    )
                                    (C {(docinto)} {(/)})
                                    (C {(dodoc)} {(-r)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name DOCS>
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            spids: [8072 8077]
                                          )
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                              spids: [8022 8045]
                            )
                          ]
                          else_action: [
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (DBracket
                                  expr: (WordTest w:{(${ VSub_Name DOCS)})
                                )
                                (C {(docinto)} {(/)})
                                (C {(dodoc)} {(-r)} {(${ VSub_Name DOCS)})
                              ]
                            )
                          ]
                          spids: [8081 8109]
                        )
                      spids: [7922 8112]
                    )
                    (Subshell
                      child: 
                        (If
                          arms: [
                            (if_arm
                              cond: [
                                (Sentence
                                  child: 
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_GlobDEqual
                                          left: 
                                            {
                                              (CommandSubPart
                                                command_list: 
                                                  (CommandList
                                                    children: [
                                                      (SimpleCommand
                                                        words: [
                                                          {(Assign_Declare declare)}
                                                          {(-p)}
                                                          {(HTML_DOCS)}
                                                        ]
                                                        redirects: [
                                                          (Redir
                                                            op: <Redir_Great '2>'>
                                                            fd: 2
                                                            arg_word: {(/dev/null)}
                                                          )
                                                        ]
                                                      )
                                                    ]
                                                  )
                                                left_token: <Left_CommandSub '$('>
                                                spids: [8123 8132]
                                              )
                                            }
                                          right: {(DQ ('declare -a')) (Lit_Other '*')}
                                        )
                                    )
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              action: [
                                (AndOr
                                  ops: [Op_DAmp Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (WordTest
                                          w: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name HTML_DOCS>
                                                bracket_op: (WholeArray op_id:Lit_At)
                                                spids: [8150 8155]
                                              )
                                            }
                                        )
                                    )
                                    (C {(docinto)} {(html)})
                                    (C {(dodoc)} {(-r)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name HTML_DOCS>
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            spids: [8174 8179]
                                          )
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                              spids: [16777215 8145]
                            )
                          ]
                          else_action: [
                            (AndOr
                              ops: [Op_DAmp Op_DAmp]
                              children: [
                                (DBracket
                                  expr: (WordTest w:{(${ VSub_Name HTML_DOCS)})
                                )
                                (C {(docinto)} {(html)})
                                (C {(dodoc)} {(-r)} {(${ VSub_Name HTML_DOCS)})
                              ]
                            )
                          ]
                          spids: [8183 8213]
                        )
                      spids: [8116 8216]
                    )
                  ]
                  spids: [7919]
                )
              spids: [7915 7918]
            )
          ]
          spids: [16777215 7912]
        )
      ]
      spids: [16777215 8221]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_eapply)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: eapply
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:failed)
                          op: Equal
                          spids: [8241]
                        )
                        (assign_pair
                          lhs: (LhsName name:patch_cmd)
                          op: Equal
                          rhs: {(patch)}
                          spids: [8243]
                        )
                      ]
                      spids: [8239]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: [-x]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:LC_COLLATE)
                          op: Equal
                          rhs: {(POSIX)}
                          spids: [8251]
                        )
                      ]
                      spids: [8247]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (SimpleCommand
                          words: [{(type)} {(-P)} {(gpatch)}]
                          redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
                        )
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:patch_cmd)
                              op: Equal
                              rhs: {(gpatch)}
                              spids: [8272]
                            )
                          ]
                          spids: [8272]
                        )
                      ]
                    )
                    (FuncDef
                      name: _eapply_patch
                      body: 
                        (BraceGroup
                          children: [
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:f)
                                  op: Equal
                                  rhs: {(${ VSub_Number 1)}
                                  spids: [8286]
                                )
                              ]
                              spids: [8284]
                            )
                            (Assignment
                              keyword: Assign_Local
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:prefix)
                                  op: Equal
                                  rhs: {(${ VSub_Number 2)}
                                  spids: [8294]
                                )
                              ]
                              spids: [8292]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:started_applying)
                                  op: Equal
                                  rhs: {(1)}
                                  spids: [8301]
                                )
                              ]
                              spids: [8301]
                            )
                            (C {(ebegin)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name prefix>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VTest_ColonHyphen
                                        arg_word: {('Applying ')}
                                      )
                                    spids: [8308 8312]
                                  ) 
                                  (BracedVarSub
                                    token: <VSub_Name f>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_DPound
                                        arg_word: {('*') (Lit_Slash /)}
                                      )
                                    spids: [8313 8318]
                                  )
                                )
                              }
                            )
                            (SimpleCommand
                              words: [
                                {(${ VSub_Name patch_cmd)}
                                {(-p1)}
                                {(-f)}
                                {(-s)}
                                {(-g0)}
                                {(--no-backup-if-mismatch)}
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name patch_options>
                                      bracket_op: (WholeArray op_id:Lit_At)
                                      spids: [8359 8364]
                                    )
                                  )
                                }
                              ]
                              redirects: [
                                (Redir
                                  op: <Redir_Less '<'>
                                  fd: 16777215
                                  arg_word: {(DQ (${ VSub_Name f))}
                                )
                              ]
                            )
                            (Assignment
                              keyword: Assign_None
                              pairs: [
                                (assign_pair
                                  lhs: (LhsName name:failed)
                                  op: Equal
                                  rhs: {(${ VSub_QMark '?')}
                                  spids: [8376]
                                )
                              ]
                              spids: [8376]
                            )
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (Pipeline
                                          children: [(C {(eend)} {(DQ (${ VSub_Name failed))})]
                                          negated: T
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(__helpers_die)} 
                                      {
                                        (DQ ('patch -p1 ') 
                                          (BracedVarSub
                                            token: <VSub_Name patch_options>
                                            bracket_op: (WholeArray op_id:Arith_Star)
                                            spids: [8402 8407]
                                          ) (' failed with ') (${ VSub_Name f)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 8395]
                                )
                              ]
                              spids: [16777215 8415]
                            )
                          ]
                          spids: [8281]
                        )
                      spids: [8277 8280]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:patch_options)
                          op: Equal
                          rhs: {(ArrayLiteralPart)}
                          spids: [8424]
                        )
                        (assign_pair
                          lhs: (LhsName name:files)
                          op: Equal
                          rhs: {(ArrayLiteralPart)}
                          spids: [8428]
                        )
                      ]
                      spids: [8422]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:i)
                          op: Equal
                          spids: [8435]
                        )
                        (assign_pair
                          lhs: (LhsName name:found_doublehyphen)
                          op: Equal
                          spids: [8437]
                        )
                      ]
                      spids: [8433]
                    )
                    (ForExpr
                      init: 
                        (BinaryAssign
                          op_id: Arith_Equal
                          left: (LhsName name:i)
                          right: (ArithWord w:{(Lit_Digits 1)})
                        )
                      cond: 
                        (ArithBinary
                          op_id: Arith_LessEqual
                          left: (ArithVarRef name:i)
                          right: 
                            (ArithWord
                              w: 
                                {
                                  (BracedVarSub
                                    token: <VSub_At '@'>
                                    prefix_op: VSub_Pound
                                    spids: [8459 8462]
                                  )
                                }
                            )
                        )
                      update: (UnaryAssign op_id:Arith_DPlus child:(LhsName name:i))
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolBinary
                                              op_id: BoolBinary_GlobDEqual
                                              left: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_At '@'>
                                                    suffix_op: 
                                                      (Slice
                                                        begin: (ArithVarRef name:i)
                                                        length: (ArithWord w:{(Lit_Digits 1)})
                                                      )
                                                    spids: [8479 8485]
                                                  )
                                                }
                                              right: {(--)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:patch_options)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (DQ 
                                                      (BracedVarSub
                                                        token: <VSub_At '@'>
                                                        suffix_op: 
                                                          (Slice
                                                            begin: (ArithWord w:{(Lit_Digits 1)})
                                                            length: 
                                                              (ArithBinary
                                                                op_id: Arith_Minus
                                                                left: (ArithVarRef name:i)
                                                                right: (ArithWord w:{(Lit_Digits 1)})
                                                              )
                                                          )
                                                        spids: [8501 8509]
                                                      )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [8497]
                                        )
                                      ]
                                      spids: [8497]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:files)
                                          op: Equal
                                          rhs: 
                                            {
                                              (ArrayLiteralPart
                                                words: [
                                                  {
                                                    (DQ 
                                                      (BracedVarSub
                                                        token: <VSub_At '@'>
                                                        suffix_op: 
                                                          (Slice
                                                            begin: 
                                                              (ArithBinary
                                                                op_id: Arith_Plus
                                                                left: (ArithVarRef name:i)
                                                                right: (ArithWord w:{(Lit_Digits 1)})
                                                              )
                                                          )
                                                        spids: [8519 8525]
                                                      )
                                                    )
                                                  }
                                                ]
                                              )
                                            }
                                          spids: [8515]
                                        )
                                      ]
                                      spids: [8515]
                                    )
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:found_doublehyphen)
                                          op: Equal
                                          rhs: {(1)}
                                          spids: [8531]
                                        )
                                      ]
                                      spids: [8531]
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [16777215 8494]
                                )
                              ]
                              spids: [16777215 8538]
                            )
                          ]
                          spids: [8472 8541]
                        )
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_z
                                      child: {(${ VSub_Name found_doublehyphen)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (ForExpr
                              init: 
                                (BinaryAssign
                                  op_id: Arith_Equal
                                  left: (LhsName name:i)
                                  right: (ArithWord w:{(Lit_Digits 1)})
                                )
                              cond: 
                                (ArithBinary
                                  op_id: Arith_LessEqual
                                  left: (ArithVarRef name:i)
                                  right: 
                                    (ArithWord
                                      w: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_At '@'>
                                            prefix_op: VSub_Pound
                                            spids: [8580 8583]
                                          )
                                        }
                                    )
                                )
                              update: (UnaryAssign op_id:Arith_DPlus child:(LhsName name:i))
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobNEqual
                                                      left: 
                                                        {
                                                          (BracedVarSub
                                                            token: <VSub_At '@'>
                                                            suffix_op: 
                                                              (Slice
                                                                begin: (ArithVarRef name:i)
                                                                length: (ArithWord w:{(Lit_Digits 1)})
                                                              )
                                                            spids: [8600 8606]
                                                          )
                                                        }
                                                      right: {(-) (Lit_Other '*')}
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:patch_options)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [
                                                          {
                                                            (DQ 
                                                              (BracedVarSub
                                                                token: <VSub_At '@'>
                                                                suffix_op: 
                                                                  (Slice
                                                                    begin: 
                                                                      (ArithWord
                                                                        w: {(Lit_Digits 1)}
                                                                      )
                                                                    length: 
                                                                      (ArithBinary
                                                                        op_id: Arith_Minus
                                                                        left: (ArithVarRef name:i)
                                                                        right: 
                                                                          (ArithWord
                                                                            w: {(Lit_Digits 1)}
                                                                          )
                                                                      )
                                                                  )
                                                                spids: [8623 8631]
                                                              )
                                                            )
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [8619]
                                                )
                                              ]
                                              spids: [8619]
                                            )
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:files)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (ArrayLiteralPart
                                                        words: [
                                                          {
                                                            (DQ 
                                                              (BracedVarSub
                                                                token: <VSub_At '@'>
                                                                suffix_op: 
                                                                  (Slice
                                                                    begin: (ArithVarRef name:i)
                                                                  )
                                                                spids: [8641 8645]
                                                              )
                                                            )
                                                          }
                                                        ]
                                                      )
                                                    }
                                                  spids: [8637]
                                                )
                                              ]
                                              spids: [8637]
                                            )
                                            (ControlFlow
                                              token: <ControlFlow_Break break>
                                            )
                                          ]
                                          spids: [16777215 8616]
                                        )
                                      ]
                                      spids: [16777215 8654]
                                    )
                                  ]
                                  spids: [8593 8657]
                                )
                            )
                            (ForEach
                              iter_name: i
                              iter_words: [
                                {
                                  (DQ 
                                    (BracedVarSub
                                      token: <VSub_Name files>
                                      bracket_op: (WholeArray op_id:Lit_At)
                                      spids: [8672 8677]
                                    )
                                  )
                                }
                              ]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_GlobDEqual
                                                      left: {(${ VSub_Name i)}
                                                      right: {(-) (Lit_Other '*')}
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(die)} 
                                              {
                                                (DQ 
                                                  (
'eapply: all options must be passed before non-options'
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                          spids: [16777215 8700]
                                        )
                                      ]
                                      spids: [16777215 8710]
                                    )
                                  ]
                                  spids: [8681 8713]
                                )
                              spids: [8670 8679]
                            )
                          ]
                          spids: [16777215 8562]
                        )
                      ]
                      spids: [16777215 8716]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_z
                                      child: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name files>
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            spids: [8726 8731]
                                          )
                                        }
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [(C {(die)} {(DQ ('eapply: no files specified'))})]
                          spids: [16777215 8736]
                        )
                      ]
                      spids: [16777215 8746]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [(assign_pair lhs:(LhsName name:f) op:Equal spids:[8752])]
                      spids: [8750]
                    )
                    (ForEach
                      iter_name: f
                      iter_words: [
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name files>
                              bracket_op: (WholeArray op_id:Lit_At)
                              spids: [8762 8767]
                            )
                          )
                        }
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: (BoolUnary op_id:BoolUnary_d child:{(${ VSub_Name f)})
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (FuncDef
                                      name: _eapply_get_files
                                      body: 
                                        (BraceGroup
                                          children: [
                                            (Assignment
                                              keyword: Assign_Local
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:LC_ALL)
                                                  op: Equal
                                                  rhs: {(POSIX)}
                                                  spids: [8799]
                                                )
                                              ]
                                              spids: [8797]
                                            )
                                            (Assignment
                                              keyword: Assign_Local
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:prev_shopt)
                                                  op: Equal
                                                  rhs: 
                                                    {
                                                      (CommandSubPart
                                                        command_list: 
                                                          (CommandList
                                                            children: [
                                                              (C {(shopt)} {(-p)} {(nullglob)})
                                                            ]
                                                          )
                                                        left_token: <Left_CommandSub '$('>
                                                        spids: [8806 8812]
                                                      )
                                                    }
                                                  spids: [8805]
                                                )
                                              ]
                                              spids: [8803]
                                            )
                                            (C {(shopt)} {(-s)} {(nullglob)})
                                            (Assignment
                                              keyword: Assign_Local
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:f)
                                                  op: Equal
                                                  spids: [8824]
                                                )
                                              ]
                                              spids: [8822]
                                            )
                                            (ForEach
                                              iter_name: f
                                              iter_words: [
                                                {(DQ (${ VSub_Number 1)) (/) (Lit_Other '*')}
                                              ]
                                              do_arg_iter: F
                                              body: 
                                                (DoGroup
                                                  children: [
                                                    (If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (Sentence
                                                              child: 
                                                                (DBracket
                                                                  expr: 
                                                                    (LogicalOr
                                                                      left: 
                                                                        (BoolBinary
                                                                          op_id: 
BoolBinary_GlobDEqual
                                                                          left: {(${ VSub_Name f)}
                                                                          right: 
                                                                            {(Lit_Other '*') (.diff)}
                                                                        )
                                                                      right: 
                                                                        (BoolBinary
                                                                          op_id: 
BoolBinary_GlobDEqual
                                                                          left: {(${ VSub_Name f)}
                                                                          right: 
                                                                            {(Lit_Other '*') 
                                                                              (.patch)
                                                                            }
                                                                        )
                                                                    )
                                                                )
                                                              terminator: <Op_Semi ';'>
                                                            )
                                                          ]
                                                          action: [
                                                            (Assignment
                                                              keyword: Assign_None
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (LhsName name:files)
                                                                  op: PlusEqual
                                                                  rhs: 
                                                                    {
                                                                      (ArrayLiteralPart
                                                                        words: [{(DQ (${ VSub_Name f))}]
                                                                      )
                                                                    }
                                                                  spids: [8875]
                                                                )
                                                              ]
                                                              spids: [8875]
                                                            )
                                                          ]
                                                          spids: [16777215 8872]
                                                        )
                                                      ]
                                                      spids: [16777215 8887]
                                                    )
                                                  ]
                                                  spids: [8842 8890]
                                                )
                                              spids: [8832 8840]
                                            )
                                            (C {(${ VSub_Name prev_shopt)})
                                          ]
                                          spids: [8794]
                                        )
                                      spids: [8790 8793]
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:files)
                                          op: Equal
                                          rhs: {(ArrayLiteralPart)}
                                          spids: [8904]
                                        )
                                      ]
                                      spids: [8902]
                                    )
                                    (C {(_eapply_get_files)} {(DQ (${ VSub_Name f))})
                                    (AndOr
                                      ops: [Op_DAmp]
                                      children: [
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_z
                                              child: 
                                                {
                                                  (BracedVarSub
                                                    token: <VSub_Name files>
                                                    bracket_op: (WholeArray op_id:Lit_At)
                                                    spids: [8922 8927]
                                                  )
                                                }
                                            )
                                        )
                                        (C {(die)} 
                                          {
                                            (DQ ('No *.{patch,diff} files in directory ') 
                                              (${ VSub_Name f)
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (C {(einfo)} 
                                      {(DQ ('Applying patches from ') (${ VSub_Name f) (' ...'))}
                                    )
                                    (Assignment
                                      keyword: Assign_Local
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:f2)
                                          op: Equal
                                          spids: [8957]
                                        )
                                      ]
                                      spids: [8955]
                                    )
                                    (ForEach
                                      iter_name: f2
                                      iter_words: [
                                        {
                                          (DQ 
                                            (BracedVarSub
                                              token: <VSub_Name files>
                                              bracket_op: (WholeArray op_id:Lit_At)
                                              spids: [8967 8972]
                                            )
                                          )
                                        }
                                      ]
                                      do_arg_iter: F
                                      body: 
                                        (DoGroup
                                          children: [
                                            (C {(_eapply_patch)} {(DQ (${ VSub_Name f2))} {(SQ <'  '>)})
                                            (AndOr
                                              ops: [Op_DAmp]
                                              children: [
                                                (DBracket
                                                  expr: 
                                                    (BoolBinary
                                                      op_id: BoolBinary_ne
                                                      left: {(${ VSub_Name failed)}
                                                      right: {(0)}
                                                    )
                                                )
                                                (ControlFlow
                                                  token: <ControlFlow_Return return>
                                                  arg_word: {(DQ (${ VSub_Name failed))}
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [8976 9020]
                                        )
                                      spids: [8965 8974]
                                    )
                                  ]
                                  spids: [16777215 8787]
                                )
                              ]
                              else_action: [
                                (C {(_eapply_patch)} {(DQ (${ VSub_Name f))})
                                (AndOr
                                  ops: [Op_DAmp]
                                  children: [
                                    (DBracket
                                      expr: 
                                        (BoolBinary
                                          op_id: BoolBinary_ne
                                          left: {(${ VSub_Name failed)}
                                          right: {(0)}
                                        )
                                    )
                                    (ControlFlow
                                      token: <ControlFlow_Return return>
                                      arg_word: {(DQ (${ VSub_Name failed))}
                                    )
                                  ]
                                )
                              ]
                              spids: [9023 9063]
                            )
                          ]
                          spids: [8771 9066]
                        )
                      spids: [8760 8769]
                    )
                    (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})
                  ]
                  spids: [8236]
                )
              spids: [8232 8235]
            )
          ]
          spids: [16777215 8229]
        )
      ]
      spids: [16777215 9077]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_eapply_user)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: eapply_user
              body: 
                (BraceGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (DBracket
                          expr: 
                            (BoolBinary
                              op_id: BoolBinary_GlobDEqual
                              left: {(${ VSub_Name EBUILD_PHASE)}
                              right: {(prepare)}
                            )
                        )
                        (C {(die)} 
                          {
                            (DQ ('eapply_user() called during invalid phase: ') 
                              (${ VSub_Name EBUILD_PHASE)
                            )
                          }
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:tagfile)
                          op: Equal
                          rhs: {(${ VSub_Name T) (/.portage_user_patches_applied)}
                          spids: [9127]
                        )
                      ]
                      spids: [9125]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_f child:{(${ VSub_Name tagfile)})
                        )
                        (ControlFlow token:<ControlFlow_Return return>)
                      ]
                    )
                    (SimpleCommand
                      redirects: [
                        (Redir
                          op: <Redir_DGreat '>>'>
                          fd: 16777215
                          arg_word: {(DQ (${ VSub_Name tagfile))}
                        )
                      ]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:basedir)
                          op: Equal
                          rhs: 
                            {
                              (BracedVarSub
                                token: <VSub_Name PORTAGE_CONFIGROOT>
                                suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /)})
                                spids: [9162 9166]
                              ) (/etc/portage/patches)
                            }
                          spids: [9161]
                        )
                      ]
                      spids: [9159]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:applied)
                          op: Equal
                          spids: [9173]
                        )
                        (assign_pair
                          lhs: (LhsName name:d)
                          op: Equal
                          spids: [9175]
                        )
                        (assign_pair
                          lhs: (LhsName name:f)
                          op: Equal
                          spids: [9177]
                        )
                      ]
                      spids: [9171]
                    )
                    (Assignment
                      keyword: Assign_Local
                      flags: [-A]
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:_eapply_user_patches)
                          op: Equal
                          spids: [9184]
                        )
                      ]
                      spids: [9180]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:prev_shopt)
                          op: Equal
                          rhs: 
                            {
                              (CommandSubPart
                                command_list: 
                                  (CommandList
                                    children: [(C {(shopt)} {(-p)} {(nullglob)})]
                                  )
                                left_token: <Left_CommandSub '$('>
                                spids: [9190 9196]
                              )
                            }
                          spids: [9189]
                        )
                      ]
                      spids: [9187]
                    )
                    (C {(shopt)} {(-s)} {(nullglob)})
                    (ForEach
                      iter_name: d
                      iter_words: [
                        (BracedWordTree
                          parts: [
                            (DQ (${ VSub_Name basedir))
                            (/)
                            (${ VSub_Name CATEGORY)
                            (/)
                            (BracedAltPart
                              words: [
                                {(${ VSub_Name P) (-) (${ VSub_Name PR)}
                                {(${ VSub_Name P)}
                                {(${ VSub_Name PN)}
                              ]
                            )
                            (BracedAltPart
                              words: [
                                {(Lit_Other ':') 
                                  (BracedVarSub
                                    token: <VSub_Name SLOT>
                                    suffix_op: 
                                      (StringUnary
                                        op_id: VOp1_Percent
                                        arg_word: {(Lit_Slash /) ('*')}
                                      )
                                    spids: [9294 9299]
                                  )
                                }
                                {}
                              ]
                            )
                          ]
                        )
                      ]
                      do_arg_iter: F
                      body: 
                        (DoGroup
                          children: [
                            (ForEach
                              iter_name: f
                              iter_words: [{(DQ (${ VSub_Name d)) (/) (Lit_Other '*')}]
                              do_arg_iter: F
                              body: 
                                (DoGroup
                                  children: [
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (LogicalAnd
                                                      left: 
                                                        (LogicalOr
                                                          left: 
                                                            (BoolBinary
                                                              op_id: BoolBinary_GlobDEqual
                                                              left: {(${ VSub_Name f)}
                                                              right: {(Lit_Other '*') (.diff)}
                                                            )
                                                          right: 
                                                            (BoolBinary
                                                              op_id: BoolBinary_GlobDEqual
                                                              left: {(${ VSub_Name f)}
                                                              right: {(Lit_Other '*') (.patch)}
                                                            )
                                                        )
                                                      right: 
                                                        (BoolUnary
                                                          op_id: BoolUnary_z
                                                          child: 
                                                            {
                                                              (BracedVarSub
                                                                token: 
                                                                  <VSub_Name _eapply_user_patches>
                                                                bracket_op: 
                                                                  (ArrayIndex
                                                                    expr: 
                                                                      (ArithWord
                                                                        w: 
                                                                          {
                                                                            (BracedVarSub
                                                                              token: <VSub_Name f>
                                                                              suffix_op: 
                                                                                (StringUnary
                                                                                  op_id: VOp1_DPound
                                                                                  arg_word: 
                                                                                    {('*') 
                                                                                      (Lit_Slash /)
                                                                                    }
                                                                                )
                                                                              spids: [9361 9366]
                                                                            )
                                                                          }
                                                                      )
                                                                  )
                                                                spids: [9358 9368]
                                                              )
                                                            }
                                                        )
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C 
                                              {(_eapply_user_patches) (Lit_Other '[') 
                                                (BracedVarSub
                                                  token: <VSub_Name f>
                                                  suffix_op: 
                                                    (StringUnary
                                                      op_id: VOp1_DPound
                                                      arg_word: {('*') (Lit_Slash /)}
                                                    )
                                                  spids: [9378 9383]
                                                ) (Lit_Other ']') (Lit_Other '=') (${ VSub_Name f)
                                              }
                                            )
                                          ]
                                          spids: [16777215 9373]
                                        )
                                      ]
                                      spids: [16777215 9391]
                                    )
                                  ]
                                  spids: [9322 9394]
                                )
                              spids: [9312 9320]
                            )
                          ]
                          spids: [9304 9397]
                        )
                      spids: [9264 9302]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolBinary
                                      op_id: BoolBinary_gt
                                      left: 
                                        {
                                          (BracedVarSub
                                            token: <VSub_Name _eapply_user_patches>
                                            prefix_op: VSub_Pound
                                            bracket_op: (WholeArray op_id:Lit_At)
                                            spids: [9405 9411]
                                          )
                                        }
                                      right: {(0)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (WhileUntil
                              keyword: <KW_While while>
                              cond: [
                                (Sentence
                                  child: (C {(read)} {(-r)} {(-d)} {(SQ )} {(f)})
                                  terminator: <Op_Semi ';'>
                                )
                              ]
                              body: 
                                (DoGroup
                                  children: [
                                    (Assignment
                                      keyword: Assign_None
                                      pairs: [
                                        (assign_pair
                                          lhs: (LhsName name:f)
                                          op: Equal
                                          rhs: 
                                            {
                                              (BracedVarSub
                                                token: <VSub_Name _eapply_user_patches>
                                                bracket_op: 
                                                  (ArrayIndex
                                                    expr: (ArithWord w:{(${ VSub_Name f)})
                                                  )
                                                spids: [9441 9448]
                                              )
                                            }
                                          spids: [9440]
                                        )
                                      ]
                                      spids: [9440]
                                    )
                                    (If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (Sentence
                                              child: 
                                                (DBracket
                                                  expr: 
                                                    (BoolUnary
                                                      op_id: BoolUnary_s
                                                      child: {(${ VSub_Name f)}
                                                    )
                                                )
                                              terminator: <Op_Semi ';'>
                                            )
                                          ]
                                          action: [
                                            (C {(eapply)} {(DQ (${ VSub_Name f))})
                                            (Assignment
                                              keyword: Assign_None
                                              pairs: [
                                                (assign_pair
                                                  lhs: (LhsName name:applied)
                                                  op: Equal
                                                  rhs: {(1)}
                                                  spids: [9476]
                                                )
                                              ]
                                              spids: [9476]
                                            )
                                          ]
                                          spids: [16777215 9464]
                                        )
                                      ]
                                      spids: [16777215 9480]
                                    )
                                  ]
                                  spids: [9437 9483]
                                )
                              redirects: [
                                (Redir
                                  op: <Redir_Less '<'>
                                  fd: 16777215
                                  arg_word: 
                                    {
                                      (CommandSubPart
                                        command_list: 
                                          (CommandList
                                            children: [
                                              (Pipeline
                                                children: [
                                                  (C {(printf)} {(--)} {(SQ <'%s\\0'>)} 
                                                    {
                                                      (DQ 
                                                        (BracedVarSub
                                                          token: <VSub_Name _eapply_user_patches>
                                                          prefix_op: VSub_Bang
                                                          bracket_op: (WholeArray op_id:Lit_At)
                                                          spids: [9497 9503]
                                                        )
                                                      )
                                                    }
                                                  )
                                                  (SimpleCommand
                                                    words: [{(sort)} {(-z)}]
                                                    more_env: [
                                                      (env_pair
                                                        name: LC_ALL
                                                        val: {(C)}
                                                        spids: [9509]
                                                      )
                                                    ]
                                                  )
                                                ]
                                                negated: F
                                              )
                                            ]
                                          )
                                        left_token: <Left_ProcSubIn '<('>
                                        spids: [9487 9515]
                                      )
                                    }
                                )
                              ]
                            )
                          ]
                          spids: [16777215 9420]
                        )
                      ]
                      spids: [16777215 9518]
                    )
                    (C {(${ VSub_Name prev_shopt)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name applied)})
                        )
                        (C {(ewarn)} {(DQ ('User patches applied.'))})
                      ]
                    )
                  ]
                  spids: [9092]
                )
              spids: [9088 9091]
            )
          ]
          spids: [16777215 9085]
        )
      ]
      spids: [16777215 9549]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_in_iuse)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: in_iuse
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:use)
                          op: Equal
                          rhs: {(${ VSub_Number 1)}
                          spids: [9569]
                        )
                      ]
                      spids: [9567]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: (BoolUnary op_id:BoolUnary_z child:{(DQ (${ VSub_Name use))})
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (SimpleCommand
                              words: [{(echo)} {(DQ ('!!! in_iuse() called without a parameter.'))}]
                              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                            )
                            (SimpleCommand
                              words: [{(echo)} {(DQ ('!!! in_iuse <USEFLAG>'))}]
                              redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})]
                            )
                            (C {(die)} {(DQ ('in_iuse() called without a parameter'))})
                          ]
                          spids: [16777215 9591]
                        )
                      ]
                      spids: [16777215 9621]
                    )
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:liuse)
                          op: Equal
                          rhs: {(ArrayLiteralPart words:[{(${ VSub_Name IUSE_EFFECTIVE)}])}
                          spids: [9627]
                        )
                      ]
                      spids: [9625]
                    )
                    (C {(has)} {(DQ (${ VSub_Name use))} 
                      {
                        (DQ 
                          (BracedVarSub
                            token: <VSub_Name liuse>
                            bracket_op: (WholeArray op_id:Lit_At)
                            suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{('[+-]')})
                            spids: [9647 9654]
                          )
                        )
                      }
                    )
                  ]
                  spids: [9564]
                )
              spids: [9560 9563]
            )
          ]
          spids: [16777215 9557]
        )
      ]
      spids: [16777215 9660]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_master_repositories)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: master_repositories
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          spids: [9680]
                        )
                        (assign_pair
                          lhs: (LhsName name:repository)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [9682]
                        )
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          spids: [9685]
                        )
                      ]
                      spids: [9678]
                    )
                    (C {(shift)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_gt left:{($ VSub_Pound '$#')} right:{(0)})
                        )
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [9706 9711]
                              ) (': unused argument(s): ') ($ VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-ipc))} 
                              {(master_repositories)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                            )
                          ]
                          spids: [16777215 9731]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:output)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C 
                                            {
                                              (DQ (${ VSub_Name PORTAGE_BIN_PATH) 
                                                (/ebuild-helpers/portageq)
                                              )
                                            } {(master_repositories)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [9760 9781]
                                  )
                                }
                              spids: [9759]
                            )
                          ]
                          spids: [9759]
                        )
                      ]
                      spids: [9756 9784]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [9787]
                        )
                      ]
                      spids: [9787]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name output)})
                        )
                        (C {(echo)} {(DQ (${ VSub_Name output))})
                      ]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{(0)} {(1)}]
                          action: [
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(${ VSub_Name retval)}
                            )
                          ]
                          spids: [9823 9826 9836 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [9846 9851]
                                  ) (': invalid repository: ') (${ VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [9839 9840 9859 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [9885 9890]
                                          ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 9879]
                                )
                              ]
                              else_action: [
                                (C {(die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [9904 9909]
                                      ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              spids: [9898 9917]
                            )
                          ]
                          spids: [9862 9863 9920 16777215]
                        )
                      ]
                      spids: [9812 9820 9923]
                    )
                  ]
                  spids: [9675]
                )
              spids: [9671 9674]
            )
          ]
          spids: [16777215 9668]
        )
      ]
      spids: [16777215 9928]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_repository_path)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: repository_path
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          spids: [9948]
                        )
                        (assign_pair
                          lhs: (LhsName name:repository)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [9950]
                        )
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          spids: [9953]
                        )
                      ]
                      spids: [9946]
                    )
                    (C {(shift)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_gt left:{($ VSub_Pound '$#')} right:{(0)})
                        )
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [9974 9979]
                              ) (': unused argument(s): ') ($ VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-ipc))} {(repository_path)} 
                              {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                            )
                          ]
                          spids: [16777215 9999]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:output)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C 
                                            {
                                              (DQ (${ VSub_Name PORTAGE_BIN_PATH) 
                                                (/ebuild-helpers/portageq)
                                              )
                                            } {(get_repo_path)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [10028 10049]
                                  )
                                }
                              spids: [10027]
                            )
                          ]
                          spids: [10027]
                        )
                      ]
                      spids: [10024 10052]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [10055]
                        )
                      ]
                      spids: [10055]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name output)})
                        )
                        (C {(echo)} {(DQ (${ VSub_Name output))})
                      ]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{(0)} {(1)}]
                          action: [
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(${ VSub_Name retval)}
                            )
                          ]
                          spids: [10091 10094 10104 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [10114 10119]
                                  ) (': invalid repository: ') (${ VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10107 10108 10127 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [10153 10158]
                                          ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 10147]
                                )
                              ]
                              else_action: [
                                (C {(die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [10172 10177]
                                      ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              spids: [10166 10185]
                            )
                          ]
                          spids: [10130 10131 10188 16777215]
                        )
                      ]
                      spids: [10080 10088 10191]
                    )
                  ]
                  spids: [9943]
                )
              spids: [9939 9942]
            )
          ]
          spids: [16777215 9936]
        )
      ]
      spids: [16777215 10196]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_available_eclasses)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: available_eclasses
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          spids: [10216]
                        )
                        (assign_pair
                          lhs: (LhsName name:repository)
                          op: Equal
                          rhs: {(${ VSub_Name PORTAGE_REPO_NAME)}
                          spids: [10218]
                        )
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          spids: [10223]
                        )
                      ]
                      spids: [10214]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_gt left:{($ VSub_Pound '$#')} right:{(0)})
                        )
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [10241 10246]
                              ) (': unused argument(s): ') ($ VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-ipc))} 
                              {(available_eclasses)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                            )
                          ]
                          spids: [16777215 10266]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:output)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C 
                                            {
                                              (DQ (${ VSub_Name PORTAGE_BIN_PATH) 
                                                (/ebuild-helpers/portageq)
                                              )
                                            } {(available_eclasses)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [10295 10316]
                                  )
                                }
                              spids: [10294]
                            )
                          ]
                          spids: [10294]
                        )
                      ]
                      spids: [10291 10319]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [10322]
                        )
                      ]
                      spids: [10322]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name output)})
                        )
                        (C {(echo)} {(DQ (${ VSub_Name output))})
                      ]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{(0)} {(1)}]
                          action: [
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(${ VSub_Name retval)}
                            )
                          ]
                          spids: [10358 10361 10371 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [10381 10386]
                                  ) (': invalid repository: ') (${ VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10374 10375 10394 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [10420 10425]
                                          ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 10414]
                                )
                              ]
                              else_action: [
                                (C {(die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [10439 10444]
                                      ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              spids: [10433 10452]
                            )
                          ]
                          spids: [10397 10398 10455 16777215]
                        )
                      ]
                      spids: [10347 10355 10458]
                    )
                  ]
                  spids: [10211]
                )
              spids: [10207 10210]
            )
          ]
          spids: [16777215 10204]
        )
      ]
      spids: [16777215 10463]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_eclass_path)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: eclass_path
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:eclass)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [10483]
                        )
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          spids: [10486]
                        )
                        (assign_pair
                          lhs: (LhsName name:repository)
                          op: Equal
                          rhs: {(${ VSub_Name PORTAGE_REPO_NAME)}
                          spids: [10488]
                        )
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          spids: [10493]
                        )
                      ]
                      spids: [10481]
                    )
                    (C {(shift)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_gt left:{($ VSub_Pound '$#')} right:{(0)})
                        )
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [10514 10519]
                              ) (': unused argument(s): ') ($ VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-ipc))} {(eclass_path)} 
                              {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))} {(DQ (${ VSub_Name eclass))}
                            )
                          ]
                          spids: [16777215 10539]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:output)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C 
                                            {
                                              (DQ (${ VSub_Name PORTAGE_BIN_PATH) 
                                                (/ebuild-helpers/portageq)
                                              )
                                            } {(eclass_path)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))} {(DQ (${ VSub_Name eclass))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [10574 10601]
                                  )
                                }
                              spids: [10573]
                            )
                          ]
                          spids: [10573]
                        )
                      ]
                      spids: [10570 10604]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [10607]
                        )
                      ]
                      spids: [10607]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name output)})
                        )
                        (C {(echo)} {(DQ (${ VSub_Name output))})
                      ]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{(0)} {(1)}]
                          action: [
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(${ VSub_Name retval)}
                            )
                          ]
                          spids: [10643 10646 10656 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [10666 10671]
                                  ) (': invalid repository: ') (${ VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10659 10660 10679 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [10705 10710]
                                          ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 10699]
                                )
                              ]
                              else_action: [
                                (C {(die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [10724 10729]
                                      ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              spids: [10718 10737]
                            )
                          ]
                          spids: [10682 10683 10740 16777215]
                        )
                      ]
                      spids: [10632 10640 10743]
                    )
                  ]
                  spids: [10478]
                )
              spids: [10474 10477]
            )
          ]
          spids: [16777215 10471]
        )
      ]
      spids: [16777215 10748]
    )
    (If
      arms: [
        (if_arm
          cond: [(Sentence child:(C {(___eapi_has_license_path)}) terminator:<Op_Semi ';'>)]
          action: [
            (FuncDef
              name: license_path
              body: 
                (BraceGroup
                  children: [
                    (Assignment
                      keyword: Assign_Local
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:license)
                          op: Equal
                          rhs: {($ VSub_Number '$1')}
                          spids: [10768]
                        )
                        (assign_pair
                          lhs: (LhsName name:output)
                          op: Equal
                          spids: [10771]
                        )
                        (assign_pair
                          lhs: (LhsName name:repository)
                          op: Equal
                          rhs: {(${ VSub_Name PORTAGE_REPO_NAME)}
                          spids: [10773]
                        )
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          spids: [10778]
                        )
                      ]
                      spids: [10766]
                    )
                    (C {(shift)})
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolBinary op_id:BoolBinary_gt left:{($ VSub_Pound '$#')} right:{(0)})
                        )
                        (C {(die)} 
                          {
                            (DQ 
                              (BracedVarSub
                                token: <VSub_Name FUNCNAME>
                                bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                spids: [10799 10804]
                              ) (': unused argument(s): ') ($ VSub_Star '$*')
                            )
                          }
                        )
                      ]
                    )
                    (If
                      arms: [
                        (if_arm
                          cond: [
                            (Sentence
                              child: 
                                (DBracket
                                  expr: 
                                    (BoolUnary
                                      op_id: BoolUnary_n
                                      child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                    )
                                )
                              terminator: <Op_Semi ';'>
                            )
                          ]
                          action: [
                            (C {(DQ (${ VSub_Name PORTAGE_BIN_PATH) (/ebuild-ipc))} {(license_path)} 
                              {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))} {(DQ (${ VSub_Name license))}
                            )
                          ]
                          spids: [16777215 10824]
                        )
                      ]
                      else_action: [
                        (Assignment
                          keyword: Assign_None
                          pairs: [
                            (assign_pair
                              lhs: (LhsName name:output)
                              op: Equal
                              rhs: 
                                {
                                  (CommandSubPart
                                    command_list: 
                                      (CommandList
                                        children: [
                                          (C 
                                            {
                                              (DQ (${ VSub_Name PORTAGE_BIN_PATH) 
                                                (/ebuild-helpers/portageq)
                                              )
                                            } {(license_path)} {(DQ (${ VSub_Name EROOT))} {(DQ (${ VSub_Name repository))} 
                                            {(DQ (${ VSub_Name license))}
                                          )
                                        ]
                                      )
                                    left_token: <Left_CommandSub '$('>
                                    spids: [10859 10886]
                                  )
                                }
                              spids: [10858]
                            )
                          ]
                          spids: [10858]
                        )
                      ]
                      spids: [10855 10889]
                    )
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:retval)
                          op: Equal
                          rhs: {($ VSub_QMark '$?')}
                          spids: [10892]
                        )
                      ]
                      spids: [10892]
                    )
                    (AndOr
                      ops: [Op_DAmp]
                      children: [
                        (DBracket
                          expr: (BoolUnary op_id:BoolUnary_n child:{(${ VSub_Name output)})
                        )
                        (C {(echo)} {(DQ (${ VSub_Name output))})
                      ]
                    )
                    (Case
                      to_match: {(DQ (${ VSub_Name retval))}
                      arms: [
                        (case_arm
                          pat_list: [{(0)} {(1)}]
                          action: [
                            (ControlFlow
                              token: <ControlFlow_Return return>
                              arg_word: {(${ VSub_Name retval)}
                            )
                          ]
                          spids: [10928 10931 10941 16777215]
                        )
                        (case_arm
                          pat_list: [{(2)}]
                          action: [
                            (C {(die)} 
                              {
                                (DQ 
                                  (BracedVarSub
                                    token: <VSub_Name FUNCNAME>
                                    bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                    spids: [10951 10956]
                                  ) (': invalid repository: ') (${ VSub_Name repository)
                                )
                              }
                            )
                          ]
                          spids: [10944 10945 10964 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*')}]
                          action: [
                            (If
                              arms: [
                                (if_arm
                                  cond: [
                                    (Sentence
                                      child: 
                                        (DBracket
                                          expr: 
                                            (BoolUnary
                                              op_id: BoolUnary_n
                                              child: {(${ VSub_Name PORTAGE_IPC_DAEMON)}
                                            )
                                        )
                                      terminator: <Op_Semi ';'>
                                    )
                                  ]
                                  action: [
                                    (C {(die)} 
                                      {
                                        (DQ 
                                          (BracedVarSub
                                            token: <VSub_Name FUNCNAME>
                                            bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                            spids: [10990 10995]
                                          ) (': unexpected ebuild-ipc exit code: ') (${ VSub_Name retval)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [16777215 10984]
                                )
                              ]
                              else_action: [
                                (C {(die)} 
                                  {
                                    (DQ 
                                      (BracedVarSub
                                        token: <VSub_Name FUNCNAME>
                                        bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)}))
                                        spids: [11009 11014]
                                      ) (': unexpected portageq exit code: ') (${ VSub_Name retval)
                                    )
                                  }
                                )
                              ]
                              spids: [11003 11022]
                            )
                          ]
                          spids: [10967 10968 11025 16777215]
                        )
                      ]
                      spids: [10917 10925 11028]
                    )
                  ]
                  spids: [10763]
                )
              spids: [10759 10762]
            )
          ]
          spids: [16777215 10756]
        )
      ]
      spids: [16777215 11033]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(___eapi_has_package_manager_build_user)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (FuncDef
              name: package_manager_build_user
              body: 
                (BraceGroup
                  children: [(C {(echo)} {(DQ (${ VSub_Name PORTAGE_BUILD_USER))})]
                  spids: [11048]
                )
              spids: [11044 11047]
            )
          ]
          spids: [16777215 11041]
        )
      ]
      spids: [16777215 11062]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(___eapi_has_package_manager_build_group)})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (FuncDef
              name: package_manager_build_group
              body: 
                (BraceGroup
                  children: [(C {(echo)} {(DQ (${ VSub_Name PORTAGE_BUILD_GROUP))})]
                  spids: [11077]
                )
              spids: [11073 11076]
            )
          ]
          spids: [16777215 11070]
        )
      ]
      spids: [16777215 11091]
    )
  ]
)