nodes: 0, module; 1, function_definition; 2, function_name:get_all; 3, parameters; 4, block; 5, identifier:self; 6, identifier:name; 7, default_parameter; 8, expression_statement; 9, expression_statement; 10, expression_statement; 11, for_statement; 12, if_statement; 13, return_statement; 14, identifier:failobj; 15, None; 16, comment:"""Return a list of all the values for the named field.
  
          These will be sorted in the order they appeared in the original
          message, and may contain duplicates.  Any fields deleted and
          re-inserted are always appended to the header list.
  
          If no such fields exist, failobj is returned (defaults to None).
          """; 17, assignment; 18, assignment; 19, pattern_list; 20, attribute; 21, block; 22, not_operator; 23, block; 24, identifier:values; 25, identifier:values; 26, list; 27, identifier:name; 28, call; 29, identifier:k; 30, identifier:v; 31, identifier:self; 32, identifier:_headers; 33, if_statement; 34, identifier:values; 35, return_statement; 36, attribute; 37, argument_list; 38, comparison_operator:k.lower() == name; 39, block; 40, identifier:failobj; 41, identifier:name; 42, identifier:lower; 43, call; 44, identifier:name; 45, expression_statement; 46, attribute; 47, argument_list; 48, call; 49, identifier:k; 50, identifier:lower; 51, attribute; 52, argument_list; 53, identifier:values; 54, identifier:append; 55, call; 56, attribute; 57, argument_list; 58, attribute; 59, identifier:header_fetch_parse; 60, identifier:k; 61, identifier:v; 62, identifier:self; 63, identifier:policy
code: def get_all(self, name, failobj=None):
          """Return a list of all the values for the named field.
  
          These will be sorted in the order they appeared in the original
          message, and may contain duplicates.  Any fields deleted and
          re-inserted are always appended to the header list.
  
          If no such fields exist, failobj is returned (defaults to None).
          """
          values = []
          name = name.lower()
          for k, v in self._headers:
              if k.lower() == name:
                  values.append(self.policy.header_fetch_parse(k, v))
          if not values:
              return failobj
          return values