Men and Women together

source("function for multiplot by ggplot.R")
data_sex <- subset(data, !is.na(men))
data_sex$Author <- droplevels(data_sex$Author)
Men <- ggplot(data_sex, aes(x = birth.year_high, 
                  y = men,
                  color = Author, 
                  size = n_m)) + 
  geom_line(linetype = "dashed", size = 1.2) + 
  geom_point() +
  scale_x_continuous(breaks = seq(1900, 2005, 5)) + 
  scale_y_continuous(limits=c(0,100),breaks = seq(0,100,5))+
  scale_colour_manual(name = "",
                      values = c("#EE1289", "#7FFFD4", "#838B8B", "#000000", "#0000EE", "#8B2323", "#32CD32", "#4F94CD", "#CD4F39", "#CD853F"), 
                      limits=c("Kikuchi, 1998 ,  1996", 
                               "Ogihara, 2000 ,  1990",
                               "Yamagata, 2000 ,  1988",
                               "Kikuchi, 2005 ,  1988",
                               "Tamura, 2012 ,  2009",
                               "Hirayama, 2014 ,  2008",
                               "Shiotani, 2008 ,  2005",
                               "Shibata, 2002 ,  1993",
                               "Fukao, 1993 ,  1985",
                               "loess"), 
                      labels = c("Kikuchi,1998,1996",
                                 "Ogihara,2000,1990",
                                 "Yamagata,2000,1988",
                                 "Kikuchi,2005,1988",
                                 "Tamura,2012,2009",
                                 "Hirayama,2014,2008",
                                 "Shiotani,2008,2005",
                                 "Shibata,2002,1993",
                                 "Fukao,1993,1985",
                                 "TOTAL MEN")) + 
  ylab("Prevalence in Japanese men (%)") + 
  xlab("Birth Year") + 
  geom_smooth(aes(colour = "loess"), method = "loess") + 
  theme_bw()+
  theme(legend.position = "bottom", 
        axis.text.x = element_text(size = rel(1.3)), 
        axis.text.y = element_text(size = rel(1.5)), 
        axis.title.x = element_text(size = rel(1.5)), 
        axis.title.y = element_text(size = rel(1.5)), 
        legend.text = element_text(size = rel(1.2)),
        axis.text = element_text(size = 12, face = "bold"), 
        legend.direction = "horizontal") 
Women <- ggplot(data_sex, aes(x = birth.year_high, 
                  y = women,
                  color = Author,
                  size = n_f)) + 
  geom_line(linetype = "dashed", size = 1.2) + 
  geom_point() +
  scale_x_continuous(breaks = seq(1900, 2005, 5)) + 
  scale_y_continuous(limits=c(0,100),breaks = seq(0,100,5))+
  scale_colour_manual(name = "",
                      values = c("#EE1289", "#7FFFD4", "#838B8B", "#000000", "#0000EE", "#8B2323", "#32CD32", "#4F94CD", "#CD4F39", "#CD853F"), 
                      limits=c("Kikuchi, 1998 ,  1996", 
                               "Ogihara, 2000 ,  1990",
                               "Yamagata, 2000 ,  1988",
                               "Kikuchi, 2005 ,  1988",
                               "Tamura, 2012 ,  2009",
                               "Hirayama, 2014 ,  2008",
                               "Shiotani, 2008 ,  2005",
                               "Shibata, 2002 ,  1993",
                               "Fukao, 1993 ,  1985",
                               "loess"), 
                      labels = c("Kikuchi,1998,1996",
                                 "Ogihara,2000,1990",
                                 "Yamagata,2000,1988",
                                 "Kikuchi,2005,1988",
                                 "Tamura,2012,2009",
                                 "Hirayama,2014,2008",
                                 "Shiotani,2008,2005",
                                 "Shibata,2002,1993",
                                 "Fukao,1993,1985",
                                 "TOTAL WOMEN")) + 
  ylab("Prevalence in Japanese women (%)") + 
  xlab("Birth Year") + 
  geom_smooth(aes(colour = "loess"), method = "loess") + 
  theme_bw()+
  theme(legend.position = "bottom", 
        axis.text.x = element_text(size = rel(1.3)), 
        axis.text.y = element_text(size = rel(1.5)), 
        axis.title.x = element_text(size = rel(1.5)), 
        axis.title.y = element_text(size = rel(1.5)), 
        legend.text = element_text(size = rel(1.2)),
        axis.text = element_text(size = 12, face = "bold"), 
        legend.direction = "horizontal")
