(command.CommandList children: [ (command.ShFunction name: uint32_octal body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [36] ) ] ) (command.Sentence child: (C {<printf>} {(SQ <'\\\\%o'>)} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: {($ Id.VSub_DollarName '$n')} right: {<Id.Lit_Digits 16777216>} ) ) } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Percent left: <Id.Lit_ArithVarLike n> right: {<Id.Lit_Digits 16777216>} ) ) } spids: [56] ) ] ) (command.Sentence child: (C {<printf>} {(SQ <'\\\\%o'>)} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: {($ Id.VSub_DollarName '$n')} right: {<Id.Lit_Digits 65536>} ) ) } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Percent left: <Id.Lit_ArithVarLike n> right: {<Id.Lit_Digits 65536>} ) ) } spids: [83] ) ] ) (command.Sentence child: (C {<printf>} {(SQ <'\\\\%o'>)} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: {($ Id.VSub_DollarName '$n')} right: {<Id.Lit_Digits 256>} ) ) } ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Percent left: <Id.Lit_ArithVarLike n> right: {<Id.Lit_Digits 256>} ) ) } spids: [110] ) ] ) (command.Sentence child: (C {<printf>} {(SQ <'\\\\%o'>)} {(word_part.ArithSub anode:{($ Id.VSub_DollarName '$n')})}) terminator: <Id.Op_Semi _> ) ] ) ) (command.ShFunction name: uint32_binary body: (BraceGroup children: [ (C {<printf>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uint32_octal>} {(DQ ($ Id.VSub_Number '$1'))}) ) ) } ) ] ) ) (command.ShFunction name: pack_header body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<printf>} {(SQ <PACK>)}) (C {<printf>} {(SQ <'\\0\\0\\0\\2'>)}) (C {<uint32_binary>} {(DQ ($ Id.VSub_Number '$1'))}) ] ) ] ) ) (command.ShFunction name: pack_obj body: (BraceGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<e69de29bb2d1d6434b8b29ae775ad8c2e48c5391>}] action: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$2'))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {<printf>} {(SQ <'\\060\\170\\234\\003\\0\\0\\0\\0\\1'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] spids: [253 255 268 -1] ) ] ) ] spids: [240 241 274 -1] ) (case_arm pat_list: [{<e68fe8129b546b101aee9510c5328e7f21ca1d18>}] action: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$2'))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {<printf>} {(SQ <'\\062\\170\\234\\143\\267\\3\\0\\0\\116\\0\\106'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] spids: [295 297 310 -1] ) (case_arm pat_list: [{<01d7713666f4de822776c7622c10f1b07de280dc>}] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<printf>} {(SQ <'\\165\\1\\327\\161\\66\\146\\364\\336\\202\\47\\166'>)} ) (C {<printf>} {(SQ <'\\307\\142\\54\\20\\361\\260\\175\\342\\200\\334\\170'>)} ) (C {<printf>} {(SQ <'\\234\\143\\142\\142\\142\\267\\003\\0\\0\\151\\0\\114'>)} ) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] spids: [313 314 345 -1] ) ] ) ] spids: [282 283 351 -1] ) (case_arm pat_list: [{<01d7713666f4de822776c7622c10f1b07de280dc>}] action: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$2'))} arms: [ (case_arm pat_list: [{(SQ )}] action: [ (C {<printf>} {(SQ <'\\062\\170\\234\\143\\147\\0\\0\\0\\20\\0\\10'>)}) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] spids: [372 374 387 -1] ) (case_arm pat_list: [{<e68fe8129b546b101aee9510c5328e7f21ca1d18>}] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<printf>} {(SQ <'\\165\\346\\217\\350\\22\\233\\124\\153\\20\\32\\356'>)} ) (C {<printf>} {(SQ <'\\225\\20\\305\\62\\216\\177\\41\\312\\35\\30\\170\\234'>)} ) (C {<printf>} {(SQ <'\\143\\142\\142\\142\\147\\0\\0\\0\\53\\0\\16'>)}) ] ) (command.ControlFlow token: <Id.ControlFlow_Return return> ) ] spids: [390 391 422 -1] ) ] ) ] spids: [359 360 428 -1] ) ] ) (command.Simple words: [ {<echo>} { (DQ <'BUG: don\'t know how to print '> ($ Id.VSub_Number '$1') (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonPlus ':+'> arg_word: {<' (from '> ($ Id.VSub_Number '$2') <')'>} ) ) ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] ) ) (command.ShFunction name: pack_trailer body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{<test-sha1>} {<-b>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_Number '$1'))} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<trailer.tmp>} ) ] do_fork: T ) (command.Simple words: [{<cat>} {<trailer.tmp>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_Number '$1'))} ) ] do_fork: T ) (C {<rm>} {<-f>} {<trailer.tmp>}) ] ) ] ) ) (command.ShFunction name: clear_packs body: (BraceGroup children:[(C {<rm>} {<-f>} {<'.git/objects/pack/'> <Id.Lit_Star '*'>})]) ) ] )