Giorno 1 – Festival delle Arti Popolari 2026
Giorno 1 – Festival delle Arti Popolari 2026
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9Iml0Ij4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KPHRpdGxlPlByb2dyYW1tYSBEYXkgMSDigJQgRmVzdGl2YWwgZGVsbGUgQXJ0aSBQb3BvbGFyaSAyMDI2PC90aXRsZT4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PVBvcHBpbnM6d2dodEA1MDA7NjAwOzcwMCZmYW1pbHk9T3BlbitTYW5zOndnaHRANDAwOzUwMDs2MDA7NzAwJmRpc3BsYXk9c3dhcCI+CjwvaGVhZD4KPGJvZHkgc3R5bGU9Im1hcmdpbjowOyBiYWNrZ3JvdW5kOiNmZmY7Ij4KCjxzdHlsZT4KICBodG1sIHsgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYsICNjZi1wcm9ncmFtbWEtMjAyNiAqIHsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfQogICNjZi1wcm9ncmFtbWEtMjAyNiB7CiAgICAtLWluazogIzA1MDUwNTsKICAgIC0taW5rLXNvZnQ6ICM1QTU2NTI7CiAgICAtLXBhcGVyOiAjRkZGRkZGOwogICAgLS1wYW5lbDogI0Y5RjlGQjsKICAgIC0tcGFuZWwtYWx0OiAjRjJGM0Y1OwogICAgLS1ydWxlOiAjRTNFNEU4OwogICAgLS1yZWQ6ICM4QzAwMDA7CiAgICAtLWdvbGQ6ICNGRkM5MTc7CiAgICAtLW9jaHJlOiAjQzY3RDBGOwogICAgLS1vY2hyZS1kZWVwOiAjQzY3RDBGOwoKICAgIC0tY2F0LWFwZXJpdGl2bzogI0M2N0QwRjsKICAgIC0tY2F0LXRhbGs6ICMyRTVFODY7CiAgICAtLWNhdC10ZWF0cm86ICNBNjJENDY7CiAgICAtLWNhdC1tdXNpY2E6ICM2QjNBNkU7CgogICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXIpOwogICAgY29sb3I6IHZhcigtLWluayk7CiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICBsaW5lLWhlaWdodDogMS41NTsKICAgIG1heC13aWR0aDogOTAwcHg7CiAgICBtYXJnaW46IDAgYXV0bzsKICAgIHBhZGRpbmc6IGNsYW1wKDIwcHgsIDV2dywgNDRweCk7CiAgfQogICNjZi1wcm9ncmFtbWEtMjAyNiBoMiwgI2NmLXByb2dyYW1tYS0yMDI2IGgzLCAjY2YtcHJvZ3JhbW1hLTIwMjYgaDQgewogICAgZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDE1ZW07CiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7CiAgICBtYXJnaW46IDA7CiAgICBjb2xvcjogdmFyKC0taW5rKTsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IHAgeyBtYXJnaW46IDA7IH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgdWwsICNjZi1wcm9ncmFtbWEtMjAyNiBvbCB7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgbGlzdC1zdHlsZTogbm9uZTsgfQogICNjZi1wcm9ncmFtbWEtMjAyNiBzdmcgeyBmbGV4LXNocmluazogMDsgfQogICNjZi1wcm9ncmFtbWEtMjAyNiBhIHsgY29sb3I6IHZhcigtLXJlZCk7IH0KCiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtbWFzdGhlYWQgewogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgcGFkZGluZy1ib3R0b206IGNsYW1wKDE4cHgsIDR2dywgMjhweCk7CiAgICBtYXJnaW4tYm90dG9tOiBjbGFtcCgyMHB4LCA0dncsIDMycHgpOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1leWVicm93IHsKICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6IDAuODVyZW07CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6IHZhcigtLW9jaHJlLWRlZXApOwogICAgbWFyZ2luLWJvdHRvbTogOHB4OwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC10aXRsZSB7CiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDZ2dywgM3JlbSk7CiAgICBsaW5lLWhlaWdodDogMS4wODsKICAgIGNvbG9yOiB2YXIoLS1yZWQpOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1zdWJ0aXRsZSB7CiAgICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOwogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGZvbnQtc2l6ZTogY2xhbXAoMS4wNXJlbSwgM3Z3LCAxLjNyZW0pOwogICAgY29sb3I6IHZhcigtLXJlZCk7CiAgICBtYXJnaW4tdG9wOiA4cHg7CiAgICBtYXJnaW4tYm90dG9tOiAyMHB4OwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1kYXktbGFiZWwgewogICAgZm9udC1zaXplOiBjbGFtcCgxLjVyZW0sIDQuNXZ3LCAyLjFyZW0pOwogICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgbWFyZ2luLWJvdHRvbTogMDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtZGF0ZXRpbWUgewogICAgbWFyZ2luLXRvcDogMTBweDsKICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgIGNvbG9yOiB2YXIoLS1pbmstc29mdCk7CiAgfQoKICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1mcmVlLWJhbm5lciB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiAxMHB4OwogICAgYmFja2dyb3VuZDogdmFyKC0tcmVkKTsKICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgZm9udC1zaXplOiBjbGFtcCgxcmVtLCAzdncsIDEuMnJlbSk7CiAgICBwYWRkaW5nOiAxNHB4IDIwcHg7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgbWFyZ2luLWJvdHRvbTogY2xhbXAoMjRweCwgNXZ3LCAzNnB4KTsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtZnJlZS1iYW5uZXIgc3ZnIHsgd2lkdGg6IDIycHg7IGhlaWdodDogMjJweDsgfQoKICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1pbmZvLWJveCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ydWxlKTsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBwYWRkaW5nOiBjbGFtcCgxOHB4LCA0dncsIDI2cHgpOwogICAgbWFyZ2luOiBjbGFtcCgyOHB4LCA1dncsIDQwcHgpIDA7CiAgfQoKICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1hcmNpLWJveCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1yZWQpOwogICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgIHBhZGRpbmc6IGNsYW1wKDE4cHgsIDR2dywgMjZweCk7CiAgICBtYXJnaW46IGNsYW1wKDI4cHgsIDV2dywgNDBweCkgMDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYXJjaS1ib3ggaDMgeyBjb2xvcjogdmFyKC0tZ29sZCk7IG1hcmdpbi1ib3R0b206IDEycHg7IH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1hcmNpLWJveCBwIHsgZm9udC1zaXplOiAwLjlyZW07IGNvbG9yOiAjZmZmOyBtYXJnaW4tYm90dG9tOiAxMHB4OyB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYXJjaS1ib3ggcDpsYXN0LW9mLXR5cGUgeyBtYXJnaW4tYm90dG9tOiAxNHB4OyB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYXJjaS1ib3ggLmNmcC1zdXBwb3J0LWJ0biB7IGJhY2tncm91bmQ6IHZhcigtLW9jaHJlLWRlZXApOyBjb2xvcjogI2ZmZjsgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLWFyY2ktYm94IC5jZnAtc3VwcG9ydC1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsgY29sb3I6ICNmZmY7IH0KCiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtcXVpY2tsaW5rcyB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXJnaW4tYm90dG9tOiBjbGFtcCgyOHB4LCA1dncsIDQwcHgpOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1xdWlja2xpbmtzLWxhYmVsIHsKICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6IDAuODVyZW07CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6IHZhcigtLW9jaHJlLWRlZXApOwogICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtcXVpY2tsaW5rcy1idG5zIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LXdyYXA6IG5vd3JhcDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiAxMnB4OwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1xdWlja2xpbmstYnRuIHsKICAgIGRpc3BsYXk6IGlubGluZS1mbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiA4cHg7CiAgICBmbGV4OiAxIDEgMDsKICAgIG1pbi13aWR0aDogMDsKICAgIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKICAgIGZvbnQtc2l6ZTogMS4xNXJlbTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBsZXR0ZXItc3BhY2luZzogMC4wMTVlbTsKICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7CiAgICBwYWRkaW5nOiAxNXB4IDI4cHg7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGNvbG9yIDAuMTVzIGVhc2U7CiAgfQogIEBtZWRpYSAobWF4LXdpZHRoOiA0MjBweCkgewogICAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtcXVpY2tsaW5rcy1idG5zIHsgZ2FwOiA4cHg7IH0KICAgICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLXF1aWNrbGluay1idG4gewogICAgICBwYWRkaW5nOiAxMnB4IDE0cHg7CiAgICAgIGZvbnQtc2l6ZTogMC45MnJlbTsKICAgICAgZ2FwOiA2cHg7CiAgICB9CiAgICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1xdWlja2xpbmstYnRuIHN2ZyB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IH0KICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtcXVpY2tsaW5rLWJ0biBzdmcgewogICAgd2lkdGg6IDIycHg7IGhlaWdodDogMjJweDsKICAgIHN0cm9rZTogY3VycmVudENvbG9yOyBmaWxsOiBub25lOyBzdHJva2Utd2lkdGg6IDEuODsKICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtcXVpY2tsaW5rLWJ0bi0tc29saWQsCiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtcXVpY2tsaW5rLWJ0bi0tb3V0bGluZSB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1yZWQpOwogICAgY29sb3I6ICNmZmY7CiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLXJlZCk7CiAgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLXF1aWNrbGluay1idG4tLXNvbGlkOmhvdmVyLAogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLXF1aWNrbGluay1idG4tLW91dGxpbmU6aG92ZXIgewogICAgYmFja2dyb3VuZDogdmFyKC0tZ29sZCk7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ29sZCk7CiAgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLXF1aWNrbGluay1idG46Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDNweCBzb2xpZCB2YXIoLS1nb2xkKTsgb3V0bGluZS1vZmZzZXQ6IDJweDsgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLW5vdGljZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiAxMHB4OwogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICBmb250LXNpemU6IDAuOTJyZW07CiAgICBjb2xvcjogdmFyKC0taW5rLXNvZnQpOwogICAgcGFkZGluZy1ib3R0b206IDE4cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxOHB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXJ1bGUpOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1ub3RpY2Ugc3ZnIHsgd2lkdGg6IDE4cHg7IGhlaWdodDogMThweDsgbWFyZ2luLXRvcDogMnB4OyBjb2xvcjogdmFyKC0tcmVkKTsgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLWxlZ2VuZC10aXRsZSB7CiAgICBmb250LXNpemU6IDFyZW07CiAgICBtYXJnaW4tYm90dG9tOiAxNHB4OwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1sZWdlbmQtZ3JpZCB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTkwcHgsIDFmcikpOwogICAgZ2FwOiAxMHB4IDE2cHg7CiAgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLWxlZ2VuZC1ncmlkIGxpIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA5cHg7CiAgICBmb250LXNpemU6IDAuODZyZW07CiAgICBjb2xvcjogdmFyKC0taW5rKTsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtbGVnZW5kLWdyaWQgc3ZnIHsKICAgIHdpZHRoOiAyMnB4OyBoZWlnaHQ6IDIycHg7CiAgICBjb2xvcjogdmFyKC0tcmVkKTsKICAgIHN0cm9rZTogY3VycmVudENvbG9yOwogICAgZmlsbDogbm9uZTsKICAgIHN0cm9rZS13aWR0aDogMS42OwogICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICB9CgogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLXNlY3Rpb24taGVhZGluZyB7CiAgICBmb250LXNpemU6IDEuM3JlbTsKICAgIG1hcmdpbi1ib3R0b206IDE2cHg7CiAgICBjb2xvcjogdmFyKC0tcmVkKTsKICB9CgogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLWZpbHRlcnMtdG9nZ2xlIHsKICAgIGRpc3BsYXk6IG5vbmU7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA4cHg7CiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6IDAuODhyZW07CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6IHZhcigtLXJlZCk7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlcik7CiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLXJlZCk7CiAgICBib3JkZXItcmFkaXVzOiA5OTlweDsKICAgIHBhZGRpbmc6IDhweCAxOHB4OwogICAgbWFyZ2luLWJvdHRvbTogMTJweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtZmlsdGVycy10b2dnbGUgc3ZnIHsKICAgIHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7CiAgICBzdHJva2U6IGN1cnJlbnRDb2xvcjsgZmlsbDogbm9uZTsgc3Ryb2tlLXdpZHRoOiAyOwogICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1maWx0ZXJzLXRvZ2dsZTpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogM3B4IHNvbGlkIHZhcigtLWdvbGQpOyBvdXRsaW5lLW9mZnNldDogMnB4OyB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtZmlsdGVycy10b2dnbGVbYXJpYS1leHBhbmRlZD0idHJ1ZSJdIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLXJlZCk7CiAgICBjb2xvcjogI2ZmZjsKICB9CiAgQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7CiAgICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1maWx0ZXJzLXRvZ2dsZSB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyB9CiAgICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1maWx0ZXJzLXdyYXAgeyBkaXNwbGF5OiBub25lOyB9CiAgICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1maWx0ZXJzLXdyYXAuaXMtb3BlbiB7IGRpc3BsYXk6IGJsb2NrOyB9CiAgfQoKICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1maWx0ZXJiYXIgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGdhcDogOHB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBhZGRpbmc6IDZweCAwIDE4cHg7CiAgICBtYXJnaW4tYm90dG9tOiA0cHg7CiAgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLWNoaXAgewogICAgZm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOwogICAgZm9udC1zaXplOiAwLjg0cmVtOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyKTsKICAgIGNvbG9yOiB2YXIoLS1yZWQpOwogICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1yZWQpOwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBwYWRkaW5nOiA3cHggMTZweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtY2hpcDpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLXBhbmVsLWFsdCk7IH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1jaGlwOmZvY3VzLXZpc2libGUgeyBvdXRsaW5lOiAzcHggc29saWQgdmFyKC0tZ29sZCk7IG91dGxpbmUtb2Zmc2V0OiAycHg7IH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1jaGlwW2FyaWEtcHJlc3NlZD0idHJ1ZSJdIHsKICAgIGJhY2tncm91bmQ6IHZhcigtLXJlZCk7CiAgICBjb2xvcjogI2ZmZjsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtbGl2ZS1jb3VudCB7CiAgICBmb250LXNpemU6IDAuODJyZW07CiAgICBjb2xvcjogdmFyKC0taW5rLXNvZnQpOwogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgfQoKICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1hMTF5LWZpbHRlciB7CiAgICBib3JkZXI6IG5vbmU7CiAgICBtYXJnaW46IDAgMCAxMHB4OwogICAgcGFkZGluZzogMDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYTExeS1maWx0ZXItbGVnZW5kIHsKICAgIGZvbnQtc2l6ZTogMC44MnJlbTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjb2xvcjogdmFyKC0taW5rLXNvZnQpOwogICAgcGFkZGluZzogMDsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtcGVyaW9kLWZpbHRlci1sYWJlbCB7CiAgICBmb250LXNpemU6IDAuODJyZW07CiAgICBmb250LXdlaWdodDogNjAwOwogICAgY29sb3I6IHZhcigtLWluay1zb2Z0KTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtZmlsdGVyYmFyLS1wZXJpb2QgeyBwYWRkaW5nLXRvcDogMDsgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLWExMXktZmlsdGVyLW9wdGlvbnMgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGdhcDogOHB4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYTExeS1maWx0ZXItY2hpcCB7CiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDZweDsKICAgIGZvbnQtc2l6ZTogMC44MnJlbTsKICAgIGNvbG9yOiB2YXIoLS1pbmspOwogICAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXIpOwogICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1ydWxlKTsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgcGFkZGluZzogNnB4IDEycHggNnB4IDlweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYTExeS1maWx0ZXItY2hpcCBzdmcgewogICAgd2lkdGg6IDE2cHg7IGhlaWdodDogMTZweDsKICAgIHN0cm9rZTogY3VycmVudENvbG9yOyBmaWxsOiBub25lOyBzdHJva2Utd2lkdGg6IDEuNjsKICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYTExeS1maWx0ZXItY2hpcCBpbnB1dCB7CiAgICB3aWR0aDogMTVweDsKICAgIGhlaWdodDogMTVweDsKICAgIG1hcmdpbjogMDsKICAgIGFjY2VudC1jb2xvcjogdmFyKC0tcmVkKTsKICAgIGZsZXgtc2hyaW5rOiAwOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1hMTF5LWZpbHRlci1jaGlwIGlucHV0OmZvY3VzLXZpc2libGUgewogICAgb3V0bGluZTogM3B4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgb3V0bGluZS1vZmZzZXQ6IDJweDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYTExeS1maWx0ZXItY2hpcC5pcy1jaGVja2VkIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcmVkKTsKICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1yZWQpIDglLCB2YXIoLS1wYXBlcikpOwogICAgY29sb3I6IHZhcigtLXJlZCk7CiAgICBmb250LXdlaWdodDogNjAwOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1hMTF5LWZpbHRlci1yZXNldCB7CiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6IDAuOHJlbTsKICAgIGNvbG9yOiB2YXIoLS1yZWQpOwogICAgYmFja2dyb3VuZDogbm9uZTsKICAgIGJvcmRlcjogbm9uZTsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgcGFkZGluZzogNnB4IDRweDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYTExeS1maWx0ZXItcmVzZXQ6Zm9jdXMtdmlzaWJsZSB7CiAgICBvdXRsaW5lOiAzcHggc29saWQgdmFyKC0tZ29sZCk7CiAgICBvdXRsaW5lLW9mZnNldDogMnB4OwogIH0KCiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtdGltZWxpbmUgewogICAgbWFyZ2luLXRvcDogMTZweDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHBhZGRpbmctbGVmdDogMjZweDsKICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tcnVsZSk7CiAgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLXRpbWVsaW5lLWl0ZW0gewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgcGFkZGluZy1ib3R0b206IGNsYW1wKDE4cHgsIDR2dywgMjZweCk7CiAgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLXRpbWVsaW5lLWl0ZW06OmJlZm9yZSB7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGxlZnQ6IC0zMXB4OwogICAgdG9wOiA2cHg7CiAgICB3aWR0aDogMTBweDsKICAgIGhlaWdodDogMTBweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJhY2tncm91bmQ6IHZhcigtLWNhdCwgdmFyKC0tcmVkKSk7CiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1wYXBlcik7CiAgICBib3gtc2hhZG93OiAwIDAgMCAxLjVweCB2YXIoLS1jYXQsIHZhcigtLXJlZCkpOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC10aW1lbGluZS1pdGVtW2hpZGRlbl0geyBkaXNwbGF5OiBub25lOyB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtY2FyZCB7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wYW5lbCk7CiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ydWxlKTsKICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgICBwYWRkaW5nOiBjbGFtcCgxNHB4LCAzdncsIDIwcHgpOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1jYXJkLXRvcCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC13cmFwOiB3cmFwOwogICAgZ2FwOiAxMHB4IDEycHg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgbWFyZ2luLWJvdHRvbTogOHB4OwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC10aW1lIHsKICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtczsKICAgIGNvbG9yOiB2YXIoLS1pbmspOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1jYXQtdGFnIHsKICAgIGZvbnQtc2l6ZTogMC43MnJlbTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBwYWRkaW5nOiA0cHggMTFweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgY29sb3I6IHZhcigtLWNhdCwgdmFyKC0tcmVkKSk7CiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2F0LCB2YXIoLS1yZWQpKSAxNCUsIHZhcigtLXBhcGVyKSk7CiAgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLWJhZGdlIHsKICAgIGZvbnQtc2l6ZTogMC43MnJlbTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBwYWRkaW5nOiA0cHggMTFweDsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgY29sb3I6ICNmZmY7CiAgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLWJhZGdlLS1ib29raW5nIHsgYmFja2dyb3VuZDogdmFyKC0tb2NocmUtZGVlcCk7IH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1iYWRnZS0tYXJjaSB7IGJhY2tncm91bmQ6IHZhcigtLXJlZCk7IH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1jYXJkIGg0IHsKICAgIGZvbnQtc2l6ZTogMS4xNXJlbTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKICAgIGNvbG9yOiB2YXIoLS1pbmspOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1tZXRhIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiA1cHg7CiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1tZXRhLWxpbmUgewogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogOHB4OwogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICBmb250LXNpemU6IDAuODhyZW07CiAgICBjb2xvcjogdmFyKC0taW5rLXNvZnQpOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1tZXRhLWxpbmUgc3ZnIHsKICAgIHdpZHRoOiAxNnB4OyBoZWlnaHQ6IDE2cHg7IG1hcmdpbi10b3A6IDJweDsKICAgIHN0cm9rZTogY3VycmVudENvbG9yOyBmaWxsOiBub25lOyBzdHJva2Utd2lkdGg6IDEuNjsKICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYTExeS1yb3cgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGdhcDogOHB4OwogICAgbWFyZ2luLXRvcDogMTBweDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtYTExeS1waWxsIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA1cHg7CiAgICBmb250LXNpemU6IDAuNzRyZW07CiAgICBjb2xvcjogdmFyKC0taW5rKTsKICAgIGJhY2tncm91bmQ6IHZhcigtLXBhcGVyKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXJ1bGUpOwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBwYWRkaW5nOiAzcHggMTBweCAzcHggN3B4OwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1hMTF5LXBpbGwgc3ZnIHsKICAgIHdpZHRoOiAxNHB4OyBoZWlnaHQ6IDE0cHg7CiAgICBzdHJva2U6IHZhcigtLXJlZCk7IGZpbGw6IG5vbmU7IHN0cm9rZS13aWR0aDogMS42OwogICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kOyBzdHJva2UtbGluZWpvaW46IHJvdW5kOwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1ub3RlIHsKICAgIG1hcmdpbi10b3A6IDEwcHg7CiAgICBmb250LXNpemU6IDAuODRyZW07CiAgICBjb2xvcjogdmFyKC0taW5rLXNvZnQpOwogIH0KCiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtaW5zZXJ0cyB7CiAgICBtYXJnaW4tdG9wOiBjbGFtcCgzMHB4LCA2dncsIDQ0cHgpOwogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjYwcHgsIDFmcikpOwogICAgZ2FwOiAyMHB4OwogIH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1pbnNlcnQgewogICAgYmFja2dyb3VuZDogdmFyKC0tcGFuZWwpOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcnVsZSk7CiAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgcGFkZGluZzogY2xhbXAoMTZweCwgM3Z3LCAyMnB4KTsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtaW5zZXJ0IGgzIHsKICAgIGZvbnQtc2l6ZTogMS4wOHJlbTsKICAgIG1hcmdpbi1ib3R0b206IDEycHg7CiAgICBjb2xvcjogdmFyKC0tcmVkKTsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtaW5zZXJ0IHVsIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA4cHg7IH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1pbnNlcnQgbGkgewogICAgZm9udC1zaXplOiAwLjlyZW07CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiA4cHg7CiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtaW5zZXJ0IGxpIHN2ZyB7CiAgICB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyBtYXJnaW4tdG9wOiAycHg7IGNvbG9yOiB2YXIoLS1vY2hyZSk7CiAgICBzdHJva2U6IGN1cnJlbnRDb2xvcjsgZmlsbDogbm9uZTsgc3Ryb2tlLXdpZHRoOiAxLjY7CiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7IHN0cm9rZS1saW5lam9pbjogcm91bmQ7CiAgfQogICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLWluc2VydC0tc3VwcG9ydCBwIHsgZm9udC1zaXplOiAwLjlyZW07IGNvbG9yOiB2YXIoLS1pbmstc29mdCk7IG1hcmdpbi1ib3R0b206IDE0cHg7IH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1zdXBwb3J0LWJ0biB7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICBmb250LWZhbWlseTogJ09wZW4gU2FucycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICBmb250LXdlaWdodDogNjAwOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuMDE1ZW07CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1vY2hyZS1kZWVwKTsKICAgIGNvbG9yOiAjZmZmOwogICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgIHBhZGRpbmc6IDExcHggMjNweDsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTsKICB9CiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtc3VwcG9ydC1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1nb2xkKTsgY29sb3I6ICNmZmY7IH0KICAjY2YtcHJvZ3JhbW1hLTIwMjYgLmNmcC1zdXBwb3J0LWJ0bjpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogM3B4IHNvbGlkIHZhcigtLXJlZCk7IG91dGxpbmUtb2Zmc2V0OiAycHg7IH0KCiAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtbm9zY3JpcHQgewogICAgcGFkZGluZzogMTZweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXJ1bGUpOwogICAgYm9yZGVyLXJhZGl1czogMTBweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIGNvbG9yOiB2YXIoLS1pbmstc29mdCk7CiAgfQoKICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogICAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtY2hpcCwKICAgICNjZi1wcm9ncmFtbWEtMjAyNiAuY2ZwLXN1cHBvcnQtYnRuLAogICAgI2NmLXByb2dyYW1tYS0yMDI2IC5jZnAtcXVpY2tsaW5rLWJ0biB7IHRyYW5zaXRpb246IG5vbmU7IH0KICB9Cjwvc3R5bGU+Cgo8c2VjdGlvbiBpZD0iY2YtcHJvZ3JhbW1hLTIwMjYiIGNsYXNzPSJjZnAiPgoKICA8cCBjbGFzcz0iY2ZwLWZyZWUtYmFubmVyIj4KICAgIFR1dHRpIGdsaSBldmVudGkgc29ubyBncmF0dWl0aQogIDwvcD4KCiAgPGRpdiBjbGFzcz0iY2ZwLXF1aWNrbGlua3MiPgogICAgPGRpdiBjbGFzcz0iY2ZwLXF1aWNrbGlua3MtYnRucyI+CiAgICAgIDxhIGNsYXNzPSJjZnAtcXVpY2tsaW5rLWJ0biBjZnAtcXVpY2tsaW5rLWJ0bi0tc29saWQiIGhyZWY9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvP2FwaT0xJnF1ZXJ5PUtvbnRpa2klMkMlMjB2aWElMjBDaWdsaWFubyUyMDclMkMlMjBUb3Jpbm8iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4KICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPjxwYXRoIGQ9Ik0xMiAyMXM3LTcuNCA3LTEyYTcgNyAwIDEgMC0xNCAwYzAgNC42IDcgMTIgNyAxMloiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjkiIHI9IjIuMyIvPjwvc3ZnPgogICAgICAgIE1hcHBhCiAgICAgIDwvYT4KICAgICAgPGEgY2xhc3M9ImNmcC1xdWlja2xpbmstYnRuIGNmcC1xdWlja2xpbmstYnRuLS1vdXRsaW5lIiBocmVmPSIjY2ZwLWxlZ2VuZC10aXRsZSI+CiAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjYiIHI9IjIuNiIvPjxyZWN0IHg9IjkuNiIgeT0iMTAiIHdpZHRoPSI0LjgiIGhlaWdodD0iNyIgcng9IjIuNCIvPjxsaW5lIHgxPSI5LjYiIHkxPSIxMiIgeDI9IjUiIHkyPSI5Ii8+PGxpbmUgeDE9IjE0LjQiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iOSIvPjwvc3ZnPgogICAgICAgIExlZ2VuZGEgYWNjZXNzaWJpbGl0w6AKICAgICAgPC9hPgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDxoMyBjbGFzcz0iY2ZwLXNlY3Rpb24taGVhZGluZyIgaWQ9ImNmcC10aW1lbGluZS1oZWFkaW5nIj5Qcm9ncmFtbWEgZGVsbGEgZ2lvcm5hdGE8L2gzPgoKICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNmcC1maWx0ZXJzLXRvZ2dsZSIgaWQ9ImNmcC1maWx0ZXJzLXRvZ2dsZSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9ImNmcC1maWx0ZXJzLXdyYXAiPgogICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48bGluZSB4MT0iNCIgeTE9IjciIHgyPSIyMCIgeTI9IjciLz48bGluZSB4MT0iNCIgeTE9IjEyIiB4Mj0iMjAiIHkyPSIxMiIvPjxsaW5lIHgxPSI0IiB5MT0iMTciIHgyPSIyMCIgeTI9IjE3Ii8+PC9zdmc+CiAgICBGaWx0cmkKICA8L2J1dHRvbj4KCiAgPGRpdiBjbGFzcz0iY2ZwLWZpbHRlcnMtd3JhcCIgaWQ9ImNmcC1maWx0ZXJzLXdyYXAiPgogICAgPGRpdiBjbGFzcz0iY2ZwLWZpbHRlcmJhciIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IkZpbHRyYSBpbCBwcm9ncmFtbWEgcGVyIHRpcG8gZGkgYXR0aXZpdMOgIiBpZD0iY2ZwLWZpbHRlcmJhciI+PC9kaXY+CgogICAgPHAgY2xhc3M9ImNmcC1wZXJpb2QtZmlsdGVyLWxhYmVsIj5GYXNjaWEgb3JhcmlhPC9wPgogICAgPGRpdiBjbGFzcz0iY2ZwLWZpbHRlcmJhciBjZnAtZmlsdGVyYmFyLS1wZXJpb2QiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSJGaWx0cmEgcGVyIGZhc2NpYSBvcmFyaWEiIGlkPSJjZnAtcGVyaW9kLWZpbHRlcmJhciI+PC9kaXY+CgogICAgPGZpZWxkc2V0IGNsYXNzPSJjZnAtYTExeS1maWx0ZXIiPgogICAgICA8bGVnZW5kIGNsYXNzPSJjZnAtYTExeS1maWx0ZXItbGVnZW5kIj5GaWx0cmEgcGVyIGFjY2Vzc2liaWxpdMOgPC9sZWdlbmQ+CiAgICAgIDxkaXYgY2xhc3M9ImNmcC1hMTF5LWZpbHRlci1vcHRpb25zIiBpZD0iY2ZwLWExMXktZmlsdGVycyI+PC9kaXY+CiAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2ZwLWExMXktZmlsdGVyLXJlc2V0IiBpZD0iY2ZwLWExMXktZmlsdGVyLXJlc2V0IiBoaWRkZW4+UmltdW92aSBmaWx0cmkgYWNjZXNzaWJpbGl0w6A8L2J1dHRvbj4KICAgIDwvZmllbGRzZXQ+CiAgPC9kaXY+CgogIDxwIGNsYXNzPSJjZnAtbGl2ZS1jb3VudCIgaWQ9ImNmcC1saXZlLWNvdW50IiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9wPgoKICA8b2wgY2xhc3M9ImNmcC10aW1lbGluZSIgaWQ9ImNmcC10aW1lbGluZSIgYXJpYS1sYWJlbGxlZGJ5PSJjZnAtdGltZWxpbmUtaGVhZGluZyI+PC9vbD4KCiAgPGRpdiBjbGFzcz0iY2ZwLWluZm8tYm94Ij4KICAgIDxwIGNsYXNzPSJjZnAtbm90aWNlIj4KICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iY3VycmVudENvbG9yIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjEuOCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iOS4yIi8+PGxpbmUgeDE9IjEyIiB5MT0iOCIgeDI9IjEyIiB5Mj0iMTMiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjE2LjMiIHI9IjAuMTUiIHN0cm9rZS13aWR0aD0iMi40Ii8+PC9zdmc+CiAgICAgIDxzcGFuPlBlciBxdWVzdGEgZ2lvcm5hdGEgbm9uIMOoIHByZXZpc3RvIGlsIHNlcnZpemlvIGRpIGludGVycHJldGFyaWF0byBMSVMuPC9zcGFuPgogICAgPC9wPgogICAgPHAgY2xhc3M9ImNmcC1ub3RpY2UiPgogICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iMS44IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIj48cGF0aCBkPSJNMTUgNGgtMmE1IDUgMCAwIDAtNSA1djZhNSA1IDAgMCAwIDUgNWgyIi8+PHBhdGggZD0iTTEwIDEyaDExIi8+PHBvbHlsaW5lIHBvaW50cz0iMTcsOC41IDIxLDEyIDE3LDE1LjUiLz48L3N2Zz4KICAgICAgPHNwYW4+SW4gb2duaSBtb21lbnRvIHB1b2kgZW50cmFyZSwgdXNjaXJlIGUgYWx6YXJ0aSBxdWFuZG8gdnVvaS48L3NwYW4+CiAgICA8L3A+CiAgICA8aDMgY2xhc3M9ImNmcC1sZWdlbmQtdGl0bGUiIGlkPSJjZnAtbGVnZW5kLXRpdGxlIj5MZWdlbmRhIGFjY2Vzc2liaWxpdMOgPC9oMz4KICAgIDx1bCBjbGFzcz0iY2ZwLWxlZ2VuZC1ncmlkIiBpZD0iY2ZwLWxlZ2VuZCIgYXJpYS1sYWJlbGxlZGJ5PSJjZnAtbGVnZW5kLXRpdGxlIj48L3VsPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJjZnAtYXJjaS1ib3giPgogICAgPGgzPlRlc3NlcmEgQVJDSTwvaDM+CiAgICA8cD5Ob24gc2VpIGlzY3JpdHRvIGFsIGNpcmNvbG8gQVJDST8gU2NhcmljYSBsJ2FwcCwgcmVnaXN0cmF0aSBlIHJpdGlyYSBsYSB2ZXJzaW9uZSBjYXJ0YWNlYSBkaXJldHRhbWVudGUgaWwgZ2lvcm5vIGRlbGwnZXZlbnRvLjwvcD4KICAgIDxwPlBlciBldml0YXJlIGNvZGUgaW4gYmlnbGlldHRlcmlhIHB1b2kgZ2nDoCBmYXJlIGxhIHByZS1pc2NyaXppb25lIEFSQ0kgcXVpIHNvdHRvIOKAlCBzaSBzYWxkYSBwb2kgZGlyZXR0YW1lbnRlIGluIGNhc3NhLjwvcD4KICAgIDxhIGNsYXNzPSJjZnAtc3VwcG9ydC1idG4iIGhyZWY9Imh0dHBzOi8vdGVzc2VyYS1hcmNpLml0LyI+VmFpIGEgdGVzc2VyYS1hcmNpLml0PC9hPgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJjZnAtaW5zZXJ0cyI+CiAgICA8ZGl2IGNsYXNzPSJjZnAtaW5zZXJ0IGNmcC1pbnNlcnQtLWZvb2QiPgogICAgICA8aDM+Q2libyBlIGJldmFuZGU8L2gzPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjZnAtaW5zZXJ0IGNmcC1pbnNlcnQtLXN1cHBvcnQiPgogICAgICA8aDM+U29zdGllbmkgaWwgZmVzdGl2YWw8L2gzPgogICAgICA8cD5JbCBGZXN0aXZhbCBkZWxsZSBBcnRpIFBvcG9sYXJpIHZpdmUgYW5jaGUgZ3JhemllIGFsIGNvbnRyaWJ1dG8gZGkgY2hpIGxvIHZpdmUuIEkgZGV0dGFnbGkgc3VsbGUgbW9kYWxpdMOgIGRpIGRvbmF6aW9uZSBzYXJhbm5vIHB1YmJsaWNhdGkgYSBicmV2ZS48L3A+CiAgICAgIDxhIGNsYXNzPSJjZnAtc3VwcG9ydC1idG4iIGhyZWY9IiMiPlNjb3ByaSBjb21lIHNvc3RlbmVyY2k8L2E+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPG5vc2NyaXB0PjxwIGNsYXNzPSJjZnAtbm9zY3JpcHQiPkF0dGl2YSBKYXZhU2NyaXB0IG5lbCBicm93c2VyIHBlciB2aXN1YWxpenphcmUgaWwgcHJvZ3JhbW1hIGludGVyYXR0aXZvIGRlbCBmZXN0aXZhbC48L3A+PC9ub3NjcmlwdD4KPC9zZWN0aW9uPgoKPHNjcmlwdD4KKGZ1bmN0aW9uICgpIHsKICB2YXIgU1ZHX0ExMVkgPSAnIGFyaWEtaGlkZGVuPSJ0cnVlIiBmb2N1c2FibGU9ImZhbHNlIic7CiAgdmFyIElDT05TID0gewogICAgZXZlcnlvbmU6ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCInICsgU1ZHX0ExMVkgKyAnPjxjaXJjbGUgY3g9IjEyIiBjeT0iNiIgcj0iMi42Ii8+PHJlY3QgeD0iOS42IiB5PSIxMCIgd2lkdGg9IjQuOCIgaGVpZ2h0PSI3IiByeD0iMi40Ii8+PGxpbmUgeDE9IjkuNiIgeTE9IjEyIiB4Mj0iNSIgeTI9IjkiLz48bGluZSB4MT0iMTQuNCIgeTE9IjEyIiB4Mj0iMTkiIHkyPSI5Ii8+PC9zdmc+JywKICAgIGtpZHM6ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCInICsgU1ZHX0ExMVkgKyAnPjxyZWN0IHg9IjQiIHk9IjEzIiB3aWR0aD0iNyIgaGVpZ2h0PSI3IiByeD0iMSIvPjxyZWN0IHg9IjEzIiB5PSIxMyIgd2lkdGg9IjciIGhlaWdodD0iNyIgcng9IjEiLz48cmVjdCB4PSI4LjUiIHk9IjQiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIHJ4PSIxIi8+PC9zdmc+JywKICAgIHRhY3RpbGU6ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCInICsgU1ZHX0ExMVkgKyAnPjxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0iMTAiIGhlaWdodD0iOCIgcng9IjMiLz48bGluZSB4MT0iOSIgeTE9IjEyIiB4Mj0iOSIgeTI9IjYiLz48bGluZSB4MT0iMTEuNyIgeTE9IjEyIiB4Mj0iMTEuNyIgeTI9IjQuNSIvPjxsaW5lIHgxPSIxNC4zIiB5MT0iMTIiIHgyPSIxNC4zIiB5Mj0iNSIvPjxsaW5lIHgxPSIxNyIgeTE9IjEyIiB4Mj0iMTciIHkyPSI3Ii8+PC9zdmc+JywKICAgIGNhYTogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IicgKyBTVkdfQTExWSArICc+PHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiByeD0iMyIvPjxwb2x5Z29uIHBvaW50cz0iOCwxNiA4LDIwIDEyLDE2Ii8+PHJlY3QgeD0iNi41IiB5PSI3LjUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIxMy41IiB5PSI3LjUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48L3N2Zz4nLAogICAgYXVkaW9kZXNjOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiJyArIFNWR19BMTFZICsgJz48cmVjdCB4PSIzIiB5PSI1IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHJ4PSIyIi8+PHBvbHlnb24gcG9pbnRzPSI4LDkgOCwxNSAxMywxMiIvPjxwYXRoIGQ9Ik0xOSA5YTUgNSAwIDAgMSAwIDYiLz48L3N2Zz4nLAogICAgc3VidGl0bGVzOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiJyArIFNWR19BMTFZICsgJz48cmVjdCB4PSIzIiB5PSI1IiB3aWR0aD0iMTgiIGhlaWdodD0iMTQiIHJ4PSIyIi8+PGxpbmUgeDE9IjYuNSIgeTE9IjE1IiB4Mj0iMTIiIHkyPSIxNSIvPjxsaW5lIHgxPSIxNCIgeTE9IjE1IiB4Mj0iMTcuNSIgeTI9IjE1Ii8+PC9zdmc+JywKICAgIGNyb3dkOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiJyArIFNWR19BMTFZICsgJz48Y2lyY2xlIGN4PSI2IiBjeT0iOCIgcj0iMi4xIi8+PHJlY3QgeD0iMy43IiB5PSIxMS4yIiB3aWR0aD0iNC42IiBoZWlnaHQ9IjYuNSIgcng9IjIiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjgiIHI9IjIuMSIvPjxyZWN0IHg9IjE1LjciIHk9IjExLjIiIHdpZHRoPSI0LjYiIGhlaWdodD0iNi41IiByeD0iMiIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNi4zIiByPSIyLjQiLz48cmVjdCB4PSI5LjQiIHk9IjkuOCIgd2lkdGg9IjUuMiIgaGVpZ2h0PSI3LjQiIHJ4PSIyLjIiLz48L3N2Zz4nLAogICAgbG91ZDogJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IicgKyBTVkdfQTExWSArICc+PHBvbHlnb24gcG9pbnRzPSIzLDkgNyw5IDExLDUgMTEsMTkgNywxNSAzLDE1Ii8+PHBhdGggZD0iTTE0IDlhNC4yIDQuMiAwIDAgMSAwIDYiLz48cGF0aCBkPSJNMTYuNyA2LjNhOCA4IDAgMCAxIDAgMTEuNCIvPjwvc3ZnPicsCiAgICBwaW46ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCInICsgU1ZHX0ExMVkgKyAnPjxwYXRoIGQ9Ik0xMiAyMXM3LTcuNCA3LTEyYTcgNyAwIDEgMC0xNCAwYzAgNC42IDcgMTIgNyAxMloiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjkiIHI9IjIuMyIvPjwvc3ZnPicsCiAgICBjdXJhdG9yOiAnPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiJyArIFNWR19BMTFZICsgJz48Y2lyY2xlIGN4PSIxMiIgY3k9IjcuNSIgcj0iMyIvPjxwYXRoIGQ9Ik01IDIwYzAtNCAzLTYuNSA3LTYuNXM3IDIuNSA3IDYuNSIvPjwvc3ZnPicsCiAgICB0aWNrZXQ6ICc8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCInICsgU1ZHX0ExMVkgKyAnPjxyZWN0IHg9IjMiIHk9IjUiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxNiIgcng9IjIiLz48bGluZSB4MT0iMyIgeTE9IjkuNSIgeDI9IjIxIiB5Mj0iOS41Ii8+PGxpbmUgeDE9IjgiIHkxPSIzIiB4Mj0iOCIgeTI9IjciLz48bGluZSB4MT0iMTYiIHkxPSIzIiB4Mj0iMTYiIHkyPSI3Ii8+PHBvbHlsaW5lIHBvaW50cz0iOCwxNC41IDExLDE3LjUgMTYsMTEuNSIvPjwvc3ZnPicKICB9OwoKICB2YXIgTEVHRU5EID0gWwogICAgWydldmVyeW9uZScsICdQZXIgdHV0dGUgbGUgcGVyc29uZSddLAogICAgWydraWRzJywgJ0F0dGl2aXTDoCBwZXIgYmFtYmluaSddLAogICAgWyd0YWN0aWxlJywgJ0F0dGl2aXTDoCB0YXR0aWxpJ10sCiAgICBbJ2NhYScsICdDQUEnXSwKICAgIFsnYXVkaW9kZXNjJywgJ0F1ZGlvZGVzY3JpemlvbmUnXSwKICAgIFsnc3VidGl0bGVzJywgJ1NvdHRvdGl0b2xhemlvbmUnXSwKICAgIFsnY3Jvd2QnLCAnU3BhemlvIGFmZm9sbGF0byddLAogICAgWydsb3VkJywgJ1Bvc3NpYmlsaSBydW1vcmkgZm9ydGknXQogIF07CgogIHZhciBDQVRTID0gWwogICAgWyd0dXR0aScsICdUdXR0aSddLAogICAgWydhcGVyaXRpdm8nLCAnQXBlcml0aXZvJ10sCiAgICBbJ3RhbGsnLCAnVGFsayddLAogICAgWyd0ZWF0cm8nLCAnVGVhdHJvIGUgQ2lyY28nXSwKICAgIFsnbXVzaWNhJywgJ011c2ljYSddCiAgXTsKCiAgdmFyIENBVF9WQVIgPSB7CiAgICBhcGVyaXRpdm86ICctLWNhdC1hcGVyaXRpdm8nLCB0YWxrOiAnLS1jYXQtdGFsaycsIHRlYXRybzogJy0tY2F0LXRlYXRybycsIG11c2ljYTogJy0tY2F0LW11c2ljYScKICB9OwoKICB2YXIgUEVSSU9EUyA9IFsKICAgIFsndHV0dGknLCAnVHV0dGEgbGEgZ2lvcm5hdGEnXSwKICAgIFsnbWF0dGluYScsICdNYXR0aW5hJ10sCiAgICBbJ3BvbWVyaWdnaW8nLCAnUG9tZXJpZ2dpbyddLAogICAgWydzZXJhJywgJ1NlcmEnXQogIF07CgogIGZ1bmN0aW9uIHBlcmlvZE9mKHN0YXJ0KSB7CiAgICB2YXIgaCA9IHBhcnNlSW50KHN0YXJ0LnNwbGl0KCc6JylbMF0sIDEwKTsKICAgIGlmIChoIDwgMTMpIHJldHVybiAnbWF0dGluYSc7CiAgICBpZiAoaCA8IDE4KSByZXR1cm4gJ3BvbWVyaWdnaW8nOwogICAgcmV0dXJuICdzZXJhJzsKICB9CgogIHZhciBFVkVOVFMgPSBbCiAgICB7IHN0YXJ0OiAnMTg6MzAnLCBlbmQ6ICcxOTowMCcsIHRpdGxlOiAnQXBlcml0aXZvJywgY2F0OiAnYXBlcml0aXZvJywgbG9jOiAnS29udGlraSwgdmlhIENpZ2xpYW5vIDcnLCBib29raW5nOiBmYWxzZSwgYXJjaTogdHJ1ZSwgaWNvbnM6IFsnZXZlcnlvbmUnXSB9LAogICAgeyBzdGFydDogJzE5OjAwJywgZW5kOiAnMTk6MTUnLCB0aXRsZTogJ0FwZXJ0dXJhIEZlc3RpdmFsJywgY2F0OiAndGFsaycsIGxvYzogJ0tvbnRpa2ksIHZpYSBDaWdsaWFubyA3JywgYnk6ICdSb2JlcnRhIENhbGlhLCBMdWlnaSBPcmZlbywgU3RlZmFubyBTYXJ0b3JlJywgYm9va2luZzogZmFsc2UsIGFyY2k6IHRydWUsIGljb25zOiBbJ3N1YnRpdGxlcycsICdldmVyeW9uZSddIH0sCiAgICB7IHN0YXJ0OiAnMTk6MTUnLCBlbmQ6ICcyMDoxNScsIHRpdGxlOiAnQ29uY2VydG8gTXVzaWNhIHBlciB0dXR0KicsIGNhdDogJ211c2ljYScsIGxvYzogJ0tvbnRpa2ksIHZpYSBDaWdsaWFubyA3JywgYnk6ICdTbWFydCBPcGVydGEnLCBib29raW5nOiB0cnVlLCBhcmNpOiB0cnVlLCBpY29uczogWydsb3VkJywgJ3N1YnRpdGxlcycsICdldmVyeW9uZSddLCBub3RlOiAnRGlzcG9uaWJpbGkgcGFsbG9uY2luaSBwZXIgcGVyY2VwaXJlIGxlIHZpYnJhemlvbmkgc29ub3JlIGUgcHJvdGV6aW9uaSBhY3VzdGljaGUgKHRhcHBpL2N1ZmZpZSkgc3UgcmljaGllc3RhLicgfSwKICAgIHsgc3RhcnQ6ICcyMDozMCcsIGVuZDogJzIxOjAwJywgdGl0bGU6ICdMZXR0dXJlIGUgcHJlbWlhemlvbmUgY29uY29yc28gbGV0dGVyYXJpbycsIGNhdDogJ3RlYXRybycsIGxvYzogJ0tvbnRpa2ksIHZpYSBDaWdsaWFubyA3JywgYnk6ICdSb2JlcnRhIENhbGlhLCBMdWlnaSBPcmZlbywgU3RlZmFubyBTYXJ0b3JlLCBjb24gYWNjb21wYWduYW1lbnRvIG11c2ljYWxlIGRpIExvc3RpbnRoZWxvb3AnLCBib29raW5nOiBmYWxzZSwgYXJjaTogdHJ1ZSwgaWNvbnM6IFsnY2FhJywgJ3N1YnRpdGxlcycsICdldmVyeW9uZSddIH0sCiAgICB7IHN0YXJ0OiAnMjE6MzAnLCBlbmQ6ICcyMjozMCcsIHRpdGxlOiAnSSBGb29sczRGb29scyBwcmVzZW50YW5vOiBDb25jZXJ0aW5vIGRpIExvc3RpbnRoZWxvb3AnLCBjYXQ6ICdtdXNpY2EnLCBsb2M6ICdLb250aWtpLCB2aWEgQ2lnbGlhbm8gNycsIGJvb2tpbmc6IGZhbHNlLCBhcmNpOiB0cnVlLCBpY29uczogWydsb3VkJ10sIG5vdGU6ICdEaXNwb25pYmlsaSBwYWxsb25jaW5pIHBlciBwZXJjZXBpcmUgbGUgdmlicmF6aW9uaSBzb25vcmUgZSBwcm90ZXppb25pIGFjdXN0aWNoZSAodGFwcGkvY3VmZmllKSBzdSByaWNoaWVzdGEuJyB9CiAgXTsKCiAgZnVuY3Rpb24gY2F0U3R5bGUoY2F0KSB7CiAgICB2YXIgdiA9IENBVF9WQVJbY2F0XTsKICAgIHJldHVybiB2ID8gJyBzdHlsZT0iLS1jYXQ6dmFyKCcgKyB2ICsgJykiJyA6ICcnOwogIH0KCiAgZnVuY3Rpb24gbWFwc1VybChhZGRyZXNzKSB7CiAgICByZXR1cm4gJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvP2FwaT0xJnF1ZXJ5PScgKyBlbmNvZGVVUklDb21wb25lbnQoYWRkcmVzcyk7CiAgfQoKICBmdW5jdGlvbiBmcnVpemlvbmVUZXh0KGV2KSB7CiAgICBpZiAoZXYuYm9va2luZyAmJiBldi5hcmNpKSByZXR1cm4gJ0xlIHByZW5vdGF6aW9uaSBhcHJpcmFubm8gYSBicmV2ZSBzdSBjYXNhZm9vbHMuaXQsIGluZ3Jlc3NvIGNvbiB0ZXNzZXJhIEFSQ0knOwogICAgaWYgKGV2LmJvb2tpbmcpIHJldHVybiAnTGUgcHJlbm90YXppb25pIGFwcmlyYW5ubyBhIGJyZXZlIHN1IGNhc2Fmb29scy5pdCc7CiAgICBpZiAoZXYuYXJjaSkgcmV0dXJuICdJbmdyZXNzbyBsaWJlcm8gY29uIHRlc3NlcmEgQVJDSSc7CiAgICByZXR1cm4gJyc7CiAgfQoKICBmdW5jdGlvbiBhMTF5UGlsbHMoaWNvbnMpIHsKICAgIGlmICghaWNvbnMgfHwgIWljb25zLmxlbmd0aCkgcmV0dXJuICcnOwogICAgdmFyIG1hcCA9IHt9OwogICAgTEVHRU5ELmZvckVhY2goZnVuY3Rpb24gKGwpIHsgbWFwW2xbMF1dID0gbFsxXTsgfSk7CiAgICByZXR1cm4gJzxkaXYgY2xhc3M9ImNmcC1hMTF5LXJvdyI+JyArIGljb25zLm1hcChmdW5jdGlvbiAoaykgewogICAgICByZXR1cm4gJzxzcGFuIGNsYXNzPSJjZnAtYTExeS1waWxsIj4nICsgSUNPTlNba10gKyAnPHNwYW4+JyArIG1hcFtrXSArICc8L3NwYW4+PC9zcGFuPic7CiAgICB9KS5qb2luKCcnKSArICc8L2Rpdj4nOwogIH0KCiAgdmFyIGxlZ2VuZEVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NmcC1sZWdlbmQnKTsKICBsZWdlbmRFbC5pbm5lckhUTUwgPSBMRUdFTkQubWFwKGZ1bmN0aW9uIChsKSB7CiAgICByZXR1cm4gJzxsaT4nICsgSUNPTlNbbFswXV0gKyAnPHNwYW4+JyArIGxbMV0gKyAnPC9zcGFuPjwvbGk+JzsKICB9KS5qb2luKCcnKTsKCiAgdmFyIGZpbHRlcnNUb2dnbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2ZwLWZpbHRlcnMtdG9nZ2xlJyk7CiAgdmFyIGZpbHRlcnNXcmFwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NmcC1maWx0ZXJzLXdyYXAnKTsKICBpZiAoZmlsdGVyc1RvZ2dsZSAmJiBmaWx0ZXJzV3JhcCkgewogICAgZmlsdGVyc1RvZ2dsZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgICAgdmFyIGlzT3BlbiA9IGZpbHRlcnNXcmFwLmNsYXNzTGlzdC50b2dnbGUoJ2lzLW9wZW4nKTsKICAgICAgZmlsdGVyc1RvZ2dsZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnLCBpc09wZW4gPyAndHJ1ZScgOiAnZmFsc2UnKTsKICAgIH0pOwogIH0KCiAgdmFyIGZpbHRlckVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NmcC1maWx0ZXJiYXInKTsKICBmaWx0ZXJFbC5pbm5lckhUTUwgPSBDQVRTLm1hcChmdW5jdGlvbiAoYywgaSkgewogICAgcmV0dXJuICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNmcC1jaGlwIiBkYXRhLWNhdD0iJyArIGNbMF0gKyAnIiBhcmlhLXByZXNzZWQ9IicgKyAoaSA9PT0gMCA/ICd0cnVlJyA6ICdmYWxzZScpICsgJyI+JyArIGNbMV0gKyAnPC9idXR0b24+JzsKICB9KS5qb2luKCcnKTsKCiAgdmFyIHBlcmlvZEZpbHRlckVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NmcC1wZXJpb2QtZmlsdGVyYmFyJyk7CiAgcGVyaW9kRmlsdGVyRWwuaW5uZXJIVE1MID0gUEVSSU9EUy5tYXAoZnVuY3Rpb24gKHAsIGkpIHsKICAgIHJldHVybiAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjZnAtY2hpcCIgZGF0YS1wZXJpb2Q9IicgKyBwWzBdICsgJyIgYXJpYS1wcmVzc2VkPSInICsgKGkgPT09IDAgPyAndHJ1ZScgOiAnZmFsc2UnKSArICciPicgKyBwWzFdICsgJzwvYnV0dG9uPic7CiAgfSkuam9pbignJyk7CgogIHZhciBhMTF5RmlsdGVyRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2ZwLWExMXktZmlsdGVycycpOwogIGExMXlGaWx0ZXJFbC5pbm5lckhUTUwgPSBMRUdFTkQubWFwKGZ1bmN0aW9uIChsKSB7CiAgICB2YXIgaWQgPSAnY2ZwLWExMXktZmlsdGVyLScgKyBsWzBdOwogICAgcmV0dXJuICc8bGFiZWwgY2xhc3M9ImNmcC1hMTF5LWZpbHRlci1jaGlwIiBmb3I9IicgKyBpZCArICciPicgKwogICAgICAnPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iJyArIGlkICsgJyIgdmFsdWU9IicgKyBsWzBdICsgJyI+JyArCiAgICAgIElDT05TW2xbMF1dICsgJzxzcGFuPicgKyBsWzFdICsgJzwvc3Bhbj4nICsKICAgICc8L2xhYmVsPic7CiAgfSkuam9pbignJyk7CgogIHZhciB0aW1lbGluZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NmcC10aW1lbGluZScpOwogIHRpbWVsaW5lRWwuaW5uZXJIVE1MID0gRVZFTlRTLm1hcChmdW5jdGlvbiAoZXYpIHsKICAgIHZhciBub3RlTGluZSA9IGV2Lm5vdGUgPyAnPHAgY2xhc3M9ImNmcC1ub3RlIj4nICsgZXYubm90ZSArICc8L3A+JyA6ICcnOwogICAgdmFyIGZUZXh0ID0gZnJ1aXppb25lVGV4dChldik7CiAgICByZXR1cm4gJzxsaSBjbGFzcz0iY2ZwLXRpbWVsaW5lLWl0ZW0iIGRhdGEtY2F0PSInICsgZXYuY2F0ICsgJyIgZGF0YS1wZXJpb2Q9IicgKyBwZXJpb2RPZihldi5zdGFydCkgKyAnIiBkYXRhLWExMXk9IicgKyAoZXYuaWNvbnMgfHwgW10pLmpvaW4oJywnKSArICciPicgKwogICAgICAnPGRpdiBjbGFzcz0iY2ZwLWNhcmQiJyArIGNhdFN0eWxlKGV2LmNhdCkgKyAnPicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJjZnAtY2FyZC10b3AiPicgKwogICAgICAgICAgJzxzcGFuIGNsYXNzPSJjZnAtdGltZSIgYXJpYS1sYWJlbD0iZGFsbGUgJyArIGV2LnN0YXJ0ICsgJyBhbGxlICcgKyBldi5lbmQgKyAnIj4nICsgZXYuc3RhcnQgKyAn4oCTJyArIGV2LmVuZCArICc8L3NwYW4+JyArCiAgICAgICAgICAnPHNwYW4gY2xhc3M9ImNmcC1jYXQtdGFnIicgKyBjYXRTdHlsZShldi5jYXQpICsgJz4nICsgQ0FUUy5maW5kKGZ1bmN0aW9uIChjKSB7IHJldHVybiBjWzBdID09PSBldi5jYXQ7IH0pWzFdICsgJzwvc3Bhbj4nICsKICAgICAgICAgIChldi5ib29raW5nID8gJzxzcGFuIGNsYXNzPSJjZnAtYmFkZ2UgY2ZwLWJhZGdlLS1ib29raW5nIj5TdSBwcmVub3RhemlvbmU8L3NwYW4+JyA6ICcnKSArCiAgICAgICAgICAoZXYuYXJjaSA/ICc8c3BhbiBjbGFzcz0iY2ZwLWJhZGdlIGNmcC1iYWRnZS0tYXJjaSI+VGVzc2VyYSBBUkNJPC9zcGFuPicgOiAnJykgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICAnPGg0PicgKyBldi50aXRsZSArICc8L2g0PicgKwogICAgICAgICc8ZGl2IGNsYXNzPSJjZnAtbWV0YSI+JyArCiAgICAgICAgICAnPHNwYW4gY2xhc3M9ImNmcC1tZXRhLWxpbmUiPicgKyBJQ09OUy5waW4gKyAnPHNwYW4+PGEgaHJlZj0iJyArIG1hcHNVcmwoZXYubG9jICsgJywgVG9yaW5vJykgKyAnIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+JyArIGV2LmxvYyArICc8L2E+PC9zcGFuPjwvc3Bhbj4nICsKICAgICAgICAgIChldi5ieSA/ICc8c3BhbiBjbGFzcz0iY2ZwLW1ldGEtbGluZSI+JyArIElDT05TLmN1cmF0b3IgKyAnPHNwYW4+JyArIGV2LmJ5ICsgJzwvc3Bhbj48L3NwYW4+JyA6ICcnKSArCiAgICAgICAgICAoZXYucHViID8gJzxzcGFuIGNsYXNzPSJjZnAtbWV0YS1saW5lIj4nICsgSUNPTlMuZXZlcnlvbmUgKyAnPHNwYW4+JyArIGV2LnB1YiArICc8L3NwYW4+PC9zcGFuPicgOiAnJykgKwogICAgICAgICAgKGZUZXh0ID8gJzxzcGFuIGNsYXNzPSJjZnAtbWV0YS1saW5lIj4nICsgSUNPTlMudGlja2V0ICsgJzxzcGFuPicgKyBmVGV4dCArICc8L3NwYW4+PC9zcGFuPicgOiAnJykgKwogICAgICAgICc8L2Rpdj4nICsKICAgICAgICBhMTF5UGlsbHMoZXYuaWNvbnMpICsKICAgICAgICBub3RlTGluZSArCiAgICAgICc8L2Rpdj4nICsKICAgICc8L2xpPic7CiAgfSkuam9pbignJyk7CgogIHZhciBsaXZlQ291bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2ZwLWxpdmUtY291bnQnKTsKICB2YXIgaXRlbXMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aW1lbGluZUVsLnF1ZXJ5U2VsZWN0b3JBbGwoJy5jZnAtdGltZWxpbmUtaXRlbScpKTsKICB2YXIgYTExeVJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NmcC1hMTF5LWZpbHRlci1yZXNldCcpOwogIHZhciBjdXJyZW50Q2F0ID0gJ3R1dHRpJzsKICB2YXIgY3VycmVudFBlcmlvZCA9ICd0dXR0aSc7CiAgdmFyIHNlbGVjdGVkQTExeSA9IFtdOwoKICBmdW5jdGlvbiB1cGRhdGVWaXNpYmlsaXR5KCkgewogICAgdmFyIHZpc2libGUgPSAwOwogICAgaXRlbXMuZm9yRWFjaChmdW5jdGlvbiAobGkpIHsKICAgICAgdmFyIG1hdGNoZXNDYXQgPSBjdXJyZW50Q2F0ID09PSAndHV0dGknIHx8IGxpLmdldEF0dHJpYnV0ZSgnZGF0YS1jYXQnKSA9PT0gY3VycmVudENhdDsKICAgICAgdmFyIG1hdGNoZXNQZXJpb2QgPSBjdXJyZW50UGVyaW9kID09PSAndHV0dGknIHx8IGxpLmdldEF0dHJpYnV0ZSgnZGF0YS1wZXJpb2QnKSA9PT0gY3VycmVudFBlcmlvZDsKICAgICAgdmFyIGl0ZW1BMTF5ID0gbGkuZ2V0QXR0cmlidXRlKCdkYXRhLWExMXknKS5zcGxpdCgnLCcpLmZpbHRlcihCb29sZWFuKTsKICAgICAgdmFyIG1hdGNoZXNBMTF5ID0gc2VsZWN0ZWRBMTF5Lmxlbmd0aCA9PT0gMCB8fCBzZWxlY3RlZEExMXkuc29tZShmdW5jdGlvbiAoaykgeyByZXR1cm4gaXRlbUExMXkuaW5kZXhPZihrKSAhPT0gLTE7IH0pOwogICAgICB2YXIgc2hvdyA9IG1hdGNoZXNDYXQgJiYgbWF0Y2hlc1BlcmlvZCAmJiBtYXRjaGVzQTExeTsKICAgICAgbGkuaGlkZGVuID0gIXNob3c7CiAgICAgIGlmIChzaG93KSB2aXNpYmxlKys7CiAgICB9KTsKICAgIGxpdmVDb3VudC50ZXh0Q29udGVudCA9IHZpc2libGUgKyAnIGF0dGl2aXTDoCBzdSAnICsgaXRlbXMubGVuZ3RoOwogICAgYTExeVJlc2V0QnRuLmhpZGRlbiA9IHNlbGVjdGVkQTExeS5sZW5ndGggPT09IDA7CiAgfQoKICBmaWx0ZXJFbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7CiAgICB2YXIgYnRuID0gZS50YXJnZXQuY2xvc2VzdCgnLmNmcC1jaGlwJyk7CiAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAgZmlsdGVyRWwucXVlcnlTZWxlY3RvckFsbCgnLmNmcC1jaGlwJykuZm9yRWFjaChmdW5jdGlvbiAoYikgeyBiLnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJywgJ2ZhbHNlJyk7IH0pOwogICAgYnRuLnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJywgJ3RydWUnKTsKICAgIGN1cnJlbnRDYXQgPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLWNhdCcpOwogICAgdXBkYXRlVmlzaWJpbGl0eSgpOwogIH0pOwoKICBwZXJpb2RGaWx0ZXJFbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7CiAgICB2YXIgYnRuID0gZS50YXJnZXQuY2xvc2VzdCgnLmNmcC1jaGlwJyk7CiAgICBpZiAoIWJ0bikgcmV0dXJuOwogICAgcGVyaW9kRmlsdGVyRWwucXVlcnlTZWxlY3RvckFsbCgnLmNmcC1jaGlwJykuZm9yRWFjaChmdW5jdGlvbiAoYikgeyBiLnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJywgJ2ZhbHNlJyk7IH0pOwogICAgYnRuLnNldEF0dHJpYnV0ZSgnYXJpYS1wcmVzc2VkJywgJ3RydWUnKTsKICAgIGN1cnJlbnRQZXJpb2QgPSBidG4uZ2V0QXR0cmlidXRlKCdkYXRhLXBlcmlvZCcpOwogICAgdXBkYXRlVmlzaWJpbGl0eSgpOwogIH0pOwoKICBhMTF5RmlsdGVyRWwuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24gKGUpIHsKICAgIHZhciBpbnB1dCA9IGUudGFyZ2V0LmNsb3Nlc3QoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il0nKTsKICAgIGlmICghaW5wdXQpIHJldHVybjsKICAgIHZhciBjaGlwID0gaW5wdXQuY2xvc2VzdCgnLmNmcC1hMTF5LWZpbHRlci1jaGlwJyk7CiAgICBjaGlwLmNsYXNzTGlzdC50b2dnbGUoJ2lzLWNoZWNrZWQnLCBpbnB1dC5jaGVja2VkKTsKICAgIHNlbGVjdGVkQTExeSA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGExMXlGaWx0ZXJFbC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dDpjaGVja2VkJykpLm1hcChmdW5jdGlvbiAoaSkgeyByZXR1cm4gaS52YWx1ZTsgfSk7CiAgICB1cGRhdGVWaXNpYmlsaXR5KCk7CiAgfSk7CgogIGExMXlSZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKICAgIGExMXlGaWx0ZXJFbC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dDpjaGVja2VkJykuZm9yRWFjaChmdW5jdGlvbiAoaSkgewogICAgICBpLmNoZWNrZWQgPSBmYWxzZTsKICAgICAgaS5jbG9zZXN0KCcuY2ZwLWExMXktZmlsdGVyLWNoaXAnKS5jbGFzc0xpc3QucmVtb3ZlKCdpcy1jaGVja2VkJyk7CiAgICB9KTsKICAgIHNlbGVjdGVkQTExeSA9IFtdOwogICAgdXBkYXRlVmlzaWJpbGl0eSgpOwogIH0pOwoKICB1cGRhdGVWaXNpYmlsaXR5KCk7Cn0pKCk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cg==






