Extracting important papers from literature

LLM
LNP
Sourcing literature with full control
Author

Akshay Balsubramani

Modified

June 9, 2024

Introduction

The success of the “deep research” product offerings from the large LLM providers has made it clear how easy it is to perform bespoke tasks that involve internet research. Such tools are very useful, and the self-consistency achieved by grounding them in real-world context can significantly improve the quality and interpretability of the research results. They perform a valuable type of work, scouring the internet for grounded information and synthesizing it into a coherent narrative. This is a time-consuming and tedious task that is often performed by knowledge workers and researchers, who often desire fine-grained control over sourcing of the information. Even as they adapt its content in a new direction, the sources of information remain extremely important in anchoring subjective shifts of focus.

Openly available tools like this are useful for other reasons. The cost of using these tools can be prohibitive for many researchers, especially those in smaller or less-resourced organizations. This includes licensing restrictions, which can limit access to the tools. A fully exposed modular pipeline allows more flexibility and stability in modifying workflows. And many researchers are concerned about the privacy and security of their data when using commercial tools.

For a particular use case in research or commercial applications, researchers may want to use a specific set of tools or algorithms that are not available in commercial offerings. One example is the ability to perform truly comprehensive literature search. Many open-source systems for this exist, relying on a variety of literature databases and searches, and wrapping them to hide complexity; however, they often do not allow for the level of customization that is required to really economize API calls, and keep a persistent querying pipeline active with minimal effort.

This article will explore how to automate the process of literature review and related work sourcing using LLMs. I’ll outline an automated, general pipeline that tracks these papers and their interrelations, using Google Scholar for literature search. Using LLMs to process these papers, we can draft coherent, LaTeX-formatted literature reviews, reports, and related work sections. The approach generalizes to any scholarly field, but for illustration, we fix a detailed example that we flesh out for the first time in developing this tool.

Some of this can in principle be done by open-source tools like Scholarly, but they do not allow for the level of customization that we require in trying to really economize API calls.

How grounded LLM-aided literature review works

Writing a literature review with LLMs is often successfully done with a modular and extensible pipeline. A standard workflow with SOTA performance (as described in (Agarwal et al. 2024) or (Singh et al. 2025)) consists of two major components corresponding to a common LLM design pattern – a “retrieval” phase to shortlist specific citations from the literature, and a “generation” phase that synthesizes them into the desired report.

Generation: writing the report

The next task is to summarize the papers in the working set and generate a coherent draft of the related work section. To ground the result, this is typically done using text snippets like summaries and citation contexts extracted from the publications in consideration using LLMs. More models are then applied to generate text that synthesizes these ideas into themes and narrative.

  • Retrieve citation contexts: For each pair of papers where one cites the other, fetch the citation context (the text surrounding the citation in the citing paper’s full text).
  • Summarize papers: For each paper in the working set, summarize the paper using its abstract or other metadata.
  • Draft related work section: Use the LLM to generate a coherent draft of the related work section, using the summaries and citation contexts, and the BibTeX file generated during retrieval.

Outline

In this post, we will focus on the retrieval phase of this workflow. It is something that is easy to verify, and for which a comprehensive one-stop source more or less exists in Google Scholar. It is therefore possible to build a tool to satisfy this need on a shoestring budget, in the absence of a similarly comprehensive alternative.

Sample task: report on ionizable lipids in lipid nanoparticles

We focus on the field of designing ionizable lipids (ILs) in lipid nanoparticles (LNPs) – carriers for various types of cutting-edge therapeutics in drug discovery. LNPs are a promising delivery platform for mRNA therapeutics, CRISPR/Cas gene editing, and other nucleic acid-based therapies, which found widespread usage in saving millions of lives and trillions of dollars during the COVID-19 pandemic.

LNP engineering is a rapidly accelerating field, and with the IL being of primary importance in LNP design, labs worldwide continue to explore a largely untapped design space of viable ILs. There have been a diverse variety of ILs reported to be efficiacious in the literature, in different therapeutic contexts. Sharing information about their design is crucial for progress in the field, but this has been difficult through conventional means because of the volume and diversity of the explored ILs.

To address this situation, we set up a workflow to take a snapshot of the literature in this field, a common task for researchers.

Literature search, on a budget

The first step is to obtain relevant literature, given a topic query or some text from a manuscript. Here we will assume that the user has provided a query string, but this could also be extracted from a manuscript using keyword extraction or other methods.

Google Scholar is a common one-stop shop for literature search due to its broad coverage. It renders pages as static HTML, and therefore can be parsed using standard requests functionality, without using an automated browser like Selenium.

Our focus here is to leverage every last drop of information available in the search results page, which is a static HTML page that can be parsed using standard Python libraries.

The forward links in the page, contained in the HTML tags defining it, contain a wealth of information about the neighborhood of the paper in the citation graph. So we can relatively cheaply and quickly sketch out areas of the citation network that are relevant to the query, for use in grounding the RAG systems above.

We have two goals here:

  • Build a citation graph that is as comprehensive as Google Scholar will allow.

  • Minimize API calls to Google Scholar, so as to avoid rate limits.

Setup notes: To avoid running into rate limits, a proxy service can be used; details depend on the user, and your mileage may vary. Alternatives such as the scholarly Python package (an unofficial Google Scholar API) can invoke proxies during the programmatic search. There have been other now-defunct attempts under out-of-date versions of Google Scholar to do this as well.

In extensive trials, we have found these open source alternatives unsatisfactory because they do not sufficiently optimize API calls and therefore use an order of magnitude more calls than desired or necessary in certain situations. Also, customizability in other ways (such as browsing from different devices) is not possible programmatically with such packages. But the overall functionality is something that can be done very cheaply because:

  • It involves static HTML pages, not JavaScript.

  • The way the API is structured makes building the citation graph an algorithmically efficient task – it can be done over \(n\) papers with an order of magnitude fewer calls than \(n\).

So we give a from-scratch implementation scraping the raw HTML, because what is required here is fairly minimal and may change with updates to the way Google Scholar formats its HTML pages.

Answering text queries

One of Google Scholar’s strengths inherited from Google is its fast text search over a massive corpus. We can leverage this by calling Google Scholar with text queries in different ways and mining the results, as might be desirable for a web browsing agent.

CODE
import requests
from bs4 import BeautifulSoup
import networkx as nx
import time, numpy as np, random
import re, json

BASE_URL = "https://scholar.google.com"


def get_soup(
    url, pause_sec=None
):
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3538.102 Safari/537.36 Edge/18.19582",}
    # headers = {'User-Agent': 'Mozilla/5.0'}
    pause_sec = random.random() if pause_sec is None else pause_sec
    time.sleep(pause_sec)   # to avoid hammering the server with requests
    page = requests.get(url, headers=headers)
    return BeautifulSoup(page.text, 'html.parser')


def base_scrape_search_results(url, pause_sec=None):
    soup = get_soup(url, pause_sec=pause_sec)
    results = soup.find_all('div', class_='gs_r gs_or gs_scl')
    papers = []
    for r in results:
        gs_ri_entries = r.find_all('div', class_='gs_ri')
        # Extract direct File URL (e.g., [PDF]) if available
        file_tag = r.find('div', class_='gs_ggs')
        for entry in gs_ri_entries:
            this_paper = { 'title': None, 'url': None, 'file_url': None, 'citations': None, 'citedby_url': None, 'authors': None, 'year': None, 'pubinfo': None, 'snippet': None }
            #     # Extract Title and URL from the main heading
            title_tag = entry.find('h3', class_='gs_rt')
            if title_tag and title_tag.a:
                this_paper['title'] = title_tag.a.get_text(strip=True)
                this_paper['url'] = title_tag.a['href']
            
            cited_text = entry.find('a', string=re.compile('Cited by'))
            this_paper['citations'] = int(cited_text.text.split()[-1]) if cited_text else 0
            this_paper['citedby_url'] = BASE_URL + cited_text['href'] if cited_text else None
            if file_tag and file_tag.a:
                this_paper['file_url'] = file_tag.a['href']

            # Extract Publication Info (Authors, Year, Source)
            pub_info_tag = entry.find('div', class_='gs_a')
            if not pub_info_tag:
                continue
            # .get_text() with a separator helps handle the various tags cleanly
            this_paper['pubinfo'] = pub_info_tag.get_text(separator=' ', strip=True)
        
            orig_entry_text = pub_info_tag.text
            auth_text = orig_entry_text.split('-')[0].strip()
            cit_text = orig_entry_text.split('-')[1].strip()
            authors = [x.strip('… ') for x in auth_text.split(',') if x.strip('… ') != '']
            year = re.compile(r'\b(?:20|19)\d{2}\b').findall(cit_text)
            this_paper['year'] = year[0] if len(year) > 0 else None

            authID_dict = {a: None for a in authors}
            for ntry in pub_info_tag.select('a'):
                authID_dict[ntry.text] = ntry['href'].split('?')[1].split('&')[0].split('user=')[1]
            this_paper['authors'] = authID_dict

            # Extract the abstract/snippet
            snippet_tag = entry.find('div', class_='gs_rs')
            if snippet_tag:
                this_paper['snippet'] = snippet_tag.get_text(strip=True, separator=' ')

            papers.append(this_paper)
    return papers


def basic_search_url(
    query, start_num=0, results_per_page=10
):
    query_str = '+'.join(query.split())
    url = f"{BASE_URL}/scholar?start={start_num}&q={query_str}&hl=en&num={results_per_page}&as_sdt=0,5"
    return url


def scrape_queried_papers(query, start_num=0):
    url = basic_search_url(query, start_num=start_num)
    return base_scrape_search_results(url)


def get_results_count(query, pause_sec=None):
    url = basic_search_url(query)
    soup = get_soup(url, pause_sec=pause_sec)
    # pick the `.gs_ab_mdw` node that contains “[About] … results”
    results_stats = next(div for div in soup.select('.gs_ab_mdw') if 'results' in div.text)
    count_str = re.search(r'([\d,]+)\sresults', results_stats.text).group(1)
    return int(count_str.replace(',', ''))


def get_top_papers_for_query(query, max_papers=100, min_citations=4):
    start_num = 0
    results_count = get_results_count(query)
    papers = []
    while len(papers) < min(max_papers, results_count):
        new_papers = scrape_queried_papers(query, start_num=start_num)
        if not new_papers:
            break
        start_num += len(new_papers)
        papers.extend(new_papers)
        medcit = np.median([x['citations'] for x in new_papers])
        print ("Median citations on this page: {}".format(medcit))
        if medcit < min_citations:
            print(f"Stopping search, median citations {medcit} is below threshold {min_citations}.")
            break
    return papers, results_count

A basic use of this functionality is to list all the papers that we would otherwise get by typing this search query into Google Scholar’s web interface.

