(command.CommandList children: [ (command.FuncDef name: smallyes body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:YES spids:[11]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id:VTest_Hyphen arg_word:{(y)}) spids: [13 17] ) ) } spids: [11] ) ] spids: [11] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.SimpleCommand words: [{(echo)} {(DQ ($ VSub_DollarName '$YES'))}] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)] spids: [34 40] ) ) ] spids: [8] ) spids: [4 7] ) (command.FuncDef name: in_path body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:OLD_IFS spids:[55]) op: Equal rhs: {(DQ ($ VSub_DollarName '$IFS'))} spids: [55] ) ] spids: [53] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[61]) op: Equal rhs: {(DQ (':'))} spids: [61] ) ] spids: [61] ) (command.ForEach iter_name: dir iter_words: [{($ VSub_DollarName '$PATH')}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-x)} {(DQ ($ VSub_DollarName '$dir') (/) ($ VSub_Number '$1'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[97]) op: Equal rhs: {(DQ ($ VSub_DollarName '$OLD_IFS'))} spids: [97] ) ] spids: [97] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 94] ) ] spids: [16777215 108] ) ] spids: [76 111] ) spids: [72 74] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:IFS spids:[114]) op: Equal rhs: {(DQ ($ VSub_DollarName '$OLD_IFS'))} spids: [114] ) ] spids: [114] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [50] ) spids: [45 49] ) (command.FuncDef name: error body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:err spids:[145]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [145] ) ] spids: [143] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name spids:[153]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [153] ) ] spids: [151] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fmt spids:[161]) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [161] ) ] spids: [159] ) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (C {(shift)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USE_DEBIANINSTALLER_INTERACTION'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Subshell child: (command.CommandList children: [ (C {(echo)} {(DQ ('E: ') ($ VSub_DollarName '$name'))}) (command.ForEach iter_name: x iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.Sentence child: (C {(echo)} {(DQ ('EA: ') ($ VSub_DollarName '$x'))}) terminator: <Op_Semi ';'> ) ] spids: [210 220] ) spids: [204 208] ) (C {(echo)} {(DQ ('EF: ') ($ VSub_DollarName '$fmt'))}) ] ) redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(4)})] spids: [190 229] ) ] spids: [16777215 187] ) ] else_action: [ (command.Subshell child: (C {(printf)} {(DQ ('E: ') ($ VSub_DollarName '$fmt') (Lit_Other '\\') (n))} {(DQ ($ VSub_At '$@'))} ) redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(4)})] spids: [238 251] ) ] spids: [235 257] ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_DollarName '$err')} ) ] spids: [136] ) spids: [131 135] ) (command.FuncDef name: warning body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name spids:[281]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [281] ) ] spids: [279] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fmt spids:[289]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [289] ) ] spids: [287] ) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (C {(shift)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USE_DEBIANINSTALLER_INTERACTION'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Subshell child: (command.CommandList children: [ (C {(echo)} {(DQ ('W: ') ($ VSub_DollarName '$name'))}) (command.ForEach iter_name: x iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.Sentence child: (C {(echo)} {(DQ ('WA: ') ($ VSub_DollarName '$x'))}) terminator: <Op_Semi ';'> ) ] spids: [335 345] ) spids: [329 333] ) (C {(echo)} {(DQ ('WF: ') ($ VSub_DollarName '$fmt'))}) ] ) redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(4)})] spids: [315 354] ) ] spids: [16777215 312] ) ] else_action: [ (command.SimpleCommand words: [ {(printf)} {(DQ ('W: ') ($ VSub_DollarName '$fmt') (Lit_Other '\\') (n))} {(DQ ($ VSub_At '$@'))} ] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(4)})] ) ] spids: [360 380] ) ] spids: [272] ) spids: [267 271] ) (command.FuncDef name: info body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name spids:[399]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [399] ) ] spids: [397] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fmt spids:[407]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [407] ) ] spids: [405] ) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (C {(shift)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USE_DEBIANINSTALLER_INTERACTION'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Subshell child: (command.CommandList children: [ (C {(echo)} {(DQ ('I: ') ($ VSub_DollarName '$name'))}) (command.ForEach iter_name: x iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.Sentence child: (C {(echo)} {(DQ ('IA: ') ($ VSub_DollarName '$x'))}) terminator: <Op_Semi ';'> ) ] spids: [453 463] ) spids: [447 451] ) (C {(echo)} {(DQ ('IF: ') ($ VSub_DollarName '$fmt'))}) ] ) redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(4)})] spids: [433 472] ) ] spids: [16777215 430] ) ] else_action: [ (command.SimpleCommand words: [ {(printf)} {(DQ ('I: ') ($ VSub_DollarName '$fmt') (Lit_Other '\\') (n))} {(DQ ($ VSub_At '$@'))} ] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(4)})] ) ] spids: [478 498] ) ] spids: [390] ) spids: [385 389] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PROGRESS_NOW spids:[503]) op: Equal rhs: {(0)} spids: [503] ) ] spids: [503] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PROGRESS_END spids:[506]) op: Equal rhs: {(0)} spids: [506] ) ] spids: [506] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PROGRESS_NEXT spids:[509]) op: Equal rhs: {(DQ )} spids: [509] ) ] spids: [509] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PROGRESS_WHAT spids:[513]) op: Equal rhs: {(DQ )} spids: [513] ) ] spids: [513] ) (command.FuncDef name: progress_next body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PROGRESS_NEXT spids:[526]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [526] ) ] spids: [526] ) ] spids: [523] ) spids: [518 522] ) (command.FuncDef name: wgetprogress body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(KW_Bang '!')} {(DQ ($ VSub_DollarName '$VERBOSE'))} {(Lit_Other ']')} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:QSWITCH spids:[554]) op: Equal rhs: {(DQ (-q))} spids: [554] ) ] spids: [554] ) ] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ret spids:[562]) op: Equal rhs: {(0)} spids: [562] ) ] spids: [560] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USE_DEBIANINSTALLER_INTERACTION'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$PROGRESS_NEXT'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Pipeline children: [ (command.SimpleCommand words: [{(wget)} {(DQ ($ VSub_At '$@'))}] redirects: [ (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) ] ) (command.SimpleCommand words: [ {($ VSub_DollarName '$PKGDETAILS')} {(DQ ('WGET%'))} {($ VSub_DollarName '$PROGRESS_NOW')} {($ VSub_DollarName '$PROGRESS_NEXT')} {($ VSub_DollarName '$PROGRESS_END')} ] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(3)})] ) ] negated: F ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ret spids:[620]) op: Equal rhs: {($ VSub_QMark '$?')} spids: [620] ) ] spids: [620] ) ] spids: [16777215 587] ) ] else_action: [ (C {(wget)} {($ VSub_DollarName '$QSWITCH')} {(DQ ($ VSub_At '$@'))}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ret spids:[637]) op: Equal rhs: {($ VSub_QMark '$?')} spids: [637] ) ] spids: [637] ) ] spids: [624 641] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_DollarName '$ret')} ) ] spids: [539] ) spids: [534 538] ) (command.FuncDef name: progress body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:now spids:[665]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [665] ) ] spids: [663] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:end spids:[673]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [673] ) ] spids: [671] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name spids:[681]) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [681] ) ] spids: [679] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:fmt spids:[689]) op: Equal rhs: {(DQ ($ VSub_Number '$4'))} spids: [689] ) ] spids: [687] ) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (C {(shift)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$USE_DEBIANINSTALLER_INTERACTION'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PROGRESS_NOW spids:[721]) op: Equal rhs: {(DQ ($ VSub_DollarName '$now'))} spids: [721] ) ] spids: [721] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PROGRESS_END spids:[727]) op: Equal rhs: {(DQ ($ VSub_DollarName '$end'))} spids: [727] ) ] spids: [727] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PROGRESS_NEXT spids:[733]) op: Equal rhs: {(DQ )} spids: [733] ) ] spids: [733] ) (command.Subshell child: (command.CommandList children: [ (C {(echo)} { (DQ ('P: ') ($ VSub_DollarName '$now') (' ') ($ VSub_DollarName '$end') (' ') ($ VSub_DollarName '$name') ) } ) (command.ForEach iter_name: x iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.Sentence child: (C {(echo)} {(DQ ('PA: ') ($ VSub_DollarName '$x'))}) terminator: <Op_Semi ';'> ) ] spids: [762 772] ) spids: [756 760] ) (C {(echo)} {(DQ ('PF: ') ($ VSub_DollarName '$fmt'))}) ] ) redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(3)})] spids: [738 781] ) ] spids: [16777215 718] ) ] spids: [16777215 787] ) ] spids: [656] ) spids: [651 655] ) (command.FuncDef name: dpkg_progress body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:now spids:[806]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [806] ) ] spids: [804] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:end spids:[814]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [814] ) ] spids: [812] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:name spids:[822]) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [822] ) ] spids: [820] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:desc spids:[830]) op: Equal rhs: {(DQ ($ VSub_Number '$4'))} spids: [830] ) ] spids: [828] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:action spids:[838]) op: Equal rhs: {(DQ ($ VSub_Number '$5'))} spids: [838] ) ] spids: [836] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect spids:[846]) op: Equal rhs: (word.EmptyWord) spids: [846] ) ] spids: [844] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$action'))} {(Lit_Other '=')} {(UNPACKING)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect spids:[868]) op: Equal rhs: {(half-installed)} spids: [868] ) ] spids: [868] ) ] spids: [16777215 865] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$action'))} {(Lit_Other '=')} {(CONFIGURING)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect spids:[890]) op: Equal rhs: {(half-configured)} spids: [890] ) ] spids: [890] ) ] spids: [872 887] ) ] spids: [16777215 894] ) (command.FuncDef name: dp body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:now spids:[906]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$now')}) right: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Number 1> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {(1)} ) spids: [913 917] ) } ) ) spids: [908 919] ) ) } spids: [906] ) ] spids: [906] ) ] spids: [903] ) spids: [898 902] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:exitcode spids:[927]) op: Equal rhs: {(0)} spids: [927] ) ] spids: [927] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(status)} {(pkg)} {(qstate)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$status'))} {(Lit_Other '=')} {(DQ (EXITCODE))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:exitcode spids:[965]) op: Equal rhs: {(DQ ($ VSub_DollarName '$pkg'))} spids: [965] ) ] spids: [965] ) (command.ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [16777215 962] ) ] spids: [16777215 974] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$qstate'))} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$expect'))} {(Lit_Other ']')} ) (command.ControlFlow token: <ControlFlow_Continue continue> ) ] ) (command.Case to_match: {($ VSub_DollarName '$qstate')} arms: [ (case_arm pat_list: [{(half-installed)}] action: [ (command.Sentence child: (C {(dp)}) terminator: <Op_Semi ';'> ) (C {(progress)} {(DQ ($ VSub_DollarName '$now'))} {(DQ ($ VSub_DollarName '$end'))} {(DQ ($ VSub_DollarName '$name'))} {(DQ ($ VSub_DollarName '$desc'))} ) (C {(info)} {(DQ ($ VSub_DollarName '$action'))} {(DQ ('Unpacking %s...'))} { (DQ (word_part.BracedVarSub token: <VSub_Name pkg> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(':')} ) spids: [1040 1044] ) ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect spids:[1048]) op: Equal rhs: {(unpacked)} spids: [1048] ) ] spids: [1048] ) ] spids: [1003 1004 1052 16777215] ) (case_arm pat_list: [{(unpacked)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect spids:[1059]) op: Equal rhs: {(half-installed)} spids: [1059] ) ] spids: [1059] ) ] spids: [1055 1056 1063 16777215] ) (case_arm pat_list: [{(half-configured)}] action: [ (command.Sentence child: (C {(dp)}) terminator: <Op_Semi ';'> ) (C {(progress)} {(DQ ($ VSub_DollarName '$now'))} {(DQ ($ VSub_DollarName '$end'))} {(DQ ($ VSub_DollarName '$name'))} {(DQ ($ VSub_DollarName '$desc'))} ) (C {(info)} {(DQ ($ VSub_DollarName '$action'))} {(DQ ('Configuring %s...'))} { (DQ (word_part.BracedVarSub token: <VSub_Name pkg> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(':')} ) spids: [1103 1107] ) ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect spids:[1111]) op: Equal rhs: {(installed)} spids: [1111] ) ] spids: [1111] ) ] spids: [1066 1067 1115 16777215] ) (case_arm pat_list: [{(installed)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expect spids:[1122]) op: Equal rhs: {(half-configured)} spids: [1122] ) ] spids: [1122] ) ] spids: [1118 1119 1126 16777215] ) ] spids: [996 1000 1129] ) ] spids: [942 1132] ) ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_DollarName '$exitcode')} ) ] spids: [797] ) spids: [792 796] ) (command.FuncDef name: default_mirror body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:DEF_MIRROR spids:[1154]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [1154] ) ] spids: [1154] ) ] spids: [1151] ) spids: [1146 1150] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:FINDDEBS_NEEDS_INDICES spids:[1162]) op: Equal rhs: {(false)} spids: [1162] ) ] spids: [1162] ) (command.FuncDef name: finddebs_style body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list:[{(hardcoded)}] spids:[1182 1183 1186 16777215]) (case_arm pat_list: [{(from-indices)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:FINDDEBS_NEEDS_INDICES spids:[1193]) op: Equal rhs: {(true)} spids: [1193] ) ] spids: [1193] ) ] spids: [1189 1190 1197 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(error)} {(1)} {(BADFINDDEBS)} {(DQ ('unknown finddebs style'))})] spids: [1200 1201 1215 16777215] ) ] spids: [1173 1179 1218] ) ] spids: [1170] ) spids: [1165 1169] ) (command.FuncDef name: mk_download_dirs body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {($ VSub_DollarName '$DLDEST')} {(Lit_Other '=')} {(DQ (apt_dest))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mkdir)} {(-p)} { (DQ ($ VSub_DollarName '$TARGET') (/) ($ VSub_DollarName '$APTSTATE') (/lists/partial) ) } ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_DollarName '$TARGET') (/var/cache/apt/archives/partial))} ) ] spids: [16777215 1246] ) ] spids: [16777215 1271] ) ] spids: [1228] ) spids: [1223 1227] ) (command.FuncDef name: download_style body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(apt)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$2'))} {(Lit_Other '=')} {(DQ (var-state))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:APTSTATE spids:[1317]) op: Equal rhs: {(var/state/apt)} spids: [1317] ) ] spids: [1317] ) ] spids: [16777215 1314] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:APTSTATE spids:[1324]) op: Equal rhs: {(var/lib/apt)} spids: [1324] ) ] spids: [1324] ) ] spids: [1321 1328] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:DLDEST spids:[1331]) op: Equal rhs: {(apt_dest)} spids: [1331] ) ] spids: [1331] ) (C {(export)} {(APTSTATE)} {(DLDEST)} {(DEBFOR)}) ] spids: [1293 1294 1344 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(error)} {(1)} {(BADDLOAD)} {(DQ ('unknown download style'))})] spids: [1347 1348 1362 16777215] ) ] spids: [1284 1290 1365] ) ] spids: [1281] ) spids: [1276 1280] ) (command.FuncDef name: keyring body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$KEYRING'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:KEYRING spids:[1410]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [1410] ) ] spids: [1410] ) ] spids: [16777215 1407] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$DISABLE_KEYRING'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp Op_DAmp] children: [ (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$DEF_HTTPS_MIRROR'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$USER_MIRROR'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$FORCE_KEYRING'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(info)} {(KEYRING)} { (DQ ( 'Keyring file not available at %s; switching to https mirror %s' ) ) } {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_DollarName '$DEF_HTTPS_MIRROR'))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:USER_MIRROR spids:[1489]) op: Equal rhs: {(DQ ($ VSub_DollarName '$DEF_HTTPS_MIRROR'))} spids: [1489] ) ] spids: [1489] ) ] spids: [16777215 1469] ) ] else_action: [ (C {(warning)} {(KEYRING)} { (DQ ( 'Cannot check Release signature; keyring file not available %s' ) ) } {(DQ ($ VSub_Number '$1'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$FORCE_KEYRING'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(error)} {(1)} {(KEYRING)} { (DQ ( 'Keyring-based check was requested; aborting accordingly' ) ) } ) ] spids: [16777215 1524] ) ] spids: [16777215 1538] ) ] spids: [1495 1541] ) ] spids: [1416 1429] ) ] spids: [16777215 1544] ) ] spids: [16777215 1391] ) ] spids: [16777215 1547] ) ] spids: [1375] ) spids: [1370 1374] ) (command.FuncDef name: doing_variant body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$VARIANT'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) terminator: <Op_Semi ';'> ) ] spids: [16777215 1581] ) ] spids: [16777215 1588] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (-))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$VARIANT'))} {(Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) terminator: <Op_Semi ';'> ) ] spids: [16777215 1623] ) ] spids: [16777215 1630] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [1561] ) spids: [1556 1560] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SUPPORTED_VARIANTS spids:[1640]) op: Equal rhs: {(DQ (-))} spids: [1640] ) ] spids: [1640] ) (command.FuncDef name: variants body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SUPPORTED_VARIANTS spids:[1653]) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [1653] ) ] spids: [1653] ) (command.ForEach iter_name: v iter_words: [{($ VSub_Star '$*')}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(doing_variant)} {(DQ ($ VSub_DollarName '$v'))}) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) terminator: <Op_Semi ';'> ) ] spids: [16777215 1680] ) ] spids: [16777215 1687] ) ] spids: [1668 1690] ) spids: [1664 1666] ) (C {(error)} {(1)} {(UNSUPPVARIANT)} {(DQ ('unsupported variant'))}) ] spids: [1650] ) spids: [1645 1649] ) (command.FuncDef name: mirror_style body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(release)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:DOWNLOAD_INDICES spids:[1731]) op: Equal rhs: {(download_release_indices)} spids: [1731] ) ] spids: [1731] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:DOWNLOAD_DEBS spids:[1735]) op: Equal rhs: {(download_release)} spids: [1735] ) ] spids: [1735] ) ] spids: [1727 1728 1739 16777215] ) (case_arm pat_list: [{(main)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:DOWNLOAD_INDICES spids:[1746]) op: Equal rhs: {(download_main_indices)} spids: [1746] ) ] spids: [1746] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:DOWNLOAD_DEBS spids:[1750]) op: Equal rhs: {(download_main)} spids: [1750] ) ] spids: [1750] ) ] spids: [1742 1743 1754 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(error)} {(1)} {(BADMIRROR)} {(DQ ('unknown mirror style'))})] spids: [1757 1758 1772 16777215] ) ] spids: [1718 1724 1775] ) (C {(export)} {(DOWNLOAD_INDICES)}) (C {(export)} {(DOWNLOAD_DEBS)}) ] spids: [1715] ) spids: [1710 1714] ) (command.FuncDef name: force_md5 body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:DEBOOTSTRAP_CHECKSUM_FIELD spids:[1798]) op: Equal rhs: {(MD5SUM)} spids: [1798] ) ] spids: [1798] ) (C {(export)} {(DEBOOTSTRAP_CHECKSUM_FIELD)}) ] spids: [1795] ) spids: [1790 1794] ) (command.FuncDef name: verify_checksum body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expchecksum spids:[1823]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [1823] ) ] spids: [1821] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:expsize spids:[1831]) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [1831] ) ] spids: [1829] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$DEBOOTSTRAP_CHECKSUM_FIELD'))} {(Lit_Other '=')} {(DQ (MD5SUM))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(in_path)} {(md5sum)}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:relchecksum spids:[1867]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.SimpleCommand words: [{(md5sum)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) (C {(sed)} {(SQ <'s/ .*$//'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [1868 1884] ) } spids: [1867] ) ] spids: [1867] ) ] spids: [16777215 1864] ) (if_arm cond: [ (command.Sentence child: (C {(in_path)} {(md5)}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:relchecksum spids:[1897]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(md5)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [1898 1906] ) } spids: [1897] ) ] spids: [1897] ) ] spids: [1887 1894] ) ] else_action: [(C {(error)} {(1)} {(SIGCHECK)} {(DQ ('Cannot check md5sum'))})] spids: [1909 1923] ) ] spids: [16777215 1854] ) ] else_action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(in_path)} {(DQ (sha) (${ VSub_Name SHA_SIZE) (sum))}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:relchecksum spids:[1945]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.SimpleCommand words: [{(sha) (${ VSub_Name SHA_SIZE) (sum)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) (C {(sed)} {(SQ <'s/ .*$//'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [1946 1966] ) } spids: [1945] ) ] spids: [1945] ) ] spids: [16777215 1942] ) (if_arm cond: [ (command.Sentence child: (C {(in_path)} {(DQ (sha) (${ VSub_Name SHA_SIZE))}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:relchecksum spids:[1984]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(sha) (${ VSub_Name SHA_SIZE)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [1985 1996] ) } spids: [1984] ) ] spids: [1984] ) ] spids: [1969 1981] ) ] else_action: [ (C {(error)} {(1)} {(SIGCHECK)} {(DQ ('Cannot check sha') (${ VSub_Name SHA_SIZE) (sum))} ) ] spids: [1999 2017] ) ] spids: [1926 2020] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:relsize spids:[2023]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(wc)} {(-c)}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1'))} ) ] ) ] ) left_token: <Left_Backtick '`'> spids: [2024 2034] ) } spids: [2023] ) ] spids: [2023] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$expsize'))} {(-ne)} {(DQ ($ VSub_DollarName '$relsize'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$expchecksum'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$relchecksum'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [16777215 2071] ) ] spids: [16777215 2079] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [1814] ) spids: [1809 1813] ) (command.FuncDef name: get body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:displayname spids:[2107]) op: Equal spids: [2107] ) ] spids: [2105] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:versionname spids:[2112]) op: Equal spids: [2112] ) ] spids: [2110] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Number 2> suffix_op: (suffix_op.StringUnary op_id:VOp1_Percent arg_word:{(.deb)}) spids: [2120 2124] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:displayname spids:[2140]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$2'))}) (C {(sed)} {(SQ <'s,^.*/,,;s,_.*$,,'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [2142 2156] ) ) } spids: [2140] ) ] spids: [2140] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:versionname spids:[2160]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$2'))}) (C {(sed)} {(SQ <'s,^.*/,,'>)}) (C {(cut)} {(-d_)} {(-f2)}) (C {(sed)} {(SQ <'s/%3a/:/'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [2162 2192] ) ) } spids: [2160] ) ] spids: [2160] ) ] spids: [16777215 2137] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:displayname spids:[2199]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Number '$1'))}) (C {(sed)} {(SQ <'s,^.*/,,'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [2201 2215] ) ) } spids: [2199] ) ] spids: [2199] ) ] spids: [2196 2219] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$3'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 2252] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$3'))} {(Lit_Other '=')} {(nocache)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Number '$2'))})] spids: [2260 2275] ) ] else_action: [ (C {(info)} {(VALIDATING)} {(DQ ('Validating %s %s'))} {(DQ ($ VSub_DollarName '$displayname'))} {(DQ ($ VSub_DollarName '$versionname'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(verify_checksum)} {(DQ ($ VSub_Number '$2'))} {(DQ ($ VSub_Number '$3'))} {(DQ ($ VSub_Number '$4'))} ) terminator: <Op_Semi ';'> ) ] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 2324] ) ] else_action: [(C {(rm)} {(-f)} {(DQ ($ VSub_Number '$2'))})] spids: [2332 2344] ) ] spids: [2287 2347] ) ] spids: [16777215 2236] ) ] spids: [16777215 2350] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$3'))} {(Lit_Other '=')} {(nocache)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(set)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2'))})] spids: [16777215 2372] ) ] spids: [16777215 2386] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Pound '$#'))} {(-gt)} {(5)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:st spids:[2410]) op: Equal rhs: {(3)} spids: [2410] ) ] spids: [2408] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$5'))} {(Lit_Other '=')} {(DQ (-))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:st spids:[2433]) op: Equal rhs: {(6)} spids: [2433] ) ] spids: [2433] ) terminator: <Op_Semi ';'> ) ] spids: [16777215 2431] ) ] spids: [16777215 2437] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:order spids:[2442]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:a spids:[2445]) op: Equal rhs: {($ VSub_DollarName '$st')} spids: [2445] ) ] spids: [2445] ) terminator: <Op_Semi ';'> ) (command.Pipeline children: [ (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$a'))} {(-le)} {($ VSub_Pound '$#')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.Sentence child: (C {(eval)} {(echo)} { (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (Lit_LBrace '{') (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: {($ VSub_DollarName '$a')} ) right: (arith_expr.ArithWord w: {(Lit_Digits 1)} ) ) spids: [2473 2478] ) (Lit_RBrace '}') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) } {($ VSub_DollarName '$a')} ) terminator: <Op_Semi ';'> ) (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name: a spids: [2486] ) op: Equal rhs: { (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: { ($ VSub_DollarName '$a' ) } ) right: (arith_expr.ArithWord w: {(Lit_Digits 3)} ) ) spids: [2487 2494] ) } spids: [2486] ) ] spids: [2486] ) terminator: <Op_Semi ';'> ) ] spids: [2464 2497] ) ) (C {(sort)} {(-n)}) (C {(sed)} {(SQ <'s/.* //'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [2444 2512] ) ) } spids: [2442] ) ] spids: [2440] ) ] spids: [16777215 2405] ) ] else_action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:order spids:[2521]) op: Equal rhs: {(3)} spids: [2521] ) ] spids: [2519] ) ] spids: [2516 2525] ) (command.ForEach iter_name: a iter_words: [{($ VSub_DollarName '$order')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:checksum spids:[2542]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(eval)} {(echo)} { (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) (Lit_LBrace '{') ($ VSub_DollarName '$a') (Lit_RBrace '}') } ) ] ) left_token: <Left_CommandSub '$('> spids: [2544 2553] ) ) } spids: [2542] ) ] spids: [2540] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:siz spids:[2559]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(eval)} {(echo)} { (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) (Lit_LBrace '{') (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: {($ VSub_DollarName '$a')} ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [2568 2575] ) (Lit_RBrace '}') } ) ] ) left_token: <Left_CommandSub '$('> spids: [2561 2577] ) ) } spids: [2559] ) ] spids: [2557] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:typ spids:[2583]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(eval)} {(echo)} { (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) (Lit_LBrace '{') (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: {($ VSub_DollarName '$a')} ) right: (arith_expr.ArithWord w:{(Lit_Digits 2)}) ) spids: [2592 2599] ) (Lit_RBrace '}') } ) ] ) left_token: <Left_CommandSub '$('> spids: [2585 2601] ) ) } spids: [2583] ) ] spids: [2581] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:from spids:[2607]) op: Equal spids: [2607] ) ] spids: [2605] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[2612]) op: Equal spids: [2612] ) ] spids: [2610] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:iters spids:[2617]) op: Equal rhs: {(0)} spids: [2617] ) ] spids: [2615] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$typ'))} arms: [ (case_arm pat_list: [{(xz)}] action: [ (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:from spids:[2634]) op: Equal rhs: {(DQ ($ VSub_Number '$1') (.xz))} spids: [2634] ) ] spids: [2634] ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[2641]) op: Equal rhs: {(DQ ($ VSub_Number '$2') (.xz))} spids: [2641] ) ] spids: [2641] ) ] spids: [2631 2632 2647 16777215] ) (case_arm pat_list: [{(bz2)}] action: [ (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:from spids:[2653]) op: Equal rhs: {(DQ ($ VSub_Number '$1') (.bz2))} spids: [2653] ) ] spids: [2653] ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[2660]) op: Equal rhs: {(DQ ($ VSub_Number '$2') (.bz2))} spids: [2660] ) ] spids: [2660] ) ] spids: [2650 2651 2666 16777215] ) (case_arm pat_list: [{(gz)}] action: [ (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:from spids:[2672]) op: Equal rhs: {(DQ ($ VSub_Number '$1') (.gz))} spids: [2672] ) ] spids: [2672] ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[2679]) op: Equal rhs: {(DQ ($ VSub_Number '$2') (.gz))} spids: [2679] ) ] spids: [2679] ) ] spids: [2669 2670 2685 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:from spids:[2691]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [2691] ) ] spids: [2691] ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[2697]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [2697] ) ] spids: [2697] ) ] spids: [2688 2689 2702 16777215] ) ] spids: [2622 2628 2705] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name dest> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /)} ) spids: [2714 2718] ) ) } {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$dest'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[2733]) op: Equal rhs: {(DQ (./) ($ VSub_DollarName '$dest'))} spids: [2733] ) ] spids: [2733] ) ] spids: [16777215 2730] ) ] spids: [16777215 2740] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest2 spids:[2745]) op: Equal rhs: {(DQ ($ VSub_DollarName '$dest'))} spids: [2745] ) ] spids: [2743] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-d)} { (DQ (word_part.BracedVarSub token: <VSub_Name dest2> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [2758 2763] ) (/partial) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest2 spids:[2773]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name dest2> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [2775 2780] ) (/partial/) (word_part.BracedVarSub token: <VSub_Name dest2> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {('*') (Lit_Slash /)} ) spids: [2782 2787] ) ) } spids: [2773] ) ] spids: [2773] ) ] spids: [16777215 2770] ) ] spids: [16777215 2791] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$iters'))} {(-lt)} {(10)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (C {(info)} {(RETRIEVING)} {(DQ ('Retrieving %s %s'))} {(DQ ($ VSub_DollarName '$displayname'))} {(DQ ($ VSub_DollarName '$versionname'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(just_get)} {(DQ ($ VSub_DollarName '$from'))} {(DQ ($ VSub_DollarName '$dest2'))} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token: <ControlFlow_Continue continue> arg_word: {(2)} ) terminator: <Op_Semi ';'> ) ] spids: [16777215 2845] ) ] spids: [16777215 2852] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$checksum'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(info)} {(VALIDATING)} {(DQ ('Validating %s %s'))} {(DQ ($ VSub_DollarName '$displayname'))} {(DQ ($ VSub_DollarName '$versionname'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(verify_checksum)} {(DQ ($ VSub_DollarName '$dest2'))} {(DQ ($ VSub_DollarName '$checksum'))} {(DQ ($ VSub_DollarName '$siz'))} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:checksum spids:[2912]) op: Equal rhs: {(DQ )} spids: [2912] ) ] spids: [2912] ) ] spids: [16777215 2909] ) ] spids: [16777215 2917] ) ] spids: [16777215 2872] ) ] spids: [16777215 2920] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$checksum'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$dest2'))} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$dest'))} {(Lit_Other ']')} ) (C {(mv)} {(DQ ($ VSub_DollarName '$dest2'))} {(DQ ($ VSub_DollarName '$dest'))} ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$typ'))} arms: [ (case_arm pat_list: [{(gz)}] action: [(C {(gunzip)} {(DQ ($ VSub_DollarName '$dest'))})] spids: [2975 2976 2984 16777215] ) (case_arm pat_list: [{(bz2)}] action: [(C {(bunzip2)} {(DQ ($ VSub_DollarName '$dest'))})] spids: [2987 2988 2996 16777215] ) (case_arm pat_list: [{(xz)}] action: [(C {(unxz)} {(DQ ($ VSub_DollarName '$dest'))})] spids: [2999 3000 3008 16777215] ) ] spids: [2966 2972 3011] ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 2936] ) ] else_action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$dest2'))}) (C {(warning)} {(RETRYING)} {(DQ ('Retrying failed download of %s'))} {(DQ ($ VSub_DollarName '$from'))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:iters spids:[3044]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: {($ VSub_DollarName '$iters')} ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [3046 3053] ) ) } spids: [3044] ) ] spids: [3044] ) ] spids: [3019 3057] ) ] spids: [2810 3060] ) ) (C {(warning)} {(CORRUPTFILE)} {(DQ ('%s was corrupt'))} {(DQ ($ VSub_DollarName '$from'))} ) ] spids: [2537 3076] ) spids: [2533 2535] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [2094] ) spids: [2089 2093] ) (command.FuncDef name: just_get body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:from spids:[3100]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [3100] ) ] spids: [3098] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dest spids:[3108]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [3108] ) ] spids: [3106] ) (C {(mkdir)} {(-p)} { (DQ (word_part.BracedVarSub token: <VSub_Name dest> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ('*')} ) spids: [3119 3124] ) ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name from> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('null:')} ) spids: [3133 3137] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$from'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(error)} {(1)} {(NOTPREDL)} {(DQ ('%s was not pre-downloaded'))} { (DQ (word_part.BracedVarSub token: <VSub_Name from> suffix_op: (suffix_op.StringUnary op_id:VOp1_Pound arg_word:{('null:')}) spids: [3164 3168] ) ) } ) ] spids: [16777215 3150] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name from> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('http:') (Lit_Slash /) (Lit_Slash /)} ) spids: [3177 3183] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$from'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name from> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('ftp:') (Lit_Slash /) (Lit_Slash /)} ) spids: [3200 3206] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$from'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(wgetprogress)} {(-O)} {(DQ ($ VSub_DollarName '$dest'))} {(DQ ($ VSub_DollarName '$from'))} ) terminator: <Op_Semi ';'> ) ] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 3241] ) ] else_action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$dest'))}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [3249 3266] ) ] spids: [3172 3219] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name from> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('https:') (Lit_Slash /) (Lit_Slash /)} ) spids: [3274 3280] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$from'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(wgetprogress)} {($ VSub_DollarName '$CHECKCERTIF')} {($ VSub_DollarName '$CERTIFICATE')} {($ VSub_DollarName '$PRIVATEKEY')} {(-O)} {(DQ ($ VSub_DollarName '$dest'))} {(DQ ($ VSub_DollarName '$from'))} ) terminator: <Op_Semi ';'> ) ] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 3322] ) ] else_action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$dest'))}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [3330 3347] ) ] spids: [3269 3294] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name from> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('file:')} ) spids: [3355 3359] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$from'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:base spids:[3377]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name from> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('file:')} ) spids: [3379 3383] ) ) } spids: [3377] ) ] spids: [3375] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name base> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (Lit_Slash /)} ) spids: [3392 3397] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$base'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:base spids:[3413]) op: Equal rhs: { (DQ (/) (word_part.BracedVarSub token: <VSub_Name from> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('file:') (Lit_Slash /) (Lit_Slash /) ('*') (Lit_Slash /) } ) spids: [3416 3424] ) ) } spids: [3413] ) ] spids: [3413] ) ] spids: [16777215 3410] ) ] spids: [16777215 3428] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_DollarName '$base'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(cp)} {(DQ ($ VSub_DollarName '$base'))} {(DQ ($ VSub_DollarName '$dest'))} ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 3444] ) ] else_action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [3463 3471] ) ] spids: [3350 3372] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} { (DQ (word_part.BracedVarSub token: <VSub_Name from> suffix_op: (suffix_op.StringUnary op_id:VOp1_Pound arg_word:{('ssh:')}) spids: [3479 3483] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$from'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ssh_dest spids:[3501]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ VSub_DollarName '$from')}) (C {(sed)} {(-e)} {(SQ <'s#ssh://##'>)} {(-e)} {(SQ <'s#/#:/#'>)} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [3503 3523] ) ) } spids: [3501] ) ] spids: [3499] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$ssh_dest'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(scp)} {(DQ ($ VSub_DollarName '$ssh_dest'))} {(DQ ($ VSub_DollarName '$dest'))} ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 3540] ) ] else_action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [3559 3567] ) ] spids: [3474 3496] ) ] else_action: [ (C {(error)} {(1)} {(UNKNOWNLOC)} {(DQ ('unknown location %s'))} {(DQ ($ VSub_DollarName '$from'))} ) ] spids: [3570 3588] ) ] spids: [3091] ) spids: [3086 3090] ) (command.FuncDef name: download body: (command.BraceGroup children: [ (C {(mk_download_dirs)}) (C {(DQ ($ VSub_DollarName '$DOWNLOAD_DEBS'))} { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_At '$@'))}) (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {(sort)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [3608 3630] ) } ) ] spids: [3598] ) spids: [3593 3597] ) (command.FuncDef name: download_indices body: (command.BraceGroup children: [ (C {(mk_download_dirs)}) (C {(DQ ($ VSub_DollarName '$DOWNLOAD_INDICES'))} { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_At '$@'))}) (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {(sort)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [3650 3672] ) } ) ] spids: [3640] ) spids: [3635 3639] ) (command.FuncDef name: debfor body: (command.BraceGroup children: [ (command.Subshell child: (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(pkg)} {(path)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.ForEach iter_name: p iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.Sentence child: (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$p'))} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$pkg'))} {(Lit_Other ']')} ) (command.ControlFlow token: <ControlFlow_Continue continue> ) ] ) terminator: <Op_Semi ';'> ) (C {(echo)} {(DQ ($ VSub_DollarName '$path'))}) ] spids: [3709 3739] ) spids: [3703 3707] ) ] spids: [3695 3742] ) redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debpaths))} ) ] ) spids: [3685 3751] ) ] spids: [3682] ) spids: [3677 3681] ) (command.FuncDef name: apt_dest body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(deb)}] action: [ (command.Pipeline children: [ (C {(echo)} { (DQ (/var/cache/apt/archives/) (${ VSub_Number 2) (_) (${ VSub_Number 3) (_) (${ VSub_Number 4) (.deb) ) } ) (C {(sed)} {(SQ <'s/:/%3a/'>)}) ] negated: F ) ] spids: [3789 3790 3820 16777215] ) (case_arm pat_list: [{(pkg)}] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m spids:[3829]) op: Equal rhs: {(DQ ($ VSub_Number '$5'))} spids: [3829] ) ] spids: [3827] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m spids:[3835]) op: Equal rhs: {(DQ (debootstrap.invalid))} spids: [3835] ) ] spids: [3835] ) (C {(printf)} {(DQ ('%s'))} {(DQ ($ VSub_DollarName '$APTSTATE') (/lists/))}) (command.Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name m) (_) ($ VSub_Number '$6'))}) (C {(sed)} {(SQ <'s/\\//_/g'>)}) ] negated: F ) ] spids: [3823 3824 3901 16777215] ) (case_arm pat_list: [{(rel)}] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m spids:[3910]) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [3910] ) ] spids: [3908] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m spids:[3916]) op: Equal rhs: {(DQ (debootstrap.invalid))} spids: [3916] ) ] spids: [3916] ) (C {(printf)} {(DQ ('%s'))} {(DQ ($ VSub_DollarName '$APTSTATE') (/lists/))}) (command.Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name m) (_) ($ VSub_Number '$4'))}) (C {(sed)} {(SQ <'s/\\//_/g'>)}) ] negated: F ) ] spids: [3904 3905 3981 16777215] ) ] spids: [3780 3786 3984] ) ] spids: [3761] ) spids: [3756 3760] ) (command.FuncDef name: get_release_checksum body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:reldest spids:[4003]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [4003] ) ] spids: [4001] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[4011]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [4011] ) ] spids: [4009] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$DEBOOTSTRAP_CHECKSUM_FIELD'))} {(Lit_Other '=')} {(MD5SUM)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:match spids:[4037]) op: Equal rhs: {(DQ ('^[Mm][Dd]5[Ss][Uu][Mm]'))} spids: [4037] ) ] spids: [4035] ) ] spids: [16777215 4032] ) ] else_action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:match spids:[4048]) op: Equal rhs: {(DQ ('^[Ss][Hh][Aa]') ($ VSub_DollarName '$SHA_SIZE') (':'))} spids: [4048] ) ] spids: [4046] ) ] spids: [4043 4056] ) (command.Pipeline children: [ (command.SimpleCommand words: [{(sed)} {(-n)} {(DQ (/) ($ VSub_DollarName '$match') ('/,/^[^ ]/p'))}] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$reldest'))} ) ] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(a)} {(b)} {(c)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$c'))} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$path'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(echo)} {(DQ ($ VSub_DollarName '$a') (' ') ($ VSub_DollarName '$b'))} ) terminator: <Op_Semi ';'> ) ] spids: [16777215 4110] ) ] spids: [16777215 4121] ) ] spids: [4090 4124] ) ) (C {(head)} {(-n)} {(1)}) ] negated: F ) ] spids: [3998] ) spids: [3993 3997] ) (command.FuncDef name: extract_release_components body: (command.BraceGroup children: [ (command.Sentence child: (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:reldest spids:[4147]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [4147] ) ] spids: [4145] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:TMPCOMPONENTS spids:[4156]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(sed)} {(-n)} {(SQ <'s/Components: *//p'>)} {(DQ ($ VSub_DollarName '$reldest'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [4158 4170] ) ) } spids: [4156] ) ] spids: [4156] ) (command.ForEach iter_name: c iter_words: [{($ VSub_DollarName '$TMPCOMPONENTS')}] do_arg_iter: F body: (command.DoGroup children: [ (C {(eval)} { (DQ ('\n') ('\t\tcase ') (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (c) (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) (' in\n') ('\t\t ') ($ VSub_DollarName '$USE_COMPONENTS') (')\n') ('\t\t\tCOMPONENTS=') (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('COMPONENTS ') (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) (c) (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\t\t;;\n') ('\t\tesac\n') ('\t\t') ) } ) ] spids: [4184 4214] ) spids: [4179 4182] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPONENTS spids:[4217]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(echo)} {($ VSub_DollarName '$COMPONENTS')})] ) left_token: <Left_CommandSub '$('> spids: [4219 4223] ) ) } spids: [4217] ) ] spids: [4217] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$COMPONENTS'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mv)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$reldest') (.malformed))} ) (C {(error)} {(1)} {(INVALIDREL)} {(DQ ('Invalid Release file, no valid components'))}) ] spids: [16777215 4240] ) ] spids: [16777215 4266] ) ] spids: [4142] ) spids: [4137 4141] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CODENAME spids:[4271]) op: Equal rhs: {(DQ )} spids: [4271] ) ] spids: [4271] ) (command.FuncDef name: validate_suite body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:reldest spids:[4285]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [4285] ) ] spids: [4283] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:CODENAME spids:[4292]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(sed)} {(-n)} {(DQ ('s/^Codename: *//p'))} {(DQ ($ VSub_DollarName '$reldest'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [4293 4305] ) } spids: [4292] ) ] spids: [4292] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:suite spids:[4310]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(sed)} {(-n)} {(DQ ('s/^Suite: *//p'))} {(DQ ($ VSub_DollarName '$reldest'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [4311 4323] ) } spids: [4310] ) ] spids: [4308] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$SUITE'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$suite'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$SUITE'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ ($ VSub_DollarName '$CODENAME'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(error)} {(1)} {(WRONGSUITE)} {(DQ ('Asked to install suite %s, but got %s (codename: %s) from mirror'))} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$suite'))} {(DQ ($ VSub_DollarName '$CODENAME'))} ) ] spids: [16777215 4362] ) ] spids: [16777215 4388] ) ] spids: [4280] ) spids: [4275 4279] ) (command.FuncDef name: split_inline_sig body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:inreldest spids:[4403]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [4403] ) ] spids: [4401] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:reldest spids:[4411]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [4411] ) ] spids: [4409] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:relsigdest spids:[4419]) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [4419] ) ] spids: [4417] ) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$relsigdest'))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nl spids:[4459]) op: Equal rhs: {(DQ )} spids: [4459] ) ] spids: [4459] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:state spids:[4464]) op: Equal rhs: {(pre-begin)} spids: [4464] ) ] spids: [4464] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (command.SimpleCommand words: [{(read)} {(-r)} {(line)}] more_env: [(env_pair name:IFS val:(word.EmptyWord) spids:[4470])] ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.Case to_match: {(DQ (${ VSub_Name state))} arms: [ (case_arm pat_list: [{(pre-begin)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} {(Lit_Other '=')} {(DQ ('x-----BEGIN PGP SIGNED MESSAGE-----'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:state spids:[4520]) op: Equal rhs: {(begin)} spids: [4520] ) ] spids: [4520] ) ] spids: [16777215 4517] ) ] spids: [16777215 4524] ) ] spids: [4493 4494 4527 16777215] ) (case_arm pat_list: [{(begin)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} {(Lit_Other '=')} {(DQ (x))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:state spids:[4557]) op: Equal rhs: {(data)} spids: [4557] ) ] spids: [4557] ) ] spids: [16777215 4554] ) ] spids: [16777215 4561] ) ] spids: [4530 4531 4564 16777215] ) (case_arm pat_list: [{(data)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} {(Lit_Other '=')} {(DQ ('x-----BEGIN PGP SIGNATURE-----'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.SimpleCommand words: [ {(printf)} {(DQ ('%s') (Lit_Other '\\') (n))} {(DQ (${ VSub_Name line))} ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$relsigdest'))} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:state spids:[4615]) op: Equal rhs: {(signature)} spids: [4615] ) ] spids: [4615] ) ] spids: [16777215 4591] ) ] else_action: [ (command.SimpleCommand words: [ {(printf)} {(DQ (${ VSub_Name nl) ('%s'))} {(DQ (${ VSub_Name line))} ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$reldest'))} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:nl spids:[4644]) op: Equal rhs: {(DQ (Lit_Other '\\') (n))} spids: [4644] ) ] spids: [4644] ) ] spids: [4619 4651] ) ] spids: [4567 4568 4654 16777215] ) (case_arm pat_list: [{(signature)}] action: [ (command.SimpleCommand words: [ {(printf)} {(DQ ('%s') (Lit_Other '\\') (n))} {(DQ (${ VSub_Name line))} ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$relsigdest'))} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ (x) (${ VSub_Name line))} {(Lit_Other '=')} {(DQ ('x-----END PGP SIGNATURE-----'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(command.ControlFlow token:<ControlFlow_Break break>)] spids: [16777215 4702] ) ] spids: [16777215 4708] ) ] spids: [4657 4658 16777215 4711] ) ] spids: [4482 4490 4711] ) ] spids: [4479 4714] ) redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$inreldest'))} ) ] ) ] spids: [4398] ) spids: [4393 4397] ) (command.FuncDef name: download_release_sig body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m1 spids:[4735]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [4735] ) ] spids: [4733] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:inreldest spids:[4743]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [4743] ) ] spids: [4741] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:reldest spids:[4751]) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [4751] ) ] spids: [4749] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:relsigdest spids:[4759]) op: Equal rhs: {(DQ ($ VSub_Number '$4'))} spids: [4759] ) ] spids: [4757] ) (C {(progress)} {(0)} {(100)} {(DOWNREL)} {(DQ ('Downloading Release file'))}) (C {(progress_next)} {(100)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(get)} { (DQ ($ VSub_DollarName '$m1') (/dists/) ($ VSub_DollarName '$SUITE') (/InRelease) ) } {(DQ ($ VSub_DollarName '$inreldest'))} {(nocache)} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(split_inline_sig)} {(DQ ($ VSub_DollarName '$inreldest'))} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$relsigdest'))} ) (C {(progress)} {(100)} {(100)} {(DOWNREL)} {(DQ ('Downloading Release file'))}) ] spids: [16777215 4802] ) ] else_action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(get)} { (DQ ($ VSub_DollarName '$m1') (/dists/) ($ VSub_DollarName '$SUITE') (/Release)) } {(DQ ($ VSub_DollarName '$reldest'))} {(nocache)} ) (C {(error)} {(1)} {(NOGETREL)} {(DQ ('Failed getting release file %s'))} { (DQ ($ VSub_DollarName '$m1') (/dists/) ($ VSub_DollarName '$SUITE') (/Release)) } ) ] ) (C {(progress)} {(100)} {(100)} {(DOWNREL)} {(DQ ('Downloading Release file'))}) ] spids: [4833 4885] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$KEYRING'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$DISABLE_KEYRING'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(progress)} {(0)} {(100)} {(DOWNRELSIG)} {(DQ ('Downloading Release file signature'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_DollarName '$relsigdest'))} {(Lit_Other ']')} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(progress_next)} {(50)}) (command.AndOr ops: [Op_DPipe] children: [ (C {(get)} { (DQ ($ VSub_DollarName '$m1') (/dists/) ($ VSub_DollarName '$SUITE') (/Release.gpg) ) } {(DQ ($ VSub_DollarName '$relsigdest'))} {(nocache)} ) (C {(error)} {(1)} {(NOGETRELSIG)} {(DQ ('Failed getting release signature file %s'))} {(DQ ($ VSub_DollarName '$m1') (/dists/) ($ VSub_DollarName '$SUITE') (/Release.gpg))} ) ] ) (C {(progress)} {(50)} {(100)} {(DOWNRELSIG)} {(DQ ('Downloading Release file signature'))} ) ] spids: [16777215 4944] ) ] spids: [16777215 5003] ) (C {(info)} {(RELEASESIG)} {(DQ ('Checking Release signature'))}) (command.Pipeline children: [ (command.Subshell child: (command.AndOr ops: [Op_DPipe] children: [ (C {(gpgv)} {(--status-fd)} {(1)} {(--keyring)} {(DQ ($ VSub_DollarName '$KEYRING'))} {(--ignore-time-conflict)} {(DQ ($ VSub_DollarName '$relsigdest'))} {(DQ ($ VSub_DollarName '$reldest'))} ) (C {(true)}) ] ) spids: [5024 5052] ) (C {(read_gpg_status)}) ] negated: F ) (C {(progress)} {(100)} {(100)} {(DOWNRELSIG)} {(DQ ('Downloading Release file signature'))} ) ] spids: [16777215 4913] ) ] spids: [16777215 5072] ) ] spids: [4730] ) spids: [4725 4729] ) (command.FuncDef name: download_release_indices body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m1 spids:[5087]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name MIRRORS> suffix_op: (suffix_op.StringUnary op_id:VOp1_DPercent arg_word:{(' *')}) spids: [5089 5093] ) ) } spids: [5087] ) ] spids: [5085] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:inreldest spids:[5099]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(rel)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$m1'))} {(DQ (dists/) ($ VSub_DollarName '$SUITE') (/InRelease))} ) ] ) left_token: <Left_CommandSub '$('> spids: [5103 5121] ) ) } spids: [5099] ) ] spids: [5097] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:reldest spids:[5127]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(rel)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$m1'))} {(DQ (dists/) ($ VSub_DollarName '$SUITE') (/Release))} ) ] ) left_token: <Left_CommandSub '$('> spids: [5131 5149] ) ) } spids: [5127] ) ] spids: [5125] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:relsigdest spids:[5155]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(rel)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$m1'))} {(DQ (dists/) ($ VSub_DollarName '$SUITE') (/Release.gpg))} ) ] ) left_token: <Left_CommandSub '$('> spids: [5159 5177] ) ) } spids: [5155] ) ] spids: [5153] ) (C {(download_release_sig)} {(DQ ($ VSub_DollarName '$m1'))} {(DQ ($ VSub_DollarName '$inreldest'))} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$relsigdest'))} ) (C {(validate_suite)} {(DQ ($ VSub_DollarName '$reldest'))}) (C {(extract_release_components)} {($ VSub_DollarName '$reldest')}) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:totalpkgs spids:[5218]) op: Equal rhs: {(0)} spids: [5218] ) ] spids: [5216] ) (command.ForEach iter_name: c iter_words: [{($ VSub_DollarName '$COMPONENTS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:subpath spids:[5236]) op: Equal rhs: { (DQ ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [5236] ) ] spids: [5234] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:xzi spids:[5247]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(get_release_checksum)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$subpath') (.xz))} ) ] ) left_token: <Left_Backtick '`'> spids: [5249 5260] ) ) } spids: [5247] ) ] spids: [5245] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:bz2i spids:[5266]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(get_release_checksum)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$subpath') (.bz2))} ) ] ) left_token: <Left_Backtick '`'> spids: [5268 5279] ) ) } spids: [5266] ) ] spids: [5264] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:gzi spids:[5285]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(get_release_checksum)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$subpath') (.gz))} ) ] ) left_token: <Left_Backtick '`'> spids: [5287 5298] ) ) } spids: [5285] ) ] spids: [5283] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:normi spids:[5304]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(get_release_checksum)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$subpath'))} ) ] ) left_token: <Left_Backtick '`'> spids: [5306 5316] ) ) } spids: [5304] ) ] spids: [5302] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[5322]) op: Equal rhs: (word.EmptyWord) spids: [5322] ) ] spids: [5320] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$normi'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[5345]) op: Equal rhs: {(DQ ($ VSub_DollarName '$normi'))} spids: [5345] ) ] spids: [5345] ) ] spids: [16777215 5342] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(in_path)} {(bunzip2)}) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$bz2i'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[5377]) op: Equal rhs: {(DQ ($ VSub_DollarName '$bz2i'))} spids: [5377] ) ] spids: [5377] ) ] spids: [5351 5374] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(in_path)} {(unxz)}) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$xzi'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[5409]) op: Equal rhs: {(DQ ($ VSub_DollarName '$xzi'))} spids: [5409] ) ] spids: [5409] ) ] spids: [5383 5406] ) (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(in_path)} {(gunzip)}) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$gzi'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[5441]) op: Equal rhs: {(DQ ($ VSub_DollarName '$gzi'))} spids: [5441] ) ] spids: [5441] ) ] spids: [5415 5438] ) ] spids: [16777215 5447] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$i'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:totalpkgs spids:[5470]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: {($ VSub_DollarName '$totalpkgs')} ) right: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Name i> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('* ')} ) spids: [5478 5482] ) } ) ) spids: [5472 5485] ) ) } spids: [5470] ) ] spids: [5470] ) ] spids: [16777215 5467] ) ] else_action: [ (C {(mv)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$reldest') (.malformed))} ) (C {(error)} {(1)} {(MISSINGRELENTRY)} {(DQ ('Invalid Release file, no entry for %s'))} {(DQ ($ VSub_DollarName '$subpath'))} ) ] spids: [5489 5519] ) ] spids: [5231 5522] ) spids: [5227 5229] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:donepkgs spids:[5528]) op: Equal rhs: {(0)} spids: [5528] ) ] spids: [5526] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[5534]) op: Equal spids: [5534] ) ] spids: [5532] ) (C {(progress)} {(0)} {($ VSub_DollarName '$totalpkgs')} {(DOWNPKGS)} {(DQ ('Downloading Packages files'))} ) (command.ForEach iter_name: c iter_words: [{($ VSub_DollarName '$COMPONENTS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:subpath spids:[5564]) op: Equal rhs: { (DQ ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [5564] ) ] spids: [5562] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[5575]) op: Equal rhs: { (DQ (dists/) ($ VSub_DollarName '$SUITE') (/) ($ VSub_DollarName '$subpath') ) } spids: [5575] ) ] spids: [5573] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:xzi spids:[5586]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(get_release_checksum)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$subpath') (.xz))} ) ] ) left_token: <Left_Backtick '`'> spids: [5588 5599] ) ) } spids: [5586] ) ] spids: [5584] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:bz2i spids:[5605]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(get_release_checksum)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$subpath') (.bz2))} ) ] ) left_token: <Left_Backtick '`'> spids: [5607 5618] ) ) } spids: [5605] ) ] spids: [5603] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:gzi spids:[5624]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(get_release_checksum)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$subpath') (.gz))} ) ] ) left_token: <Left_Backtick '`'> spids: [5626 5637] ) ) } spids: [5624] ) ] spids: [5622] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:normi spids:[5643]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(get_release_checksum)} {(DQ ($ VSub_DollarName '$reldest'))} {(DQ ($ VSub_DollarName '$subpath'))} ) ] ) left_token: <Left_Backtick '`'> spids: [5645 5655] ) ) } spids: [5643] ) ] spids: [5641] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[5661]) op: Equal rhs: (word.EmptyWord) spids: [5661] ) ] spids: [5659] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[5666]) op: Equal rhs: (word.EmptyWord) spids: [5666] ) ] spids: [5664] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$normi'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[5689]) op: Equal rhs: { (DQ ($ VSub_DollarName '$ext') (' ') ($ VSub_DollarName '$normi') (' .') ) } spids: [5689] ) ] spids: [5689] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[5698]) op: Equal rhs: {(DQ ($ VSub_DollarName '$normi'))} spids: [5698] ) ] spids: [5698] ) ] spids: [16777215 5686] ) ] spids: [16777215 5704] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(in_path)} {(unxz)}) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$xzi'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[5733]) op: Equal rhs: { (DQ ($ VSub_DollarName '$ext') (' ') ($ VSub_DollarName '$xzi') (' xz') ) } spids: [5733] ) ] spids: [5733] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[5742]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name i> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$xzi')} ) spids: [5744 5748] ) ) } spids: [5742] ) ] spids: [5742] ) ] spids: [16777215 5730] ) ] spids: [16777215 5752] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(in_path)} {(bunzip2)}) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$bz2i'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[5781]) op: Equal rhs: { (DQ ($ VSub_DollarName '$ext') (' ') ($ VSub_DollarName '$bz2i') (' bz2') ) } spids: [5781] ) ] spids: [5781] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[5790]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name i> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$bz2i')} ) spids: [5792 5796] ) ) } spids: [5790] ) ] spids: [5790] ) ] spids: [16777215 5778] ) ] spids: [16777215 5800] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(in_path)} {(gunzip)}) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$gzi'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ext spids:[5829]) op: Equal rhs: { (DQ ($ VSub_DollarName '$ext') (' ') ($ VSub_DollarName '$gzi') (' gz') ) } spids: [5829] ) ] spids: [5829] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:i spids:[5838]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name i> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$gzi')} ) spids: [5840 5844] ) ) } spids: [5838] ) ] spids: [5838] ) ] spids: [16777215 5826] ) ] spids: [16777215 5848] ) (C {(progress_next)} { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$donepkgs')}) right: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Name i> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('* ')} ) spids: [5859 5863] ) } ) ) spids: [5854 5865] ) ) } ) (command.ForEach iter_name: m iter_words: [{($ VSub_DollarName '$MIRRORS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[5881]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(pkg)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$ARCH'))} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_DollarName '$path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [5885 5909] ) ) } spids: [5881] ) ] spids: [5881] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(get)} { (DQ ($ VSub_DollarName '$m') (/) ($ VSub_DollarName '$path') ) } {(DQ ($ VSub_DollarName '$pkgdest'))} {($ VSub_DollarName '$ext')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ';'> ) ] spids: [16777215 5930] ) ] spids: [16777215 5935] ) ] spids: [5878 5938] ) spids: [5874 5876] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_DollarName '$pkgdest'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(error)} {(1)} {(COULDNTDL)} {(DQ ("Couldn't download %s"))} {(DQ ($ VSub_DollarName '$path'))} ) ] spids: [16777215 5956] ) ] spids: [16777215 5974] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:donepkgs spids:[5977]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$donepkgs')}) right: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Name i> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('* ')} ) spids: [5984 5988] ) } ) ) spids: [5979 5990] ) ) } spids: [5977] ) ] spids: [5977] ) (C {(progress)} {($ VSub_DollarName '$donepkgs')} {($ VSub_DollarName '$totalpkgs')} {(DOWNPKGS)} {(DQ ('Downloading Packages files'))} ) ] spids: [5559 6007] ) spids: [5555 5557] ) ] spids: [5082] ) spids: [5077 5081] ) (command.FuncDef name: get_package_sizes body: (command.BraceGroup children: [ (command.Sentence child: (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m spids:[6026]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [6026] ) ] spids: [6024] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (command.Sentence child: (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[6037]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [6037] ) ] spids: [6035] ) terminator: <Op_Semi ';'> ) (C {(shift)}) (command.Pipeline children: [ (C {($ VSub_DollarName '$PKGDETAILS')} {(PKGS)} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_DollarName '$pkgdest'))} {(DQ ($ VSub_At '$@'))} ) (command.Subshell child: (command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:newleft spids:[6067]) op: Equal rhs: {(DQ )} spids: [6067] ) ] spids: [6067] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:totaldebs spids:[6072]) op: Equal rhs: {(0)} spids: [6072] ) ] spids: [6072] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:countdebs spids:[6076]) op: Equal rhs: {(0)} spids: [6076] ) ] spids: [6076] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(p)} {(details)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$details'))} {(Lit_Other '=')} {(DQ (-))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:newleft spids:[6112]) op: Equal rhs: { (DQ ($ VSub_DollarName '$newleft') (' ') ($ VSub_DollarName '$p') ) } spids: [6112] ) ] spids: [6112] ) ] spids: [16777215 6109] ) ] else_action: [ (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:size spids:[6123]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name details> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {('* ')} ) spids: [6125 6129] ) ) } spids: [6123] ) ] spids: [6123] ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:totaldebs spids:[6134]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: {($ VSub_DollarName '$totaldebs')} ) right: (arith_expr.ArithWord w: {($ VSub_DollarName '$size')} ) ) spids: [6136 6143] ) ) } spids: [6134] ) ] spids: [6134] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:countdebs spids:[6147]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: {($ VSub_DollarName '$countdebs')} ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [6149 6156] ) ) } spids: [6147] ) ] spids: [6147] ) ] spids: [6120 6160] ) ] spids: [6089 6163] ) ) (C {(echo)} { (DQ ($ VSub_DollarName '$countdebs') (' ') ($ VSub_DollarName '$totaldebs') ($ VSub_DollarName '$newleft') ) } ) ] ) spids: [6064 6176] ) ] negated: F ) ] spids: [6017] ) spids: [6012 6016] ) (command.FuncDef name: download_debs body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m spids:[6194]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [6194] ) ] spids: [6192] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[6202]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [6202] ) ] spids: [6200] ) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (C {(shift)}) (command.Pipeline children: [ (C {($ VSub_DollarName '$PKGDETAILS')} {(PKGS)} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_DollarName '$pkgdest'))} {(DQ ($ VSub_At '$@'))} ) (command.Subshell child: (command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:leftover spids:[6236]) op: Equal rhs: {(DQ )} spids: [6236] ) ] spids: [6236] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(p)} {(ver)} {(arc)} {(mdup)} {(fil)} {(checksum)} {(size)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$ver'))} {(Lit_Other '=')} {(DQ (-))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:leftover spids:[6283]) op: Equal rhs: { (DQ ($ VSub_DollarName '$leftover') (' ') ($ VSub_DollarName '$p') ) } spids: [6283] ) ] spids: [6283] ) ] spids: [16777215 6280] ) ] else_action: [ (C {(progress_next)} { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: {($ VSub_DollarName '$dloaddebs')} ) right: (arith_expr.ArithWord w: {($ VSub_DollarName '$size')} ) ) spids: [6297 6304] ) ) } ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:debdest spids:[6310]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(deb)} {(DQ ($ VSub_DollarName '$p'))} {(DQ ($ VSub_DollarName '$ver'))} {(DQ ($ VSub_DollarName '$arc'))} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_DollarName '$fil'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [6312 6336] ) ) } spids: [6310] ) ] spids: [6308] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(get)} { (DQ ($ VSub_DollarName '$m') (/) ($ VSub_DollarName '$fil') ) } {(DQ ($ VSub_DollarName '$TARGET') (/) ($ VSub_DollarName '$debdest'))} {(DQ ($ VSub_DollarName '$checksum'))} {(DQ ($ VSub_DollarName '$size'))} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dloaddebs spids:[6368]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: { ($ VSub_DollarName '$dloaddebs') } ) right: (arith_expr.ArithWord w: {($ VSub_DollarName '$size')} ) ) spids: [6370 6377] ) ) } spids: [6368] ) ] spids: [6368] ) (command.SimpleCommand words: [ {(echo)} { (DQ ($ VSub_DollarName '$p') (' ') ($ VSub_DollarName '$ver') (' ') ($ VSub_DollarName '$m') (/) ($ VSub_DollarName '$fil') ) } ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {($ VSub_DollarName '$TARGET') (/debootstrap/deburis) } ) ] ) (command.SimpleCommand words: [ {(echo)} { (DQ ($ VSub_DollarName '$p') (' ') ($ VSub_DollarName '$debdest') ) } ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {($ VSub_DollarName '$TARGET') (/debootstrap/debpaths) } ) ] ) ] spids: [16777215 6365] ) ] else_action: [ (C {(warning)} {(COULDNTDL)} {(DQ ("Couldn't download package %s (ver %s arch %s)"))} {(DQ ($ VSub_DollarName '$p'))} {(DQ ($ VSub_DollarName '$ver'))} {(DQ ($ VSub_DollarName '$arc'))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:leftover spids:[6435]) op: Equal rhs: { (DQ ($ VSub_DollarName '$leftover') (' ') ($ VSub_DollarName '$p') ) } spids: [6435] ) ] spids: [6435] ) ] spids: [6411 6443] ) ] spids: [6291 6446] ) ] spids: [6260 6449] ) ) (command.SimpleCommand words: [ {(echo)} { (word_part.BracedVarSub token: <VSub_Name leftover> suffix_op: (suffix_op.StringUnary op_id:VOp1_Pound arg_word:{(' ')}) spids: [6457 6461] ) } ] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(5)})] ) ] ) spids: [6233 6464] ) ] negated: F ) ] spids: [6189] ) spids: [6184 6188] ) (command.FuncDef name: download_release body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m1 spids:[6479]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name MIRRORS> suffix_op: (suffix_op.StringUnary op_id:VOp1_DPercent arg_word:{(' *')}) spids: [6481 6485] ) ) } spids: [6479] ) ] spids: [6477] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:numdebs spids:[6492]) op: Equal rhs: {(DQ ($ VSub_Pound '$#'))} spids: [6492] ) ] spids: [6490] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:countdebs spids:[6501]) op: Equal rhs: {(0)} spids: [6501] ) ] spids: [6499] ) (C {(progress)} {($ VSub_DollarName '$countdebs')} {($ VSub_DollarName '$numdebs')} {(SIZEDEBS)} {(DQ ('Finding package sizes'))} ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:totaldebs spids:[6521]) op: Equal rhs: {(0)} spids: [6521] ) ] spids: [6519] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:leftoverdebs spids:[6527]) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [6527] ) ] spids: [6525] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:leftoverdebs spids:[6538]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(printf)} {(DQ ($ VSub_DollarName '$leftoverdebs'))}) (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {(sort)} {(-u)}) (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [6539 6569] ) } spids: [6538] ) ] spids: [6538] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:numdebs spids:[6572]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(printf)} {(DQ ($ VSub_DollarName '$leftoverdebs'))}) (C {(wc)} {(-w)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [6573 6583] ) } spids: [6572] ) ] spids: [6572] ) (command.ForEach iter_name: c iter_words: [{($ VSub_DollarName '$COMPONENTS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$countdebs'))} {(-ge)} {(DQ ($ VSub_DollarName '$numdebs'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ';'> ) ] spids: [16777215 6616] ) ] spids: [16777215 6621] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[6627]) op: Equal rhs: { (DQ (dists/) ($ VSub_DollarName '$SUITE') (/) ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [6627] ) ] spids: [6625] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[6641]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(pkg)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$ARCH'))} {(DQ ($ VSub_DollarName '$m1'))} {(DQ ($ VSub_DollarName '$path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [6645 6669] ) ) } spids: [6641] ) ] spids: [6639] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ ($ VSub_DollarName '$pkgdest'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Continue continue>) terminator: <Op_Semi ';'> ) ] spids: [16777215 6688] ) ] spids: [16777215 6693] ) (C {(info)} {(CHECKINGSIZES)} {(DQ ('Checking component %s on %s...'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$m1'))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:leftoverdebs spids:[6715]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(get_package_sizes)} {(DQ ($ VSub_DollarName '$m1'))} {(DQ ($ VSub_DollarName '$pkgdest'))} {($ VSub_DollarName '$leftoverdebs')} ) ] ) left_token: <Left_CommandSub '$('> spids: [6717 6729] ) ) } spids: [6715] ) ] spids: [6715] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:countdebs spids:[6734]) op: Equal rhs: { (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$countdebs')}) right: (arith_expr.ArithWord w: { (word_part.BracedVarSub token: <VSub_Name leftoverdebs> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPercent arg_word: {(' *')} ) spids: [6740 6744] ) } ) ) spids: [6735 6746] ) } spids: [6734] ) ] spids: [6734] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:leftoverdebs spids:[6749]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name leftoverdebs> suffix_op: (suffix_op.StringUnary op_id:VOp1_Pound arg_word:{('* ')}) spids: [6750 6754] ) } spids: [6749] ) ] spids: [6749] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:totaldebs spids:[6758]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name leftoverdebs> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPercent arg_word: {(' *')} ) spids: [6759 6763] ) } spids: [6758] ) ] spids: [6758] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:leftoverdebs spids:[6766]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name leftoverdebs> suffix_op: (suffix_op.StringUnary op_id:VOp1_Pound arg_word:{('* ')}) spids: [6767 6771] ) } spids: [6766] ) ] spids: [6766] ) (C {(progress)} {($ VSub_DollarName '$countdebs')} {($ VSub_DollarName '$numdebs')} {(SIZEDEBS)} {(DQ ('Finding package sizes'))} ) ] spids: [6596 6788] ) spids: [6592 6594] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$countdebs'))} {(-ne)} {(DQ ($ VSub_DollarName '$numdebs'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(error)} {(1)} {(LEFTOVERDEBS)} {(DQ ("Couldn't find these debs: %s"))} {(DQ ($ VSub_DollarName '$leftoverdebs'))} ) ] spids: [16777215 6809] ) ] spids: [16777215 6827] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dloaddebs spids:[6833]) op: Equal rhs: {(0)} spids: [6833] ) ] spids: [6831] ) (C {(progress)} {($ VSub_DollarName '$dloaddebs')} {($ VSub_DollarName '$totaldebs')} {(DOWNDEBS)} {(DQ ('Downloading packages'))} ) (command.SimpleCommand words: [{(Lit_Other ':')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$TARGET') (/debootstrap/debpaths)} ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgs_to_get spids:[6858]) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [6858] ) ] spids: [6858] ) (command.ForEach iter_name: c iter_words: [{($ VSub_DollarName '$COMPONENTS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[6878]) op: Equal rhs: { (DQ (dists/) ($ VSub_DollarName '$SUITE') (/) ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [6878] ) ] spids: [6876] ) (command.ForEach iter_name: m iter_words: [{($ VSub_DollarName '$MIRRORS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[6904]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(pkg)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$ARCH'))} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_DollarName '$path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [6908 6932] ) ) } spids: [6904] ) ] spids: [6902] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ ($ VSub_DollarName '$pkgdest'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token: <ControlFlow_Continue continue> ) terminator: <Op_Semi ';'> ) ] spids: [16777215 6951] ) ] spids: [16777215 6956] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgs_to_get spids:[6959]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [ {(download_debs)} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_DollarName '$pkgdest'))} {($ VSub_DollarName '$pkgs_to_get')} ] redirects: [ (redir.Redir op: <Redir_GreatAnd '5>&'> fd: 5 arg_word: {(1)} ) (redir.Redir op: <Redir_GreatAnd '1>&'> fd: 1 arg_word: {(6)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [6961 6979] ) ) } spids: [6959] ) ] spids: [6959] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$pkgs_to_get'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ';'> ) ] spids: [16777215 6996] ) ] spids: [16777215 7001] ) ] spids: [6899 7004] ) redirects: [(redir.Redir op:<Redir_GreatAnd '6>&'> fd:6 arg_word:{(1)})] spids: [6895 6897] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$pkgs_to_get'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Break break>) terminator: <Op_Semi ';'> ) ] spids: [16777215 7023] ) ] spids: [16777215 7028] ) ] spids: [6873 7031] ) spids: [6869 6871] ) (C {(progress)} {($ VSub_DollarName '$dloaddebs')} {($ VSub_DollarName '$totaldebs')} {(DOWNDEBS)} {(DQ ('Downloading packages'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$pkgs_to_get'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(error)} {(1)} {(COULDNTDLPKGS)} {(DQ ("Couldn't download packages: %s"))} {(DQ ($ VSub_DollarName '$pkgs_to_get'))} ) ] spids: [16777215 7064] ) ] spids: [16777215 7082] ) ] spids: [6474] ) spids: [6469 6473] ) (command.FuncDef name: download_main_indices body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m1 spids:[7097]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name MIRRORS> suffix_op: (suffix_op.StringUnary op_id:VOp1_DPercent arg_word:{(' *')}) spids: [7099 7103] ) ) } spids: [7097] ) ] spids: [7095] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:comp spids:[7109]) op: Equal rhs: {(DQ (${ VSub_Name USE_COMPONENTS))} spids: [7109] ) ] spids: [7107] ) (C {(progress)} {(0)} {(100)} {(DOWNMAINPKGS)} {(DQ ('Downloading Packages file'))}) (C {(progress_next)} {(100)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_DollarName '$comp'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:comp spids:[7151]) op: Equal rhs: {(main)} spids: [7151] ) ] spids: [7151] ) terminator: <Op_Semi ';'> ) ] spids: [16777215 7149] ) ] spids: [16777215 7155] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:COMPONENTS spids:[7158]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {($ VSub_DollarName '$comp')}) (C {(tr)} {(SQ <'|'>)} {(SQ <' '>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [7160 7176] ) ) } spids: [7158] ) ] spids: [7158] ) (C {(export)} {(COMPONENTS)}) (command.ForEach iter_name: m iter_words: [{($ VSub_DollarName '$MIRRORS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: c iter_words: [{($ VSub_DollarName '$COMPONENTS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[7212]) op: Equal rhs: { (DQ (dists/) ($ VSub_DollarName '$SUITE') (/) ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [7212] ) ] spids: [7210] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[7226]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(pkg)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$ARCH'))} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_DollarName '$path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [7230 7254] ) ) } spids: [7226] ) ] spids: [7224] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(in_path)} {(gunzip)}) (C {(get)} { (DQ ($ VSub_DollarName '$m') (/) (${ VSub_Name path) (.gz) ) } {(DQ (${ VSub_Name pkgdest) (.gz))} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$pkgdest'))}) (C {(gunzip)} {(DQ ($ VSub_DollarName '$pkgdest') (.gz))}) ] spids: [16777215 7285] ) (if_arm cond: [ (command.Sentence child: (C {(get)} { (DQ ($ VSub_DollarName '$m') (/) ($ VSub_DollarName '$path') ) } {(DQ ($ VSub_DollarName '$pkgdest'))} ) terminator: <Op_Semi ';'> ) ] action: [(C {(true)})] spids: [7305 7320] ) ] spids: [16777215 7326] ) ] spids: [7207 7329] ) spids: [7203 7205] ) ] spids: [7195 7332] ) spids: [7191 7193] ) (C {(progress)} {(100)} {(100)} {(DOWNMAINPKGS)} {(DQ ('Downloading Packages file'))}) ] spids: [7092] ) spids: [7087 7091] ) (command.FuncDef name: download_main body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m1 spids:[7360]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name MIRRORS> suffix_op: (suffix_op.StringUnary op_id:VOp1_DPercent arg_word:{(' *')}) spids: [7362 7366] ) ) } spids: [7360] ) ] spids: [7358] ) (command.SimpleCommand words: [{(Lit_Other ':')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {($ VSub_DollarName '$TARGET') (/debootstrap/debpaths)} ) ] ) (command.ForEach iter_name: p iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: c iter_words: [{($ VSub_DollarName '$COMPONENTS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:details spids:[7405]) op: Equal rhs: {(DQ )} spids: [7405] ) ] spids: [7403] ) (command.ForEach iter_name: m iter_words: [{($ VSub_DollarName '$MIRRORS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[7424]) op: Equal rhs: { (DQ (dists/) ($ VSub_DollarName '$SUITE') (/) ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [7424] ) ] spids: [7422] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[7438]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(pkg)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$ARCH'))} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_DollarName '$path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [7442 7466] ) ) } spids: [7438] ) ] spids: [7436] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ ($ VSub_DollarName '$pkgdest'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token: <ControlFlow_Continue continue> ) terminator: <Op_Semi ';'> ) ] spids: [16777215 7485] ) ] spids: [16777215 7490] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:details spids:[7493]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$PKGDETAILS')} {(PKGS)} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_DollarName '$pkgdest'))} {(DQ ($ VSub_DollarName '$p'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [7495 7511] ) ) } spids: [7493] ) ] spids: [7493] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$details'))} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$p') (' -'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:details spids:[7536]) op: Equal rhs: {(DQ )} spids: [7536] ) ] spids: [7536] ) (command.ControlFlow token: <ControlFlow_Continue continue> ) ] spids: [16777215 7533] ) ] spids: [16777215 7544] ) (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:size spids:[7547]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name details> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {('* ')} ) spids: [7549 7553] ) ) } spids: [7547] ) ] spids: [7547] ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:details spids:[7557]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name details> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(' *')} ) spids: [7559 7563] ) ) } spids: [7557] ) ] spids: [7557] ) (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:checksum spids:[7567]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name details> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {('* ')} ) spids: [7569 7573] ) ) } spids: [7567] ) ] spids: [7567] ) terminator: <Op_Semi ';'> ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:details spids:[7577]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name details> suffix_op: (suffix_op.StringUnary op_id: VOp1_Percent arg_word: {(' *')} ) spids: [7579 7583] ) ) } spids: [7577] ) ] spids: [7577] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:debdest spids:[7589]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(deb)} {($ VSub_DollarName '$details')} ) ] ) left_token: <Left_CommandSub '$('> spids: [7591 7597] ) ) } spids: [7589] ) ] spids: [7587] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(get)} { (DQ ($ VSub_DollarName '$m') (/) (word_part.BracedVarSub token: <VSub_Name details> suffix_op: (suffix_op.StringUnary op_id: VOp1_DPound arg_word: {('* ')} ) spids: [7608 7612] ) ) } {(DQ ($ VSub_DollarName '$TARGET') (/) ($ VSub_DollarName '$debdest'))} {(DQ ($ VSub_DollarName '$checksum'))} {(DQ ($ VSub_DollarName '$size'))} ) terminator: <Op_Semi ';'> ) ] action: [ (command.SimpleCommand words: [ {(echo)} { (DQ ($ VSub_DollarName '$p') (' ') ($ VSub_DollarName '$debdest') ) } ] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {($ VSub_DollarName '$TARGET') (/debootstrap/debpaths) } ) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:details spids:[7646]) op: Equal rhs: {(DQ (done))} spids: [7646] ) ] spids: [7646] ) (command.ControlFlow token: <ControlFlow_Break break> ) ] spids: [16777215 7630] ) ] spids: [16777215 7655] ) ] spids: [7419 7658] ) spids: [7415 7417] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$details'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(command.ControlFlow token:<ControlFlow_Break break>)] spids: [16777215 7678] ) ] spids: [16777215 7684] ) ] spids: [7400 7687] ) spids: [7396 7398] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$details'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (done))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(error)} {(1)} {(COULDNTDL)} {(DQ ("Couldn't download %s"))} {(DQ ($ VSub_DollarName '$p'))} ) ] spids: [16777215 7708] ) ] spids: [16777215 7726] ) ] spids: [7388 7729] ) spids: [7382 7386] ) ] spids: [7355] ) spids: [7350 7354] ) (command.FuncDef name: get_debs body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:field spids:[7748]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [7748] ) ] spids: [7746] ) (C {(shift)}) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m1 spids:[7759]) op: Equal spids: [7759] ) (assign_pair lhs: (lhs_expr.LhsName name:c spids:[7761]) op: Equal spids: [7761] ) ] spids: [7757] ) (command.ForEach iter_name: m1 iter_words: [{($ VSub_DollarName '$MIRRORS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: c iter_words: [{($ VSub_DollarName '$COMPONENTS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[7790]) op: Equal rhs: { (DQ (dists/) ($ VSub_DollarName '$SUITE') (/) ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [7790] ) ] spids: [7788] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[7804]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(pkg)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$ARCH'))} {(DQ ($ VSub_DollarName '$m1'))} {(DQ ($ VSub_DollarName '$path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [7808 7832] ) ) } spids: [7804] ) ] spids: [7802] ) (C {(echo)} { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(DQ ($ VSub_DollarName '$PKGDETAILS'))} {(FIELD)} {(DQ ($ VSub_DollarName '$field'))} {(DQ ($ VSub_DollarName '$m1'))} {(DQ ($ VSub_DollarName '$pkgdest'))} {(DQ ($ VSub_At '$@'))} ) (C {(sed)} {(SQ <'s/ .*//'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [7838 7868] ) } ) ] spids: [7785 7871] ) spids: [7781 7783] ) ] spids: [7773 7874] ) spids: [7769 7771] ) ] spids: [7743] ) spids: [7738 7742] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:EXTRACTORS_SUPPORTED spids:[7883]) op: Equal rhs: {(DQ ('dpkg-deb ar'))} spids: [7883] ) ] spids: [7883] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:EXTRACT_DEB_TAR_OPTIONS spids:[7888]) op: Equal rhs: (word.EmptyWord) spids: [7888] ) ] spids: [7888] ) (command.FuncDef name: extract_dpkg_deb_field body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkg spids:[7904]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [7904] ) ] spids: [7902] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:field spids:[7912]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [7912] ) ] spids: [7910] ) (C {(dpkg-deb)} {(-f)} {(DQ ($ VSub_DollarName '$pkg'))} {(DQ ($ VSub_DollarName '$field'))}) ] spids: [7899] ) spids: [7894 7898] ) (command.FuncDef name: extract_dpkg_deb_data body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkg spids:[7944]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [7944] ) ] spids: [7942] ) (command.Pipeline children: [ (C {(dpkg-deb)} {(--fsys-tarfile)} {(DQ ($ VSub_DollarName '$pkg'))}) (C {(tar)} {($ VSub_DollarName '$EXTRACT_DEB_TAR_OPTIONS')} {(-xf)} {(-)}) ] negated: F ) ] spids: [7939] ) spids: [7934 7938] ) (command.FuncDef name: extract_ar_deb_field body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkg spids:[7985]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [7985] ) ] spids: [7983] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:field spids:[7993]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [7993] ) ] spids: [7991] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tarball spids:[8001]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(ar)} {(-t)} {(DQ ($ VSub_DollarName '$pkg'))}) (C {(grep)} {(DQ ('^control') (Lit_Other '\\') (.tar))}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [8002 8020] ) } spids: [8001] ) ] spids: [7999] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$tarball'))} arms: [ (case_arm pat_list: [{(control.tar.gz)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cat_cmd spids:[8036]) op: Equal rhs: {(zcat)} spids: [8036] ) ] spids: [8036] ) ] spids: [8033 8034 8039 16777215] ) (case_arm pat_list: [{(control.tar.xz)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cat_cmd spids:[8045]) op: Equal rhs: {(xzcat)} spids: [8045] ) ] spids: [8045] ) ] spids: [8042 8043 8048 16777215] ) (case_arm pat_list: [{(control.tar)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cat_cmd spids:[8054]) op: Equal rhs: {(cat)} spids: [8054] ) ] spids: [8054] ) ] spids: [8051 8052 8057 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(error)} {(1)} {(UNKNOWNCONTROLCOMP)} {(DQ ('Unknown compression type for %s in %s'))} {(DQ ($ VSub_DollarName '$tarball'))} {(DQ ($ VSub_DollarName '$pkg'))} ) ] spids: [8060 8061 8081 16777215] ) ] spids: [8024 8030 8084] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.SimpleCommand words: [{(type)} {($ VSub_DollarName '$cat_cmd')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Pipeline children: [ (C {(ar)} {(-p)} {(DQ ($ VSub_DollarName '$pkg'))} {(DQ ($ VSub_DollarName '$tarball'))} ) (C {($ VSub_DollarName '$cat_cmd')}) (command.SimpleCommand words: [{(tar)} {(-O)} {(-xf)} {(-)} {(control)} {(./control)}] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) (C {(grep)} {(-i)} {(DQ ('^') ($ VSub_DollarName '$field') (':'))}) (C {(sed)} {(-e)} {(SQ <'s/[^:]*: *//'>)}) (C {(head)} {(-n)} {(1)}) ] negated: F ) ] spids: [16777215 8101] ) ] else_action: [ (C {(error)} {(1)} {(UNPACKCMDUNVL)} {(DQ ('Extracting %s requires the %s command, which is not available'))} {(DQ ($ VSub_DollarName '$pkg'))} {(DQ ($ VSub_DollarName '$cat_cmd'))} ) ] spids: [8170 8192] ) ] spids: [7980] ) spids: [7975 7979] ) (command.FuncDef name: extract_ar_deb_data body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkg spids:[8207]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [8207] ) ] spids: [8205] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tarball spids:[8215]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(ar)} {(-t)} {(DQ ($ VSub_DollarName '$pkg'))}) (C {(grep)} {(DQ ('^data.tar'))}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [8216 8232] ) } spids: [8215] ) ] spids: [8213] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$tarball'))} arms: [ (case_arm pat_list: [{(data.tar.gz)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cat_cmd spids:[8248]) op: Equal rhs: {(zcat)} spids: [8248] ) ] spids: [8248] ) ] spids: [8245 8246 8251 16777215] ) (case_arm pat_list: [{(data.tar.bz2)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cat_cmd spids:[8257]) op: Equal rhs: {(bzcat)} spids: [8257] ) ] spids: [8257] ) ] spids: [8254 8255 8260 16777215] ) (case_arm pat_list: [{(data.tar.xz)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cat_cmd spids:[8266]) op: Equal rhs: {(xzcat)} spids: [8266] ) ] spids: [8266] ) ] spids: [8263 8264 8269 16777215] ) (case_arm pat_list: [{(data.tar)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cat_cmd spids:[8275]) op: Equal rhs: {(cat)} spids: [8275] ) ] spids: [8275] ) ] spids: [8272 8273 8278 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(error)} {(1)} {(UNKNOWNDATACOMP)} {(DQ ('Unknown compression type for %s in %s'))} {(DQ ($ VSub_DollarName '$tarball'))} {(DQ ($ VSub_DollarName '$pkg'))} ) ] spids: [8281 8282 8302 16777215] ) ] spids: [8236 8242 8305] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.SimpleCommand words: [{(type)} {($ VSub_DollarName '$cat_cmd')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Pipeline children: [ (C {(ar)} {(-p)} {(DQ ($ VSub_DollarName '$pkg'))} {(DQ ($ VSub_DollarName '$tarball'))} ) (C {($ VSub_DollarName '$cat_cmd')}) (C {(tar)} {($ VSub_DollarName '$EXTRACT_DEB_TAR_OPTIONS')} {(-xf)} {(-)}) ] negated: F ) ] spids: [16777215 8322] ) ] else_action: [ (C {(error)} {(1)} {(UNPACKCMDUNVL)} {(DQ ('Extracting %s requires the %s command, which is not available'))} {(DQ ($ VSub_DollarName '$pkg'))} {(DQ ($ VSub_DollarName '$cat_cmd'))} ) ] spids: [8352 8374] ) ] spids: [8202] ) spids: [8197 8201] ) (command.FuncDef name: valid_extractor body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:extractor spids:[8389]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [8389] ) ] spids: [8387] ) (command.ForEach iter_name: E iter_words: [{($ VSub_DollarName '$EXTRACTORS_SUPPORTED')}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$extractor'))} {(Lit_Other '=')} {(DQ ($ VSub_DollarName '$E'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 8425] ) ] spids: [16777215 8433] ) ] spids: [8405 8436] ) spids: [8401 8403] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [8384] ) spids: [8379 8383] ) (command.FuncDef name: choose_extractor body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:extractor spids:[8457]) op: Equal spids: [8457] ) ] spids: [8455] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$EXTRACTOR_OVERRIDE'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:extractor spids:[8477]) op: Equal rhs: {(DQ ($ VSub_DollarName '$EXTRACTOR_OVERRIDE'))} spids: [8477] ) ] spids: [8477] ) ] spids: [16777215 8474] ) (if_arm cond: [ (command.Sentence child: (command.SimpleCommand words: [{(type)} {(dpkg-deb)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(/dev/null)} ) (redir.Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:extractor spids:[8499]) op: Equal rhs: {(DQ (dpkg-deb))} spids: [8499] ) ] spids: [8499] ) ] spids: [8483 8496] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:extractor spids:[8508]) op: Equal rhs: {(DQ (ar))} spids: [8508] ) ] spids: [8508] ) ] spids: [8505 8514] ) (C {(info)} {(CHOSENEXTRACTOR)} {(DQ ('Chosen extractor for .deb packages: %s'))} {(DQ ($ VSub_DollarName '$extractor'))} ) (command.Case to_match: {(DQ ($ VSub_DollarName '$extractor'))} arms: [ (case_arm pat_list: [{(dpkg-deb)}] action: [ (command.FuncDef name: extract_deb_field body: (command.BraceGroup children: [ (command.Sentence child: (C {(extract_dpkg_deb_field)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [8549] ) spids: [8544 8548] ) (command.FuncDef name: extract_deb_data body: (command.BraceGroup children: [ (command.Sentence child: (C {(extract_dpkg_deb_data)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [8566] ) spids: [8561 8565] ) ] spids: [8540 8541 8578 16777215] ) (case_arm pat_list: [{(ar)}] action: [ (command.FuncDef name: extract_deb_field body: (command.BraceGroup children: [ (command.Sentence child: (C {(extract_ar_deb_field)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [8590] ) spids: [8585 8589] ) (command.FuncDef name: extract_deb_data body: (command.BraceGroup children: [ (command.Sentence child: (C {(extract_ar_deb_data)} {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] spids: [8607] ) spids: [8602 8606] ) ] spids: [8581 8582 8619 16777215] ) ] spids: [8531 8537 8622] ) ] spids: [8452] ) spids: [8447 8451] ) (command.FuncDef name: extract body: (command.BraceGroup children: [ (command.Sentence child: (command.Subshell child: (command.CommandList children: [ (C {(cd)} {(DQ ($ VSub_DollarName '$TARGET'))}) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:p spids:[8646]) op: Equal rhs: {(0)} spids: [8646] ) (assign_pair lhs: (lhs_expr.LhsName name:cat_cmd spids:[8649]) op: Equal spids: [8649] ) ] spids: [8644] ) (command.ForEach iter_name: pkg iter_words: [ { (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(debfor)} {(DQ ($ VSub_At '$@'))})] ) left_token: <Left_CommandSub '$('> spids: [8658 8664] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:p spids:[8670]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w: {($ VSub_DollarName '$p')} ) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [8672 8679] ) ) } spids: [8670] ) ] spids: [8670] ) (C {(progress)} {(DQ ($ VSub_DollarName '$p'))} {(DQ ($ VSub_Pound '$#'))} {(EXTRACTPKGS)} {(DQ ('Extracting packages'))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:packagename spids:[8700]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$pkg'))}) (C {(sed)} {(SQ <'s,^.*/,,;s,_.*$,,'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [8702 8716] ) ) } spids: [8700] ) ] spids: [8700] ) (C {(info)} {(EXTRACTING)} {(DQ ('Extracting %s...'))} {(DQ ($ VSub_DollarName '$packagename'))} ) (C {(extract_deb_data)} {(DQ (./) ($ VSub_DollarName '$pkg'))}) ] spids: [8667 8741] ) spids: [8657 8665] ) ] ) spids: [8634 8743] ) terminator: <Op_Semi ';'> ) ] spids: [8632] ) spids: [8627 8631] ) (command.FuncDef name: in_target_nofail body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.SimpleCommand words: [{($ VSub_DollarName '$CHROOT_CMD')} {(DQ ($ VSub_At '$@'))}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [(C {(true)})] spids: [16777215 8771] ) ] spids: [16777215 8777] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [8754] ) spids: [8749 8753] ) (command.FuncDef name: in_target_failmsg body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:code spids:[8797]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [8797] ) ] spids: [8795] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:msg spids:[8805]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [8805] ) ] spids: [8803] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:arg spids:[8813]) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [8813] ) ] spids: [8811] ) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) (C {(shift)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [(C {($ VSub_DollarName '$CHROOT_CMD')} {(DQ ($ VSub_At '$@'))})] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(warning)} {(DQ ($ VSub_DollarName '$code'))} {(DQ ($ VSub_DollarName '$msg'))} {(DQ ($ VSub_DollarName '$arg'))} ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:msg spids:[8861]) op: Equal rhs: {(DQ ('See %s for details'))} spids: [8861] ) ] spids: [8861] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap.log))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:arg spids:[8884]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap.log)) } spids: [8884] ) ] spids: [8884] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkg spids:[8893]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(grep)} {(SQ <'^dpkg: error processing '>)} { (DQ ($ VSub_DollarName '$TARGET') (/debootstrap/debootstrap.log) ) } ) (C {(head)} {(-n)} {(1)}) (C {(sed)} { (SQ < 's/\\(error processing \\)\\(package \\|archive \\)/\\1/' > ) } ) (C {(cut)} {(-d)} {(SQ <' '>)} {(-f)} {(4)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [8895 8936] ) ) } spids: [8893] ) ] spids: [8891] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_DollarName '$pkg'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:msg spids:[8956]) op: Equal rhs: { (DQ ($ VSub_DollarName '$msg') (' (possibly the package ') ($ VSub_DollarName '$pkg') (' is at fault)') ) } spids: [8956] ) ] spids: [8956] ) ] spids: [16777215 8953] ) ] spids: [16777215 8965] ) ] spids: [16777215 8881] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:arg spids:[8971]) op: Equal rhs: {(DQ ('the log'))} spids: [8971] ) ] spids: [8971] ) ] spids: [8968 8977] ) (C {(warning)} {(DQ ($ VSub_DollarName '$code'))} {(DQ ($ VSub_DollarName '$msg'))} {(DQ ($ VSub_DollarName '$arg'))} ) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 8839] ) ] spids: [16777215 9000] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [8792] ) spids: [8787 8791] ) (command.FuncDef name: in_target body: (command.BraceGroup children: [ (C {(in_target_failmsg)} {(IN_TARGET_FAIL)} {(DQ ('Failure trying to run: %s'))} {(DQ ($ VSub_DollarName '$CHROOT_CMD') (' ') ($ VSub_Star '$*'))} {(DQ ($ VSub_At '$@'))} ) ] spids: [9015] ) spids: [9010 9014] ) (command.FuncDef name: conditional_cp body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ ($ VSub_Number '$2') (/) ($ VSub_Number '$1'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-L)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (command.SimpleCommand words: [{(cat)} {(DQ ($ VSub_Number '$1'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$2') (/) ($ VSub_Number '$1'))} ) ] ) ] spids: [16777215 9096] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(cp)} {(-a)} {(DQ ($ VSub_Number '$1'))} {(DQ ($ VSub_Number '$2') (/) ($ VSub_Number '$1'))} ) ] spids: [9113 9126] ) ] spids: [16777215 9144] ) ] spids: [16777215 9068] ) ] spids: [16777215 9147] ) ] spids: [9048] ) spids: [9043 9047] ) (command.FuncDef name: mv_invalid_to body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m spids:[9162]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [9162] ) ] spids: [9160] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m spids:[9168]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ (word_part.BracedVarSub token: <VSub_Name m> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('http:') (Lit_Slash /) (Lit_Slash /)} ) spids: [9174 9180] ) ) } ) (C {(tr)} {(SQ </>)} {(SQ <_>)}) (C {(sed)} {(SQ <'s/_*//'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [9170 9202] ) ) } spids: [9168] ) ] spids: [9168] ) (command.Subshell child: (command.CommandList children: [ (C {(cd)} { (DQ ($ VSub_DollarName '$TARGET') (/) ($ VSub_DollarName '$APTSTATE') (/lists)) } ) (command.ForEach iter_name: a iter_words: [{(debootstrap.invalid_) (Lit_Other '*')}] do_arg_iter: F body: (command.DoGroup children: [ (C {(mv)} {(DQ ($ VSub_DollarName '$a'))} { (DQ (${ VSub_Name m) (_) (word_part.BracedVarSub token: <VSub_Name a> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {('*_')} ) spids: [9241 9245] ) ) } ) ] spids: [9227 9249] ) spids: [9222 9225] ) ] ) spids: [9206 9252] ) ] spids: [9157] ) spids: [9152 9156] ) (command.FuncDef name: setup_apt_sources body: (command.BraceGroup children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_DollarName '$TARGET') (/etc/apt))}) (command.ForEach iter_name: m iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cs spids:[9291]) op: Equal rhs: {(DQ )} spids: [9291] ) ] spids: [9289] ) (command.ForEach iter_name: c iter_words: [ { (word_part.BracedVarSub token: <VSub_Name COMPONENTS> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$USE_COMPONENTS')} ) spids: [9302 9306] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[9314]) op: Equal rhs: { (DQ (dists/) ($ VSub_DollarName '$SUITE') (/) ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [9314] ) ] spids: [9312] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[9328]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(pkg)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$ARCH'))} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_DollarName '$path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [9332 9356] ) ) } spids: [9328] ) ] spids: [9326] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_DollarName '$pkgdest'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:cs spids:[9375]) op: Equal rhs: { (DQ ($ VSub_DollarName '$cs') (' ') ($ VSub_DollarName '$c') ) } spids: [9375] ) ] spids: [9375] ) terminator: <Op_Semi ';'> ) ] spids: [16777215 9373] ) ] spids: [16777215 9383] ) ] spids: [9309 9386] ) spids: [9301 9307] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$cs'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(echo)} { (DQ ('deb ') ($ VSub_DollarName '$m') (' ') ($ VSub_DollarName '$SUITE') ($ VSub_DollarName '$cs') ) } ) terminator: <Op_Semi ';'> ) ] spids: [16777215 9406] ) ] spids: [16777215 9419] ) ] spids: [9286 9422] ) redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/etc/apt/sources.list))} ) ] spids: [9280 9284] ) ] spids: [9262] ) spids: [9257 9261] ) (command.FuncDef name: setup_etc body: (command.BraceGroup children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_DollarName '$TARGET') (/etc))}) (C {(conditional_cp)} {(/etc/resolv.conf)} {(DQ ($ VSub_DollarName '$TARGET'))}) (C {(conditional_cp)} {(/etc/hostname)} {(DQ ($ VSub_DollarName '$TARGET'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$DLDEST'))} {(Lit_Other '=')} {(apt_dest)} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {(DQ ($ VSub_DollarName '$TARGET') (/etc/apt/sources.list))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(setup_apt_sources)} {(DQ ('http://debootstrap.invalid/'))})] spids: [16777215 9502] ) ] spids: [16777215 9512] ) ] spids: [9439] ) spids: [9434 9438] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:UMOUNT_DIRS spids:[9517]) op: Equal rhs: (word.EmptyWord) spids: [9517] ) ] spids: [9517] ) (command.FuncDef name: umount_exit_function body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:realdir spids:[9530]) op: Equal spids: [9530] ) ] spids: [9528] ) (command.ForEach iter_name: dir iter_words: [{($ VSub_DollarName '$UMOUNT_DIRS')}] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:realdir spids:[9545]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(in_target_nofail)} {(readlink)} {(-f)} {(DQ ($ VSub_DollarName '$dir'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [9547 9557] ) ) } spids: [9545] ) ] spids: [9545] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$realdir'))} {(Lit_Other ']')}) (command.ControlFlow token: <ControlFlow_Continue continue> ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {(cd)} {(/)}) terminator: <Op_Semi ';'> ) (C {(umount)} { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.BracedVarSub token: <VSub_Name realdir> suffix_op: (suffix_op.StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /)} ) spids: [9587 9591] ) ) } ) ] ) spids: [9574 9594] ) (C {(true)}) ] ) ] spids: [9542 9601] ) spids: [9538 9540] ) ] spids: [9525] ) spids: [9520 9524] ) (command.FuncDef name: umount_on_exit body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$UMOUNT_DIRS'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:UMOUNT_DIRS spids:[9628]) op: Equal rhs: {(DQ ($ VSub_DollarName '$UMOUNT_DIRS') (' ') ($ VSub_Number '$1'))} spids: [9628] ) ] spids: [9628] ) ] spids: [16777215 9625] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:UMOUNT_DIRS spids:[9639]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [9639] ) ] spids: [9639] ) (C {(on_exit)} {(umount_exit_function)}) ] spids: [9636 9650] ) ] spids: [9611] ) spids: [9606 9610] ) (command.FuncDef name: clear_mtab body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_DollarName '$TARGET') (/etc/mtab))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(KW_Bang '!')} {(-h)} {(DQ ($ VSub_DollarName '$TARGET') (/etc/mtab))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$TARGET') (/etc/mtab))})] spids: [16777215 9692] ) ] spids: [16777215 9705] ) ] spids: [9660] ) spids: [9655 9659] ) (command.FuncDef name: setup_proc body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ VSub_DollarName '$HOST_OS'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (freebsd) (Lit_Other '*')}] action: [ (C {(umount_on_exit)} {(/dev)}) (C {(umount_on_exit)} {(/proc)}) (command.AndOr ops: [Op_DPipe] children: [ (command.SimpleCommand words: [{(umount)} {(DQ ($ VSub_DollarName '$TARGET') (/proc))}] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) (C {(true)}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$HOST_OS'))} {(Lit_Other '=')} {(kfreebsd)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(in_target)} {(mount)} {(-t)} {(linprocfs)} {(proc)} {(/proc)})] spids: [16777215 9773] ) ] else_action: [ (C {(mount)} {(-t)} {(linprocfs)} {(proc)} {($ VSub_DollarName '$TARGET') (/proc)}) ] spids: [9789 9804] ) ] spids: [9727 9730 9807 16777215] ) (case_arm pat_list: [{(hurd) (Lit_Other '*')}] action: [ (C {(settrans)} {(-a)} {(DQ ($ VSub_DollarName '$TARGET') (/dev))} {(/hurd/firmlink)} {(/dev)} ) (C {(settrans)} {(-a)} {(DQ ($ VSub_DollarName '$TARGET') (/servers))} {(/hurd/firmlink)} {(/servers)} ) (C {(settrans)} {(-a)} {(DQ ($ VSub_DollarName '$TARGET') (/proc))} {(/hurd/firmlink)} {(/proc)} ) ] spids: [9810 9812 9861 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(umount_on_exit)} {(/dev/pts)}) (C {(umount_on_exit)} {(/dev/shm)}) (C {(umount_on_exit)} {(/proc/bus/usb)}) (C {(umount_on_exit)} {(/proc)}) (command.AndOr ops: [Op_DPipe] children: [ (command.SimpleCommand words: [{(umount)} {(DQ ($ VSub_DollarName '$TARGET') (/proc))}] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) (C {(true)}) ] ) (C {(in_target)} {(mount)} {(-t)} {(proc)} {(proc)} {(/proc)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_DollarName '$TARGET') (/sys))} {(Lit_Other ']')} ) (command.SimpleCommand words: [ {(grep)} {(-q)} {(SQ <'[[:space:]]sysfs'>)} {(/proc/filesystems)} ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(umount_on_exit)} {(/sys)}) (command.AndOr ops: [Op_DPipe] children: [ (command.SimpleCommand words: [{(umount)} {(DQ ($ VSub_DollarName '$TARGET') (/sys))}] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(true)}) ] ) (C {(in_target)} {(mount)} {(-t)} {(sysfs)} {(sysfs)} {(/sys)}) ] spids: [16777215 9947] ) ] spids: [16777215 9983] ) (C {(on_exit)} {(clear_mtab)}) ] spids: [9864 9865 9991 16777215] ) ] spids: [9718 9724 9994] ) (C {(umount_on_exit)} {(/lib/init/rw)}) ] spids: [9715] ) spids: [9710 9714] ) (command.FuncDef name: setup_proc_fakechroot body: (command.BraceGroup children: [ (C {(rm)} {(-rf)} {(DQ ($ VSub_DollarName '$TARGET') (/proc))}) (C {(ln)} {(-s)} {(/proc)} {(DQ ($ VSub_DollarName '$TARGET'))}) ] spids: [10009] ) spids: [10004 10008] ) (command.FuncDef name: setup_devices body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(doing_variant)} {(fakechroot)}) terminator: <Op_Semi ';'> ) ] action: [ (C {(setup_devices_fakechroot)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 10053] ) ] spids: [16777215 10064] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$HOST_OS'))} arms: [ (case_arm pat_list: [{(kfreebsd) (Lit_Other '*')}] spids: [10077 10079 10082 16777215] ) (case_arm pat_list:[{(freebsd)}] spids:[10085 10086 10089 16777215]) (case_arm pat_list: [{(hurd) (Lit_Other '*')}] spids: [10092 10094 10097 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(setup_devices_simple)})] spids: [10100 10101 10107 16777215] ) ] spids: [10068 10074 10110] ) ] spids: [10043] ) spids: [10038 10042] ) (command.FuncDef name: setup_dynamic_devices body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(doing_variant)} {(fakechroot)}) terminator: <Op_Semi ';'> ) ] action: [(command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 10133] ) ] spids: [16777215 10141] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$HOST_OS'))} arms: [ (case_arm pat_list: [{(kfreebsd) (Lit_Other '*')}] action: [(C {(in_target)} {(mount)} {(-t)} {(devfs)} {(devfs)} {(/dev)})] spids: [10154 10156 10171 16777215] ) (case_arm pat_list: [{(freebsd)}] action: [ (C {(mount)} {(-t)} {(devfs)} {(devfs)} {($ VSub_DollarName '$TARGET') (/dev)}) ] spids: [10174 10175 10189 16777215] ) (case_arm pat_list: [{(hurd) (Lit_Other '*')}] action: [(C {(in_target)} {(/usr/lib/hurd/setup-translators)} {(-k)})] spids: [10192 10194 10207 16777215] ) ] spids: [10145 10151 10210] ) ] spids: [10123] ) spids: [10118 10122] ) (command.FuncDef name: setup_devices_simple body: (command.BraceGroup children: [ (C {(mknod)} {(-m)} {(666)} {($ VSub_DollarName '$TARGET') (/dev/null)} {(c)} {(1)} {(3)}) (C {(mknod)} {(-m)} {(666)} {($ VSub_DollarName '$TARGET') (/dev/zero)} {(c)} {(1)} {(5)}) (C {(mknod)} {(-m)} {(666)} {($ VSub_DollarName '$TARGET') (/dev/full)} {(c)} {(1)} {(7)}) (C {(mknod)} {(-m)} {(666)} {($ VSub_DollarName '$TARGET') (/dev/random)} {(c)} {(1)} {(8)}) (C {(mknod)} {(-m)} {(666)} {($ VSub_DollarName '$TARGET') (/dev/urandom)} {(c)} {(1)} {(9)}) (C {(mknod)} {(-m)} {(666)} {($ VSub_DollarName '$TARGET') (/dev/tty)} {(c)} {(5)} {(0)}) (C {(mkdir)} {($ VSub_DollarName '$TARGET') (/dev/pts/)} {($ VSub_DollarName '$TARGET') (/dev/shm/)} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (C {(mknod)} {(-m)} {(666)} {($ VSub_DollarName '$TARGET') (/dev/ptmx)} {(c)} {(5)} {(2)} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(warning)} {(MKNOD)} { (DQ ( 'Could not create /dev/ptmx, falling back to symlink. This chroot will require /dev/pts mounted with ptmxmode=666' ) ) } ) (C {(ln)} {(-s)} {(pts/ptmx)} {($ VSub_DollarName '$TARGET') (/dev/ptmx)}) ] spids: [16777215 10364] ) ] spids: [16777215 10386] ) (C {(ln)} {(-s)} {(/proc/self/fd)} {($ VSub_DollarName '$TARGET') (/dev/fd)}) (C {(ln)} {(-s)} {(/proc/self/fd/0)} {($ VSub_DollarName '$TARGET') (/dev/stdin)}) (C {(ln)} {(-s)} {(/proc/self/fd/1)} {($ VSub_DollarName '$TARGET') (/dev/stdout)}) (C {(ln)} {(-s)} {(/proc/self/fd/2)} {($ VSub_DollarName '$TARGET') (/dev/stderr)}) ] spids: [10220] ) spids: [10215 10219] ) (command.FuncDef name: setup_devices_fakechroot body: (command.BraceGroup children: [ (C {(rm)} {(-rf)} {(DQ ($ VSub_DollarName '$TARGET') (/dev))}) (C {(ln)} {(-s)} {(/dev)} {(DQ ($ VSub_DollarName '$TARGET'))}) ] spids: [10436] ) spids: [10431 10435] ) (command.FuncDef name: setup_dselect_method body: (command.BraceGroup children: [ (command.Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(apt)}] action: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_DollarName '$TARGET') (/var/lib/dpkg))}) (command.SimpleCommand words: [{(echo)} {(DQ ('apt apt'))}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/var/lib/dpkg/cmethopt))} ) ] ) (C {(chmod)} {(644)} {(DQ ($ VSub_DollarName '$TARGET') (/var/lib/dpkg/cmethopt))}) ] spids: [10479 10480 10517 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [(C {(error)} {(1)} {(UNKNOWNDSELECT)} {(DQ ('unknown dselect method'))})] spids: [10520 10521 10535 16777215] ) ] spids: [10470 10476 10538] ) ] spids: [10467] ) spids: [10462 10466] ) (command.FuncDef name: setup_merged_usr body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$MERGED_USR'))} {(Lit_Other '=')} {(DQ (no))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) terminator: <Op_Semi ';'> ) ] spids: [16777215 10591] ) ] spids: [16777215 10598] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10604]) op: Equal spids: [10604] ) ] spids: [10602] ) (command.Case to_match: {($ VSub_DollarName '$ARCH')} arms: [ (case_arm pat_list: [{(hurd-) (Lit_Other '*')}] action: [(command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [10614 10616 10622 16777215] ) (case_arm pat_list: [{(amd64)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10628]) op: Equal rhs: {(DQ ('lib32 lib64 libx32'))} spids: [10628] ) ] spids: [10628] ) ] spids: [10625 10626 10633 16777215] ) (case_arm pat_list: [{(i386)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10639]) op: Equal rhs: {(DQ ('lib64 libx32'))} spids: [10639] ) ] spids: [10639] ) ] spids: [10636 10637 10644 16777215] ) (case_arm pat_list: [{(mips)} {(mipsel)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10653]) op: Equal rhs: {(DQ ('lib32 lib64'))} spids: [10653] ) ] spids: [10653] ) ] spids: [10647 10650 10658 16777215] ) (case_arm pat_list: [{(mips64) (Lit_Other '*')} {(mipsn32) (Lit_Other '*')}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10669]) op: Equal rhs: {(DQ ('lib32 lib64 libo32'))} spids: [10669] ) ] spids: [10669] ) ] spids: [10661 10666 10674 16777215] ) (case_arm pat_list: [{(powerpc)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10680]) op: Equal rhs: {(DQ (lib64))} spids: [10680] ) ] spids: [10680] ) ] spids: [10677 10678 10685 16777215] ) (case_arm pat_list: [{(ppc64)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10691]) op: Equal rhs: {(DQ ('lib32 lib64'))} spids: [10691] ) ] spids: [10691] ) ] spids: [10688 10689 10696 16777215] ) (case_arm pat_list: [{(ppc64el)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10702]) op: Equal rhs: {(DQ (lib64))} spids: [10702] ) ] spids: [10702] ) ] spids: [10699 10700 10707 16777215] ) (case_arm pat_list: [{(s390x)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10713]) op: Equal rhs: {(DQ (lib32))} spids: [10713] ) ] spids: [10713] ) ] spids: [10710 10711 10718 16777215] ) (case_arm pat_list: [{(sparc)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10724]) op: Equal rhs: {(DQ (lib64))} spids: [10724] ) ] spids: [10724] ) ] spids: [10721 10722 10729 16777215] ) (case_arm pat_list: [{(sparc64)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10735]) op: Equal rhs: {(DQ ('lib32 lib64'))} spids: [10735] ) ] spids: [10735] ) ] spids: [10732 10733 10740 16777215] ) (case_arm pat_list: [{(x32)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10746]) op: Equal rhs: {(DQ ('lib32 lib64 libx32'))} spids: [10746] ) ] spids: [10746] ) ] spids: [10743 10744 10751 16777215] ) ] spids: [10607 10611 10754] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:link_dir spids:[10757]) op: Equal rhs: {(DQ ('bin sbin lib ') ($ VSub_DollarName '$link_dir'))} spids: [10757] ) ] spids: [10757] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:dir spids:[10767]) op: Equal spids: [10767] ) ] spids: [10765] ) (command.ForEach iter_name: dir iter_words: [{($ VSub_DollarName '$link_dir')}] do_arg_iter: F body: (command.DoGroup children: [ (C {(ln)} {(-s)} {(usr/) ($ VSub_DollarName '$dir')} {($ VSub_DollarName '$TARGET') (/) ($ VSub_DollarName '$dir')} ) (C {(mkdir)} {(-p)} {($ VSub_DollarName '$TARGET') (/usr/) ($ VSub_DollarName '$dir')} ) ] spids: [10779 10803] ) spids: [10775 10777] ) ] spids: [10571] ) spids: [10567 10570] ) (command.If arms: [ (if_arm cond: [(command.Sentence child:(C {(in_path)} {(perl)}) terminator:<Op_Semi ';'>)] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PKGDETAILS spids:[10832]) op: Equal rhs: {(pkgdetails_perl)} spids: [10832] ) ] spids: [10832] ) (command.FuncDef name: pkgdetails_field body: (command.BraceGroup children: [ (C {(perl)} {(-le)} { (SQ <'\n'> < '$unique = shift @ARGV; $field = lc(shift @ARGV); $mirror = shift @ARGV;\n' > <'%fields = map { $_, 0 } @ARGV;\n'> <'$prevpkg = "";\n'> <'while (<STDIN>) {\n'> <'\tchomp;\n'> <'\tnext if (/^ /);\n'> <'\tif (/^([^:]*:)\\s*(.*)$/) {\n'> <'\t\t$f = lc($1); $v = $2;\n'> <'\t\tif ($f eq "package:") {\n'> <'\t\t\t$last = 0;\n'> <'\t\t\t$pkg = $v;\n'> <'\t\t\tif ($pkg ne $prevpkg) {\n'> <'\t\t\t\tprint $output if defined $output;\n'> <'\t\t\t\tif ($unique && defined $output_val) {\n'> <'\t\t\t\t\tdelete $fields{$output_val};\n'> <'\t\t\t\t\t$last = 1 unless keys %fields;\n'> <'\t\t\t\t}\n'> <'\t\t\t\t$prevpkg = $pkg;\n'> <'\t\t\t}\n'> <'\t\t\tundef $output;\n'> <'\t\t\tundef $output_val;\n'> <'\t\t\tlast if $last;\n'> <'\t\t}\n'> <'\t\t$ver = $v if ($f eq "version:");\n'> <'\t\t$arc = $v if ($f eq "architecture:");\n'> <'\t\t$fil = $v if ($f eq "filename:");\n'> < '\t\t$chk = $v if (lc $f eq lc($ENV{DEBOOTSTRAP_CHECKSUM_FIELD}).":");\n' > <'\t\t$siz = $v if ($f eq "size:");\n'> <'\t\t$val = $v if ($f eq $field);\n'> <'\t} elsif (/^$/) {\n'> <'\t\tif (defined $val && defined $fields{$val}) {\n'> <'\t\t\t$output = sprintf "%s %s %s %s %s %s %s",\n'> <'\t\t\t $pkg, $ver, $arc, $mirror, $fil, $chk, $siz;\n'> <'\t\t\t$output_val = $val;\n'> <'\t\t}\n'> <'\t\tundef $val;\n'> <'\t}\n'> <'}\n'> <'print $output if defined $output;\n'> <'delete $fields{$output_val} if $unique && defined $output_val;\n'> <'for $v (keys %fields) {\n'> <'\tprintf ("%s -\\n", $v) if ($unique);\n'> <'}\n'> ) } {(DQ ($ VSub_At '$@'))} ) ] spids: [10842] ) spids: [10837 10841] ) (command.FuncDef name: pkgdetails_perl body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ ('WGET%'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (C {(shift)}) terminator: <Op_Semi ';'> ) (C {(perl)} {(-e)} { (SQ <'\n'> <'$v = 0;\n'> <'$allow_percentage = 0;\n'> <'while (read STDIN, $x, 1) {\n'> <'\tif ($x =~ m/\\s/) {\n'> <'\t\t$allow_percentage = 1;\n'> <'\t} elsif ($allow_percentage and $x =~ m/\\d/) {\n'> <'\t\t$v *= 10;\n'> <'\t\t$v += $x;\n'> <'\t} elsif ($allow_percentage and $x eq "%") {\n'> < '\t\tprintf "P: %d %d%s\\n", int($v / 100.0 * ($ARGV[1] - $ARGV[0]) + $ARGV[0]), $ARGV[2], ($#ARGV == 3 ? " $ARGV[3]" : "");\n' > <'\t\t$v = 0;\n'> <'\t} else {\n'> <'\t\t$v = 0;\n'> <'\t\t$allow_percentage = 0;\n'> <'\t}\n'> <'}'> ) } {(DQ ($ VSub_At '$@'))} ) ] spids: [16777215 10934] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (GETDEPS))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[10992]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [10992] ) ] spids: [10990] ) terminator: <Op_Semi ';'> ) (command.Sentence child: (C {(shift)}) terminator: <Op_Semi ';'> ) (C {(shift)}) (command.Pipeline children: [ (command.SimpleCommand words: [ {(perl)} {(-e)} { (SQ <'\n'> <'$prevpkg = "";\n'> <'@d = ();\n'> <'while (<STDIN>) {\n'> <'\tchomp;\n'> <'\tif (/^Package: (.*)$/) {\n'> <'\t\t$pkg = $1;\n'> <'\t\tif ($pkg ne $prevpkg) {\n'> <'\t\t\tfor my $d (@d) {\n'> <'\t\t\t\tprint "$d\\n";\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\t$prevpkg = $1;\n'> <'\t\t@d = ();\n'> <'\t}\n'> <'\t$in = 1 if (grep {$_ eq $pkg} @ARGV);\n'> <'\t$in = 0 if (/^$/);\n'> < '\tif ($in and (/^Depends: (.*)$/ or /^Pre-Depends: (.*)$/)) {\n' > <'\t\tfor $d (split /\\s*,\\s*/, $1) {\n'> <'\t\t\t$d =~ s/\\s*[|].*$//;\n'> <'\t\t\t$d =~ s/\\s*[(].*[)]\\s*//;\n'> <'\t\t\t$d =~ s/:.*//;\n'> <'\t\t\tpush @d, $d;\n'> <'\t\t}\n'> <'\t}\n'> <'}\n'> <'for my $d (@d) {\n'> <'\tprint "$d\\n";\n'> <'}'> ) } {(DQ ($ VSub_At '$@'))} ] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$pkgdest'))} ) ] ) (C {(sort)}) (C {(uniq)}) ] negated: F ) ] spids: [10970 10987] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (PKGS))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m spids:[11080]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [11080] ) ] spids: [11078] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:p spids:[11088]) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [11088] ) ] spids: [11086] ) (command.Sentence child: (C {(shift)}) terminator: <Op_Semi ';'> ) (command.Sentence child: (C {(shift)}) terminator: <Op_Semi ';'> ) (C {(shift)}) (command.SimpleCommand words: [ {(pkgdetails_field)} {(1)} {(Package) (Lit_Other ':')} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_At '$@'))} ] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$p'))} ) ] ) ] spids: [11058 11075] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (FIELD))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:f spids:[11147]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [11147] ) ] spids: [11145] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m spids:[11155]) op: Equal rhs: {(DQ ($ VSub_Number '$3'))} spids: [11155] ) ] spids: [11153] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:p spids:[11163]) op: Equal rhs: {(DQ ($ VSub_Number '$4'))} spids: [11163] ) ] spids: [11161] ) (command.Sentence child: (C {(shift)}) terminator: <Op_Semi ';'> ) (command.Sentence child: (C {(shift)}) terminator: <Op_Semi ';'> ) (command.Sentence child: (C {(shift)}) terminator: <Op_Semi ';'> ) (C {(shift)}) (command.SimpleCommand words: [ {(pkgdetails_field)} {(0)} {(DQ ($ VSub_DollarName '$f'))} {(DQ ($ VSub_DollarName '$m'))} {(DQ ($ VSub_At '$@'))} ] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$p'))} ) ] ) ] spids: [11125 11142] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (STANZAS))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[11226]) op: Equal rhs: {(DQ ($ VSub_Number '$2'))} spids: [11226] ) ] spids: [11224] ) terminator: <Op_Semi ';'> ) (command.Sentence child: (C {(shift)}) terminator: <Op_Semi ';'> ) (C {(shift)}) (command.SimpleCommand words: [ {(perl)} {(-e)} { (SQ <'\n'> <'my $accum = "";\n'> <'while (<STDIN>) {\n'> <'\t$accum .= $_;\n'> <'\t$in = 1 if (/^Package: (.*)$/ && grep {$_ eq $1} @ARGV);\n'> <'\tif ($in and /^$/) {\n'> <'\t\tprint $accum;\n'> <'\t\tif (substr($accum, -1) != "\\n") {\n'> <'\t\t\tprint "\\n\\n";\n'> <'\t\t} elsif (substr($accum, -2, 1) != "\\n") {\n'> <'\t\t\tprint "\\n";\n'> <'\t\t}\n'> <'\t\t$in = 0;\n'> <'\t}\n'> <'\t$accum = "" if /^$/;\n'> <'}'> ) } {(DQ ($ VSub_At '$@'))} ] redirects: [ (redir.Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$pkgdest'))} ) ] ) ] spids: [11204 11221] ) ] spids: [16777215 11271] ) ] spids: [10914] ) spids: [10909 10913] ) ] spids: [16777215 10829] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ (/usr/lib/debootstrap/pkgdetails))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PKGDETAILS spids:[11292]) op: Equal rhs: {(DQ (/usr/lib/debootstrap/pkgdetails))} spids: [11292] ) ] spids: [11292] ) ] spids: [11276 11289] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(-e)} {(DQ ($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/pkgdetails))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PKGDETAILS spids:[11314]) op: Equal rhs: {(DQ ($ VSub_DollarName '$DEBOOTSTRAP_DIR') (/pkgdetails))} spids: [11314] ) ] spids: [11314] ) ] spids: [11297 11311] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PKGDETAILS spids:[11323]) op: Equal rhs: {(DQ )} spids: [11323] ) ] spids: [11323] ) ] spids: [11320 11327] ) (command.FuncDef name: resolve_deps body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m1 spids:[11344]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name MIRRORS> suffix_op: (suffix_op.StringUnary op_id:VOp1_DPercent arg_word:{(' *')}) spids: [11346 11350] ) ) } spids: [11344] ) ] spids: [11342] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PKGS spids:[11357]) op: Equal rhs: {(DQ ($ VSub_Star '$*'))} spids: [11357] ) ] spids: [11355] ) (command.Sentence child: (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ALLPKGS spids:[11365]) op: Equal rhs: {(DQ ($ VSub_DollarName '$PKGS'))} spids: [11365] ) ] spids: [11363] ) terminator: <Op_Semi ';'> ) (command.Sentence child: (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ALLPKGS2 spids:[11374]) op: Equal rhs: {(DQ )} spids: [11374] ) ] spids: [11372] ) terminator: <Op_Semi ';'> ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$PKGS'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ )} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:NEWPKGS spids:[11402]) op: Equal rhs: {(DQ )} spids: [11402] ) ] spids: [11400] ) (command.ForEach iter_name: c iter_words: [ { (word_part.BracedVarSub token: <VSub_Name COMPONENTS> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$USE_COMPONENTS')} ) spids: [11413 11417] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[11425]) op: Equal rhs: { (DQ (dists/) ($ VSub_DollarName '$SUITE') (/) ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [11425] ) ] spids: [11423] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[11439]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(pkg)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$ARCH'))} {(DQ ($ VSub_DollarName '$m1'))} {(DQ ($ VSub_DollarName '$path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [11443 11467] ) ) } spids: [11439] ) ] spids: [11437] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:NEWPKGS spids:[11471]) op: Equal rhs: { (DQ ($ VSub_DollarName '$NEWPKGS') (' ') (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(DQ ($ VSub_DollarName '$PKGDETAILS'))} {(GETDEPS)} {(DQ ($ VSub_DollarName '$pkgdest'))} {($ VSub_DollarName '$PKGS')} ) ] ) left_token: <Left_CommandSub '$('> spids: [11475 11487] ) ) } spids: [11471] ) ] spids: [11471] ) ] spids: [11420 11491] ) spids: [11412 11418] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PKGS spids:[11494]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ ($ VSub_DollarName '$PKGS') (' ') ($ VSub_DollarName '$NEWPKGS') ) } ) (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {(sort)}) (C {(uniq)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [11495 11523] ) } spids: [11494] ) ] spids: [11494] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:REALPKGS spids:[11528]) op: Equal rhs: {(DQ )} spids: [11528] ) ] spids: [11526] ) (command.ForEach iter_name: c iter_words: [ { (word_part.BracedVarSub token: <VSub_Name COMPONENTS> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$USE_COMPONENTS')} ) spids: [11539 11543] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[11551]) op: Equal rhs: { (DQ (dists/) ($ VSub_DollarName '$SUITE') (/) ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [11551] ) ] spids: [11549] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[11565]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(pkg)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$ARCH'))} {(DQ ($ VSub_DollarName '$m1'))} {(DQ ($ VSub_DollarName '$path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [11569 11593] ) ) } spids: [11565] ) ] spids: [11563] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:REALPKGS spids:[11597]) op: Equal rhs: { (DQ ($ VSub_DollarName '$REALPKGS') (' ') (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(DQ ($ VSub_DollarName '$PKGDETAILS'))} {(PKGS)} {(REAL)} {(DQ ($ VSub_DollarName '$pkgdest'))} {($ VSub_DollarName '$PKGS')} ) (C {(sed)} {(-n)} {(SQ <'s/ .*REAL.*$//p'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [11601 11625] ) ) } spids: [11597] ) ] spids: [11597] ) ] spids: [11546 11629] ) spids: [11538 11544] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PKGS spids:[11632]) op: Equal rhs: {(DQ ($ VSub_DollarName '$REALPKGS'))} spids: [11632] ) ] spids: [11632] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ALLPKGS2 spids:[11638]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} { (DQ ($ VSub_DollarName '$PKGS') (' ') ($ VSub_DollarName '$ALLPKGS') ) } ) (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {(sort)}) (C {(uniq)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [11639 11667] ) } spids: [11638] ) ] spids: [11638] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PKGS spids:[11670]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(without)} {(DQ ($ VSub_DollarName '$ALLPKGS2'))} {(DQ ($ VSub_DollarName '$ALLPKGS'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [11671 11681] ) } spids: [11670] ) ] spids: [11670] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ALLPKGS spids:[11684]) op: Equal rhs: {(DQ ($ VSub_DollarName '$ALLPKGS2'))} spids: [11684] ) ] spids: [11684] ) ] spids: [11397 11690] ) ) (C {(echo)} {($ VSub_DollarName '$ALLPKGS')}) ] spids: [11339] ) spids: [11334 11338] ) (command.FuncDef name: setup_available body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:m1 spids:[11710]) op: Equal rhs: { (DQ (word_part.BracedVarSub token: <VSub_Name MIRRORS> suffix_op: (suffix_op.StringUnary op_id:VOp1_DPercent arg_word:{(' *')}) spids: [11712 11716] ) ) } spids: [11710] ) ] spids: [11708] ) (command.ForEach iter_name: c iter_words: [ { (word_part.BracedVarSub token: <VSub_Name COMPONENTS> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_DollarName '$USE_COMPONENTS')} ) spids: [11727 11731] ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:path spids:[11739]) op: Equal rhs: { (DQ (dists/) ($ VSub_DollarName '$SUITE') (/) ($ VSub_DollarName '$c') (/binary-) ($ VSub_DollarName '$ARCH') (/Packages) ) } spids: [11739] ) ] spids: [11737] ) (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:pkgdest spids:[11753]) op: Equal rhs: { (DQ ($ VSub_DollarName '$TARGET') (/) (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {($ VSub_DollarName '$DLDEST')} {(pkg)} {(DQ ($ VSub_DollarName '$SUITE'))} {(DQ ($ VSub_DollarName '$c'))} {(DQ ($ VSub_DollarName '$ARCH'))} {(DQ ($ VSub_DollarName '$m1'))} {(DQ ($ VSub_DollarName '$path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [11757 11781] ) ) } spids: [11753] ) ] spids: [11751] ) (C {(DQ ($ VSub_DollarName '$PKGDETAILS'))} {(STANZAS)} {(DQ ($ VSub_DollarName '$pkgdest'))} {(DQ ($ VSub_At '$@'))} ) ] spids: [11734 11808] ) redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/var/lib/dpkg/available))} ) ] spids: [11726 11732] ) (command.Pipeline children: [ (command.ForEach iter_name: pkg do_arg_iter: T body: (command.DoGroup children: [(C {(echo)} {(DQ ($ VSub_DollarName '$pkg') (' install'))})] spids: [11823 11834] ) spids: [16777215 16777215] ) (C {(in_target)} {(dpkg)} {(--set-selections)}) ] negated: F ) ] spids: [11705] ) spids: [11700 11704] ) (command.FuncDef name: get_next_predep body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:stanza spids:[11857]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [(C {(in_target_nofail)} {(dpkg)} {(--predep-package)})] ) left_token: <Left_CommandSub '$('> spids: [11859 11865] ) ) } spids: [11857] ) ] spids: [11855] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$stanza'))} {(Lit_Other ']')}) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] ) (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$stanza'))}) (C {(grep)} {(SQ <'^Package:'>)}) (C {(sed)} {(SQ <'s/^Package://; s/^ *//'>)}) ] negated: F ) ] spids: [11852] ) spids: [11847 11851] ) (command.FuncDef name: check_sane_mount body: (command.BraceGroup children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Number '$1'))}) (command.Case to_match: {(DQ ($ VSub_DollarName '$HOST_OS'))} arms: [ (case_arm pat_list: [{(Lit_Other '*') (freebsd) (Lit_Other '*')} {(hurd) (Lit_Other '*')}] spids: [11949 11955 11958 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(mknod)} {(DQ ($ VSub_Number '$1') (/test-dev-null))} {(c)} {(1)} {(3)}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [ (command.SimpleCommand words: [{(echo)} {(test)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1') (/test-dev-null))} ) ] ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-dev-null))}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 12001] ) ] spids: [16777215 12019] ) (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-dev-null))}) ] spids: [11961 11962 12032 16777215] ) ] spids: [11940 11946 12035] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SH spids:[12039]) op: Equal rhs: {(/bin/sh)} spids: [12039] ) ] spids: [12039] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-x)} {($ VSub_DollarName '$SH')} {(Lit_Other ']')}) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:SH spids:[12053]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children:[(C {(which)} {(sh)})]) left_token: <Left_Backtick '`'> spids: [12054 12058] ) } spids: [12053] ) ] spids: [12053] ) ] ) (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Number '$1') (/test-exec))} ) (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 12079 stdin_parts: [('#! ') ($ VSub_DollarName '$SH') ('\n') (':\n')] ) ] ) (C {(chmod)} {(Lit_Other '+') (x)} {(DQ ($ VSub_Number '$1') (/test-exec))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.Pipeline children: [(C {(DQ ($ VSub_Number '$1') (/test-exec))})] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-exec))}) (command.ControlFlow token: <ControlFlow_Return return> arg_word: {(1)} ) ] spids: [16777215 12102] ) ] spids: [16777215 12120] ) (C {(rm)} {(-f)} {(DQ ($ VSub_Number '$1') (/test-exec))}) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [11927] ) spids: [11922 11926] ) (command.FuncDef name: read_gpg_status body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:badsig spids:[12149]) op: Equal rhs: (word.EmptyWord) spids: [12149] ) ] spids: [12149] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:unkkey spids:[12152]) op: Equal rhs: (word.EmptyWord) spids: [12152] ) ] spids: [12152] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:validsig spids:[12155]) op: Equal rhs: (word.EmptyWord) spids: [12155] ) ] spids: [12155] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(read)} {(prefix)} {(keyword)} {(keyid)} {(rest)}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$prefix'))} {(Lit_Other '=')} {(SQ <'[GNUPG:]'>)} {(Lit_Other ']')} ) (command.ControlFlow token: <ControlFlow_Continue continue> ) ] ) (command.Case to_match: {($ VSub_DollarName '$keyword')} arms: [ (case_arm pat_list: [{(BADSIG)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:badsig spids:[12203]) op: Equal rhs: {(DQ ($ VSub_DollarName '$keyid'))} spids: [12203] ) ] spids: [12203] ) ] spids: [12200 12201 12208 16777215] ) (case_arm pat_list: [{(NO_PUBKEY)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:unkkey spids:[12214]) op: Equal rhs: {(DQ ($ VSub_DollarName '$keyid'))} spids: [12214] ) ] spids: [12214] ) ] spids: [12211 12212 12219 16777215] ) (case_arm pat_list: [{(VALIDSIG)}] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:validsig spids:[12225]) op: Equal rhs: {(DQ ($ VSub_DollarName '$keyid'))} spids: [12225] ) ] spids: [12225] ) ] spids: [12222 12223 12230 16777215] ) ] spids: [12193 12197 12233] ) ] spids: [12171 12236] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$validsig'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(info)} {(VALIDRELSIG)} {(DQ ('Valid Release signature (key id %s)'))} {(DQ ($ VSub_DollarName '$validsig'))} ) ] spids: [16777215 12250] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$badsig'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(error)} {(1)} {(BADRELSIG)} {(DQ ('Invalid Release signature (key id %s)'))} {(DQ ($ VSub_DollarName '$badsig'))} ) ] spids: [12266 12277] ) (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$unkkey'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(error)} {(1)} {(UNKNOWNRELSIG)} {(DQ ('Release signed by unknown key (key id %s)'))} {(DQ ($ VSub_DollarName '$unkkey'))} ) ] spids: [12295 12306] ) ] else_action: [ (C {(error)} {(1)} {(SIGCHECK)} {(DQ ('Error executing gpgv to check Release signature'))}) ] spids: [12324 12338] ) ] spids: [12146] ) spids: [12141 12145] ) (command.FuncDef name: without body: (command.BraceGroup children: [ (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (C {(echo)} {($ VSub_Number '$1')}) (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {(sort)}) (C {(uniq)}) ] negated: F ) terminator: <Op_Semi ';'> ) (command.Pipeline children: [ (C {(echo)} {($ VSub_Number '$2')} {($ VSub_Number '$2')}) (C {(tr)} {(SQ <' '>)} {(SQ <'\\n'>)}) ] negated: F ) ] ) spids: [12355 12399] ) (C {(sort)}) (C {(uniq)} {(-u)}) (C {(tr)} {(SQ <'\\n'>)} {(SQ <' '>)}) ] negated: F ) (C {(echo)}) ] spids: [12348] ) spids: [12343 12347] ) (command.FuncDef name: repeatn body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:n spids:[12442]) op: Equal rhs: {(DQ ($ VSub_Number '$1'))} spids: [12442] ) ] spids: [12440] ) (C {(shift)}) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$n'))} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(DQ ($ VSub_At '$@'))}) terminator: <Op_Semi ';'> ) ] action: [(command.ControlFlow token:<ControlFlow_Break break>)] spids: [16777215 12476] ) ] else_action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:n spids:[12485]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Minus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$n')}) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [12487 12496] ) ) } spids: [12485] ) ] spids: [12485] ) (C {(sleep)} {(1)}) ] spids: [12482 12505] ) ] spids: [12466 12508] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$n'))} {(-eq)} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.Sentence child: (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) terminator: <Op_Semi ';'> ) ] spids: [16777215 12526] ) ] spids: [16777215 12533] ) (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [12437] ) spids: [12432 12436] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:N_EXIT_THINGS spids:[12543]) op: Equal rhs: {(0)} spids: [12543] ) ] spids: [12543] ) (command.FuncDef name: exit_function body: (command.BraceGroup children: [ (command.Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:n spids:[12556]) op: Equal rhs: {(0)} spids: [12556] ) ] spids: [12554] ) (command.WhileUntil keyword: <KW_While while> cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$n'))} {(-lt)} {(DQ ($ VSub_DollarName '$N_EXIT_THINGS'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] body: (command.DoGroup children: [ (command.Subshell child: (command.AndOr ops: [Op_DPipe] children: [ (command.SimpleCommand words: [ {(eval)} { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(eval)} {(echo)} { (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) (Lit_LBrace '{') (EXIT_THING_) ($ VSub_DollarName '$n') (Lit_RBrace '}') } ) ] ) left_token: <Left_CommandSub '$('> spids: [12583 12593] ) } ] redirects: [ (redir.Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(true)}) ] ) spids: [12580 12601] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:n spids:[12604]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$n')}) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [12606 12615] ) ) } spids: [12604] ) ] spids: [12604] ) ] spids: [12577 12619] ) ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:N_EXIT_THINGS spids:[12622]) op: Equal rhs: {(0)} spids: [12622] ) ] spids: [12622] ) ] spids: [12551] ) spids: [12546 12550] ) (C {(trap)} {(DQ (exit_function))} {(0)}) (C {(trap)} {(DQ ('exit 129'))} {(1)}) (C {(trap)} { (DQ ('error 130 INTERRUPTED ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('Interrupt caught ... exiting') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } {(2)} ) (C {(trap)} {(DQ ('exit 131'))} {(3)}) (C {(trap)} {(DQ ('exit 143'))} {(15)}) (command.FuncDef name: on_exit body: (command.BraceGroup children: [ (C {(eval)} { (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(echo)} {(EXIT_THING_) (${ VSub_Name N_EXIT_THINGS) (Lit_Other '=') (word_part.EscapedLiteralPart token: <Lit_EscapedChar '\\"'> ) ($ VSub_Number '$1') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) } ) ] ) left_token: <Left_Backtick '`'> spids: [12682 12693] ) } ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:N_EXIT_THINGS spids:[12696]) op: Equal rhs: { (DQ (word_part.ArithSubPart anode: (arith_expr.ArithBinary op_id: Arith_Plus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$N_EXIT_THINGS')}) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) spids: [12698 12707] ) ) } spids: [12696] ) ] spids: [12696] ) ] spids: [12677] ) spids: [12672 12676] ) (command.FuncDef name: install_fakechroot_tools body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$VARIANT'))} {(Lit_Other '=')} {(DQ (fakechroot))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(export)} {(Lit_VarLike 'PATH=') (/usr/sbin) (Lit_Other ':') (/sbin) (Lit_Other ':') ($ VSub_DollarName '$PATH') } ) ] spids: [16777215 12742] ) ] spids: [16777215 12755] ) (C {(mv)} {(DQ ($ VSub_DollarName '$TARGET') (/sbin/ldconfig))} {(DQ ($ VSub_DollarName '$TARGET') (/sbin/ldconfig.REAL))} ) (command.SimpleCommand words: [ {(echo)} { (DQ ('#!/bin/sh\n') ('echo\n') ('echo ') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('Warning: Fake ldconfig called, doing nothing') (word_part.EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/sbin/ldconfig))} ) ] ) (C {(chmod)} {(755)} {(DQ ($ VSub_DollarName '$TARGET') (/sbin/ldconfig))}) (command.SimpleCommand words: [{(echo)} {(DQ ('/sbin/ldconfig\n') ('/sbin/ldconfig.REAL\n') (fakechroot))}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/var/lib/dpkg/diversions))} ) ] ) (C {(mv)} {(DQ ($ VSub_DollarName '$TARGET') (/usr/bin/ldd))} {(DQ ($ VSub_DollarName '$TARGET') (/usr/bin/ldd.REAL))} ) (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(SQ <END>)} here_end_span_id: 13007 stdin_parts: [ ('#!/usr/bin/perl\n') ('\n') ('# fakeldd\n') ('#\n') ('# Replacement for ldd with usage of objdump\n') ('#\n') ('# (c) 2003-2005 Piotr Roszatycki <dexter@debian.org>, BSD\n') ('\n') ('\n') ('my %libs = ();\n') ('\n') ('my $status = 0;\n') ('my $dynamic = 0;\n') ('my $biarch = 0;\n') ('\n') ('my $ldlinuxsodir = "/lib";\n') ('my @ld_library_path = qw(/usr/lib /lib);\n') ('\n') ('\n') ('sub ldso($) {\n') ('\tmy ($lib) = @_;\n') ('\tmy @files = ();\n') ('\n') ('\tif ($lib =~ /^\\//) {\n') ('\t $libs{$lib} = $lib;\n') ('\t push @files, $lib;\n') ('\t} else {\n') ('\t foreach my $ld_path (@ld_library_path) {\n') ('\t\tnext unless -f "$ld_path/$lib";\n') ('\t\tmy $badformat = 0;\n') ('\t\topen OBJDUMP, "objdump -p $ld_path/$lib 2>/dev/null |";\n') ('\t \twhile (my $line = <OBJDUMP>) {\n') ('\t\t if ($line =~ /file format (\\S*)$/) {\n') ('\t\t\t\t$badformat = 1 unless $format eq $1;\n') ('\t\t\t\tlast;\n') ('\t\t }\n') ('\t\t}\n') ('\t\tclose OBJDUMP;\n') ('\t\tnext if $badformat;\n') ('\t\t$libs{$lib} = "$ld_path/$lib";\n') ('\t\tpush @files, "$ld_path/$lib";\n') ('\t }\n') ('\t objdump(@files);\n') ('\t}\n') ('}\n') ('\n') ('\n') ('sub objdump(@) {\n') ('\tmy (@files) = @_;\n') ('\tmy @libs = ();\n') ('\n') ('\tforeach my $file (@files) {\n') ('\t open OBJDUMP, "objdump -p $file 2>/dev/null |";\n') ('\t while (my $line = <OBJDUMP>) {\n') ('\t\t$line =~ s/^\\s+//;\n') ('\t\tmy @f = split (/\\s+/, $line);\n') ('\t\tif ($line =~ /file format (\\S*)$/) {\n') ('\t\t if (not $format) {\n') ('\t\t\t$format = $1;\n') ('\t\t\tif ($unamearch eq "x86_64" and $format eq "elf32-i386") {\n') ('\t\t\t my $link = readlink "/lib/ld-linux.so.2";\n') ('\t\t\t if ($link =~ /^\\/emul\\/ia32-linux\\//) {\n') ('\t\t\t\t$ld_library_path[-2] = "/emul/ia32-linux/usr/lib";\n') ('\t\t\t\t$ld_library_path[-1] = "/emul/ia32-linux/lib";\n') ('\t\t\t }\n') ( '\t\t\t} elsif ($unamearch =~ /^(sparc|sparc64)$/ and $format eq "elf64-sparc") {\n' ) ('\t\t\t $ldlinuxsodir = "/lib64";\n') ('\t\t\t $ld_library_path[-2] = "/usr/lib64";\n') ('\t\t\t $ld_library_path[-1] = "/lib64";\n') ('\t\t\t}\n') ('\t\t } else {\n') ('\t\t\tnext unless $format eq $1;\n') ('\t\t }\n') ('\t\t}\n') ('\t\tif (not $dynamic and $f[0] eq "Dynamic") {\n') ('\t\t $dynamic = 1;\n') ('\t\t}\n') ('\t\tnext unless $f[0] eq "NEEDED";\n') ('\t\tif ($f[1] =~ /^ld-linux(\\.|-)/) {\n') ('\t\t $f[1] = "$ldlinuxsodir/" . $f[1];\n') ('\t\t}\n') ('\t\tif (not defined $libs{$f[1]}) {\n') ('\t\t $libs{$f[1]} = undef;\n') ('\t\t push @libs, $f[1];\n') ('\t\t}\n') ('\t }\n') ('\t close OBJDUMP;\n') ('\t}\n') ('\n') ('\tforeach my $lib (@libs) {\n') ('\t ldso($lib);\n') ('\t}\n') ('}\n') ('\n') ('\n') ('if ($#ARGV < 0) {\n') ('\tprint STDERR "fakeldd: missing file arguments\\n";\n') ('\texit 1;\n') ('}\n') ('\n') ('while ($ARGV[0] =~ /^-/) {\n') ('\tmy $arg = $ARGV[0];\n') ('\tshift @ARGV;\n') ('\tlast if $arg eq "--";\n') ('}\n') ('\n') ('open LD_SO_CONF, "/etc/ld.so.conf";\n') ('while ($line = <LD_SO_CONF>) {\n') ('\tchomp $line;\n') ('\tunshift @ld_library_path, $line;\n') ('}\n') ('close LD_SO_CONF;\n') ('\n') ('unshift @ld_library_path, split(/:/, $ENV{LD_LIBRARY_PATH});\n') ('\n') ('$unamearch = `/bin/uname -m`;\n') ('chomp $unamearch;\n') ('\n') ('foreach my $file (@ARGV) {\n') ('\tmy $address;\n') ('\t%libs = ();\n') ('\t$dynamic = 0;\n') ('\n') ('\tif ($#ARGV > 0) {\n') ('\t\tprint "$file:\\n";\n') ('\t}\n') ('\n') ('\tif (not -f $file) {\n') ('\t\tprint STDERR "ldd: $file: No such file or directory\\n";\n') ('\t\t$status = 1;\n') ('\t\tnext;\n') ('\t}\n') ('\n') ('\tobjdump($file);\n') ('\n') ('\tif ($dynamic == 0) {\n') ('\t\tprint "\\tnot a dynamic executable\\n";\n') ('\t\t$status = 1;\n') ('\t} elsif (scalar %libs eq "0") {\n') ('\t\tprint "\\tstatically linked\\n";\n') ('\t}\n') ('\n') ('\tif ($format =~ /^elf64-/) {\n') ('\t\t$address = "0x0000000000000000";\n') ('\t} else {\n') ('\t\t$address = "0x00000000";\n') ('\t}\n') ('\n') ('\tforeach $lib (keys %libs) {\n') ('\t\tif ($libs{$lib}) {\n') ('\t\t\tprintf "\\t%s => %s (%s)\\n", $lib, $libs{$lib}, $address;\n') ('\t\t} else {\n') ('\t\t\tprintf "\\t%s => not found\\n", $lib;\n') ('\t\t}\n') ('\t}\n') ('}\n') ('\n') ('exit $status;\n') ] ) (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/usr/bin/ldd))} ) ] ) (C {(chmod)} {(755)} {(DQ ($ VSub_DollarName '$TARGET') (/usr/bin/ldd))}) (command.SimpleCommand words: [{(echo)} {(DQ ('/usr/bin/ldd\n') ('/usr/bin/ldd.REAL\n') (fakechroot))}] redirects: [ (redir.Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$TARGET') (/var/lib/dpkg/diversions))} ) ] ) ] spids: [12722] ) spids: [12717 12721] ) ] )