<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _generate_range_queries(self, fieldnames, operator_value_pairs):
 """Generates ElasticSearch range queries. Args: fieldnames (list):
 The fieldnames on which the search is the range query is targeted on, operator_value_pairs (dict):
 Contains (range_operator, value) pairs. The range_operator should be one of those supported by ElasticSearch (e.g. 'gt', 'lt', 'ge', 'le'). The value should be of type int or string. Notes: A bool should query with multiple range sub-queries is generated so that even if one of the multiple fields is missing from a document, ElasticSearch will be able to match some records. In the case of a 'date' keyword query, it updates date values after normalizing them by using :meth:`inspire_query_parser.utils.visitor_utils.update_date_value_in_operator_value_pairs_for_fieldname`. Additionally, in the aforementioned case, if a malformed date has been given, then the the method will return an empty dictionary. """

        if ElasticSearchVisitor.KEYWORD_TO_ES_FIELDNAME['date'] == fieldnames:
            range_queries = []
            for fieldname in fieldnames:
                updated_operator_value_pairs = \
                    update_date_value_in_operator_value_pairs_for_fieldname(fieldname, operator_value_pairs)

                if not updated_operator_value_pairs:
                    break  # Malformed date
                else:
                    range_query = {
                        'range': {
                            fieldname: updated_operator_value_pairs
                        }
                    }

                    range_queries.append(
                        generate_nested_query(ElasticSearchVisitor.DATE_NESTED_QUERY_PATH, range_query)
                        if fieldname in ElasticSearchVisitor.DATE_NESTED_FIELDS
                        else range_query
                    )
        else:
            range_queries = [{
                    'range': {
                        fieldname: operator_value_pairs
                    }
                }
                for fieldname in fieldnames
            ]

        return wrap_queries_in_bool_clauses_if_more_than_one(range_queries, use_must_clause=False)