<!DOCTYPE html>
<html><head><title>Google Scholar</title><meta content="text/html;charset=utf-8" http-equiv="Content-Type"/><meta content="IE=Edge" http-equiv="X-UA-Compatible"/><meta content="always" name="referrer"/><meta content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=2" name="viewport"/><meta content="telephone=no" name="format-detection"/><link href="/favicon.ico" rel="shortcut icon"/><meta content="Google Scholar" name="application-name"/><meta content="/android-touch-icon-128x128.png" name="msapplication-TileImage"/><meta content="#ffffff" name="msapplication-TileColor"/><style>html,body,form,table,div,h1,h2,h3,h4,h5,h6,img,ol,ul,li,button{margin:0;padding:0;border:0;}table{border-collapse:collapse;border-width:0;empty-cells:show;}html,body{height:100%}#gs_top{position:relative;box-sizing:border-box;min-height:100%;min-width:964px;-webkit-tap-highlight-color:rgba(0,0,0,0);}#gs_top>*:not(#x){-webkit-tap-highlight-color:rgba(204,204,204,.5);}.gs_el_ph #gs_top,.gs_el_ta #gs_top{min-width:320px;}#gs_top.gs_nscl{position:fixed;width:100%;}body,td,input,button{font-size:13px;font-family:Arial,sans-serif;line-height:1.24;}body{background:#fff;color:#222;-webkit-text-size-adjust:100%;-moz-text-size-adjust:none;}.gs_gray{color:#777777}.gs_red{color:#dd4b39}.gs_grn{color:#006621}.gs_lil{font-size:11px}.gs_med{font-size:16px}.gs_hlt{font-weight:bold;}a:link{color:#1a0dab;text-decoration:none}a:visited{color:#660099;text-decoration:none}a:hover,a:hover .gs_lbl{text-decoration:underline}a:active,a:active .gs_lbl,a .gs_lbl:active{color:#d14836}.gs_el_tc a:hover,.gs_el_tc a:hover .gs_lbl{text-decoration:none}.gs_pfcs a:focus,.gs_pfcs button:focus,.gs_pfcs input:focus,.gs_pfcs label:focus{outline:none}.gs_a,.gs_a a:link,.gs_a a:visited{color:#006621}.gs_a a:active{color:#d14836}a.gs_fl:link,.gs_fl a:link{color:#1a0dab}a.gs_fl:visited,.gs_fl a:visited{color:#660099}a.gs_fl:active,.gs_fl a:active{color:#d14836}.gs_fl{color:#777777}.gs_ctc,.gs_ctu{vertical-align:middle;font-size:11px;font-weight:bold}.gs_ctc{color:#1a0dab}.gs_ctg,.gs_ctg2{font-size:13px;font-weight:bold}.gs_ctg{color:#1a0dab}a.gs_pda,.gs_pda a{padding:7px 0 5px 0}.gs_alrt{background:#f9edbe;border:1px solid #f0c36d;padding:0 16px;text-align:center;box-shadow:0 2px 4px rgba(0,0,0,.2);border-radius:2px;}.gs_alrt:empty{display:none;}.gs_spc{display:inline-block;width:12px}.gs_br{width:0;font-size:0}.gs_ibl{display:inline-block;}.gs_scl:after{content:"";display:table;clear:both;}.gs_ind{padding-left:8px;text-indent:-8px}.gs_ico,.gs_icm{display:inline-block;background:no-repeat url(/intl/en/scholar/images/1x/sprite_20161020.png);background-position:-23px -161px;background-size:169px;width:21px;height:21px;}@media(-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi){.gs_ico,.gs_icm{background-image:url(/intl/en/scholar/images/2x/sprite_20161020.png);}}.gs_el_ta .gs_nta,.gs_ota,.gs_el_ph .gs_nph,.gs_oph{display:none}.gs_el_ta .gs_ota,.gs_el_ph .gs_oph{display:inline}.gs_el_ta div.gs_ota,.gs_el_ph div.gs_oph{display:block}.gs_sth_g{visibility:hidden;max-height:0;}.gs_sth_vis .gs_sth_g{max-height:1000px;}.gs_sth_vis .gs_sth_b{position:fixed;top:0;}.gs_sth_trk .gs_sth_b{position:absolute;top:auto;}@keyframes gs_anm_spin{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}.gs_invis{visibility:hidden;}.gs_rimg{display:block;background-color:#e5e5e5;border-radius:50%;overflow:hidden;position:relative;z-index:1;}.gs_rimg>img{position:absolute;margin:auto;left:0;top:0;bottom:0;right:0;}.gs_in_txtw{display:inline-block;vertical-align:middle;}.gs_in_txtb{display:block;}.gs_in_txt{color:#000;background-color:#fff;font-size:16px;box-sizing:border-box;height:29px;line-height:23px;border:1px solid #d9d9d9;border-top-color:#c0c0c0;padding:3px 6px 1px 8px;border-radius:1px;outline:none;-webkit-appearance:none;-moz-appearance:none;}.gs_el_tc .gs_in_txt{font-size:18px;}.gs_in_txtb .gs_in_txt{width:100%;}.gs_in_rnd .gs_in_txt{border-radius:14.5px;padding:3px 12px 1px 12px;}.gs_in_txt:hover{border-color:#b9b9b9;border-top-color:#a0a0a0;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);}.gs_in_txte .gs_in_txt{border-color:#dd4b39;}.gs_in_txt:focus{border-color:#4d90fe;box-shadow:inset 0 1px 2px rgba(0,0,0,.3);}.gs_in_txt:disabled{color:#b8b8b8;border-color:#f1f1f1;box-shadow:none;}.gs_in_txtm .gs_in_txt{font-size:13px;height:24px;line-height:16px;padding:3px 6px;}.gs_in_txtm.gs_in_rnd .gs_in_txt{border-radius:12px;}.gs_el_tc .gs_in_txtm .gs_in_txt{height:29px;line-height:21px;}.gs_el_tc .gs_in_txtm.gs_in_rnd .gs_in_txt{border-radius:14.5px;}.gs_in_txtl .gs_in_txt{height:41px;padding:9px 43px;}.gs_in_txtl.gs_in_rnd .gs_in_txt{border-radius:20.5px;}.gs_in_txts{font-size:13px;line-height:18px;color:#666;}.gs_in_txts:not(:empty){margin-top:2px;}.gs_in_txte .gs_in_txts{color:#dd4b39;}button{position:relative;z-index:1;box-sizing:border-box;font-size:13px;cursor:pointer;height:29px;line-height:normal;min-width:72px;padding:0 8px;color:#444;border:1px solid rgba(0,0,0,.1);border-radius:3px;text-align:center;background-color:#f5f5f5;-ms-user-select:none;user-select:none;}button.gs_btn_rnd{border-radius:14px;padding:0 12px;}button.gs_btn_rnd.gs_btn_rndci{padding-left:4px;}button.gs_btn_lrge{height:41px;min-width:82px;padding:0 9px;}button.gs_btn_lrge.gs_btn_lrge_asym{padding-left:5px;padding-right:8px;}button.gs_btn_lrge.gs_btn_rnd{border-radius:20px;padding:0 16px;}button.gs_btn_lrge.gs_btn_rnd.gs_btn_rndci{padding-left:10px;}button.gs_btn_cir{border-radius:14.5px;min-width:29px;}button.gs_btn_lrge.gs_btn_cir{border-radius:20.5px;min-width:41px;}button.gs_btn_mini{padding:0;border:0;}.gs_el_ph button.gs_btn_mph,.gs_el_ta button.gs_btn_mta{height:41px;}button .gs_wr{position:relative;display:inline-block;width:100%;height:100%;}button .gs_wr:before{content:"";width:0;height:100%;}button .gs_wr:before,button .gs_ico,button .gs_rdt,button .gs_lbl,button .gs_icm{display:inline-block;vertical-align:middle;}button .gs_wr{font-size:13px;text-transform:none;}.gs_btn_lrge .gs_wr{font-size:15px;}.gs_btn_lsb .gs_wr{font-size:11px;font-weight:bold;}.gs_btn_lsu .gs_wr{font-size:11px;text-transform:uppercase;}.gs_btn_lrge.gs_btn_lsb .gs_wr,.gs_btn_lrge.gs_btn_lsu .gs_wr,.gs_btn_lrge.gs_btn_lrge_asym .gs_wr{font-size:13px;}.gs_btn_half,.gs_el_ta .gs_btn_hta,.gs_el_ph .gs_btn_hph{min-width:36px;}.gs_btn_lrge.gs_btn_half,.gs_el_ta .gs_btn_lrge.gs_btn_hta,.gs_el_ph .gs_btn_lrge.gs_btn_hph,.gs_el_ta .gs_btn_mta,.gs_el_ph .gs_btn_mph{min-width:41px;}.gs_btn_slt{border-radius:3px 0 0 3px;}.gs_btn_srt{margin-left:-1px;border-radius:0 3px 3px 0;}.gs_btn_smd{margin-left:-1px;border-radius:0;}button:hover{z-index:2;color:#222;border-color:rgba(0,0,0,.2);background-color:#f8f8f8;}button.gs_sel{background-color:#dcdcdc;}button:active{z-index:2;background-color:#f1f1f1;}button:focus{z-index:2;}button::-moz-focus-inner{padding:0;border:0}button:-moz-focusring{outline:1px dotted ButtonText}.gs_pfcs button:-moz-focusring{outline:none}a.gs_in_ib{position:relative;display:inline-block;line-height:16px;padding:6px 0 7px 0;-ms-user-select:none;user-select:none;}a.gs_btn_lrge{height:40px;padding:0;}a.gs_in_bgcw{min-width:41px;}a.gs_btn_lrge.gs_in_bgcw:before{position:absolute;content:"";height:29px;width:29px;top:6px;left:6px;background-color:#fff;box-shadow:0 1px 3px rgb(0,0,0,.4);border-radius:50%;}a.gs_in_bgcw:hover:before{background-color:#f5f5f5;}a.gs_in_bgcw:active:before{background-color:#e5e5e5;}a.gs_in_bgcw.gs_dis:before{background-color:#fff;}a.gs_in_ib .gs_lbl{display:inline-block;padding-left:21px;color:#222;}a.gs_in_ib.gs_in_gray .gs_lbl{color:#444;}a.gs_in_ib .gs_lbl:not(:empty){padding-left:29px;}button.gs_in_ib .gs_lbl:not(:empty){padding-left:4px;}a.gs_in_ib:active .gs_lbl,a.gs_in_ib .gs_lbl:active,a.gs_in_ib :active~.gs_lbl{color:#d14836;}.gs_el_ta .gs_btn_hta .gs_lbl,.gs_el_ph .gs_btn_hph .gs_lbl,.gs_el_ta .gs_btn_mta .gs_lbl,.gs_el_ph .gs_btn_mph .gs_lbl,.gs_el_ta .gs_btn_cta .gs_lbl,.gs_el_ph .gs_btn_cph .gs_lbl{display:none;}a.gs_in_ib .gs_ico{position:absolute;top:3px;left:0;}.gs_in_ib.gs_md_li .gs_ico{left:14px;}.gs_el_tc .gs_in_ib.gs_md_li .gs_ico{top:11px;}.gs_in_ib.gs_md_li.gs_md_lix .gs_ico{top:10px;left:16px;}a.gs_btn_lrge .gs_ico{top:50%;left:50%;margin:-10.5px 0 0 -10.5px;}.gs_in_ib .gs_ico{opacity:.55;}.gs_in_ib:hover .gs_ico{opacity:.72;}.gs_in_ib:active .gs_ico,.gs_in_ib .gs_ico:active,.gs_in_ib :active~.gs_ico{opacity:1;}.gs_in_ib:disabled .gs_ico,.gs_in_ib.gs_dis .gs_ico{opacity:.28;}.gs_in_ib.gs_btn_act .gs_ico,.gs_in_ib.gs_btn_cre .gs_ico{opacity:1;}.gs_btn_act:disabled .gs_ico,.gs_btn_cre:disabled .gs_ico{opacity:.72;}.gs_rdt{position:relative;width:0;height:21px;}a.gs_in_ib .gs_rdt{left:21px;}.gs_rdt:before{content:"";position:absolute;top:1px;right:0;width:5px;height:5px;border:1px solid #fff;border-radius:50%;background-color:#dd4b39;}.gs_notf{display:inline-block;vertical-align:top;margin-left:8px;width:16px;line-height:16px;background-color:#d14836;border-radius:50%;color:#fff;text-align:center;font-size:9px;font-weight:bold;}.gs_notf:empty{display:none;}.gs_ind .gs_notf{text-indent:0;}button.gs_btn_flat{border-color:transparent;background-color:transparent;}button.gs_btn_olact{color:#4d90fe;background-color:transparent;}button.gs_btn_flat:hover,button.gs_btn_olact:hover{background-color:rgba(0,0,0,.05);}button.gs_btn_flat:active,button.gs_btn_olact:active{background-color:rgba(0,0,0,.1);}button.gs_btn_flat.gs_btn_flact{color:#1a0dab;}button.gs_btn_act{color:#fff;background-color:#4d90fe;}button.gs_btn_act:hover{color:#fff;background-color:#3983fe;}button.gs_btn_act.gs_sel{background-color:#2f6bcc;}button.gs_btn_act:active{background-color:#357ae8;}button.gs_btn_cre{color:#fff;background-color:#d14836;}button.gs_btn_cre:hover{color:#fff;background-color:#c53727;}button.gs_btn_cre.gs_sel{background-color:#992b1e;}button.gs_btn_cre:active{background-color:#b0281a;}button.gs_btn_hov_nobg:hover,button.gs_btn_hov_nobg:active{border:none;background:transparent;}button:disabled,button:disabled:hover,button:disabled:active{cursor:default;color:#b8b8b8;border-color:rgba(0,0,0,.05);background-color:transparent;z-index:0;}button.gs_btn_flat:disabled{color:#b8b8b8;border-color:transparent;}button.gs_btn_act:disabled{color:#fff;background-color:#a6c8ff;}button.gs_btn_cre:disabled{color:#fff;background-color:#e8a49b;}a.gs_in_ib.gs_dis{cursor:default;pointer-events:none}a.gs_in_ib.gs_dis .gs_lbl{color:#b8b8b8;text-decoration:none}.gs_ttp{position:absolute;top:100%;right:50%;z-index:10;pointer-events:none;visibility:hidden;opacity:0;transition:visibility 0s .13s,opacity .13s ease-out;}button:hover .gs_ttp,button:focus .gs_ttp,a:hover .gs_ttp,a:focus .gs_ttp{transition:visibility 0s .3s,opacity .13s ease-in .3s;visibility:visible;opacity:1;}.gs_md_tb.gs_sel .gs_ttp{transition:none;visibility:hidden;}button.gs_btn_lrge.gs_btn_cir .gs_ttp{top:75%;}.gs_ttp .gs_aro,.gs_ttp .gs_aru{position:absolute;top:-2px;right:-5px;width:0;height:0;line-height:0;font-size:0;border:5px solid transparent;border-top:none;border-bottom-color:#595959;z-index:1;}.gs_ttp .gs_aro{top:-3px;right:-6px;border-width:6px;border-top:none;border-bottom-color:white;}.gs_ttp .gs_txt{display:block;position:relative;top:2px;right:-50%;padding:4px 6px;background:#595959;color:white;font-size:11px;font-weight:bold;line-height:normal;white-space:nowrap;border:1px solid white;border-radius:3px;box-shadow:inset 0 1px 4px rgba(0,0,0,.2);}.gs_press,.gs_in_se,.gs_tan{touch-action:none;}.gs_in_se .gs_lbl:not(:empty){padding-right:14px;}.gs_in_se .gs_icm{position:absolute;top:50%;margin-top:-5.5px;right:0;width:7px;height:11px;background-position:-21px -88px;opacity:.55;}.gs_in_se:hover .gs_icm{opacity:.72;}.gs_in_se:active .gs_icm{opacity:1;}.gs_in_se:disabled .gs_icm{opacity:.28;}.gs_el_ta .gs_btn_hta .gs_icm,.gs_el_ph .gs_btn_hph .gs_icm,.gs_el_ta .gs_btn_mta .gs_icm,.gs_el_ph .gs_btn_mph .gs_icm,.gs_el_ta .gs_btn_cta .gs_icm,.gs_el_ph .gs_btn_cph .gs_icm{display:none;}.gs_btn_mnu .gs_icm{margin-top:-3.5px;height:7px;background-position:0 -110px;}.gs_in_se.gs_btn_act .gs_icm,.gs_in_se.gs_btn_cre .gs_icm{margin-top:-3.5px;height:7px;background-position:-42px -44px;opacity:1;}.gs_btn_act:disabled .gs_icm,.gs_btn_cre:disabled .gs_icm{opacity:.72;}button.gs_btnG .gs_ico{width:21px;height:21px;background-position:-92px -253px;}button .gs_bs{position:absolute;top:50%;left:50%;margin-top:-10px;margin-left:-10px;box-sizing:border-box;width:20px;height:20px;border-radius:50%;border:2px solid #eee;border-top-color:#4d90fe;visibility:hidden;animation:gs_anm_spin .8s linear infinite;}button.gs_bsp .gs_bs{visibility:visible;transition:visibility 0s .4s;}.gs_md_d{text-transform:none;white-space:nowrap;position:absolute;top:0;left:0;border:1px solid #ccc;border-color:rgba(0,0,0,.2);background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.2);z-index:1100;text-align:left;visibility:hidden;max-height:0;margin-top:-1000px;opacity:0;transition:opacity .13s,visibility 0s .13s,max-height 0s .13s,margin-top 0s .13s;}.gs_md_d.gs_vis{visibility:visible;max-height:10000px;margin-top:0;opacity:1;transition:all 0s;}.gs_el_tc .gs_md_d{transform-origin:100% 0;transform:scale(1,0);transition:opacity .218s ease-out,transform 0s .218s,visibility 0s .218s,max-height 0s .218s,margin-top 0s .218s;}.gs_el_tc .gs_md_d.gs_ttzi{transform-origin:50% 50%;transform:scale(0,0);}.gs_el_tc .gs_md_d.gs_ttzr{transform:scale(0,0);}.gs_el_tc .gs_md_d.gs_vis{transform:scale(1,1);transition:transform .218s ease-out;}.gs_md_r{position:relative;display:inline-block;}.gs_md_rmb>.gs_md_d{top:29px}.gs_md_rmbl>.gs_md_d{top:41px}.gs_md_ul{list-style-type:none;word-wrap:break-word;display:inline-block;vertical-align:top;}.gs_md_ul.gs_md_ul_tb{display:block;}.gs_md_li,.gs_in_cb.gs_md_li,.gs_md_li:link,.gs_md_li:visited{display:block;padding:6px 44px 6px 16px;font-size:13px;line-height:16px;color:#222;cursor:pointer;text-decoration:none;position:relative;z-index:0;}a.gs_md_li:hover .gs_lbl,a.gs_md_li:active .gs_lbl{text-decoration:none}.gs_el_tc .gs_md_li{padding-top:14px;padding-bottom:10px;}.gs_md_li.gs_md_lix{font-size:16px;line-height:20px;padding:12px 16px 8px 16px;}.gs_md_li:before{content:"";background-color:#f1f1f1;position:absolute;left:0;right:0;top:0;bottom:0;opacity:0;transition:opacity .13s;z-index:-1;}.gs_md_li:hover:before,.gs_md_li:focus:before{opacity:1;transition:all 0s;}a.gs_in_ib.gs_md_li .gs_lbl{color:#222}a.gs_in_ib.gs_md_li.gs_in_gray .gs_lbl{color:#444}.gs_md_li:active:before{background-color:#ddd}.gs_md_li.gs_sel,a.gs_in_ib.gs_md_li.gs_sel .gs_lbl{color:#d14836}.gs_md_d:focus,.gs_md_li:focus{outline:none}a.gs_md_lix .gs_lbl,a.gs_md_lix .gs_lbl:not(:empty){padding:0 0 0 40px;}a.gs_in_cb:link,a.gs_in_cb:visited,a.gs_in_cb:active,a.gs_in_cb:hover{cursor:pointer;color:#222;text-decoration:none;}.gs_in_cb,.gs_in_ra{position:relative;line-height:16px;display:inline-block;-ms-user-select:none;user-select:none;}.gs_in_cb.gs_md_li{padding:6px 44px 6px 16px;}.gs_in_cb input,.gs_in_ra input{position:absolute;top:1px;left:1px;width:15px;height:15px;margin:0;padding:0;opacity:0;z-index:2;}.gs_in_ra input{top:0;left:0}.gs_el_tc .gs_in_cb input{top:9px}.gs_el_tc .gs_in_ra input{top:8px}.gs_in_cb.gs_in_cbj input{top:15px;left:15px}.gs_in_cb label,.gs_in_cb .gs_lbl,.gs_in_ra label{display:inline-block;padding-left:21px;min-height:16px;}.gs_in_ra_lrge{font-size:15px;}.gs_in_cb label:empty:before,.gs_in_cb .gs_lbl:empty:before,.gs_in_ra label:empty:before{content:"\200b";}.gs_el_tc .gs_in_cb label,.gs_el_tc .gs_in_cb .gs_lbl,.gs_el_tc .gs_in_ra label{padding-top:8px;padding-bottom:5px;}.gs_in_cb.gs_in_cbj label,.gs_in_cb.gs_in_cbj .gs_lbl{padding:13px 0 12px 41px;}.gs_in_cbb,.gs_in_cbb label,.gs_in_cbb .gs_lbl{display:block;}.gs_in_cb .gs_cbx,.gs_in_ra .gs_cbx{position:absolute}.gs_in_cb .gs_cbx{top:2px;left:2px;width:11px;height:11px;border:1px solid #c6c6c6;border-radius:1px;}.gs_md_li .gs_cbx{top:8px;left:18px}.gs_el_tc .gs_in_cb .gs_cbx{top:10px}.gs_el_tc .gs_md_li .gs_cbx{top:16px}.gs_in_cb.gs_in_cbj .gs_cbx{top:15px;left:15px}.gs_el_tc .gs_in_ra .gs_cbx{top:8px}.gs_in_ra .gs_cbx{top:0;left:0;border:1px solid #c6c6c6;width:13px;height:13px;border-radius:7px;}.gs_in_cb:hover .gs_cbx,.gs_in_ra:hover .gs_cbx{border-color:#666;box-shadow:inset 0 1px 1px rgba(0,0,0,.1);}button.gs_in_cb:hover .gs_cbx{border-color:#c6c6c6;}.gs_in_cb :focus~label,.gs_in_ra :focus~label{outline:1px dotted #222;}.gs_pfcs .gs_in_cb :focus~label,.gs_pfcs .gs_in_ra :focus~label{outline:none;}.gs_in_cb:active .gs_cbx,.gs_in_ra:active .gs_cbx,.gs_in_cb .gs_cbx:active,.gs_in_ra .gs_cbx:active,.gs_in_cb :active~.gs_cbx,.gs_in_ra :active~.gs_cbx{border-color:#666;background-color:#ebebeb;}button.gs_in_cb:active .gs_cbx{border-color:#a6a6a6;}.gs_in_cb :disabled~.gs_cbx,.gs_in_ra :disabled~.gs_cbx,button.gs_in_cb:disabled .gs_cbx{border-color:#f1f1f1;box-shadow:none;}.gs_in_cb :disabled~label,.gs_in_ra :disabled~label{color:#b8b8b8;}.gs_in_cb.gs_err .gs_cbx{border-color:#eda29b;}.gs_in_cb .gs_chk,.gs_in_ra .gs_chk{position:absolute;z-index:1;top:-3px;left:-2px;width:21px;height:21px;}.gs_md_li .gs_chk{top:3px;left:14px}.gs_el_tc .gs_in_cb .gs_chk{top:5px}.gs_el_tc .gs_md_li .gs_chk{top:11px}.gs_in_cb.gs_in_cbj .gs_chk{top:10px;left:11px}.gs_in_ra .gs_chk{top:4px;left:4px;width:7px;height:7px;border-radius:4px;}.gs_el_tc .gs_in_ra .gs_chk{top:12px}.gs_in_cb input:checked~.gs_chk,.gs_in_cb.gs_sel .gs_chk{background:no-repeat url(/intl/en/scholar/images/1x/sprite_20161020.png) -69px -67px;opacity:.62;}.gs_in_ra input:checked~.gs_chk{background-color:#666}.gs_in_cb.gs_par .gs_chk{background:no-repeat url(/intl/en/scholar/images/1x/sprite_20161020.png) -21px -44px;opacity:.55;}@media(-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi){.gs_in_cb input:checked~.gs_chk,.gs_in_cb.gs_sel .gs_chk,.gs_in_cb.gs_par .gs_chk{background-image:url(/intl/en/scholar/images/2x/sprite_20161020.png);background-size:169px;}}.gs_in_cb input:checked:disabled~.gs_chk{opacity:.22}.gs_in_ra input:checked:disabled~.gs_chk{background-color:#f1f1f1}.gs_md_ac{position:absolute;top:28px;left:0;right:0;z-index:1100;white-space:normal;display:none;pointer-events:none;}.gs_md_ac[dir="ltr"]{text-align:left;}.gs_md_ac[dir="rtl"]{text-align:right;}.gs_md_ac ul{list-style-type:none;word-wrap:break-word;line-height:1.24;border:1px solid #e5e5e5;border-color:rgba(0,0,0,.2);background:#fff;box-shadow:0px 2px 4px rgba(0,0,0,.2);touch-action:manipulation;cursor:pointer;-ms-user-select:none;user-select:none;pointer-events:auto;}.gs_md_acp{display:flex;line-height:0;}.gs_md_acp .gs_md_acs,.gs_md_acp ul{max-width:100%;box-sizing:border-box;display:inline-block;vertical-align:top;}.gs_md_acs{visibility:hidden;white-space:pre;height:0;min-width:0%;flex:0 1 auto;font-size:16px;}.gs_el_tc .gs_md_acs{font-size:18px;}.gs_md_acp ul{white-space:nowrap;flex:0 0 auto;}.gs_md_ac li{position:relative;padding:2px 8px;font-size:16px;line-height:20px;color:#222;background-color:#fff;overflow:hidden;text-overflow:ellipsis;}.gs_md_ac li.gs_sel{color:#000;background-color:#c6dafc;}.gs_md_ac li:active{background-color:#e8f0fe;}.gs_el_ios .gs_md_ac li:active{background-color:#fff;}.gs_md_ac li.gs_md_ac_lh,.gs_md_ac li.gs_md_ac_lh b{color:#660099;}.gs_el_tc .gs_md_ac li{padding:11px 8px 9px 8px;font-size:18px;border-top:1px solid #e5e5e5;}.gs_el_tc .gs_md_ac li:first-child{border-top:none;}.gs_md_ac[dir="ltr"] li.gs_md_ac_lh{padding-right:29px;}.gs_md_ac[dir="rtl"] li.gs_md_ac_lh{padding-left:29px;}.gs_el_tc .gs_md_ac[dir="ltr"] li.gs_md_ac_lh{padding-right:49px;}.gs_el_tc .gs_md_ac[dir="rtl"] li.gs_md_ac_lh{padding-left:49px;}.gs_md_ac_lh .gs_ico_X{position:absolute;top:0;}.gs_md_ac[dir="ltr"] .gs_md_ac_lh .gs_ico_X{right:0;}.gs_md_ac[dir="rtl"] .gs_md_ac_lh .gs_ico_X{left:0;}.gs_el_tc #gs_top .gs_md_ac .gs_md_ac_lh .gs_ico_Xt{padding:10px;}.gs_md_ac_lh .gs_ico_X:hover{background-color:#eee;}.gs_ico_x{background-position:-113px -22px;opacity:.55;}.gs_ico_x:hover{opacity:.72;}.gs_ico_x:active{opacity:1;}.gs_ico_X{background-position:-71px 0;opacity:.55;}.gs_ico_X:hover{opacity:.72;}.gs_ico_X:active{opacity:1;}.gs_btnX .gs_ico{background-position:-71px 0;}.gs_el_tc .gs_ico_Xt{background-origin:content-box;background-clip:content-box;padding:10px 6px 10px 14px;}.gs_ico_P{background-position:0 0;opacity:.55;}.gs_ico_P:hover{opacity:.72;}.gs_ico_P:active{opacity:1;}.gs_btnP .gs_ico{background-position:-21px 0;}.gs_btnC .gs_ico{background-position:0 -66px;}.gs_btnL .gs_ico{background-position:-92px -44px;}.gs_ico_LB{background-position:-50px -44px;height:16px;}.gs_btnJ .gs_ico{background-position:-92px -22px;}.gs_btnM .gs_ico{background-position:-92px 0;}.gs_btnMW .gs_ico{background-position:-21px -22px;}.gs_btnSB .gs_ico{background-position:0 -44px;}.gs_btnTSB .gs_ico{background-position:-115px -253px;}.gs_btnPL .gs_ico{background-position:-148px -66px;}.gs_btnPR .gs_ico{background-position:-21px -66px;}.gs_btnPLW .gs_ico{background-position:-0 -230px;}.gs_btnPRW .gs_ico{background-position:-23px -230px;}.gs_btnZI .gs_ico{background-position:-148px -22px;}.gs_btnZO .gs_ico{background-position:-127px -44px;}.gs_btnDE .gs_ico{background-position:-134px 0;}.gs_btnFI .gs_ico{background-position:-50px -66px;}.gs_btnAD .gs_ico{background-position:-141px -88px;opacity:.55;}.gs_btnAD:hover .gs_ico{opacity:.72;}.gs_btnAD:active .gs_ico,.gs_btnAD .gs_ico:active,.gs_btnAD :active~.gs_ico{opacity:1;}.gs_btnBA .gs_ico{background-position:-50px -22px;}.gs_btnADD .gs_ico{background-position:-92px -66px;}.gs_btnMRG .gs_ico{background-position:-113px 0;}.gs_btnLBL .gs_ico{background-position:0 -161px;}.gs_btnCNCL .gs_ico{background-position:-71px 0;}.gs_btnDWL .gs_ico{background-position:-28px -88px;}.gs_btnMNU .gs_ico{background-position:0 -88px;}.gs_btnMNT .gs_ico{background-position:-46px -161px;}.gs_btnALT .gs_ico{background-position:-92px -161px;}.gs_btnART .gs_ico{background-position:-115px -161px;}.gs_btnGSL .gs_ico{background-position:-69px -161px;}.gs_btnCLS .gs_ico{background-position:-138px -161px;}.gs_btnXBLU .gs_ico{background-position:-138px -253px;}.gs_btnSSB .gs_ico{background-position:0 -276px;}.gs_btnSSW .gs_ico{background-position:-23px -276px;}.gs_btnFLT .gs_ico{background-position:0 -184px;}.gs_btnXT .gs_ico{background-position:-46px -184px;}.gs_btnPD .gs_ico{background-position:-69px -184px;}.gs_btnPU .gs_ico {background-position:-92px -276px;}.gs_btnCP .gs_ico{background-position:-92px -184px;}.gs_btnTP .gs_ico{background-position:-138px -184px;}.gs_btnML .gs_ico{background-position:-115px -276px;}.gs_btnCHK .gs_ico{background-position:-71px -66px;}.gs_btnDNB .gs_ico{background-position:-115px -230px;}.gs_btnDNW .gs_ico{background-position:0 -207px;}.gs_btnACA .gs_ico{background-position:-23px -207px;}.gs_btnAPT .gs_ico{background-position:-46px -207px;}.gs_btnAPTW .gs_ico{background-position:-92px -230px;}.gs_btnAFL .gs_ico{background-position:-69px -207px;}.gs_btnAN .gs_ico{background-position:-46px -276px;}.gs_btnAI .gs_ico{background-position:-69px -276px;}.gs_btnPBL .gs_ico{background-position:-92px -207px;}.gs_btnUCT .gs_ico{background-position:-115px -207px;}.gs_btnVRF .gs_ico{background-position:-138px -207px;}.gs_btnLSI .gs_ico{background-position:-46px -230px;}.gs_btnLSG .gs_ico{background-position:-69px -230px;}.gs_btnMOR .gs_ico{background-position:-23px -253px;}.gs_btnADV .gs_ico{background-position:-46px -253px;}.gs_btnPRO .gs_ico{background-position:-69px -253px;}.gs_ico_nav_previous{background-position:0 -119px;width:53px;height:40px;}.gs_ico_nav_first{background-position:-25px -119px;width:28px;height:40px;}.gs_ico_nav_current{background-position:-53px -119px;width:20px;height:40px;}.gs_ico_nav_page{background-position:-73px -119px;width:20px;height:40px;}.gs_ico_nav_next{background-position:-93px -119px;width:71px;height:40px;}.gs_ico_nav_last{background-position:-93px -119px;width:45px;height:40px;}.gs_ico_star{background-position:-71px -44px;width:13px;height:13px;}.gs_btnPLSW .gs_ico{background-position:-138px -230px;}.gs_btnPDF .gs_ico{background-position:0 -253px;}.gs_btnS .gs_ico{background-position:-138px -276px;}.gs_btnUNS .gs_ico{background-position:0 -299px;}.gs_btnMORR .gs_ico{background-position:-23px -299px;}.gs_btnTW .gs_ico{background-position:-46px -299px;}.gs_btnIN .gs_ico{background-position:-69px -299px;}.gs_btnFB .gs_ico{background-position:-92px -299px;}.gs_btnET .gs_ico{background-position:-115px -299px;}.gs_btnARC .gs_ico{background-position:-138px -299px;}.gs_btnOL .gs_ico{background-position:0px -322px;}.gs_btnFA .gs_ico{background-position:-23px -322px;}.gs_btnFAD .gs_ico{background-position:-46px -322px;}.gs_btnHP .gs_ico{background-position:-69px -322px;}.gs_btnPLM .gs_ico{background-position:-92px -322px;}.gs_btnPRM .gs_ico{background-position:-115px -322px;}.gs_btnRN .gs_ico{background-position:-138px -322px;}.gs_btnVF .gs_ico{background-position:0px -345px;}.gs_btnVP .gs_ico{background-position:-23px -345px;}.gs_btnSRT .gs_ico{background-position:-46px -345px;}#gs_md_s.gs_hdr_drs{transition:opacity .15s,visibility 0s .15s;}#gs_md_s.gs_hdr_drs.gs_vis{transition:opacity .15s,visibility 0s;}.gs_el_tc #gs_md_s.gs_hdr_drs{transition:opacity .218s,visibility 0s .218s;}.gs_el_tc #gs_md_s.gs_hdr_drs.gs_vis{transition:opacity .218s,visibility 0s;}#gs_hdr_drw{position:fixed;top:0;left:0;height:100%;z-index:1200;visibility:hidden;overflow:auto;width:228px;background-color:#fff;box-shadow:2px 2px 4px rgba(0,0,0,.15);outline:none;transform:translate(-100%,0);transition:transform .15s ease-in-out,visibility 0s .15s;}#gs_hdr_drw.gs_vis{visibility:visible;transform:translate(0,0);transition:transform .15s ease-in-out,visibility 0s;}.gs_el_tc #gs_hdr_drw{transition:transform .3s cubic-bezier(.4,0,.6,1),visibility 0s .3s;}.gs_el_tc #gs_hdr_drw.gs_vis{transition:transform .225s cubic-bezier(0,0,.2,1),visibility 0s;}#gs_top #gs_hdr_drw.gs_abt,#gs_top #gs_md_s.gs_abt{transition:none;}#gs_hdr_drw_in{position:relative;box-sizing:border-box;min-height:100%;padding:0 0 8px 0;}.gs_el_ta #gs_hdr_drw_in,.gs_el_ph #gs_hdr_drw_in{padding:0 0 65px 0;}#gs_hdr_drw_top{position:relative;height:63px;border-bottom:1px solid #e5e5e5;margin-bottom:8px;}.gs_el_ta #gs_hdr_drw_top,.gs_el_ph #gs_hdr_drw_top{height:57px;}#gs_hdr_drw_mnu,#gs_hdr_drw_lgo{position:absolute;top:0;height:100%;}#gs_hdr_drw_mnu{left:0;width:55px;}#gs_hdr_drw_lgo{left:56px;}.gs_hdr_drw_sec:before{display:block;content:" ";height:0;border-bottom:1px solid #e5e5e5;margin:8px 0;}.gs_hdr_drw_sec:first-child:before{display:none;}#gs_hdr_drw_bot{display:none;}.gs_el_ta #gs_hdr_drw_bot,.gs_el_ph #gs_hdr_drw_bot{display:block;position:absolute;left:0;bottom:0;width:100%;height:65px;}#gs_hdr_drw_bot .gs_md_li:before{opacity:0;}#gs_hdr_drw_bot .gs_hdr_pp{display:block;position:absolute;bottom:14px;left:15px;pointer-events:none;}#gs_hdr_drw_bot .gs_lbl{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}#gs_hdr{position:relative;height:63px;background-color:#f5f5f5;border-bottom:1px solid #e5e5e5;display:flex;}.gs_el_ta #gs_hdr,.gs_el_ph #gs_hdr{height:57px;}#gs_hdr_mnu,#gs_hdr_bck,#gs_hdr_lgo,#gs_hdr_lgt,#gs_hdr_md,#gs_hdr_sre,#gs_hdr_act{display:inline-block;vertical-align:top;position:relative;height:100%;flex:0 0 auto;}#gs_hdr_md{flex:1 1 auto;}#gs_hdr .gs_hdr_mbo,#gs_hdr .gs_hdr_mbo,.gs_el_ta #gs_hdr .gs_hdr_dso,.gs_el_ph #gs_hdr .gs_hdr_dso{display:none;}.gs_el_ta #gs_hdr .gs_hdr_mbo,.gs_el_ph #gs_hdr .gs_hdr_mbo{display:inline-block;}#gs_hdr_mnu,#gs_hdr_bck,#gs_hdr_sre{width:55px;margin-right:1px;}#gs_hdr_lgo,#gs_hdr_drw_lgo{width:149px;background:no-repeat url('/intl/en/scholar/images/1x/scholar_logo_24dp.png') 0% 50%;background-size:149px;}@media(-webkit-min-device-pixel-ratio:1.5),(min-resolution:144dpi){#gs_hdr_lgo,#gs_hdr_drw_lgo{background-image:url('/intl/en/scholar/images/2x/scholar_logo_24dp.png');}}#gs_hdr_lgo{margin-right:31px;}.gs_el_ph #gs_hdr_lgo{margin-right:0;}#gs_hdr_lgt{min-width:164px;margin-right:16px;}.gs_el_sm #gs_hdr_lgt:empty{min-width:60px;}#gs_hdr_md{margin-right:16px;min-width:1px;}#gs_hdr_lgt,#gs_hdr_md h1{padding:19px 0 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:20px;line-height:25px;font-weight:normal;color:#666;max-width:100%;text-align:left;}.gs_el_ta #gs_hdr_md h1,.gs_el_ph #gs_hdr_md h1{padding:16px 0 0 0;}#gs_hdr_srch{padding:14px 0 0 0;max-width:600px;}.gs_el_ta #gs_hdr_srch,.gs_el_ph #gs_hdr_srch{padding:10px 0 0 0;max-width:none;}#gs_hdr_frm{position:relative;padding-right:39px;}#gs_hdr_tsi{height:38px;border-radius:2px 0 0 2px;}#gs_hdr_tsi::-ms-clear{display:none;}#gs_hdr_tsc{display:none;position:absolute;top:3px;right:41px;width:21px;height:21px;padding:6px 10px 7px 10px;}.gs_in_acw[dir="rtl"]~#gs_hdr_tsc{right:auto;left:1px;}#gs_hdr_tsb{position:absolute;top:0;right:0;width:40px;height:38px;border-radius:0 2px 2px 0;}#gs_hdr_frm_ac{top:37px;right:40px;}.gs_el_ph #gs_hdr_frm_ac{right:0;}.gs_el_ph .gs_hdr_ifc #gs_hdr_mnu,.gs_el_ph .gs_hdr_ifc #gs_hdr_bck,.gs_hdr_src #gs_hdr_srch,.gs_hdr_src #gs_hdr_lgt,.gs_hdr_srx #gs_hdr_sre,.gs_hdr_srx #gs_hdr_md h1,.gs_hdr_srx #gs_hdr_md h1.gs_hdr_mbo,.gs_hdr_srx #gs_hdr_md h1.gs_hdr_dso,.gs_el_ta .gs_hdr_srx #gs_hdr_lgo,.gs_el_ph .gs_hdr_srx #gs_hdr_lgo,.gs_el_ph .gs_hdr_srx #gs_hdr_mnu,.gs_el_ph .gs_hdr_srx #gs_hdr_bck{display:none;}.gs_el_ph .gs_hdr_ifc #gs_hdr_md,.gs_el_ph .gs_hdr_srx #gs_hdr_md{margin-left:16px;}.gs_el_tc .gs_hdr_tsc #gs_hdr_tsi[dir="ltr"]{padding-right:41px;}.gs_el_tc .gs_hdr_tsc #gs_hdr_tsi[dir="rtl"]{padding-left:41px;}.gs_el_tc .gs_hdr_tsc .gs_in_acw~#gs_hdr_tsc{display:block;}#gs_hdr_act{min-width:64px;max-width:200px;text-align:right;float:right;}.gs_el_ta #gs_hdr_act,.gs_el_ph #gs_hdr_act{display:none;}#gs_hdr_act_i,#gs_hdr_act_s{display:inline-block;padding:23px 24px 23px 16px;max-width:100%;box-sizing:border-box;font-size:13px;line-height:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#444;}#gs_hdr_act_s{text-transform:uppercase;}.gs_el_sm #gs_hdr_act_i,.gs_el_sm #gs_hdr_act_s{padding:23px 16px;}.gs_el_ta #gs_hdr_act_i,.gs_el_ta #gs_hdr_act_s,.gs_el_ph #gs_hdr_act_i,.gs_el_ph #gs_hdr_act_s{padding:20px 16px;}#gs_hdr_act_i:active,#gs_hdr_act_s:active{color:#d14836;}#gs_hdr_act_i,.gs_el_sm #gs_hdr_act_i{padding-top:15px;padding-bottom:16px;}.gs_el_ta #gs_hdr_act_i,.gs_el_ph #gs_hdr_act_i{padding-top:12px;padding-bottom:13px;}#gs_hdr_act_i .gs_hdr_pp{vertical-align:top;}#gs_hdr_act_d{top:63px;left:auto;right:24px;min-width:288px;max-width:400px;}.gs_el_sm #gs_hdr_act_d{right:16px;}.gs_el_ta #gs_hdr_act_d{top:57px;}.gs_el_ph #gs_hdr_act_d{top:57px;min-width:280px;max-width:280px;max-width:90vw;}/* Account dialog body. */#gs_hdr_act_aw,#gs_hdr_act_ap,.gs_hdr_act_am,#gs_hdr_act_ab{display:block;padding:10px 20px;word-wrap:break-word;white-space:normal;}#gs_hdr_act_aw{background-color:#fef9db;font-size:11px;}#gs_hdr_act_ap,.gs_hdr_act_am{border-bottom:1px solid #ccc;}#gs_hdr_act_ap{padding:20px;}.gs_el_ph #gs_hdr_act_ap{padding:10px;}#gs_hdr_act_apb{margin-top:12px;}#gs_hdr_act_aa:link,#gs_hdr_act_aa:visited{float:right;margin-left:8px;color:#1a0dab;}#gs_hdr_act_aa:active{color:#d14836}.gs_hdr_act_am:link,.gs_hdr_act_am:visited{color:#222;text-decoration:none;background:#fbfbfb;}.gs_hdr_act_am:hover,.gs_hdr_act_am:focus{background:#f1f1f1;}.gs_hdr_act_am:active{background:#eee;}#gs_hdr_act_ab{background:#fbfbfb;padding:10px 0;display:table;width:100%;white-space:nowrap;}#gs_hdr_act_aba,#gs_hdr_act_abs{display:table-cell;padding:0 20px;}#gs_hdr_act_abs{text-align:right;}.gs_el_ph #gs_hdr_act_aba,.gs_el_ph #gs_hdr_act_abs{display:block;padding:10px;text-align:center;}.gs_el_ph #gs_hdr_act_aba button,.gs_el_ph #gs_hdr_act_abs button{width:100%;}#gs_hdr_act_a1,#gs_hdr_act_a2{position:absolute;top:-9px;right:7.5px;width:0;height:0;z-index:1;border:8.5px solid transparent;border-top:none;border-bottom-color:#333;border-bottom-color:rgba(0,0,0,.2);}#gs_hdr_act_a2{top:-8px;border-bottom-color:#fff;}.gs_hdr_act_mw #gs_hdr_act_a2{border-bottom-color:#fef9db;}.gs_hdr_pp{border-radius:50%;overflow:hidden;}#gs_hdr_act_ap .gs_hdr_pp,.gs_hdr_act_am .gs_hdr_pp{float:left;}#gs_hdr_act_ap .gs_hdr_pm{margin-left:116px;}.gs_hdr_act_am .gs_hdr_pm{margin:6px 0 0 58px;}#gs_ab{position:relative;height:41px;border-bottom:1px solid #e5e5e5;display:flex;white-space:nowrap;background-color:#fff;z-index:1000;}.gs_el_ta #gs_ab.gs_nta,.gs_el_ph #gs_ab.gs_nph{display:none;}.gs_sth_vis #gs_ab{position:fixed;}#gs_ab_ico,#gs_ab_ttl,#gs_ab_md,#gs_ab_btns{display:inline-block;vertical-align:top;position:relative;height:100%;flex:0 0 auto;}.gs_el_ph #gs_ab_md{display:block;}#gs_ab_ico{width:55px;margin-right:1px;}.gs_el_sm #gs_ab_ico{width:15px;visibility:hidden;}.gs_el_ta #gs_ab_ico,.gs_el_ph #gs_ab_ico{width:55px;visibility:visible;}#gs_ab_ico .gs_ico{position:absolute;top:50%;left:50%;margin:-10.5px 0 0 -10.5px;}#gs_ab_ttl{min-width:172px;padding-right:8px;}.gs_el_sm #gs_ab_ttl{min-width:120px;}.gs_el_ta #gs_ab_ttl,.gs_el_ph #gs_ab_ttl{min-width:0;}#gs_ab_ttl,#gs_ab_ttll{font-size:18px;color:#666;text-transform:none;}.gs_el_sm #gs_ab_ttl,.gs_el_sm #gs_ab_ttll{font-size:16px;}#gs_ab_ttll{overflow:hidden;text-overflow:ellipsis;max-width:200px;}#gs_ab_md{flex:1 0 auto;}.gs_ab_st #gs_ab_md{flex:1 1 auto;font-size:13px;line-height:17px;padding:0 8px;color:#999;overflow:hidden;text-overflow:ellipsis;}.gs_el_ph .gs_ab_st #gs_ab_md{visibility:hidden;padding:0;}#gs_ab_btns{margin-right:8px;}.gs_el_sm #gs_ab_btns{margin-right:0;}.gs_el_ta #gs_ab_btns,.gs_el_ph #gs_ab_btns{margin-right:4px;}#gs_ab_ttl:before,#gs_ab_md:before,#gs_ab_btns:before{content:"";display:inline-block;width:0;height:100%;vertical-align:middle;}#gs_ab_md>button,#gs_ab_btns>button,#gs_ab_md>.gs_in_ib,#gs_ab_btns>.gs_in_ib,#gs_ab_md>.gs_md_r,#gs_ab_btns>.gs_md_r,#gs_ab .gs_ab_mdw,#gs_ab .gs_ab_btw{margin:0 8px;vertical-align:middle;}#gs_ab .gs_ab_mdw,.gs_ab_btw{display:inline-block;margin:0;}#gs_ab_btns>.gs_in_ib{margin:0 16px 0 8px;}#gs_ab .gs_ab_btw{margin:0 12px 0 16px;}.gs_el_ta .gs_ab_sel #gs_ab_ico,.gs_el_ph .gs_ab_sel #gs_ab_ico,.gs_el_ta .gs_ab_sel #gs_ab_ttl,.gs_el_ph .gs_ab_sel #gs_ab_ttl,.gs_el_ta .gs_ab_sel #gs_ab_btns,.gs_el_ph .gs_ab_sel #gs_ab_btns{display:none;}#gs_bdy{display:table;table-layout:fixed;width:100%;}#gs_bdy_sb{vertical-align:top;width:228px;word-wrap:break-word;display:table-cell;}.gs_el_sm #gs_bdy_sb{width:136px;}.gs_el_ta #gs_bdy_sb,.gs_el_ph #gs_bdy_sb{display:none;}.gs_bdy_sb_sec{margin:0 40px 0 56px;}.gs_el_sm .gs_bdy_sb_sec{margin:0 0 0 16px;}.gs_bdy_sb_sec:before{display:block;content:" ";height:0;margin:13px 0;border-top:1px solid #eee;}.gs_bdy_sb_sec:first-child:before{margin:21px 0 0 0;border:none;}.gs_el_sm .gs_bdy_sb_sec:first-child:before{margin-top:15px;}#gs_bdy_sb ul{list-style-type:none;}.gs_bdy_sb_sec a:link,.gs_bdy_sb_sec a:visited{color:#222;}.gs_bdy_sb_sec a:active{color:#d14836;}.gs_bdy_sb_sel a:link,.gs_bdy_sb_sel a:visited{color:#d14836;text-decoration:none;}.gs_el_tc .gs_bdy_sb_sec li.gs_ind,.gs_el_tc .gs_bdy_sb_sec li.gs_ind a{padding-top:8px;padding-bottom:5px;}.gs_el_tc .gs_bdy_sb_sec:first-child li.gs_ind:first-child{margin-top:-8px;}#gs_bdy_sb .gs_ind,#gs_bdy_sb .gs_inw{margin-bottom:6px;}.gs_el_tc #gs_bdy_sb .gs_ind,.gs_el_tc #gs_bdy_sb .gs_inw{margin-bottom:0;}#gs_bdy_ccl{display:table-cell;vertical-align:top;padding:0 24px 0 16px;}.gs_el_sm #gs_bdy_ccl{padding:0 16px;}.gs_el_ta #gs_bdy_ccl,.gs_el_ph #gs_bdy_ccl{padding:0 16px;}.gs_el_ph #gs_bdy_ccl{}#gs_ftr_sp{height:62px;}.gs_el_sm #gs_ftr_sp{height:57px;}#gs_ftr{position:absolute;bottom:0;left:0;width:100%;white-space:nowrap;border-top:1px solid #e4e4e4;background-color:#f2f2f2;display:flex;}#gs_ftr.gs_pfix{position:fixed;}#gs_ftr_rt{box-sizing:border-box;max-width:100%;overflow-x:auto;margin-left:auto;padding:0 12px;}.gs_el_sm #gs_ftr_rt{padding:0 8px;}.gs_el_ph #gs_ftr_rt:after{content:" ";position:absolute;top:0;right:0;width:16px;height:100%;background-image:linear-gradient(to right,rgba(242,242,242,0),rgba(242,242,242,1) 80%);}#gs_ftr_rt>a{display:inline-block;line-height:16px;padding:12px;white-space:nowrap;}.gs_el_sm #gs_ftr_rt>a{padding:12px 8px;}#gs_ftr_rt>a:link,#gs_ftr_rt>a:visited{color:#666}#gs_ftr_rt>a:active{color:#d14836}#gs_ftr_mnu{top:auto;bottom:48px;left:auto;right:24px;padding:8px 0;}.gs_el_sm #gs_ftr_mnu{right:16px;}.gs_res_sb_yyr{padding:5px 0;text-align:center;white-space:nowrap;}.gs_el_tc .gs_res_sb_yyr{padding:10px 0;}.gs_res_sb_yyr .gs_in_txt{width:48px;}#gs_res_ccl{max-width:950px;padding-top:10px;}.gs_el_sm #gs_res_ccl{padding-top:7px;}.gs_el_tc #gs_res_ccl{padding-top:6px;}.gs_el_sm.gs_el_tc #gs_res_ccl{padding-top:0;}.gs_r{position:relative;line-height:1.46;padding:11px 0 16px 0;}.gs_el_sm .gs_r{padding:7px 0 12px 0;}.gs_el_tc .gs_r{padding:15px 0;border-bottom:1px solid #eee;}.gs_el_tc .gs_r.gs_fmar{border-bottom:none;}.gs_r.gs_res_lnfo{font-style:italic;}.gs_rt{position:relative;font-weight:normal;font-size:17px;line-height:19px;margin-right:100px;margin-bottom:2px;}.gs_el_tc .gs_rt{margin-bottom:0;}.gs_el_ph .gs_rt{margin-right:0;}.gs_rt2{font-size:13px;font-weight:normal;}.gs_rt a:link,.gs_rt a:link b,.gs_rt2 a:link,.gs_rt2 a:link b{color:#1a0dab}.gs_rt a:visited,.gs_rt a:visited b,.gs_rt2 a:visited,.gs_rt2 a:visited b{color:#660099}.gs_rt a:active,.gs_rt a:active b,.gs_rt2 a:active,.gs_rt2 a:active b{color:#d14836}.gs_or_ggsm:focus{outline:none;}.gs_ggs{position:relative;z-index:1;float:right;margin-left:24px;min-width:200px;max-width:256px;width:200px;width:calc(100% - 620px);font-size:17px;line-height:19px;}.gs_el_sm .gs_ggs{margin-left:16px;}@media(max-width:699px){.gs_el_sm .gs_ggs{min-width:0;width:182px;}}.gs_el_ph .gs_ggs{width:72px;height:43px;}.gs_el_tc .gs_ggs{margin-top:-14px;}.gs_el_ph .gs_ggsd{position:absolute;top:-1px;right:0;width:72px;height:43px;overflow:hidden;transition:width 0s .3s,height 0s .3s;}.gs_el_ph .gs_ggsd.gs_vis{width:208px;height:88px;transition:none;}.gs_or_ggsm a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;}.gs_el_tc .gs_or_ggsm a{padding:13px 8px 9px 8px;touch-action:none;background:#fff;height:19px;margin-bottom:0;}.gs_el_ph .gs_or_ggsm a{text-decoration:none;}.gs_el_ph .gs_or_ggsm a:focus{outline:none;background:#f1f1f1;}.gs_el_ph .gs_or_ggsm a:active{color:#1a0dab;}.gs_el_ph .gs_or_ggsm a:visited{color:#660099;}.gs_el_ph .gs_or_ggsm{position:absolute;top:0;right:-132px;margin-right:4px;padding:1px 0;width:200px;height:41px;transform:translate(0,0);}.gs_el_ph .gs_or_ggsm.gs_vis{right:0;height:auto;}.gs_el_ph .gs_or_ggsm>a:nth-child(2){height:0;transform:scale(1,0);transform-origin:0 0;}.gs_el_ph .gs_or_ggsm.gs_vis>a:nth-child(2){height:19px;transform:scale(1,1);}.gs_el_ph .gs_or_ggsm:before{content:"";position:absolute;top:0;left:-1px;right:-1px;bottom:0;box-shadow:0 2px 4px rgba(0,0,0,.2);border:1px solid #ccc;opacity:0;z-index:-1;}.gs_el_ph .gs_or_ggsm.gs_vis:before{opacity:1;transition:opacity 0s .3s ;}.gs_el_ph .gs_or_ggsm:after{content:"";pointer-events:none;position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;background-image:linear-gradient(to left,rgba(255,255,255,1),rgba(255,255,255,1) 65%,rgba(255,255,255,0) 70%);}.gs_el_ph .gs_or_ggsm.gs_vis:after{visibility:hidden}.gs_el_ph .gs_or_ggsm.gs_vis.gs_anm{animation:gs_anm_hsli .218s ease-in-out;}.gs_el_ph .gs_or_ggsm.gs_anm{animation:gs_anm_hslo .218s ease-out;}.gs_el_ph .gs_ggs .gs_or_ggsm.gs_vis.gs_anm>a:nth-child(2){animation:gs_anm_vscli .218s ease-in;}@keyframes gs_anm_hsli{0%{transform:translate(66%,0);height:41px;}99%{transform:translate(0,0);height:41px;}100%{transform:translate(0,0);height:auto;}}@keyframes gs_anm_hslo{0%{transform:translate(-66%,0);}100%{transform:translate(0,0);}}@keyframes gs_anm_vscli{0%{transform:scale(1,0);}100%{transform:scale(1,1);}}.gs_ct1{display:inline}.gs_ct2{display:none}.gs_el_ph .gs_ct1{display:none}.gs_el_ph .gs_ct2{display:inline;font-size:13px;font-weight:normal}.gs_ri{max-width:712px}.gs_a a:link,.gs_a a:visited{text-decoration:underline;}.gs_ri .gs_fl a,.gs_a a{white-space:nowrap;}.gs_ri .gs_fl a.gs_wno{white-space:normal;}.gs_ri .gs_fl{font-size:1px;}.gs_ri .gs_fl a{font-size:13px;margin-right:12px;}.gs_ri .gs_fl a:last-child{margin-right:0;}.gs_ri .gs_fl .gs_or_mor{margin:-7px 6px -6px -7px;padding:7px 7px 6px 7px;border-radius:50%;}.gs_ri .gs_fl .gs_or_mor:hover{background-color:rgba(0,0,0,.05);}.gs_el_ph .gs_ri .gs_fl .gs_or_sav{margin-right:4px;}.gs_el_ph .gs_or_sav .gs_or_btn_lbl{display:none;}.gs_el_ph .gs_ri .gs_fl .gs_or_mor{margin-right:-7px;}.gs_or_svg{position:relative;width:15px;height:16px;vertical-align:text-bottom;fill:none;stroke:#1a0dab;}.gs_or:not([data-lid=""]) .gs_or_sav .gs_or_svg{fill:#1a0dab;}.gs_or[data-lid] .gs_or_ldg .gs_or_svg{animation:gs_anm_spin 1.2s .5s linear infinite;}a:active .gs_or_svg,a .gs_or_svg:active,a .gs_or_svg>*:active{stroke:#dd4b39;}.gs_or_btn .gs_or_svg{margin-right:5px;}.gs_or_nvi,.gs_or_mvi .gs_or_mor{display:none}.gs_or_mvi .gs_or_nvi,.gs_or_mvi .gs_nph,.gs_or_mvi .gs_nta{display:inline}.gs_rs{margin:2px 0;word-wrap:break-word;}.gs_rs:empty{margin:0 0 2px 0;}.gs_el_tc .gs_rs{margin:0}.gs_el_ta .gs_rs{margin-right:10%}@media(max-width:780px){.gs_el_ta .gs_rs,.gs_el_ta .gs_a{margin-right:100px;}}.gs_el_ph .gs_rs br,.gs_el_ta .gs_rs br{display:none}@media screen and (min-width:771px){.gs_el_ta .gs_rs br{display:block}}.gs_age{color:#777777}.gs_rs b,.gs_rt b,.gs_rt2 b{color:#000;}.gs_el_tc .gs_rt a{font-size:17px;line-height:20px;padding:12px 0 9px 0;}.gs_el_tc .gs_rt2 a{font-size:14px;line-height:20px;padding:6px 0 4px 0;}.gs_el_tc .gs_a,.gs_el_tc .gs_a a,.gs_el_tc .gs_ri .gs_fl a{padding-top:7px;padding-bottom:6px;}.gs_el_tc .gs_ri .gs_fl a{line-height:29px;}.gs_el_tc .gs_ri .gs_fl{margin-bottom:-6px;}#gs_n{clear:both;margin:1.5em 0;width:600px;text-align:center;}#gs_n td{font-size:13px}#gs_n a:link,#gs_n a:visited{color:#1a0dab}#gs_n a:active{color:#d14836}#gs_nm{clear:both;position:relative;text-align:center;max-width:500px;margin:24px 50px;font-size:15px;line-height:41px;display:none;}#gs_nm button{position:absolute;top:0}#gs_nm .gs_btnPL{left:-50px}#gs_nm .gs_btnPR{right:-50px}#gs_nml{overflow:hidden;white-space:nowrap;}.gs_nma{display:inline-block;width:40px;margin:0 5px;}.gs_el_tc #gs_n,.gs_el_ta #gs_n,.gs_el_ph #gs_n{display:none}.gs_el_tc #gs_nm,.gs_el_ta #gs_nm,.gs_el_ph #gs_nm{display:block}#gs_bdy_sb_ca{margin-top:-6px;}.gs_el_tc #gs_bdy_sb_ca{margin-top:2px;}.gs_res_sb_msc{margin-bottom:12px;}@media print{#gs_gb,#gs_hdr,#gs_ab,#gs_top #gs_bdy_sb,.gs_pda,.gs_ggs,.gs_alrt_btm,#gs_top #gs_n,#gs_top #gs_nm,#gs_ftr,#gs_top .gs_ctc,#gs_top .gs_ctu,#gs_rt_hdr,.gs_rt_hdr_ttl{display:none}#gs_top,#gs_top #gs_bdy,#gs_top #gs_res_bdy,#gs_top #gs_bdy_ccl,#gs_top .gs_r,#gs_top .gs_ri,#gs_top .gs_rs{font-size:9pt;color:black;position:static;float:none;margin:0;padding:0;width:auto;min-width:0;max-width:none;}#gs_top #gs_bdy a{color:blue;text-decoration:none}#gs_top .gs_r{margin:1em 0;page-break-inside:avoid;border:0;}#gs_top .gs_med,#gs_top .gs_rt{font-size:12pt}#gs_top .gs_a,#gs_top #gs_bdy .gs_a a{font-size:9pt;color:green}#gs_top .gs_fl,#gs_top .gs_fl a{font-size:9pt}#gs_top .gs_rs br{display:inline}}.gs_el_ph #gs_ab_ttll{max-width:98px;max-width:calc(100vw - 222px);}@media(max-width:320px){.gs_el_ph #gs_ab_ttll{max-width:98px;}}#gs_res_ab_yy-r,#gs_res_ab_ad-r,#gs_res_ab_mor-r{display:none;}.gs_el_ta #gs_res_ab_yy-r,.gs_el_ph #gs_res_ab_yy-r,.gs_el_ta #gs_res_ab_ad-r,.gs_el_ph #gs_res_ab_ad-r,.gs_el_ta #gs_res_ab_mor-r,.gs_el_ph #gs_res_ab_mor-r{display:inline-block;margin:0;}#gs_res_ab_yy-r:last-child{margin-right:4px;}#gs_res_ab_ad-r:last-child,#gs_res_ab_mor-r:last-child{margin-right:12px;}#gs_res_ab_tmn-d,#gs_res_ab_yy-d,#gs_res_ab_ad-d,#gs_res_ab_mor-d{white-space:normal;word-wrap:break-word;width:208px;width:max-content;min-width:100px;max-width:208px;}#gs_res_ab_yy-d,#gs_res_ab_ad-d,#gs_res_ab_mor-d{left:auto;right:0;}.gs_res_ab_dd_bdy{padding:8px 0;box-sizing:border-box;}.gs_res_ab_dd_sec a.gs_res_ab_sel,.gs_res_ab_dd_sec a[role=menuitemradio]:active{color:#d14836;}.gs_res_ab_dd_sec:before{display:block;content:" ";height:0;border-bottom:1px solid #e5e5e5;margin:8px 0;}.gs_res_ab_dd_sec:first-child:before{display:none;}.gs_fsvg line{stroke:#222222}a:link .gs_fsvg{fill:#1a0dab;}a:link .gs_fsvg line{stroke:#1a0dab;}a:visited .gs_fsvg{fill:#660099;}a:visited .gs_fsvg line{stroke:#660099;}a:active .gs_fsvg{fill:#d14836;}a:active .gs_fsvg line{stroke:#d14836;}a .gs_fsvg{border-bottom:1px solid transparent;}a:hover .gs_fsvg,a:focus .gs_fsvg{border-bottom-color:inherit;}.gs_fsml{font-size:13px}.gs_fscp{font-variant:small-caps}.gs_qsuggest{max-width:712px;line-height:21px;margin-bottom:2px;}.gs_r .gs_qsuggest{max-width:600px;}.gs_el_ta .gs_r .gs_qsuggest{margin-right:100px;}.gs_qsuggest h2{margin-bottom:8px;font-weight:normal;font-size:17px;}.gs_qsuggest li{display:inline-block;width:100%;font-size:15px;line-height:18px;padding:4px 0 3px;}.gs_qsuggest ul{list-style-type:none;columns:2;column-gap:40px;margin-bottom:-3px;}.gs_el_sm .gs_qsuggest ul{column-gap:16px;margin-bottom:3px;}.gs_qsuggest li:only-child{column-span:all;}.gs_qsuggest li>a{display:inline-block;max-width:100%;word-wrap:break-word;}.gs_el_tc .gs_qsuggest a{padding:8px 0 5px;}.gs_el_tc .gs_qsuggest li{padding:2px 0 1px;}.gs_el_tc .gs_qsuggest ul{margin:0;}.gs_el_tc .gs_qsuggest h2{margin:6px 0;}.gs_qsuggest_bottom h2{padding-top:11px;}.gs_qsuggest_bottom{margin-bottom:40px;}.gs_el_tc .gs_qsuggest_wrap .gs_qsuggest_related h2{padding-bottom:0;}.gs_el_ph .gs_r .gs_qsuggest{margin-bottom:-15px;}.gs_el_ph .gs_qsuggest ul{columns:1;margin:0;}.gs_el_ph .gs_qsuggest li{margin:0;padding:0;position:relative;}.gs_el_ph .gs_qsuggest h2{margin:1px 0 16px;}.gs_el_ph .gs_qsuggest a{display:block;padding:11px 29px 9px 0;border-bottom:1px solid #eee;}.gs_el_ph .gs_qsuggest li:first-child a{border-top:1px solid #eee;}.gs_el_ph .gs_qsuggest_wrap.gs_r li:last-child a{border-bottom:0;}.gs_el_ph .gs_qsuggest a:link,.gs_el_ph .gs_qsuggest a:visited{color:#222;}.gs_el_ph .gs_qsuggest a:hover,.gs_el_ph .gs_qsuggest a:focus{background:#f1f1f1;text-decoration:none;outline:none;}.gs_el_ph .gs_qsuggest li>a:after{content:"";position:absolute;width:7px;height:7px;top:50%;margin-top:-4px;right:10px;border:2px solid #777;border-left:none;border-bottom:none;transform:rotate(45deg);}#gs_md_albl-d{width:483px;}.gs_el_ph #gs_md_albl-d{width:100%;}.gs_lbl_btns{display:flex;justify-content:space-between;padding:18px 16px;}.gs_lbl_hide{display:none;}</style><script>!function(GSP){var m,aa=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}},ba=typeof Object.defineProperties=="function"?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a},ca=function(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");
},da=ca(this),q=function(a,b){if(b)a:{var c=da;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&b!=null&&ba(c,a,{configurable:!0,writable:!0,value:b})}};
q("Symbol",function(a){if(a)return a;var b=function(f,g){this.Wa=f;ba(this,"description",{configurable:!0,writable:!0,value:g})};b.prototype.toString=function(){return this.Wa};var c="jscomp_symbol_"+(Math.random()*1E9>>>0)+"_",d=0,e=function(f){if(this instanceof e)throw new TypeError("Symbol is not a constructor");return new b(c+(f||"")+"_"+d++,f)};return e});var ea=typeof Object.create=="function"?Object.create:function(a){var b=function(){};b.prototype=a;return new b},fa;
if(typeof Object.setPrototypeOf=="function")fa=Object.setPrototypeOf;else{var ha;a:{var ia={a:!0},ja={};try{ja.__proto__=ia;ha=ja.a;break a}catch(a){}ha=!1}fa=ha?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}
var ka=fa,la=function(a,b){a.prototype=ea(b.prototype);a.prototype.constructor=a;if(ka)ka(a,b);else for(var c in b)if(c!="prototype")if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.Qb=b.prototype},t=function(a){var b=typeof Symbol!="undefined"&&Symbol.iterator&&a[Symbol.iterator];if(b)return b.call(a);if(typeof a.length=="number")return{next:aa(a)};throw Error(String(a)+" is not an iterable or ArrayLike");};
q("Symbol.dispose",function(a){return a?a:Symbol("Symbol.dispose")});q("Math.trunc",function(a){return a?a:function(b){b=Number(b);if(isNaN(b)||b===Infinity||b===-Infinity||b===0)return b;var c=Math.floor(Math.abs(b));return b<0?-c:c}});var ma=function(a){a=Math.trunc(a)||0;a<0&&(a+=this.length);if(!(a<0||a>=this.length))return this[a]};q("Array.prototype.at",function(a){return a?a:ma});var u=function(a){return a?a:ma};q("Int8Array.prototype.at",u);q("Uint8Array.prototype.at",u);
q("Uint8ClampedArray.prototype.at",u);q("Int16Array.prototype.at",u);q("Uint16Array.prototype.at",u);q("Int32Array.prototype.at",u);q("Uint32Array.prototype.at",u);q("Float32Array.prototype.at",u);q("Float64Array.prototype.at",u);q("String.prototype.at",function(a){return a?a:ma});/*

 Copyright The Closure Library Authors.
 SPDX-License-Identifier: Apache-2.0
*/
var na=function(a){var b=typeof a;return b=="object"&&a!=null||b=="function"},oa=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();d.push.apply(d,arguments);return a.apply(this,d)}};var pa=function(){this.aa=this.aa;this.ia=this.ia};pa.prototype.aa=!1;pa.prototype.isDisposed=function(){return this.aa};pa.prototype.dispose=function(){this.aa||(this.aa=!0,this.na())};pa.prototype[Symbol.dispose]=function(){this.dispose()};pa.prototype.na=function(){if(this.ia)for(;this.ia.length;)this.ia.shift()()};var qa=function(){};function v(a,b){a.classList.add(b)}function w(a,b){a.classList.remove(b)}function x(a,b){return a.classList?a.classList.contains(b):!1}function y(a,b,c){c=c!==void 0?c:!x(a,b);(c?v:w)(a,b);return c};function z(a){return(navigator.userAgent||"").indexOf(a)>=0}var sa=z("iPhone")||z("iPad")||z("iPod"),ta=z("iPhone")||z("Android")&&z("Mobile");function ua(){if(b===void 0){var a=window.screen;a={width:window.innerWidth,height:window.innerHeight,Nb:a.width,Mb:a.height}}else a=b;var b=a;a=b.width;var c=b.height,d=b.Nb;b=b.Mb;var e=4;if(a<600||d*b<48E4||ta)e=1;else if(a<982)e=2;else if(a<1136||c<590)e=3;return e}var va,wa=/[?&]tc=([01])/.exec(location.search||"");
va=wa?+wa[1]>0:z("Android")?!0:window.matchMedia&&window.matchMedia("(pointer)").matches?window.matchMedia("(pointer:coarse)").matches:!z("Firefox")||z("Mobile")||z("Tablet")?sa||"ontouchstart"in window||(navigator.msMaxTouchPoints||0)>0:!1;function xa(){if(ya==void 0){ya=!1;try{var a=Object.defineProperty({},"passive",{get:function(){ya=!0}});window.addEventListener("testPassive",qa,a);window.removeEventListener("testPassive",qa,a)}catch(b){}}return ya}var ya;var za=function(a){this.Pb=a},Aa=new za("B"),Ba=new za("DIV"),Ca=new za("IFRAME"),Da=new za("INPUT"),Ea=new za("LI"),Fa=new za("SCRIPT"),Ga=new za("STYLE"),Ha=new za("SPAN");function A(a){return document.getElementById(a)}function E(a){return a.id||(a.id="gs_id"+Ia++)}function G(a,b){return a.getAttribute(b)||""}function Ja(a){a=(a===void 0?null:a)||document.body;return(a?window.getComputedStyle(a,null):null).direction=="rtl"}
function Ka(a,b){var c=[];a=a.elements;for(var d=a.length,e=0;e<d;e++){var f=a[e],g=encodeURIComponent(f.name||""),h=f.type;!g||b&&!b(f)||f.disabled||!(h!="checkbox"&&h!="radio"||f.checked)||c.push(g+"="+encodeURIComponent(f.value||""))}return c.join("&")}function La(a,b){var c=a.elements[b];c||(c=I(Da),c.type="hidden",c.name=b,a.appendChild(c));return c}function Ma(a){a.match(Na)&&(window.location.href=a)}function I(a){return document.createElement(a.Pb)}
function Oa(a){var b=A(a);b||(b=I(Ga),b.id=a,document.head.appendChild(b));return b}function Qa(a){if(!A("gs_hats")){var b=I(Fa);b.id="gs_hats";b.src="https://www.gstatic.com/feedback/js/help/prod/service/lazy.min.js";b.onload=a;document.body.appendChild(b)}}function Ra(a){return"transform:scale(1,"+a+");"}function Sa(a){return"transform:translate(0,"+a+"px);"}var Ia=100,Ta=/\S+/g,Na=/^(?:https?:|[^:/?#]*(?:[/?#]|$))/i,Ua=/^(?:#|\/[a-z0-9_-]*(?:[?].*)?$)/i;function J(){return Date.now()}function Va(a){return a.hasOwnProperty("gs_uid")?a.gs_uid:a.gs_uid=++Wa}var Wa=0;function Xa(a){var b=[];a=t(a);for(var c=a.next();!c.done;c=a.next())c=c.value.charCodeAt(0),b.push(c<32||c>=126?c:String.fromCharCode(32+(c-32+47)%94));return b.join("")};var K=function(){this.A=[];this.ea={};this.va=this.J=0};K.prototype.add=function(a){var b=Va(a);this.ea[b]||(this.A.push(a),this.ea[b]=this.A.length,++this.J)};K.prototype.remove=function(a){a=Va(a);var b=this.ea[a];b&&(this.A[b-1]=null,delete this.ea[a],--this.J*2<this.A.length&&!this.va&&Ya(this))};K.prototype.notify=function(a){var b=this.A;try{++this.va;for(var c=0;c<b.length;c++){var d=b[c];d&&d.apply(null,arguments)}}finally{!--this.va&&this.J*2<b.length&&Ya(this)}};K.prototype.getSize=function(){return this.J};
var Ya=function(a){var b=a.A,c=b.length;a=a.ea;for(var d=0,e=0;e<c;e++){var f=b[e];f&&(b[d]=f,a[Va(f)]=++d)}b.length=d};function L(a,b,c,d,e){Za(a,b,c,d===void 0?!1:d,e===void 0?!1:e,$a)}function N(a,b,c,d){Za(a,b,c,d===void 0?!1:d,!1,ab)}function bb(a,b,c,d,e){function f(g){N(a,b,f,d);c(g)}d=d===void 0?!1:d;L(a,b,f,d,e===void 0?!1:e);return f}function cb(a,b,c,d,e){var f=bb(a,b,function(h){clearTimeout(g);c(h)}),g=setTimeout(function(){N(a,b,f);e&&e()},d)}function O(a){db?db.add(a):a()}
var eb=window.requestAnimationFrame?function(a){window.requestAnimationFrame(a)}:function(a){setTimeout(function(){return a(window.performance&&performance.now?performance.now():J())},33)};function fb(a){a.stopPropagation();a.preventDefault()}function gb(a){return(a.ctrlKey?1:0)|(a.altKey?2:0)|(a.metaKey?4:0)|(a.shiftKey?8:0)}function $a(a,b,c,d,e){var f=a.addEventListener;e=e&&xa();f.call(a,b,c,e?{passive:e,capture:d}:d)}function ab(a,b,c,d){a.removeEventListener(b,c,d)}
function Za(a,b,c,d,e,f){if(typeof b==="string")f(a,b,c,d,e);else for(var g=b.length,h=0;h<g;h++)f(a,b[h],c,d,e)}function hb(){db.notify();db=null}function ib(){document.readyState=="complete"&&(N(document,"readystatechange",ib),hb())}var db,jb=!!document.attachEvent,kb=document.readyState;if(jb?kb!="complete":kb=="loading")db=new K,jb?L(document,"readystatechange",ib):bb(document,"DOMContentLoaded",hb);
function lb(){bb(document,["mousedown","touchstart"],function(){y(document.documentElement,"gs_pfcs",!0);L(document,"keydown",mb,!0)},!0,!0)}function mb(a){a.keyCode==9&&(y(document.documentElement,"gs_pfcs",!1),N(document,"keydown",mb,!0),lb())}lb();function nb(a,b,c,d,e){var f=A(a);ob(f,function(){v(f,"gs_vis");b&&b()},function(){w(f,"gs_vis");c&&c()},d,e)}function pb(a){a=P[a]||[0];return a[a.length-1]}
function ob(a,b,c,d,e,f){f=f===void 0?"":f;var g=E(a),h=pb(g);if(!h||h<pb(f)){var k=document.activeElement;f=A(f);qb(rb(f||a),!0);b&&b();sb.push(function(l){P[g].pop();P[g].length||delete P[g];if(!l){(l=e)||k==document.body||(l=k);var n=document.activeElement;if(l)try{l.focus()}catch(p){}else n&&a.contains(n)&&n.blur()}c&&c()});P[g]||(P[g]=[]);P[g].push(sb.length);k&&a.contains(k)||setTimeout(function(){var l=d,n=l&&l.type=="text";if(!l||n&&va)l=a;try{l.focus(),n&&(l.value=l.value)}catch(p){}},0)}}
function tb(a){qb((pb(a)||1E6)-1,!1)}function vb(a){a=a===void 0?!1:a;sb.pop()(a)}function qb(a,b){for(b=b===void 0?!1:b;sb.length>a;)vb(b||sb.length>a+1)}function rb(a){for(var b=0;a&&!(b=pb(a.id));)a=a.parentNode;return b}var sb=[],P={};L(document,"click",function(a){var b=sb.length;b&&!gb(a)&&b>rb(a.target)&&vb(!0)});L(document,"keydown",function(a){a.keyCode==27&&!gb(a)&&sb.length&&vb()});
L(document,"focus",function(a){var b=sb.length;if(b)for(var c=rb(a.target);c<b;){var d="",e;for(e in P)if(pb(e)==b){d=e;break}a:{d=(A(d).getAttribute("data-wfc")||"").match(Ta)||[];for(var f=0;f<d.length;f++){var g=A(d[f]);if(g&&g.offsetWidth){d=g;break a}}d=void 0}if(d){fb(a);d.focus();break}else vb(!0),--b}},!0);function wb(a,b,c,d){if((d===void 0?0:d)||!(c in xb)){a=a&&a.getItem(c);if(a)try{var e=JSON.parse(a)}catch(f){}b[c]=e}return b[c]}function yb(a,b,c,d){b[c]=d;try{a&&a.setItem(c,JSON.stringify(d))}catch(e){}}function zb(a,b){return wb(Ab,xb,a,b===void 0?!1:b)}var xb={},Ab,Bb={},Cb;try{Ab=window.localStorage,Cb=window.sessionStorage}catch(a){};function Db(a){return typeof a=="object"?a:null}function Eb(){var a=Fb(),b=Gb();b=Hb(b);a=Ib(a);a=Jb(a)||"#";Kb=Db(b);Lb?window.history.replaceState(b,"",a):window.location.replace(a)}function Mb(a){var b=[],c;for(c in a)b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b.sort().join("&")}function Jb(a){return(a=Mb(a))?"#"+a:""}
function Nb(a){var b={};a=a.split("&");for(var c=0;c<a.length;c++){var d=a[c],e=d.indexOf("=");if(e+1){var f=d.substr(0,e);d=d.substr(e+1)}else f=d,d="";f&&(b[decodeURIComponent(f)]=decodeURIComponent(d))}return b}function Ob(){var a=window.location.hash,b=a.indexOf("#")+1;return Nb(b?a.substr(b):"")}function Pb(a){var b=a.indexOf("?")+1;a=b?a.substr(b):"";b=a.indexOf("#");return Nb(b+1?a.substr(0,b):a)}function Qb(a,b){for(var c in b){var d=b[c];d!==void 0?a[c]=d:delete a[c]}}
function Ib(a){var b=Ob();Qb(b,a);return b}function Hb(a){var b=Kb||Db(window.history.state),c={},d;for(d in b)c[d]=b[d];Qb(c,a);return c}function Rb(){setTimeout(function(){if(!Sb){var a=window.history.state;Sb=!0;Kb=Db(a);Tb.notify()}Ub=!1},0)}var Tb=new K,Kb,Sb=!1,Ub=!0,Lb="pushState"in window.history,Vb;
if(typeof GSP=="undefined")Vb=!1;else{var Wb=.001*J(),Xb=GSP.eventId,Yb=!1,Zb=wb(Cb,Bb,"nh",!1);Zb instanceof Array||(Zb=[]);for(var $b=Zb.length,ac=0,bc=0;bc<$b;bc++){var cc=Zb[bc];if(cc instanceof Array&&cc.length==2){var dc=cc[1]==Xb;Yb=Yb||dc;$b-bc<=10&&+cc[0]>Wb-86400&&!dc&&(Zb[ac++]=cc)}}Zb.length=ac;Zb.push([Wb,Xb]);yb(Cb,Bb,"nh",Zb);Vb=Yb}var ec=Vb;"onpageshow"in window?L(window,"pageshow",Rb):O(Rb);
L(window,Lb?"popstate":"hashchange",function(a){document.readyState!="loading"&&(a=a.state,Sb=!0,Kb=Db(a),Tb.notify())});function fc(){gc&&(N(A("gs_alrt_l"),"click",gc),gc=void 0)}function hc(a){var b=b===void 0?"":b;var c=c===void 0?"":c;var d=d===void 0?[]:d;A("gs_alrt_m").innerHTML=a;ic().action=c.match(Na)?c:"";a=A("gs_alrt_l");a.textContent=b;b=A("gs_alrt_h");b.innerHTML="";for(var e in d)c=I(Da),c.type="hidden",c.name=e,c.value=d[e],b.appendChild(c);fc();y(a,"gs_fm_s",!0);jc()}
function jc(){var a=ic();v(a,"gs_anm");v(a,"gs_vis");L(document,"click",kc);clearTimeout(lc);lc=setTimeout(kc,4E3);++mc;setTimeout(nc,0)}function kc(){mc||(N(document,"click",kc),clearTimeout(lc),lc=void 0,fc(),w(ic(),"gs_vis"))}function ic(){return A("gs_alrt")}function nc(){mc=0}var lc,mc=0,gc;O(function(){var a=A("gs_alrt_m");a&&(a.innerHTML&&!ec&&jc(),L(window,"pagehide",function(){mc=0;kc();w(ic(),"gs_anm")}))});function Q(a,b,c){b=b===void 0?oc:b;c=c===void 0?!1:c;b.length=0;a.normalize&&(a=a.normalize("NFKD").replace(pc,""));return a.toLowerCase().replace(qc,function(d,e){b.length||e&&b.push(0);b.push(d.length);return e&&(!c||e+d.length<a.length)?" ":""})}function rc(a,b,c,d,e){var f=c.indexOf(a),g="",h="";f>0&&(f=c.indexOf(" "+a));!(a&&f+1)||e!==void 0&&e&&f||(f+=c[f]==" ",g=sc(c.substr(0,f),b,d),h=sc(c.substr(0,f+a.length),b,d).substr(g.length));return[g,h,b.substr(g.length+h.length)]}
function sc(a,b,c){var d=a.length;for(a=a.split(" ").length;a--;)d+=(c[a]||0)-1;return b.substr(0,d+1)}var oc=[],pc=/[\u0300-\u036f]+/g,qc=RegExp("[\\s\x00-/:-@[-`{-\u00bf\u2000-\u206f\u2e00-\u2e42\u3000-\u303f\uff00-\uff0f\uff1a-\uff20\uff3b-\uff40\uff5b-\uff65]+","g"),tc=/^[\d\s]*[\u0590-\u08ff\ufb1d-\ufdff\ufe70-\ufefc]/;var uc=function(a,b,c,d,e,f,g){e=e===void 0?[]:e;this.C=a;this.source=b;this.La=c===void 0?"":c;this.B=d===void 0?"":d;this.X=e;this.Jb=f===void 0?"":f;this.Pa=g===void 0?"":g};var vc=function(){this.Za=100;this.J=0;this.W=this.O=null;this.ga=Object.create(null)};vc.prototype.get=function(a){if(a=this.ga[a])return wc(this,a),a.value};vc.prototype.set=function(a,b){var c=this.ga[a];c?(c.value=b,wc(this,c)):(this.J>=this.Za&&(delete this.ga[this.W.key],this.W=this.W.V,this.W.ha=null,--this.J),c=this.ga[a]={key:a,value:b,ha:this.O,V:null},this.O?this.O.V=c:this.W=c,this.O=c,++this.J)};
var wc=function(a,b){var c=b.ha,d=b.V;d&&((d.ha=c)?c.V=d:a.W=d,a.O.V=b,b.ha=a.O,b.V=null,a.O=b)};function xc(a,b,c){var d=new XMLHttpRequest;d.onreadystatechange=function(){if(d.readyState==4){var e=d.status,f=d.responseText,g=d.getResponseHeader("Content-Type"),h=d.responseURL,k=window.location,l=k.protocol;k="//"+k.host+"/";h&&h.indexOf(l+k)&&h.indexOf("https:"+k)&&(e=0,g=f="");c(e,f,g||"")}};d.open(b?"POST":"GET",a,!0);d.setRequestHeader("X-Requested-With","XHR");b&&d.setRequestHeader("Content-Type","application/x-www-form-urlencoded");b?d.send(b):d.send();return d}
function yc(a){a&&(a.onreadystatechange=function(){},a.abort())};var zc=function(a,b){this.Kb=a;this.Sa=b;this.da=this.ca=0;this.ya=this.za="";this.Aa=void 0;this.Ha=new vc},Cc=function(a,b,c){var d=b?a.Ha.get(Ac(a,b,c)):[];d?a.Sa(b,c,d):(a.za=b,a.ya=c,a.ca>=10||a.da>=3||(a.ca?a.Aa!==void 0||(a.Aa=setTimeout(function(){Bc(a)},100<<Math.max(a.ca-4,0))):Bc(a)))},Bc=function(a){a.Aa=void 0;var b=a.za,c=a.ya;a.za=a.ya="";if(b){++a.ca;var d=new XMLHttpRequest;d.onreadystatechange=function(){if(d&&d.readyState==4){var e=d.status;e==200&&a.ta(b,c,d.responseText);d=null;
Dc(a,e)}};d.ontimeout=function(){d&&(d=null,Dc(a))};d.open("GET",Ac(a,b,c),!0);d.timeout=3E4;d.send()}},Dc=function(a,b){b=b===void 0?0:b;--a.ca;var c=3*(b==403?1:0)+(b>499&&b<600?1:0);a.da+=c;c&&setTimeout(function(){a.da-=c},3E4)};
zc.prototype.ta=function(a,b,c){try{var d=JSON.parse(c)}catch(r){}if(d&&typeof d=="object"&&(c=d.l,c instanceof Array)){d=[];for(var e=c.length,f=0;f<e;f++){var g=d,h=g.push,k=""+c[f],l=k.indexOf("|");var n=k.substr(0,l);var p=Q(n);k=k.substr(l+1);l=[];n=new uc(k,0,"",Q(k,l),l,n,p);h.call(g,n)}this.Ha.set(Ac(this,a,b),d);this.Sa(a,b,d)}};var Ac=function(a,b,c){return"/scholar_complete?"+encodeURIComponent(a.Kb)+"="+encodeURIComponent(b)+"&"+c};var Fc=function(a){this.Ta="H:"+a;this.G=[];this.Ib=.001*J();a=zb(this.Ta);a instanceof Array||(a=[]);for(var b=this.G,c={"":1},d=0;d<a.length&&b.length<50;d++){var e=new Ec(a[d]);c.hasOwnProperty(e.B)||(c[e.B]=1,b.push(e))}};
Fc.prototype.add=function(a,b,c){c=(c===void 0?0:c)||.001*J();b=(b===void 0?0:b)||c;a=new Ec([0,0,a]);if(a.B){for(var d=this.G,e=d.length,f=0;f<e&&d[f].B!=a.B;)++f;f<e||d.push(a);e=d[f];if(!(b-e.F<2)){e.F=b;e.C=a.C;e.X=a.X;for(e.H=Math.min(e.H+Gc(b),10*Gc(c));f&&Hc(d[f],d[f-1]);)a=d[f],d[f]=d[f-1],d[--f]=a;d.splice(50,1);Ic(this)}}};Fc.prototype.remove=function(a){for(var b=this.G,c=b.length,d=0;d<c;d++)if(b[d].C==a){b.splice(d,1);Ic(this);break}};
var Ic=function(a){for(var b=[],c=a.G,d=c.length,e=0;e<d;e++)b.push(c[e].encode());yb(Ab,xb,a.Ta,b)};function Gc(a){return Math.exp(.0231*(Math.max(a-1422777600,0)/86400|0))}var Ec=function(a){a instanceof Array||(a=Jc);this.F=+a[0]||0;this.H=+a[1]||0;this.C=""+a[2];this.X=[];this.B=Q(this.C,this.X,!0)};Ec.prototype.encode=function(){return[this.F,this.H,this.C]};
var Hc=function(a,b){var c=a.H-b.H;return c>0||!c&&a.F>b.F},Jc=[0,0,""],Kc=function(a,b,c){this.F=a;this.H=b;this.C=c},Lc=function(a,b){var c=a.H-b.H;return c>0||!c&&a.F>b.F};var Mc=function(a){this.D=a};function Nc(a){var b=I(Aa);b.textContent=a;return b};var Oc=function(a,b,c){this.type=a;this.currentTarget=this.target=b;this.i=c===void 0?null:c;this.Ba=!1};Oc.prototype.stopPropagation=function(){this.i&&this.i.stopPropagation();this.Ba=!0};var S=function(a){a.i&&fb(a.i);a.Ba=!0};var T=function(a,b){this.Da=a;this.Hb=b},Pc=function(a,b,c){this.Da=a;this.types=b;this.listener=c};function Qc(a,b){U(a,"click",b)}function Rc(a,b){var c=b.length;if(c){var d=Va(a),e=Sc[d];if(!e){e=Sc[d]=[];d=Tc(b[0].Da);for(var f in d){var g=Uc[f];g||(g=Uc[f]=Object.create(null));for(var h in d[f]){var k=g[h];k||(k=g[h]=[]);k.push(a)}}Vc(a,e,b[0],Wc);for(f=1;f<c;f++)Vc(a,e,b[f],Xc)}}}function V(a,b,c){Yc(new Oc(a,b,c===void 0?null:c))}
function U(a,b,c){var d=Zc;typeof b==="string"&&($c[0]=b,b=$c);var e=b.length;a=Tc(a);for(var f in a)for(var g in a[f])for(var h=0;h<e;h++)d(f,g,b[h],c)}function Tc(a){typeof a==="string"&&(ad[0]=a,a=ad);for(var b=a.length,c=Object.create(null),d=0;d<b;d++){var e=a[d],f=e.charAt(0),g=e.substr(1);if(f!="#"&&f!="."||!g)throw Error("bad selector: "+e);(e=c[f])||(e=c[f]=Object.create(null));e[g]=!0}return c}
function Zc(a,b,c,d){var e=bd[c];e||(c!="touchstart"&&c!="mouseover"&&c!="mouseout"&&L(document,c,cd,c=="focus"||c=="blur"),e=bd[c]=Object.create(null));(c=e[a])||(c=e[a]=Object.create(null));(a=c[b])||(a=c[b]=new K);a.add(d)}function cd(a){var b=a.target;b&&b.nodeType==3&&(b=b.parentNode);Yc(new Oc(a.type,b,a))}
function Yc(a){for(var b=a.target;b&&b!=document&&!b.disabled&&!x(b,"gs_dis");){a.currentTarget=b;var c=b.id;if(c&&!dd("#",c,a))break;c=b.classList||[];for(var d=c.length,e=0;e<d;e++)if(!dd(".",c[e],a))return;b=b.parentNode}}function dd(a,b,c){var d=bd[c.type];(b=(a=d&&d[a])&&a[b])&&b.notify(c);return!c.Ba}function Vc(a,b,c,d){var e=c.Da;c=c.Hb;for(var f in c){var g=oa(d,a,c[f]);U(e,f,g);b.push(new Pc(e,f,g))}}function Wc(a,b,c){var d=c.currentTarget;a=ed(a,d)||a;a=fd(a,d);b.call(a,c)}
function Xc(a,b,c){a:{for(var d=c.currentTarget;d&&d!=document;){var e=ed(a,d);if(e){a=fd(e,d);break a}d=d.parentNode}a=void 0}a&&b.call(a,c)}function fd(a,b){var c=gd(b),d=hd[c];d||(d=hd[c]=[]);for(var e=d.length,f=0;f<e;f++){var g=d[f];if(g instanceof a)return g}b=new a(b);d.push(b);a=Va(a);(d=id[a])||(d=id[a]=[]);d.push(c);return b}function ed(a,b){var c,d=b.id;d&&(c=jd(a,c,"#",d));b=b.classList||[];d=b.length;for(var e=0;e<d;e++)c=jd(a,c,".",b[e]);return c}
function jd(a,b,c,d){c=(d=(c=Uc[c])&&c[d])?d.length:0;for(var e=0;e<c;e++){var f=d[e];!(f===a||f.prototype instanceof a)||b&&!(f===b||f.prototype instanceof b)||(b=f)}return b}function gd(a){var b=a.getAttribute("data-duid");b||a.setAttribute("data-duid",b=""+kd++);return b}var bd=Object.create(null),ad=[""],$c=[""],Uc=Object.create(null),Sc=Object.create(null),id=Object.create(null),hd=Object.create(null),kd=100;window.gs_evt_dsp=cd;function ld(a){if(typeof a==="string"){var b=a.charAt(0),c=a.slice(1);if(b=="#")a=function(d){return d.id==c&&d.offsetWidth>0};else if(b==".")a=function(d){return x(d,c)&&d.offsetWidth>0};else throw Error("bad selector: "+a);}return a}function md(a,b){return a&&((b===void 0?0:b)?a.lastElementChild:a.firstElementChild)}function nd(a,b){return a&&((b===void 0?0:b)?a.previousElementSibling:a.nextElementSibling)}
function od(a){var b=b===void 0?!1:b;var c=[];for(a=nd(a,b);a;)c.push(a),a=nd(a,b);return c}function pd(a,b,c,d){d=d===void 0?!1:d;return qd(a,b,ld(c),d,!1)}function qd(a,b,c,d,e){for(var f;b&&a;){if(c(b)){if(e)return b}else for(f=md(b,d);f;f=nd(f,d))if(e=qd(f,f,c,d,!0))return e;for(e=!0;;){if(b==a)return null;f=b.parentNode;if(b=nd(b,d))break;b=f}}return null};var W=function(a){var b=this;this.g=a.querySelector(".gs_in_ac");this.D=a.querySelector(".gs_md_ac");this.ba=this.N=!1;this.G=new Fc(this.g.name);this.eb=new zc(this.g.name,function(c,d,e){d==b.ja&&rd(b,c)&&(c.length>=b.ka.length||!rd(b,b.ka))&&(b.ka=c,b.Ca=e,sd(b))});this.Qa=0;this.Lb=new Mc(this.D);this.Ma=[];this.Oa=[];this.ka="";this.Ca=[];this.ja="";this.I=this.g.value;td(this);L(this.g.form,["change","gs-change"],function(){td(b)})},ud=function(a){return a.D.style.display=="block"},wd=function(a){if(ud(a)){var b=
vd(a);b&&w(b,"gs_sel");a.N=a.ba=!1;a.D.style.display="none"}},xd=function(a,b,c){c=c===void 0?[]:c;a.Ma=c;c=a.G;var d=Q(b);var e=" "+d,f=d.length,g=d.split(" ").length,h=.1/Gc(c.Ib),k=c.G,l=k.length;c=[];for(var n=0;n<l;n++){var p=k[n],r=p.B,F=r.indexOf(d);if(!(F<0)){var H=10;F&&(F=r.lastIndexOf(e),H=+(F>=0));r=H*(2*(g-1)+(1+((r[F+f]||" ")==" ")))/g;F=p.H*h;if(r=d?r*F:1){p=new Kc(p.F,r,p.C);for(r=0;r<c.length&&!Lc(p,c[r]);)++r;r<3&&c.splice(r,0,p);c.splice(3,1)}}}d=[];for(e=0;e<c.length;e++)f=d,g=
f.push,h=c[e].C,k=[],h=new uc(h,2,"",Q(h,k),k),g.call(f,h);a.Oa=d;Cc(a.eb,b,a.ja);sd(a)},rd=function(a,b){return Q(a.g.value).indexOf(Q(b))==0},yd=function(a){var b=a.g.value;a.I=b;td(a);var c=[],d=a.g.getAttribute("data-iq")||"",e=a.g.getAttribute("data-is");if(d==b&&e){d=document.querySelectorAll(e);e=d.length;for(var f=0;f<e&&f<10;f++){var g=d[f];c.push(new uc(g.textContent,1,g.innerHTML))}}xd(a,b,c)},sd=function(a){a.Qa++||eb(function(){a.Qa=0;var b=a.Ma,c=a.Oa;var d=a.Ca;if(b.length)b=b.slice(0,
10);else{b=c.slice(0,3);var e=d.length&&d[0].Pa;c=e?3:10;var f=b.length;if(!f||!e){for(e=Object.create(null);f--;)e[b[f].B]=!0;for(f=0;f<d.length&&b.length<c;f++){var g=d[f];e[g.B]||b.push(g)}}}d=b;var h=a.g.value,k=a.Lb.D.firstElementChild;g=k.querySelector(".gs_md_acs");b=k.querySelector("ul");c=(c=b.querySelector(".gs_sel"))?c.getAttribute("data-q"):"";f=d.length;var l=[];e=Q(h,l);b.innerHTML="";if(f){var n=d[0].Pa,p=n&&"gs_md_acp";typeof p==="string"||(p=p.join(" "));k.className!=p&&(k.className=
p);h=rc(n,h,e,l,!0);g.textContent=h[0]+h[1];h=h[2];e=Q(h,l);for(g=0;g<f;g++){n=d[g];k=I(Ea);l=(n.Jb||"")+n.C;k.className="gs_md_ac_li";k.setAttribute("data-q",l);k.setAttribute("onclick","");if(n.La)k.innerHTML=n.La;else{h=rc(e,n.C,n.B,n.X);if(!h[1]){for(h=0;n.B[h]==e[h];)++h;h=rc(e.substr(0,h),n.C,n.B,n.X)}h[0]&&k.appendChild(Nc(h[0]));k.appendChild(document.createTextNode(h[1]));h[2]&&k.appendChild(Nc(h[2]));n.source==2&&(v(k,"gs_md_ac_lh"),h=I(Ha),h.className="gs_ico gs_ico_X gs_ico_Xt",k.appendChild(h))}l==
c&&v(k,"gs_sel");b.appendChild(k)}}d=d.length&&document.activeElement==a.g;d!=ud(a)&&(d?ud(a)||(a.N=a.ba=!1,a.D.style.display="block"):wd(a))})},vd=function(a){return a.D.querySelector(".gs_sel")},Ad=function(a,b){var c=a.g.getAttribute("data-oq")||"oq",d=a.g.form,e=d.elements[c];e||(e=I(Da),e.name=c,e.type="hidden",d.appendChild(e));e.value=a.I;a.g.value=zd(b)},Bd=function(a){V("gs-change",a.g)};m=W.prototype;
m.wb=function(){var a=this.g.value;this.I!=a&&(this.I=a,xd(this,a),Cd(this.g,Q(a).match(tc)?"rtl":"ltr"))};
m.ra=function(a){if(!this.ba){var b=a.i,c=b.keyCode;b=gb(b);var d;c!=13||b?c!=27||b?c!=38&&c!=40||b?(c==46&&!b||c==88&&(b==1||b==4))&&(d=vd(this))&&x(d,"gs_md_ac_lh")&&(this.g.selectionStart||0)>=this.g.value.length&&(this.G.remove(zd(d)),xd(this,this.g.value=this.I),S(a),Bd(this)):(ud(this)?((d=vd(this))&&w(d,"gs_sel"),(d=pd(this.D,d||this.D,".gs_md_ac_li",c==38))?(v(d,"gs_sel"),this.g.value=zd(d)):this.g.value=this.I,Bd(this)):yd(this),S(a)):ud(this)&&(this.g.value=this.I,wd(this),S(a),Bd(this)):
((d=vd(this))&&Ad(this,d),wd(this),Bd(this))}};m.sa=function(){var a=this;document.activeElement==this.g?yd(this):(clearTimeout(this.wa),this.wa=setTimeout(function(){a.wa=void 0},500))};m.vb=function(){this.wa!==void 0&&yd(this)};m.jb=function(){var a=this;setTimeout(function(){wd(a)},this.N?300:0)};m.ib=function(a){this.N&&S(a)};m.tb=function(){this.ba=!0};m.sb=function(){this.ba=!1};var td=function(a){var b=a.g,c=Ka(b.form,function(d){return d!=b});c!=a.ja&&(a.ja=c,a.ka="",a.Ca=[])};m=W.prototype;
m.nb=function(a){this.N=!0;S(a)};m.ob=function(){this.N=!0};m.pa=function(){this.N=!1};m.kb=function(a){var b=a.currentTarget;if(x(a.target,"gs_ico_X"))this.G.remove(zd(b)),xd(this,this.g.value=this.I);else{Ad(this,b);wd(this);this.g.blur();var c=this.g.form;setTimeout(function(){c.submit()},0)}Bd(this)};m.mb=function(a){a=a.currentTarget;if(!x(a,"gs_sel")){var b=vd(this);b&&w(b,"gs_sel");v(a,"gs_sel")}};m.lb=function(a){w(a.currentTarget,"gs_sel")};
var Dd=[new T(".gs_in_acw",{}),new T(".gs_in_ac",{input:W.prototype.wb,keydown:W.prototype.ra,mousedown:W.prototype.sa,focus:W.prototype.vb,blur:W.prototype.jb,beforedeactivate:W.prototype.ib,compositionstart:W.prototype.tb,compositionend:W.prototype.sb}),new T(".gs_md_ac",{mousedown:W.prototype.nb,touchstart:W.prototype.ob,mouseup:W.prototype.pa,touchend:W.prototype.pa,touchcancel:W.prototype.pa}),new T(".gs_md_ac_li",{click:W.prototype.kb,mouseover:W.prototype.mb,mouseout:W.prototype.lb})];
function zd(a){return a.getAttribute("data-q")||""}function Cd(a,b){a.getAttribute("dir")!=b&&(a.setAttribute("dir",b),a=a.parentNode,a.setAttribute("dir",b),a.querySelector(".gs_md_ac").setAttribute("dir",b))}function Ed(){for(var a=document.querySelectorAll(".gs_in_ac"),b=a.length,c=0;c<b;c++){var d=a[c],e=d.getAttribute("data-iq")||"";d.value=e;Cd(d,Q(e).match(tc)?"rtl":"ltr");V("gs-change",d);e=d.getAttribute("data-oq")||"oq";(e=d.form.elements[e])&&d.form.removeChild(e)}};function Fd(a){return(x(a,"gs_sel")?1:0)+2*(x(a,"gs_par")?1:0)}function Gd(a,b,c){c=c===void 0?!1:c;y(a,"gs_sel",b==1);y(a,"gs_par",b==2);a.setAttribute("aria-checked",Hd[b]);c||a.setAttribute("data-s",""+b)}var Hd=["false","true","mixed"];var Id=function(a){var b=window,c=this;this.A=new K;this.Ra=0;this.Ga=[b,a,function(){c.Ra++||eb(d)},!1];var d=function(){c.Ra=0;c.A.notify()}};Id.prototype.addListener=function(a){this.A.getSize()||L.apply(null,this.Ga);this.A.add(a)};Id.prototype.removeListener=function(a){this.A.remove(a);this.A.getSize()||N.apply(null,this.Ga)};var Jd=new Id("scroll"),Kd=new Id("resize");function Ld(a){Md.add(a);a()}var Md=new K;function Nd(){var a=document.documentElement,b=ua();b={gs_el_ph:b==1,gs_el_ta:b==2,gs_el_sm:b!=4,gs_el_tc:va||b==1};var c;for(c in b){var d=b[c];if(x(a,c)!=d){var e=!0;y(a,c,d)}}e&&Md.notify()}y(document.documentElement,"gs_el_ios",sa);Nd();Kd.addListener(Nd);L(window,["pageshow","load"],Nd);var Od=function(a,b,c,d,e,f){this.m=a;this.Z=b;this.T=c;this.Y=d;this.xa=e;this.S=f;this.v=null},Pd=function(a){return a.m},Qd=function(a,b){a.v=b},Rd=function(){this.o=[];this.j=-1};Rd.prototype.push=function(a){++this.j;this.j==this.o.length?this.o.push(a):(this.o[this.j]=a,this.o.splice(this.j+1,this.o.length-this.j))};Rd.prototype.pop=function(){--this.j};var Sd=function(a){for(var b=X;b.j>a;){var c=Pd(b.top());tb(c)}},Td=function(a,b){for(var c=0;c<a.o.length&&!(a.o[c].S>=b);++c);return c};
Rd.prototype.top=function(){return this.at(this.j)};Rd.prototype.at=function(a){return this.o[a]||null};function Ud(a,b){var c=a==X.j;X.j=a;b&&!Kb&&!Db(window.history.state)&&Eb();c||Vd()}function Wd(a,b,c,d){b=b===void 0?"":b;c=c===void 0?"":c;d=d===void 0?"":d;var e=X.top();e&&a==e.m&&b==e.Z&&c==e.T||(X.push(new Od(a,b,c,d,e&&e.m==a?e.xa+1:1,J())),b=Fb(),a=Gb(),a=Hb(a),b=Ib(b),b=Jb(b)||"#",Kb=Db(a),Lb?window.history.pushState(a,"",b):window.location.assign(b),Vd())}
function Xd(a){a=Yd(A(a));return!!a&&x(a,"gs_md_wmw")&&x(document.documentElement,"gs_el_ph")}function Zd(){var a=A("gs_top"),b=document.documentElement;a=a.scrollHeight>b.clientHeight;for(var c=!1,d=0;d<=X.j&&!c;++d)c=!Xd(Pd(X.at(d)));y(A("gs_md_s"),"gs_vis",c);c=X.j;c>=1&&(c=Pd(X.at(c-1)),d=Xd(c),y(A(c),"gs_md_ins_vis",!d));b.style.overflowY=a&&!Xd(Pd(X.top()))?"scroll":""}
function Vd(){function a(){var M=c.clientHeight,C=+H.getAttribute("data-h");C||(g.style.maxHeight="none",C=f.offsetHeight);var D=f.querySelector(".gs_md_ftr");C=Math.max((M-C)/2,10);M=Math.max(M-48-(D?D.offsetHeight:0)-2*C,10);D=Xd(e);f.style.top=D?"auto":C+"px";g.style.maxHeight=D?"none":M+"px";$d(g)}var b=X.top(),c=document.documentElement,d=A("gs_top"),e=b.m,f=A(e),g=A(e+"-bdy"),h=1200+X.j,k=A(f.getAttribute("data-cid")||f.id+"-bdy")||f,l=b.Y,n=b.T,p=b.Z,r=A("gs_md_s"),F=A(e).getAttribute("data-shd")||
"",H=Yd(f),B=window.pageYOffset,R=p&&p[0]!="#"&&!l,ra=X.j>0?Pd(X.at(X.j-1)):"",Pa=!!P[e];R?(Pa?y(k,"gs_md_ldg",!0):ae(f,k,'<div class="gs_md_prg">'+A("gs_md_ldg").innerHTML+"</div>",b),V("gs-md-ldin",k)):(l&&ae(f,k,l,b),V("gs-md-lded",k));Pa&&e==ra||ob(f,function(){(H||f).style.zIndex=h;be(F);Pa||(H&&v(H,"gs_vis"),v(f,"gs_vis"),y(f,"gs_abt",Ub),y(r,"gs_abt",Ub),ce(e),X.j==0?Ld(Zd):Zd(),H&&g&&(a(),Kd.addListener(a)));X.j==0&&(v(d,"gs_nscl"),d.style.top=-B+"px")},function(){Pa||(Kd.removeListener(a),
H&&w(H,"gs_vis"),w(f,"gs_vis"),w(f,"gs_abt"));for(var M=X.top()?X.top().xa:0;X.top()&&Pd(X.top())==e;){var C=X.top();yc(C.v);C.v=null;X.pop()}if(X.top()){if(C=Pd(X.top()),be(A(C).getAttribute("data-shd")||""),w(A(C),"gs_md_ins_vis"),Pa){a:{C=X;for(var D=C.j;D>=0;D--)if(C.o[D].m==e){C=D;break a}C=-1}D=X.at(C);(H||f).style.zIndex=1200+C;ae(f,k,D.Y,D)}}else w(r,"gs_vis"),w(r,"gs_abt");X.j==-1?(Md.remove(Zd),c.style.overflowY="",w(d,"gs_nscl"),d.style.top="auto",window.scrollTo(0,B)):Zd();de||(M>0?window.history.go(-M):
Eb())},ee(f),fe(f),ra);R&&(yc(b.v),b.v=null,Qd(b,xc(p,n,function(M,C,D){b.v=null;D=(M=M==200&&D.match(/^text\/html(;.*)?$/i))?C:ge();ae(f,k,D,b);if(M)for(M=e,D=0;D<X.o.length;++D){var ub=X.at(D);M==ub.m&&p==ub.Z&&n==ub.T&&(ub.Y=C,D==X.j&&Eb())}V("gs-md-lded",k)})))}function Yd(a){a=a.parentNode;return x(a,"gs_md_wnw")?a:null}function ee(a){return(a=a.getAttribute("data-ifc"))?A(a):null}function fe(a){return(a=a.getAttribute("data-cfc"))?A(a):null}
function ae(a,b,c,d){y(b,"gs_md_ldg",!1);for(var e=b.querySelectorAll("[data-duid]"),f=e.length,g={},h=0;h<f;h++){for(var k=gd(e[h]),l=hd[k],n=l?l.length:0,p=0;p<n;p++){var r=l[p],F=Va(r.constructor),H=g[F];H||(H=g[F]={});H[k]=!0;r&&typeof r.dispose=="function"&&r.dispose()}delete hd[k]}for(var B in g){B=+B;e=g[B];h=(f=id[B])?f.length:0;for(l=k=0;l<h;l++)n=f[l],n in e||(f[k++]=n);k?f.length=k:delete id[B]}b.innerHTML=c;d.Y=c;ce(a.id);yc(d.v);d.v=null}
function ce(a){if(a=document.querySelector("#"+a+">.gs_md_bdy"))a.scrollTop=a.scrollLeft=0,$d(a)}function $d(a){var b=a.style,c="padding"+(Ja(a)?"Left":"Right");b[c]="";var d=a.offsetWidth-a.clientWidth;d>2&&(a=parseInt(window.getComputedStyle(a,null)[c],10)||0,b[c]=Math.max(a-d,0)+"px")}function he(){return A("gs_md_err").innerHTML}function ge(){return'<div class="gs_md_prg"><div class="gs_alrt">'+he()+"</div></div>"}
function Fb(){var a=X.top();return{d:a&&a.m||void 0,u:a&&a.Z||void 0,p:a&&a.T?"1":void 0,t:a&&a.S||void 0}}function Gb(){var a=X.top();return{n:a&&a.xa||0,p:a&&a.T||"",h:a&&a.Y||""}}function be(a){if(ie!=a){var b=A("gs_md_s");ie&&w(b,ie);(ie=a)&&v(b,a)}}var de=0,ie="",X=new Rd;
Tb.add(function(){var a=Ob(),b=a.d||"",c=b?A(b):null;++de;if(c){var d=a.u||"";c=+a.p>0;var e=+a.t||0,f=Kb||Db(window.history.state)||{};a=+f.n||0;var g=""+(f.p||"");f=""+(f.h||"");d.match(Ua)||(d="");for(var h=Td(X,e),k=h;k<X.o.length;++k){var l=X.at(k);if(e<l.S&&l.m!=b)break}for(l=h-1;l>=0;--l){var n=X.at(l);if(e>n.S&&n.m!=b)break}Sd(k-1);for(k=0;k<=l;++k)n=Pd(X.at(k)),P[n]||Ud(l,!1);if(l=h<X.o.length)l=X.at(h),l=b==l.m&&d==l.Z&&c==!!l.T&&e==l.S;if(l)Ud(h,!0);else{a==0&&(Sd(-1),X=new Rd,e=J());c!=
!!g&&(d=g="",f=ge());b=new Od(b,d,g,f,a,e);c=X;a=b.S;e=Td(c,a);if(d=e<c.o.length)d=c.at(e).S,d=a==d;c.o.splice(e,d?1:0,b);X.j=e;Eb();Vd()}}else Sd(-1);--de});var je=function(a){pa.call(this);this.fa=a;this.ua=Object.create(null);this.v=null;a=a.querySelectorAll(".gs_in_txtw>input[type=text]");for(var b=a.length;b--;){var c=a[b],d=c.parentNode.querySelector(".gs_in_txts");c=c.name;d&&c&&(this.ua[c]=d.innerHTML)}};la(je,pa);je.prototype.na=function(){yc(this.v);this.fa=this.v=null;pa.prototype.na.call(this)};je.prototype.Cb=function(a){var b=this;S(a);if((a=this.fa)&&!this.v){var c="json=&"+Ka(a);ke(this,!0);this.v=xc(a.action,c,function(d,e){b.ta(d,e)})}};
je.prototype.ta=function(a,b){this.v=null;ke(this,!1);var c=this.fa,d=c.getAttribute("data-alrt");if(d=d?A(d):null)d.innerHTML="";try{var e=a==200&&JSON.parse(b)}catch(p){}a=!1;e&&typeof e=="object"||(a=he(),d?d.innerHTML=a:hc(a),e={},a=!0);c.setAttribute("data-p",""+(e.P||""));V("gs-ajax-form-done",c);if(b=e.L)Ma(""+b);else{if(b=e.M)d?d.innerHTML=b:hc(b),a=!0;b=1E6;if(d&&d.innerHTML){var f=d;b=d.getBoundingClientRect().top}d=c.elements;e=e.E;typeof e=="object"||(e=Object.create(null));for(var g in this.ua){var h=
d[g],k=void 0,l=""+(e[g]||""),n=h.parentNode.querySelector(".gs_in_txts");y(h.parentNode,"gs_in_txte",!!l);n&&(n.innerHTML=l||this.ua[g]||"");l&&(k=h.getBoundingClientRect().top)<b&&(f=h,b=k);a=a||!!l}(c=c.getAttribute("data-d"))&&!a&&tb(c);f&&f.scrollIntoView&&(b<0||b+20>window.innerHeight)&&f.scrollIntoView()}};var ke=function(a,b){a=a.fa;var c=a.getAttribute("data-bsel");a=c?document.querySelectorAll(c):a.querySelectorAll("button");for(c=a.length;c--;){var d=a[c];d.disabled=b;y(d,"gs_bsp",b)}};
Rc(je,[new T(".gs_ajax_frm",{submit:je.prototype.Cb})]);var le=[[1,0,1],[2,0,1]];U(".gs_cb_gen","click",function(a){var b=a.currentTarget,c=Fd(b),d=+b.getAttribute("data-s")==2;Gd(b,le[+d][c],!0);V("gs-change",b,a.i)});U(".gs_cb_gen",["keydown","keyup"],function(a){var b=a.currentTarget,c=a.i.keyCode;b.tagName!="BUTTON"||c!=13&&c!=32||(S(a),a.type=="keydown"&&b.click())});U([".gs_cb_gen",".gs_md_li"],"keydown",function(a){var b=a.currentTarget,c=b.tagName,d=a.i.keyCode;c!="BUTTON"&&(d==32||d==13&&c!="A")&&(S(a),b.click())});var me=["click","contextmenu","mouseup"].concat(navigator.sendBeacon?[]:["mousedown","touchstart"]),ne="",oe=null;function pe(){oe=null}function qe(a){navigator.sendBeacon?navigator.sendBeacon(a):oe&&a==oe.src||((oe=new Image).src=a,setTimeout(pe,1E3))}function re(){var a=Pb(document.location.href).hl||"";a="/scholar_bfnav?url="+encodeURIComponent(document.location.href)+"&hl="+encodeURIComponent(a)+"&ei="+GSP.eventId;qe(a)}O(function(){ne=ec?"&bn=1":"";ec&&re()});
L(window,"pageshow",function(a){a.persisted&&(ne="&bn=1",re())});
L(document,me,function(a){if(!(a.type=="click"&&a.button||a.type=="mouseup"&&a.button!=1)){var b,c;a:{for(a=a.target;a;){var d=a.nodeName;if(d=="A")break a;if(d=="SPAN"||d=="B"||d=="I"||d=="EM"||d=="IMG")a=a.parentNode;else break}a=null}a&&(b=a.getAttribute("href"))&&(c=a.getAttribute("data-clk"))&&(b="/scholar_url?url="+encodeURIComponent(b)+"&"+c+"&ws="+window.innerWidth+"x"+window.innerHeight+"&at=",c=encodeURIComponent,a=(a=a.getAttribute("data-clk-atid"))?A(a):null,b=b+c(a&&a.innerText||"")+
ne,qe(b))}},!1,!0);U(".gs_fm_s","click",function(a){a=a.currentTarget.getAttribute("data-fm")||"";(a=A(a))&&a.submit()});var se=function(a){this.m=E(a.querySelector(".gs_md_d"));this.ma=E(a.querySelector(".gs_md_tb"))};m=se.prototype;m.oa=function(a){var b=A(this.m);return a!==void 0?pd(b,b,".gs_md_li",a):null};m.open=function(a){a=this.oa(a);if(x(A(this.ma),"gs_sel"))try{a&&a.focus()}catch(c){}else{var b=A(this.ma);nb(this.m,function(){v(b,"gs_sel")},function(){w(b,"gs_sel")},a,b)}};m.close=function(){tb(this.m)};m.pb=function(a){S(a);x(A(this.ma),"gs_sel")?this.close():this.open(a.i.type=="keydown"?!1:void 0)};
m.Ja=function(a){var b=a.i.keyCode;if(b==38||b==40)S(a),this.open(b==38)};m.ub=function(a){a.target.id==this.m&&this.Ja(a)};Rc(se,[new T(".gs_md_rmb",{}),new T(".gs_md_tb",{"gs-press":se.prototype.pb,keydown:se.prototype.Ja}),new T(".gs_md_d",{keydown:se.prototype.ub})]);var te=function(a){se.call(this,a);this.Eb=E(a.querySelector(".gs_md_in"));this.Gb=E(a.querySelector(".gs_md_tb .gs_lbl"))};la(te,se);te.prototype.oa=function(){return A(this.m).querySelector(".gs_md_li[aria-selected]")};te.prototype.xb=function(a){ue(this,a)};te.prototype.qa=function(a){var b=a.i.keyCode;b!=13&&b!=32||ue(this,a)};
var ue=function(a,b){var c=b.currentTarget,d=A(a.Eb),e=a.oa();c!=e&&(d.value=c.getAttribute("data-v"),A(a.Gb).innerHTML=c.innerHTML,e&&ve(e,!1),ve(c,!0));S(b);a.close();V("gs-change",d,b.i)},ve=function(a,b){y(a,"gs_sel",b);b?a.setAttribute("aria-selected","true"):a.removeAttribute("aria-selected")};Rc(te,[new T(".gs_md_ris",{}),new T(".gs_md_li",{click:te.prototype.xb,keydown:te.prototype.qa})]);U("#gs_lp","click",function(a){S(a);Wd("gs_lp_d")});U("#gs_lp_cur","click",function(a){S(a);tb("gs_lp_d")});var we=function(a){this.Ua=E(a)};we.prototype.qa=function(a){var b=a.currentTarget,c=a.i.keyCode;if(c==38||c==40){var d=A(this.Ua);d=pd(d,b,".gs_md_li",c==38)||pd(d,d,".gs_md_li",c==38)}else if(c==37||c==39)a:{c=c==37!=Ja(b.parentNode);d=b.parentNode;var e=d.children,f=e.length;if(d.id!=this.Ua){for(;e[--f]!=b;);d=nd(d,c)||md(d.parentNode,c);e=d.children;if(f=Math.min(f+1,e.length))if(d=e[f-1],x(d,"gs_md_li")&&d.offsetLeft!=b.offsetLeft)break a}d=void 0}d&&(S(a),d.focus())};
Rc(we,[new T(".gs_md_ulr",{}),new T(".gs_md_li",{keydown:we.prototype.qa})]);U("#gs_hdr_mnu","click",function(a){S(a);Wd("gs_hdr_drw")});U("#gs_hdr_drw_mnu","click",function(a){S(a);tb("gs_hdr_drw")});U("#gs_hdr_act_i","click",function(a){S(a);ua()==1?Ma(document.querySelector("#gs_hdr_drw_bot>a").href):nb("gs_hdr_act_d")});U("#gs_hdr_drw","keydown",function(a){var b=a.i.keyCode;if(b==38||b==40){var c=a.currentTarget;if(b=pd(c,c,".gs_md_li",b==38))S(a),b.focus()}});
U("#gs_hdr_tsi",["focus","blur"],function(a){function b(){var g=d.getBoundingClientRect().top-10;Math.abs(g)>10&&window.scrollBy(0,g);clearTimeout(e);c()}function c(){N(window,f,b)}var d=a.target;a=a.type=="focus";y(A("gs_hdr"),"gs_hdr_ifc",a);if(a&&va&&!(window.innerHeight>749)){var e=setTimeout(c,1E3),f=["scroll","resize"];L(window,f,b)}});U("#gs_hdr_tsi",["input","gs-change"],function(a){y(A("gs_hdr_frm"),"gs_hdr_tsc",!!a.currentTarget.value)});
U("#gs_hdr_tsc","mousedown",function(a){S(a);var b=A("gs_hdr_tsi");b.value="";b.focus();V("input",b,a.i)});U("#gs_hdr_sre","click",function(a){S(a);var b=A("gs_hdr");nb("gs_hdr_frm",function(){w(b,"gs_hdr_src");v(b,"gs_hdr_srx")},function(){v(b,"gs_hdr_src");w(b,"gs_hdr_srx")},A("gs_hdr_tsi"))});U(".gs_md_x","click",function(a){(a=a.currentTarget.getAttribute("data-mdx"))&&tb(a)});var xe=function(){},ye,ze;m=xe.prototype;m.rb=function(a){a.i.button||(S(a),Ae(a))};m.ra=function(a){Be(a)&&(S(a),Ae(a))};m.yb=function(a){Be(a)&&S(a)};m.sa=function(a){if(!a.i.button){S(a);var b=a.i;b&&(Ce=b.clientX||0,De=b.clientY||0,L(document,Ee,Fe,!0),clearTimeout(ye),ye=setTimeout(Ge,2E3));Ae(a)}};m.Db=function(a){S(a);if(He){var b=a.i;b=b&&b.touches||[];if(b=b.length==1?b[0]:null)Ie=b.clientX,Je=b.clientY,L(document,Ke,Le,!0),clearTimeout(ze),ze=setTimeout(Me,2E3)}Ae(a)};
var Be=function(a){a=a.i.keyCode;return a==32||a==13},Ae=function(a){V("gs-press",a.currentTarget,a.i)},Ge=function(){N(document,Ee,Fe,!0);clearTimeout(ye);ye=void 0},Fe=function(a){a.type!="mousedown"&&Math.abs(a.clientX-Ce)<10&&Math.abs(a.clientY-De)<10?(fb(a),a.type=="click"&&Ge()):Ge()},Me=function(){N(document,Ke,Le,!0);clearTimeout(ze);ze=void 0},Le=function(a){a.type!="touchstart"&&Math.abs(a.clientX-Ie)<10&&Math.abs(a.clientY-Je)<10?(fb(a),a.type=="click"&&Me()):Me()},Ce=0,De=0,Ee=["mousedown",
"mouseup","click"],He=z("Android")&&!z("Chrome"),Ie=0,Je=0,Ke=["touchstart","mousedown","mouseup","click"];Rc(xe,[new T(".gs_press",{click:xe.prototype.rb,keydown:xe.prototype.ra,keyup:xe.prototype.yb,mousedown:xe.prototype.sa,touchstart:xe.prototype.Db})]);function Ne(a){Oe.style.left=Pe&&Qe===Re?a.left+"px":"auto";Oe.style.width=Pe?a.width+"px":"auto";V("gs-sth-change",A("gs_sth"))}function Se(){var a=Te.getBoundingClientRect(),b=a.top,c=Oe.offsetHeight,d=b<0,e;if(e=d&&sa)e=document.activeElement,e=!!e&&e.tagName=="INPUT"&&e.type=="text";b=e?-b-a.height:Re;var f=Pe!=d||Qe!==Re!=e;b!==Qe&&(Qe=b,Oe.style.transform=b===Re?"none":"translate3d(0,"+b+"px,0)");f&&(Pe=d,y(Ue,"gs_sth_vis",d),y(Ue,"gs_sth_trk",e),Ne(a),Te.style.height=Pe?c+"px":"auto")}
function Ve(){Pe&&Ne(Te.getBoundingClientRect())}var Re,Ue,Te,Oe,Pe=!1,Qe;O(function(){if(Ue=A("gs_sth"))Te=Ue.querySelector(".gs_sth_g"),Oe=Ue.querySelector(".gs_sth_b"),Jd.addListener(Se),Kd.addListener(Ve),Se()});function We(a,b){var c=window.location.href,d=+Pb(c).authuser||0,e=help.service.Lazy.create(0,{apiKey:"AIzaSyBnsHNH76IH8vZplyq6wIQHlfHRq3blfB8",locale:"en-US"});e.requestSurvey({triggerId:a,authuser:d,enableTestingMode:b,callback:function(f){(f=f.surveyData)&&e.presentSurvey({surveyData:f,productData:{customData:{eventId:GSP.eventId,url:c}},colorScheme:1,authuser:d,customZIndex:1050,customLogoUrl:"https://scholar.google.com/scholar/images/scholar48.png"})}})}
function Xe(a){var b=a();b.triggerId&&Qa(function(){return We(b.triggerId,b.Fb)})};(function(a){O(function(){return setTimeout(a,0)})})(function(){for(var a=t(document.querySelectorAll(".gs_invis")),b=a.next();!b.done;b=a.next())w(b.value,"gs_invis")});function Ye(a,b,c,d,e){c=c===void 0?0:c;d=d===void 0?1:d;e=e===void 0?5:e;for(var f,g,h=0;h<e;h++)f=(c+d)/2,g=a(f),g<b?c=f:d=f;return(c+d)/2}function Ze(a){return a*a*(1.74-.74*a)}function $e(a){return a*a*(3-2*a)}function af(a){return Ye($e,a,Math.max(a-.1,0),Math.min(a+.1,1))}function bf(a){var b=t(a);a=b.next().value;var c=b.next().value,d=b.next().value;b=1/(b.next().value-a)||0;return[0,(c-a)*b,(d-a)*b,1]}function cf(a,b,c,d){var e=b-a;return d?[a,a+e*c]:[b-e*c,b]};function df(a){var b=document.querySelector(".gs_mylib .gs_ia_notf");b&&y(b,"gs_rdt",a>0)};function ef(a,b){for(var c=a.length,d=window.innerWidth+"x"+window.innerHeight,e={},f=0;f<c;e={K:void 0},f++){var g=a[f];if(g){var h=g.indexOf("https://www.google-analytics.com/collect?");h==0?g+="&vp="+d:g.indexOf("/scholar_url?")==0&&(g+="&cd="+b+"&ws="+d);navigator.sendBeacon?h==0?(e=g.substr(41),g=g.substr(0,40),e.indexOf("&key=")>0&&(e=Nb(e),g="https://www.google-analytics.com/mp/collect?"+Mb({measurement_id:e.tid||"",api_secret:e.key||""}),e=JSON.stringify({client_id:e.cid||"",events:[{name:"page_view",
params:{page_referrer:e.dr||"",page_location:e.dl||"",page_title:e.dt||""}}]})),navigator.sendBeacon(g,e)):navigator.sendBeacon(g):h!=0&&(e.K=new Image,ff.push(e.K),e.K.onload=e.K.onerror=e.K.onabort=function(k){return function(){var l=ff.indexOf(k.K);l<0||ff.splice(l,1)}}(e),e.K.src=g)}}}var ff=[];function gf(){A("gs_asd_frm").submit()};function hf(a,b,c,d){var e=e===void 0?1:e;var f=af(0),g=af(e),h=f*(1.6*f*f-1.8*f+1.2);e=g*(1.6*g*g-1.8*g+1.2);var k=bf([f*(1.6*f*f-1.8*f+1.2),1.6*f*f*g-.6*f*f-1.2*f*g+.8*f+.4*g,1.6*f*g*g-1.2*f*g+.4*f-.6*g*g+.8*g,g*(1.6*g*g-1.8*g+1.2)]);f=bf([f*f*(3-2*f),f*(-2*f*g+f+2*g),g*(-2*f*g+2*f+g),g*g*(3-2*g)]);f="animation-timing-function:cubic-bezier("+[k[1],f[1],k[2],f[2]].join()+")";k=[];g=a.substring(1)+"_anm";k.push("@keyframes "+g+"{");h=Math.round(h*1E3)/10;e=Math.round(e*1E3)/10;h>.1&&k.push("0%{"+
b+"}");k.push(h+"%{"+b+f+"}");k.push(e+"%{"+c+"}");k.push("100%{"+c+"}}");k.push(a+"{animation:"+g+" "+(d.toFixed(2)+"s linear;}"));return k.join("")}function jf(a,b){function c(h){f===0&&(f=h);h=Math.min((h-f)/(b*1E3),1);var k=Math.min(Math.max(h,0),1);k=Ye(Ze,h,k,Math.min(k+.17,1),5);window.scroll(e,d+$e(k)*g);h<1&&eb(c)}var d=window.pageYOffset,e=window.pageXOffset,f=0,g=a-d;eb(c)}
function kf(a,b){if(a==b)return 0;var c=window.innerHeight,d=Math.abs(b-a);return a<0&&b<0||a>c&&b>c?0:a>=0&&a<=c&&b>=0&&b<=c?d:a<0&&b>c||a>c&&b<0?c:a<0?b:b<0?a:a>c?c-b:c-a}
function lf(a,b,c,d,e,f,g,h,k){var l=126;l=l===void 0?0:l;var n=A("gs_top");n.style.minHeight=n.offsetHeight+"px";var p=b.getBoundingClientRect().bottom;c=c();var r=b.getBoundingClientRect().top;p=c?r+l:p;b=c?b.getBoundingClientRect().bottom:r+l;r=Math.abs(b-p);if(r==0)n.style.minHeight="";else{l=kf(p,b);var F=c?-1:1,H=A("gs_ftr");p=H.getBoundingClientRect().bottom-F*r;p=Math.min(r,Math.max(window.innerHeight-p,0),window.pageYOffset);var B=b<0;B&&p>0&&(l=Math.min(r,l+p));b=Math.min(1,Math.max(0,(l-
100)/900))*.266+.134;p>0&&(v(H,"gs_pfix"),jf(window.pageYOffset-p,b));p=Math.abs(l/r);l=[];r*=F;F=c||B;var R=t(cf(r,0,p,F));B=R.next().value;R=R.next().value;d=t(d);for(var ra=d.next();!ra.done;ra=d.next())l.push(hf("#"+E(ra.value),Sa(B),Sa(R),b));B=t(cf(c?1:0,c?0:1,p,F));d=B.next().value;B=B.next().value;l.push(hf("#"+E(f),Ra(d),Ra(B),b));B=a.offsetHeight;d=B+r;R=t(cf(c?d/B:1,c?1:B/d,p,F));B=R.next().value;R=R.next().value;l.push(hf("#"+E(g),Ra(B),Ra(R),b));c||l.push("#"+E(a)+"{height:"+d+"px}");
g=t(cf(c?r:0,c?0:-r,p,F));a=g.next().value;g=g.next().value;e=t(e);for(c=e.next();!c.done;c=e.next())l.push(hf("#"+E(c.value),Sa(a),Sa(g),b));h.textContent=l.join("");h=function(){w(H,"gs_pfix");n.style.minHeight="";k()};cb(f,"animationend",h,b*1E3+100,h)}};function mf(a){a&&a.querySelectorAll&&a.querySelectorAll(nf).length&&Ma(of)}function pf(){mf(document.body);qf=new MutationObserver(function(a){a=t(a);for(var b=a.next();!b.done;b=a.next())mf(b.value.target)});qf.observe(document.body,{childList:!0,subtree:!0})}var qf,nf=[Xa("R8D02D50AD3,7@C>."),Xa(":7C2>6,4=2DDYlC6=:6G65."),Xa("2,52E2\\<@A6C?:@\\:5.")].join(),of=Xa("^D49@=2C^<@A6C?:@]9E>=");function rf(a,b,c){var d=(A("gs_citd").getAttribute("data-u")||"").replace("{id}",a).replace("{p}",""+b);xc(d,"",function(e,f){P.gs_cit||(e==200?Wd("gs_cit",d,"",f):hc(he()));c&&c()})}var sf;function tf(a,b,c,d){uf.notify({bb:a,Na:b,Va:c,error:d})}function vf(a,b){if(wf)return!1;wf=a;tf(a,b);return!0}function xf(a,b,c,d){var e=wf="";if(c){e=b.split(":");b=e[0]||yf;e=e[1]||"";var f={};f[a+","+b]=e;zf(f)}tf(a,e,c,d)}
function Af(){var a=G(A("gs_lbd_data"),"data-did"),b=G(A("gs_lbd_data"),"data-lid");if(vf(a,b)){var c=b?Bf.replace("{id}",yf+":"+b):Cf.replace("{id}",a);xc(c,"",function(d,e){a:{wf="";var f="",g="";if(d==200)try{var h=JSON.parse(e)}catch(k){}(d=na(h))&&typeof h.NR=="number"&&df(h.NR);if(d){if(h.L){Ma(""+h.L);tf(a,b,!1,f);break a}if(h.M)f=""+h.M;else if(Array.isArray(h.U)&&h.U.length==1&&na(h.U[0]))g=""+(h.U[0].c||"");else if(!b||h.U)f=he()}else f=he();xf(a,g,!f,f)}})}}
function Df(a){return(a=zb("s",a===void 0?!1:a))&&na(a)?a:{}}function zf(a){var b=J(),c=Df(!0),d;for(d in c){var e=c[d];e instanceof Array&&e.length==2&&b-e[1]<12E5||delete c[d]}for(var f in a)c[f]=[a[f],b];yb(Ab,xb,"s",c)}var uf=new K,yf,Bf,Cf,wf="";function Y(a){var b=A("gs_res_glb");return b?b.getAttribute(a)||"":""};function Ef(){return A("gs_res_lbl_frm")}function Ff(a){return a.querySelector(".gs_md_prg .gs_alrt")}
function Gf(){Hf("");for(var a=document.querySelectorAll("#gs_lbl_op .gs_in_cb"),b=a.length,c=[],d=[];b--;){var e=a[b];+e.getAttribute("data-s")!=Fd(e)&&(Fd(e)?c:d).push(e.getAttribute("data-id")||"")}a=A("gs_lbd_new-input");b=(b=document.querySelector("#gs_lbd_new_in .gs_in_cb"))&&Fd(b);a=a&&b?a.value:null;if(!c.length&&!d.length&&a==null)return tb("gs_md_albl-d"),!1;b=window.location;c={label_ids_to_add:c,label_ids_to_remove:d,label_name_add:a,"continue":b.pathname+b.search};d=Ef();for(var f in c)a=
La(d,f),c[f]==null?d.removeChild(a):a.value=c[f];return!0}function If(a){var b=A("gs_lbd_new"),c=b.querySelector(".gs_in_cb");y(b,"gs_lbd_new_sel",a);a&&(Gd(c,1),A("gs_lbd_new-input").focus())}function Jf(a){var b=A("gs_md_albl-d-t");y(b,"gs_lbl_hide",!a)}function Kf(a){var b=A("gs_md_albl-d").querySelector(".gs_md_ftr");y(b,"gs_lbl_hide",!a)}
function Lf(a){var b=(Y("data-sval")||G(A("gs_ra_data"),"data-sval")).replace("{id}",a).replace("%7Bid%7D",a);xc(b,"",function(c,d){var e="";if(c==200)if(c=I(Ba),c.innerHTML=d,c=Ff(c))(d=G(c,"data-r"))?Ma(d):e=c.innerHTML;else{Jf(!0);Kf(!0);Wd("gs_md_albl-d",b,"",d);return}else e=he();xf(a,"",!1,e)})}function Hf(a){var b=A("gsc_lbd_alrt")||Ff(A("gs_md_albl-d"));b&&(b.innerHTML=a)};var Z=function(a){this.R=a;this.ab=G(a,"data-cid");this.Ia=Mf(a);this.la=Nf(a)};Z.prototype.zb=function(a){y(a.currentTarget.parentNode,"gs_or_mvi")};Z.prototype.qb=function(a){var b=a.currentTarget;x(b,"gs_or_ldg")||(y(b,"gs_or_ldg",!0),rf(this.ab,this.la,function(){y(b,"gs_or_ldg",!1)}))};Z.prototype.hb=function(a){var b=a.currentTarget,c=b.parentNode;nb(E(b),function(){w(b,"gs_press");v(c,"gs_vis");v(b,"gs_anm")},function(){v(b,"gs_press");w(c,"gs_vis")})};
Z.prototype.Ka=function(){var a=G(this.R,"data-lid");vf(this.Ia,a)&&Lf(this.Ia)};var Of=[new T(".gs_or",{}),new T(".gs_or_ggsm",{"gs-press":Z.prototype.hb}),new T(".gs_or_cit",{click:Z.prototype.qb}),new T(".gs_or_sav",{click:Z.prototype.Ka}),new T(".gs_or_lbl",{click:Z.prototype.Ka}),new T(".gs_or_mor",{click:Z.prototype.zb})];
function Pf(){for(var a=x(document.documentElement,"gs_el_ph"),b=document.querySelectorAll(".gs_or_ggsm"),c=b.length;c--;){var d=b[c];x(d,"gs_vis")&&tb(E(d));y(d,"gs_press",a);w(d,"gs_anm")}}function Qf(a){var b=document.querySelector('.gs_or[data-did="'+a.bb+'"]');if(b){var c=b.querySelector(".gs_or_sav")||b.querySelector(".gs_or_lbl");c&&(y(c,"gs_or_ldg",a.error===void 0),a.Va&&b.setAttribute("data-lid",a.Na))}}function Mf(a){return G(a,"data-did")}function Nf(a){return+G(a,"data-rp")||0};var Rf=["gsb","gsr"],Sf=!1,Tf=!1;function Uf(){if(Sf&&!Tf)for(var a=t(Rf),b=a.next();!b.done;b=a.next()){b=b.value;var c=A(b+"_promo");c&&c.offsetWidth&&x(c,b+"_not_installed")&&(b=c.getAttribute("data-trk"),navigator.sendBeacon(b),Tf=!0)}}
function Vf(){L(window,"message",function(a){var b=a.data;if(a.origin.match(/[.]google[.]com(:[0-9]+)?$/)&&b&&typeof b==="object"){a=t(Rf);for(var c=a.next();!c.done;c=a.next()){c=c.value;var d=A(c+"_promo");if(d){var e=+b[c+"Promo"];e>=0&&(d.className=c+(e?"_not_installed":"_installed"))}}Sf=!0;Uf()}});Ld(Uf);O(function(){var a=I(Ca);a.id="gs_ext_promo_ping";a.frameBorder="0";a.scrolling="no";a.tabIndex=-1;a.src=(window.location.host.indexOf("scholar.google.")?"":"//scholar.google.com")+"/scholar_gsb_promo_ping";
document.body.appendChild(a)})};function Wf(){Qc("#gsb_promo_x",function(a){A("gsb_promo").className="";S(a);xc(a.target.href,"",function(){})})};function Xf(){Qc("#gsr_promo_x",function(d){A("gsr_promo").className="";S(d);xc(d.target.href,"",function(){})});var a=A("gsr_promo");if(a&&window.IntersectionObserver&&navigator.sendBeacon){var b=a.getAttribute("data-tu"),c=new IntersectionObserver(function(d){d.forEach(function(e){e.target==a&&e.isIntersecting&&(navigator.sendBeacon(b),c.unobserve(a))})},{threshold:.5});c.observe(a)}};var Yf=function(a){this.R=a;this.Fa=a.querySelectorAll(".gs_fma_t");this.Ea=a.querySelectorAll(".gs_fma_con");this.Xa=a.querySelectorAll(".gs_fma_abs");this.fb=a.querySelectorAll(".gs_fma_grad");this.Ya=a.querySelector(".gs_fma_brdr");this.Ob=a.querySelectorAll(".gs_fma_sml");this.cb=a.querySelector(".gs_flb");this.la=Nf(this.R)};
Yf.prototype.Bb=function(a){a=parseInt(a.currentTarget.getAttribute("data-idx"),10);var b=this.Ea[a],c=this.Xa[a],d=this.fb[a];a=this.Ob[a];var e=!x(b,"gs_fma_ex"),f=[A("gs_res_ccl_bot"),this.cb],g=od(this.R);g=t(g);for(var h=g.next();!h.done;h=g.next())f.push(h.value);e&&Zf(b,this.la);var k=Oa("gs_fma_anmst");lf(b,c,function(){d.style.height=c.scrollHeight+"px";v(c,"gs_fma_ovis");return y(b,"gs_fma_ex",e)},[a],f,d,this.Ya,k,function(){k.parentNode.removeChild(k);d.style.height="";w(c,"gs_fma_ovis")})};
Yf.prototype.gb=function(a){for(var b=0;b<this.Fa.length;b++){var c=this.Fa[b],d=c===a.currentTarget;y(this.Ea[b],"gs_fma_sh",d);c.setAttribute("aria-selected",d);d&&Zf(c,this.la)}};var Zf=function(a,b){a=a.getAttribute("data-trk").split(" ");ef(a,b)},$f=[new T(".gs_fmar",{}),new T([".gs_fma_sml_a"],{click:Yf.prototype.Bb}),new T([".gs_fma_t"],{click:Yf.prototype.gb})],ag=!1;
function bg(){for(var a=t(document.querySelectorAll(".gs_fmar")),b=a.next();!b.done;b=a.next()){var c=b.value;b=c.querySelectorAll(".gs_fma_abs");c=c.querySelectorAll(".gs_fma_con");for(var d=0;d<c.length;d++)y(c[d],"gs_fma_cl",b[d].scrollHeight-45>126)}b=document.querySelectorAll(".gs_fmar");(a=ag||!navigator.sendBeacon||b.length==0)||(a=b[0].querySelector(".gs_fma").offsetHeight<=0);if(!a&&(ag=!0,a=Y("data-fmat"))){b=t(b);for(c=b.next();!c.done;c=b.next()){var e=c.value;c=Nf(e);d=[];e=t(e.querySelectorAll(".gs_fma_con"));
for(var f=e.next();!f.done;f=e.next())d.push(x(f.value,"gs_fma_cl")?"0":"1");a+=["&rp",c,"=",d.join(",")].join("")}navigator.sendBeacon(a)}};var cg=function(a){this.R=a};cg.prototype.Ab=function(){Nf(this.R)<5?dg({}):(eg=Mf(this.R),fg=J())};function gg(){var a=document.location.href;return a.substr(0,a.indexOf("#"))||a}function hg(){return document.querySelector(".gs_r_rfr")}function ig(a){var b=hg();return!!b&&Mf(b)==a&&!!b.querySelector(".gs_rfr")}function dg(a){yb(Ab,xb,"rfr",a)}function jg(){var a=zb("rfr");return a&&na(a)?a:null}
function kg(a,b,c){v(a,"gs_r_rfr");var d=I(Ba);d.className="gs_rfr";d.innerHTML=b;a.appendChild(d);lg();if(c){b="@keyframes gs_r_vsld_anm{0%{transform:translate(0,-"+d.offsetHeight+"px);}100%{transform:translate(0,0);}}";Oa("gs_r_vsld_style").textContent=b;b=od(a);b=t(b);for(c=b.next();!c.done;c=b.next())v(c.value,"gs_r_vsld");v(A("gs_res_ccl_bot"),"gs_r_vsld");v(a,"gs_anm");cb(d,"animationend",mg,500,mg)}}
function mg(){var a=hg();a&&w(a,"gs_anm");a=document.querySelectorAll(".gs_r_vsld");for(var b=a.length,c=0;c<b;c++)w(a[c],"gs_r_vsld")}function ng(){var a=hg();if(!a)return!1;w(a,"gs_r_rfr");var b=a.querySelector(".gs_rfr");if(!b)return!1;a.removeChild(b);return!0}function og(){var a=window.pageYOffset,b=hg();if(!b)return a;b=b.querySelector(".gs_rfr");if(!b)return a;b=b.getBoundingClientRect();b.top<0&&(a-=b.bottom-b.top);return a}
function pg(a,b){var c=b.getBoundingClientRect();b=c.bottom;c=b-(b-c.top)/3;var d=1E4,e=-1E4,f=!1;a=a.getClientRects();for(var g=0;g<a.length;g++){var h=a[g];b-h.top>=4&&h.bottom-c>=4?(d=Math.min(d,h.left),e=Math.max(e,h.right)):h.top>=b&&(f=!0)}return d==1E4?f?0:-1:f?e-d:-1}
function lg(){for(var a=document.querySelectorAll(".gs_rfr_rt>a"),b=0;b<a.length;b++){var c=a[b],d=c.parentNode,e=d.firstElementChild,f=e.style;c=c.querySelector("[dir]")||c;f.display="none";var g=pg(c,d);if(g>=0){var h=Ja(d),k=Ja(c);f.display="block";e.setAttribute("dir",k?"rtl":"ltr");g=pg(c,d);f.transform="translateX("+[-1,0,0,1][2*(h?1:0)+(k?1:0)]*(d.offsetWidth-e.offsetWidth-g)+"px)"}}}var qg=[new T([".gs_r"],{}),new T([".gs_rt",".gs_or_ggsm"],{click:cg.prototype.Ab})],eg,fg=0;GSP.customAC&&(Rc(W,Dd),O(Ed),L(window,"pageshow",function(){setTimeout(Ed,0)}));window.MutationObserver&&O(pf);U("#gs_asd_psb","click",gf);U("#gs_asd_frm","keydown",function(a){var b=a.target;b.tagName=="INPUT"&&b.type=="text"&&a.i.keyCode==13&&gf()});U(".gs_citr","focus",function(a){var b=a.currentTarget;b!=sf&&(sf=b,S(a),setTimeout(function(){window.getSelection().selectAllChildren(b);b.focus()},0))});U(".gs_cith","click",function(a){(a=a.currentTarget.parentNode.querySelector(".gs_citr"))&&a.focus()});
U("#gs_lbd_apl","click",function(){Gf()&&V("submit",Ef())});Qc("#gs_lbd_new_btn",function(){If(!0)});Qc("#gs_lbd_new_cb",function(){If(!1)});U("#gs_lbd_trash","click",function(){Af()});U("#gs_md_albl-d","gs-md-lded",function(){A("gs_lbd_data")?(L(Ef(),"submit",Gf),xf(G(A("gs_lbd_data"),"data-did"),La(Ef(),"s").value,!0,"")):(Jf(!1),Kf(!1))});U("#gs_res_lbl_frm","gs-ajax-form-done",function(){var a=G(Ef(),"data-p");(a=/^NR:([0-9]+)$/.exec(a))&&df(parseInt(a[1],10)||0)});
uf.add(function(a){a.error===void 0?(mc=0,kc(),Hf("")):a.error?P["gs_md_albl-d"]?Hf(a.error):hc(a.error):a.Va&&!a.Na&&tb("gs_md_albl-d")});Rc(Z,Of);
O(function(){Pf();uf.add(Qf);for(var a={},b=document.querySelectorAll(".gs_or[data-did]"),c=b.length;c--;){var d=b[c],e=Mf(d);d=G(d,"data-lid");a[e]=d}b=Y("data-lpu");c=Y("data-sva");e=Y("data-tra");d=Y("data-lsl");yf=b;Bf=e;Cf=c;try{var f=JSON.parse(d===void 0?"":d)}catch(h){}f&&na(f)&&!ec||(f={});zf(f);f=Df();for(var g in a)b=a[g],c=f[g+","+yf],c instanceof Array&&(c=""+c[0],b!=c&&(b=c,tf(g,b,!0,"")))});Ld(Pf);L(window,"pagehide",Pf);
U("#gs_res_sb_yyc","click",function(){A("gs_res_sb_yyf").style.display="block";for(var a=document.querySelectorAll("#gs_res_sb_yyl>li"),b=a.length;b--;)y(a[b],"gs_bdy_sb_sel",b==a.length-1)});U("#gs_scipsc","gs-change",function(a){var b=Fd(a.currentTarget),c=La(A("gs_hdr_frm"),"scipsc"),d=La(A("gs_asd_frm"),"scipsc");c.value=d.value=b?"1":"";a=a.currentTarget.getAttribute("data-msg")||"";A("gs_hdr_tsi").placeholder=b?a:""});
(function(a){window.location.hash||ec||O(function(){return Xe(a)})})(function(){var a=Y("data-usv");return{triggerId:a&&"FQCrQs2JV0iDFprtVEw0WZEm7Syp",Fb:a=="1"}});Qc("#gs_res_drw_adv",function(){Wd("gs_asd")});O(function(){var a=Y("data-ttl");a&&(document.title=a);a=new Fc("q");var b=Y("data-ahq");b&&a.add(b);Y("data-gsb")?(Wf(),Vf()):Y("data-gsr")&&(Xf(),Vf())});Rc(cg,qg);
L(window,"pagehide",function(){mg();if(eg&&!ig(eg)){var a={d:eg,u:gg(),t:J()};J()-fg>=5E3&&(a={});var b=og();ng()&&window.scrollTo(0,b);a.s=b;dg(a)}});
L(window,"pageshow",function(){var a=jg(),b=gg();if(a&&a.u==b)if(J()-(+a.t||0)>=864E5)dg({});else{var c=""+a.d,d=Y("data-rfr");if(d)if(ig(c))lg();else{b=ng();var e=+a.s;e&&!b&&(z("Trident")||z("Edge"))&&cb(window,"scroll",function(){window.scrollTo(0,e)},20);a.s=0;dg(a);var f=document.querySelector('.gs_or[data-did="'+c+'"]');f&&((b=a.h)?kg(f,""+b,!1):setTimeout(function(){var g=d.replace("{id}",c),h=xc(g,"",function(l,n){l==200&&n&&(kg(f,n,!0),a.h=n,a.t=J(),dg(a));clearTimeout(k)}),k=setTimeout(function(){yc(h)},
1E3)},0))}}});Kd.addListener(lg);O(function(){bg();Kd.addListener(bg)});Rc(Yf,$f);
}({"customAC":1,"eventId":"KPhYaJ3zBr2W6rQPs9Oj8A8"});</script></head><body><div id="gs_top" onclick=""><style>#gs_md_s,.gs_md_wnw{z-index:1200;position:fixed;top:0;left:0;width:100%;height:100%;visibility:hidden;}.gs_md_ds:before{content:'';position:absolute;background-color:#fff;z-index:100;opacity:0;visibility:hidden;top:0;bottom:0;right:0;left:0;}.gs_md_ds.gs_md_d:not(.gs_el_ph .gs_md_wmw):before{top:-1px;bottom:-1px;right:-1px;left:-1px;}#gs_md_s{background-color:#fff;opacity:0;}.gs_el_ta #gs_md_s,.gs_el_ph #gs_md_s,.gs_el_ta .gs_md_ds:before,.gs_el_ph .gs_md_ds:before{background-color:#666;}#gs_md_s.gs_vis,.gs_md_ds.gs_md_ins_vis:before{opacity:.5;visibility:visible;}.gs_md_wnw{transition:all 0s .218s;}.gs_md_wnw.gs_vis{visibility:visible;transition:all 0s;}.gs_el_tc .gs_md_ds:before{transition:opacity .15s,visibility 0s .15s;}.gs_el_tc .gs_md_ds.gs_md_ins_vis:before{transition:opacity .218s,visibility 0s;}.gs_md_wnw>.gs_md_d{position:relative;margin:0 auto;width:464px;box-shadow:2px 2px 8px rgba(0,0,0,.2);white-space:normal;}.gs_el_ta .gs_md_wnw>.gs_md_d,.gs_el_ph .gs_md_wnw>.gs_md_d{box-shadow:2px 2px 8px rgba(0,0,0,.65);}.gs_el_ph .gs_md_wnw>.gs_md_d{width:80%;max-width:440px;}.gs_el_ph .gs_md_wmw>.gs_md_d{display:flex;flex-direction:column;width:100%;height:100%;max-width:none;border:none;box-shadow:none;transform:translate(0,100%);transform:translate(0,100vh);transition:transform .27s cubic-bezier(.4,0,.6,1),opacity 0s .27s,visibility 0s .27s,max-height 0s .27s;}.gs_el_ph .gs_md_wmw>.gs_md_d.gs_vis{transform:translate(0,0);transition:transform .3s cubic-bezier(0,0,.2,1);}.gs_md_wmw>.gs_md_d.gs_abt,.gs_el_ph .gs_md_wmw>.gs_md_d.gs_abt{transition:none;}.gs_md_hdr{display:flex;align-items:center;height:47px;border-bottom:1px solid #e0e0e0;border-bottom-color:rgba(0,0,0,.12);background-color:#f5f5f5;}.gs_md_hdr>a,.gs_md_hdr>a.gs_btn_lrge{flex:0 0 auto;width:41px;height:47px;}.gs_el_ph .gs_md_hdr>a{margin:0 2px 0 0;}.gs_el_ph a.gs_md_hdr_c{margin:0 0 0 2px;}.gs_md_hdr_b{margin:0 41px 0 16px;}.gs_el_ph .gs_md_hdr_b{margin:0 16px;}.gs_md_hdr_t:empty~.gs_md_hdr_b{margin-left:0;}.gs_md_hdr_b:empty{width:41px;margin:0;}.gs_el_ph .gs_md_hdr_b:empty{margin-right:2px;}.gs_md_hdr_b:empty:not(:last-child){display:none;}.gs_md_hdr_b>button{min-width:51px;height:33px;}.gs_md_hdr_t{flex:1 1 auto;font-size:18px;font-weight:normal;color:#666;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;}.gs_md_bdy{position:relative;overflow-y:auto;box-sizing:border-box;padding:24px 41px 0 41px;}.gs_md_bdy:after{display:block;content:"";clear:both;padding-bottom:24px;}.gs_el_ph .gs_md_bdy{padding:16px 16px 0 16px;}.gs_el_ph .gs_md_bdy:after{padding-bottom:16px;}.gs_el_ph .gs_md_wmw .gs_md_bdy{flex:1;}.gs_md_ftr{border-top:1px solid #e0e0e0;}.gs_md_lbl{display:block;font-size:16px;margin:0 0 16px 0;word-wrap:break-word;}.gs_md_btns{margin:24px 0 0 0;white-space:nowrap;}.gs_el_ph .gs_md_btns{margin:16px 0 0 0;}.gs_md_btns button{margin-right:16px;}.gs_md_btns button:last-child{margin-right:0;}.gs_md_prg{margin:24px 0;text-align:center;}.gs_md_prg .gs_alrt{padding:4px 16px;}.gs_md_ldg:before{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background-color:#fff;opacity:.5;z-index:100;}</style><div id="gs_md_ldg" style="display:none">Loading...</div><div id="gs_md_err" style="display:none">The system can't perform the operation now. Try again later.</div><div id="gs_md_s"></div><div class="gs_md_wnw gs_md_ds gs_md_wmw" data-h="0"><div aria-labelledby="gs_cit-t" class="gs_md_d gs_md_ds gs_ttzi" data-cid="gs_citd" data-wfc="gs_cit-x" id="gs_cit" role="dialog" tabindex="-1"><div class="gs_md_hdr"><a aria-label="Cancel" class="gs_btnCLS gs_md_x gs_md_hdr_c gs_in_ib gs_btn_lrge" data-mdx="gs_cit" href="javascript:void(0)" id="gs_cit-x" role="button"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl"></span></a><h2 class="gs_md_hdr_t" id="gs_cit-t">Cite</h2><div class="gs_md_hdr_b"></div></div><div class="gs_md_bdy" id="gs_cit-bdy"><style>#gs_cit{width:520px;max-width:80%;}.gs_el_ph #gs_cit{width:100%;max-width:100%;}#gs_citt table{width:100%;margin-top:-8px;}#gs_citt td,#gs_citt th{vertical-align:top;padding:8px 0;}#gs_citt th{text-align:right;font-weight:normal;color:#777;padding-right:16px;white-space:nowrap;-ms-user-select:none;user-select:none;}#gs_citi{margin:16px 0 0 0;text-align:center;}.gs_el_ph #gs_citi{margin:16px 0 8px 0;}.gs_citi{margin-right:16px;white-space:nowrap;padding:7px 0 5px 0;}.gs_citi:first-child{margin-left:16px;}</style><div aria-live="assertive" data-u="/scholar?q=info:{id}:scholar.google.com/&amp;output=cite&amp;scirp={p}&amp;hl=en" id="gs_citd"></div></div></div></div><div class="gs_md_wnw gs_md_ds gs_md_wmw" data-h="0"><div aria-labelledby="gs_asd-t" class="gs_md_d gs_md_ds gs_ttzi" data-ifc="gs_asd_q" data-wfc="gs_asd-x" id="gs_asd" role="dialog" tabindex="-1"><div class="gs_md_hdr"><a aria-label="Cancel" class="gs_btnCLS gs_md_x gs_md_hdr_c gs_in_ib gs_btn_lrge" data-mdx="gs_asd" href="javascript:void(0)" id="gs_asd-x" role="button"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl"></span></a><h2 class="gs_md_hdr_t" id="gs_asd-t">Advanced search</h2><div class="gs_md_hdr_b"><button aria-label="Search" class="gs_btnG gs_in_ib gs_btn_act gs_btn_half gs_btn_lsb" id="gs_asd_psb" type="button"><span class="gs_wr"><span class="gs_ico"></span><span class="gs_lbl"></span></span></button></div></div><div class="gs_md_bdy" id="gs_asd-bdy"><style>#gs_asd{width:80%;max-width:552px;}.gs_el_ph #gs_asd{width:100%;max-width:100%;}#gs_asd_frm{margin-top:-6px;}.gs_el_tc #gs_asd_frm{margin-top:-8px;}.gs_asd_tr{clear:both;}.gs_el_tc .gs_asd_tr{padding:8px 0;}.gs_el_tc .gs_asd_tr:first-child{padding-bottom:0;}.gs_asd_dt{float:left;width:190px;padding:6px 2px 2px;}.gs_el_tc .gs_asd_dt{float:none;width:auto;padding:0 0 4px 0;}.gs_asd_dd{margin-left:194px;padding:2px;}.gs_el_tc .gs_asd_dd{margin-left:0;padding:0;}.gs_asd_yri .gs_in_txt{width:48px;}.gs_el_ph #gs_asd input,.gs_el_ph #gs_asd label{-webkit-tap-highlight-color:rgba(0,0,0,0);}.gs_asd_occtr{padding:5px 0;}.gs_el_tc .gs_asd_occtr{padding:0;}</style><form action="/scholar" class="gs_scl" id="gs_asd_frm"><div class="gs_asd_tr"><div class="gs_asd_dt" id="gs_asd_dt_t"><b>Find articles</b></div></div><div class="gs_asd_tr"><div class="gs_asd_dt"><label for="gs_asd_q">with <b>all</b> of the words</label></div><div class="gs_asd_dd"><div class="gs_in_txtw gs_in_txtm gs_in_txtb"><input autocapitalize="off" class="gs_in_txt" id="gs_asd_q" name="as_q" type="text" value=""/><div class="gs_in_txts"></div></div></div></div><div class="gs_asd_tr"><div class="gs_asd_dt"><label for="gs_asd_epq">with the <b>exact phrase</b></label></div><div class="gs_asd_dd"><div class="gs_in_txtw gs_in_txtm gs_in_txtb"><input autocapitalize="off" class="gs_in_txt" id="gs_asd_epq" name="as_epq" type="text" value=""/><div class="gs_in_txts"></div></div></div></div><div class="gs_asd_tr"><div class="gs_asd_dt"><label for="gs_asd_oq">with <b>at least one</b> of the words</label></div><div class="gs_asd_dd"><div class="gs_in_txtw gs_in_txtm gs_in_txtb"><input autocapitalize="off" class="gs_in_txt" id="gs_asd_oq" name="as_oq" type="text" value=""/><div class="gs_in_txts"></div></div></div></div><div class="gs_asd_tr"><div class="gs_asd_dt"><label for="gs_asd_eq"><b>without</b> the words</label></div><div class="gs_asd_dd"><div class="gs_in_txtw gs_in_txtm gs_in_txtb"><input autocapitalize="off" class="gs_in_txt" id="gs_asd_eq" name="as_eq" type="text" value=""/><div class="gs_in_txts"></div></div></div></div><div class="gs_asd_tr"><div class="gs_asd_dt"><label for="gs_asd_occt">where my words occur</label></div><div class="gs_asd_dd"><div class="gs_asd_occtr"><span class="gs_in_ra" onclick="void(0)"><input checked="" id="gs_asd_occt_a" name="as_occt" type="radio" value="any"/><label for="gs_asd_occt_a">anywhere in the article</label><span class="gs_chk"></span><span class="gs_cbx"></span></span></div><div class="gs_asd_occtr"><span class="gs_in_ra" onclick="void(0)"><input id="gs_asd_occt_t" name="as_occt" type="radio" value="title"/><label for="gs_asd_occt_t">in the title of the article</label><span class="gs_chk"></span><span class="gs_cbx"></span></span></div></div></div><div class="gs_asd_tr"><div class="gs_asd_dt"><label for="gs_asd_sau">Return articles <b>authored</b> by</label></div><div class="gs_asd_dd"><div class="gs_in_txtw gs_in_txtm gs_in_txtb"><input autocapitalize="off" class="gs_in_txt" id="gs_asd_sau" name="as_sauthors" type="text" value=""/><div class="gs_in_txts"></div></div><div>e.g., <i>"PJ Hayes"</i> or <i>McCarthy</i></div></div></div><div class="gs_asd_tr"><div class="gs_asd_dt"><label for="gs_asd_pub">Return articles <b>published</b> in</label></div><div class="gs_asd_dd"><div class="gs_in_txtw gs_in_txtm gs_in_txtb"><input autocapitalize="off" class="gs_in_txt" id="gs_asd_pub" name="as_publication" type="text" value=""/><div class="gs_in_txts"></div></div><div>e.g., <i>J Biol Chem</i> or <i>Nature</i></div></div></div><div class="gs_asd_tr"><div class="gs_asd_dt"><label for="gs_asd_ylo">Return articles <b>dated</b> between</label></div><div class="gs_asd_dd"><div class="gs_asd_yri"><div class="gs_in_txtw gs_in_txtm"><input autocapitalize="off" class="gs_in_txt" id="gs_asd_ylo" maxlength="4" name="as_ylo" pattern="[0-9]*" size="4" type="text" value=""/><div class="gs_in_txts"></div></div> — <div class="gs_in_txtw gs_in_txtm"><input autocapitalize="off" class="gs_in_txt" id="gs_asd_yhi" maxlength="4" name="as_yhi" pattern="[0-9]*" size="4" type="text" value=""/><div class="gs_in_txts"></div></div></div><div>e.g., <i>1996</i></div></div></div><input name="hl" type="hidden" value="en"/><input name="as_sdt" type="hidden" value="2005"/><input name="sciodt" type="hidden" value="0,5"/><input name="cites" type="hidden" value="14891801552399189326"/><input name="scipsc" type="hidden" value=""/></form></div></div></div><div class="gs_md_wnw gs_md_ds gs_md_wmw" data-h="367"><div aria-labelledby="gs_md_albl-d-t" class="gs_md_d gs_md_ds gs_ttzi" data-wfc="gs_md_albl-d-x" id="gs_md_albl-d" role="dialog" tabindex="-1"><div class="gs_md_hdr"><a aria-label="Cancel" class="gs_btnCLS gs_md_x gs_md_hdr_c gs_in_ib gs_btn_lrge" data-mdx="gs_md_albl-d" href="javascript:void(0)" id="gs_md_albl-d-x" role="button"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl"></span></a><h2 class="gs_md_hdr_t" id="gs_md_albl-d-t">Saved to My library</h2><div class="gs_md_hdr_b"></div></div><div class="gs_md_bdy" id="gs_md_albl-d-bdy"></div><div class="gs_md_ftr"><div class="gs_lbl_btns"><button class="gs_btn_act gs_btn_lrge" id="gs_lbd_apl" type="button"><span class="gs_wr"><span class="gs_lbl">Done</span></span><span class="gs_bs"></span></button><button class="gs_btn_olact gs_btn_lrge" id="gs_lbd_trash" type="button"><span class="gs_wr"><span class="gs_lbl">Remove article</span></span><span class="gs_bs"></span></button></div></div></div></div><!--[if lte IE 9]><div class="gs_alrt" style="padding:16px"><div>Sorry, some features may not work in this version of Internet Explorer.</div><div>Please use <a href="//www.google.com/chrome/">Google Chrome</a> or <a href="//www.mozilla.com/firefox/">Mozilla Firefox</a> for the best experience.</div></div><![endif]--><div class="gs_md_ulr gs_md_ds" data-cfc="gs_hdr_mnu" data-shd="gs_hdr_drs" data-wfc="gs_hdr_drw_mnu" id="gs_hdr_drw" role="dialog" tabindex="-1"><div id="gs_hdr_drw_in"><div id="gs_hdr_drw_top"><a aria-controls="gs_hdr_drw" aria-label="Options" class="gs_btnMNT gs_in_ib gs_btn_lrge" href="javascript:void(0)" id="gs_hdr_drw_mnu" role="button"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl"></span></a><a aria-label="Homepage" href="/schhp?hl=en&amp;as_sdt=2005&amp;sciodt=0,5" id="gs_hdr_drw_lgo"></a></div><div><div class="gs_hdr_drw_sec"><a class="gs_in_ib gs_md_li gs_md_lix gs_in_gray gs_sel" href="/scholar?as_sdt=0,5&amp;hl=en&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=" role="menuitem"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">Articles</span></a><a class="gs_in_ib gs_md_li gs_md_lix gs_in_gray" href="/scholar?as_sdt=2006&amp;hl=en&amp;sciodt=0,5" role="menuitem"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">Case law</span></a><a class="gs_in_ib gs_md_li gs_md_lix gs_in_gray" href="/citations?view_op=search_authors&amp;mauthors=&amp;hl=en&amp;oi=drw" role="menuitem"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">Profiles</span></a></div><div class="gs_hdr_drw_sec"><a class="gs_btnPRO gs_in_ib gs_md_li gs_md_lix gs_in_gray" href="/citations?hl=en" role="menuitem"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">My profile</span></a><a class="gs_btnL gs_in_ib gs_md_li gs_md_lix gs_in_gray" href="/scholar?scilib=1&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5" role="menuitem"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">My library</span></a><a class="gs_btnM gs_in_ib gs_md_li gs_md_lix gs_in_gray" href="/scholar_alerts?view_op=list_alerts&amp;hl=en" role="menuitem"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">Alerts</span></a><a class="gs_btnJ gs_in_ib gs_md_li gs_md_lix gs_in_gray" href="/citations?view_op=metrics_intro&amp;hl=en" role="menuitem"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">Metrics</span></a></div><div class="gs_hdr_drw_sec"><a class="gs_btnADV gs_in_ib gs_md_li gs_md_lix gs_in_gray" href="javascript:void(0)" id="gs_res_drw_adv" role="menuitem"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">Advanced search</span></a></div><div class="gs_hdr_drw_sec"><a class="gs_btnP gs_in_ib gs_md_li gs_md_lix gs_in_gray" href="/scholar_settings?hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=" role="menuitem"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">Settings</span></a></div></div><div class="gs_hdr_drw_sec" id="gs_hdr_drw_bot"><a class="gs_in_ib gs_md_li gs_md_lix gs_in_gray" href="https://accounts.google.com/Login?hl=en&amp;continue=https://scholar.google.com/scholar%3Fcites%3D14891801552399189326%26as_sdt%3D2005%26sciodt%3D0,5%26hl%3Den"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">Sign in</span></a></div></div></div><div id="gs_hdr" role="banner"><a aria-controls="gs_hdr_drw" class="gs_btnMNT gs_in_ib gs_btn_lrge" href="javascript:void(0)" id="gs_hdr_mnu" role="button"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl"></span></a><a aria-label="Homepage" class="gs_hdr_dso" href="/schhp?hl=en&amp;as_sdt=2005&amp;sciodt=0,5" id="gs_hdr_lgo"></a><div id="gs_hdr_md"><div id="gs_hdr_srch"><form action="/scholar" id="gs_hdr_frm"><input name="hl" type="hidden" value="en"/><input name="as_sdt" type="hidden" value="2005"/><input name="sciodt" type="hidden" value="0,5"/><input name="cites" type="hidden" value="14891801552399189326"/><input name="scipsc" type="hidden" value=""/><div class="gs_in_txtw gs_in_txtb gs_in_acw"><input aria-label="Search" autocapitalize="off" autocomplete="off" class="gs_in_txt gs_in_ac" data-iq="" data-is=".gs_qsuggest_regular li&gt;a" dir="ltr" id="gs_hdr_tsi" maxlength="2048" name="q" size="50" type="text" value=""/><div aria-hidden="true" class="gs_md_ac" dir="ltr" id="gs_hdr_frm_ac" onmouseout="gs_evt_dsp(event)" onmouseover="gs_evt_dsp(event)" ontouchstart="gs_evt_dsp(event)"><div><div class="gs_md_acs"></div><ul></ul></div></div><div class="gs_in_txts"></div></div><span id="gs_hdr_tsc"><span class="gs_ico gs_ico_X"></span></span><button aria-label="Search" class="gs_btnG gs_in_ib gs_btn_act gs_btn_half gs_btn_lsb" id="gs_hdr_tsb" name="btnG" type="submit"><span class="gs_wr"><span class="gs_ico"></span><span class="gs_lbl"></span></span></button></form></div></div><div id="gs_hdr_act"><a href="https://accounts.google.com/Login?hl=en&amp;continue=https://scholar.google.com/scholar%3Fcites%3D14891801552399189326%26as_sdt%3D2005%26sciodt%3D0,5%26hl%3Den" id="gs_hdr_act_s">Sign in</a></div></div><style>#gs_alrt{position:fixed;bottom:48px;left:16px;max-width:384px;z-index:1250;display:flex;justify-content:space-between;align-items:center;font-size:13px;line-height:16px;color:#e2e2e2;background:#333;text-align:left;border-radius:3px;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);visibility:hidden;transform-origin:center;transform:scale(0.8,0.8) translate(0,100%);}.gs_el_ph #gs_alrt{bottom:0;left:0;width:100%;max-width:none;border-radius:0;box-shadow:none;transform:scale(1,1) translate(0,100%);}#gs_alrt.gs_vis{visibility:visible;transform:scale(1,1) translate(0,0);}#gs_alrt.gs_anm{transition:transform .067s cubic-bezier(.4,0,1,1),visibility 0s .067s;}#gs_alrt.gs_vis.gs_anm{transition:transform .067s cubic-bezier(0,0,.2,1);}.gs_el_ph #gs_alrt.gs_anm{transition:transform .084s cubic-bezier(.4,0,1,1),visibility 0s .084s;}.gs_el_ph #gs_alrt.gs_vis.gs_anm{transition:transform .1s cubic-bezier(0,0,.2,1);}#gs_alrt_m{display:block;padding:16px;}#gs_alrt_l{display:block;padding:8px;margin:0 8px 0 -8px;border-radius:3px;color:#fcc934;text-transform:uppercase;text-decoration:none;}#gs_alrt_l:hover{background-color:rgba(255,255,255,.05)}#gs_alrt_l:active{background-color:rgba(255,255,255,.1)}#gs_alrt_l:empty{display:none}#gs_alrt_m a{padding:8px 0;color:#e2e2e2;text-decoration:underline;}#gs_alrt_m a:active{color:#f6aea9}</style><form action="" id="gs_alrt" method="post"><span id="gs_alrt_m"></span><span id="gs_alrt_h"></span><a class="gs_fm_s" data-fm="gs_alrt" href="javascript:void(0)" id="gs_alrt_l"></a></form><div class="gs_ab_st" id="gs_ab"><div class="gs_btnGSL" id="gs_ab_ico"><span class="gs_ico"></span></div><div id="gs_ab_ttl"><div class="gs_ab_mdw"><span class="gs_nph gs_nta">Articles</span><div class="gs_oph gs_ota">Scholar</div></div></div><div id="gs_ab_md"><div class="gs_ab_mdw">4 results (<b>0.01</b> sec)</div></div><div id="gs_ab_btns"><a class="gs_btnPRO gs_in_ib gs_in_gray gs_nph gs_nta" href="/citations?hl=en"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">My profile</span></a><a class="gs_btnL gs_in_ib gs_in_gray gs_nph gs_nta gs_mylib" href="/scholar?scilib=1&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">My library</span></a><div class="gs_md_r gs_md_rmb gs_md_rmbl" id="gs_res_ab_yy-r"><button aria-controls="gs_res_ab_yy-d" aria-haspopup="true" class="gs_in_se gs_btn_mnu gs_btn_flat gs_btn_lrge gs_btn_half gs_btn_lsu gs_press gs_md_tb" id="gs_res_ab_yy-b" ontouchstart="gs_evt_dsp(event)" type="button"><span class="gs_wr"><span class="gs_lbl">Year</span><span class="gs_icm"></span></span></button><div class="gs_md_d gs_md_ds gs_md_ulr" id="gs_res_ab_yy-d" role="menu" tabindex="-1"><div class="gs_res_ab_dd_bdy"><div class="gs_res_ab_dd_sec"><a aria-checked="true" class="gs_md_li gs_res_ab_sel" href="/scholar?hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=" role="menuitemradio" tabindex="-1">Any time</a><a class="gs_md_li" href="/scholar?as_ylo=2025&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=" role="menuitemradio" tabindex="-1">Since 2025</a><a class="gs_md_li" href="/scholar?as_ylo=2024&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=" role="menuitemradio" tabindex="-1">Since 2024</a><a class="gs_md_li" href="/scholar?as_ylo=2021&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=" role="menuitemradio" tabindex="-1">Since 2021</a></div><div class="gs_res_ab_dd_sec"><a aria-checked="true" class="gs_md_li gs_res_ab_sel" href="/scholar?hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=&amp;q=" role="menuitemradio" tabindex="-1">Sort by relevance</a><a class="gs_md_li" href="/scholar?hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=&amp;q=&amp;scisbd=1" role="menuitemradio" tabindex="-1">Sort by date</a></div></div></div></div></div></div><div id="gs_bdy"><div id="gs_bdy_sb" role="navigation"><div id="gs_bdy_sb_in"><div class="gs_bdy_sb_sec"><ul id="gs_res_sb_yyl"><li class="gs_ind gs_bdy_sb_sel"><a href="/scholar?hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=">Any time</a></li><li class="gs_ind"><a href="/scholar?as_ylo=2025&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=">Since 2025</a></li><li class="gs_ind"><a href="/scholar?as_ylo=2024&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=">Since 2024</a></li><li class="gs_ind"><a href="/scholar?as_ylo=2021&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=">Since 2021</a></li><li class="gs_ind"><a href="javascript:void(0)" id="gs_res_sb_yyc">Custom range...</a></li></ul><form action="/scholar" class="gs_pad" id="gs_res_sb_yyf" style="display:none"><input name="hl" type="hidden" value="en"/><input name="as_sdt" type="hidden" value="2005"/><input name="sciodt" type="hidden" value="0,5"/><input name="cites" type="hidden" value="14891801552399189326"/><input name="scipsc" type="hidden" value=""/><div class="gs_res_sb_yyr"><div class="gs_in_txtw gs_in_txtm"><input autocapitalize="off" class="gs_in_txt" id="gs_as_ylo" maxlength="4" name="as_ylo" pattern="[0-9]*" size="4" type="text" value=""/><div class="gs_in_txts"></div></div> — <div class="gs_in_txtw gs_in_txtm"><input autocapitalize="off" class="gs_in_txt" maxlength="4" name="as_yhi" pattern="[0-9]*" size="4" type="text" value=""/><div class="gs_in_txts"></div></div></div><div class="gs_res_sb_yyr"><button class="gs_btn_lsb" type="submit"><span class="gs_wr"><span class="gs_lbl">Search</span></span></button></div></form></div><ul class="gs_bdy_sb_sec"><li class="gs_ind gs_bdy_sb_sel"><a href="/scholar?hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=&amp;q=">Sort by relevance</a></li><li class="gs_ind"><a href="/scholar?hl=en&amp;as_sdt=2005&amp;sciodt=0,5&amp;cites=14891801552399189326&amp;scipsc=&amp;q=&amp;scisbd=1">Sort by date</a></li></ul><div class="gs_bdy_sb_sec"><a class="gs_btnM gs_in_ib" href="/scholar_alerts?view_op=create_alert_options&amp;hl=en&amp;alert_params=%3Fhl%3Den%26as_sdt%3D2005%26sciodt%3D0,5%26cites%3D14891801552399189326%26scipsc%3D" id="gs_bdy_sb_ca"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">Create alert</span></a></div></div></div><div id="gs_bdy_ccl" role="main"><div data-ahq="" data-fmat="" data-gsb="" data-gsr="" data-lhlt="" data-lph="" data-lpu="" data-lsl="" data-rfr="" data-sva="/citations?hl=en&amp;xsrf=&amp;continue=/scholar%3Fhl%3Den%26as_sdt%3D2005%26sciodt%3D0,5%26cites%3D14891801552399189326%26scipsc%3D&amp;citilm=1&amp;update_op=library_add&amp;info={id}&amp;ei=KPhYaJ3zBr2W6rQPs9Oj8A8&amp;json=" data-sval="/citations?hl=en&amp;xsrf=&amp;continue=/scholar%3Fhl%3Den%26as_sdt%3D2005%26sciodt%3D0,5%26cites%3D14891801552399189326%26scipsc%3D%26scisig%3DAAZF9b8AAAAAaFj6gBUOrOPUQvseU9fRzTtE2yo%26dts%3D%7Bid%7D&amp;citilm=1&amp;update_op=library_add&amp;info={id}&amp;ei=KPhYaJ3zBr2W6rQPs9Oj8A8&amp;view_op=list_article_labels" data-tra="/citations?hl=en&amp;xsrf=&amp;continue=/scholar%3Fhl%3Den%26as_sdt%3D2005%26sciodt%3D0,5%26cites%3D14891801552399189326%26scipsc%3D&amp;citilm=1&amp;json=&amp;update_op=trash_citations&amp;s={id}" data-ttl="Cheung: Tools shaping drug discovery and development - Google Scholar" data-usv="" data-via="/citations?view_op=view_citation&amp;continue=/scholar%3Fhl%3Den%26as_sdt%3D2005%26sciodt%3D0,5%26cites%3D14891801552399189326%26scipsc%3D&amp;citilm=1&amp;citation_for_view={id}&amp;hl=en&amp;oi=saved" id="gs_res_glb" style="display:none"></div><div id="gs_res_lbtpl" style="display:none"></div><div id="gs_res_ccl"><div id="gs_res_ccl_top"><style>.gs_rt_hdr_p{margin-top:4px;}#gs_rt_hdr_cites{margin-top:8px;}.gs_el_tc #gs_rt_hdr_cites{margin:0;}</style><div class="gs_r"><h2 class="gs_rt"><a href="/scholar?cluster=14891801552399189326&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5">Tools shaping drug discovery and development</a></h2><div id="gs_rt_hdr_cites"><a aria-checked="false" class="gs_cb_gen gs_in_cb" data-msg="Search citing articles" data-s="0" href="javascript:void(0)" id="gs_scipsc" role="checkbox"><span class="gs_lbl">Search within citing articles</span><span class="gs_chk"></span><span class="gs_cbx"></span></a></div></div></div><div id="gs_res_ccl_mid"> <div class="gs_r gs_or gs_scl" data-aid="ty2bIzPxfgUJ" data-cid="ty2bIzPxfgUJ" data-did="ty2bIzPxfgUJ" data-lid="" data-rp="0"><div class="gs_ggs gs_fl"><div class="gs_ggsd"><div class="gs_or_ggsm" ontouchstart="gs_evt_dsp(event)" tabindex="-1"><a data-clk="hl=en&amp;sa=T&amp;oi=gga&amp;ct=gga&amp;cd=0&amp;d=396019019198180791&amp;ei=KPhYaJ3zBr2W6rQPs9Oj8A8" data-clk-atid="ty2bIzPxfgUJ" href="https://www.sciencedirect.com/science/article/pii/S0022354922005147"><span class="gs_ctg2">[HTML]</span> sciencedirect.com</a></div></div></div><div class="gs_ri"><h3 class="gs_rt" ontouchstart="gs_evt_dsp(event)"><span class="gs_ctc"><span class="gs_ct1">[HTML]</span><span class="gs_ct2">[HTML]</span></span> <a data-clk="hl=en&amp;sa=T&amp;oi=ggp&amp;ct=res&amp;cd=0&amp;d=396019019198180791&amp;ei=KPhYaJ3zBr2W6rQPs9Oj8A8" data-clk-atid="ty2bIzPxfgUJ" href="https://www.sciencedirect.com/science/article/pii/S0022354922005147" id="ty2bIzPxfgUJ">The storage and in-use stability of mRNA vaccines and therapeutics: not a cold case</a></h3><div class="gs_a">E Oude Blenke, E Örnskov, <a href="/citations?user=MS9hxrAAAAAJ&amp;hl=en&amp;oi=sra">C Schöneich</a>… - Journal of …, 2023 - Elsevier</div><div class="gs_rs">The remarkable impact of mRNA vaccines on mitigating disease and improving public <br/>health has been amply demonstrated during the COVID-19 pandemic. Many new mRNA …</div><div class="gs_fl gs_flb"><a class="gs_or_sav gs_or_btn" href="javascript:void(0)" role="button"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M7.5 11.57l3.824 2.308-1.015-4.35 3.379-2.926-4.45-.378L7.5 2.122 5.761 6.224l-4.449.378 3.379 2.926-1.015 4.35z"></path></svg><span class="gs_or_btn_lbl">Save</span></a> <a aria-controls="gs_cit" aria-haspopup="true" class="gs_or_cit gs_or_btn gs_nph" href="javascript:void(0)" role="button"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M6.5 3.5H1.5V8.5H3.75L1.75 12.5H4.75L6.5 9V3.5zM13.5 3.5H8.5V8.5H10.75L8.75 12.5H11.75L13.5 9V3.5z"></path></svg><span>Cite</span></a> <a href="/scholar?cites=396019019198180791&amp;as_sdt=2005&amp;sciodt=0,5&amp;hl=en">Cited by 148</a> <a href="/scholar?q=related:ty2bIzPxfgUJ:scholar.google.com/&amp;scioq=&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5">Related articles</a> <a class="gs_nph" href="/scholar?cluster=396019019198180791&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5">All 8 versions</a> <a class="gs_or_mor gs_oph" href="javascript:void(0)" role="button" title="More"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M0.75 5.5l2-2L7.25 8l-4.5 4.5-2-2L3.25 8zM7.75 5.5l2-2L14.25 8l-4.5 4.5-2-2L10.25 8z"></path></svg></a> <a class="gs_or_nvi gs_or_mor" href="javascript:void(0)" role="button" title="Fewer"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M7.25 5.5l-2-2L0.75 8l4.5 4.5 2-2L4.75 8zM14.25 5.5l-2-2L7.75 8l4.5 4.5 2-2L11.75 8z"></path></svg></a></div></div></div> <div class="gs_r gs_or gs_scl" data-aid="ceZ1Y-FHK3wJ" data-cid="ceZ1Y-FHK3wJ" data-did="ceZ1Y-FHK3wJ" data-lid="" data-rp="1"><div class="gs_ggs gs_fl"><div class="gs_ggsd"><div class="gs_or_ggsm" ontouchstart="gs_evt_dsp(event)" tabindex="-1"><a data-clk="hl=en&amp;sa=T&amp;oi=gga&amp;ct=gga&amp;cd=1&amp;d=8947324118063507057&amp;ei=KPhYaJ3zBr2W6rQPs9Oj8A8" data-clk-atid="ceZ1Y-FHK3wJ" href="https://hal.science/hal-05099511/document"><span class="gs_ctg2">[PDF]</span> hal.science</a></div></div></div><div class="gs_ri"><h3 class="gs_rt" ontouchstart="gs_evt_dsp(event)"><a data-clk="hl=en&amp;sa=T&amp;ct=res&amp;cd=1&amp;d=8947324118063507057&amp;ei=KPhYaJ3zBr2W6rQPs9Oj8A8" data-clk-atid="ceZ1Y-FHK3wJ" href="https://hal.science/hal-05099511/" id="ceZ1Y-FHK3wJ">Recent advances in synchrotron scattering methods for probing the structure and dynamics of colloids</a></h3><div class="gs_a"><a href="/citations?user=ifVaWdUAAAAJ&amp;hl=en&amp;oi=sra">T Narayanan</a> - Advances in Colloid and Interface Science, 2024 - hal.science</div><div class="gs_rs">Recent progress in synchrotron based X-ray scattering methods applied to colloid science is <br/>reviewed. An important figure of merit of these techniques is that they enable in situ …</div><div class="gs_fl gs_flb"><a class="gs_or_sav gs_or_btn" href="javascript:void(0)" role="button"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M7.5 11.57l3.824 2.308-1.015-4.35 3.379-2.926-4.45-.378L7.5 2.122 5.761 6.224l-4.449.378 3.379 2.926-1.015 4.35z"></path></svg><span class="gs_or_btn_lbl">Save</span></a> <a aria-controls="gs_cit" aria-haspopup="true" class="gs_or_cit gs_or_btn gs_nph" href="javascript:void(0)" role="button"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M6.5 3.5H1.5V8.5H3.75L1.75 12.5H4.75L6.5 9V3.5zM13.5 3.5H8.5V8.5H10.75L8.75 12.5H11.75L13.5 9V3.5z"></path></svg><span>Cite</span></a> <a href="/scholar?cites=8947324118063507057&amp;as_sdt=2005&amp;sciodt=0,5&amp;hl=en">Cited by 11</a> <a href="/scholar?q=related:ceZ1Y-FHK3wJ:scholar.google.com/&amp;scioq=&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5">Related articles</a> <a class="gs_nph" href="/scholar?cluster=8947324118063507057&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5">All 3 versions</a> <a class="gs_or_mor" href="javascript:void(0)" role="button" title="More"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M0.75 5.5l2-2L7.25 8l-4.5 4.5-2-2L3.25 8zM7.75 5.5l2-2L14.25 8l-4.5 4.5-2-2L10.25 8z"></path></svg></a> <a class="gs_or_nvi" href="https://scholar.googleusercontent.com/scholar?q=cache:ceZ1Y-FHK3wJ:scholar.google.com/&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5">View as HTML</a> <a class="gs_or_nvi gs_or_mor" href="javascript:void(0)" role="button" title="Fewer"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M7.25 5.5l-2-2L0.75 8l4.5 4.5 2-2L4.75 8zM14.25 5.5l-2-2L7.75 8l4.5 4.5 2-2L11.75 8z"></path></svg></a></div></div></div> <div class="gs_r gs_or gs_scl" data-aid="S36MDnqI6nQJ" data-cid="S36MDnqI6nQJ" data-did="S36MDnqI6nQJ" data-lid="" data-rp="2"><div class="gs_ri"><h3 class="gs_rt" ontouchstart="gs_evt_dsp(event)"><a data-clk="hl=en&amp;sa=T&amp;ct=res&amp;cd=2&amp;d=8424696110761410123&amp;ei=KPhYaJ3zBr2W6rQPs9Oj8A8" data-clk-atid="S36MDnqI6nQJ" href="https://pubs.acs.org/doi/abs/10.1021/acs.analchem.3c04430" id="S36MDnqI6nQJ">Probing Molecular Packing of Lipid Nanoparticles from <sup>31</sup>P Solution and Solid-State NMR</a></h3><div class="gs_a">R Schroder, <a href="/citations?user=RDrogvkAAAAJ&amp;hl=en&amp;oi=sra">PJ Dorsey</a>, J Vanderburgh, <a href="/citations?user=dx3HLjoAAAAJ&amp;hl=en&amp;oi=sra">W Xu</a>… - Analytical …, 2024 - ACS Publications</div><div class="gs_rs">Lipid nanoparticles (LNPs) are intricate multicomponent systems widely recognized for their <br/>efficient delivery of oligonucleotide cargo to host cells. Gaining insights into the molecular …</div><div class="gs_fl gs_flb"><a class="gs_or_sav gs_or_btn" href="javascript:void(0)" role="button"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M7.5 11.57l3.824 2.308-1.015-4.35 3.379-2.926-4.45-.378L7.5 2.122 5.761 6.224l-4.449.378 3.379 2.926-1.015 4.35z"></path></svg><span class="gs_or_btn_lbl">Save</span></a> <a aria-controls="gs_cit" aria-haspopup="true" class="gs_or_cit gs_or_btn gs_nph" href="javascript:void(0)" role="button"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M6.5 3.5H1.5V8.5H3.75L1.75 12.5H4.75L6.5 9V3.5zM13.5 3.5H8.5V8.5H10.75L8.75 12.5H11.75L13.5 9V3.5z"></path></svg><span>Cite</span></a> <a href="/scholar?cites=8424696110761410123&amp;as_sdt=2005&amp;sciodt=0,5&amp;hl=en">Cited by 8</a> <a href="/scholar?q=related:S36MDnqI6nQJ:scholar.google.com/&amp;scioq=&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5">Related articles</a> <a class="gs_nph" href="/scholar?cluster=8424696110761410123&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5">All 3 versions</a> <a class="gs_or_mor gs_oph" href="javascript:void(0)" role="button" title="More"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M0.75 5.5l2-2L7.25 8l-4.5 4.5-2-2L3.25 8zM7.75 5.5l2-2L14.25 8l-4.5 4.5-2-2L10.25 8z"></path></svg></a> <a class="gs_or_nvi gs_or_mor" href="javascript:void(0)" role="button" title="Fewer"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M7.25 5.5l-2-2L0.75 8l4.5 4.5 2-2L4.75 8zM14.25 5.5l-2-2L7.75 8l4.5 4.5 2-2L11.75 8z"></path></svg></a></div></div></div> <div class="gs_r gs_or gs_scl" data-aid="AE8crp2OeqgJ" data-cid="AE8crp2OeqgJ" data-did="AE8crp2OeqgJ" data-lid="" data-rp="3"><div class="gs_ggs gs_fl"><div class="gs_ggsd"><div class="gs_or_ggsm" ontouchstart="gs_evt_dsp(event)" tabindex="-1"><a data-clk="hl=en&amp;sa=T&amp;oi=gga&amp;ct=gga&amp;cd=3&amp;d=12140172553412693760&amp;ei=KPhYaJ3zBr2W6rQPs9Oj8A8" data-clk-atid="AE8crp2OeqgJ" href="https://opus.uleth.ca/bitstreams/3804bc33-0cef-4550-bda4-c9d28415688e/download"><span class="gs_ctg2">[PDF]</span> uleth.ca</a></div></div></div><div class="gs_ri"><h3 class="gs_rt" ontouchstart="gs_evt_dsp(event)"><a data-clk="hl=en&amp;sa=T&amp;ct=res&amp;cd=3&amp;d=12140172553412693760&amp;ei=KPhYaJ3zBr2W6rQPs9Oj8A8" data-clk-atid="AE8crp2OeqgJ" href="https://search.proquest.com/openview/fe26177f86c460abc5af6b952e206129/1?pq-origsite=gscholar&amp;cbl=18750&amp;diss=y" id="AE8crp2OeqgJ">Biophysical and Biochemical Characterization of an HBV cccDNA G-Quadruplex Targeting Therapeutic</a></h3><div class="gs_a"><a href="/citations?user=6vFv09YAAAAJ&amp;hl=en&amp;oi=sra">GKB Figueroa</a> - 2023 - search.proquest.com</div><div class="gs_rs">Hepatitis B virus (HBV) has chronically infected 296 million people, and it is the leading <br/>cause of cirrhosis and hepatocellular carcinoma (HCC). Current treatments target post …</div><div class="gs_fl gs_flb"><a class="gs_or_sav gs_or_btn" href="javascript:void(0)" role="button"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M7.5 11.57l3.824 2.308-1.015-4.35 3.379-2.926-4.45-.378L7.5 2.122 5.761 6.224l-4.449.378 3.379 2.926-1.015 4.35z"></path></svg><span class="gs_or_btn_lbl">Save</span></a> <a aria-controls="gs_cit" aria-haspopup="true" class="gs_or_cit gs_or_btn gs_nph" href="javascript:void(0)" role="button"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M6.5 3.5H1.5V8.5H3.75L1.75 12.5H4.75L6.5 9V3.5zM13.5 3.5H8.5V8.5H10.75L8.75 12.5H11.75L13.5 9V3.5z"></path></svg><span>Cite</span></a> <a href="/scholar?q=related:AE8crp2OeqgJ:scholar.google.com/&amp;scioq=&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5">Related articles</a> <a class="gs_nph" href="/scholar?cluster=12140172553412693760&amp;hl=en&amp;as_sdt=2005&amp;sciodt=0,5">All 3 versions</a> <a class="gs_or_mor gs_oph" href="javascript:void(0)" role="button" title="More"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M0.75 5.5l2-2L7.25 8l-4.5 4.5-2-2L3.25 8zM7.75 5.5l2-2L14.25 8l-4.5 4.5-2-2L10.25 8z"></path></svg></a> <a class="gs_or_nvi gs_or_mor" href="javascript:void(0)" role="button" title="Fewer"><svg class="gs_or_svg" viewbox="0 0 15 16"><path d="M7.25 5.5l-2-2L0.75 8l4.5 4.5 2-2L4.75 8zM14.25 5.5l-2-2L7.75 8l4.5 4.5 2-2L11.75 8z"></path></svg></a></div></div></div></div><div id="gs_res_ccl_bot"><div class="gs_r gs_alrt_btm gs_oph gs_ota"><a class="gs_btnM gs_in_ib" href="/scholar_alerts?view_op=create_alert_options&amp;hl=en&amp;alert_params=%3Fhl%3Den%26as_sdt%3D2005%26sciodt%3D0,5%26cites%3D14891801552399189326%26scipsc%3D"><span class="gs_ico"></span><span class="gs_ia_notf"></span><span class="gs_lbl">Create alert</span></a></div></div></div></div></div><div id="gs_ftr_sp" role="presentation"></div><div class="gs_md_rmb" id="gs_ftr" role="contentinfo"><div id="gs_ftr_rt"><a href="//www.google.com/intl/en/policies/privacy/">Privacy</a><a href="//www.google.com/intl/en/policies/terms/">Terms</a><a aria-controls="gs_ftr_mnu" aria-haspopup="true" class="gs_press gs_md_tb" href="javascript:void(0)" ontouchstart="gs_evt_dsp(event)" role="button">Help</a></div><div class="gs_md_d gs_md_ds gs_ttzi gs_md_ulr" id="gs_ftr_mnu" role="menu" tabindex="-1"><a class="gs_md_li" href="/intl/en/scholar/about.html" role="menuitem" tabindex="-1">About Scholar</a><a class="gs_md_li" href="//support.google.com/websearch?p=scholar_dsa&amp;hl=en" role="menuitem" tabindex="-1">Search help</a></div></div></div></body></html>
CODE
b = base_scrape_search_results('https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=agile+lnp&btnG=')
b
[{'title': 'AGILEplatform: a deep learning powered approach to accelerateLNPdevelopment for mRNA delivery',
  'url': 'https://www.nature.com/articles/s41467-024-50619-z',
  'file_url': 'https://www.nature.com/articles/s41467-024-50619-z.pdf',
  'citations': 59,
  'citedby_url': 'https://scholar.google.com/scholar?cites=13178198065661408149&as_sdt=2005&sciodt=0,5&hl=en',
  'authors': {'Y Xu': 'xJDpDu4AAAAJ',
   'S Ma': 'JeW_QPYAAAAJ',
   'H Cui': 'VfLJ-NcAAAAJ',
   'J Chen': 'RxwM4rMAAAAJ',
   'S Xu': 'tO8ZZ0wAAAAJ',
   'F Gong': 'xQTmlLgAAAAJ'},
  'year': '2024',
  'pubinfo': 'Y Xu , S Ma , H Cui , J Chen , S Xu , F Gong …\xa0- Nature\xa0…, 2024 - nature.com',
  'snippet': '… In conclusion, AGILE represents a groundbreaking fusion of combinatorial chemistry and … of LNP design and broadening these insights for diverse applications. Crucially, AGILE offers a …'},
 {'title': 'Data-balanced transformer for accelerated ionizable lipid nanoparticles screening in mRNA delivery',
  'url': 'https://academic.oup.com/bib/article-abstract/25/3/bbae186/7658017',
  'file_url': 'https://academic.oup.com/bib/article-pdf/25/3/bbae186/57330692/bbae186.pdf',
  'citations': 10,
  'citedby_url': 'https://scholar.google.com/scholar?cites=16664317754919403728&as_sdt=2005&sciodt=0,5&hl=en',
  'authors': {'K Wu': None,
   'X Yang': 'iq-FsoMAAAAJ',
   'Z Wang': None,
   'N Li': None,
   'J Zhang': None},
  'year': '2024',
  'pubinfo': 'K Wu, X Yang , Z Wang, N Li, J Zhang…\xa0- Briefings in\xa0…, 2024 - academic.oup.com',
  'snippet': '… AGILE tackles the challenge of limited data through pretraining and fine-tuning, it neglects the issue of imbalanced data, which led to a big forecast error. AGILE … Inspired by AGILE , we …'},
 {'title': 'Physicochemical and structural insights into lyophilized mRNA-LNPfrom lyoprotectant and buffer screenings',
  'url': 'https://www.sciencedirect.com/science/article/pii/S0168365924005078',
  'file_url': None,
  'citations': 15,
  'citedby_url': 'https://scholar.google.com/scholar?cites=8494241931325903183&as_sdt=2005&sciodt=0,5&hl=en',
  'authors': {'Y Fan': 'xskevhoAAAAJ',
   'D Rigas': None,
   'LJ Kim': None,
   'FP Chang': 'qw7f1fMAAAAJ',
   'N Zang': 'qJVH7J0AAAAJ'},
  'year': '2024',
  'pubinfo': 'Y Fan , D Rigas, LJ Kim, FP Chang , N Zang …\xa0- Journal of Controlled\xa0…, 2024 - Elsevier',
  'snippet': '… composition, we systematically evaluated 45 different mRNA- LNP formulations under diverse lyoprotectant and buffer conditions for lyophilization and explored the interplay between …'},
 {'title': 'Lipid nanoparticle (LNP) mediated mRNA delivery in cardiovascular diseases: Advances in genome editing and CAR T cell therapy',
  'url': 'https://www.sciencedirect.com/science/article/pii/S0168365924003717',
  'file_url': None,
  'citations': 15,
  'citedby_url': 'https://scholar.google.com/scholar?cites=8296629214974724683&as_sdt=2005&sciodt=0,5&hl=en',
  'authors': {'S Soroudi': None,
   'MR Jaafari': 'Yxne3qcAAAAJ',
   'L Arabi': 'BxInTLYAAAAJ'},
  'year': '2024',
  'pubinfo': 'S Soroudi, MR Jaafari , L Arabi - Journal of Controlled Release, 2024 - Elsevier',
  'snippet': '… - LNP delivery. We concluded that the integration of cutting-edge technologies such as artificial intelligence for LNPs mediated mRNA design ( AGILE … could further optimize LNP -mRNA …'},
 {'title': 'Flexibility in drug product development: a perspective',
  'url': 'https://pubs.acs.org/doi/abs/10.1021/acs.molpharmaceut.1c00210',
  'file_url': None,
  'citations': 13,
  'citedby_url': 'https://scholar.google.com/scholar?cites=10603516557069579070&as_sdt=2005&sciodt=0,5&hl=en',
  'authors': {'Y Kapoor': None,
   'RF Meyer': 'huacgw4AAAAJ',
   'HM Ferguson': 'CESXhRUAAAAJ'},
  'year': '2021',
  'pubinfo': 'Y Kapoor, RF Meyer , HM Ferguson …\xa0- Molecular\xa0…, 2021 - ACS Publications',
  'snippet': '… cycle to observe the effects of innovations like agile methodologies has led to the result of … in LNP (neutral lipids, cationic lipids, PEG lipids) and the encapsulated RNA in the LNP . …'},
 {'title': 'Intelligent Design of Lipid Nanoparticles for Enhanced Gene Therapeutics',
  'url': 'https://pubs.acs.org/doi/abs/10.1021/acs.molpharmaceut.4c00925',
  'file_url': None,
  'citations': 2,
  'citedby_url': 'https://scholar.google.com/scholar?cites=14579244619998755378&as_sdt=2005&sciodt=0,5&hl=en',
  'authors': {'Y Yuan': None,
   'Y Li': None,
   'G Li': None,
   'L Lei': None,
   'X Huang': 'Lo0eIWQAAAAJ',
   'M Li': 'EtE67AgAAAAJ'},
  'year': '2025',
  'pubinfo': 'Y Yuan, Y Li, G Li, L Lei, X Huang , M Li …\xa0- Molecular\xa0…, 2025 - ACS Publications',
  'snippet': '… This review highlights the dynamic evolution of LNP … Most LNP studies focus on the apparent pK a of the LNP rather … the ionization status of all molecules within the LNP . (12) A previous …'},
 {'title': 'Reaching Outer Space and Enabling the mRNA Revolution: A Critical Role of Partnerships for Successful Drug and Vaccine Development',
  'url': 'https://link.springer.com/chapter/10.1007/164_2024_723',
  'file_url': None,
  'citations': 1,
  'citedby_url': 'https://scholar.google.com/scholar?cites=11195455201534016563&as_sdt=2005&sciodt=0,5&hl=en',
  'authors': {'A Seshire': None, 'Y Duan': None, 'K Lang': None},
  'year': None,
  'pubinfo': 'A Seshire, Y Duan, K Lang\xa0- Public-Private-Partnerships in Drug Research\xa0…, 2024 - Springer',
  'snippet': '… LNP formulations, the ionizable lipids are the key component and differentiator of existing LNP … As an agile group the program is seeking for partnerships with external KOL generating a …'},
 {'title': 'The platform technology approach to mRNA product development and regulation',
  'url': 'https://www.mdpi.com/2076-393X/12/5/528',
  'file_url': 'https://www.mdpi.com/2076-393X/12/5/528/pdf',
  'citations': 13,
  'citedby_url': 'https://scholar.google.com/scholar?cites=12491205912949043286&as_sdt=2005&sciodt=0,5&hl=en',
  'authors': {'JH Skerritt': None,
   'C Tucek': None,
   'B Sutton': '8YCjA6gAAAAJ'},
  'year': None,
  'pubinfo': 'JH Skerritt, C Tucek-Szabo, B Sutton , T Nolan\xa0- Vaccines, 2024 - mdpi.com',
  'snippet': '… /patient access and more agile development of products in the … LNP product characterisation tests include confirmation of the LNP size distribution, LNP surface characterisation, LNP …'},
 {'title': 'Automated and parallelized microfluidic generation of large and precisely-defined lipid nanoparticle libraries',
  'url': 'https://www.biorxiv.org/content/10.1101/2025.05.26.656157.abstract',
  'file_url': 'https://www.biorxiv.org/content/biorxiv/early/2025/05/29/2025.05.26.656157.full.pdf',
  'citations': 0,
  'citedby_url': None,
  'authors': {'AR Hanna': None,
   'SJ Shepherd': 'xj8UVnAAAAAJ',
   'GA Datto': None,
   'IB Navarro': None},
  'year': '2025',
  'pubinfo': 'AR Hanna, SJ Shepherd , GA Datto, IB Navarro…\xa0- bioRxiv, 2025 - biorxiv.org',
  'snippet': '… the relative mixing ratios of the different LNP components through each LNP generator. We chose the resistances Ri,m … Agile platform: a deep learning powered approach to accelerate …'},
 {'title': 'Application of Lipid Nanoparticle (LNP) Design and Optimization Concepts to the Emerging Field of Protein-Based Virus-Like Particles (VLPs)',
  'url': 'https://search.proquest.com/openview/afa8db9ccfc501bcf34330c85b5b319e/1?pq-origsite=gscholar&cbl=18750&diss=y',
  'file_url': None,
  'citations': 0,
  'citedby_url': None,
  'authors': {'K Kumm': None},
  'year': '2025',
  'pubinfo': 'K Kumm - 2025 - search.proquest.com',
  'snippet': '… This thesis systematically evaluates the applicability of LNP design and optimization concepts to VLPs to help explore parallels and potential divergences to investigate if VLPs should …'}]

Here we’ll set a search query to seed things, looking for combinatorial fragment-based chemical libraries of the type we want.

CODE
#query = "ionizable lipid LNP"
specific_query = "ionizable lipid lnp combinatorial library"
CODE
init_papers, results_count = get_top_papers_for_query(specific_query, max_papers=9999)
print(f"Found {len(init_papers)} papers for query '{specific_query}' out of {results_count} total results.")

We now have a list of hundreds of papers that are relevant to the query, each of which can be stored along with a page listing the articles that cite it. This information is what the get_top_papers_for_query function outputs.

CODE
init_papers = {x['title']: x for x in init_papers}  # deduplicate by title
init_papers_dict = json.dumps(init_papers, indent=2, ensure_ascii=False)
with open('initial_papers.json', 'w', encoding='utf-8') as f:
    f.write(init_papers_dict)
CODE
from itertools import islice

with open('initial_papers.json', 'r') as file:
    init_papers_dict = json.load(file)
print(
    f"{len(init_papers_dict)} papers considered as search results. First 5 papers: \n" + 
    str(list(islice(init_papers_dict.items(), 5)))
)

API query budget

Apart from one initial query to ascertain how many search results to expect, this function get_top_papers_for_query only makes API calls to Google Scholar every 20 results, and analyzes the resulting HTML. This is because Google Scholar will display only this many results on a single page.

So it takes just a few dozen calls to get hundreds of paper results, as demonstrated here.

Advanced queries on Google Scholar

Google Scholar also has many more advanced options, such as searching for papers by a specific set of authors with conjunctions and disjunctions of phrases, and within date ranges. These amount to simple URL parameters that can be added to the search query.

CODE
def advanced_search_url(
    query, phrase_str='', words_some='', words_none='', scope='any', authors='', pub='', ylo='', yhi=''
):
    query_str = '+'.join(query.split())
    pfx = BASE_URL + '/scholar?'
    url = pfx + 'as_q={}&as_epq={}&as_oq={}&as_eq={}&as_occt={}&as_sauthors={}&as_publication={}&as_ylo={}&as_yhi={}&btnG=&hl=en&as_sdt=0%2C5'.format(
        query_str, phrase_str, words_some, words_none, scope, authors, pub, ylo, yhi
    )
    return url

The previous code can be modified to add these options by straightforwardly transforming the query URL string to the new URL, replacing the query URL generation function basic_search_url with this one.

Building a citation graph

From these dictionary entries, the citation graph can be constructed. It involves traversing each of these citedby_url backlinks, and processing the HTML on those pages to extract the metadata for each paper that cites the original paper.

"\n# WHAT I WANT: PROMPT\n\nI want to keep a dictionary of the papers I've found, keyed by title. \nThe value should be a dictionary with keys `title`, `citedby_url`, `citation_count`.\n\n`get_citing_papers` is a function that replaces `citedby_url` with a list of paper IDs, of length given as an argument to the function. \n"
CODE
def scrape_citing_papers(citedby_url, start_num=0):
    url_pieces = citedby_url.split("?")[1].split("&")
    url = f"{BASE_URL}/scholar?start={start_num}&{url_pieces[3]}&num=100&{url_pieces[1]}&{url_pieces[2]}&{url_pieces[0]}"
    return base_scrape_search_results(url)


def get_citing_papers(paper, max_papers=100, min_citations=0):
    if not paper['citedby_url']:
        return []
    start_num = 0
    max_papers = min(max_papers, paper['citations'])
    
    papers = []
    while len(papers) < max_papers:
        new_papers = scrape_citing_papers(paper['citedby_url'], start_num=start_num)
        if not new_papers:
            break
        start_num += len(new_papers)
        papers.extend(new_papers)
        medcit = np.median([x['citations'] for x in new_papers])
        print ("Median citations on this page: {}".format(medcit))
        if medcit < min_citations:
            print(f"Stopping search, median citations {medcit} is below threshold {min_citations}.")
            break
    return papers


def build_citation_graph(papers):
    G = nx.DiGraph()
    titles_set = {p['title'] for p in papers}

    for paper in papers:
        G.add_node(paper['title'], citations=paper['citations'])

    for paper in papers:
        citing_papers = get_citing_papers(paper, max_papers=10)
        for citing_paper in citing_papers:
            G.add_node(citing_paper['title'], citations=citing_paper['citations'])
            G.add_edge(citing_paper['title'], paper['title'])  # Edge from citer to cited
            if citing_paper['title'] not in titles_set:
                papers.append(citing_paper)
                titles_set.add(citing_paper['title'])
    return papers, G


# scrape_citing_papers('https://scholar.google.com/scholar?cites=6477533685602226266&as_sdt=2005&sciodt=0,5&hl=en', start_num=0)
CODE
# Sort init_papers_dict.values() in descending order of citations
sorted_papers = sorted(init_papers_dict.values(), key=lambda x: x['citations'], reverse=True)
#print(f"Top 5 papers by citations: \n{json.dumps(sorted_papers[:5], indent=2, ensure_ascii=False)}")
sorted_papers
CODE
a = get_citing_papers(list(init_papers_dict.values())[0], max_papers=14)
CODE
build_citation_graph(list(init_papers_dict.values()))
CODE
# Example usage:
papers, citation_graph = build_citation_graph(init_papers)

print("Papers:")
for p in papers:
    print(f"- {p['title']} ({p['citations']} citations)")

print("Graph info:")
print(nx.info(citation_graph))

dict(citation_graph.out_degree())

Rate limiting and proxies

Google Scholar aggressively rate-limits users, so queries on popular papers may run into these rate limits. Circumventing these requires the use of proxies, for which the risk is assumed by individual users.

Identifying high-impact (landmark) papers

Not all retrieved papers are equally important for a literature review. A common heuristic is to identify especially influential works, which we call “landmark” papers, as these often must be discussed in a Related Work section. This is a subjective task by nature, but it can be realized in a principled way.

Using the structure of the citation graph

We want to find papers which constitute fairly central nodes of the citation graph. The goal here is only to provide a structure for further analysis, not give a one-size-fits-all solution. Some basic functionality calculates a set of landmark papers from the existing citation graph using a simple method - a version of PageRank. This is a common task in network analysis, for which a satisfactory answer is given by the highly efficient PageRank algorithm.

The idea is to use the citation graph to identify influential papers that are cited by many other influential papers. In this way, we can efficiently compute a citation network centrality score for each paper, which can be used to rank them.

The Scholar-computed citation count of each paper is another useful metric for its influence, and includes citations well beyond the scope of the search query. It can be used as a prior over nodes, to encourage the algorithm to select papers with high citation counts. In general, we want the relative influence of a paper in the prior to be some monotonically increasing function of the citation count, so that papers with more citations are favored by the prior as landmark papers.

From the citation graph so far, we can filter or rank papers by their citation counts, even without making a single further API call. We then select a subset of papers with the highest citation counts (for example, the top few papers) as potential landmark papers. The threshold or number can be adjusted; in a well-studied field, even hundreds of citations might be common, whereas in a niche or very recent topic, a few citations might indicate a key paper.

Prior knowledge of landmark papers

In the context of the search, particularly into specific research-oriented material, the user’s intent is often most easily expressible by referring to specific authors or papers that the user has in mind.

Here are a couple of further ways of identifying landmark papers. - Author identity: All papers by a specific author or group of authors can be considered landmark papers for the search, especially if they are known to be influential in the field. - Seed papers: If the user has a specific set of papers they want to include, these can be added to the working set as landmark papers.

This needs a little further code, to get the relevant author information (identifying papers written by the author).

CODE
def landmark_paper_select(graph_nx):
    # Select the top N papers as "landmark" papers (e.g., top 5 by citations)
    N = 5
    landmark_papers = detailed_pubs[:N]
    print(f"Selected {len(landmark_papers)} landmark papers based on citation count:")
    for p in landmark_papers:
        title = p['bib']['title']
        cites = p.get('num_citations', 0)
        print(f" - \"{title}\" with {cites} citations")
    return

Depending on the use case, you might choose landmark papers differently. For instance, you could include at least one recent paper (even if low citations) to capture cutting-edge developments, or filter out very old but highly cited works if they are less relevant to current research. The citation count is just one proxy for relevance to the search, and should be readily overridden by clearer expressions of intent, like specific authors or papers. These are typically responsible for the personalization that distinguishes good search results.

Alternatives: In domains like biomedicine, I have sometimes used domain-specific indices (e.g., PubMed Central citations or clinical guideline references) to identify influential work. Another approach is to look at review articles (which often summarize a field) by filtering for keywords like “review” or checking if the venue is a known review journal – these can also serve as landmarks. If using Semantic Scholar’s API or OpenAlex, these services directly provide citation counts and even “influential citation” indicators.

CODE
def papers_by_author(author_scholar_ID):
    # author_scholar_ID is the author's Google Scholar ID.
    auth_url = f"https://scholar.google.com/citations?user={author_scholar_ID}&hl=en"
    landmark_papers = detailed_pubs[:N]
    print(f"Selected {len(landmark_papers)} landmark papers based on citation count:")
    for p in landmark_papers:
        title = p['bib']['title']
        cites = p.get('num_citations', 0)
        print(f" - \"{title}\" with {cites} citations")
    return

Expanding the working set via citation traversal

Once we have a core set of important papers, the next step is to find additional relevant literature by exploiting the citation network:

  • Forward citations: Find papers that have cited the landmark papers (this uncovers later work building on the landmarks).
  • Backward citations (references): Find papers that the landmark papers reference (this uncovers earlier foundational work).

By traversing citations in this way, we can build a more comprehensive set of related works surrounding the topic. In constructing the citation graph, we have already cheaply scraped the links of all the in-neighbors of each paper in the graph – all the other works that cite it. So we can examine these nodes for more working set candidates. We are looking for several characteristics which could be desirable:

  • Papers that are highly connected to the graph so far.
  • Papers that are associated with relevant authors.
  • Papers receiving relatively high attention (citation count) relative to their peers.

Note that highly-cited landmark papers could have hundreds of citing works; we might limit how many we gather for practicality (e.g., take the first 20 citing papers for each, or filter those citing papers by their own citation count or year to get the most relevant). We also avoid duplicates in our working set.

Below is a code snippet expanding the set via forward citations. We start by initializing expanded_set as a dictionary using paper titles as keys (assuming titles are unique enough identifiers in this context) to store all collected papers. We populate it initially with the landmark papers. Then for each landmark paper, we look for publications that cite this landmark. We iterate through that, adding each citing publication to our set (if not already present). We cap the number of citing papers per landmark to max_citing (e.g., 20) to keep the size reasonable. The result is a working_set list containing the union of landmark papers and their selected citations.

CODE
# Step 3: Expand working set by collecting papers that cite the landmark papers
expanded_set = {p['bib']['title']: p for p in landmark_papers}  # use title as key for uniqueness

for landmark in landmark_papers:
    title = landmark['bib']['title']
    try:
        citing_iter = scholarly.citedby(landmark)
    except Exception as e:
        print(f"Unable to retrieve citations for \"{title}\": {e}")
        continue

    # Collect a limited number of citing papers for each landmark (to avoid huge explosion)
    count = 0
    max_citing = 20
    for citing_pub in citing_iter:
        count += 1
        if citing_pub['bib']['title'] in expanded_set:
            continue  # skip if already in set
        expanded_set[citing_pub['bib']['title']] = citing_pub
        if count >= max_citing:
            break
    print(f"Added {count} papers citing \"{title}\" to the working set.")

working_set = list(expanded_set.values())
print(f"Total papers in working set (landmarks + new citations): {len(working_set)}")

At this point, our working set should represent a broader collection of related work: it includes key papers and some of the influential papers that cite them. If needed, one could also expand another step (e.g., citations of citations) or incorporate backward references. Backward references (papers cited by the landmarks) would require a different approach since Google Scholar doesn’t directly list references. For brevity, we’ll continue with just forward citations from Google Scholar. (In practice, incorporating multiple sources can yield the even better coverage.)

Building a comprehensive bibliography (BibTeX file)

Now that we have a set of relevant papers in our working set, we need to collect their bibliographic details in order to cite them properly in the Related Work text. Fortunately, Google Scholar stores each of its papers’ citations in BibTeX form. With appropriate knowledge of the structure of the Google Scholar database, this can be retrieved.

(Alternatively, if a DOI is available, we could use CrossRef or Semantic Scholar to get polished metadata (or even directly query CrossRef’s citation API to get BibTeX). )

Below is a code snippet to retrieve the .bib file contents for any paper:

CODE
def base_scrape_bibtex(url, pause_sec=None):
    soup = get_soup(url, pause_sec=pause_sec)
    bibtex_citations = []
    for entry in soup.select('.gs_ri'):
        cite_id = entry.find('a', string=re.compile('Related articles'))['href'].split(':')[1]
        cite_url = f"https://scholar.google.com/scholar?hl=en&q=info:{cite_id}:scholar.google.com/&output=cite&scirp=0"
        s = get_soup(cite_url, pause_sec=pause_sec)
        bibtex_url = s.find("div", {"id": "gs_citi"}).find("a", string=re.compile('BibTeX'))['href']
        s2 = get_soup(bibtex_url, pause_sec=pause_sec)
        bibtex_citations.append(s2.text.strip())
    return bibtex_citations


def scrape_queried_bibtex(query, start_num=0):
    url = basic_search_url(query, start_num=start_num)
    return base_scrape_bibtex(url)


def get_bibtex_for_query(query, max_papers=100):
    bibtex_citations = []
    while len(papers) < max_papers:
        new_bibtex = scrape_queried_bibtex(query, start_num=start_num)
        start_num += len(new_bibtex)
        bibtex_citations.extend(new_bibtex)
    return bibtex_citations

Now it only remains to cycle over the papers in the citation graph, as implied by a text query and/or a query of similar papers. This is essentially a version of what Google Scholar is doing in weighting papers by citation relevance. However, abstracting this functionality out allows us to customize it. The final payoff is a programmatically generated BibTeX file which serves as a .bib reference for any text that uses these papers as grounding.

CODE
# Step 4: Compile metadata and write to a BibTeX file
bib_entries = get_bibtex_for_query(specific_query, max_papers=results_count)
for pub in working_set:
    try:
        bibtex_str = base_scrape_bibtex(pub)
    except Exception as e:
        # Fallback: construct a minimal BibTeX manually if automatic retrieval fails
        # bib_data = pub['bib']
        # # Create a citation key as FirstAuthorYear (simplistic approach)
        # authors = bib_data.get('author', '')
        # first_author_lastname = authors.split(' and ')[0].split()[-1] if authors else 'Unknown'
        # year = bib_data.get('year', 'XXXX')
        # key = f"{first_author_lastname}{year}"
        # title = bib_data.get('title', '')
        # journal = bib_data.get('journal', bib_data.get('conference', ''))
        # bibtex_str = (
        #     f"@article{{{key},\n"
        #     f"  title={{{{{title}}}}},\n"
        #     f"  author={{{authors}}},\n"
        #     f"  journal={{{journal}}},\n"
        #     f"  year={{{year}}}\n"
        #     f"}}"
        # )
        pass
    bib_entries.extend(bibtex_str)

After generating all entries, we write them to related_work.bib. This BibTeX file can later be used in a LaTeX document to provide the reference list.

CODE
# Write all entries to a .bib file
with open("related_work.bib", "w") as bibfile:
    for entry in bib_entries:
        bibfile.write(entry + "\n\n")

print(f"Wrote {len(bib_entries)} entries to related_work.bib")

Alternatives: Instead of relying on Google Scholar for metadata (which might have inconsistencies), one could use the CrossRef API or Semantic Scholar to get high-quality metadata. For example, if DOIs are known, CrossRef can return BibTeX or JSON data for the paper. Semantic Scholar’s data (via their Graph API) includes fields like title, authors, venue, year, DOI, and even formatted citation strings. If high precision is needed (especially in biomedical citations where PubMed IDs might be used), one could also query PubMed or use reference managers like Zotero via their API for metadata.

Grounding LLM-based applications

Google Scholar is one of the most important sources for grounding LLMs in scientific literature, due to its comprehensiveness. Our setup so far has been motivated by a scenario where a report must be prepared de novo from a smaller specification, requiring generation of text. There are many related problems for which the common literature-based grounding of LLMs can be augmented with transparent Scholar search capabilities.

  • Generating a set of papers from a mixed literature query: This is a common task in literature review, where a set of papers must be generated from pieces of text and a smaller set of papers.

  • Giving richer citations for a given report: A related problem is actually easier to address with the citation machinery at hand here, providing more citations for a given piece of text. This involves the important subtask of scanning a piece of text and generating query strings and query papers with the goal of identifying more or more current papers to support the existing text.

The above tools can be given to an LLM agent - we explore this in another post.

References

Agarwal, Shubham, Gaurav Sahu, Abhay Puri, Issam H Laradji, Krishnamurthy Dj Dvijotham, Jason Stanley, Laurent Charlin, and Christopher Pal. 2024. “LitLLMs, LLMs for Literature Review: Are We There Yet?” Transactions on Machine Learning Research.
Beel, Jöran, and Bela Gipp. 2009. “Google Scholar’s Ranking Algorithm: An Introductory Overview.” In Proceedings of the 12th International Conference on Scientometrics and Informetrics (ISSI’09), 1:230–41. Rio de Janeiro (Brazil).
Singh, Amanpreet, Joseph Chee Chang, Chloe Anastasiades, Dany Haddad, Aakanksha Naik, Amber Tanaka, Angele Zamarron, et al. 2025. “Ai2 Scholar QA: Organized Literature Synthesis with Attribution.” arXiv Preprint arXiv:2504.10861.

Reuse

CC BY 4.0