multiplot(Men, Women, cols = 2)

Men only

library(plotly)
Men <- ggplot(data_sex, aes(x = birth.year_high, 
                  y = men,
                  color = Author, 
                  size = n_m)) + 
  geom_line(linetype = "dashed", size = 1.2) + 
  geom_point() +
  scale_x_continuous(breaks = seq(1900, 2005, 5)) + 
  scale_y_continuous(limits=c(0,100),breaks = seq(0,100,5))+
  scale_colour_manual(name = "",
                      values = c("#EE1289", "#7FFFD4", "#838B8B", "#000000", "#0000EE", "#8B2323", "#32CD32", "#4F94CD", "#CD4F39", "#CD853F"), 
                      limits=c("Kikuchi, 1998 ,  1996", 
                               "Ogihara, 2000 ,  1990",
                               "Yamagata, 2000 ,  1988",
                               "Kikuchi, 2005 ,  1988",
                               "Tamura, 2012 ,  2009",
                               "Hirayama, 2014 ,  2008",
                               "Shiotani, 2008 ,  2005",
                               "Shibata, 2002 ,  1993",
                               "Fukao, 1993 ,  1985",
                               "loess"), 
                      labels = c("Kikuchi,1998,1996",
                                 "Ogihara,2000,1990",
                                 "Yamagata,2000,1988",
                                 "Kikuchi,2005,1988",
                                 "Tamura,2012,2009",
                                 "Hirayama,2014,2008",
                                 "Shiotani,2008,2005",
                                 "Shibata,2002,1993",
                                 "Fukao,1993,1985",
                                 "TOTAL MEN")) + 
  ylab("Prevalence in Japanese men (%)") + 
  xlab("Birth Year") + 
  geom_smooth(aes(colour = "loess"), method = "loess") + 
  theme_bw()+
  theme(legend.position = "none", 
        axis.text.x = element_text(size = rel(1.3)), 
        axis.text.y = element_text(size = rel(1.5)), 
        axis.title.x = element_text(size = rel(1.5)), 
        axis.title.y = element_text(size = rel(1.5)), 
        legend.text = element_text(size = rel(1.2)),
        axis.text = element_text(size = 12, face = "bold"), 
        legend.direction = "horizontal") 
ggplotly(Men) 

Women only

Women <- ggplot(data_sex, aes(x = birth.year_high, 
                  y = women,
                  color = Author,
                  size = n_f)) + 
  geom_line(linetype = "dashed", size = 1.2) + 
  geom_point() +
  scale_x_continuous(breaks = seq(1900, 2005, 5)) + 
  scale_y_continuous(limits=c(0,100),breaks = seq(0,100,5))+
  scale_colour_manual(name = "",
                      values = c("#EE1289", "#7FFFD4", "#838B8B", "#000000", "#0000EE", "#8B2323", "#32CD32", "#4F94CD", "#CD4F39", "#CD853F"), 
                      limits=c("Kikuchi, 1998 ,  1996", 
                               "Ogihara, 2000 ,  1990",
                               "Yamagata, 2000 ,  1988",
                               "Kikuchi, 2005 ,  1988",
                               "Tamura, 2012 ,  2009",
                               "Hirayama, 2014 ,  2008",
                               "Shiotani, 2008 ,  2005",
                               "Shibata, 2002 ,  1993",
                               "Fukao, 1993 ,  1985",
                               "loess"), 
                      labels = c("Kikuchi,1998,1996",
                                 "Ogihara,2000,1990",
                                 "Yamagata,2000,1988",
                                 "Kikuchi,2005,1988",
                                 "Tamura,2012,2009",
                                 "Hirayama,2014,2008",
                                 "Shiotani,2008,2005",
                                 "Shibata,2002,1993",
                                 "Fukao,1993,1985",
                                 "TOTAL WOMEN")) + 
  ylab("Prevalence in Japanese women (%)") + 
  xlab("Birth Year") + 
  geom_smooth(aes(colour = "loess"), method = "loess") + 
  theme_bw()+
  theme(legend.position = "none", 
        axis.text.x = element_text(size = rel(1.3)), 
        axis.text.y = element_text(size = rel(1.5)), 
        axis.title.x = element_text(size = rel(1.5)), 
        axis.title.y = element_text(size = rel(1.5)), 
        legend.text = element_text(size = rel(1.2)),
        axis.text = element_text(size = 12, face = "bold"), 
        legend.direction = "horizontal")
