Questions
- From which countries have the most refugees originated?
- Which countries have been most supportive in rehoming refugees?
- How much of an effect did the conflict in Syria and Afghanistan have on global refugee numbers?
- Are the countries that have been historically supportive of rehoming refugees been as supportive during this conflict?
Import Libraries
library(tidyverse)
library(scales) # needed for formatting y-axis labels to non-scientific type
library(gridExtra)
Import Dataset
On a first look at the dataset, the first two rows of the dataset do not contain data. The third row contains the actual headings. Let’s strip the first two rows from the dataset and set the first row as the column headings
refugees <- read_csv("./data/refugee_data.csv", col_names = TRUE, skip = 3)
Data Wrangling
Changing column headings to remove special characters and make it lowercase Also change some column names
# Remove special characters from headings, make all column headings lowercase
colnames(refugees) <- tolower(gsub("\\.|\\-|\\(|\\)|\\s|/", "",colnames(refugees)))
# Rename Country column and refugees
refugees <- refugees %>%
rename(countryofresidence = countryterritoryofasylumresidence,
refugeesinc = refugeesinclrefugeelikesituations)
1. From which countries have the most refugees originated?
By far the most refugees have originated from Afghanistan.
# Select all rows that contain the total population of refugees from a country for each year
# Roll up dataset to overall refugees per country
mostref <- refugees %>%
select(origin, totalpopulation) %>%
group_by(origin) %>%
summarize(
refugees_per_country = sum(totalpopulation,na.rm=TRUE)
) %>%
# na.rm = TRUE so that SUM will treat NA as 0 and math can be done
arrange(desc(refugees_per_country)) %>% # rearrange based on count
filter(
# Filter to the top 95% of countries
refugees_per_country > quantile(refugees_per_country, 0.95),
# Filter out all unknown origin from dataset since it's not useful data
origin !="Various/Unknown"
)
# Change origin into a factor so ggplot will honor the sort order
mostref$origin <- factor(mostref$origin, levels=mostref$origin)
# A simple bar plot where X is the country of origin and Y is the number of refugees that originated from that country
refugees_per_country_plot <- ggplot(
mostref,
aes(x=origin, y=refugees_per_country/1000000,fill=refugees_per_country)
) +
geom_col() +
# Get rid of scientific notation
scale_y_continuous(labels = comma) +
labs(
title="Top 5% Countries From Which Refugees Have Originated",
x="Country",
y="Number of Refugees (in millions)") +
theme_minimal() +
theme(
axis.text.x=element_text(angle=0),
axis.text.y=element_text(angle=0),
legend.position = "null"
) +
coord_flip()
print(refugees_per_country_plot)

2. Which countries have been most supportive in rehoming refugees?
# Select all rows that contain the total population of refugees for each year
# Roll up dataset to overall refugees per country
refugee_support <- refugees %>%
select(countryofresidence, totalpopulation) %>%
group_by(countryofresidence) %>%
summarize(
refugees_per_country = sum(totalpopulation,na.rm=TRUE)
) %>%
# na.rm = TRUE so that SUM will treat NA as 0 and math can be done
arrange(desc(refugees_per_country)) %>% # rearrange based on count
filter(
# Filter to the top 95% largest refugee populations of countries
refugees_per_country > quantile(refugees_per_country, 0.95)
)
# Change origin into a factor so ggplot will honor the sort order
refugee_support$countryofresidence <- factor(refugee_support$countryofresidence, levels=refugee_support$countryofresidence)
# A simple bar plot where X is the country of origin and Y is the number of refugees that originated from that country
refugee_residence_plot <- ggplot(
refugee_support,
aes(x=countryofresidence, y=refugees_per_country/1000000,fill=refugees_per_country)
) +
geom_col() +
# Get rid of scientific notation
scale_y_continuous(labels = comma) +
labs(
title="Top 5% Largest Refugee Populations",
x="Country",
y="Number of Refugees (in millions)") +
theme_minimal() +
theme(
axis.text.x=element_text(angle=0),
axis.text.y=element_text(angle=0),
legend.position = "null"
) +
coord_flip()
print(refugee_residence_plot)

grid.arrange(refugees_per_country_plot,refugee_residence_plot)

