(command.CommandList children: [ (command.ShFunction name: uint32_octal body: (command.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 (Token id:Id.Lit_Chars val:'\\\\%o' span_id:43))} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$n')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 16777216)}) ) ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:54) ) (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: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:n span_id:58) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 16777216)}) ) ) } spids: [56] ) ] ) (command.Sentence child: (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'\\\\%o' span_id:70))} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$n')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 65536)}) ) ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:81) ) (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: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:n span_id:85) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 65536)}) ) ) } spids: [83] ) ] ) (command.Sentence child: (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'\\\\%o' span_id:97))} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$n')}) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 256)}) ) ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:108) ) (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: (arith_expr.VarRef token: (Token id:Id.Lit_ArithVarLike val:n span_id:112) ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 256)}) ) ) } spids: [110] ) ] ) (command.Sentence child: (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'\\\\%o' span_id:124))} {(word_part.ArithSub anode:(arith_expr.ArithWord w:{($ Id.VSub_DollarName '$n')}))} ) terminator: (Token id:Id.Op_Semi val:';' span_id:132) ) ] ) ) (command.ShFunction name: uint32_binary body: (command.BraceGroup children: [ (C {(printf)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:151) command_list: (command.CommandList children: [(C {(uint32_octal)} {(DQ ($ Id.VSub_Number '$1'))})] ) ) ) } ) ] ) ) (command.ShFunction name: pack_header body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:PACK span_id:177))}) (C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'\\0\\0\\0\\2' span_id:186))}) (C {(uint32_binary)} {(DQ ($ Id.VSub_Number '$1'))}) ] ) ] ) ) (command.ShFunction name: pack_obj body: (command.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 (Token id: Id.Lit_Chars val: '\\060\\170\\234\\003\\0\\0\\0\\0\\1' span_id: 261 ) ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:265) ) ] 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 (Token id: Id.Lit_Chars val: '\\062\\170\\234\\143\\267\\3\\0\\0\\116\\0\\106' span_id: 303 ) ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:307) ) ] spids: [295 297 310 -1] ) (case_arm pat_list: [{(01d7713666f4de822776c7622c10f1b07de280dc)}] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(printf)} { (SQ (Token id: Id.Lit_Chars val: '\\165\\1\\327\\161\\66\\146\\364\\336\\202\\47\\166' span_id: 320 ) ) } ) (C {(printf)} { (SQ (Token id: Id.Lit_Chars val: '\\307\\142\\54\\20\\361\\260\\175\\342\\200\\334\\170' span_id: 329 ) ) } ) (C {(printf)} { (SQ (Token id: Id.Lit_Chars val: '\\234\\143\\142\\142\\142\\267\\003\\0\\0\\151\\0\\114' span_id: 338 ) ) } ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:342) ) ] 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 (Token id: Id.Lit_Chars val: '\\062\\170\\234\\143\\147\\0\\0\\0\\20\\0\\10' span_id: 380 ) ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:384) ) ] spids: [372 374 387 -1] ) (case_arm pat_list: [{(e68fe8129b546b101aee9510c5328e7f21ca1d18)}] action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {(printf)} { (SQ (Token id: Id.Lit_Chars val: '\\165\\346\\217\\350\\22\\233\\124\\153\\20\\32\\356' span_id: 397 ) ) } ) (C {(printf)} { (SQ (Token id: Id.Lit_Chars val: '\\225\\20\\305\\62\\216\\177\\41\\312\\35\\30\\170\\234' span_id: 406 ) ) } ) (C {(printf)} { (SQ (Token id: Id.Lit_Chars val: '\\143\\142\\142\\142\\147\\0\\0\\0\\53\\0\\16' span_id: 415 ) ) } ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:419) ) ] 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: (Token id:Id.VSub_Number val:2 span_id:444) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonPlus arg_word: {(' (from ') ($ Id.VSub_Number '$2') (')')} ) ) ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:437) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Return val:return span_id:453) arg_word: {(1)} ) ] ) ) (command.ShFunction name: pack_trailer body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{(test-sha1)} {(-b)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:475) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$1'))} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:480) fd: -1 arg_word: {(trailer.tmp)} ) ] ) (command.Simple words: [{(cat)} {(trailer.tmp)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:490) fd: -1 arg_word: {(DQ ($ Id.VSub_Number '$1'))} ) ] ) (C {(rm)} {(-f)} {(trailer.tmp)}) ] ) ] ) ) (command.ShFunction name: clear_packs body: (command.BraceGroup children: [(C {(rm)} {(-f)} {(.git/objects/pack/) (Id.Lit_Star '*')})] ) ) ] )