(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ARCH)
          op: assign_op.Equal
          rhs: {<aarch64>}
          spids: [0]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MACHINE)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [3]
        )
      ]
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:NOP) op:assign_op.Equal rhs:{<0>} spids:[5])]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SCRIPT_NAME)
          op: assign_op.Equal
          rhs: {<elf>}
          spids: [9]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ELFSIZE)
          op: assign_op.Equal
          rhs: {<64>}
          spids: [12]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OUTPUT_FORMAT)
          op: assign_op.Equal
          rhs: {(DQ <elf64-littleaarch64>)}
          spids: [15]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BIG_OUTPUT_FORMAT)
          op: assign_op.Equal
          rhs: {(DQ <elf64-bigaarch64>)}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:LITTLE_OUTPUT_FORMAT)
          op: assign_op.Equal
          rhs: {(DQ <elf64-littleaarch64>)}
          spids: [25]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NO_REL_RELOCS)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [30]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEMPLATE_NAME)
          op: assign_op.Equal
          rhs: {<elf32>}
          spids: [34]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXTRA_EM_FILE)
          op: assign_op.Equal
          rhs: {<aarch64elf>}
          spids: [37]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GENERATE_SHLIB_SCRIPT)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [41]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GENERATE_PIE_SCRIPT)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [44]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:MAXPAGESIZE)
          op: assign_op.Equal
          rhs: {(DQ <'CONSTANT (MAXPAGESIZE)'>)}
          spids: [48]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:COMMONPAGESIZE)
          op: assign_op.Equal
          rhs: {(DQ <'CONSTANT (COMMONPAGESIZE)'>)}
          spids: [53]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SEPARATE_GOTPLT)
          op: assign_op.Equal
          rhs: {<24>}
          spids: [58]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:IREL_IN_PLT)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [61]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TEXT_START_ADDR)
          op: assign_op.Equal
          rhs: {<0x400000>}
          spids: [64]
        )
      ]
    )
    (command.Sentence
      child: 
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:DATA_START_SYMBOLS)
              op: assign_op.Equal
              rhs: {(SQ <'PROVIDE (__data_start = .);'>)}
              spids: [68]
            )
          ]
        )
      terminator: <Id.Op_Semi _>
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:NO_SMALL_DATA)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [78]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_BSS_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'__bss_start__ = .;'>)}
          spids: [82]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_BSS_END_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'_bss_end__ = . ; __bss_end__ = . ;'>)}
          spids: [87]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_END_SYMBOLS)
          op: assign_op.Equal
          rhs: {(SQ <'__end__ = . ;'>)}
          spids: [92]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OTHER_SECTIONS)
          op: assign_op.Equal
          rhs: {(SQ <'.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }'>)}
          spids: [98]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ATTRS_SECTIONS)
          op: assign_op.Equal
          rhs: {(SQ <'.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }'>)}
          spids: [103]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PLT)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'.plt          '> 
                (braced_var_sub
                  token: <Id.VSub_Name RELOCATING>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<0>})
                ) <' : ALIGN(16) { *(.plt)'> 
                (braced_var_sub
                  token: <Id.VSub_Name IREL_IN_PLT>
                  suffix_op: (suffix_op.Unary tok:<Id.VTest_Plus '+'> arg_word:{<' *(.iplt)'>})
                ) <' }'>
              )
            }
          spids: [111]
        )
      ]
    )
    (command.Case
      to_match: {(DQ ($ Id.VSub_DollarName '$target'))}
      arms: [
        (case_arm
          pat_list: [{<aarch64> <Id.Lit_Star '*'> <-linux> <Id.Lit_Star '*'>}]
          action: [
            (command.Case
              to_match: {(DQ ($ Id.VSub_DollarName '$EMULATION_NAME'))}
              arms: [
                (case_arm
                  pat_list: [{<aarch64linux> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:LIBPATH_SUFFIX)
                          op: assign_op.Equal
                          rhs: {<64>}
                          spids: [164]
                        )
                      ]
                    )
                  ]
                  spids: [160 162 167 -1]
                )
              ]
            )
          ]
          spids: [144 148 173 -1]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ELF_INTERPRETER_NAME)
          op: assign_op.Equal
          rhs: 
            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
              <'/lib/ld-linux-aarch64.so.1'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
            }
          spids: [178]
        )
      ]
    )
  ]
)