# If you want to work together, you can, just make sure you all understand it
# In task 4 the code should be sample(2*31,1), otherwise your computer will not finish calculating in your lifetime!
#
# Task 2:
# Use it again to produce 2x 10, 1000, and 100000 values (mean = 50, sd = 20).
# Use the functions mean(), median(), sd() on the vector and look at the result. Are
# they what you expect them to be?
# Make a histogram again each time.
#
# Mean and standard deviation
n_mean <- 50
n_stdev <- 100
# 10 random observations
n_observation <- 10
vec_norm_1 <- rnorm(n = n_observation, mean = n_mean, sd = n_stdev)
vec_norm_2 <- rnorm(n_observation, n_mean, n_stdev)
# mean, median, sd, hist #1
mean(vec_norm_1)
[1] 1.58238
median(vec_norm_1)
[1] -35.1225
sd(vec_norm_1)
[1] 99.06874
hist(vec_norm_1)

# mean, median, sd, hist #2
mean(vec_norm_2)
[1] 42.09803
median(vec_norm_2)
[1] 29.23854
sd(vec_norm_2)
[1] 103.8325
hist(vec_norm_2)

Task 2: Answer
Ten observations using rnorm with mean = 50 and median = 100. With
only 10 observations, we didn’t get a symmetric normal distribution
histogram.
# 1000 random observations
n_observation <- 1000
vec_norm_1 <- rnorm(n_observation, n_mean, n_stdev)
vec_norm_2 <- rnorm(n_observation, n_mean, n_stdev)
# mean, median, sd, hist #1
mean(vec_norm_1)
[1] 52.67748
median(vec_norm_1)
[1] 48.65339
sd(vec_norm_1)
[1] 100.0692
hist(vec_norm_1)

# mean, median, sd, hist #2
mean(vec_norm_2)
[1] 42.3473
median(vec_norm_2)
[1] 44.35544
sd(vec_norm_2)
[1] 98.47205
hist(vec_norm_2)

Task 2: Answer:
Thousand observations using rnorm with mean = 50 and median = 100.
Increase of observations to a thousand produced a histogram quite
similar to a normal distribution.
# 100,000 observations
n_observation <- 100 * 1000
vec_norm_1 <- rnorm(n_observation, n_mean, n_stdev)
vec_norm_2 <- rnorm(n_observation, n_mean, n_stdev)
# mean, median, sd, hist #1
mean(vec_norm_1)
[1] 50.29052
median(vec_norm_1)
[1] 50.02448
sd(vec_norm_1)
[1] 99.88641
hist(vec_norm_1)

# mean, median, sd, hist #2
mean(vec_norm_2)
[1] 50.41016
median(vec_norm_2)
[1] 50.2367
sd(vec_norm_2)
[1] 100.1026
hist(vec_norm_2)

Task 2: Answer:
Hundred thousand observations using rnorm with mean = 50 and median =
100. Increase of observations to one hundred thousand produced a
symmetric histogram of a normal distribution.
#Task 3:
#Research the function sample(). It can get a vector to sample (draw from). What does
#replace = TRUE do?
# Use it on a vector 1:100 with replace = TRUE, drawing 10, 100, 1000 elements from.
#Use a histogram to determine what distribution underlies the sampling. What is the
#difference to the function you have used before?
#
# Vector of numbers from 1 to 100
vec_nums <- c(1:100)
# 10 samples
n_sample <- 10
vec_sample <-sample(vec_nums, n_sample, replace = TRUE)
hist(vec_sample)

# 100 samples
n_sample <- 100
vec_sample <-sample(vec_nums, n_sample, replace = TRUE)
hist(vec_sample)

# 1000 samples
n_sample <- 1000
vec_sample <-sample(vec_nums, n_sample, replace = TRUE)
hist(vec_sample)

