This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.
Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Cmd+Shift+Enter.
Introduction
English is a dynamic language that is constantly borrowing new vocabulary and phrases from foreign sources. However, Spanish may not be the first language that people think of as a language that has influenced English. In different moments in history, Spanish and English speakers have interacted closely so it is not a surprise that the languages have exchanged elements of their lexicon. English began importing Spanish words in the 15th Century when England and Spain were engaging in overseas trade and continues to borrow words from Spanish in the modern day.
Some Spanish words borrowed by English between the 15-17th Centuries
- galleon -> galeón
- cork -> alcorque
- cargo -> cargo
The main question I am trying to answer with this project is which English speaking country uses the most Spanish words in their lexicon. This is something I am interested in because I want to see how the history and geography of different parts of the world affect the language that people use. Specifically with this project, I want to see how these factors affect the English language. I hope that other people interested in language change and the effects of cultural contact will learn something from this notebook.
Dataset & Method
For this project, I chose to use the Corpus of Global Web-Based English (GloWbE) because it provides data from different varieties of English organized by country. This made it easy to compare the amount of Spanish vocabulary each dialect of English uses. Since this corpus is web-based, it contains more contemporary sources of English. I think this is important because language is constantly changing so it is essential for this project that data be as current as possible.
To analyze the data, I wrote a python program that read through data from the United States, Great Britain, Canada and Australia. As it read through the data, the program counted the words of Spanish origin and divided that number by the total word count for each country’s data set to get a percentage. The program knew which words were of Spanish origin from a list of Spanish to English borrowings I compiled from several sources.
Who Uses The Most Spanish Words
df <- read.csv("fp_data.csv")
Warning in read.table(file = file, header = header, sep = sep, quote = quote, :
incomplete final line found by readTableHeader on 'fp_data.csv'
ggplot(df, aes(x = country, y = percentage, fill = country)) +
geom_bar(stat = "identity") +
scale_fill_brewer(palette="Blues") +
theme(legend.position="none") +
ggtitle("Percentage of Spanish Words Used In English by Variety") +
xlab("English Variety") + ylab("Percentage")

In this figure, you can see that American English contains the highest percentage of Spanish vocabulary. This could be attributed to a few factors.
- Many names for plants and animals native to the Americas came to English either directly from Spanish (direct borrowing) or from indigenous languages with Spanish serving as the middle-man (indirect borrowing).
- avocado -> aguacate -> ahuacatl (nahuatl)
- armadillo -> armadillo
- barbecue -> barbacoa -> barbacoa (taino)
- Most of the Western United States was colonized by Spain and later part of Mexico, this left behind a strata of words that reflect the culture and environment of the time.
- lasso -> lazo
- buckaroo -> vaquero
- canyon -> cañón
- This is also why the names of many places in the United States come from Spanish.
- Colorado: Ruddy
- Florida: Flowery
- Nevada: Snowy
- The United States is much closer to Latin America than other English speaking countries are to any Spanish speaking part of the world. This has resulted in cultural exchange between the two regions.
- Several parts of the United States have a significantly high Spanish speaking population.
Spanish Speakers in the United States
library("usmap")
library("ggplot2")
pop <- read.csv("spanish_pop.csv")
plot_usmap(regions = "states", data = pop, values = "S1601_C02_004E") +
scale_fill_continuous(low = "white", high = "blue", name = "Percentage", label = scales::comma) +
labs(title = "Percentage of Population that Speaks Spanish by State") +
theme(legend.position = "right")

According to the US census, over 41 million people in the United States speak Spanish at home. Which is around 13.5% of the population. This map shows that Spanish speakers in the United States tend to either live in states that have large cities (which makes sense since larger cities have a more diverse population) or in states like California, Texas and Florida which are in close proximity to Latin American countries. Just like other languages that have had or continue to have a high population of speakers in the United States, Spanish has made a significant impact on American English.
Future Direction
In the future, I would like to see if it would be possible to compare English data from different US states to see which parts of the country use the most Spanish words when speaking English. However, I am unsure if a data set like this currently exists. I would also like to look at the data from other countries that the GloWbE corpus provides. I had to keep the amount of countries I looked at short in this project because the python program took around a half hour to run with just four countries. The GloWbE corpus has a data set of English from the Philippines which I think would be especially interesting to look at considering how commonly spoken Spanish once was in the Philippines. It would also be worth replicating this experiment with borrowings from other languages in different varieties of English.
Works Cited
Davies, Mark. Corpus of Global Web-Based English (GloWbE), dataset, Date Unknown; (https://digital.library.unt.edu/ark:/67531/metadc1181238/: accessed December 15, 2021), University of North Texas Libraries, UNT Digital Library, https://digital.library.unt.edu; .
Jordan, J.-E. (n.d.). 111 English words that are actually Spanish. Retrieved December 15, 2021, from https://www.babbel.com/en/magazine/english-words-actually-spanish
Peknic, M. (2015). Spanish loanwords in contemporary English (dissertation).
U.S. Census Bureau (2019). S1601 LANGUAGE SPOKEN AT HOME. Retrieved from [https://data.census.gov/cedsci/table?q=spanish&tid=ACSST1Y2019.S1601].
Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Cmd+Option+I.
When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Cmd+Shift+K to preview the HTML file).
The preview shows you a rendered HTML copy of the contents of the editor. Consequently, unlike Knit, Preview does not run any R code chunks. Instead, the output of the chunk when it was last run in the editor is displayed.
LS0tCnRpdGxlOiAiU3BhbmlzaCBXb3JkcyBVc2VkIEluIEVuZ2xpc2giCnN1YnRpdGxlOiAiQXZlcnkgRmllbGQiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KClRoaXMgaXMgYW4gW1IgTWFya2Rvd25dKGh0dHA6Ly9ybWFya2Rvd24ucnN0dWRpby5jb20pIE5vdGVib29rLiBXaGVuIHlvdSBleGVjdXRlIGNvZGUgd2l0aGluIHRoZSBub3RlYm9vaywgdGhlIHJlc3VsdHMgYXBwZWFyIGJlbmVhdGggdGhlIGNvZGUuIAoKVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkNtZCtTaGlmdCtFbnRlciouIAoKIyBJbnRyb2R1Y3Rpb24KfCAgRW5nbGlzaCBpcyBhIGR5bmFtaWMgbGFuZ3VhZ2UgdGhhdCBpcyBjb25zdGFudGx5IGJvcnJvd2luZyBuZXcgdm9jYWJ1bGFyeSBhbmQgcGhyYXNlcyBmcm9tIGZvcmVpZ24gc291cmNlcy4gSG93ZXZlciwgU3BhbmlzaCBtYXkgbm90IGJlIHRoZSBmaXJzdCBsYW5ndWFnZSB0aGF0IHBlb3BsZSB0aGluayBvZiBhcyBhIGxhbmd1YWdlIHRoYXQgaGFzIGluZmx1ZW5jZWQgRW5nbGlzaC4gSW4gZGlmZmVyZW50IG1vbWVudHMgaW4gaGlzdG9yeSwgU3BhbmlzaCBhbmQgRW5nbGlzaCBzcGVha2VycyBoYXZlIGludGVyYWN0ZWQgY2xvc2VseSBzbyBpdCBpcyBub3QgYSBzdXJwcmlzZSB0aGF0IHRoZSBsYW5ndWFnZXMgaGF2ZSBleGNoYW5nZWQgZWxlbWVudHMgb2YgdGhlaXIgbGV4aWNvbi4gRW5nbGlzaCBiZWdhbiBpbXBvcnRpbmcgU3BhbmlzaCB3b3JkcyBpbiB0aGUgMTV0aCBDZW50dXJ5IHdoZW4gRW5nbGFuZCBhbmQgU3BhaW4gd2VyZSBlbmdhZ2luZyBpbiBvdmVyc2VhcyB0cmFkZSBhbmQgY29udGludWVzIHRvIGJvcnJvdyB3b3JkcyBmcm9tIFNwYW5pc2ggaW4gdGhlIG1vZGVybiBkYXkuIAoKIyMjIFNvbWUgU3BhbmlzaCB3b3JkcyBib3Jyb3dlZCBieSBFbmdsaXNoIGJldHdlZW4gdGhlIDE1LTE3dGggQ2VudHVyaWVzCnwgLSBnYWxsZW9uIC0+ICpnYWxlw7NuKgp8IC0gY29yayAtPiAqYWxjb3JxdWUqCnwgLSBjYXJnbyAtPiAqY2FyZ28qCgp8ICAgVGhlIG1haW4gcXVlc3Rpb24gSSBhbSB0cnlpbmcgdG8gYW5zd2VyIHdpdGggdGhpcyBwcm9qZWN0IGlzIHdoaWNoIEVuZ2xpc2ggc3BlYWtpbmcgY291bnRyeSB1c2VzIHRoZSBtb3N0IFNwYW5pc2ggd29yZHMgaW4gdGhlaXIgbGV4aWNvbi4gVGhpcyBpcyBzb21ldGhpbmcgSSBhbSBpbnRlcmVzdGVkIGluIGJlY2F1c2UgSSB3YW50IHRvIHNlZSBob3cgdGhlIGhpc3RvcnkgYW5kIGdlb2dyYXBoeSBvZiBkaWZmZXJlbnQgcGFydHMgb2YgdGhlIHdvcmxkIGFmZmVjdCB0aGUgbGFuZ3VhZ2UgdGhhdCBwZW9wbGUgdXNlLiBTcGVjaWZpY2FsbHkgd2l0aCB0aGlzIHByb2plY3QsIEkgd2FudCB0byBzZWUgaG93IHRoZXNlIGZhY3RvcnMgYWZmZWN0IHRoZSBFbmdsaXNoIGxhbmd1YWdlLiBJIGhvcGUgdGhhdCBvdGhlciBwZW9wbGUgaW50ZXJlc3RlZCBpbiBsYW5ndWFnZSBjaGFuZ2UgYW5kIHRoZSBlZmZlY3RzIG9mIGN1bHR1cmFsIGNvbnRhY3Qgd2lsbCBsZWFybiBzb21ldGhpbmcgZnJvbSB0aGlzIG5vdGVib29rLgoKIyBEYXRhc2V0ICYgTWV0aG9kCnwgICBGb3IgdGhpcyBwcm9qZWN0LCBJIGNob3NlIHRvIHVzZSB0aGUgQ29ycHVzIG9mIEdsb2JhbCBXZWItQmFzZWQgRW5nbGlzaCAoR2xvV2JFKSBiZWNhdXNlIGl0IHByb3ZpZGVzIGRhdGEgZnJvbSBkaWZmZXJlbnQgdmFyaWV0aWVzIG9mIEVuZ2xpc2ggb3JnYW5pemVkIGJ5IGNvdW50cnkuIFRoaXMgbWFkZSBpdCBlYXN5IHRvIGNvbXBhcmUgdGhlIGFtb3VudCBvZiBTcGFuaXNoIHZvY2FidWxhcnkgZWFjaCBkaWFsZWN0IG9mIEVuZ2xpc2ggdXNlcy4gU2luY2UgdGhpcyBjb3JwdXMgaXMgd2ViLWJhc2VkLCBpdCBjb250YWlucyBtb3JlIGNvbnRlbXBvcmFyeSBzb3VyY2VzIG9mIEVuZ2xpc2guIEkgdGhpbmsgdGhpcyBpcyBpbXBvcnRhbnQgYmVjYXVzZSBsYW5ndWFnZSBpcyBjb25zdGFudGx5IGNoYW5naW5nIHNvIGl0IGlzIGVzc2VudGlhbCBmb3IgdGhpcyBwcm9qZWN0IHRoYXQgZGF0YSBiZSBhcyBjdXJyZW50IGFzIHBvc3NpYmxlLgp8ICAgVG8gYW5hbHl6ZSB0aGUgZGF0YSwgSSB3cm90ZSBhIHB5dGhvbiBwcm9ncmFtIHRoYXQgcmVhZCB0aHJvdWdoIGRhdGEgZnJvbSB0aGUgVW5pdGVkIFN0YXRlcywgR3JlYXQgQnJpdGFpbiwgQ2FuYWRhIGFuZCBBdXN0cmFsaWEuIEFzIGl0IHJlYWQgdGhyb3VnaCB0aGUgZGF0YSwgdGhlIHByb2dyYW0gY291bnRlZCB0aGUgd29yZHMgb2YgU3BhbmlzaCBvcmlnaW4gYW5kIGRpdmlkZWQgdGhhdCBudW1iZXIgYnkgdGhlIHRvdGFsIHdvcmQgY291bnQgZm9yIGVhY2ggY291bnRyeSdzIGRhdGEgc2V0IHRvIGdldCBhIHBlcmNlbnRhZ2UuIFRoZSBwcm9ncmFtIGtuZXcgd2hpY2ggd29yZHMgd2VyZSBvZiBTcGFuaXNoIG9yaWdpbiBmcm9tIGEgbGlzdCBvZiBTcGFuaXNoIHRvIEVuZ2xpc2ggYm9ycm93aW5ncyBJIGNvbXBpbGVkIGZyb20gc2V2ZXJhbCBzb3VyY2VzLgoKIyBXaG8gVXNlcyBUaGUgTW9zdCBTcGFuaXNoIFdvcmRzCmBgYHtyfQpkZiA8LSByZWFkLmNzdigiZnBfZGF0YS5jc3YiKQoKZ2dwbG90KGRmLCBhZXMoeCA9IGNvdW50cnksIHkgPSBwZXJjZW50YWdlLCBmaWxsID0gY291bnRyeSkpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKwogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGU9IkJsdWVzIikgKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbj0ibm9uZSIpICsKICBnZ3RpdGxlKCJQZXJjZW50YWdlIG9mIFNwYW5pc2ggV29yZHMgVXNlZCBJbiBFbmdsaXNoIGJ5IFZhcmlldHkiKSArCiAgeGxhYigiRW5nbGlzaCBWYXJpZXR5IikgKyB5bGFiKCJQZXJjZW50YWdlIikKYGBgCnwgIEluIHRoaXMgZmlndXJlLCB5b3UgY2FuIHNlZSB0aGF0IEFtZXJpY2FuIEVuZ2xpc2ggY29udGFpbnMgdGhlIGhpZ2hlc3QgcGVyY2VudGFnZSBvZiBTcGFuaXNoIHZvY2FidWxhcnkuIFRoaXMgY291bGQgYmUgYXR0cmlidXRlZCB0byBhIGZldyBmYWN0b3JzLiAKfCAgIC0gTWFueSBuYW1lcyBmb3IgcGxhbnRzIGFuZCBhbmltYWxzIG5hdGl2ZSB0byB0aGUgQW1lcmljYXMgY2FtZSB0byBFbmdsaXNoIGVpdGhlciBkaXJlY3RseSBmcm9tIFNwYW5pc2ggKCoqZGlyZWN0IGJvcnJvd2luZyoqKSBvciBmcm9tIGluZGlnZW5vdXMgbGFuZ3VhZ2VzIHdpdGggU3BhbmlzaCBzZXJ2aW5nIGFzIHRoZSBtaWRkbGUtbWFuICgqKmluZGlyZWN0IGJvcnJvd2luZyoqKS4gCgp8ICAgICAgIC0gYXZvY2FkbyAtPiAqYWd1YWNhdGUqIC0+ICphaHVhY2F0bCogKG5haHVhdGwpCnwgICAgICAgLSBhcm1hZGlsbG8gLT4gKmFybWFkaWxsbyoKfCAgICAgICAtIGJhcmJlY3VlIC0+ICpiYXJiYWNvYSogLT4gKmJhcmJhY29hKiAodGFpbm8pCgp8ICAgLSBNb3N0IG9mIHRoZSBXZXN0ZXJuIFVuaXRlZCBTdGF0ZXMgd2FzIGNvbG9uaXplZCBieSBTcGFpbiBhbmQgbGF0ZXIgcGFydCBvZiBNZXhpY28sIHRoaXMgbGVmdCBiZWhpbmQgYSBzdHJhdGEgb2Ygd29yZHMgdGhhdCByZWZsZWN0IHRoZSBjdWx0dXJlIGFuZCBlbnZpcm9ubWVudCBvZiB0aGUgdGltZS4gCgp8ICAgICAgIC0gbGFzc28gLT4gKmxhem8qCnwgICAgICAgLSBidWNrYXJvbyAtPiAqdmFxdWVybyoKfCAgICAgICAtIGNhbnlvbiAtPiAqY2HDscOzbioKCnwgICAtIFRoaXMgaXMgYWxzbyB3aHkgdGhlIG5hbWVzIG9mIG1hbnkgcGxhY2VzIGluIHRoZSBVbml0ZWQgU3RhdGVzIGNvbWUgZnJvbSBTcGFuaXNoLgoKfCAgICAgICAtIENvbG9yYWRvOiBSdWRkeQp8ICAgICAgIC0gRmxvcmlkYTogRmxvd2VyeQp8ICAgICAgIC0gTmV2YWRhOiBTbm93eQoKfCAgIC0gVGhlIFVuaXRlZCBTdGF0ZXMgaXMgbXVjaCBjbG9zZXIgdG8gTGF0aW4gQW1lcmljYSB0aGFuIG90aGVyIEVuZ2xpc2ggc3BlYWtpbmcgY291bnRyaWVzIGFyZSB0byBhbnkgU3BhbmlzaCBzcGVha2luZyBwYXJ0IG9mIHRoZSB3b3JsZC4gVGhpcyBoYXMgcmVzdWx0ZWQgaW4gY3VsdHVyYWwgZXhjaGFuZ2UgYmV0d2VlbiB0aGUgdHdvIHJlZ2lvbnMuCiAgCnwgICAtIFNldmVyYWwgcGFydHMgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgaGF2ZSBhIHNpZ25pZmljYW50bHkgaGlnaCBTcGFuaXNoIHNwZWFraW5nIHBvcHVsYXRpb24uCgojIFNwYW5pc2ggU3BlYWtlcnMgaW4gdGhlIFVuaXRlZCBTdGF0ZXMKYGBge3J9CmxpYnJhcnkoInVzbWFwIikKbGlicmFyeSgiZ2dwbG90MiIpCgpwb3AgPC0gcmVhZC5jc3YoInNwYW5pc2hfcG9wLmNzdiIpCgpwbG90X3VzbWFwKHJlZ2lvbnMgPSAic3RhdGVzIiwgZGF0YSA9IHBvcCwgdmFsdWVzID0gIlMxNjAxX0MwMl8wMDRFIikgKwogICAgc2NhbGVfZmlsbF9jb250aW51b3VzKGxvdyA9ICJ3aGl0ZSIsIGhpZ2ggPSAiYmx1ZSIsIG5hbWUgPSAiUGVyY2VudGFnZSIsIGxhYmVsID0gc2NhbGVzOjpjb21tYSkgKwogICAgbGFicyh0aXRsZSA9ICJQZXJjZW50YWdlIG9mIFBvcHVsYXRpb24gdGhhdCBTcGVha3MgU3BhbmlzaCBieSBTdGF0ZSIpICsKICAgIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJyaWdodCIpCmBgYAp8ICAgQWNjb3JkaW5nIHRvIHRoZSBVUyBjZW5zdXMsIG92ZXIgNDEgbWlsbGlvbiBwZW9wbGUgaW4gdGhlIFVuaXRlZCBTdGF0ZXMgc3BlYWsgU3BhbmlzaCBhdCBob21lLiBXaGljaCBpcyBhcm91bmQgMTMuNSUgb2YgdGhlIHBvcHVsYXRpb24uIFRoaXMgbWFwIHNob3dzIHRoYXQgU3BhbmlzaCBzcGVha2VycyBpbiB0aGUgVW5pdGVkIFN0YXRlcyB0ZW5kIHRvIGVpdGhlciBsaXZlIGluIHN0YXRlcyB0aGF0IGhhdmUgbGFyZ2UgY2l0aWVzICh3aGljaCBtYWtlcyBzZW5zZSBzaW5jZSBsYXJnZXIgY2l0aWVzIGhhdmUgYSBtb3JlIGRpdmVyc2UgcG9wdWxhdGlvbikgb3IgaW4gc3RhdGVzIGxpa2UgQ2FsaWZvcm5pYSwgVGV4YXMgYW5kIEZsb3JpZGEgd2hpY2ggYXJlIGluIGNsb3NlIHByb3hpbWl0eSB0byBMYXRpbiBBbWVyaWNhbiBjb3VudHJpZXMuIEp1c3QgbGlrZSBvdGhlciBsYW5ndWFnZXMgdGhhdCBoYXZlIGhhZCBvciBjb250aW51ZSB0byBoYXZlIGEgaGlnaCBwb3B1bGF0aW9uIG9mIHNwZWFrZXJzIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBTcGFuaXNoIGhhcyBtYWRlIGEgc2lnbmlmaWNhbnQgaW1wYWN0IG9uIEFtZXJpY2FuIEVuZ2xpc2guCgoKIyBGdXR1cmUgRGlyZWN0aW9uCgp8ICAgSW4gdGhlIGZ1dHVyZSwgSSB3b3VsZCBsaWtlIHRvIHNlZSBpZiBpdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBjb21wYXJlIEVuZ2xpc2ggZGF0YSBmcm9tIGRpZmZlcmVudCBVUyBzdGF0ZXMgdG8gc2VlIHdoaWNoIHBhcnRzIG9mIHRoZSBjb3VudHJ5IHVzZSB0aGUgbW9zdCBTcGFuaXNoIHdvcmRzIHdoZW4gc3BlYWtpbmcgRW5nbGlzaC4gSG93ZXZlciwgSSBhbSB1bnN1cmUgaWYgYSBkYXRhIHNldCBsaWtlIHRoaXMgY3VycmVudGx5IGV4aXN0cy4gSSB3b3VsZCBhbHNvIGxpa2UgdG8gbG9vayBhdCB0aGUgZGF0YSBmcm9tIG90aGVyIGNvdW50cmllcyB0aGF0IHRoZSBHbG9XYkUgY29ycHVzIHByb3ZpZGVzLiBJIGhhZCB0byBrZWVwIHRoZSBhbW91bnQgb2YgY291bnRyaWVzIEkgbG9va2VkIGF0IHNob3J0IGluIHRoaXMgcHJvamVjdCBiZWNhdXNlIHRoZSBweXRob24gcHJvZ3JhbSB0b29rIGFyb3VuZCBhIGhhbGYgaG91ciB0byBydW4gd2l0aCBqdXN0IGZvdXIgY291bnRyaWVzLiBUaGUgR2xvV2JFIGNvcnB1cyBoYXMgYSBkYXRhIHNldCBvZiBFbmdsaXNoIGZyb20gdGhlIFBoaWxpcHBpbmVzIHdoaWNoIEkgdGhpbmsgd291bGQgYmUgZXNwZWNpYWxseSBpbnRlcmVzdGluZyB0byBsb29rIGF0IGNvbnNpZGVyaW5nIGhvdyBjb21tb25seSBzcG9rZW4gU3BhbmlzaCBvbmNlIHdhcyBpbiB0aGUgUGhpbGlwcGluZXMuIEl0IHdvdWxkIGFsc28gYmUgd29ydGggcmVwbGljYXRpbmcgdGhpcyBleHBlcmltZW50IHdpdGggYm9ycm93aW5ncyBmcm9tIG90aGVyIGxhbmd1YWdlcyBpbiBkaWZmZXJlbnQgdmFyaWV0aWVzIG9mIEVuZ2xpc2guCgojIFdvcmtzIENpdGVkCgpEYXZpZXMsIE1hcmsuIENvcnB1cyBvZiBHbG9iYWwgV2ViLUJhc2VkIEVuZ2xpc2ggKEdsb1diRSksIGRhdGFzZXQsIERhdGUgVW5rbm93bjsgKGh0dHBzOi8vZGlnaXRhbC5saWJyYXJ5LnVudC5lZHUvYXJrOi82NzUzMS9tZXRhZGMxMTgxMjM4LzogYWNjZXNzZWQgRGVjZW1iZXIgMTUsIDIwMjEpLCBVbml2ZXJzaXR5IG9mIE5vcnRoIFRleGFzIExpYnJhcmllcywgVU5UIERpZ2l0YWwgTGlicmFyeSwgaHR0cHM6Ly9kaWdpdGFsLmxpYnJhcnkudW50LmVkdTsgLiAKCkpvcmRhbiwgSi4tRS4gKG4uZC4pLiAqMTExIEVuZ2xpc2ggd29yZHMgdGhhdCBhcmUgYWN0dWFsbHkgU3BhbmlzaC4qIFJldHJpZXZlZCBEZWNlbWJlciAxNSwgMjAyMSwgZnJvbSBodHRwczovL3d3dy5iYWJiZWwuY29tL2VuL21hZ2F6aW5lL2VuZ2xpc2gtd29yZHMtYWN0dWFsbHktc3BhbmlzaCAKClBla25pYywgTS4gKDIwMTUpLiAqU3BhbmlzaCBsb2Fud29yZHMgaW4gY29udGVtcG9yYXJ5IEVuZ2xpc2gqIChkaXNzZXJ0YXRpb24pLiAKClUuUy4gQ2Vuc3VzIEJ1cmVhdSAoMjAxOSkuIFMxNjAxIExBTkdVQUdFIFNQT0tFTiBBVCBIT01FLiBSZXRyaWV2ZWQgZnJvbSBbaHR0cHM6Ly9kYXRhLmNlbnN1cy5nb3YvY2Vkc2NpL3RhYmxlP3E9c3BhbmlzaCZ0aWQ9QUNTU1QxWTIwMTkuUzE2MDFdLgoKQWRkIGEgbmV3IGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqSW5zZXJ0IENodW5rKiBidXR0b24gb24gdGhlIHRvb2xiYXIgb3IgYnkgcHJlc3NpbmcgKkNtZCtPcHRpb24rSSouCgpXaGVuIHlvdSBzYXZlIHRoZSBub3RlYm9vaywgYW4gSFRNTCBmaWxlIGNvbnRhaW5pbmcgdGhlIGNvZGUgYW5kIG91dHB1dCB3aWxsIGJlIHNhdmVkIGFsb25nc2lkZSBpdCAoY2xpY2sgdGhlICpQcmV2aWV3KiBidXR0b24gb3IgcHJlc3MgKkNtZCtTaGlmdCtLKiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLiAKClRoZSBwcmV2aWV3IHNob3dzIHlvdSBhIHJlbmRlcmVkIEhUTUwgY29weSBvZiB0aGUgY29udGVudHMgb2YgdGhlIGVkaXRvci4gQ29uc2VxdWVudGx5LCB1bmxpa2UgKktuaXQqLCAqUHJldmlldyogZG9lcyBub3QgcnVuIGFueSBSIGNvZGUgY2h1bmtzLiBJbnN0ZWFkLCB0aGUgb3V0cHV0IG9mIHRoZSBjaHVuayB3aGVuIGl0IHdhcyBsYXN0IHJ1biBpbiB0aGUgZWRpdG9yIGlzIGRpc3BsYXllZC4KCg==