ggplotly(Women) 
LS0tCnRpdGxlOiAiR3JhcGggMiAqSC5weWxvcmkqIHByZXZhbGVuY2UgaW4gSmFwYW5lc2Ugc3RyYXRpZmllZCBieSBnZW5kZXIiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCiMjICoqKk1lbiBhbmQgV29tZW4gdG9nZXRoZXIqKioKYGBge3IsIGZpZy5oZWlnaHQ9MTAsIGZpZy53aWR0aD0yNCwgd2FybmluZz1GQUxTRX0Kc291cmNlKCJmdW5jdGlvbiBmb3IgbXVsdGlwbG90IGJ5IGdncGxvdC5SIikKZGF0YV9zZXggPC0gc3Vic2V0KGRhdGEsICFpcy5uYShtZW4pKQpkYXRhX3NleCRBdXRob3IgPC0gZHJvcGxldmVscyhkYXRhX3NleCRBdXRob3IpCgpNZW4gPC0gZ2dwbG90KGRhdGFfc2V4LCBhZXMoeCA9IGJpcnRoLnllYXJfaGlnaCwgCiAgICAgICAgICAgICAgICAgIHkgPSBtZW4sCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gQXV0aG9yLCAKICAgICAgICAgICAgICAgICAgc2l6ZSA9IG5fbSkpICsgCiAgZ2VvbV9saW5lKGxpbmV0eXBlID0gImRhc2hlZCIsIHNpemUgPSAxLjIpICsgCiAgZ2VvbV9wb2ludCgpICsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDE5MDAsIDIwMDUsIDUpKSArIAogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHM9YygwLDEwMCksYnJlYWtzID0gc2VxKDAsMTAwLDUpKSsKICBzY2FsZV9jb2xvdXJfbWFudWFsKG5hbWUgPSAiIiwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IGMoIiNFRTEyODkiLCAiIzdGRkZENCIsICIjODM4QjhCIiwgIiMwMDAwMDAiLCAiIzAwMDBFRSIsICIjOEIyMzIzIiwgIiMzMkNEMzIiLCAiIzRGOTRDRCIsICIjQ0Q0RjM5IiwgIiNDRDg1M0YiKSwgCiAgICAgICAgICAgICAgICAgICAgICBsaW1pdHM9YygiS2lrdWNoaSwgMTk5OCAsICAxOTk2IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2dpaGFyYSwgMjAwMCAsICAxOTkwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZYW1hZ2F0YSwgMjAwMCAsICAxOTg4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLaWt1Y2hpLCAyMDA1ICwgIDE5ODgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRhbXVyYSwgMjAxMiAsICAyMDA5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIaXJheWFtYSwgMjAxNCAsICAyMDA4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaGlvdGFuaSwgMjAwOCAsICAyMDA1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaGliYXRhLCAyMDAyICwgIDE5OTMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1a2FvLCAxOTkzICwgIDE5ODUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvZXNzIiksIAogICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYygiS2lrdWNoaSwxOTk4LDE5OTYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2dpaGFyYSwyMDAwLDE5OTAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWFtYWdhdGEsMjAwMCwxOTg4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktpa3VjaGksMjAwNSwxOTg4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRhbXVyYSwyMDEyLDIwMDkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSGlyYXlhbWEsMjAxNCwyMDA4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNoaW90YW5pLDIwMDgsMjAwNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaGliYXRhLDIwMDIsMTk5MyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdWthbywxOTkzLDE5ODUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVE9UQUwgTUVOIikpICsgCiAgeWxhYigiUHJldmFsZW5jZSBpbiBKYXBhbmVzZSBtZW4gKCUpIikgKyAKICB4bGFiKCJCaXJ0aCBZZWFyIikgKyAKICBnZW9tX3Ntb290aChhZXMoY29sb3VyID0gImxvZXNzIiksIG1ldGhvZCA9ICJsb2VzcyIpICsgCiAgdGhlbWVfYncoKSsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiYm90dG9tIiwgCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IHJlbCgxLjMpKSwgCiAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IHJlbCgxLjUpKSwgCiAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSByZWwoMS41KSksIAogICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gcmVsKDEuNSkpLCAKICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gcmVsKDEuMikpLAogICAgICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIsIGZhY2UgPSAiYm9sZCIpLCAKICAgICAgICBsZWdlbmQuZGlyZWN0aW9uID0gImhvcml6b250YWwiKSAKCgpXb21lbiA8LSBnZ3Bsb3QoZGF0YV9zZXgsIGFlcyh4ID0gYmlydGgueWVhcl9oaWdoLCAKICAgICAgICAgICAgICAgICAgeSA9IHdvbWVuLAogICAgICAgICAgICAgICAgICBjb2xvciA9IEF1dGhvciwKICAgICAgICAgICAgICAgICAgc2l6ZSA9IG5fZikpICsgCiAgZ2VvbV9saW5lKGxpbmV0eXBlID0gImRhc2hlZCIsIHNpemUgPSAxLjIpICsgCiAgZ2VvbV9wb2ludCgpICsKICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gc2VxKDE5MDAsIDIwMDUsIDUpKSArIAogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHM9YygwLDEwMCksYnJlYWtzID0gc2VxKDAsMTAwLDUpKSsKICBzY2FsZV9jb2xvdXJfbWFudWFsKG5hbWUgPSAiIiwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IGMoIiNFRTEyODkiLCAiIzdGRkZENCIsICIjODM4QjhCIiwgIiMwMDAwMDAiLCAiIzAwMDBFRSIsICIjOEIyMzIzIiwgIiMzMkNEMzIiLCAiIzRGOTRDRCIsICIjQ0Q0RjM5IiwgIiNDRDg1M0YiKSwgCiAgICAgICAgICAgICAgICAgICAgICBsaW1pdHM9YygiS2lrdWNoaSwgMTk5OCAsICAxOTk2IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2dpaGFyYSwgMjAwMCAsICAxOTkwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZYW1hZ2F0YSwgMjAwMCAsICAxOTg4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJLaWt1Y2hpLCAyMDA1ICwgIDE5ODgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRhbXVyYSwgMjAxMiAsICAyMDA5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIaXJheWFtYSwgMjAxNCAsICAyMDA4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaGlvdGFuaSwgMjAwOCAsICAyMDA1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaGliYXRhLCAyMDAyICwgIDE5OTMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1a2FvLCAxOTkzICwgIDE5ODUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvZXNzIiksIAogICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYygiS2lrdWNoaSwxOTk4LDE5OTYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2dpaGFyYSwyMDAwLDE5OTAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWFtYWdhdGEsMjAwMCwxOTg4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktpa3VjaGksMjAwNSwxOTg4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRhbXVyYSwyMDEyLDIwMDkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSGlyYXlhbWEsMjAxNCwyMDA4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNoaW90YW5pLDIwMDgsMjAwNSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaGliYXRhLDIwMDIsMTk5MyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGdWthbywxOTkzLDE5ODUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVE9UQUwgV09NRU4iKSkgKyAKICB5bGFiKCJQcmV2YWxlbmNlIGluIEphcGFuZXNlIHdvbWVuICglKSIpICsgCiAgeGxhYigiQmlydGggWWVhciIpICsgCiAgZ2VvbV9zbW9vdGgoYWVzKGNvbG91ciA9ICJsb2VzcyIpLCBtZXRob2QgPSAibG9lc3MiKSArIAogIHRoZW1lX2J3KCkrCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gImJvdHRvbSIsIAogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KHNpemUgPSByZWwoMS4zKSksIAogICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSByZWwoMS41KSksIAogICAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gcmVsKDEuNSkpLCAKICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IHJlbCgxLjUpKSwgCiAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IHJlbCgxLjIpKSwKICAgICAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyLCBmYWNlID0gImJvbGQiKSwgCiAgICAgICAgbGVnZW5kLmRpcmVjdGlvbiA9ICJob3Jpem9udGFsIikKCgptdWx0aXBsb3QoTWVuLCBXb21lbiwgY29scyA9IDIpCmBgYAoKCgojIyAqKipNZW4gb25seSoqKgpgYGB7ciwgZmlnLmhlaWdodD04LCBmaWcud2lkdGg9MTQsIHdhcm5pbmc9RkFMU0UsIG1lc3NhZ2U9RkFMU0V9CgoKbGlicmFyeShwbG90bHkpCk1lbiA8LSBnZ3Bsb3QoZGF0YV9zZXgsIGFlcyh4ID0gYmlydGgueWVhcl9oaWdoLCAKICAgICAgICAgICAgICAgICAgeSA9IG1lbiwKICAgICAgICAgICAgICAgICAgY29sb3IgPSBBdXRob3IsIAogICAgICAgICAgICAgICAgICBzaXplID0gbl9tKSkgKyAKICBnZW9tX2xpbmUobGluZXR5cGUgPSAiZGFzaGVkIiwgc2l6ZSA9IDEuMikgKyAKICBnZW9tX3BvaW50KCkgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoMTkwMCwgMjAwNSwgNSkpICsgCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cz1jKDAsMTAwKSxicmVha3MgPSBzZXEoMCwxMDAsNSkpKwogIHNjYWxlX2NvbG91cl9tYW51YWwobmFtZSA9ICIiLAogICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gYygiI0VFMTI4OSIsICIjN0ZGRkQ0IiwgIiM4MzhCOEIiLCAiIzAwMDAwMCIsICIjMDAwMEVFIiwgIiM4QjIzMjMiLCAiIzMyQ0QzMiIsICIjNEY5NENEIiwgIiNDRDRGMzkiLCAiI0NEODUzRiIpLCAKICAgICAgICAgICAgICAgICAgICAgIGxpbWl0cz1jKCJLaWt1Y2hpLCAxOTk4ICwgIDE5OTYiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPZ2loYXJhLCAyMDAwICwgIDE5OTAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIllhbWFnYXRhLCAyMDAwICwgIDE5ODgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktpa3VjaGksIDIwMDUgLCAgMTk4OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFtdXJhLCAyMDEyICwgIDIwMDkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhpcmF5YW1hLCAyMDE0ICwgIDIwMDgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNoaW90YW5pLCAyMDA4ICwgIDIwMDUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNoaWJhdGEsIDIwMDIgLCAgMTk5MyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVrYW8sIDE5OTMgLCAgMTk4NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9lc3MiKSwgCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJLaWt1Y2hpLDE5OTgsMTk5NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPZ2loYXJhLDIwMDAsMTk5MCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZYW1hZ2F0YSwyMDAwLDE5ODgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS2lrdWNoaSwyMDA1LDE5ODgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFtdXJhLDIwMTIsMjAwOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIaXJheWFtYSwyMDE0LDIwMDgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2hpb3RhbmksMjAwOCwyMDA1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNoaWJhdGEsMjAwMiwxOTkzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1a2FvLDE5OTMsMTk4NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUT1RBTCBNRU4iKSkgKyAKICB5bGFiKCJQcmV2YWxlbmNlIGluIEphcGFuZXNlIG1lbiAoJSkiKSArIAogIHhsYWIoIkJpcnRoIFllYXIiKSArIAogIGdlb21fc21vb3RoKGFlcyhjb2xvdXIgPSAibG9lc3MiKSwgbWV0aG9kID0gImxvZXNzIikgKyAKICB0aGVtZV9idygpKwogIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbiA9ICJub25lIiwgCiAgICAgICAgYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoc2l6ZSA9IHJlbCgxLjMpKSwgCiAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IHJlbCgxLjUpKSwgCiAgICAgICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSByZWwoMS41KSksIAogICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gcmVsKDEuNSkpLCAKICAgICAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gcmVsKDEuMikpLAogICAgICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIsIGZhY2UgPSAiYm9sZCIpLCAKICAgICAgICBsZWdlbmQuZGlyZWN0aW9uID0gImhvcml6b250YWwiKSAKZ2dwbG90bHkoTWVuKSAKYGBgCgoKCiMjICoqKldvbWVuIG9ubHkqKioKYGBge3IsZmlnLmhlaWdodD04LCBmaWcud2lkdGg9MTQsIHdhcm5pbmc9RkFMU0V9CldvbWVuIDwtIGdncGxvdChkYXRhX3NleCwgYWVzKHggPSBiaXJ0aC55ZWFyX2hpZ2gsIAogICAgICAgICAgICAgICAgICB5ID0gd29tZW4sCiAgICAgICAgICAgICAgICAgIGNvbG9yID0gQXV0aG9yLAogICAgICAgICAgICAgICAgICBzaXplID0gbl9mKSkgKyAKICBnZW9tX2xpbmUobGluZXR5cGUgPSAiZGFzaGVkIiwgc2l6ZSA9IDEuMikgKyAKICBnZW9tX3BvaW50KCkgKwogIHNjYWxlX3hfY29udGludW91cyhicmVha3MgPSBzZXEoMTkwMCwgMjAwNSwgNSkpICsgCiAgc2NhbGVfeV9jb250aW51b3VzKGxpbWl0cz1jKDAsMTAwKSxicmVha3MgPSBzZXEoMCwxMDAsNSkpKwogIHNjYWxlX2NvbG91cl9tYW51YWwobmFtZSA9ICIiLAogICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gYygiI0VFMTI4OSIsICIjN0ZGRkQ0IiwgIiM4MzhCOEIiLCAiIzAwMDAwMCIsICIjMDAwMEVFIiwgIiM4QjIzMjMiLCAiIzMyQ0QzMiIsICIjNEY5NENEIiwgIiNDRDRGMzkiLCAiI0NEODUzRiIpLCAKICAgICAgICAgICAgICAgICAgICAgIGxpbWl0cz1jKCJLaWt1Y2hpLCAxOTk4ICwgIDE5OTYiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPZ2loYXJhLCAyMDAwICwgIDE5OTAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIllhbWFnYXRhLCAyMDAwICwgIDE5ODgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIktpa3VjaGksIDIwMDUgLCAgMTk4OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFtdXJhLCAyMDEyICwgIDIwMDkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhpcmF5YW1hLCAyMDE0ICwgIDIwMDgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNoaW90YW5pLCAyMDA4ICwgIDIwMDUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNoaWJhdGEsIDIwMDIgLCAgMTk5MyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRnVrYW8sIDE5OTMgLCAgMTk4NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9lc3MiKSwgCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJLaWt1Y2hpLDE5OTgsMTk5NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPZ2loYXJhLDIwMDAsMTk5MCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZYW1hZ2F0YSwyMDAwLDE5ODgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiS2lrdWNoaSwyMDA1LDE5ODgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGFtdXJhLDIwMTIsMjAwOSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIaXJheWFtYSwyMDE0LDIwMDgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2hpb3RhbmksMjAwOCwyMDA1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNoaWJhdGEsMjAwMiwxOTkzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1a2FvLDE5OTMsMTk4NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUT1RBTCBXT01FTiIpKSArIAogIHlsYWIoIlByZXZhbGVuY2UgaW4gSmFwYW5lc2Ugd29tZW4gKCUpIikgKyAKICB4bGFiKCJCaXJ0aCBZZWFyIikgKyAKICBnZW9tX3Ntb290aChhZXMoY29sb3VyID0gImxvZXNzIiksIG1ldGhvZCA9ICJsb2VzcyIpICsgCiAgdGhlbWVfYncoKSsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIsIAogICAgICAgIGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KHNpemUgPSByZWwoMS4zKSksIAogICAgICAgIGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSByZWwoMS41KSksIAogICAgICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gcmVsKDEuNSkpLCAKICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X3RleHQoc2l6ZSA9IHJlbCgxLjUpKSwgCiAgICAgICAgbGVnZW5kLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IHJlbCgxLjIpKSwKICAgICAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEyLCBmYWNlID0gImJvbGQiKSwgCiAgICAgICAgbGVnZW5kLmRpcmVjdGlvbiA9ICJob3Jpem9udGFsIikKZ2dwbG90bHkoV29tZW4pIAoKYGBgCgo=