Task 3: Answer:
Replace = True means allow the item to be picked up again when
sampling. If it is false then the result value of a sampling will not be
picked again in the same sampling operation. As we increased the number
of samples from ten to a thousand, the histogram become more and more
similar to a uniform distribution.
Using the rnorm function, we get random values in a normal
distribution and the numbers closer to mean are more likely to be picked
up than the numbers away from it. But with the sample function, we get a
uniform distribution so each number is equally likely to be picked
up.
# Task 4:
# Use the command sample(2*31) to create your own seed and give it out.
#Set this seed with set.seed().
#Use runif(10) and look at the values. Do runif(10) again. Are they same?
# Use set.seed() again with the same seed and do runif(10) again.
#Do you understand the idea behind seeds now?
#
# Vector for the seed value
v_seed = sample(2*31)
set.seed(v_seed)
# First runif(10)
v_unif_first <- runif(10)
v_unif_first
[1] 0.09878282 0.48823179 0.36403673 0.42061913 0.30096439 0.14763513 0.89857491 0.22355651 0.96596330 0.14106704
# Second runif(10)
v_unif_second <- runif(10)
v_unif_second
[1] 0.06535501 0.39725471 0.54399676 0.87963113 0.22338939 0.92094417 0.25146172 0.83046382 0.60815737 0.43135087
# Set seed again
set.seed(v_seed)
# Final runif(10)
v_unif_final <- runif(10)
v_unif_final
[1] 0.09878282 0.48823179 0.36403673 0.42061913 0.30096439 0.14763513 0.89857491 0.22355651 0.96596330 0.14106704
Task 4: Answer:
Setting the seed value allowed us to get the same random numbers
again using same seed value. If we do not set the seed value then the
numbers we get will be randomly different in each time and those numbers
have equal probability of being selected, following a uniform
distribution pattern.
# Task 5:
# Research the function pnorm(). Can you summarize in your own words what it does?
#
# pnorm function
# This function returns the value of the cumulative density function (cdf) of the normal distribution given a certain random variable q, a population mean μ, and the population standard deviation σ.
# Example 1
# Find the percentage of males taller than 78 inches in a population with mean = 74 and sd = 2.
pnorm(78, mean = 74, sd = 2, lower.tail = FALSE)
[1] 0.02275013
# Example 2
# Find the percentage of otters that weight less than 33 lbs in a population with mean = 40 and sd = 8. Let’s see the following code example.
pnorm(33, mean=40, sd = 8)
[1] 0.190787
Task 5: Answer:
The pnorm function allows us to find percentage of observations in
normal distribution, less than a given criteria value which we already
know the mean and standard deviation of this criteria in the
population.
LS0tDQp0aXRsZTogIlcwMiBUYXNrcyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiMgSWYgeW91IHdhbnQgdG8gd29yayB0b2dldGhlciwgeW91IGNhbiwganVzdCBtYWtlIHN1cmUgeW91IGFsbCB1bmRlcnN0YW5kIGl0DQojIEluIHRhc2sgNCB0aGUgY29kZSBzaG91bGQgYmUgc2FtcGxlKDIqMzEsMSksIG90aGVyd2lzZSB5b3VyIGNvbXB1dGVyIHdpbGwgbm90IGZpbmlzaCBjYWxjdWxhdGluZyBpbiB5b3VyIGxpZmV0aW1lIQ0KIw0KIyBUYXNrIDI6DQojIFVzZSBpdCBhZ2FpbiB0byBwcm9kdWNlIDJ4IDEwLCAxMDAwLCBhbmQgMTAwMDAwIHZhbHVlcyAobWVhbiA9IDUwLCBzZCA9IDIwKS4NCiMgVXNlIHRoZSBmdW5jdGlvbnMgbWVhbigpLCBtZWRpYW4oKSwgc2QoKSBvbiB0aGUgdmVjdG9yIGFuZCBsb29rIGF0IHRoZSByZXN1bHQuIEFyZQ0KIyB0aGV5IHdoYXQgeW91IGV4cGVjdCB0aGVtIHRvIGJlPw0KIyAgIE1ha2UgYSBoaXN0b2dyYW0gYWdhaW4gZWFjaCB0aW1lLg0KIw0KIyBNZWFuIGFuZCBzdGFuZGFyZCBkZXZpYXRpb24NCm5fbWVhbiAgPC0gNTANCm5fc3RkZXYgPC0gMTAwDQpgYGANCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiMgMTAgcmFuZG9tIG9ic2VydmF0aW9ucw0Kbl9vYnNlcnZhdGlvbiA8LSAxMA0KdmVjX25vcm1fMSA8LSBybm9ybShuID0gbl9vYnNlcnZhdGlvbiwgbWVhbiA9IG5fbWVhbiwgc2QgPSBuX3N0ZGV2KQ0KdmVjX25vcm1fMiA8LSBybm9ybShuX29ic2VydmF0aW9uLCBuX21lYW4sIG5fc3RkZXYpDQojIG1lYW4sIG1lZGlhbiwgc2QsIGhpc3QgIzENCm1lYW4odmVjX25vcm1fMSkNCm1lZGlhbih2ZWNfbm9ybV8xKQ0Kc2QodmVjX25vcm1fMSkNCmhpc3QodmVjX25vcm1fMSkNCiMgbWVhbiwgbWVkaWFuLCBzZCwgaGlzdCAjMg0KbWVhbih2ZWNfbm9ybV8yKQ0KbWVkaWFuKHZlY19ub3JtXzIpDQpzZCh2ZWNfbm9ybV8yKQ0KaGlzdCh2ZWNfbm9ybV8yKQ0KYGBgDQoNCjo6OiB7LmluZm9ib3ggZGF0YS1sYXRleD0iY2F1dGlvbiJ9DQoqKlRhc2sgMjogQW5zd2VyKioNCg0KVGVuIG9ic2VydmF0aW9ucyB1c2luZyBybm9ybSB3aXRoIG1lYW4gPSA1MCBhbmQgbWVkaWFuID0gMTAwLiANCldpdGggb25seSAxMCBvYnNlcnZhdGlvbnMsIHdlIGRpZG4ndCBnZXQgYSBzeW1tZXRyaWMgbm9ybWFsIGRpc3RyaWJ1dGlvbiBoaXN0b2dyYW0uDQo6OjoNCg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiMgMTAwMCByYW5kb20gb2JzZXJ2YXRpb25zDQpuX29ic2VydmF0aW9uIDwtIDEwMDANCnZlY19ub3JtXzEgPC0gcm5vcm0obl9vYnNlcnZhdGlvbiwgbl9tZWFuLCBuX3N0ZGV2KQ0KdmVjX25vcm1fMiA8LSBybm9ybShuX29ic2VydmF0aW9uLCBuX21lYW4sIG5fc3RkZXYpDQojIG1lYW4sIG1lZGlhbiwgc2QsIGhpc3QgIzENCm1lYW4odmVjX25vcm1fMSkNCm1lZGlhbih2ZWNfbm9ybV8xKQ0Kc2QodmVjX25vcm1fMSkNCmhpc3QodmVjX25vcm1fMSkNCiMgbWVhbiwgbWVkaWFuLCBzZCwgaGlzdCAjMg0KbWVhbih2ZWNfbm9ybV8yKQ0KbWVkaWFuKHZlY19ub3JtXzIpDQpzZCh2ZWNfbm9ybV8yKQ0KaGlzdCh2ZWNfbm9ybV8yKQ0KYGBgDQo6Ojogey5pbmZvYm94IGRhdGEtbGF0ZXg9ImNhdXRpb24ifQ0KKipUYXNrIDI6IEFuc3dlcjoqKg0KDQpUaG91c2FuZCBvYnNlcnZhdGlvbnMgdXNpbmcgcm5vcm0gd2l0aCBtZWFuID0gNTAgYW5kIG1lZGlhbiA9IDEwMC4gDQpJbmNyZWFzZSBvZiBvYnNlcnZhdGlvbnMgdG8gYSB0aG91c2FuZCBwcm9kdWNlZCBhIGhpc3RvZ3JhbSBxdWl0ZSBzaW1pbGFyIHRvIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbi4NCjo6Og0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyAxMDAsMDAwIG9ic2VydmF0aW9ucw0Kbl9vYnNlcnZhdGlvbiA8LSAxMDAgKiAxMDAwDQp2ZWNfbm9ybV8xIDwtIHJub3JtKG5fb2JzZXJ2YXRpb24sIG5fbWVhbiwgbl9zdGRldikNCnZlY19ub3JtXzIgPC0gcm5vcm0obl9vYnNlcnZhdGlvbiwgbl9tZWFuLCBuX3N0ZGV2KQ0KIyBtZWFuLCBtZWRpYW4sIHNkLCBoaXN0ICMxDQptZWFuKHZlY19ub3JtXzEpDQptZWRpYW4odmVjX25vcm1fMSkNCnNkKHZlY19ub3JtXzEpDQpoaXN0KHZlY19ub3JtXzEpDQojIG1lYW4sIG1lZGlhbiwgc2QsIGhpc3QgIzINCm1lYW4odmVjX25vcm1fMikNCm1lZGlhbih2ZWNfbm9ybV8yKQ0Kc2QodmVjX25vcm1fMikNCmhpc3QodmVjX25vcm1fMikNCmBgYA0KOjo6IHsuaW5mb2JveCBkYXRhLWxhdGV4PSJjYXV0aW9uIn0NCioqVGFzayAyOiBBbnN3ZXI6KioNCg0KSHVuZHJlZCB0aG91c2FuZCBvYnNlcnZhdGlvbnMgdXNpbmcgcm5vcm0gd2l0aCBtZWFuID0gNTAgYW5kIG1lZGlhbiA9IDEwMC4gDQpJbmNyZWFzZSBvZiBvYnNlcnZhdGlvbnMgdG8gb25lIGh1bmRyZWQgdGhvdXNhbmQgcHJvZHVjZWQgYSBzeW1tZXRyaWMgaGlzdG9ncmFtIG9mIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbi4NCjo6Og0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KI1Rhc2sgMzoNCiNSZXNlYXJjaCB0aGUgZnVuY3Rpb24gc2FtcGxlKCkuIEl0IGNhbiBnZXQgYSB2ZWN0b3IgdG8gc2FtcGxlIChkcmF3IGZyb20pLiBXaGF0IGRvZXMNCiNyZXBsYWNlID0gVFJVRSBkbz8NCiMgIFVzZSBpdCBvbiBhIHZlY3RvciAxOjEwMCB3aXRoIHJlcGxhY2UgPSBUUlVFLCBkcmF3aW5nIDEwLCAxMDAsIDEwMDAgZWxlbWVudHMgZnJvbS4NCiNVc2UgYSBoaXN0b2dyYW0gdG8gZGV0ZXJtaW5lIHdoYXQgZGlzdHJpYnV0aW9uIHVuZGVybGllcyB0aGUgc2FtcGxpbmcuIFdoYXQgaXMgdGhlDQojZGlmZmVyZW5jZSB0byB0aGUgZnVuY3Rpb24geW91IGhhdmUgdXNlZCBiZWZvcmU/DQojDQojIFZlY3RvciBvZiBudW1iZXJzIGZyb20gMSB0byAxMDANCnZlY19udW1zIDwtIGMoMToxMDApDQojIDEwIHNhbXBsZXMNCm5fc2FtcGxlIDwtIDEwDQp2ZWNfc2FtcGxlIDwtc2FtcGxlKHZlY19udW1zLCBuX3NhbXBsZSwgcmVwbGFjZSA9IFRSVUUpDQpoaXN0KHZlY19zYW1wbGUpDQojIDEwMCBzYW1wbGVzDQpuX3NhbXBsZSA8LSAxMDANCnZlY19zYW1wbGUgPC1zYW1wbGUodmVjX251bXMsIG5fc2FtcGxlLCByZXBsYWNlID0gVFJVRSkNCmhpc3QodmVjX3NhbXBsZSkNCiMgMTAwMCBzYW1wbGVzDQpuX3NhbXBsZSA8LSAxMDAwDQp2ZWNfc2FtcGxlIDwtc2FtcGxlKHZlY19udW1zLCBuX3NhbXBsZSwgcmVwbGFjZSA9IFRSVUUpDQpoaXN0KHZlY19zYW1wbGUpDQpgYGANCjo6OiB7LmluZm9ib3ggZGF0YS1sYXRleD0iY2F1dGlvbiJ9DQoqKlRhc2sgMzogQW5zd2VyOioqDQoNClJlcGxhY2UgPSBUcnVlIG1lYW5zIGFsbG93IHRoZSBpdGVtIHRvIGJlIHBpY2tlZCB1cCBhZ2FpbiB3aGVuIHNhbXBsaW5nLiBJZiBpdCBpcyBmYWxzZSB0aGVuIHRoZSByZXN1bHQgdmFsdWUgb2YgYSBzYW1wbGluZyB3aWxsIG5vdCBiZSBwaWNrZWQgYWdhaW4gaW4gdGhlIHNhbWUgc2FtcGxpbmcgb3BlcmF0aW9uLiBBcyB3ZSBpbmNyZWFzZWQgdGhlIG51bWJlciBvZiBzYW1wbGVzIGZyb20gdGVuIHRvIGEgdGhvdXNhbmQsIHRoZSBoaXN0b2dyYW0gYmVjb21lIG1vcmUgYW5kIG1vcmUgc2ltaWxhciB0byBhIHVuaWZvcm0gZGlzdHJpYnV0aW9uLg0KDQpVc2luZyB0aGUgcm5vcm0gZnVuY3Rpb24sIHdlIGdldCByYW5kb20gdmFsdWVzIGluIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbiBhbmQgdGhlIG51bWJlcnMgY2xvc2VyIHRvIG1lYW4gYXJlIG1vcmUgbGlrZWx5IHRvIGJlIHBpY2tlZCB1cCB0aGFuIHRoZSBudW1iZXJzIGF3YXkgZnJvbSBpdC4gQnV0IHdpdGggdGhlIHNhbXBsZSBmdW5jdGlvbiwgd2UgZ2V0IGEgdW5pZm9ybSBkaXN0cmlidXRpb24gc28gZWFjaCBudW1iZXIgaXMgZXF1YWxseSBsaWtlbHkgdG8gYmUgcGlja2VkIHVwLg0KOjo6DQoNCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojICBUYXNrIDQ6DQojICBVc2UgdGhlIGNvbW1hbmQgc2FtcGxlKDIqMzEpIHRvIGNyZWF0ZSB5b3VyIG93biBzZWVkIGFuZCBnaXZlIGl0IG91dC4NCiNTZXQgdGhpcyBzZWVkIHdpdGggc2V0LnNlZWQoKS4NCiNVc2UgcnVuaWYoMTApIGFuZCBsb29rIGF0IHRoZSB2YWx1ZXMuIERvIHJ1bmlmKDEwKSBhZ2Fpbi4gQXJlIHRoZXkgc2FtZT8NCiMgIFVzZSBzZXQuc2VlZCgpIGFnYWluIHdpdGggdGhlIHNhbWUgc2VlZCBhbmQgZG8gcnVuaWYoMTApIGFnYWluLg0KI0RvIHlvdSB1bmRlcnN0YW5kIHRoZSBpZGVhIGJlaGluZCBzZWVkcyBub3c/DQojDQojIFZlY3RvciBmb3IgdGhlIHNlZWQgdmFsdWUNCnZfc2VlZCA9IHNhbXBsZSgyKjMxKQ0Kc2V0LnNlZWQodl9zZWVkKQ0KIyBGaXJzdCBydW5pZigxMCkNCnZfdW5pZl9maXJzdCAgPC0gcnVuaWYoMTApDQp2X3VuaWZfZmlyc3QNCiMgU2Vjb25kIHJ1bmlmKDEwKQ0Kdl91bmlmX3NlY29uZCA8LSBydW5pZigxMCkNCnZfdW5pZl9zZWNvbmQNCiMgU2V0IHNlZWQgYWdhaW4NCnNldC5zZWVkKHZfc2VlZCkNCiMgRmluYWwgcnVuaWYoMTApDQp2X3VuaWZfZmluYWwgPC0gcnVuaWYoMTApDQp2X3VuaWZfZmluYWwNCmBgYA0KDQo6Ojogey5pbmZvYm94IGRhdGEtbGF0ZXg9ImNhdXRpb24ifQ0KKipUYXNrIDQ6IEFuc3dlcjoqKg0KDQpTZXR0aW5nIHRoZSBzZWVkIHZhbHVlIGFsbG93ZWQgdXMgdG8gZ2V0IHRoZSBzYW1lIHJhbmRvbSBudW1iZXJzIGFnYWluIHVzaW5nIHNhbWUgc2VlZCB2YWx1ZS4gSWYgd2UgZG8gbm90IHNldCB0aGUgc2VlZCB2YWx1ZSB0aGVuIHRoZSBudW1iZXJzIHdlIGdldCB3aWxsIGJlIHJhbmRvbWx5IGRpZmZlcmVudCBpbiBlYWNoIHRpbWUgYW5kIHRob3NlIG51bWJlcnMgaGF2ZSBlcXVhbCBwcm9iYWJpbGl0eSBvZiBiZWluZyBzZWxlY3RlZCwgZm9sbG93aW5nIGEgdW5pZm9ybSBkaXN0cmlidXRpb24gcGF0dGVybi4NCjo6Og0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyAgVGFzayA1Og0KIyAgUmVzZWFyY2ggdGhlIGZ1bmN0aW9uIHBub3JtKCkuIENhbiB5b3Ugc3VtbWFyaXplIGluIHlvdXIgb3duIHdvcmRzIHdoYXQgaXQgZG9lcz8NCiMgIA0KIyBwbm9ybSBmdW5jdGlvbg0KIyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBjdW11bGF0aXZlIGRlbnNpdHkgZnVuY3Rpb24gKGNkZikgb2YgdGhlIG5vcm1hbCBkaXN0cmlidXRpb24gZ2l2ZW4gYSBjZXJ0YWluIHJhbmRvbSB2YXJpYWJsZSBxLCBhIHBvcHVsYXRpb24gbWVhbiDOvCwgYW5kIHRoZSBwb3B1bGF0aW9uIHN0YW5kYXJkIGRldmlhdGlvbiDPgy4NCg0KIyBUaGUgcGVyY2VudGFnZSBvZiBtYWxlcyB0YWxsZXIgdGhhbiA3OCBpbmNoZXMgaW4gYSBwb3B1bGF0aW9uIHdpdGggbWVhbiA9IDc0IGFuZCBzZCA9IDINCnBub3JtKDc4LCBtZWFuID0gNzQsIHNkID0gMiwgbG93ZXIudGFpbCA9IEZBTFNFKQ0KIyBUaGUgcGVyY2VudGFnZSBvZiBvdHRlcnMgdGhhdCB3ZWlnaHQgbGVzcyB0aGFuIDMzIGxicyBpbiBhIHBvcHVsYXRpb24gd2l0aCBtZWFuID0gNDAgYW5kIHNkID0gOC4NCnBub3JtKDMzLCBtZWFuPTQwLCBzZCA9IDgpDQpgYGANCg0KOjo6IHsuaW5mb2JveCBkYXRhLWxhdGV4PSJjYXV0aW9uIn0NCioqVGFzayA1OiBBbnN3ZXI6KioNCg0KVGhlIHBub3JtIGZ1bmN0aW9uIGFsbG93cyB1cyB0byBmaW5kIHBlcmNlbnRhZ2Ugb2Ygb2JzZXJ2YXRpb25zIGluIG5vcm1hbCBkaXN0cmlidXRpb24sIGxlc3MgdGhhbiBhIGdpdmVuIGNyaXRlcmlhIHZhbHVlIHdoaWNoIHdlIGFscmVhZHkga25vdyB0aGUgbWVhbiBhbmQgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHRoaXMgY3JpdGVyaWEgaW4gdGhlIHBvcHVsYXRpb24uDQo6OjoNCg0KYGBge2NzcywgZWNobz1GQUxTRX0NCnRyIHsNCiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZGRkZDsNCn0NCnRyOm50aC1vZi10eXBlKGV2ZW4pIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0OyAhaW1wb3J0YW50Ow0KICAgICAgICAtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7DQp9DQp0cjpsYXN0LW9mLXR5cGUgew0KICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjMDA5OTgwOw0KfQ0KLmluZm9ib3ggew0KICBwYWRkaW5nOiAxZW0gMWVtIDFlbSA1ZW07DQogIG1hcmdpbi1ib3R0b206IDEwcHg7DQogIGJvcmRlcjogMnB4IGRvdHRlZCBvcmFuZ2U7DQogIGJvcmRlci1yYWRpdXM6IDEwcHg7DQogIGJhY2tncm91bmQ6ICNkY2RjZGMgMWVtIGNlbnRlci8zZW0gbm8tcmVwZWF0Ow0KICANCn0NCmBgYA==