3a. How much of an effect did the conflict in Syria and Afghanistan have on global refugee numbers?
# Let's find all the refugees total for the years of the conflict(s)
# Syria (2011-present)
# Afghanistan (1989-present)
syrianconflict <- refugees %>%
select(year,origin,totalpopulation) %>%
group_by(origin, year) %>%
summarize(
refugees_per_country = sum(totalpopulation,na.rm=TRUE)
) %>%
filter(year > 2010) %>%
arrange(year)
# Break down by refugees originating in Syria and Afghanistan, compared to the rest of the world
3b. Are the countries that have been historically supportive of rehoming refugees been as supportive during this conflict?
Test plot: Total refugees over time, by country
Selecting every country results in R freaking out trying to plot the whole thing so let’s try just two countries
totalref <- refugees %>%
select(countryofresidence, year, totalpopulation) %>%
filter(countryofresidence == "United States of America" | countryofresidence == "France")
total_ref_over_time_plot <- ggplot(totalref, aes(x=year, y=totalpopulation, color =countryofresidence)) +
geom_line()
print(total_ref_over_time_plot)

LS0tDQp0aXRsZTogIlJlZnVnZWUgRGF0YSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMjIFF1ZXN0aW9ucw0KDQoxLiBGcm9tIHdoaWNoIGNvdW50cmllcyBoYXZlIHRoZSBtb3N0IHJlZnVnZWVzIG9yaWdpbmF0ZWQ/DQoyLiBXaGljaCBjb3VudHJpZXMgaGF2ZSBiZWVuIG1vc3Qgc3VwcG9ydGl2ZSBpbiByZWhvbWluZyByZWZ1Z2Vlcz8NCjMuIEhvdyBtdWNoIG9mIGFuIGVmZmVjdCBkaWQgdGhlIGNvbmZsaWN0IGluIFN5cmlhIGFuZCBBZmdoYW5pc3RhbiBoYXZlIG9uIGdsb2JhbCByZWZ1Z2VlIG51bWJlcnM/DQo0LiBBcmUgdGhlIGNvdW50cmllcyB0aGF0IGhhdmUgYmVlbiBoaXN0b3JpY2FsbHkgc3VwcG9ydGl2ZSBvZiByZWhvbWluZyByZWZ1Z2VlcyBiZWVuIGFzIHN1cHBvcnRpdmUgZHVyaW5nIHRoaXMgY29uZmxpY3Q/DQoNCiMgSW1wb3J0IExpYnJhcmllcw0KYGBge3IgSW1wb3J0IExpYnJhcmllcywgcmVzdWx0cz0naGlkZSd9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoc2NhbGVzKSAgICMgbmVlZGVkIGZvciBmb3JtYXR0aW5nIHktYXhpcyBsYWJlbHMgdG8gbm9uLXNjaWVudGlmaWMgdHlwZQ0KbGlicmFyeShncmlkRXh0cmEpDQpgYGANCg0KIyBJbXBvcnQgRGF0YXNldA0KDQo+IE9uIGEgZmlyc3QgbG9vayBhdCB0aGUgZGF0YXNldCwgdGhlIGZpcnN0IHR3byByb3dzIG9mIHRoZSBkYXRhc2V0IGRvIG5vdCBjb250YWluIGRhdGEuIFRoZSB0aGlyZCByb3cgY29udGFpbnMgdGhlIGFjdHVhbCBoZWFkaW5ncy4gTGV0J3Mgc3RyaXAgdGhlIGZpcnN0IHR3byByb3dzIGZyb20gdGhlIGRhdGFzZXQgYW5kIHNldCB0aGUgZmlyc3Qgcm93IGFzIHRoZSBjb2x1bW4gaGVhZGluZ3MNCg0KYGBge3IgSW1wb3J0IENTViwgcmVzdWx0cz0naGlkZSd9DQpyZWZ1Z2VlcyA8LSByZWFkX2NzdigiLi9kYXRhL3JlZnVnZWVfZGF0YS5jc3YiLCBjb2xfbmFtZXMgPSBUUlVFLCBza2lwID0gMykNCmBgYA0KDQojIERhdGEgV3JhbmdsaW5nDQoNCj4gQ2hhbmdpbmcgY29sdW1uIGhlYWRpbmdzIHRvIHJlbW92ZSBzcGVjaWFsIGNoYXJhY3RlcnMgYW5kIG1ha2UgaXQgbG93ZXJjYXNlDQo+IEFsc28gY2hhbmdlIHNvbWUgY29sdW1uIG5hbWVzDQoNCmBgYHtyIERhdGEgd3JhbmdsaW5nLCByZXN1bHRzPSdoaWRlJ30NCiMgUmVtb3ZlIHNwZWNpYWwgY2hhcmFjdGVycyBmcm9tIGhlYWRpbmdzLCBtYWtlIGFsbCBjb2x1bW4gaGVhZGluZ3MgbG93ZXJjYXNlDQpjb2xuYW1lcyhyZWZ1Z2VlcykgPC0gdG9sb3dlcihnc3ViKCJcXC58XFwtfFxcKHxcXCl8XFxzfC8iLCAiIixjb2xuYW1lcyhyZWZ1Z2VlcykpKQ0KDQojIFJlbmFtZSBDb3VudHJ5IGNvbHVtbiBhbmQgcmVmdWdlZXMNCnJlZnVnZWVzIDwtIHJlZnVnZWVzICU+JQ0KICAgIHJlbmFtZShjb3VudHJ5b2ZyZXNpZGVuY2UgPSBjb3VudHJ5dGVycml0b3J5b2Zhc3lsdW1yZXNpZGVuY2UsDQogICAgICAgICAgIHJlZnVnZWVzaW5jID0gcmVmdWdlZXNpbmNscmVmdWdlZWxpa2VzaXR1YXRpb25zKQ0KYGBgDQoNCiMjIDEuIEZyb20gd2hpY2ggY291bnRyaWVzIGhhdmUgdGhlIG1vc3QgcmVmdWdlZXMgb3JpZ2luYXRlZD8NCg0KPiBCeSBmYXIgdGhlIG1vc3QgcmVmdWdlZXMgaGF2ZSBvcmlnaW5hdGVkIGZyb20gQWZnaGFuaXN0YW4uDQoNCmBgYHtyIENvdW50cmllcyBvZiBncmVhdGVzdCByZWZ1Z2VlIG9yaWdpbn0NCg0KIyBTZWxlY3QgYWxsIHJvd3MgdGhhdCBjb250YWluIHRoZSB0b3RhbCBwb3B1bGF0aW9uIG9mIHJlZnVnZWVzIGZyb20gYSBjb3VudHJ5IGZvciBlYWNoIHllYXINCiMgUm9sbCB1cCBkYXRhc2V0IHRvIG92ZXJhbGwgcmVmdWdlZXMgcGVyIGNvdW50cnkNCm1vc3RyZWYgPC0gcmVmdWdlZXMgJT4lDQogICAgc2VsZWN0KG9yaWdpbiwgdG90YWxwb3B1bGF0aW9uKSAlPiUNCiAgICBncm91cF9ieShvcmlnaW4pICU+JQ0KICAgIHN1bW1hcml6ZSgNCiAgICAgICAgcmVmdWdlZXNfcGVyX2NvdW50cnkgPSBzdW0odG90YWxwb3B1bGF0aW9uLG5hLnJtPVRSVUUpDQogICAgKSAlPiUgDQogICAgIyBuYS5ybSA9IFRSVUUgc28gdGhhdCBTVU0gd2lsbCB0cmVhdCBOQSBhcyAwIGFuZCBtYXRoIGNhbiBiZSBkb25lDQogICAgYXJyYW5nZShkZXNjKHJlZnVnZWVzX3Blcl9jb3VudHJ5KSkgJT4lICMgcmVhcnJhbmdlIGJhc2VkIG9uIGNvdW50DQogICAgZmlsdGVyKA0KICAgICAgICAjIEZpbHRlciB0byB0aGUgdG9wIDk1JSBvZiBjb3VudHJpZXMNCiAgICAgICAgcmVmdWdlZXNfcGVyX2NvdW50cnkgPiBxdWFudGlsZShyZWZ1Z2Vlc19wZXJfY291bnRyeSwgMC45NSksDQogICAgICAgICMgRmlsdGVyIG91dCBhbGwgdW5rbm93biBvcmlnaW4gZnJvbSBkYXRhc2V0IHNpbmNlIGl0J3Mgbm90IHVzZWZ1bCBkYXRhDQogICAgICAgIG9yaWdpbiAhPSJWYXJpb3VzL1Vua25vd24iDQogICAgKQ0KDQojIENoYW5nZSBvcmlnaW4gaW50byBhIGZhY3RvciBzbyBnZ3Bsb3Qgd2lsbCBob25vciB0aGUgc29ydCBvcmRlcg0KbW9zdHJlZiRvcmlnaW4gPC0gZmFjdG9yKG1vc3RyZWYkb3JpZ2luLCBsZXZlbHM9bW9zdHJlZiRvcmlnaW4pDQoNCiMgQSBzaW1wbGUgYmFyIHBsb3Qgd2hlcmUgWCBpcyB0aGUgY291bnRyeSBvZiBvcmlnaW4gYW5kIFkgaXMgdGhlIG51bWJlciBvZiByZWZ1Z2VlcyB0aGF0IG9yaWdpbmF0ZWQgZnJvbSB0aGF0IGNvdW50cnkNCnJlZnVnZWVzX3Blcl9jb3VudHJ5X3Bsb3QgPC0gZ2dwbG90KA0KICAgIG1vc3RyZWYsDQogICAgYWVzKHg9b3JpZ2luLCB5PXJlZnVnZWVzX3Blcl9jb3VudHJ5LzEwMDAwMDAsZmlsbD1yZWZ1Z2Vlc19wZXJfY291bnRyeSkNCiAgICApICsgDQogICAgZ2VvbV9jb2woKSArIA0KICAgICMgR2V0IHJpZCBvZiBzY2llbnRpZmljIG5vdGF0aW9uDQogICAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IGNvbW1hKSArDQogICAgbGFicygNCiAgICAgICAgdGl0bGU9IlRvcCA1JSBDb3VudHJpZXMgRnJvbSBXaGljaCBSZWZ1Z2VlcyBIYXZlIE9yaWdpbmF0ZWQiLCANCiAgICAgICAgeD0iQ291bnRyeSIsIA0KICAgICAgICB5PSJOdW1iZXIgb2YgUmVmdWdlZXMgKGluIG1pbGxpb25zKSIpICsNCiAgICB0aGVtZV9taW5pbWFsKCkgKw0KICAgIHRoZW1lKA0KICAgICAgICBheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9MCksDQogICAgICAgIGF4aXMudGV4dC55PWVsZW1lbnRfdGV4dChhbmdsZT0wKSwNCiAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gIm51bGwiDQogICAgKSArDQogICAgY29vcmRfZmxpcCgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCnByaW50KHJlZnVnZWVzX3Blcl9jb3VudHJ5X3Bsb3QpDQoNCmBgYA0KDQojIzIuIFdoaWNoIGNvdW50cmllcyBoYXZlIGJlZW4gbW9zdCBzdXBwb3J0aXZlIGluIHJlaG9taW5nIHJlZnVnZWVzPw0KDQpgYGB7ciBDb3VudHJpZXMgd2l0aCBsYXJnZXN0IHJlZnVnZWUgcG9wdWxhdGlvbn0NCiMgU2VsZWN0IGFsbCByb3dzIHRoYXQgY29udGFpbiB0aGUgdG90YWwgcG9wdWxhdGlvbiBvZiByZWZ1Z2VlcyBmb3IgZWFjaCB5ZWFyDQojIFJvbGwgdXAgZGF0YXNldCB0byBvdmVyYWxsIHJlZnVnZWVzIHBlciBjb3VudHJ5DQpyZWZ1Z2VlX3N1cHBvcnQgPC0gcmVmdWdlZXMgJT4lDQogICAgc2VsZWN0KGNvdW50cnlvZnJlc2lkZW5jZSwgdG90YWxwb3B1bGF0aW9uKSAlPiUNCiAgICBncm91cF9ieShjb3VudHJ5b2ZyZXNpZGVuY2UpICU+JQ0KICAgIHN1bW1hcml6ZSgNCiAgICAgICAgcmVmdWdlZXNfcGVyX2NvdW50cnkgPSBzdW0odG90YWxwb3B1bGF0aW9uLG5hLnJtPVRSVUUpDQogICAgKSAlPiUgDQogICAgIyBuYS5ybSA9IFRSVUUgc28gdGhhdCBTVU0gd2lsbCB0cmVhdCBOQSBhcyAwIGFuZCBtYXRoIGNhbiBiZSBkb25lDQogICAgYXJyYW5nZShkZXNjKHJlZnVnZWVzX3Blcl9jb3VudHJ5KSkgJT4lICMgcmVhcnJhbmdlIGJhc2VkIG9uIGNvdW50DQogICAgZmlsdGVyKA0KICAgICAgICAjIEZpbHRlciB0byB0aGUgdG9wIDk1JSBsYXJnZXN0IHJlZnVnZWUgcG9wdWxhdGlvbnMgb2YgY291bnRyaWVzIA0KICAgICAgICByZWZ1Z2Vlc19wZXJfY291bnRyeSA+IHF1YW50aWxlKHJlZnVnZWVzX3Blcl9jb3VudHJ5LCAwLjk1KQ0KICAgICkNCg0KIyBDaGFuZ2Ugb3JpZ2luIGludG8gYSBmYWN0b3Igc28gZ2dwbG90IHdpbGwgaG9ub3IgdGhlIHNvcnQgb3JkZXINCnJlZnVnZWVfc3VwcG9ydCRjb3VudHJ5b2ZyZXNpZGVuY2UgPC0gZmFjdG9yKHJlZnVnZWVfc3VwcG9ydCRjb3VudHJ5b2ZyZXNpZGVuY2UsIGxldmVscz1yZWZ1Z2VlX3N1cHBvcnQkY291bnRyeW9mcmVzaWRlbmNlKQ0KDQojIEEgc2ltcGxlIGJhciBwbG90IHdoZXJlIFggaXMgdGhlIGNvdW50cnkgb2Ygb3JpZ2luIGFuZCBZIGlzIHRoZSBudW1iZXIgb2YgcmVmdWdlZXMgdGhhdCBvcmlnaW5hdGVkIGZyb20gdGhhdCBjb3VudHJ5DQpyZWZ1Z2VlX3Jlc2lkZW5jZV9wbG90IDwtIGdncGxvdCgNCiAgICByZWZ1Z2VlX3N1cHBvcnQsDQogICAgYWVzKHg9Y291bnRyeW9mcmVzaWRlbmNlLCB5PXJlZnVnZWVzX3Blcl9jb3VudHJ5LzEwMDAwMDAsZmlsbD1yZWZ1Z2Vlc19wZXJfY291bnRyeSkNCiAgICApICsgDQogICAgZ2VvbV9jb2woKSArIA0KICAgICMgR2V0IHJpZCBvZiBzY2llbnRpZmljIG5vdGF0aW9uDQogICAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IGNvbW1hKSArDQogICAgbGFicygNCiAgICAgICAgdGl0bGU9IlRvcCA1JSBMYXJnZXN0IFJlZnVnZWUgUG9wdWxhdGlvbnMiLCANCiAgICAgICAgeD0iQ291bnRyeSIsIA0KICAgICAgICB5PSJOdW1iZXIgb2YgUmVmdWdlZXMgKGluIG1pbGxpb25zKSIpICsNCiAgICB0aGVtZV9taW5pbWFsKCkgKw0KICAgIHRoZW1lKA0KICAgICAgICBheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9MCksDQogICAgICAgIGF4aXMudGV4dC55PWVsZW1lbnRfdGV4dChhbmdsZT0wKSwNCiAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gIm51bGwiDQogICAgKSArDQogICAgY29vcmRfZmxpcCgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCnByaW50KHJlZnVnZWVfcmVzaWRlbmNlX3Bsb3QpDQpgYGANCg0KYGBge3J9DQpncmlkLmFycmFuZ2UocmVmdWdlZXNfcGVyX2NvdW50cnlfcGxvdCxyZWZ1Z2VlX3Jlc2lkZW5jZV9wbG90KQ0KYGBgDQoNCiMjIDNhLiBIb3cgbXVjaCBvZiBhbiBlZmZlY3QgZGlkIHRoZSBjb25mbGljdCBpbiBTeXJpYSBhbmQgQWZnaGFuaXN0YW4gaGF2ZSBvbiBnbG9iYWwgcmVmdWdlZSBudW1iZXJzPw0KDQpgYGB7cn0NCiMgTGV0J3MgZmluZCBhbGwgdGhlIHJlZnVnZWVzIHRvdGFsIGZvciB0aGUgeWVhcnMgb2YgdGhlIGNvbmZsaWN0KHMpDQojIFN5cmlhICgyMDExLXByZXNlbnQpDQojIEJyZWFrIGRvd24gYnkgcmVmdWdlZXMgb3JpZ2luYXRpbmcgaW4gU3lyaWEgYW5kIEFmZ2hhbmlzdGFuLCBjb21wYXJlZCB0byB0aGUgcmVzdCBvZiB0aGUgd29ybGQNCg0Kc3lyaWFuY29uZmxpY3QgPC0gcmVmdWdlZXMgJT4lDQogICAgc2VsZWN0KHllYXIsb3JpZ2luLHRvdGFscG9wdWxhdGlvbikgJT4lDQogICAgbXV0YXRlKCkgJT4lICNub24tc3lyaWFuIHJlZnVnZWVzDQogICAgZ3JvdXBfYnkob3JpZ2luLCB5ZWFyKSAlPiUNCiAgICBzdW1tYXJpemUoDQogICAgcmVmdWdlZXNfcGVyX2NvdW50cnkgPSBzdW0odG90YWxwb3B1bGF0aW9uLG5hLnJtPVRSVUUpDQogICAgKSAlPiUNCiAgICBmaWx0ZXIoeWVhciA+IDIwMTApICU+JQ0KICAgIGFycmFuZ2UoeWVhcikNCg0KIyBBZmdoYW5pc3RhbiAoMTk4OS1wcmVzZW50KQ0KYGBgDQoNCiMjIDNiLiBBcmUgdGhlIGNvdW50cmllcyB0aGF0IGhhdmUgYmVlbiBoaXN0b3JpY2FsbHkgc3VwcG9ydGl2ZSBvZiByZWhvbWluZyByZWZ1Z2VlcyBiZWVuIGFzIHN1cHBvcnRpdmUgZHVyaW5nIHRoaXMgY29uZmxpY3Q/DQoNCg0KDQojIFRlc3QgcGxvdDogVG90YWwgcmVmdWdlZXMgb3ZlciB0aW1lLCBieSBjb3VudHJ5DQo+IFNlbGVjdGluZyBldmVyeSBjb3VudHJ5IHJlc3VsdHMgaW4gUiBmcmVha2luZyBvdXQgdHJ5aW5nIHRvIHBsb3QgdGhlIHdob2xlIHRoaW5nIHNvIGxldCdzIHRyeSBqdXN0IHR3byBjb3VudHJpZXMNCg0KYGBge3IgVGVzdH0NCg0KdG90YWxyZWYgPC0gcmVmdWdlZXMgJT4lDQogICAgc2VsZWN0KGNvdW50cnlvZnJlc2lkZW5jZSwgeWVhciwgdG90YWxwb3B1bGF0aW9uKSAlPiUNCiAgICBmaWx0ZXIoY291bnRyeW9mcmVzaWRlbmNlID09ICJVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2EiIHwgY291bnRyeW9mcmVzaWRlbmNlID09ICJGcmFuY2UiKQ0KICAgIA0KdG90YWxfcmVmX292ZXJfdGltZV9wbG90IDwtIGdncGxvdCh0b3RhbHJlZiwgYWVzKHg9eWVhciwgeT10b3RhbHBvcHVsYXRpb24sIGNvbG9yID1jb3VudHJ5b2ZyZXNpZGVuY2UpKSArDQogICAgZ2VvbV9saW5lKCkNCg0KcHJpbnQodG90YWxfcmVmX292ZXJfdGltZV9wbG90KQ0KYGBg