I came up with a weekly R challenge, as a way to “force” myself into learning new things. One figure, every week! The catch is that every time I should be trying something new… maybe I’ll use a new type of visualization for first time, or maybe I’ll explore a new dataset. Initially I thought it would be neat if there was some unifying topic, e.g. water, but then I decided to keep it open.

Intro to entry #2 for 2019

I moved to Aalborg (Denmark) on Thursday last week (17 Jan) and on the next morning I had my 1st job interview. Couple of hours later I got a phone call from the boss, who told me that I was very (or maybe it was “most”) qualified for the position, but they needed someone who could communicate in Danish now. I wasn’t really surprised that I didn’t get the job. The project/program is mid-way, and there is no time/resources/patience to wait for me to improve and start speaking Danish. Hiring someone who’s not fluent in the working language would mean also revising all written reports, and covering the oral presentations… for the first few months. The experience was a good practice and maybe one day I’ll work with the people who interviewed me, but the big take-home message is: no Danish, no job. This reaffirmed my plan to spend the next couple of months actively learning Danish and getting back into the national policy and other water/environment documents.

For this week’s challenge, I decided to continue with the water consumption data (last week: Bulgaria & Singapore), but to check out also the most recent DANVA benchmarking report. DANVA stands for Danish Water and Wastewater Association, which is the national industry and stakeholder organisation of Danish water and wastewater utilities. Information about the benchmarking can be found here.

I am keeping the color scheme and the y-axis scale the same as last week, but i am trying symbols graph type with squares. Each square’s side equals to the water consumption for the specific year. The sizes are scaled so the largest data-point is an inch. The largest water consumption in the period was in 2013, so the largest square is in 2013. More about the Danish water consumption \(\rightarrow\) after the graph.

Data

For this week’s graph, I used the official Danish statistic (dk: Danmarks Statistik) on:

  1. Households’ consumption of water (Physical water accounts) for the period 2010-2016, given in 1000 m3. The data can be downloaded from here (dk: Forbrug af vand, Fysiske vandregnskab).
  2. Population figures from the censuses (for the entire country). It can be downoaded from here (dk: Folketal, summariske tal fra folketællinger)
year <- c(2010:2016)
h2o.m3 <- c(236910, 237352, 238396, 245861, 232541, 217466, 210001)*1000  # m3
ppl <- c(5534738,   5560628,    5580516,    5602628,    5627235,    5659715,    5707251)  # n

Graph and code

I couldn’t find calculated consumption in liters per capita per day, so I calculated it from the available data. Of course, this is quite rough estimate, which is nearly the same as the estimate by DANVA (see below).

# convert to liters
h2o.l <- h2o.m3*1000  # l
# how many days are there in the years 2010:2016
days <- c(365, 365, 366, 365, 365, 365, 366)  # 2012 & 2016 are leap years
# calculate in l/cap/day
l.cap.d <- round(h2o.l/ppl/days)
# dataframe
data <- data.frame(year, l.cap.d)

The new for me thing is using symbols plot. I had no idea that you can plot multivariate data with it. It alows for: circles (bubble chart), squares, rectangles, stars, thermometers, and boxplots. I’m quite curious how the thermometers look like, so I may be testing it when the appropriate dataset comes along. I was more interested in getting interesting visual representation, than in the informativeness of the figure.

# setting the graph params for background, colors, fonts etc.
par(mar=c(1, 4, 1, 1), bg="#1A66FF", col.axis="#E6FFFF", col.lab="#E6FFFF", family="mono", fg="#E6FFFF")
cols <- rev(dichromat_pal("LightBluetoDarkBlue.10")(8))
plot(x=data$year, y=data$l.cap.d, type="n", xlim=c(2009, 2017), ylim=c(80, 160),  ylab="l/cap/day", xlab="", bty="n", axes=FALSE)
grid()
symbols(y=data$l.cap.d, x=data$year, squares = data$l.cap.d, bg=cols, fg=cols, add = TRUE,
        xlim=c(2009, 2017), ylim=c(80, 160))
points(x=data$year, y=data$l.cap.d, pch=15, col= "#1A66FF")
axis(side=2, las=2, lwd=0, lwd.ticks = 1)
mtext("@DenitzaV", side=1, line=-1, adj = 1, col="#E6FFFF", cex=0.7)
text(year-0.3, l.cap.d-4, labels = year, col="#1A66FF", cex=0.8)

