(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'exec_text_addr='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'exec_text_addr='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exec_text_addr='> name:exec_text_addr)
          op: assign_op.Equal
          rhs: {<0x0>}
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <obj_load_addrs>
      name: obj_load_addrs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <setarch>
                  more_env: []
                  words: [
                    {<setarch>}
                    {
                      (CommandSub
                        left_token: <Id.Left_DollarParen '$('>
                        child: 
                          (command.Simple
                            blame_tok: <uname>
                            more_env: []
                            words: [{<uname>} {<-m>}]
                            redirects: []
                            do_fork: T
                          )
                        right: <Id.Eof_RParen _>
                      )
                    }
                    {<-R>}
                    {<sh>}
                    {<-c>}
                    {(SQ <'LD_TRACE_LOADED_OBJECTS=1 '>) (DQ ($ Id.VSub_Number 1))}
                  ]
                  redirects: [(Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})]
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {(SQ <'=>'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {<-v>} {(SQ <linux-vdso>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <grep>
                  more_env: []
                  words: [{<grep>} {<-v>} {(SQ <'not found'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sed>
                  more_env: []
                  words: [{<sed>} {(SQ <'s/.*=> //'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tr>
                  more_env: []
                  words: [{<tr>} {<-d>} {(SQ <'()'>)}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tr>
                  more_env: []
                  words: [{<tr>} {<-s>} {(SQ <'[:blank:]'>)} {(SQ <'\\t'>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [
                <Id.Op_Pipe _>
                <Id.Op_Pipe _>
                <Id.Op_Pipe _>
                <Id.Op_Pipe _>
                <Id.Op_Pipe _>
                <Id.Op_Pipe _>
              ]
            )
            (command.Simple
              blame_tok: <'/bin/echo'>
              more_env: []
              words: [
                {<'/bin/echo'>}
                {<-n>}
                {
                  (DQ 
                    (CommandSub
                      left_token: <Id.Left_DollarParen '$('>
                      child: 
                        (command.Simple
                          blame_tok: <readlink>
                          more_env: []
                          words: [{<readlink>} {<-f>} {(DQ ($ Id.VSub_Number 1))}]
                          redirects: []
                          do_fork: T
                        )
                      right: <Id.Eof_RParen _>
                    )
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <'/bin/echo'>
              more_env: []
              words: [{<'/bin/echo'>} {<-e>} {(SQ <'\\t'>) (DQ (${ Id.VSub_Name exec_text_addr))}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <mangle_objname>
      name: mangle_objname
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <tr>
                  more_env: []
                  words: [{<tr>} {(SQ <'/ .-'>)} {(SQ <_>)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <hex_to_dec>
      name: hex_to_dec
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <printf>
              more_env: []
              words: [
                {<printf>}
                {(DQ <'%d'>)}
                {
                  (CommandSub
                    left_token: <Id.Left_DollarParen '$('>
                    child: 
                      (command.Pipeline
                        children: [
                          (command.Simple
                            blame_tok: <echo>
                            more_env: []
                            words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}]
                            redirects: []
                            do_fork: T
                          )
                          (command.Simple
                            blame_tok: <sed>
                            more_env: []
                            words: [{<sed>} {(SQ <'s/^[^0][^xX].*/0x&/'>)}]
                            redirects: []
                            do_fork: T
                          )
                        ]
                        ops: [<Id.Op_Pipe _>]
                      )
                    right: <Id.Eof_RParen _>
                  )
                }
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <obj_load_addrs_as_cpp_macros>
      name: obj_load_addrs_as_cpp_macros
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Pipeline
              children: [
                (command.Simple
                  blame_tok: <obj_load_addrs>
                  more_env: []
                  words: [{<obj_load_addrs>} {(DQ ($ Id.VSub_Number 1))}]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <sort>
                  more_env: []
                  words: [{<sort>}]
                  redirects: []
                  do_fork: T
                )
                (command.WhileUntil
                  keyword: <Id.KW_While while>
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.Simple
                              blame_tok: <read>
                              more_env: []
                              words: [{<read>} {<obj>} {<base>}]
                              redirects: []
                              do_fork: T
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  body: 
                    (command.DoGroup
                      left: <Id.KW_Do do>
                      children: [
                        (command.Simple
                          blame_tok: <echo>
                          more_env: []
                          words: [
                            {<echo>}
                            {
                              (DQ <-D__LOAD_ADDR_> 
                                (CommandSub
                                  left_token: <Id.Left_DollarParen '$('>
                                  child: 
                                    (command.Pipeline
                                      children: [
                                        (command.Simple
                                          blame_tok: <mangle_objname>
                                          more_env: []
                                          words: [{<mangle_objname>} {(DQ (${ Id.VSub_Name obj))}]
                                          redirects: []
                                          do_fork: T
                                        )
                                        (command.Simple
                                          blame_tok: <tr>
                                          more_env: []
                                          words: [{<tr>} {(SQ <'[a-z]'>)} {(SQ <'[A-Z]'>)}]
                                          redirects: []
                                          do_fork: T
                                        )
                                      ]
                                      ops: [<Id.Op_Pipe _>]
                                    )
                                  right: <Id.Eof_RParen _>
                                )
                              ) <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name base) <ULL>)
                            }
                          ]
                          redirects: []
                          do_fork: T
                        )
                        (command.ShAssignment
                          left: <Id.Lit_VarLike 'min_obj_load_addr='>
                          pairs: [
                            (AssignPair
                              left: <Id.Lit_VarLike 'min_obj_load_addr='>
                              lhs: 
                                (sh_lhs_expr.Name
                                  left: <Id.Lit_VarLike 'min_obj_load_addr='>
                                  name: min_obj_load_addr
                                )
                              op: assign_op.Equal
                              rhs: {<0x2aaa00000000>}
                            )
                          ]
                          redirects: []
                        )
                        (command.If
                          if_kw: <Id.KW_If if>
                          arms: [
                            (IfArm
                              keyword: <Id.KW_If if>
                              cond: 
                                (condition.Shell
                                  commands: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          children: [
                                            (command.Simple
                                              blame_tok: <Id.Lit_LBracket '['>
                                              more_env: []
                                              words: [
                                                {<Id.Lit_LBracket '['>}
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    child: 
                                                      (command.Simple
                                                        blame_tok: <hex_to_dec>
                                                        more_env: []
                                                        words: [
                                                          {<hex_to_dec>}
                                                          {($ Id.VSub_DollarName base)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    right: <Id.Eof_RParen _>
                                                  )
                                                }
                                                {<-lt>}
                                                {
                                                  (CommandSub
                                                    left_token: <Id.Left_DollarParen '$('>
                                                    child: 
                                                      (command.Simple
                                                        blame_tok: <hex_to_dec>
                                                        more_env: []
                                                        words: [
                                                          {<hex_to_dec>}
                                                          {($ Id.VSub_DollarName min_obj_load_addr)}
                                                        ]
                                                        redirects: []
                                                        do_fork: T
                                                      )
                                                    right: <Id.Eof_RParen _>
                                                  )
                                                }
                                                {<Id.Lit_RBracket ']'>}
                                              ]
                                              redirects: []
                                              do_fork: T
                                            )
                                            (command.Pipeline
                                              negated: <Id.KW_Bang '!'>
                                              children: [
                                                (command.Simple
                                                  blame_tok: <Id.Lit_LBracket '['>
                                                  more_env: []
                                                  words: [
                                                    {<Id.Lit_LBracket '['>}
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <hex_to_dec>
                                                            more_env: []
                                                            words: [
                                                              {<hex_to_dec>}
                                                              {($ Id.VSub_DollarName base)}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                    {<-eq>}
                                                    {
                                                      (CommandSub
                                                        left_token: <Id.Left_DollarParen '$('>
                                                        child: 
                                                          (command.Simple
                                                            blame_tok: <hex_to_dec>
                                                            more_env: []
                                                            words: [
                                                              {<hex_to_dec>}
                                                              {(${ Id.VSub_Name exec_text_addr)}
                                                            ]
                                                            redirects: []
                                                            do_fork: T
                                                          )
                                                        right: <Id.Eof_RParen _>
                                                      )
                                                    }
                                                    {<Id.Lit_RBracket ']'>}
                                                  ]
                                                  redirects: []
                                                  do_fork: T
                                                )
                                              ]
                                              ops: []
                                            )
                                          ]
                                          ops: [<Id.Op_DAmp _>]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                )
                              then_kw: <Id.KW_Then then>
                              action: [
                                (command.Simple
                                  blame_tok: <echo>
                                  more_env: []
                                  words: [
                                    {<echo>}
                                    {
                                      (DQ <'Warning: library '> ($ Id.VSub_DollarName obj) 
                                        <' has a load address '> ($ Id.VSub_DollarName base) <' less than the assumed minimum '> 
                                        ($ Id.VSub_DollarName min_obj_load_addr)
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (Redir
                                      op: <Id.Redir_GreatAnd '1>&'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<2>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              spids: [352 405]
                            )
                          ]
                          else_action: []
                          fi_kw: <Id.KW_Fi fi>
                          redirects: []
                        )
                      ]
                      right: <Id.KW_Done done>
                    )
                  redirects: []
                )
              ]
              ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
  ]
)