(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tid) op: assign_op.Equal rhs: {(DQ <rekey>)} spids: [7] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LOG) op: assign_op.Equal rhs: {(${ Id.VSub_Name TEST_SSH_LOGFILE)} spids: [13] ) ] ) (C {<rm>} {<-f>} {(${ Id.VSub_Name LOG)}) (C {<cp>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy'>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy_bak'>} ) (command.ShFunction name: ssh_data_rekeying body: (BraceGroup children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_kexopt) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [49] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_opts) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_At '$@'))} spids: [57] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$_kexopts'))})] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy_bak'>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy'>} ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$_kexopt'))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy'>} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_opts) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$_opts') <' -o'> ($ Id.VSub_DollarName '$_kexopt') ) } spids: [101] ) ] ) ] spids: [63 77] ) ] ) (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)} {(${ Id.VSub_Name LOG)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_opts) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$_opts') <' -oCompression=no'>)} spids: [125] ) ] ) (command.Simple words: [ {(${ Id.VSub_Name SSH)} {($ Id.VSub_DollarName '$_opts')} {<-v>} {<-F>} {($ Id.VSub_DollarName '$OBJ') <'/ssh_proxy'>} {<somehost>} {(DQ <'cat > '> (${ Id.VSub_Name COPY))} ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name DATA)} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<fail>} {(DQ <'ssh failed ('> ($ Id.VSub_At '$@') <')'>)})] spids: [160 173] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {(${ Id.VSub_Name DATA)} {(${ Id.VSub_Name COPY)}) (C {<fail>} {(DQ <'corrupted copy ('> ($ Id.VSub_At '$@') <')'>)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<grep>} {(SQ <'NEWKEYS sent'>)} {(${ Id.VSub_Name LOG)}) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [209] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$n')} {<->} {<1>}) ) } spids: [231] ) ] ) (C {<trace>} {(DQ ($ Id.VSub_DollarName '$n') <' rekeying(s)'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$n')} {<-lt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<fail>} {(DQ <'no rekeying occured ('> ($ Id.VSub_At '$@') <')'>)})] spids: [253 266] ) ] ) ] ) ) (C {<increase_datafile_size>} {<300>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:opts) op: assign_op.Equal rhs: {(DQ )} spids: [288] ) ] ) (command.ForEach iter_name: i iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {(${ Id.VSub_Name SSH)} {<-Q>} {<kex>}) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:opts) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$opts') <' KexAlgorithms='> ($ Id.VSub_DollarName '$i') ) } spids: [314] ) ] ) ] ) ) (command.ForEach iter_name: i iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {(${ Id.VSub_Name SSH)} {<-Q>} {<cipher>}) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:opts) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$opts') <' Ciphers='> ($ Id.VSub_DollarName '$i'))} spids: [345] ) ] ) ] ) ) (command.ForEach iter_name: i iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {(${ Id.VSub_Name SSH)} {<-Q>} {<mac>}) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:opts) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$opts') <' MACs='> ($ Id.VSub_DollarName '$i'))} spids: [376] ) ] ) ] ) ) (command.ForEach iter_name: opt iter_words: [{($ Id.VSub_DollarName '$opts')}] do_arg_iter: F body: (command.DoGroup children: [ (C {<verbose>} {(DQ <'client rekey '> ($ Id.VSub_DollarName '$opt'))}) (C {<ssh_data_rekeying>} {(DQ ($ Id.VSub_DollarName '$opt'))} {<-oRekeyLimit> <Id.Lit_Equals '='> <256k>} ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {(${ Id.VSub_Name SSH)} {<-Q>} {<cipher-auth>}) (command.Simple words: [{<grep>} {(SQ <'^.*$'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_name: c iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {(${ Id.VSub_Name SSH)} {<-Q>} {<cipher-auth>}) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: kex iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {(${ Id.VSub_Name SSH)} {<-Q>} {<kex>}) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (C {<verbose>} { (DQ <'client rekey '> ($ Id.VSub_DollarName '$c') <' '> ($ Id.VSub_DollarName '$kex') ) } ) (C {<ssh_data_rekeying>} {(DQ <'KexAlgorithms='> ($ Id.VSub_DollarName '$kex'))} {<-oRekeyLimit> <Id.Lit_Equals '='> <256k>} {<-oCiphers> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$c')} ) ] ) ) ] ) ) ] spids: [422 448] ) ] ) (command.ForEach iter_name: s iter_words: [{<16>} {<1k>} {<128k>} {<256k>}] do_arg_iter: F body: (command.DoGroup children: [ (C {<verbose>} {(DQ <'client rekeylimit '> (${ Id.VSub_Name s))}) (C {<ssh_data_rekeying>} {(DQ )} {<-oCompression> <Id.Lit_Equals '='> <no>} {<-oRekeyLimit> <Id.Lit_Equals '='> ($ Id.VSub_DollarName '$s')} ) ] ) ) (command.ForEach iter_name: s iter_words: [{<5>} {<10>}] do_arg_iter: F body: (command.DoGroup children: [ (C {<verbose>} {(DQ <'client rekeylimit default '> (${ Id.VSub_Name s))}) (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)} {(${ Id.VSub_Name LOG)}) (command.Simple words: [ {(${ Id.VSub_Name SSH)} {<-oCompression> <Id.Lit_Equals '='> <no>} {<-oRekeyLimit> <Id.Lit_Equals '='> (DQ <'default '> ($ Id.VSub_DollarName '$s'))} {<-F>} {($ Id.VSub_DollarName '$OBJ') <'/ssh_proxy'>} {<somehost>} { (DQ <'cat >'> (${ Id.VSub_Name COPY) <';sleep '> ($ Id.VSub_DollarName '$s') <';sleep 3'> ) } ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name DATA)} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<fail>} {(DQ <'ssh failed'>)})] spids: [651 664] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {(${ Id.VSub_Name DATA)} {(${ Id.VSub_Name COPY)}) (C {<fail>} {(DQ <'corrupted copy'>)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<grep>} {(SQ <'NEWKEYS sent'>)} {(${ Id.VSub_Name LOG)}) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [696] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$n')} {<->} {<1>}) ) } spids: [718] ) ] ) (C {<trace>} {(DQ ($ Id.VSub_DollarName '$n') <' rekeying(s)'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$n')} {<-lt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<fail>} {(DQ <'no rekeying occured'>)})] spids: [740 753] ) ] ) ] ) ) (command.ForEach iter_name: s iter_words: [{<5>} {<10>}] do_arg_iter: F body: (command.DoGroup children: [ (C {<verbose>} {(DQ <'client rekeylimit default '> (${ Id.VSub_Name s) <' no data'>)}) (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)} {(${ Id.VSub_Name LOG)}) (C {(${ Id.VSub_Name SSH)} {<-oCompression> <Id.Lit_Equals '='> <no>} {<-oRekeyLimit> <Id.Lit_Equals '='> (DQ <'default '> ($ Id.VSub_DollarName '$s'))} {<-F>} {($ Id.VSub_DollarName '$OBJ') <'/ssh_proxy'>} {<somehost>} {(DQ <'sleep '> ($ Id.VSub_DollarName '$s') <';sleep 3'>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<fail>} {(DQ <'ssh failed'>)})] spids: [837 850] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<grep>} {(SQ <'NEWKEYS sent'>)} {(${ Id.VSub_Name LOG)}) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [863] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$n')} {<->} {<1>}) ) } spids: [885] ) ] ) (C {<trace>} {(DQ ($ Id.VSub_DollarName '$n') <' rekeying(s)'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$n')} {<-lt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<fail>} {(DQ <'no rekeying occured'>)})] spids: [907 920] ) ] ) ] ) ) (command.ForEach iter_name: s iter_words: [{<16>} {<1k>} {<128k>} {<256k>}] do_arg_iter: F body: (command.DoGroup children: [ (C {<verbose>} {(DQ <'server rekeylimit '> (${ Id.VSub_Name s))}) (C {<cp>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy_bak'>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy'>} ) (command.Simple words: [{<echo>} {(DQ <'rekeylimit '> (${ Id.VSub_Name s))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy'>} ) ] do_fork: T ) (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)} {(${ Id.VSub_Name LOG)}) (command.Simple words: [ {(${ Id.VSub_Name SSH)} {<-oCompression> <Id.Lit_Equals '='> <no>} {<-F>} {($ Id.VSub_DollarName '$OBJ') <'/ssh_proxy'>} {<somehost>} {(DQ <'cat '> (${ Id.VSub_Name DATA))} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name COPY)} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<fail>} {(DQ <'ssh failed'>)})] spids: [1030 1043] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {(${ Id.VSub_Name DATA)} {(${ Id.VSub_Name COPY)}) (C {<fail>} {(DQ <'corrupted copy'>)}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<grep>} {(SQ <'NEWKEYS sent'>)} {(${ Id.VSub_Name LOG)}) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [1075] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$n')} {<->} {<1>}) ) } spids: [1097] ) ] ) (C {<trace>} {(DQ ($ Id.VSub_DollarName '$n') <' rekeying(s)'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$n')} {<-lt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<fail>} {(DQ <'no rekeying occured'>)})] spids: [1119 1132] ) ] ) ] ) ) (command.ForEach iter_name: s iter_words: [{<5>} {<10>}] do_arg_iter: F body: (command.DoGroup children: [ (C {<verbose>} {(DQ <'server rekeylimit default '> (${ Id.VSub_Name s) <' no data'>)}) (C {<cp>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy_bak'>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy'>} ) (command.Simple words: [{<echo>} {(DQ <'rekeylimit default '> (${ Id.VSub_Name s))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy'>} ) ] do_fork: T ) (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)} {(${ Id.VSub_Name LOG)}) (C {(${ Id.VSub_Name SSH)} {<-oCompression> <Id.Lit_Equals '='> <no>} {<-F>} {($ Id.VSub_DollarName '$OBJ') <'/ssh_proxy'>} {<somehost>} {(DQ <'sleep '> ($ Id.VSub_DollarName '$s') <';sleep 3'>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<fail>} {(DQ <'ssh failed'>)})] spids: [1230 1243] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<grep>} {(SQ <'NEWKEYS sent'>)} {(${ Id.VSub_Name LOG)}) (C {<wc>} {<-l>}) ] negated: F ) ) } spids: [1256] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$n')} {<->} {<1>}) ) } spids: [1278] ) ] ) (C {<trace>} {(DQ ($ Id.VSub_DollarName '$n') <' rekeying(s)'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$n')} {<-lt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<fail>} {(DQ <'no rekeying occured'>)})] spids: [1300 1313] ) ] ) ] ) ) (C {<verbose>} {(DQ <'rekeylimit parsing'>)}) (command.ForEach iter_name: size iter_words: [{<16>} {<1k>} {<1K>} {<1m>} {<1M>} {<1g>} {<1G>} {<4G>} {<8G>}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: time iter_words: [{<1>} {<1m>} {<1M>} {<1h>} {<1H>} {<1d>} {<1D>} {<1w>} {<1W>}] do_arg_iter: F body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$size')} arms: [ (case_arm pat_list: [{<16>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bytes) op: assign_op.Equal rhs: {<16>} spids: [1400] ) ] ) ] spids: [1397 1398 1403 -1] ) (case_arm pat_list: [{<1k>} {<1K>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bytes) op: assign_op.Equal rhs: {<1024>} spids: [1411] ) ] ) ] spids: [1406 1409 1414 -1] ) (case_arm pat_list: [{<1m>} {<1M>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bytes) op: assign_op.Equal rhs: {<1048576>} spids: [1422] ) ] ) ] spids: [1417 1420 1425 -1] ) (case_arm pat_list: [{<1g>} {<1G>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bytes) op: assign_op.Equal rhs: {<1073741824>} spids: [1433] ) ] ) ] spids: [1428 1431 1436 -1] ) (case_arm pat_list: [{<4g>} {<4G>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bytes) op: assign_op.Equal rhs: {<4294967296>} spids: [1444] ) ] ) ] spids: [1439 1442 1447 -1] ) (case_arm pat_list: [{<8g>} {<8G>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bytes) op: assign_op.Equal rhs: {<8589934592>} spids: [1455] ) ] ) ] spids: [1450 1453 1458 -1] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$time')} arms: [ (case_arm pat_list: [{<1>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:seconds) op: assign_op.Equal rhs: {<1>} spids: [1474] ) ] ) ] spids: [1471 1472 1477 -1] ) (case_arm pat_list: [{<1m>} {<1M>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:seconds) op: assign_op.Equal rhs: {<60>} spids: [1485] ) ] ) ] spids: [1480 1483 1488 -1] ) (case_arm pat_list: [{<1h>} {<1H>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:seconds) op: assign_op.Equal rhs: {<3600>} spids: [1496] ) ] ) ] spids: [1491 1494 1499 -1] ) (case_arm pat_list: [{<1d>} {<1D>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:seconds) op: assign_op.Equal rhs: {<86400>} spids: [1507] ) ] ) ] spids: [1502 1505 1510 -1] ) (case_arm pat_list: [{<1w>} {<1W>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:seconds) op: assign_op.Equal rhs: {<604800>} spids: [1518] ) ] ) ] spids: [1513 1516 1521 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:b) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$SUDO')} {(${ Id.VSub_Name SSHD)} {<-T>} {<-o>} {(DQ <'rekeylimit '> ($ Id.VSub_DollarName '$size') <' '> ($ Id.VSub_DollarName '$time'))} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy'>} ) (C {<awk>} {(SQ <'/rekeylimit/{print $2}'>)}) ] negated: F ) ) } spids: [1528] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:s) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName '$SUDO')} {(${ Id.VSub_Name SSHD)} {<-T>} {<-o>} {(DQ <'rekeylimit '> ($ Id.VSub_DollarName '$size') <' '> ($ Id.VSub_DollarName '$time'))} {<-f>} {($ Id.VSub_DollarName '$OBJ') <'/sshd_proxy'>} ) (C {<awk>} {(SQ <'/rekeylimit/{print $3}'>)}) ] negated: F ) ) } spids: [1569] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$bytes'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$b'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<fatal>} { (DQ <'rekeylimit size: expected '> ($ Id.VSub_DollarName '$bytes') <' bytes got '> ($ Id.VSub_DollarName '$b') ) } ) ] spids: [1611 1629] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$seconds'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$s'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<fatal>} { (DQ <'rekeylimit time: expected '> ($ Id.VSub_DollarName '$time') <' seconds got '> ($ Id.VSub_DollarName '$s') ) } ) ] spids: [1645 1663] ) ] ) ] ) ) ] ) ) (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)} {(${ Id.VSub_Name DATA)}) ] )