Subset by colony
subset_t3.01 <- subset(qpcr, colony == "T3.01")
subset_t3.10 <- subset(qpcr, colony == "T3.10")
subset_t3.11 <- subset(qpcr, colony == "T3.11")
subset_t3.12 <- subset(qpcr, colony == "T3.12")
subset_t3.4 <- subset(qpcr, colony == "T3.4")
subset_t3.6 <- subset(qpcr, colony == "T3.6")
subset_t3.7 <- subset(qpcr, colony == "T3.7")
subset_t3.8 <- subset(qpcr, colony == "T3.8")
subset_t3.9 <- subset(qpcr, colony == "T3.9")
subset_t4.01 <- subset(qpcr, colony == "T4.01")
subset_t4.10 <- subset(qpcr, colony == "T4.10")
subset_t4.11 <- subset(qpcr, colony == "T4.11")
subset_t4.12 <- subset(qpcr, colony == "T4.12")
subset_t4.4 <- subset(qpcr, colony == "T4.4")
subset_t4.6 <- subset(qpcr, colony == "T4.6")
subset_t4.7 <- subset(qpcr, colony == "T4.7")
subset_t4.8 <- subset(qpcr, colony == "T4.8")
subset_t4.9 <- subset(qpcr, colony == "T4.9")
ggplot(subset_t3.01, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size =5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t3.10, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t3.11, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t3.12, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t3.4, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t3.6, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t3.7, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t3.8, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t3.9, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t4.01, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t4.10, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t4.11, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t4.12, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t4.4, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t4.6, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t4.7, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t4.8, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

ggplot(subset_t4.9, aes(x = days_since_innoculation, y = spores, color = inoculate)) +
geom_point() +
coord_cartesian(ylim=c(0, 370)) +
geom_line(aes(group = bee_id), alpha = 0.5) +
geom_text(aes(label = spores), vjust = -1, size = 5) + # Adding data labels
labs(title = "Crithidia spores per bee over time",
x = "Days Since Inoculation",
y = "Number of Spores") +
facet_wrap(~bee_id) +
theme(legend.position = "none") +
theme_gray(base_size = 15)

LS0tDQp0aXRsZTogInFQQ1IgUmVzdWx0cyINCmF1dGhvcjogIkVtaWx5IFJ1bm5pb24iDQpkYXRlOiAiMjAyNC0wNS0yMSINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZGVwdGg6IDQNCiAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgdGhlbWU6IGpvdXJuYWwNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQotLS0NCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KG1lc3NhZ2UgPSBGQUxTRSkNCmBgYA0KDQoNCmBgYHtyIGxvYWQgbGlicmFyaWVzLCBpbmNsdWRlPUZBTFNFfQ0KbGlicmFyeShyZWFkcikNCmxpYnJhcnkodmlyaWRpc0xpdGUpDQpsaWJyYXJ5KHN0YXRzKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShjYXIpDQpsaWJyYXJ5KGVtbWVhbnMpDQpsaWJyYXJ5KE1BU1MpDQpsaWJyYXJ5KGxtZTQpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncGF0dGVybikNCmxpYnJhcnkoa2FibGVFeHRyYSkNCmxpYnJhcnkoYmxtZWNvKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShjb3dwbG90KQ0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KGFncmljb2xhZSkgDQpsaWJyYXJ5KGdncHVicikNCmxpYnJhcnkoZ2x1ZSkNCmxpYnJhcnkobXVsdGNvbXApDQpsaWJyYXJ5KG11bHRjb21wVmlldykNCmxpYnJhcnkoZ2xtbVRNQikNCmxpYnJhcnkocnN0YXRpeCkNCmxpYnJhcnkoZml0ZGlzdHJwbHVzKQ0KbGlicmFyeShsb2dzcGxpbmUpDQpsaWJyYXJ5KEdHYWxseSkNCmxpYnJhcnkoZGF0YS50YWJsZSkNCmBgYA0KDQoNCmBgYHtyfQ0KDQojcXBjciA8LSByZWFkX2NzdigicVBDUiByZXN1bHRzIGZpbmFsLmNzdiIsIA0KIyAgICBjb2xfdHlwZXMgPSBjb2xzKHRyZWF0bWVudCA9IGNvbF9mYWN0b3IobGV2ZWxzID0gYygiMyIsIA0KIyAgICAgICAgIjQiKSksIHJlcGxpY2F0ZSA9IGNvbF9mYWN0b3IobGV2ZWxzID0gYygiMSIsIA0KIyAgICAgICAgIjQiLCAiNiIsICI3IiwgIjgiLCAiOSIsICIxMCIsICIxMSIsIA0KIyAgICAgICAgIjEyIikpLCBzdGFydCA9IGNvbF9kYXRlKGZvcm1hdCA9ICIlbS8lZC8lWSIpLCANCiMgICAgICAgSW5ub2N1bGF0aW9uX2RhdGUgPSBjb2xfZGF0ZShmb3JtYXQgPSAiJW0vJWQvJVkiKSwgDQojICAgICAgICBkYXRlID0gY29sX2RhdGUoZm9ybWF0ID0gIiVtLyVkLyVZIiksIA0KIyAgICAgICAgcm91bmQgPSBjb2xfZmFjdG9yKGxldmVscyA9IGMoIjEiLCANCiMgICAgICAgICAgICAiMiIsICIzIikpLCB0cmlhbCA9IGNvbF9za2lwKCkpKQ0KDQojcXBjciRjb2xvbnkgPC0gYXMuZmFjdG9yKHFwY3IkY29sb255KQ0KI3FwY3IkYmVlX2lkIDwtIGFzLmZhY3RvcihxcGNyJGJlZV9pZCkNCiNxcGNyJHNwb3JlcyA8LSBhcy5kb3VibGUocXBjciRzcG9yZXMpDQoNCiN3b3JrZXJzX2Zvcl9xcGNyX21lcmdlIDwtIHJlYWRfY3N2KCJ3b3JrZXJzX2ZvciBxcGNyIG1lcmdlLmNzdiIpDQoNCiNxcGNyIDwtIG1lcmdlKHdvcmtlcnNfZm9yX3FwY3JfbWVyZ2UsIHFwY3IsIGJ5ID0gImJlZV9pZCIsIGFsbCA9IEZBTFNFKQ0KIw0KI3FwY3IkaW5vY3VsYXRlIDwtIGFzLmxvZ2ljYWwocXBjciRpbm9jdWxhdGUpDQoNCg0KcXBjciA8LSByZWFkX2NzdigibWVyZ2VkX3FwY3IuY3N2IiwgDQogICAgY29sX3R5cGVzID0gY29scyh0cmVhdG1lbnQgPSBjb2xfZmFjdG9yKGxldmVscyA9IGMoIjMiLCANCiAgICAgICAgIjQiKSksIHJlcGxpY2F0ZSA9IGNvbF9mYWN0b3IobGV2ZWxzID0gYygiMSIsIA0KICAgICAgICAiNCIsICI2IiwgIjciLCAiOCIsICI5IiwgIjEwIiwgIjExIiwgDQogICAgICAgICIxMiIpKSwgc3RhcnQgPSBjb2xfZGF0ZShmb3JtYXQgPSAiJW0vJWQvJVkiKSwgDQogICAgICAgIElubm9jdWxhdGlvbl9kYXRlID0gY29sX2RhdGUoZm9ybWF0ID0gIiVtLyVkLyVZIiksIA0KICAgICAgICBkYXRlID0gY29sX2RhdGUoZm9ybWF0ID0gIiVtLyVkLyVZIiksIA0KICAgICAgICByb3VuZCA9IGNvbF9mYWN0b3IobGV2ZWxzID0gYygiMSIsIA0KICAgICAgICAgICAgIjIiLCAiMyIpKSwgdHJpYWwgPSBjb2xfc2tpcCgpKSkNCg0KcXBjciRkYXlzIDwtIHFwY3IkZGF5c19zaW5jZV9pbm5vY3VsYXRpb24NCg0KcXBjciRmdW5naWNpZGUgPC0gYXMubG9naWNhbChxcGNyJGZ1bmdpY2lkZSkNCnFwY3IkY3JpdGhpZGlhIDwtIGFzLmxvZ2ljYWwocXBjciRjcml0aGlkaWEpDQpxcGNyJHFybyA8LSBhcy5mYWN0b3IocXBjciRxcm8pDQpxcGNyJGNvbG9ueSA8LSBhcy5mYWN0b3IocXBjciRjb2xvbnkpDQpxcGNyJHByZW1hdHVyZV9kZWF0aCA8LSBhcy5mYWN0b3IocXBjciRwcmVtYXR1cmVfZGVhdGgpDQpxcGNyJGRyeSA8LSBhcy5kb3VibGUocXBjciRkcnkpDQpxcGNyJGJlZV9pZCA8LSBhcy5mYWN0b3IocXBjciRiZWVfaWQpDQoNCmBgYA0KDQoNCiMjIE92ZXJhbGwgcGxvdHMNCg0KYGBge3IsIGZpZy5oZWlnaHQ9IDQwLCBmaWcud2lkdGg9IDYwfQ0KDQpwIDwtIGdncGxvdChxcGNyLCBhZXMoeCA9IGRheXNfc2luY2VfaW5ub2N1bGF0aW9uLCB5ID0gc3BvcmVzLCBjb2xvciA9IGNvbG9ueSkpICsNCiAgZ2VvbV9wb2ludCgpICsgDQogIGdlb21fbGluZShhZXMoZ3JvdXAgPSBiZWVfaWQpLCBhbHBoYSA9IDAuNSkgKw0KICBsYWJzKHRpdGxlID0gIlNwb3JlcyBwZXIgQmVlIE92ZXIgVGltZSIsDQogICAgICAgeCA9ICJUaW1lIiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBTcG9yZXMiLA0KICAgICAgIGNvbG9yID0gIkNvbG9ueSIpICsNCiAgZmFjZXRfd3JhcCh+YmVlX2lkKQ0KDQppbnRlcmFjdGl2ZV9wbG90IDwtIGdncGxvdGx5KHApDQoNCmludGVyYWN0aXZlX3Bsb3QNCg0KbGlicmFyeShodG1sd2lkZ2V0cykNCg0Kc2F2ZVdpZGdldChpbnRlcmFjdGl2ZV9wbG90LCBmaWxlID0gImludGVyYWN0aXZlX3Bsb3QuaHRtbCIpDQoNCnVuaXF1ZShxcGNyJGNvbG9ueSkNCg0KYGBgDQoNCg0KIyMgU3Vic2V0IGJ5IGNvbG9ueQ0KDQpgYGB7cn0NCnN1YnNldF90My4wMSA8LSBzdWJzZXQocXBjciwgY29sb255ID09ICJUMy4wMSIpDQpzdWJzZXRfdDMuMTAgPC0gc3Vic2V0KHFwY3IsIGNvbG9ueSA9PSAiVDMuMTAiKQ0Kc3Vic2V0X3QzLjExIDwtIHN1YnNldChxcGNyLCBjb2xvbnkgPT0gIlQzLjExIikNCnN1YnNldF90My4xMiA8LSBzdWJzZXQocXBjciwgY29sb255ID09ICJUMy4xMiIpDQpzdWJzZXRfdDMuNCA8LSBzdWJzZXQocXBjciwgY29sb255ID09ICJUMy40IikNCnN1YnNldF90My42IDwtIHN1YnNldChxcGNyLCBjb2xvbnkgPT0gIlQzLjYiKQ0Kc3Vic2V0X3QzLjcgPC0gc3Vic2V0KHFwY3IsIGNvbG9ueSA9PSAiVDMuNyIpDQpzdWJzZXRfdDMuOCA8LSBzdWJzZXQocXBjciwgY29sb255ID09ICJUMy44IikNCnN1YnNldF90My45IDwtIHN1YnNldChxcGNyLCBjb2xvbnkgPT0gIlQzLjkiKQ0Kc3Vic2V0X3Q0LjAxIDwtIHN1YnNldChxcGNyLCBjb2xvbnkgPT0gIlQ0LjAxIikNCnN1YnNldF90NC4xMCA8LSBzdWJzZXQocXBjciwgY29sb255ID09ICJUNC4xMCIpDQpzdWJzZXRfdDQuMTEgPC0gc3Vic2V0KHFwY3IsIGNvbG9ueSA9PSAiVDQuMTEiKQ0Kc3Vic2V0X3Q0LjEyIDwtIHN1YnNldChxcGNyLCBjb2xvbnkgPT0gIlQ0LjEyIikNCnN1YnNldF90NC40IDwtIHN1YnNldChxcGNyLCBjb2xvbnkgPT0gIlQ0LjQiKQ0Kc3Vic2V0X3Q0LjYgPC0gc3Vic2V0KHFwY3IsIGNvbG9ueSA9PSAiVDQuNiIpDQpzdWJzZXRfdDQuNyA8LSBzdWJzZXQocXBjciwgY29sb255ID09ICJUNC43IikNCnN1YnNldF90NC44IDwtIHN1YnNldChxcGNyLCBjb2xvbnkgPT0gIlQ0LjgiKQ0Kc3Vic2V0X3Q0LjkgPC0gc3Vic2V0KHFwY3IsIGNvbG9ueSA9PSAiVDQuOSIpDQpgYGANCg0KDQoNCg0KYGBge3IsIGZpZy53aWR0aD0gMjUsIGZpZy5oZWlnaHQ9IDEwfQ0KDQpnZ3Bsb3Qoc3Vic2V0X3QzLjAxLCBhZXMoeCA9IGRheXNfc2luY2VfaW5ub2N1bGF0aW9uLCB5ID0gc3BvcmVzLCBjb2xvciA9IGlub2N1bGF0ZSkpICsNCiAgZ2VvbV9wb2ludCgpICsgDQogIGNvb3JkX2NhcnRlc2lhbih5bGltPWMoMCwgMzcwKSkgKyANCiAgZ2VvbV9saW5lKGFlcyhncm91cCA9IGJlZV9pZCksIGFscGhhID0gMC41KSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBzcG9yZXMpLCB2anVzdCA9IC0xLCBzaXplID01KSArICAjIEFkZGluZyBkYXRhIGxhYmVscw0KICBsYWJzKHRpdGxlID0gIkNyaXRoaWRpYSBzcG9yZXMgcGVyIGJlZSBvdmVyIHRpbWUiLA0KICAgICAgIHggPSAiRGF5cyBTaW5jZSBJbm9jdWxhdGlvbiIsDQogICAgICAgeSA9ICJOdW1iZXIgb2YgU3BvcmVzIikgKw0KICBmYWNldF93cmFwKH5iZWVfaWQpICsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArDQogIHRoZW1lX2dyYXkoYmFzZV9zaXplID0gMTUpDQoNCmBgYA0KDQoNCmBgYHtyLCBmaWcud2lkdGg9IDI1LCBmaWcuaGVpZ2h0PSAxMH0NCmdncGxvdChzdWJzZXRfdDMuMTAsIGFlcyh4ID0gZGF5c19zaW5jZV9pbm5vY3VsYXRpb24sIHkgPSBzcG9yZXMsIGNvbG9yID0gaW5vY3VsYXRlKSkgKw0KICBnZW9tX3BvaW50KCkgKyANCiAgY29vcmRfY2FydGVzaWFuKHlsaW09YygwLCAzNzApKSArIA0KICBnZW9tX2xpbmUoYWVzKGdyb3VwID0gYmVlX2lkKSwgYWxwaGEgPSAwLjUpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNwb3JlcyksIHZqdXN0ID0gLTEsIHNpemUgPSA1KSArICAjIEFkZGluZyBkYXRhIGxhYmVscw0KICBsYWJzKHRpdGxlID0gIkNyaXRoaWRpYSBzcG9yZXMgcGVyIGJlZSBvdmVyIHRpbWUiLA0KICAgICAgIHggPSAiRGF5cyBTaW5jZSBJbm9jdWxhdGlvbiIsDQogICAgICAgeSA9ICJOdW1iZXIgb2YgU3BvcmVzIikgKw0KICBmYWNldF93cmFwKH5iZWVfaWQpICsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArDQogIHRoZW1lX2dyYXkoYmFzZV9zaXplID0gMTUpDQpgYGANCg0KDQpgYGB7ciwgZmlnLndpZHRoPSAyNSwgZmlnLmhlaWdodD0gMTB9DQpnZ3Bsb3Qoc3Vic2V0X3QzLjExLCBhZXMoeCA9IGRheXNfc2luY2VfaW5ub2N1bGF0aW9uLCB5ID0gc3BvcmVzLCBjb2xvciA9IGlub2N1bGF0ZSkpICsNCiAgZ2VvbV9wb2ludCgpICsgDQogIGNvb3JkX2NhcnRlc2lhbih5bGltPWMoMCwgMzcwKSkgKyANCiAgZ2VvbV9saW5lKGFlcyhncm91cCA9IGJlZV9pZCksIGFscGhhID0gMC41KSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBzcG9yZXMpLCB2anVzdCA9IC0xLCBzaXplID0gNSkgKyAgIyBBZGRpbmcgZGF0YSBsYWJlbHMNCiAgbGFicyh0aXRsZSA9ICJDcml0aGlkaWEgc3BvcmVzIHBlciBiZWUgb3ZlciB0aW1lIiwNCiAgICAgICB4ID0gIkRheXMgU2luY2UgSW5vY3VsYXRpb24iLA0KICAgICAgIHkgPSAiTnVtYmVyIG9mIFNwb3JlcyIpICsNCiAgZmFjZXRfd3JhcCh+YmVlX2lkKSArDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgKw0KICB0aGVtZV9ncmF5KGJhc2Vfc2l6ZSA9IDE1KQ0KYGBgDQoNCg0KYGBge3IsIGZpZy53aWR0aD0gMjUsIGZpZy5oZWlnaHQ9IDEwfQ0KZ2dwbG90KHN1YnNldF90My4xMiwgYWVzKHggPSBkYXlzX3NpbmNlX2lubm9jdWxhdGlvbiwgeSA9IHNwb3JlcywgY29sb3IgPSBpbm9jdWxhdGUpKSArDQogIGdlb21fcG9pbnQoKSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbT1jKDAsIDM3MCkpICsgDQogIGdlb21fbGluZShhZXMoZ3JvdXAgPSBiZWVfaWQpLCBhbHBoYSA9IDAuNSkgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc3BvcmVzKSwgdmp1c3QgPSAtMSwgc2l6ZSA9IDUpICsgICMgQWRkaW5nIGRhdGEgbGFiZWxzDQogIGxhYnModGl0bGUgPSAiQ3JpdGhpZGlhIHNwb3JlcyBwZXIgYmVlIG92ZXIgdGltZSIsDQogICAgICAgeCA9ICJEYXlzIFNpbmNlIElub2N1bGF0aW9uIiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBTcG9yZXMiKSArDQogIGZhY2V0X3dyYXAofmJlZV9pZCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsNCiAgdGhlbWVfZ3JheShiYXNlX3NpemUgPSAxNSkNCmBgYA0KDQoNCmBgYHtyLCBmaWcud2lkdGg9IDI1LCBmaWcuaGVpZ2h0PSAxMH0NCmdncGxvdChzdWJzZXRfdDMuNCwgYWVzKHggPSBkYXlzX3NpbmNlX2lubm9jdWxhdGlvbiwgeSA9IHNwb3JlcywgY29sb3IgPSBpbm9jdWxhdGUpKSArDQogIGdlb21fcG9pbnQoKSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbT1jKDAsIDM3MCkpICsgDQogIGdlb21fbGluZShhZXMoZ3JvdXAgPSBiZWVfaWQpLCBhbHBoYSA9IDAuNSkgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc3BvcmVzKSwgdmp1c3QgPSAtMSwgc2l6ZSA9IDUpICsgICMgQWRkaW5nIGRhdGEgbGFiZWxzDQogIGxhYnModGl0bGUgPSAiQ3JpdGhpZGlhIHNwb3JlcyBwZXIgYmVlIG92ZXIgdGltZSIsDQogICAgICAgeCA9ICJEYXlzIFNpbmNlIElub2N1bGF0aW9uIiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBTcG9yZXMiKSArDQogIGZhY2V0X3dyYXAofmJlZV9pZCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsNCiAgdGhlbWVfZ3JheShiYXNlX3NpemUgPSAxNSkNCmBgYA0KDQoNCmBgYHtyLCBmaWcud2lkdGg9IDI1LCBmaWcuaGVpZ2h0PSAxMH0NCmdncGxvdChzdWJzZXRfdDMuNiwgYWVzKHggPSBkYXlzX3NpbmNlX2lubm9jdWxhdGlvbiwgeSA9IHNwb3JlcywgY29sb3IgPSBpbm9jdWxhdGUpKSArDQogIGdlb21fcG9pbnQoKSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbT1jKDAsIDM3MCkpICsgDQogIGdlb21fbGluZShhZXMoZ3JvdXAgPSBiZWVfaWQpLCBhbHBoYSA9IDAuNSkgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc3BvcmVzKSwgdmp1c3QgPSAtMSwgc2l6ZSA9IDUpICsgICMgQWRkaW5nIGRhdGEgbGFiZWxzDQogIGxhYnModGl0bGUgPSAiQ3JpdGhpZGlhIHNwb3JlcyBwZXIgYmVlIG92ZXIgdGltZSIsDQogICAgICAgeCA9ICJEYXlzIFNpbmNlIElub2N1bGF0aW9uIiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBTcG9yZXMiKSArDQogIGZhY2V0X3dyYXAofmJlZV9pZCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsNCiAgdGhlbWVfZ3JheShiYXNlX3NpemUgPSAxNSkNCmBgYA0KDQoNCmBgYHtyLCBmaWcud2lkdGg9IDI1LCBmaWcuaGVpZ2h0PSAxMH0NCmdncGxvdChzdWJzZXRfdDMuNywgYWVzKHggPSBkYXlzX3NpbmNlX2lubm9jdWxhdGlvbiwgeSA9IHNwb3JlcywgY29sb3IgPSBpbm9jdWxhdGUpKSArDQogIGdlb21fcG9pbnQoKSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbT1jKDAsIDM3MCkpICsgDQogIGdlb21fbGluZShhZXMoZ3JvdXAgPSBiZWVfaWQpLCBhbHBoYSA9IDAuNSkgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc3BvcmVzKSwgdmp1c3QgPSAtMSwgc2l6ZSA9IDUpICsgICMgQWRkaW5nIGRhdGEgbGFiZWxzDQogIGxhYnModGl0bGUgPSAiQ3JpdGhpZGlhIHNwb3JlcyBwZXIgYmVlIG92ZXIgdGltZSIsDQogICAgICAgeCA9ICJEYXlzIFNpbmNlIElub2N1bGF0aW9uIiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBTcG9yZXMiKSArDQogIGZhY2V0X3dyYXAofmJlZV9pZCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsNCiAgdGhlbWVfZ3JheShiYXNlX3NpemUgPSAxNSkNCmBgYA0KDQoNCmBgYHtyLCBmaWcud2lkdGg9IDI1LCBmaWcuaGVpZ2h0PSAxMH0NCmdncGxvdChzdWJzZXRfdDMuOCwgYWVzKHggPSBkYXlzX3NpbmNlX2lubm9jdWxhdGlvbiwgeSA9IHNwb3JlcywgY29sb3IgPSBpbm9jdWxhdGUpKSArDQogIGdlb21fcG9pbnQoKSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbT1jKDAsIDM3MCkpICsgDQogIGdlb21fbGluZShhZXMoZ3JvdXAgPSBiZWVfaWQpLCBhbHBoYSA9IDAuNSkgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc3BvcmVzKSwgdmp1c3QgPSAtMSwgc2l6ZSA9IDUpICsgICMgQWRkaW5nIGRhdGEgbGFiZWxzDQogIGxhYnModGl0bGUgPSAiQ3JpdGhpZGlhIHNwb3JlcyBwZXIgYmVlIG92ZXIgdGltZSIsDQogICAgICAgeCA9ICJEYXlzIFNpbmNlIElub2N1bGF0aW9uIiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBTcG9yZXMiKSArDQogIGZhY2V0X3dyYXAofmJlZV9pZCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsNCiAgdGhlbWVfZ3JheShiYXNlX3NpemUgPSAxNSkNCmBgYA0KDQoNCmBgYHtyLCBmaWcud2lkdGg9IDI1LCBmaWcuaGVpZ2h0PSAxMH0NCmdncGxvdChzdWJzZXRfdDMuOSwgYWVzKHggPSBkYXlzX3NpbmNlX2lubm9jdWxhdGlvbiwgeSA9IHNwb3JlcywgY29sb3IgPSBpbm9jdWxhdGUpKSArDQogIGdlb21fcG9pbnQoKSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbT1jKDAsIDM3MCkpICsgDQogIGdlb21fbGluZShhZXMoZ3JvdXAgPSBiZWVfaWQpLCBhbHBoYSA9IDAuNSkgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc3BvcmVzKSwgdmp1c3QgPSAtMSwgc2l6ZSA9IDUpICsgICMgQWRkaW5nIGRhdGEgbGFiZWxzDQogIGxhYnModGl0bGUgPSAiQ3JpdGhpZGlhIHNwb3JlcyBwZXIgYmVlIG92ZXIgdGltZSIsDQogICAgICAgeCA9ICJEYXlzIFNpbmNlIElub2N1bGF0aW9uIiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBTcG9yZXMiKSArDQogIGZhY2V0X3dyYXAofmJlZV9pZCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsNCiAgdGhlbWVfZ3JheShiYXNlX3NpemUgPSAxNSkNCmBgYA0KDQoNCmBgYHtyLCBmaWcud2lkdGg9IDI1LCBmaWcuaGVpZ2h0PSAxMH0NCmdncGxvdChzdWJzZXRfdDQuMDEsIGFlcyh4ID0gZGF5c19zaW5jZV9pbm5vY3VsYXRpb24sIHkgPSBzcG9yZXMsIGNvbG9yID0gaW5vY3VsYXRlKSkgKw0KICBnZW9tX3BvaW50KCkgKyANCiAgY29vcmRfY2FydGVzaWFuKHlsaW09YygwLCAzNzApKSArIA0KICBnZW9tX2xpbmUoYWVzKGdyb3VwID0gYmVlX2lkKSwgYWxwaGEgPSAwLjUpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNwb3JlcyksIHZqdXN0ID0gLTEsIHNpemUgPSA1KSArICAjIEFkZGluZyBkYXRhIGxhYmVscw0KICBsYWJzKHRpdGxlID0gIkNyaXRoaWRpYSBzcG9yZXMgcGVyIGJlZSBvdmVyIHRpbWUiLA0KICAgICAgIHggPSAiRGF5cyBTaW5jZSBJbm9jdWxhdGlvbiIsDQogICAgICAgeSA9ICJOdW1iZXIgb2YgU3BvcmVzIikgKw0KICBmYWNldF93cmFwKH5iZWVfaWQpICsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArDQogIHRoZW1lX2dyYXkoYmFzZV9zaXplID0gMTUpDQpgYGANCg0KYGBge3IsIGZpZy53aWR0aD0gMjUsIGZpZy5oZWlnaHQ9IDEwfQ0KZ2dwbG90KHN1YnNldF90NC4xMCwgYWVzKHggPSBkYXlzX3NpbmNlX2lubm9jdWxhdGlvbiwgeSA9IHNwb3JlcywgY29sb3IgPSBpbm9jdWxhdGUpKSArDQogIGdlb21fcG9pbnQoKSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbT1jKDAsIDM3MCkpICsgDQogIGdlb21fbGluZShhZXMoZ3JvdXAgPSBiZWVfaWQpLCBhbHBoYSA9IDAuNSkgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc3BvcmVzKSwgdmp1c3QgPSAtMSwgc2l6ZSA9IDUpICsgICMgQWRkaW5nIGRhdGEgbGFiZWxzDQogIGxhYnModGl0bGUgPSAiQ3JpdGhpZGlhIHNwb3JlcyBwZXIgYmVlIG92ZXIgdGltZSIsDQogICAgICAgeCA9ICJEYXlzIFNpbmNlIElub2N1bGF0aW9uIiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBTcG9yZXMiKSArDQogIGZhY2V0X3dyYXAofmJlZV9pZCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsNCiAgdGhlbWVfZ3JheShiYXNlX3NpemUgPSAxNSkNCmBgYA0KDQpgYGB7ciwgZmlnLndpZHRoPSAyNSwgZmlnLmhlaWdodD0gMTB9DQpnZ3Bsb3Qoc3Vic2V0X3Q0LjExLCBhZXMoeCA9IGRheXNfc2luY2VfaW5ub2N1bGF0aW9uLCB5ID0gc3BvcmVzLCBjb2xvciA9IGlub2N1bGF0ZSkpICsNCiAgZ2VvbV9wb2ludCgpICsgDQogIGNvb3JkX2NhcnRlc2lhbih5bGltPWMoMCwgMzcwKSkgKyANCiAgZ2VvbV9saW5lKGFlcyhncm91cCA9IGJlZV9pZCksIGFscGhhID0gMC41KSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBzcG9yZXMpLCB2anVzdCA9IC0xLCBzaXplID0gNSkgKyAgIyBBZGRpbmcgZGF0YSBsYWJlbHMNCiAgbGFicyh0aXRsZSA9ICJDcml0aGlkaWEgc3BvcmVzIHBlciBiZWUgb3ZlciB0aW1lIiwNCiAgICAgICB4ID0gIkRheXMgU2luY2UgSW5vY3VsYXRpb24iLA0KICAgICAgIHkgPSAiTnVtYmVyIG9mIFNwb3JlcyIpICsNCiAgZmFjZXRfd3JhcCh+YmVlX2lkKSArDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgKw0KICB0aGVtZV9ncmF5KGJhc2Vfc2l6ZSA9IDE1KQ0KYGBgDQoNCmBgYHtyLCBmaWcud2lkdGg9IDI1LCBmaWcuaGVpZ2h0PSAxMH0NCmdncGxvdChzdWJzZXRfdDQuMTIsIGFlcyh4ID0gZGF5c19zaW5jZV9pbm5vY3VsYXRpb24sIHkgPSBzcG9yZXMsIGNvbG9yID0gaW5vY3VsYXRlKSkgKw0KICBnZW9tX3BvaW50KCkgKyANCiAgY29vcmRfY2FydGVzaWFuKHlsaW09YygwLCAzNzApKSArIA0KICBnZW9tX2xpbmUoYWVzKGdyb3VwID0gYmVlX2lkKSwgYWxwaGEgPSAwLjUpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNwb3JlcyksIHZqdXN0ID0gLTEsIHNpemUgPSA1KSArICAjIEFkZGluZyBkYXRhIGxhYmVscw0KICBsYWJzKHRpdGxlID0gIkNyaXRoaWRpYSBzcG9yZXMgcGVyIGJlZSBvdmVyIHRpbWUiLA0KICAgICAgIHggPSAiRGF5cyBTaW5jZSBJbm9jdWxhdGlvbiIsDQogICAgICAgeSA9ICJOdW1iZXIgb2YgU3BvcmVzIikgKw0KICBmYWNldF93cmFwKH5iZWVfaWQpICsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArDQogIHRoZW1lX2dyYXkoYmFzZV9zaXplID0gMTUpDQpgYGANCg0KYGBge3IsIGZpZy53aWR0aD0gMjUsIGZpZy5oZWlnaHQ9IDEwfQ0KZ2dwbG90KHN1YnNldF90NC40LCBhZXMoeCA9IGRheXNfc2luY2VfaW5ub2N1bGF0aW9uLCB5ID0gc3BvcmVzLCBjb2xvciA9IGlub2N1bGF0ZSkpICsNCiAgZ2VvbV9wb2ludCgpICsgDQogIGNvb3JkX2NhcnRlc2lhbih5bGltPWMoMCwgMzcwKSkgKyANCiAgZ2VvbV9saW5lKGFlcyhncm91cCA9IGJlZV9pZCksIGFscGhhID0gMC41KSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBzcG9yZXMpLCB2anVzdCA9IC0xLCBzaXplID0gNSkgKyAgIyBBZGRpbmcgZGF0YSBsYWJlbHMNCiAgbGFicyh0aXRsZSA9ICJDcml0aGlkaWEgc3BvcmVzIHBlciBiZWUgb3ZlciB0aW1lIiwNCiAgICAgICB4ID0gIkRheXMgU2luY2UgSW5vY3VsYXRpb24iLA0KICAgICAgIHkgPSAiTnVtYmVyIG9mIFNwb3JlcyIpICsNCiAgZmFjZXRfd3JhcCh+YmVlX2lkKSArDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgKw0KICB0aGVtZV9ncmF5KGJhc2Vfc2l6ZSA9IDE1KQ0KYGBgDQoNCmBgYHtyLCBmaWcud2lkdGg9IDI1LCBmaWcuaGVpZ2h0PSAxMH0NCmdncGxvdChzdWJzZXRfdDQuNiwgYWVzKHggPSBkYXlzX3NpbmNlX2lubm9jdWxhdGlvbiwgeSA9IHNwb3JlcywgY29sb3IgPSBpbm9jdWxhdGUpKSArDQogIGdlb21fcG9pbnQoKSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbT1jKDAsIDM3MCkpICsgDQogIGdlb21fbGluZShhZXMoZ3JvdXAgPSBiZWVfaWQpLCBhbHBoYSA9IDAuNSkgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc3BvcmVzKSwgdmp1c3QgPSAtMSwgc2l6ZSA9IDUpICsgICMgQWRkaW5nIGRhdGEgbGFiZWxzDQogIGxhYnModGl0bGUgPSAiQ3JpdGhpZGlhIHNwb3JlcyBwZXIgYmVlIG92ZXIgdGltZSIsDQogICAgICAgeCA9ICJEYXlzIFNpbmNlIElub2N1bGF0aW9uIiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBTcG9yZXMiKSArDQogIGZhY2V0X3dyYXAofmJlZV9pZCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsNCiAgdGhlbWVfZ3JheShiYXNlX3NpemUgPSAxNSkNCmBgYA0KDQpgYGB7ciwgZmlnLndpZHRoPSAyNSwgZmlnLmhlaWdodD0gMTB9DQpnZ3Bsb3Qoc3Vic2V0X3Q0LjcsIGFlcyh4ID0gZGF5c19zaW5jZV9pbm5vY3VsYXRpb24sIHkgPSBzcG9yZXMsIGNvbG9yID0gaW5vY3VsYXRlKSkgKw0KICBnZW9tX3BvaW50KCkgKyANCiAgY29vcmRfY2FydGVzaWFuKHlsaW09YygwLCAzNzApKSArIA0KICBnZW9tX2xpbmUoYWVzKGdyb3VwID0gYmVlX2lkKSwgYWxwaGEgPSAwLjUpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IHNwb3JlcyksIHZqdXN0ID0gLTEsIHNpemUgPSA1KSArICAjIEFkZGluZyBkYXRhIGxhYmVscw0KICBsYWJzKHRpdGxlID0gIkNyaXRoaWRpYSBzcG9yZXMgcGVyIGJlZSBvdmVyIHRpbWUiLA0KICAgICAgIHggPSAiRGF5cyBTaW5jZSBJbm9jdWxhdGlvbiIsDQogICAgICAgeSA9ICJOdW1iZXIgb2YgU3BvcmVzIikgKw0KICBmYWNldF93cmFwKH5iZWVfaWQpICsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArDQogIHRoZW1lX2dyYXkoYmFzZV9zaXplID0gMTUpDQpgYGANCg0KYGBge3IsIGZpZy53aWR0aD0gMjUsIGZpZy5oZWlnaHQ9IDEwfQ0KZ2dwbG90KHN1YnNldF90NC44LCBhZXMoeCA9IGRheXNfc2luY2VfaW5ub2N1bGF0aW9uLCB5ID0gc3BvcmVzLCBjb2xvciA9IGlub2N1bGF0ZSkpICsNCiAgZ2VvbV9wb2ludCgpICsgDQogIGNvb3JkX2NhcnRlc2lhbih5bGltPWMoMCwgMzcwKSkgKyANCiAgZ2VvbV9saW5lKGFlcyhncm91cCA9IGJlZV9pZCksIGFscGhhID0gMC41KSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBzcG9yZXMpLCB2anVzdCA9IC0xLCBzaXplID0gNSkgKyAgIyBBZGRpbmcgZGF0YSBsYWJlbHMNCiAgbGFicyh0aXRsZSA9ICJDcml0aGlkaWEgc3BvcmVzIHBlciBiZWUgb3ZlciB0aW1lIiwNCiAgICAgICB4ID0gIkRheXMgU2luY2UgSW5vY3VsYXRpb24iLA0KICAgICAgIHkgPSAiTnVtYmVyIG9mIFNwb3JlcyIpICsNCiAgZmFjZXRfd3JhcCh+YmVlX2lkKSArDQogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIikgKw0KICB0aGVtZV9ncmF5KGJhc2Vfc2l6ZSA9IDE1KQ0KYGBgDQoNCmBgYHtyLCBmaWcud2lkdGg9IDI1LCBmaWcuaGVpZ2h0PSAxMH0NCmdncGxvdChzdWJzZXRfdDQuOSwgYWVzKHggPSBkYXlzX3NpbmNlX2lubm9jdWxhdGlvbiwgeSA9IHNwb3JlcywgY29sb3IgPSBpbm9jdWxhdGUpKSArDQogIGdlb21fcG9pbnQoKSArIA0KICBjb29yZF9jYXJ0ZXNpYW4oeWxpbT1jKDAsIDM3MCkpICsgDQogIGdlb21fbGluZShhZXMoZ3JvdXAgPSBiZWVfaWQpLCBhbHBoYSA9IDAuNSkgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gc3BvcmVzKSwgdmp1c3QgPSAtMSwgc2l6ZSA9IDUpICsgICMgQWRkaW5nIGRhdGEgbGFiZWxzDQogIGxhYnModGl0bGUgPSAiQ3JpdGhpZGlhIHNwb3JlcyBwZXIgYmVlIG92ZXIgdGltZSIsDQogICAgICAgeCA9ICJEYXlzIFNpbmNlIElub2N1bGF0aW9uIiwNCiAgICAgICB5ID0gIk51bWJlciBvZiBTcG9yZXMiKSArDQogIGZhY2V0X3dyYXAofmJlZV9pZCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsNCiAgdGhlbWVfZ3JheShiYXNlX3NpemUgPSAxNSkNCmBgYA0KDQoNCiMjIEF2ZXJhZ2VzIG9mIHJlc3VsdHMgDQoNCmBgYHtyfQ0KDQphZGYgPC0gcXBjciAlPiUNCiAgZ3JvdXBfYnkodHJlYXRtZW50LCBkYXlzX3NpbmNlX2lubm9jdWxhdGlvbikgJT4lDQogIHN1bW1hcmlzZShtID0gbWVhbihzcG9yZXMpLA0KICAgICAgICAgICAgc2QgPSBzZChzcG9yZXMpLA0KICAgICAgICAgICAgbCA9IGxlbmd0aChzcG9yZXMpKSAlPiUNCiAgbXV0YXRlKHNlID0gc2Qvc3FydChsKSkNCg0KYWRmJGRheXMgPC0gYWRmJGRheXNfc2luY2VfaW5ub2N1bGF0aW9uDQoNCmFkZg0KDQpgYGANCg0KDQpgYGB7ciwgZmlnLmhlaWdodD0xMCwgZmlnLndpZHRoPTEyfQ0KcmFuZ2UocXBjciRzcG9yZXNfc3RhbmRhcmRpemVkKQ0KDQpnZ3Bsb3QocXBjciwgYWVzKHggPSBkYXlzLCB5ID0gc3BvcmVzX3N0YW5kYXJkaXplZCwgY29sb3IgPSB0cmVhdG1lbnQpKSArDQogIGdlb21fcG9pbnQoc2l6ZSA9IDUpKw0KICBnZ3RpdGxlKCJBdmVyYWdlIENyaXRoaWRpYSBTcG9yZXMgcGVyIFRyZWF0bWVudCIpKw0KICB4bGFiKCJEYXlzIHNpbmNlIGNvbG9ueSBpbm9jdWxhdGlvbiIpICsNCiAgeWxhYigiQXZlcmFnZSBTcG9yZXMiKSArDQogIHNjYWxlX2ZpbGxfdmlyaWRpc19kKCkgKw0KICB0aGVtZSh0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAyMCkpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgY29sb3IgPSAiYmxhY2siKSArDQogIGZhY2V0X3dyYXAofnRyZWF0bWVudCkNCg0KYGBgDQoNCg0KYGBge3J9DQoNCnNwb3JlbW9kIDwtIGxtZXIoc3BvcmVzX3N0YW5kYXJkaXplZCB+IGZ1bmdpY2lkZSp0aW1lICsgKDF8Y29sb255KSArICgxfGJlZV9pZCkgKyByb3VuZCArIGlub2N1bGF0ZSArIGF2Z19wb2xsZW4gKyBkcnksIGRhdGEgPSBxcGNyKQ0KDQpBbm92YShzcG9yZW1vZCkNCg0Kc3VtbWFyeShzcG9yZW1vZCkNCmBgYA0KDQo=