This is the first problem set for Econ 448. In it, you will answer a
mix of questions that require both conceptual and analysis work.
I prefer that you submit your entire document as one html
document generated from your Markdown Notebook. However, you
may answer the concept and calculation questions separately in the word
processor of your choice (converted to pdf), but please submit your code
and results for any of the data analysis questions as a pdf or html
file. You do not need to submit any of the lab exercises below. This is
just to help you learn the code for the formulas.
## Packages you may need - need to load every session if you are in the cloud
## Trying something new that should play better with R
if (!require("pacman")) install.packages("pacman") #pacman is the package that installs packages nicely
pacman::p_load(HMDHFDplus, tidyverse, ggplot2, dplyr, lattice) #these are the packages you may need
## Load every time, but only once per session
library("ggplot2")
library("dplyr")
library("HMDHFDplus")
Conceptual Questions
Note: These questions are designed to help you think about the issues
raised in this class, rather than to have a “right” or “wrong”
answer.
- It took Finland about 50 years to go through its demographic
transition around the turn of the 20th century. For this question, go to
populationpyramid.net, choose a country in Asia, Africa, or Central or
South America that is currently in the third stage or later of its
demographic transition. Look back in time to find a year in which it was
in the second stage. Then figure out approximately how many years it
took the country to enter the third stage In your answer, tell me: Name
of the country, year it was in the second stage, years to third stage.
Did this country take more or less time than Finland. Try to think of at
least two reasons why that might be the case and write a short
description of your reasoning. Note: If you can’t find when the country
was in its second stage, look for a different country.
The country I chose was India. Their beginning year for stage 2 of
the demographic transition model was approximately the year 1960. With a
gradual decline in birth rate, India eventually entered stage 3 of the
DTM around the year 2000. With around a 40 year transitional period,
India enters their 3rd stage of the DTM in less time than that of
Finland’s. One explanation of a longer transition from stage 2 to stage
3 for Finland could be explained by a financial crisis stemming from
weak bank regulations and other contributing factors that occurred in
the late 1980’s to the early 1990’s. A jump from around 3% unemployment
to a major high of 18% unemployment explains a delayed transition in the
DTM due to income levels being unable to support costs of living. On the
other hand, India’s faster transition from stage 2 to stage 3 can be
explained by the rapid improvements of healthcare, sanitation, and
nutrition in the late 20th century reaching into the early 21st century.
Pair these improvements with a declining birth rate, India
understandably transitioned into stage 3 of the DTM 10 years faster than
Finland.
- The Millennium Development Goals (https://www.who.int/news-room/fact-sheets/detail/millennium-development-goals-(mdgs))
were 8 goals set forth by the United Nations in the late 1990s that were
meant to serve as a framework for reducing extreme poverty along
multiple dimensions by 2015. Consult the file
“africa-millennium-development-goals.xlsx” found in github or at https://data.humdata.org/dataset/africa-millennium-development-goals.
Choose one goal and two countries. State the goal, the countries, the
measures used to assess progress in the goal, and compare and contrast
the progress of the two countries toward achieving that goal.
The goal I chose is Goal #7, Ensure environmental stability, and the
two countries I chose are Sierra Leone and Cape Verde. Sierra Leone’s
measure used to assess progress towards the goal is “Proportion of
population using an improved drinking water source” showcased as a
percentage. Cape Verde’s measure is “Proportion of population using an
improved sanitation facility” also showcased as a percentage. Sierra
Leone began tracking this goal in the year 1995, with a proportion of
23.8% of their population using an improved drinking water source. Their
most recent data recording, the year 2006, shows around a 44% increase,
with the new proportion being 67.2%. Cape Verde began measuring in 2000,
with a percentage of 61%, and a more recent recording of 72.9% in the
year 2007. When comparing the two countries, Sierra Leone has made
larger strides to environmental stability than Cape Verde. Although,
Cape Verde has overall had higher levels of environmental stability
their percentage of improvement has only risen by approximately 11% in 7
years, comparing to Sierra Leone’s massive 44% jump in 11 years. When
reducing these rates to a yearly basis, Cape Verde has approximately a
1.57% annual increase in this goal while Sierra Leone has approximately
4% annual increase.
Calculation Questions (show your work or include your code)
You are a young RA working at the World Bank. It’s 4:55 and your
boss just came into your cubicle to tell you that he has a meeting at 8
am to discuss new anti-poverty strategies in the fictional country of
Portlandia. He hands you the following information and asks for a
poverty profile. Oh, and he has a tennis game in 20 minutes, so could
you include some policy recommendations and have the report on his desk
by the morning?
The paper he hands you says:
Portlandia is a small, poor country where the people are divided into
four equal sized groups consisting of 1000 people each. One group earns
$100 a year, one earns $500 a year, one earns $900 a year, and the final
group earns $1500 a year. The poverty line is set at $1000. We have a
budget of $300,000 for poverty
alleviation.
3.1 Please calculate the Head Count Ratio, and Income Gap Ratio for
this country. (Include code, but this could just be simple
calculations.)
HeadCountRatio <- 3000/4000
IncomeGapRatio <- ((1000-100)/1000)+((1000-500)/1000)+((1000-900)/1000)
HeadCountRatio
[1] 0.75
IncomeGapRatio
[1] 1.5
3.2 The World Bank’s policy is to minimize head count ratio. What will your recommendation be? What will the
new head count ratio be? (Include code)
To minimize head count ratio in the country of Portlandia, we can
implement an assistance program, worth $100,000 of our $300,000 budget,
towards individuals with an annual salary of $900 which decreases our
head count by 1000. With a remainder of $200,000 in our budget, we can
assist 400 more individuals earning $500 a year. The overall change in
head count will be 1400 less individuals. The new head count ratio is:
0.4
NewHCR <- (3000-1400)/4000
NewHCR
[1] 0.4
3.3 Do you think this is the correct approach to poverty alleviation? Why or why not?
I do not believe this is the correct approach to poverty alleviation
because of how different individuals’ financial situations are. Basing
an approach to avoid more poverty purely on statistical numbers has many
flaws. Other external factors such as education level, healthcare
accessibility, level of literacy, and etc. all affect the level of help
a person requires to escape poverty. Some people require more help than
others and by ignoring these signs and basing decisions on numbers can
incorrectly alleviate poverty.
- Calculate Total Fertility Rates The female population (in thousands)
and births by mother’s age group in Brazil in 2005 are in the table
below. (The first chunk is the data, the second is there to display it
nicely.) Use this data to calculate the Total Fertility Rate for Brazil
at this time.
fertility <-as.data.frame(matrix(c(8128,8531,8844, 8118, 7209, 6715, 6409,367.9,530.2,449.6, 264.4, 126.5, 38.4, 6.8), nrow=7, ncol=2, dimnames=list(c("15-19","20-24","25-29","30-34","35-39","40-44","45-49"), c("Population_Thousands","Births_Thousands"))))
fertility
TFR <- ((367.9/8128)+(530.2/8531)+(449.6/8844)+(264.4/8118)+(126.5/7209)+(38.4/6715)+(6.8/6409))*5
TFR
[1] 1.075732
LS0tCnRpdGxlOiAiRWNvbiA0NDgiCmF1dGhvcjogIkpvc2h1YSBLaW0gKEV4dGVuZGVkIGR1ZSBkYXRlKSIKZGF0ZTogImByIGZvcm1hdChTeXMudGltZSgpLCAnJW0vJWQvJVknKWAiCm91dHB1dDoKICBodG1sX25vdGVib29rOiBkZWZhdWx0CiAgcGRmX2RvY3VtZW50OiBkZWZhdWx0CiAgaHRtbF9kb2N1bWVudDoKICAgIGRmX3ByaW50OiBwYWdlZApzdWJ0aXRsZTogIlByb2JsZW0gU2V0IDEgLSBEdWUgMDEvMjEvMjQgQDExOjU5cG0iCi0tLQoKVGhpcyBpcyB0aGUgZmlyc3QgcHJvYmxlbSBzZXQgZm9yIEVjb24gNDQ4LiAgSW4gaXQsIHlvdSB3aWxsIGFuc3dlciBhIG1peCBvZiBxdWVzdGlvbnMgdGhhdCByZXF1aXJlIGJvdGggY29uY2VwdHVhbCBhbmQgYW5hbHlzaXMgd29yay4gICoqSSBwcmVmZXIgdGhhdCB5b3Ugc3VibWl0IHlvdXIgZW50aXJlIGRvY3VtZW50IGFzIG9uZSBodG1sIGRvY3VtZW50IGdlbmVyYXRlZCBmcm9tIHlvdXIgTWFya2Rvd24gTm90ZWJvb2suKiogSG93ZXZlciwgeW91IG1heSBhbnN3ZXIgdGhlIGNvbmNlcHQgYW5kIGNhbGN1bGF0aW9uIHF1ZXN0aW9ucyBzZXBhcmF0ZWx5IGluIHRoZSB3b3JkIHByb2Nlc3NvciBvZiB5b3VyIGNob2ljZSAoY29udmVydGVkIHRvIHBkZiksIGJ1dCBwbGVhc2Ugc3VibWl0IHlvdXIgY29kZSBhbmQgcmVzdWx0cyBmb3IgYW55IG9mIHRoZSBkYXRhIGFuYWx5c2lzIHF1ZXN0aW9ucyBhcyBhIHBkZiBvciBodG1sIGZpbGUuIFlvdSBkbyBub3QgbmVlZCB0byBzdWJtaXQgYW55IG9mIHRoZSBsYWIgZXhlcmNpc2VzIGJlbG93LiAgVGhpcyBpcyBqdXN0IHRvIGhlbHAgeW91IGxlYXJuIHRoZSBjb2RlIGZvciB0aGUgZm9ybXVsYXMuCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CiMjIFBhY2thZ2VzIHlvdSBtYXkgbmVlZCAtIG5lZWQgdG8gbG9hZCBldmVyeSBzZXNzaW9uIGlmIHlvdSBhcmUgaW4gdGhlIGNsb3VkCiMjIFRyeWluZyBzb21ldGhpbmcgbmV3IHRoYXQgc2hvdWxkIHBsYXkgYmV0dGVyIHdpdGggUgppZiAoIXJlcXVpcmUoInBhY21hbiIpKSBpbnN0YWxsLnBhY2thZ2VzKCJwYWNtYW4iKSAjcGFjbWFuIGlzIHRoZSBwYWNrYWdlIHRoYXQgaW5zdGFsbHMgcGFja2FnZXMgbmljZWx5CnBhY21hbjo6cF9sb2FkKEhNREhGRHBsdXMsIHRpZHl2ZXJzZSwgZ2dwbG90MiwgZHBseXIsIGxhdHRpY2UpICN0aGVzZSBhcmUgdGhlIHBhY2thZ2VzIHlvdSBtYXkgbmVlZAoKYGBgCgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQojIyBMb2FkIGV2ZXJ5IHRpbWUsIGJ1dCBvbmx5IG9uY2UgcGVyIHNlc3Npb24gCmxpYnJhcnkoImdncGxvdDIiKQpsaWJyYXJ5KCJkcGx5ciIpCmxpYnJhcnkoIkhNREhGRHBsdXMiKQpgYGAKCgojIyMgQ29uY2VwdHVhbCBRdWVzdGlvbnMKTm90ZTogVGhlc2UgcXVlc3Rpb25zIGFyZSBkZXNpZ25lZCB0byBoZWxwIHlvdSB0aGluayBhYm91dCB0aGUgaXNzdWVzIHJhaXNlZCBpbiB0aGlzIGNsYXNzLCByYXRoZXIgdGhhbiB0byBoYXZlIGEgInJpZ2h0IiBvciAid3JvbmciIGFuc3dlci4KCjEuIEl0IHRvb2sgRmlubGFuZCBhYm91dCA1MCB5ZWFycyB0byBnbyB0aHJvdWdoIGl0cyBkZW1vZ3JhcGhpYyB0cmFuc2l0aW9uIGFyb3VuZCB0aGUgdHVybiBvZiB0aGUgMjB0aCBjZW50dXJ5LiAgRm9yIHRoaXMgcXVlc3Rpb24sIGdvIHRvIHBvcHVsYXRpb25weXJhbWlkLm5ldCwgY2hvb3NlIGEgY291bnRyeSBpbiBBc2lhLCBBZnJpY2EsIG9yIENlbnRyYWwgb3IgU291dGggQW1lcmljYSB0aGF0IGlzIGN1cnJlbnRseSBpbiB0aGUgdGhpcmQgc3RhZ2Ugb3IgbGF0ZXIgb2YgaXRzIGRlbW9ncmFwaGljIHRyYW5zaXRpb24uICBMb29rIGJhY2sgaW4gdGltZSB0byBmaW5kIGEgeWVhciBpbiB3aGljaCBpdCB3YXMgaW4gdGhlIHNlY29uZCBzdGFnZS4gIFRoZW4gZmlndXJlIG91dCBhcHByb3hpbWF0ZWx5IGhvdyBtYW55IHllYXJzIGl0IHRvb2sgdGhlIGNvdW50cnkgdG8gZW50ZXIgdGhlIHRoaXJkIHN0YWdlICBJbiB5b3VyIGFuc3dlciwgdGVsbCBtZTogTmFtZSBvZiB0aGUgY291bnRyeSwgeWVhciBpdCB3YXMgaW4gdGhlIHNlY29uZCBzdGFnZSwgeWVhcnMgdG8gdGhpcmQgc3RhZ2UuICBEaWQgdGhpcyBjb3VudHJ5IHRha2UgbW9yZSBvciBsZXNzIHRpbWUgdGhhbiBGaW5sYW5kLiAgVHJ5IHRvIHRoaW5rIG9mIGF0IGxlYXN0IHR3byByZWFzb25zIHdoeSB0aGF0IG1pZ2h0IGJlIHRoZSBjYXNlIGFuZCB3cml0ZSBhIHNob3J0IGRlc2NyaXB0aW9uIG9mIHlvdXIgcmVhc29uaW5nLiBOb3RlOiBJZiB5b3UgY2FuJ3QgZmluZCB3aGVuIHRoZSBjb3VudHJ5IHdhcyBpbiBpdHMgc2Vjb25kIHN0YWdlLCBsb29rIGZvciBhIGRpZmZlcmVudCBjb3VudHJ5LgoKVGhlIGNvdW50cnkgSSBjaG9zZSB3YXMgSW5kaWEuIFRoZWlyIGJlZ2lubmluZyB5ZWFyIGZvciBzdGFnZSAyIG9mIHRoZSBkZW1vZ3JhcGhpYyB0cmFuc2l0aW9uIG1vZGVsIHdhcyBhcHByb3hpbWF0ZWx5IHRoZSB5ZWFyIDE5NjAuIFdpdGggYSBncmFkdWFsIGRlY2xpbmUgaW4gYmlydGggcmF0ZSwgSW5kaWEgZXZlbnR1YWxseSBlbnRlcmVkIHN0YWdlIDMgb2YgdGhlIERUTSBhcm91bmQgdGhlIHllYXIgMjAwMC4gV2l0aCBhcm91bmQgYSA0MCB5ZWFyIHRyYW5zaXRpb25hbCBwZXJpb2QsIEluZGlhIGVudGVycyB0aGVpciAzcmQgc3RhZ2Ugb2YgdGhlIERUTSBpbiBsZXNzIHRpbWUgdGhhbiB0aGF0IG9mIEZpbmxhbmQncy4gT25lIGV4cGxhbmF0aW9uIG9mIGEgbG9uZ2VyIHRyYW5zaXRpb24gZnJvbSBzdGFnZSAyIHRvIHN0YWdlIDMgZm9yIEZpbmxhbmQgY291bGQgYmUgZXhwbGFpbmVkIGJ5IGEgZmluYW5jaWFsIGNyaXNpcyBzdGVtbWluZyBmcm9tIHdlYWsgYmFuayByZWd1bGF0aW9ucyBhbmQgb3RoZXIgY29udHJpYnV0aW5nIGZhY3RvcnMgdGhhdCBvY2N1cnJlZCBpbiB0aGUgbGF0ZSAxOTgwJ3MgdG8gdGhlIGVhcmx5IDE5OTAncy4gQSBqdW1wIGZyb20gYXJvdW5kIDMlIHVuZW1wbG95bWVudCB0byBhIG1ham9yIGhpZ2ggb2YgMTglIHVuZW1wbG95bWVudCBleHBsYWlucyBhIGRlbGF5ZWQgdHJhbnNpdGlvbiBpbiB0aGUgRFRNIGR1ZSB0byBpbmNvbWUgbGV2ZWxzIGJlaW5nIHVuYWJsZSB0byBzdXBwb3J0IGNvc3RzIG9mIGxpdmluZy4gT24gdGhlIG90aGVyIGhhbmQsIEluZGlhJ3MgZmFzdGVyIHRyYW5zaXRpb24gZnJvbSBzdGFnZSAyIHRvIHN0YWdlIDMgY2FuIGJlIGV4cGxhaW5lZCBieSB0aGUgcmFwaWQgaW1wcm92ZW1lbnRzIG9mIGhlYWx0aGNhcmUsIHNhbml0YXRpb24sIGFuZCBudXRyaXRpb24gaW4gdGhlIGxhdGUgMjB0aCBjZW50dXJ5IHJlYWNoaW5nIGludG8gdGhlIGVhcmx5IDIxc3QgY2VudHVyeS4gUGFpciB0aGVzZSBpbXByb3ZlbWVudHMgd2l0aCBhIGRlY2xpbmluZyBiaXJ0aCByYXRlLCBJbmRpYSB1bmRlcnN0YW5kYWJseSB0cmFuc2l0aW9uZWQgaW50byBzdGFnZSAzIG9mIHRoZSBEVE0gMTAgeWVhcnMgZmFzdGVyIHRoYW4gRmlubGFuZC4KCjIuIFRoZSBNaWxsZW5uaXVtIERldmVsb3BtZW50IEdvYWxzIChodHRwczovL3d3dy53aG8uaW50L25ld3Mtcm9vbS9mYWN0LXNoZWV0cy9kZXRhaWwvbWlsbGVubml1bS1kZXZlbG9wbWVudC1nb2Fscy0obWRncykpIHdlcmUgOCBnb2FscyBzZXQgZm9ydGggYnkgdGhlIFVuaXRlZCBOYXRpb25zIGluIHRoZSBsYXRlIDE5OTBzIHRoYXQgd2VyZSBtZWFudCB0byBzZXJ2ZSBhcyBhIGZyYW1ld29yayBmb3IgcmVkdWNpbmcgZXh0cmVtZSBwb3ZlcnR5IGFsb25nIG11bHRpcGxlIGRpbWVuc2lvbnMgYnkgMjAxNS4gQ29uc3VsdCB0aGUgZmlsZSAiYWZyaWNhLW1pbGxlbm5pdW0tZGV2ZWxvcG1lbnQtZ29hbHMueGxzeCIgZm91bmQgaW4gZ2l0aHViIG9yIGF0IGh0dHBzOi8vZGF0YS5odW1kYXRhLm9yZy9kYXRhc2V0L2FmcmljYS1taWxsZW5uaXVtLWRldmVsb3BtZW50LWdvYWxzLiBDaG9vc2Ugb25lIGdvYWwgYW5kIHR3byBjb3VudHJpZXMuIFN0YXRlIHRoZSBnb2FsLCB0aGUgY291bnRyaWVzLCB0aGUgbWVhc3VyZXMgdXNlZCB0byBhc3Nlc3MgcHJvZ3Jlc3MgaW4gdGhlIGdvYWwsIGFuZCBjb21wYXJlIGFuZCBjb250cmFzdCB0aGUgcHJvZ3Jlc3Mgb2YgdGhlIHR3byBjb3VudHJpZXMgdG93YXJkIGFjaGlldmluZyB0aGF0IGdvYWwuIAoKVGhlIGdvYWwgSSBjaG9zZSBpcyBHb2FsICM3LCBFbnN1cmUgZW52aXJvbm1lbnRhbCBzdGFiaWxpdHksIGFuZCB0aGUgdHdvIGNvdW50cmllcyBJIGNob3NlIGFyZSBTaWVycmEgTGVvbmUgYW5kIENhcGUgVmVyZGUuIFNpZXJyYSBMZW9uZSdzIG1lYXN1cmUgdXNlZCB0byBhc3Nlc3MgcHJvZ3Jlc3MgdG93YXJkcyB0aGUgZ29hbCBpcyAiUHJvcG9ydGlvbiBvZiBwb3B1bGF0aW9uIHVzaW5nIGFuIGltcHJvdmVkIGRyaW5raW5nIHdhdGVyIHNvdXJjZSIgc2hvd2Nhc2VkIGFzIGEgcGVyY2VudGFnZS4gQ2FwZSBWZXJkZSdzIG1lYXN1cmUgaXMgIlByb3BvcnRpb24gb2YgcG9wdWxhdGlvbiB1c2luZyBhbiBpbXByb3ZlZCBzYW5pdGF0aW9uIGZhY2lsaXR5IiBhbHNvIHNob3djYXNlZCBhcyBhIHBlcmNlbnRhZ2UuIFNpZXJyYSBMZW9uZSBiZWdhbiB0cmFja2luZyB0aGlzIGdvYWwgaW4gdGhlIHllYXIgMTk5NSwgd2l0aCBhIHByb3BvcnRpb24gb2YgMjMuOCUgb2YgdGhlaXIgcG9wdWxhdGlvbiB1c2luZyBhbiBpbXByb3ZlZCBkcmlua2luZyB3YXRlciBzb3VyY2UuIFRoZWlyIG1vc3QgcmVjZW50IGRhdGEgcmVjb3JkaW5nLCB0aGUgeWVhciAyMDA2LCBzaG93cyBhcm91bmQgYSA0NCUgaW5jcmVhc2UsIHdpdGggdGhlIG5ldyBwcm9wb3J0aW9uIGJlaW5nIDY3LjIlLiBDYXBlIFZlcmRlIGJlZ2FuIG1lYXN1cmluZyBpbiAyMDAwLCB3aXRoIGEgcGVyY2VudGFnZSBvZiA2MSUsIGFuZCBhIG1vcmUgcmVjZW50IHJlY29yZGluZyBvZiA3Mi45JSBpbiB0aGUgeWVhciAyMDA3LiBXaGVuIGNvbXBhcmluZyB0aGUgdHdvIGNvdW50cmllcywgU2llcnJhIExlb25lIGhhcyBtYWRlIGxhcmdlciBzdHJpZGVzIHRvIGVudmlyb25tZW50YWwgc3RhYmlsaXR5IHRoYW4gQ2FwZSBWZXJkZS4gQWx0aG91Z2gsIENhcGUgVmVyZGUgaGFzIG92ZXJhbGwgaGFkIGhpZ2hlciBsZXZlbHMgb2YgZW52aXJvbm1lbnRhbCBzdGFiaWxpdHkgdGhlaXIgcGVyY2VudGFnZSBvZiBpbXByb3ZlbWVudCBoYXMgb25seSByaXNlbiBieSBhcHByb3hpbWF0ZWx5IDExJSBpbiA3IHllYXJzLCBjb21wYXJpbmcgdG8gU2llcnJhIExlb25lJ3MgbWFzc2l2ZSA0NCUganVtcCBpbiAxMSB5ZWFycy4gV2hlbiByZWR1Y2luZyB0aGVzZSByYXRlcyB0byBhIHllYXJseSBiYXNpcywgQ2FwZSBWZXJkZSBoYXMgYXBwcm94aW1hdGVseSBhIDEuNTclIGFubnVhbCBpbmNyZWFzZSBpbiB0aGlzIGdvYWwgd2hpbGUgU2llcnJhIExlb25lIGhhcyBhcHByb3hpbWF0ZWx5IDQlIGFubnVhbCBpbmNyZWFzZS4KCiMjIyBDYWxjdWxhdGlvbiBRdWVzdGlvbnMgKHNob3cgeW91ciB3b3JrIG9yIGluY2x1ZGUgeW91ciBjb2RlKQozLiBZb3UgYXJlIGEgeW91bmcgUkEgd29ya2luZyBhdCB0aGUgV29ybGQgQmFuay4gIEl04oCZcyA0OjU1IGFuZCB5b3VyIGJvc3MganVzdCBjYW1lIGludG8geW91ciBjdWJpY2xlIHRvIHRlbGwgeW91IHRoYXQgaGUgaGFzIGEgbWVldGluZyBhdCA4IGFtIHRvIGRpc2N1c3MgbmV3IGFudGktcG92ZXJ0eSBzdHJhdGVnaWVzIGluIHRoZSBmaWN0aW9uYWwgY291bnRyeSBvZiBQb3J0bGFuZGlhLiAgSGUgaGFuZHMgeW91IHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb24gYW5kIGFza3MgZm9yIGEgcG92ZXJ0eSBwcm9maWxlLiAgT2gsIGFuZCBoZSBoYXMgYSB0ZW5uaXMgZ2FtZSBpbiAyMCBtaW51dGVzLCBzbyBjb3VsZCB5b3UgaW5jbHVkZSBzb21lIHBvbGljeSByZWNvbW1lbmRhdGlvbnMgYW5kIGhhdmUgdGhlIHJlcG9ydCBvbiBoaXMgZGVzayBieSB0aGUgbW9ybmluZz8gIAoKICAgIFRoZSBwYXBlciBoZSBoYW5kcyB5b3Ugc2F5czoKICAgICAgCiAgICAgIFBvcnRsYW5kaWEgaXMgYSBzbWFsbCwgcG9vciBjb3VudHJ5IHdoZXJlIHRoZSBwZW9wbGUgYXJlIGRpdmlkZWQgaW50byBmb3VyIGVxdWFsIHNpemVkIGdyb3VwcyBjb25zaXN0aW5nIG9mIAogICAgICAxMDAwIHBlb3BsZSBlYWNoLiAgT25lIGdyb3VwIGVhcm5zICQxMDAgYSB5ZWFyLCBvbmUgZWFybnMgJDUwMCBhIHllYXIsIG9uZSBlYXJucyAkOTAwIGEgeWVhciwgYW5kIHRoZSBmaW5hbCAKICAgICAgZ3JvdXAgZWFybnMgJDE1MDAgYSB5ZWFyLiAgVGhlIHBvdmVydHkgbGluZSBpcyBzZXQgYXQgJDEwMDAuICBXZSBoYXZlIGEgYnVkZ2V0IG9mICQzMDAsMDAwIGZvciBwb3ZlcnR5ICAgICAgCiAgICAgIGFsbGV2aWF0aW9uLiAKCiAgICAzLjEgUGxlYXNlIGNhbGN1bGF0ZSB0aGUgSGVhZCBDb3VudCBSYXRpbywgYW5kIEluY29tZSBHYXAgUmF0aW8gZm9yIHRoaXMgY291bnRyeS4gKEluY2x1ZGUgY29kZSwgYnV0IHRoaXMgY291bGQKICAgIGp1c3QgYmUgc2ltcGxlIGNhbGN1bGF0aW9ucy4pCiAgCmBgYHtyfQpIZWFkQ291bnRSYXRpbyA8LSAzMDAwLzQwMDAKSW5jb21lR2FwUmF0aW8gPC0gKCgxMDAwLTEwMCkvMTAwMCkrKCgxMDAwLTUwMCkvMTAwMCkrKCgxMDAwLTkwMCkvMTAwMCkKCkhlYWRDb3VudFJhdGlvCkluY29tZUdhcFJhdGlvCgoKYGBgCiAgCgogICAgMy4yCVRoZSBXb3JsZCBCYW5r4oCZcyBwb2xpY3kgaXMgdG8gbWluaW1pemUgaGVhZCBjb3VudCByYXRpby4gIFdoYXQgd2lsbCB5b3VyIHJlY29tbWVuZGF0aW9uIGJlPyAgV2hhdCB3aWxsIHRoZSAKICAgIG5ldyBoZWFkIGNvdW50IHJhdGlvIGJlPyAoSW5jbHVkZSBjb2RlKQpUbyBtaW5pbWl6ZSBoZWFkIGNvdW50IHJhdGlvIGluIHRoZSBjb3VudHJ5IG9mIFBvcnRsYW5kaWEsIHdlIGNhbiBpbXBsZW1lbnQgYW4gYXNzaXN0YW5jZSBwcm9ncmFtLCB3b3J0aCAkMTAwLDAwMCBvZiBvdXIgJDMwMCwwMDAgYnVkZ2V0LCB0b3dhcmRzIGluZGl2aWR1YWxzIHdpdGggYW4gYW5udWFsIHNhbGFyeSBvZiAkOTAwIHdoaWNoIGRlY3JlYXNlcyBvdXIgaGVhZCBjb3VudCBieSAxMDAwLiBXaXRoIGEgcmVtYWluZGVyIG9mICQyMDAsMDAwIGluIG91ciBidWRnZXQsIHdlIGNhbiBhc3Npc3QgNDAwIG1vcmUgaW5kaXZpZHVhbHMgZWFybmluZyAkNTAwIGEgeWVhci4gVGhlIG92ZXJhbGwgY2hhbmdlIGluIGhlYWQgY291bnQgd2lsbCBiZSAxNDAwIGxlc3MgaW5kaXZpZHVhbHMuIFRoZSBuZXcgaGVhZCBjb3VudCByYXRpbyBpczogMC40CgpgYGB7cn0KTmV3SENSIDwtICgzMDAwLTE0MDApLzQwMDAKTmV3SENSCgpgYGAKCgogICAgMy4zIERvIHlvdSB0aGluayB0aGlzIGlzIHRoZSBjb3JyZWN0IGFwcHJvYWNoIHRvIHBvdmVydHkgYWxsZXZpYXRpb24/ICBXaHkgb3Igd2h5IG5vdD8gCkkgZG8gbm90IGJlbGlldmUgdGhpcyBpcyB0aGUgY29ycmVjdCBhcHByb2FjaCB0byBwb3ZlcnR5IGFsbGV2aWF0aW9uIGJlY2F1c2Ugb2YgaG93IGRpZmZlcmVudCBpbmRpdmlkdWFscycgZmluYW5jaWFsIHNpdHVhdGlvbnMgYXJlLiBCYXNpbmcgYW4gYXBwcm9hY2ggdG8gYXZvaWQgbW9yZSBwb3ZlcnR5IHB1cmVseSBvbiBzdGF0aXN0aWNhbCBudW1iZXJzIGhhcyBtYW55IGZsYXdzLiBPdGhlciBleHRlcm5hbCBmYWN0b3JzIHN1Y2ggYXMgZWR1Y2F0aW9uIGxldmVsLCBoZWFsdGhjYXJlIGFjY2Vzc2liaWxpdHksIGxldmVsIG9mIGxpdGVyYWN5LCBhbmQgZXRjLiBhbGwgYWZmZWN0IHRoZSBsZXZlbCBvZiBoZWxwIGEgcGVyc29uIHJlcXVpcmVzIHRvIGVzY2FwZSBwb3ZlcnR5LiBTb21lIHBlb3BsZSByZXF1aXJlIG1vcmUgaGVscCB0aGFuIG90aGVycyBhbmQgYnkgaWdub3JpbmcgdGhlc2Ugc2lnbnMgYW5kIGJhc2luZyBkZWNpc2lvbnMgb24gbnVtYmVycyBjYW4gaW5jb3JyZWN0bHkgYWxsZXZpYXRlIHBvdmVydHkuCgoKNC4gQ2FsY3VsYXRlIFRvdGFsIEZlcnRpbGl0eSBSYXRlcwpUaGUgZmVtYWxlIHBvcHVsYXRpb24gKGluIHRob3VzYW5kcykgYW5kIGJpcnRocyBieSBtb3RoZXIncyBhZ2UgZ3JvdXAgaW4gQnJhemlsIGluIDIwMDUgYXJlIGluIHRoZSB0YWJsZSBiZWxvdy4gKFRoZSBmaXJzdCBjaHVuayBpcyB0aGUgZGF0YSwgdGhlIHNlY29uZCBpcyB0aGVyZSB0byBkaXNwbGF5IGl0IG5pY2VseS4pIFVzZSB0aGlzIGRhdGEgdG8gY2FsY3VsYXRlIHRoZSBUb3RhbCBGZXJ0aWxpdHkgUmF0ZSBmb3IgQnJhemlsIGF0IHRoaXMgdGltZS4KYGBge3J9CmZlcnRpbGl0eSA8LWFzLmRhdGEuZnJhbWUobWF0cml4KGMoODEyOCw4NTMxLDg4NDQsIDgxMTgsIDcyMDksIDY3MTUsIDY0MDksMzY3LjksNTMwLjIsNDQ5LjYsIDI2NC40LCAxMjYuNSwgMzguNCwgNi44KSwgbnJvdz03LCBuY29sPTIsIGRpbW5hbWVzPWxpc3QoYygiMTUtMTkiLCIyMC0yNCIsIjI1LTI5IiwiMzAtMzQiLCIzNS0zOSIsIjQwLTQ0IiwiNDUtNDkiKSwgYygiUG9wdWxhdGlvbl9UaG91c2FuZHMiLCJCaXJ0aHNfVGhvdXNhbmRzIikpKSkKZmVydGlsaXR5CmBgYApgYGB7cn0KVEZSIDwtICgoMzY3LjkvODEyOCkrKDUzMC4yLzg1MzEpKyg0NDkuNi84ODQ0KSsoMjY0LjQvODExOCkrKDEyNi41LzcyMDkpKygzOC40LzY3MTUpKyg2LjgvNjQwOSkpKjUKClRGUgpgYGAKCgoKCg==