From the graph is visible that the water consumption in 2016 was the lowest in the period, also after 2013 it has been steadily decreasing. Danmark Statistik does not provide the numbers for pre-2010 water consumption, so unfortunately, that’s all we can say about these 7 data-points.

DANVA benchmarking report (which is based on 52 water supplying companies, representing 3.2 million users) gives that in 2016 the water consumption was 104 l/cap/day1. My calculation gives 101 l/cap/day, which is pretty close to DANVA’s estimate. In the newest DANVA benchmarking report2 it’s written that the water consumption in 2017 was 103 l/cap/day, while in 1987 this number was 172 l/cap/day, which is a 40% decrease for 31 years (p.7, Vand i Tal 2018 by DANVA). See my translation of this part of the report in my next blog-post.

That’s all!


  1. see p.5 of Water in Figures 2017 pdf

  2. Vand i Tal 2018 (so far only in Danish) pdf

LS0tDQp0aXRsZTogIkRvbWVzdGljIFdhdGVyIGNvbnN1bXB0aW9uIGluIERLIg0KYXV0aG9yOiAiRGVuaXR6YSBELiBWb3V0Y2hrb3ZhIg0KZGF0ZTogIjIxIEphbiAyMDE5ICgjMykiDQpvdXRwdXQ6IA0KICBodG1sX25vdGVib29rOiANCiAgICBoaWdobGlnaHQ6IGthdGUNCi0tLQ0KDQpfSSBjYW1lIHVwIHdpdGggYSB3ZWVrbHkgX19SX18gY2hhbGxlbmdlLCBhcyBhIHdheSB0byAiZm9yY2UiIG15c2VsZiBpbnRvIGxlYXJuaW5nIG5ldyB0aGluZ3MuIE9uZSBmaWd1cmUsIGV2ZXJ5IHdlZWshIFRoZSBjYXRjaCBpcyB0aGF0IGV2ZXJ5IHRpbWUgSSBzaG91bGQgYmUgdHJ5aW5nIHNvbWV0aGluZyBuZXcuLi4gbWF5YmUgSSdsbCB1c2UgIGEgbmV3IHR5cGUgb2YgdmlzdWFsaXphdGlvbiBmb3IgZmlyc3QgdGltZSwgb3IgbWF5YmUgSSdsbCBleHBsb3JlIGEgbmV3IGRhdGFzZXQuIEluaXRpYWxseSBJIHRob3VnaHQgaXQgd291bGQgYmUgbmVhdCBpZiB0aGVyZSB3YXMgc29tZSB1bmlmeWluZyB0b3BpYywgZS5nLiB3YXRlciwgYnV0IHRoZW4gSSBkZWNpZGVkIHRvIGtlZXAgaXQgb3Blbi5fDQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGVjaG89RkFMU0V9DQpsaWJyYXJ5KCJkaWNocm9tYXQiKQ0KYGBgDQoNCiMjIyBJbnRybyB0byBlbnRyeSAjMiBmb3IgMjAxOQ0KDQpJIG1vdmVkIHRvIEFhbGJvcmcgKERlbm1hcmspIG9uIFRodXJzZGF5IGxhc3Qgd2VlayAoMTcgSmFuKSBhbmQgb24gdGhlIG5leHQgbW9ybmluZyBJIGhhZCBteSAxXnN0XiBqb2IgaW50ZXJ2aWV3LiBDb3VwbGUgb2YgaG91cnMgbGF0ZXIgSSBnb3QgYSBwaG9uZSBjYWxsIGZyb20gdGhlIGJvc3MsIHdobyB0b2xkIG1lIHRoYXQgSSB3YXMgdmVyeSAob3IgbWF5YmUgaXQgd2FzICJtb3N0IikgcXVhbGlmaWVkIGZvciB0aGUgcG9zaXRpb24sIGJ1dCB0aGV5IG5lZWRlZCBzb21lb25lIHdobyBjb3VsZCBjb21tdW5pY2F0ZSBpbiBEYW5pc2ggbm93LiBJIHdhc24ndCByZWFsbHkgc3VycHJpc2VkIHRoYXQgSSBkaWRuJ3QgZ2V0IHRoZSBqb2IuIFRoZSBwcm9qZWN0L3Byb2dyYW0gaXMgbWlkLXdheSwgYW5kIHRoZXJlIGlzIG5vIHRpbWUvcmVzb3VyY2VzL3BhdGllbmNlIHRvIHdhaXQgZm9yIG1lIHRvIGltcHJvdmUgYW5kIHN0YXJ0IHNwZWFraW5nIERhbmlzaC4gSGlyaW5nIHNvbWVvbmUgd2hvJ3Mgbm90IGZsdWVudCBpbiB0aGUgd29ya2luZyBsYW5ndWFnZSB3b3VsZCBtZWFuIGFsc28gcmV2aXNpbmcgYWxsIHdyaXR0ZW4gcmVwb3J0cywgYW5kIGNvdmVyaW5nIHRoZSBvcmFsIHByZXNlbnRhdGlvbnMuLi4gZm9yIHRoZSBmaXJzdCBmZXcgbW9udGhzLiBUaGUgZXhwZXJpZW5jZSB3YXMgYSBnb29kIHByYWN0aWNlIGFuZCBtYXliZSBvbmUgZGF5IEknbGwgd29yayB3aXRoIHRoZSBwZW9wbGUgd2hvIGludGVydmlld2VkIG1lLCBidXQgdGhlIGJpZyB0YWtlLWhvbWUgbWVzc2FnZSBpczogbm8gRGFuaXNoLCBubyBqb2IuIFRoaXMgcmVhZmZpcm1lZCBteSBwbGFuIHRvIHNwZW5kIHRoZSBuZXh0IGNvdXBsZSBvZiBtb250aHMgYWN0aXZlbHkgbGVhcm5pbmcgRGFuaXNoIGFuZCBnZXR0aW5nIGJhY2sgaW50byB0aGUgbmF0aW9uYWwgcG9saWN5IGFuZCBvdGhlciB3YXRlci9lbnZpcm9ubWVudCBkb2N1bWVudHMuDQoNCkZvciB0aGlzIHdlZWsncyBjaGFsbGVuZ2UsIEkgZGVjaWRlZCB0byBjb250aW51ZSB3aXRoIHRoZSB3YXRlciBjb25zdW1wdGlvbiBkYXRhIChsYXN0IHdlZWs6IEJ1bGdhcmlhICYgU2luZ2Fwb3JlKSwgYnV0IHRvIGNoZWNrIG91dCBhbHNvIHRoZSBtb3N0IHJlY2VudCBEQU5WQSBiZW5jaG1hcmtpbmcgcmVwb3J0LiBEQU5WQSBzdGFuZHMgZm9yIERhbmlzaCBXYXRlciBhbmQgV2FzdGV3YXRlciBBc3NvY2lhdGlvbiwgd2hpY2ggaXMgdGhlIG5hdGlvbmFsIGluZHVzdHJ5IGFuZCBzdGFrZWhvbGRlciBvcmdhbmlzYXRpb24gb2YgRGFuaXNoIHdhdGVyIGFuZCB3YXN0ZXdhdGVyIHV0aWxpdGllcy4gSW5mb3JtYXRpb24gYWJvdXQgdGhlIGJlbmNobWFya2luZyBjYW4gYmUgZm91bmQgW2hlcmVdKGh0dHBzOi8vd3d3LmRhbnZhLmRrL3ZpZGVuL2RhbnZhLWJlbmNobWFya2luZy8pLiANCg0KSSBhbSBrZWVwaW5nIHRoZSBjb2xvciBzY2hlbWUgYW5kIHRoZSB5LWF4aXMgc2NhbGUgdGhlIHNhbWUgYXMgbGFzdCB3ZWVrLCBidXQgDQppIGFtIHRyeWluZyBgc3ltYm9sc2AgZ3JhcGggdHlwZSB3aXRoIGBzcXVhcmVzYC4gRWFjaCBzcXVhcmUncyBzaWRlIGVxdWFscyB0byB0aGUgd2F0ZXIgY29uc3VtcHRpb24gZm9yIHRoZSBzcGVjaWZpYyB5ZWFyLiBUaGUgc2l6ZXMgYXJlIHNjYWxlZCBzbyB0aGUgbGFyZ2VzdCBkYXRhLXBvaW50IGlzIGFuIGluY2guIFRoZSBsYXJnZXN0IHdhdGVyIGNvbnN1bXB0aW9uIGluIHRoZSBwZXJpb2Qgd2FzIGluIDIwMTMsIHNvIHRoZSBsYXJnZXN0IHNxdWFyZSBpcyBpbiAyMDEzLiBNb3JlIGFib3V0IHRoZSBEYW5pc2ggd2F0ZXIgY29uc3VtcHRpb24gJFxyaWdodGFycm93JCBhZnRlciB0aGUgZ3JhcGguIA0KDQojIyMgRGF0YQ0KDQpGb3IgdGhpcyB3ZWVrJ3MgZ3JhcGgsIEkgdXNlZCB0aGUgb2ZmaWNpYWwgRGFuaXNoIHN0YXRpc3RpYyAoZGs6IERhbm1hcmtzIFN0YXRpc3Rpaykgb246DQoNCjEuIEhvdXNlaG9sZHMnIGNvbnN1bXB0aW9uIG9mIHdhdGVyIChQaHlzaWNhbCB3YXRlciBhY2NvdW50cykgZm9yIHRoZSBwZXJpb2QgMjAxMC0yMDE2LCBnaXZlbiBpbiAxMDAwIG1eM14uIFRoZSBkYXRhIGNhbiBiZSBkb3dubG9hZGVkIGZyb20gW2hlcmVdKGh0dHBzOi8vd3d3LmRzdC5kay9kYS9TdGF0aXN0aWsvZW1uZXIvZ2VvZ3JhZmktbWlsam9lLW9nLWVuZXJnaS9ncm9lbnQtbmF0aW9uYWxyZWduc2thYi92YW5kLW9nLXNwaWxkZXZhbmQpIChkazogRm9yYnJ1ZyBhZiB2YW5kLCBGeXNpc2tlIHZhbmRyZWduc2thYikuIA0KMi4gUG9wdWxhdGlvbiBmaWd1cmVzIGZyb20gdGhlIGNlbnN1c2VzIChmb3IgdGhlIGVudGlyZSBjb3VudHJ5KS4gSXQgY2FuIGJlIGRvd25vYWRlZCBmcm9tIFtoZXJlXShodHRwOi8vd3d3LnN0YXRiYW5rLmRrL3N0YXRiYW5rNWEvZGVmYXVsdC5hc3A/dz0xMzY4KSAoZGs6IEZvbGtldGFsLCBzdW1tYXJpc2tlIHRhbCBmcmEgZm9sa2V05mxsaW5nZXIpDQoNCmBgYHtyfQ0KeWVhciA8LSBjKDIwMTA6MjAxNikgICMgcGVyaW9kDQpoMm8ubTMgPC0gYygyMzY5MTAsCTIzNzM1MiwJMjM4Mzk2LCAyNDU4NjEsCTIzMjU0MSwJMjE3NDY2LAkyMTAwMDEpKjEwMDAgICMgaW4gbTMNCnBwbCA8LSBjKDU1MzQ3MzgsIDU1NjA2MjgsIDU1ODA1MTYsIDU2MDI2MjgsIDU2MjcyMzUsIDU2NTk3MTUsIDU3MDcyNTEpICAjIG51bWJlcg0KYGBgDQoNCiMjIyBHcmFwaCBhbmQgY29kZQ0KDQpJIGNvdWxkbid0IGZpbmQgY2FsY3VsYXRlZCBjb25zdW1wdGlvbiBpbiBsaXRlcnMgcGVyIGNhcGl0YSBwZXIgZGF5LCBzbyBJIGNhbGN1bGF0ZWQgaXQgZnJvbSB0aGUgYXZhaWxhYmxlIGRhdGEuIE9mIGNvdXJzZSwgdGhpcyBpcyBxdWl0ZSByb3VnaCBlc3RpbWF0ZSwgd2hpY2ggaXMgbmVhcmx5IHRoZSBzYW1lIGFzIHRoZSBlc3RpbWF0ZSBieSBEQU5WQSAoc2VlIGJlbG93KS4NCmBgYHtyIGNvbGxhcHNlPVRSVUV9DQojIGNvbnZlcnQgdG8gbGl0ZXJzDQpoMm8ubCA8LSBoMm8ubTMqMTAwMCAgIyBsDQoNCiMgbGVhcC9ub24tbGVhcCB5ZWFycw0KZGF5cyA8LSBjKDM2NSwgMzY1LCAzNjYsIDM2NSwgMzY1LCAzNjUsIDM2NikgICMgMjAxMiAmIDIwMTYgYXJlIGxlYXAgeWVhcnMNCg0KIyBjYWxjdWxhdGUgaW4gbC9jYXAvZGF5DQpsLmNhcC5kIDwtIHJvdW5kKGgyby5sL3BwbC9kYXlzKQ0KDQojIGluIGEgZGF0YWZyYW1lDQpkYXRhIDwtIGRhdGEuZnJhbWUoeWVhciwgbC5jYXAuZCkNCmBgYA0KDQpUaGUgbmV3IGZvciBtZSB0aGluZyBpcyB1c2luZyBgc3ltYm9sc2AgcGxvdC4gSSBoYWQgbm8gaWRlYSB0aGF0IHlvdSBjYW4gcGxvdCBtdWx0aXZhcmlhdGUgZGF0YSB3aXRoIGl0LiBJdCBhbG93cyBmb3I6IGBjaXJjbGVzYCAoYnViYmxlIGNoYXJ0KSwgYHNxdWFyZXNgLCBgcmVjdGFuZ2xlc2AsIGBzdGFyc2AsIGB0aGVybW9tZXRlcnNgLCBhbmQgYGJveHBsb3RzYC4gSSdtIHF1aXRlIGN1cmlvdXMgaG93IHRoZSBgdGhlcm1vbWV0ZXJzYCBsb29rIGxpa2UsIHNvIEkgbWF5IGJlIHRlc3RpbmcgaXQgd2hlbiB0aGUgYXBwcm9wcmlhdGUgZGF0YXNldCBjb21lcyBhbG9uZy4gDQpJIHdhcyBtb3JlIGludGVyZXN0ZWQgaW4gZ2V0dGluZyBpbnRlcmVzdGluZyB2aXN1YWwgcmVwcmVzZW50YXRpb24sIHRoYW4gaW4gdGhlIGluZm9ybWF0aXZlbmVzcyBvZiB0aGUgZmlndXJlLiANCg0KYGBge3IgZmlnLmFzcD0xLCBkZXY9J0NhaXJvUE5HJywgZHBpID0gNjAwLCBjb2xsYXBzZT1UUlVFLCBmaWcuYWxpZ249J2NlbnRlcicsIGNvbGxhcHNlPVRSVUUsIHJlc3VsdHM9J2hvbGQnfQ0KDQojIHNldHRpbmcgdGhlIGdyYXBoIHBhcmFtcyBmb3IgYmFja2dyb3VuZCwgY29sb3JzLCBmb250cyBldGMuDQpwYXIobWFyPWMoMSwgNCwgMSwgMSksIGJnPSIjMUE2NkZGIiwgY29sLmF4aXM9IiNFNkZGRkYiLCBjb2wubGFiPSIjRTZGRkZGIiwgZmFtaWx5PSJtb25vIiwgZmc9IiNFNkZGRkYiKQ0KDQpjb2xzIDwtIHJldihkaWNocm9tYXRfcGFsKCJMaWdodEJsdWV0b0RhcmtCbHVlLjEwIikoOCkpDQoNCnBsb3QoeD1kYXRhJHllYXIsIHk9ZGF0YSRsLmNhcC5kLCB0eXBlPSJuIiwgeGxpbT1jKDIwMDksIDIwMTcpLCB5bGltPWMoODAsIDE2MCksICB5bGFiPSJsL2NhcC9kYXkiLCB4bGFiPSIiLCBidHk9Im4iLCBheGVzPUZBTFNFKQ0KZ3JpZCgpDQpzeW1ib2xzKHk9ZGF0YSRsLmNhcC5kLCB4PWRhdGEkeWVhciwgc3F1YXJlcyA9IGRhdGEkbC5jYXAuZCwgYmc9Y29scywgZmc9Y29scywgYWRkID0gVFJVRSwNCiAgICAgICAgeGxpbT1jKDIwMDksIDIwMTcpLCB5bGltPWMoODAsIDE2MCkpDQpwb2ludHMoeD1kYXRhJHllYXIsIHk9ZGF0YSRsLmNhcC5kLCBwY2g9MTUsIGNvbD0gIiMxQTY2RkYiKQ0KYXhpcyhzaWRlPTIsIGxhcz0yLCBsd2Q9MCwgbHdkLnRpY2tzID0gMSkNCm10ZXh0KCJARGVuaXR6YVYiLCBzaWRlPTEsIGxpbmU9LTEsIGFkaiA9IDEsIGNvbD0iI0U2RkZGRiIsIGNleD0wLjcpDQp0ZXh0KHllYXItMC4zLCBsLmNhcC5kLTQsIGxhYmVscyA9IHllYXIsIGNvbD0iIzFBNjZGRiIsIGNleD0wLjgpDQpgYGANCkZyb20gdGhlIGdyYXBoIGlzIHZpc2libGUgdGhhdCB0aGUgd2F0ZXIgY29uc3VtcHRpb24gaW4gMjAxNiB3YXMgdGhlIGxvd2VzdCBpbiB0aGUgcGVyaW9kLCBhbHNvIGFmdGVyIDIwMTMgaXQgaGFzIGJlZW4gc3RlYWRpbHkgZGVjcmVhc2luZy4gRGFubWFyayBTdGF0aXN0aWsgZG9lcyBub3QgcHJvdmlkZSB0aGUgbnVtYmVycyBmb3IgcHJlLTIwMTAgd2F0ZXIgY29uc3VtcHRpb24sIHNvIHVuZm9ydHVuYXRlbHksIHRoYXQncyBhbGwgd2UgY2FuIHNheSBhYm91dCB0aGVzZSA3IGRhdGEtcG9pbnRzLiANCg0KYGBge3IgZWNobz1GQUxTRX0NCmQuMTk4NyA8LSByb3VuZCg2Mi44OSoxMDAwLzM2NSkgICMgMTk4Nw0KZC4yMDE3IDwtIHJvdW5kKDM3LjU5KjEwMDAvMzY1KSAgIyAyMDE3DQpgYGANCg0KREFOVkEgYmVuY2htYXJraW5nIHJlcG9ydCAod2hpY2ggaXMgYmFzZWQgb24gNTIgd2F0ZXIgc3VwcGx5aW5nIGNvbXBhbmllcywgcmVwcmVzZW50aW5nIDMuMiBtaWxsaW9uIHVzZXJzKSBnaXZlcyB0aGF0IGluIDIwMTYgdGhlIHdhdGVyIGNvbnN1bXB0aW9uIHdhcyAxMDQgbC9jYXAvZGF5XltzZWUgcC41IG9mIF9XYXRlciBpbiBGaWd1cmVzIDIwMTdfIFtwZGZdKGh0dHA6Ly93d3cuZS1wYWdlcy5kay9kYW52YS8yMTUvKV0uIE15IGNhbGN1bGF0aW9uIGdpdmVzIGByIGwuY2FwLmRbN11gIGwvY2FwL2RheSwgd2hpY2ggaXMgcHJldHR5IGNsb3NlIHRvIERBTlZBJ3MgZXN0aW1hdGUuIEluIHRoZSBuZXdlc3QgREFOVkEgYmVuY2htYXJraW5nIHJlcG9ydF5bX1ZhbmQgaSBUYWwgMjAxOF8gKHNvIGZhciBvbmx5IGluIERhbmlzaCkgW3BkZl0oaHR0cDovL3d3dy5lLXBhZ2VzLmRrL2RhbnZhLzIyMi8pXSBpdCdzIHdyaXR0ZW4gdGhhdCB0aGUgd2F0ZXIgY29uc3VtcHRpb24gaW4gMjAxNyB3YXMgYHIgZC4yMDE3YCBsL2NhcC9kYXksIHdoaWxlIGluIDE5ODcgdGhpcyBudW1iZXIgd2FzIGByIGQuMTk4N2AgbC9jYXAvZGF5LCB3aGljaCBpcyBhIDQwJSBkZWNyZWFzZSBmb3IgMzEgeWVhcnMgKHAuNywgX1ZhbmQgaSBUYWwgMjAxOF8gYnkgREFOVkEpLiBTZWUgbXkgdHJhbnNsYXRpb24gb2YgdGhpcyBwYXJ0IG9mIHRoZSByZXBvcnQgaW4gbXkgbmV4dCBibG9nLXBvc3QuIA0KDQpUaGF0J3MgYWxsISA=