PD9waHAKLyoqCiAqIFZlcnRleCBSb29maW5nIC0gRWxlbWVudG9yIFBhZ2UgQnVpbGRlciBTY3JpcHQKICogR2VuZXJhdGVzIG5hdGl2ZSBFbGVtZW50b3IgY29udGFpbmVyL3dpZGdldCBkYXRhIGZvciBhbGwgNCBwYWdlcwogKi8KCi8vIEhlbHBlciBmdW5jdGlvbnMKZnVuY3Rpb24gdnR4X2lkKCkgewogICAgc3RhdGljICRpID0gMDsKICAgICRpKys7CiAgICByZXR1cm4gJ3Z4JyAuIHN0cl9wYWQoJGksIDUsICcwJywgU1RSX1BBRF9MRUZUKTsKfQoKZnVuY3Rpb24gdnR4X2NvbnRhaW5lcigkc2V0dGluZ3MgPSBbXSwgJGVsZW1lbnRzID0gW10pIHsKICAgIHJldHVybiBbCiAgICAgICAgJ2lkJyA9PiB2dHhfaWQoKSwKICAgICAgICAnZWxUeXBlJyA9PiAnY29udGFpbmVyJywKICAgICAgICAnc2V0dGluZ3MnID0+IGFycmF5X21lcmdlKFsKICAgICAgICAgICAgJ2ZsZXhfZGlyZWN0aW9uJyA9PiAnY29sdW1uJywKICAgICAgICAgICAgJ2NvbnRlbnRfd2lkdGgnID0+ICdib3hlZCcsCiAgICAgICAgICAgICdmbGV4X2dhcCcgPT4gWyd1bml0JyA9PiAncHgnLCAnY29sdW1uJyA9PiAwLCAncm93JyA9PiAwXSwKICAgICAgICBdLCAkc2V0dGluZ3MpLAogICAgICAgICdlbGVtZW50cycgPT4gJGVsZW1lbnRzLAogICAgICAgICdpc0lubmVyJyA9PiBmYWxzZSwKICAgIF07Cn0KCmZ1bmN0aW9uIHZ0eF9yb3coJHNldHRpbmdzID0gW10sICRlbGVtZW50cyA9IFtdKSB7CiAgICByZXR1cm4gWwogICAgICAgICdpZCcgPT4gdnR4X2lkKCksCiAgICAgICAgJ2VsVHlwZScgPT4gJ2NvbnRhaW5lcicsCiAgICAgICAgJ3NldHRpbmdzJyA9PiBhcnJheV9tZXJnZShbCiAgICAgICAgICAgICdmbGV4X2RpcmVjdGlvbicgPT4gJ3JvdycsCiAgICAgICAgICAgICdmbGV4X3dyYXAnID0+ICd3cmFwJywKICAgICAgICAgICAgJ2ZsZXhfZ2FwJyA9PiBbJ3VuaXQnID0+ICdweCcsICdjb2x1bW4nID0+IDIwLCAncm93JyA9PiAyMF0sCiAgICAgICAgICAgICdqdXN0aWZ5X2NvbnRlbnQnID0+ICdjZW50ZXInLAogICAgICAgICAgICAnYWxpZ25faXRlbXMnID0+ICdjZW50ZXInLAogICAgICAgIF0sICRzZXR0aW5ncyksCiAgICAgICAgJ2VsZW1lbnRzJyA9PiAkZWxlbWVudHMsCiAgICAgICAgJ2lzSW5uZXInID0+IHRydWUsCiAgICBdOwp9CgpmdW5jdGlvbiB2dHhfY29sKCR3aWR0aCA9IDUwLCAkc2V0dGluZ3MgPSBbXSwgJGVsZW1lbnRzID0gW10pIHsKICAgIHJldHVybiBbCiAgICAgICAgJ2lkJyA9PiB2dHhfaWQoKSwKICAgICAgICAnZWxUeXBlJyA9PiAnY29udGFpbmVyJywKICAgICAgICAnc2V0dGluZ3MnID0+IGFycmF5X21lcmdlKFsKICAgICAgICAgICAgJ2ZsZXhfZGlyZWN0aW9uJyA9PiAnY29sdW1uJywKICAgICAgICAgICAgJ2ZsZXhfZ2FwJyA9PiBbJ3VuaXQnID0+ICdweCcsICdjb2x1bW4nID0+IDAsICdyb3cnID0+IDEwXSwKICAgICAgICAgICAgJ19pbmxpbmVfc2l6ZScgPT4gJHdpZHRoLAogICAgICAgIF0sICRzZXR0aW5ncyksCiAgICAgICAgJ2VsZW1lbnRzJyA9PiAkZWxlbWVudHMsCiAgICAgICAgJ2lzSW5uZXInID0+IHRydWUsCiAgICBdOwp9CgpmdW5jdGlvbiB2dHhfd2lkZ2V0KCR0eXBlLCAkc2V0dGluZ3MgPSBbXSkgewogICAgcmV0dXJuIFsKICAgICAgICAnaWQnID0+IHZ0eF9pZCgpLAogICAgICAgICdlbFR5cGUnID0+ICd3aWRnZXQnLAogICAgICAgICd3aWRnZXRUeXBlJyA9PiAkdHlwZSwKICAgICAgICAnc2V0dGluZ3MnID0+ICRzZXR0aW5ncywKICAgICAgICAnZWxlbWVudHMnID0+IFtdLAogICAgICAgICdpc0lubmVyJyA9PiB0cnVlLAogICAgXTsKfQoKZnVuY3Rpb24gdnR4X2hlYWRpbmcoJHRleHQsICR0YWcgPSAnaDInLCAkc2V0dGluZ3MgPSBbXSkgewogICAgcmV0dXJuIHZ0eF93aWRnZXQoJ2hlYWRpbmcnLCBhcnJheV9tZXJnZShbCiAgICAgICAgJ3RpdGxlJyA9PiAkdGV4dCwKICAgICAgICAnaGVhZGVyX3NpemUnID0+ICR0YWcsCiAgICBdLCAkc2V0dGluZ3MpKTsKfQoKZnVuY3Rpb24gdnR4X3RleHQoJGh0bWwsICRzZXR0aW5ncyA9IFtdKSB7CiAgICByZXR1cm4gdnR4X3dpZGdldCgndGV4dC1lZGl0b3InLCBhcnJheV9tZXJnZShbCiAgICAgICAgJ2VkaXRvcicgPT4gJzxwPicgLiAkaHRtbCAuICc8L3A+JywKICAgIF0sICRzZXR0aW5ncykpOwp9CgpmdW5jdGlvbiB2dHhfYnV0dG9uKCR0ZXh0LCAkdXJsID0gJyMnLCAkc2V0dGluZ3MgPSBbXSkgewogICAgcmV0dXJuIHZ0eF93aWRnZXQoJ2J1dHRvbicsIGFycmF5X21lcmdlKFsKICAgICAgICAndGV4dCcgPT4gJHRleHQsCiAgICAgICAgJ2xpbmsnID0+IFsndXJsJyA9PiAkdXJsXSwKICAgICAgICAnYnV0dG9uX3R5cGUnID0+ICcnLAogICAgXSwgJHNldHRpbmdzKSk7Cn0KCmZ1bmN0aW9uIHZ0eF9pbWFnZSgkdXJsLCAkYWx0ID0gJycsICRzZXR0aW5ncyA9IFtdKSB7CiAgICByZXR1cm4gdnR4X3dpZGdldCgnaW1hZ2UnLCBhcnJheV9tZXJnZShbCiAgICAgICAgJ2ltYWdlJyA9PiBbJ3VybCcgPT4gJHVybF0sCiAgICAgICAgJ2ltYWdlX2FsdCcgPT4gJGFsdCwKICAgIF0sICRzZXR0aW5ncykpOwp9CgpmdW5jdGlvbiB2dHhfc3BhY2VyKCRzaXplID0gMjApIHsKICAgIHJldHVybiB2dHhfd2lkZ2V0KCdzcGFjZXInLCBbJ3NwYWNlJyA9PiBbJ3VuaXQnID0+ICdweCcsICdzaXplJyA9PiAkc2l6ZSwgJ2lzTGlua2VkJyA9PiBmYWxzZV1dKTsKfQoKZnVuY3Rpb24gdnR4X2RpdmlkZXIoJHNldHRpbmdzID0gW10pIHsKICAgIHJldHVybiB2dHhfd2lkZ2V0KCdkaXZpZGVyJywgYXJyYXlfbWVyZ2UoWwogICAgICAgICdzdHlsZScgPT4gJ3NvbGlkJywKICAgICAgICAnd2VpZ2h0JyA9PiBbJ3VuaXQnID0+ICdweCcsICdzaXplJyA9PiAxLCAnaXNMaW5rZWQnID0+IGZhbHNlXSwKICAgIF0sICRzZXR0aW5ncykpOwp9CgpmdW5jdGlvbiB2dHhfaHRtbCgkaHRtbCkgewogICAgcmV0dXJuIHZ0eF93aWRnZXQoJ2h0bWwnLCBbJ2h0bWwnID0+ICRodG1sXSk7Cn0KCmZ1bmN0aW9uIHZ0eF9pY29uX2JveCgkaWNvbiwgJHRpdGxlLCAkZGVzYywgJHNldHRpbmdzID0gW10pIHsKICAgIHJldHVybiB2dHhfd2lkZ2V0KCdpY29uLWJveCcsIGFycmF5X21lcmdlKFsKICAgICAgICAnc2VsZWN0ZWRfaWNvbicgPT4gWyd2YWx1ZScgPT4gJGljb24sICdsaWJyYXJ5JyA9PiAnZmEtc29saWQnXSwKICAgICAgICAndGl0bGVfdGV4dCcgPT4gJHRpdGxlLAogICAgICAgICdkZXNjcmlwdGlvbl90ZXh0JyA9PiAkZGVzYywKICAgIF0sICRzZXR0aW5ncykpOwp9CgpmdW5jdGlvbiB2dHhfYWNjb3JkaW9uX2l0ZW0oJHRpdGxlLCAkY29udGVudCkgewogICAgcmV0dXJuIFsKICAgICAgICAndGFiX3RpdGxlJyA9PiAkdGl0bGUsCiAgICAgICAgJ3RhYl9jb250ZW50JyA9PiAkY29udGVudCwKICAgIF07Cn0KCmZ1bmN0aW9uIHZ0eF9hY2NvcmRpb24oJGl0ZW1zLCAkc2V0dGluZ3MgPSBbXSkgewogICAgJHRhYnMgPSBbXTsKICAgIGZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkgewogICAgICAgICR0YWJzW10gPSB2dHhfYWNjb3JkaW9uX2l0ZW0oJGl0ZW1bJ3RpdGxlJ10sICRpdGVtWydjb250ZW50J10pOwogICAgfQogICAgcmV0dXJuIHZ0eF93aWRnZXQoJ2FjY29yZGlvbicsIGFycmF5X21lcmdlKFsKICAgICAgICAndGFicycgPT4gJHRhYnMsCiAgICBdLCAkc2V0dGluZ3MpKTsKfQoKLy8gQ3VzdG9tIENTUyBmb3IgYW5pbWF0aW9ucyBhbmQgZWZmZWN0cwokY3VzdG9tX2Nzc19jb21tb24gPSAnCi52dHgtcmV2ZWFse29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgzMHB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgMC44cyBjdWJpYy1iZXppZXIoMC4yNSwwLjQ2LDAuNDUsMC45NCksdHJhbnNmb3JtIDAuOHMgY3ViaWMtYmV6aWVyKDAuMjUsMC40NiwwLjQ1LDAuOTQpfQoudnR4LXJldmVhbC5hY3RpdmV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfQoudnR4LWNvdW50ZXJ7Zm9udC1mYW1pbHk6IkJlYmFzIE5ldWUiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjMuNXJlbTtsaW5lLWhlaWdodDoxO2NvbG9yOiNEOTZCMjd9Ci52dHgtdGlja2Vye2JhY2tncm91bmQ6IzBGMTcyQTtwYWRkaW5nOjAuOXJlbSAwO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlfQoudnR4LXRpY2tlci10cmFja3tkaXNwbGF5OmZsZXg7YW5pbWF0aW9uOnZ0eFRpY2tlclNjcm9sbCAyNXMgbGluZWFyIGluZmluaXRlO3dpZHRoOm1heC1jb250ZW50fQoudnR4LXRpY2tlci1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEuMjVyZW07cGFkZGluZzowIDEuNXJlbTtmb250LWZhbWlseToiSW50ZXIiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuNzhyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOjAuMThlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjc1KTt3aGl0ZS1zcGFjZTpub3dyYXB9Ci52dHgtdGlja2VyLWRvdHt3aWR0aDo2cHg7aGVpZ2h0OjZweDtiYWNrZ3JvdW5kOiNEOTZCMjc7Ym9yZGVyLXJhZGl1czo1MCV9CkBrZXlmcmFtZXMgdnR4VGlja2VyU2Nyb2xsezAle3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfTEwMCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSl9fQoudnR4LWhlcm8tZ2hvc3R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LWZhbWlseToiSW50ZXIiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuODVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOjAuMWVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjojZmZmO2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNmZmY7cGFkZGluZy1ib3R0b206NHB4O3RyYW5zaXRpb246YWxsIDAuNHMgY3ViaWMtYmV6aWVyKDAuMjUsMC40NiwwLjQ1LDAuOTQpO3RleHQtZGVjb3JhdGlvbjpub25lfQoudnR4LWhlcm8tZ2hvc3Q6aG92ZXJ7Y29sb3I6I0Q5NkIyNztib3JkZXItY29sb3I6I0Q5NkIyN30KLnZ0eC1zZXJ2aWNlLWl0ZW17ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczo3MHB4IDEuMmZyIDEuOGZyIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxLjVyZW07cGFkZGluZzoxLjhyZW0gMXJlbTtib3JkZXItdG9wOjFweCBzb2xpZCAjRTJFOEYwO3RyYW5zaXRpb246YWxsIDAuNHMgY3ViaWMtYmV6aWVyKDAuMjUsMC40NiwwLjQ1LDAuOTQpO2JvcmRlci1yYWRpdXM6NnB4fQoudnR4LXNlcnZpY2UtaXRlbTpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoOHB4KTtib3gtc2hhZG93OjAgMTBweCAzMHB4IHJnYmEoMCwwLDAsMC4wMyl9Ci52dHgtc2VydmljZS1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI0UyRThGMH0KLnZ0eC1zZXJ2aWNlLW51bXtmb250LWZhbWlseToiQmViYXMgTmV1ZSIsc2Fucy1zZXJpZjtmb250LXNpemU6MS44cmVtO2NvbG9yOiM2Qzc1N0R9Ci52dHgtc2VydmljZS1uYW1le2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4zcmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMEYxNzJBO3RyYW5zaXRpb246Y29sb3IgMC40c30KLnZ0eC1zZXJ2aWNlLWl0ZW06aG92ZXIgLnZ0eC1zZXJ2aWNlLW5hbWV7Y29sb3I6I0Q5NkIyN30KLnZ0eC1zZXJ2aWNlLWRlc2N7Zm9udC1mYW1pbHk6IkludGVyIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTowLjg4cmVtO2NvbG9yOiM2Qzc1N0Q7bGluZS1oZWlnaHQ6MS42fQoudnR4LXNlcnZpY2UtdGFne2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MC43cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzowLjFlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6I0Q5NkIyNztiYWNrZ3JvdW5kOnJnYmEoMjE3LDEwNywzOSwwLjEpO3BhZGRpbmc6MC40cmVtIDAuOXJlbTtib3JkZXItcmFkaXVzOjUwcHg7anVzdGlmeS1zZWxmOnN0YXJ0fQoudnR4LXdoeS1waWxsYXJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KTtwYWRkaW5nLWJvdHRvbToxcmVtO3RyYW5zaXRpb246dHJhbnNmb3JtIDAuNHN9Ci52dHgtd2h5LXBpbGxhcjpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWCg2cHgpfQoudnR4LXdoeS1waWxsYXItdGl0bGV7Zm9udC1mYW1pbHk6IkludGVyIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjFyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiNmZmY7bWFyZ2luLWJvdHRvbTowLjNyZW07dHJhbnNpdGlvbjpjb2xvciAwLjRzfQoudnR4LXdoeS1waWxsYXI6aG92ZXIgLnZ0eC13aHktcGlsbGFyLXRpdGxle2NvbG9yOiNEOTZCMjd9Ci52dHgtd2h5LXBpbGxhci10ZXh0e2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MC44OHJlbTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuNzIpO2xpbmUtaGVpZ2h0OjEuNTV9Ci52dHgtc3RlcC1kb3R7d2lkdGg6MTNweDtoZWlnaHQ6MTNweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MnB4IHNvbGlkICM2Qzc1N0Q7YmFja2dyb3VuZDojRjhGOUZBO21hcmdpbi1ib3R0b206MS41cmVtO3RyYW5zaXRpb246YWxsIDAuNHN9Ci52dHgtc3RlcC1pdGVtOmhvdmVyIC52dHgtc3RlcC1kb3R7Ym9yZGVyLWNvbG9yOiNEOTZCMjc7YmFja2dyb3VuZDojRDk2QjI3O3RyYW5zZm9ybTpzY2FsZSgxLjMpfQoudnR4LXN0ZXAtdGl0bGV7Zm9udC1mYW1pbHk6IkludGVyIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxcmVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxLjI7Y29sb3I6IzBGMTcyQTttYXJnaW4tYm90dG9tOjAuNXJlbX0KLnZ0eC1zdGVwLWRlc2N7Zm9udC1mYW1pbHk6IkludGVyIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTowLjgycmVtO2NvbG9yOiM2Qzc1N0Q7bGluZS1oZWlnaHQ6MS41fQoudnR4LXBvcnRmb2xpby1jYXJke3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMEYxNzJBO2JveC1zaGFkb3c6MCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjA2KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjRzLGJveC1zaGFkb3cgMC40c30KLnZ0eC1wb3J0Zm9saW8tY2FyZDpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNnB4KTtib3gtc2hhZG93OjAgMThweCAzNXB4IHJnYmEoMCwwLDAsMC4xNSl9Ci52dHgtcG9ydGZvbGlvLWltZ3t3aWR0aDoxMDAlO2hlaWdodDoyODBweDtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmV9Ci52dHgtcG9ydGZvbGlvLWltZyBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO3RyYW5zaXRpb246dHJhbnNmb3JtIDAuNnN9Ci52dHgtcG9ydGZvbGlvLWNhcmQ6aG92ZXIgLnZ0eC1wb3J0Zm9saW8taW1nIGltZ3t0cmFuc2Zvcm06c2NhbGUoMS4wOCl9Ci52dHgtcG9ydGZvbGlvLWJhZGdle3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxcmVtO2xlZnQ6MXJlbTtiYWNrZ3JvdW5kOnJnYmEoMTgsMjAsMjIsMC44NSk7Y29sb3I6I0Q5NkIyNztiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpO2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MC42OHJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6MC4xZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO3BhZGRpbmc6MC4zNXJlbSAwLjhyZW07Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7ei1pbmRleDoyfQoudnR4LXBvcnRmb2xpby1ib2R5e3BhZGRpbmc6MS4yNXJlbTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRTJFOEYwO2JvcmRlci10b3A6bm9uZTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEycHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MTJweH0KLnZ0eC1wb3J0Zm9saW8tdGl0bGV7Zm9udC1mYW1pbHk6IkludGVyIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjFyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRjE3MkE7bWFyZ2luLWJvdHRvbTowLjRyZW07bGluZS1oZWlnaHQ6MS4zfQoudnR4LXBvcnRmb2xpby1kZXNje2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MC44NXJlbTtjb2xvcjojNkM3NTdEO21hcmdpbi1ib3R0b206MC45cmVtO2xpbmUtaGVpZ2h0OjEuNX0KLnZ0eC1wb3J0Zm9saW8tbGlua3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MC40cmVtO2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MC43OHJlbTtmb250LXdlaWdodDo3MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOjAuMWVtO2NvbG9yOiNEOTZCMjc7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbjpnYXAgMC40c30KLnZ0eC1wb3J0Zm9saW8tY2FyZDpob3ZlciAudnR4LXBvcnRmb2xpby1saW5re2dhcDowLjdyZW19Ci52dHgtdGVzdGltb25pYWwtY2FyZHtiYWNrZ3JvdW5kOiNmZmY7cGFkZGluZzoxLjhyZW07Ym9yZGVyLXJhZGl1czoxMnB4O2JvcmRlcjoxcHggc29saWQgI0UyRThGMDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2JveC1zaGFkb3c6MCAxMHB4IDI1cHggcmdiYSgwLDAsMCwwLjAzKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjRzfQoudnR4LXRlc3RpbW9uaWFsLWNhcmQ6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCl9Ci52dHgtdGVzdGltb25pYWwtc3RhcnN7Y29sb3I6I0Q5NkIyNztmb250LXNpemU6MXJlbTttYXJnaW4tYm90dG9tOjAuOHJlbX0KLnZ0eC10ZXN0aW1vbmlhbC1xdW90ZXtmb250LWZhbWlseToiSW50ZXIiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuOXJlbTtjb2xvcjojMzQzQTQwO2xpbmUtaGVpZ2h0OjEuNjttYXJnaW4tYm90dG9tOjEuMjVyZW07Zm9udC1zdHlsZTppdGFsaWN9Ci52dHgtdGVzdGltb25pYWwtYXV0aG9ye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjAuOHJlbX0KLnZ0eC10ZXN0aW1vbmlhbC1hdmF0YXJ7d2lkdGg6NDJweDtoZWlnaHQ6NDJweDtib3JkZXItcmFkaXVzOjUwJTtvYmplY3QtZml0OmNvdmVyfQoudnR4LXRlc3RpbW9uaWFsLWluZm8gaDR7Zm9udC1mYW1pbHk6IkludGVyIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTowLjlyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRjE3MkF9Ci52dHgtdGVzdGltb25pYWwtaW5mbyBzcGFue2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MC43NXJlbTtjb2xvcjojNkM3NTdEfQoudnR4LWZhcS1jYXJke2JhY2tncm91bmQ6I0Y4RjlGQTtwYWRkaW5nOjEuNnJlbTtib3JkZXItcmFkaXVzOjEycHg7Ym9yZGVyOjFweCBzb2xpZCAjRTJFOEYwO2JvcmRlci1sZWZ0OjRweCBzb2xpZCAjRDk2QjI3O3RyYW5zaXRpb246dHJhbnNmb3JtIDAuNHN9Ci52dHgtZmFxLWNhcmQ6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTRweCk7YmFja2dyb3VuZDojZmZmfQoudnR4LWZhcS1xe2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MS4wNXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6I0Q5NkIyNzttYXJnaW4tYm90dG9tOjAuNnJlbTtsaW5lLWhlaWdodDoxLjR9Ci52dHgtZmFxLWF7Zm9udC1mYW1pbHk6IkludGVyIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTowLjg4cmVtO2NvbG9yOiM2Qzc1N0Q7bGluZS1oZWlnaHQ6MS42NX0KJzsKCiRjdXN0b21fY3NzX3NlcnZpY2VzID0gJwoudnR4LXNydi1oZXJvLWJne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7YmFja2dyb3VuZDp1cmwoImh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNjAwNTg1MTU0MzQwLWJlNjE2MWE1NmEwYz9xPTgwJnc9MTkyMCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyIC8gY292ZXI7b3BhY2l0eTowLjE4O2ZpbHRlcjpncmF5c2NhbGUoMTAwJSl9Ci52dHgtc3J2LWJhZGdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6NnB4IDE2cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIxNywxMDcsMzksMC40KTtiYWNrZ3JvdW5kOnJnYmEoMjE3LDEwNywzOSwwLjEpO2NvbG9yOiNEOTZCMjc7Zm9udC1zaXplOjAuODVyZW07Zm9udC13ZWlnaHQ6ODAwO2xldHRlci1zcGFjaW5nOjAuMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtib3JkZXItcmFkaXVzOjUwcHg7bWFyZ2luLWJvdHRvbToxLjVyZW19Ci52dHgtZm9ybS1jYXJke2JhY2tncm91bmQ6I2ZmZjtwYWRkaW5nOjIuNXJlbTtib3JkZXItcmFkaXVzOjE2cHg7Ym94LXNoYWRvdzowIDIwcHggNDBweCByZ2JhKDAsMCwwLDAuMzUpO2NvbG9yOiMwRjE3MkE7Ym9yZGVyOjFweCBzb2xpZCAjRTJFOEYwfQoudnR4LWZvcm0taW5wdXR7d2lkdGg6MTAwJTtwYWRkaW5nOjAuODhyZW0gMXJlbTtiYWNrZ3JvdW5kOiNGQUZBRkM7Ym9yZGVyOjFweCBzb2xpZCAjRTJFOEYwO2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MC45cmVtO2NvbG9yOiMwRjE3MkE7b3V0bGluZTpub25lO3RyYW5zaXRpb246YWxsIDAuM3N9Ci52dHgtZm9ybS1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6I0Q5NkIyNztiYWNrZ3JvdW5kOiNmZmY7Ym94LXNoYWRvdzowIDAgMCAzcHggcmdiYSgyMTcsMTA3LDM5LDAuMTUpfQoudnR4LWZvcm0tc2VsZWN0e3dpZHRoOjEwMCU7cGFkZGluZzowLjg4cmVtIDFyZW07YmFja2dyb3VuZDojRkFGQUZDO2JvcmRlcjoxcHggc29saWQgI0UyRThGMDtib3JkZXItcmFkaXVzOjZweDtmb250LWZhbWlseToiSW50ZXIiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuOXJlbTtjb2xvcjojMEYxNzJBO291dGxpbmU6bm9uZTt0cmFuc2l0aW9uOmFsbCAwLjNzfQoudnR4LWZvcm0tc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojRDk2QjI3O2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDIxNywxMDcsMzksMC4xNSl9Ci52dHgtZm9ybS1idG57d2lkdGg6MTAwJTtwYWRkaW5nOjFyZW07YmFja2dyb3VuZDojRDk2QjI3O2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1mYW1pbHk6IkludGVyIixzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MC44OHJlbTtsZXR0ZXItc3BhY2luZzowLjEyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIDAuM3N9Ci52dHgtZm9ybS1idG46aG92ZXJ7YmFja2dyb3VuZDojMEYxNzJBO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpfQoudnR4LXNydi1jYXJke2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNFMkU4RjA7Ym9yZGVyLXJhZGl1czoxNnB4O292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjVzLGJveC1zaGFkb3cgMC41cyxib3JkZXItY29sb3IgMC41cztkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOnJlbGF0aXZlfQoudnR4LXNydi1jYXJkOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KTtib3gtc2hhZG93OjAgMjJweCA0NXB4IHJnYmEoMjE3LDEwNywzOSwwLjEyKTtib3JkZXItY29sb3I6I0Q5NkIyN30KLnZ0eC1zcnYtY2FyZC1pbWd7aGVpZ2h0OjIzMHB4O3dpZHRoOjEwMCU7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufQoudnR4LXNydi1jYXJkLWltZyBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtvYmplY3QtZml0OmNvdmVyO3RyYW5zaXRpb246dHJhbnNmb3JtIDAuNnN9Ci52dHgtc3J2LWNhcmQ6aG92ZXIgLnZ0eC1zcnYtY2FyZC1pbWcgaW1ne3RyYW5zZm9ybTpzY2FsZSgxLjEpfQoudnR4LXNydi1jYXJkLW51bXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MXJlbTtyaWdodDoxcmVtO2JhY2tncm91bmQ6cmdiYSgxNSwyMyw0MiwwLjg1KTtjb2xvcjojRDk2QjI3O2JhY2tkcm9wLWZpbHRlcjpibHVyKDZweCk7Zm9udC1mYW1pbHk6IkJlYmFzIE5ldWUiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNHJlbTtwYWRkaW5nOjAuMnJlbSAwLjhyZW07Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIDAuM3MsY29sb3IgMC4zc30KLnZ0eC1zcnYtY2FyZDpob3ZlciAudnR4LXNydi1jYXJkLW51bXtiYWNrZ3JvdW5kOiNEOTZCMjc7Y29sb3I6I2ZmZn0KLnZ0eC1zcnYtY2FyZC1ib2R5e3BhZGRpbmc6MnJlbTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZ3JvdzoxfQoudnR4LXNydi1jYXJkLXRpdGxle2ZvbnQtZmFtaWx5OiJCZWJhcyBOZXVlIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToycmVtO2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzBGMTcyQTttYXJnaW4tYm90dG9tOjAuOHJlbTtsZXR0ZXItc3BhY2luZzowLjAyZW07dHJhbnNpdGlvbjpjb2xvciAwLjNzfQoudnR4LXNydi1jYXJkOmhvdmVyIC52dHgtc3J2LWNhcmQtdGl0bGV7Y29sb3I6I0Q5NkIyN30KLnZ0eC1zcnYtY2FyZC1kZXNje2ZvbnQtc2l6ZTowLjkycmVtO2NvbG9yOiM0NzU1Njk7bGluZS1oZWlnaHQ6MS42NTttYXJnaW4tYm90dG9tOjEuNXJlbX0KLnZ0eC1zcnYtY2FyZC1mZWF0dXJlc3tsaXN0LXN0eWxlOm5vbmU7bWFyZ2luLWJvdHRvbToycmVtO21hcmdpbi10b3A6YXV0b30KLnZ0eC1zcnYtY2FyZC1mZWF0dXJlcyBsaXtmb250LXNpemU6MC44OHJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6IzBGMTcyQTttYXJnaW4tYm90dG9tOjAuNnJlbTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDowLjZyZW19Ci52dHgtc3J2LWNhcmQtZmVhdHVyZXMgbGk6OmJlZm9yZXtjb250ZW50OiIiO3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JhY2tncm91bmQ6I0Q5NkIyNztib3JkZXItcmFkaXVzOjUwJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzfQoudnR4LXNydi1jYXJkOmhvdmVyIC52dHgtc3J2LWNhcmQtZmVhdHVyZXMgbGk6OmJlZm9yZXt0cmFuc2Zvcm06c2NhbGUoMS41KX0KLnZ0eC1zcnYtY2FyZC1idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47d2lkdGg6MTAwJTtwYWRkaW5nOjAuOXJlbSAxLjI1cmVtO2JhY2tncm91bmQ6I0ZBRkFGQztib3JkZXI6MXB4IHNvbGlkICNFMkU4RjA7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC1zaXplOjAuODJyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOjAuMWVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjojMEYxNzJBO3RyYW5zaXRpb246YWxsIDAuM3M7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Ci52dHgtc3J2LWNhcmQ6aG92ZXIgLnZ0eC1zcnYtY2FyZC1idG57YmFja2dyb3VuZDojRDk2QjI3O2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNEOTZCMjd9Ci52dHgtZ3VhcmFudGVlLWNhcmR7YmFja2dyb3VuZDojRkFGQUZDO2JvcmRlcjoxcHggc29saWQgI0UyRThGMDtib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoyLjVyZW0gMnJlbTt0cmFuc2l0aW9uOmFsbCAwLjRzfQoudnR4LWd1YXJhbnRlZS1jYXJkOmhvdmVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6I0Q5NkIyNzt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNnB4KTtib3gtc2hhZG93OjAgMTVweCAzMHB4IHJnYmEoMCwwLDAsMC4wNSl9Ci52dHgtZ3VhcmFudGVlLWljb257d2lkdGg6NTJweDtoZWlnaHQ6NTJweDtiYWNrZ3JvdW5kOnJnYmEoMjE3LDEwNywzOSwwLjEpO2NvbG9yOiNEOTZCMjc7Ym9yZGVyLXJhZGl1czo2cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxLjVyZW07bWFyZ2luLWJvdHRvbToxLjI1cmVtfQoudnR4LWd1YXJhbnRlZS10aXRsZXtmb250LWZhbWlseToiQmViYXMgTmV1ZSIsc2Fucy1zZXJpZjtmb250LXNpemU6MS44NXJlbTtjb2xvcjojMEYxNzJBO21hcmdpbi1ib3R0b206MC42cmVtO2xpbmUtaGVpZ2h0OjEuMTtsZXR0ZXItc3BhY2luZzowLjAyZW19Ci52dHgtZ3VhcmFudGVlLWRlc2N7Zm9udC1zaXplOjAuOTJyZW07Y29sb3I6IzQ3NTU2OTtsaW5lLWhlaWdodDoxLjZ9Ci52dHgtc3BlYy10YWJsZXt3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6MTZweDtvdmVyZmxvdzpoaWRkZW47Ym94LXNoYWRvdzowIDRweCAyMHB4IHJnYmEoMCwwLDAsMC4wMyl9Ci52dHgtc3BlYy10YWJsZSB0aCwudnR4LXNwZWMtdGFibGUgdGR7cGFkZGluZzoxLjI1cmVtIDEuNXJlbTtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRTJFOEYwO3RyYW5zaXRpb246YmFja2dyb3VuZCAwLjNzfQoudnR4LXNwZWMtdGFibGUgdGh7Zm9udC1mYW1pbHk6IkJlYmFzIE5ldWUiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuNnJlbTtjb2xvcjojMEYxNzJBO2JhY2tncm91bmQ6I0Y4RkFGQztsZXR0ZXItc3BhY2luZzowLjAzZW19Ci52dHgtc3BlYy10YWJsZSB0ZHtmb250LXNpemU6MC45MnJlbTtjb2xvcjojNDc1NTY5fQoudnR4LXNwZWMtdGFibGUgdHI6aG92ZXIgdGR7YmFja2dyb3VuZDpyZ2JhKDIxNywxMDcsMzksMC4wNSl9Ci52dHgtc3BlYy1oaWdobGlnaHR7Y29sb3I6I0Q5NkIyNztmb250LXdlaWdodDo3MDB9Ci52dHgtcHJvYy1jYXJke2JhY2tncm91bmQ6I0ZBRkFGQztib3JkZXI6MXB4IHNvbGlkICNFMkU4RjA7cGFkZGluZzoyLjJyZW0gMS44cmVtO2JvcmRlci1yYWRpdXM6MTZweDtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjVzLGJveC1zaGFkb3cgMC41cyxib3JkZXItY29sb3IgMC41cztvdmVyZmxvdzpoaWRkZW59Ci52dHgtcHJvYy1jYXJkOjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O2JhY2tncm91bmQ6I0Q5NkIyNzt0cmFuc2Zvcm06c2NhbGVYKDApO3RyYW5zZm9ybS1vcmlnaW46bGVmdDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjRzfQoudnR4LXByb2MtY2FyZDpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtOHB4KTtib3gtc2hhZG93OjAgMjBweCA0MHB4IHJnYmEoMTUsMjMsNDIsMC4wOCk7Ym9yZGVyLWNvbG9yOnJnYmEoMjE3LDEwNywzOSwwLjMpO2JhY2tncm91bmQ6I2ZmZn0KLnZ0eC1wcm9jLWNhcmQ6aG92ZXI6OmJlZm9yZXt0cmFuc2Zvcm06c2NhbGVYKDEpfQoudnR4LXByb2MtbnVte2ZvbnQtZmFtaWx5OiJCZWJhcyBOZXVlIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZTozLjVyZW07bGluZS1oZWlnaHQ6MTtjb2xvcjojRDk2QjI3O21hcmdpbi1ib3R0b206MXJlbTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzfQoudnR4LXByb2MtY2FyZDpob3ZlciAudnR4LXByb2MtbnVte3RyYW5zZm9ybTpzY2FsZSgxLjEpfQoudnR4LXByb2MtdGl0bGV7Zm9udC1zaXplOjEuMTVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwRjE3MkE7bWFyZ2luLWJvdHRvbTowLjZyZW19Ci52dHgtcHJvYy1kZXNje2ZvbnQtc2l6ZTowLjg4cmVtO2NvbG9yOiM0NzU1Njk7bGluZS1oZWlnaHQ6MS42fQoudnR4LWN0YS1iYWRnZXtjb2xvcjojRDk2QjI3O2ZvbnQtc2l6ZTowLjg1cmVtO2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzowLjJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWFyZ2luLWJvdHRvbTowLjVyZW07ZGlzcGxheTpibG9ja30KLnZ0eC1jdGEtdGl0bGV7Zm9udC1mYW1pbHk6IkJlYmFzIE5ldWUiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjMuOHJlbTtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MC45NTttYXJnaW4tYm90dG9tOjAuOHJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Ci52dHgtY3RhLWRlc2N7Y29sb3I6Izk0QTNCODtmb250LXNpemU6MC45NXJlbTtsaW5lLWhlaWdodDoxLjZ9Ci52dHgtYnRuLXByaW1hcnl7cGFkZGluZzoxcmVtIDJyZW07YmFja2dyb3VuZDojRDk2QjI3O2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTowLjg4cmVtO2xldHRlci1zcGFjaW5nOjAuMTJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbjphbGwgMC4zcztkaXNwbGF5OmlubGluZS1ibG9ja30KLnZ0eC1idG4tcHJpbWFyeTpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6IzBGMTcyQTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtM3B4KX0KLnZ0eC1idG4tc2Vjb25kYXJ5e3BhZGRpbmc6MXJlbSAycmVtO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjIpO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czo2cHg7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTowLjg4cmVtO2xldHRlci1zcGFjaW5nOjAuMTJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dHJhbnNpdGlvbjphbGwgMC4zcztkaXNwbGF5OmlubGluZS1ibG9ja30KLnZ0eC1idG4tc2Vjb25kYXJ5OmhvdmVye2JvcmRlci1jb2xvcjojRDk2QjI3O2NvbG9yOiNEOTZCMjc7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTNweCl9Cic7CgokY3VzdG9tX2Nzc19hYm91dCA9ICcKLnZ0eC1hYm91dC1oZXJvLWJne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7YmFja2dyb3VuZDp1cmwoImh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTA0MzA3NjUxMjU0LTM1NjgwZjM1NmRmZD9xPTgwJnc9MTkyMCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyIC8gY292ZXI7b3BhY2l0eTowLjE1O2ZpbHRlcjpncmF5c2NhbGUoMTAwJSl9Ci52dHgtYWJvdXQtYmFkZ2V7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzo2cHggMTZweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjE3LDEwNywzOSwwLjQpO2JhY2tncm91bmQ6cmdiYSgyMTcsMTA3LDM5LDAuMSk7Y29sb3I6I0Q5NkIyNztmb250LXNpemU6MC43NXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6MC4yZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2JvcmRlci1yYWRpdXM6NTBweDttYXJnaW4tYm90dG9tOjEuNXJlbX0KLnZ0eC1hYm91dC1yaWdodHtwYWRkaW5nLWJvdHRvbToxcmVtO2JvcmRlci1sZWZ0OjJweCBzb2xpZCAjRDk2QjI3O3BhZGRpbmctbGVmdDoycmVtfQoudnR4LWFib3V0LWxlYWR7Zm9udC1zaXplOjEuMTVyZW07Y29sb3I6Izk0QTNCODtsaW5lLWhlaWdodDoxLjc7bWFyZ2luLWJvdHRvbToycmVtfQoudnR4LXN0YXRzLXN0cmlwe2JhY2tncm91bmQ6I0Q5NkIyNztjb2xvcjojZmZmO3BhZGRpbmc6Mi41cmVtIDB9Ci52dHgtc3RhdC1pdGVte2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtwYWRkaW5nLXJpZ2h0OjEuNXJlbX0KLnZ0eC1zdGF0LWl0ZW06bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6bm9uZX0KLnZ0eC1zdGF0LW51bXtmb250LWZhbWlseToiQmViYXMgTmV1ZSIsc2Fucy1zZXJpZjtmb250LXNpemU6NHJlbTtsaW5lLWhlaWdodDowLjk7Zm9udC13ZWlnaHQ6NzAwfQoudnR4LXN0YXQtbGJse2ZvbnQtc2l6ZTowLjhyZW07Zm9udC13ZWlnaHQ6NjAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzowLjFlbTttYXJnaW4tdG9wOjAuNHJlbTtvcGFjaXR5OjAuOX0KLnZ0eC13aG8taW1ne3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci1yYWRpdXM6MTZweDtvdmVyZmxvdzpoaWRkZW47Ym94LXNoYWRvdzowIDIwcHggNDBweCByZ2JhKDAsMCwwLDAuMDgpfQoudnR4LXdoby1pbWcgaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjQwMHB4O29iamVjdC1maXQ6Y292ZXJ9Ci52dHgtdGltZWxpbmUtZG90e3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjo0cHggc29saWQgI0Q5NkIyNztib3JkZXItcmFkaXVzOjUwJTttYXJnaW4tYm90dG9tOjEuNXJlbX0KLnZ0eC10aW1lbGluZS15ZWFye2ZvbnQtZmFtaWx5OiJCZWJhcyBOZXVlIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyLjRyZW07Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiNEOTZCMjc7bGluZS1oZWlnaHQ6MTttYXJnaW4tYm90dG9tOjAuNHJlbX0KLnZ0eC10aW1lbGluZS10aXRsZXtmb250LXNpemU6MS4xNXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6IzBGMTcyQTttYXJnaW4tYm90dG9tOjAuNnJlbX0KLnZ0eC10aW1lbGluZS1kZXNje2ZvbnQtc2l6ZTowLjkycmVtO2NvbG9yOiM0NzU1Njk7bGluZS1oZWlnaHQ6MS42NX0KLnZ0eC10YWItYnRue2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxLjI1cmVtIDEuOHJlbTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRTJFOEYwO2JvcmRlci1yYWRpdXM6MTJweDtmb250LWZhbWlseToiQmViYXMgTmV1ZSIsc2Fucy1zZXJpZjtmb250LXNpemU6MS42cmVtO2xldHRlci1zcGFjaW5nOjAuMDNlbTtjb2xvcjojMEYxNzJBO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIDAuM3M7dGV4dC1hbGlnbjpsZWZ0fQoudnR4LXRhYi1idG46aG92ZXJ7Ym9yZGVyLWNvbG9yOiNEOTZCMjd9Ci52dHgtdGFiLWJ0bi5hY3RpdmV7YmFja2dyb3VuZDojMEIxMzJBO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiMwQjEzMkE7Ym94LXNoYWRvdzowIDEycHggMjVweCByZ2JhKDExLDE5LDQyLDAuMTgpfQoudnR4LXRhYi1idG4gLnZ0eC10YWItbnVte2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MC44NXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6IzQ3NTU2OX0KLnZ0eC10YWItYnRuLmFjdGl2ZSAudnR4LXRhYi1udW17Y29sb3I6I2ZmZn0KLnZ0eC10YWItY29udGVudHtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjRTJFOEYwO2JvcmRlci1yYWRpdXM6MjBweDtwYWRkaW5nOjRyZW07Ym94LXNoYWRvdzowIDE1cHggMzVweCByZ2JhKDAsMCwwLDAuMDMpO21pbi1oZWlnaHQ6MzAwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0KLnZ0eC1wYW5lbC1udW17Zm9udC1mYW1pbHk6IkJlYmFzIE5ldWUiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjMuOHJlbTtsaW5lLWhlaWdodDoxO2NvbG9yOiNEOTZCMjc7bWFyZ2luLWJvdHRvbTowLjVyZW19Ci52dHgtcGFuZWwtdGl0bGV7Zm9udC1mYW1pbHk6IkJlYmFzIE5ldWUiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjIuOHJlbTtsaW5lLWhlaWdodDoxO2NvbG9yOiMwRjE3MkE7bWFyZ2luLWJvdHRvbToxLjJyZW07bGV0dGVyLXNwYWNpbmc6MC4wMmVtfQoudnR4LXBhbmVsLWRlc2N7Zm9udC1zaXplOjFyZW07Y29sb3I6IzQ3NTU2OTtsaW5lLWhlaWdodDoxLjc1fQoudnR4LXRlYW0tY2FyZHtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjE2cHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6IzBGMTcyQX0KLnZ0eC10ZWFtLWNhcmQtaW1ne3dpZHRoOjEwMCU7aGVpZ2h0OjMwMHB4O29iamVjdC1maXQ6Y292ZXI7b3BhY2l0eTowLjg1O2ZpbHRlcjpncmF5c2NhbGUoMjAlKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzLG9wYWNpdHkgMC4zcyxmaWx0ZXIgMC4zc30KLnZ0eC10ZWFtLWNhcmQ6aG92ZXIgLnZ0eC10ZWFtLWNhcmQtaW1ne3RyYW5zZm9ybTpzY2FsZSgxLjA1KTtvcGFjaXR5OjAuNTtmaWx0ZXI6Z3JheXNjYWxlKDAlKX0KLnZ0eC10ZWFtLWNhcmQtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmc6MS41cmVtO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHRvcCxyZ2JhKDE1LDIzLDQyLDAuOTUpIDIwJSx0cmFuc3BhcmVudCA4MCUpO2NvbG9yOiNmZmZ9Ci52dHgtdGVhbS1yb2xle2ZvbnQtc2l6ZTowLjcycmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzowLjE1ZW07Y29sb3I6I0Q5NkIyNzt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bWFyZ2luLWJvdHRvbTowLjJyZW19Ci52dHgtdGVhbS1uYW1le2ZvbnQtZmFtaWx5OiJCZWJhcyBOZXVlIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjZyZW07bGluZS1oZWlnaHQ6MTttYXJnaW4tYm90dG9tOjAuNHJlbX0KLnZ0eC10ZWFtLWJpb3tmb250LXNpemU6MC44cmVtO2NvbG9yOiM5NEEzQjg7bGluZS1oZWlnaHQ6MS40fQonOwoKJGN1c3RvbV9jc3NfY29udGFjdCA9ICcKLnZ0eC1jb250YWN0LWhlcm8tYmd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtiYWNrZ3JvdW5kOnVybCgiaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1NDE4ODg5NDY0MjUtZDBmYmIxODZhNWI3P3E9ODAmdz0xOTIwJmF1dG89Zm9ybWF0JmZpdD1jcm9wIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIgLyBjb3ZlcjtvcGFjaXR5OjAuMTg7ZmlsdGVyOmdyYXlzY2FsZSgxMDAlKX0KLnZ0eC1jb250YWN0LWJhZGdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6NnB4IDE2cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIxNywxMDcsMzksMC40KTtiYWNrZ3JvdW5kOnJnYmEoMjE3LDEwNywzOSwwLjEpO2NvbG9yOiNEOTZCMjc7Zm9udC1zaXplOjAuODVyZW07Zm9udC13ZWlnaHQ6ODAwO2xldHRlci1zcGFjaW5nOjAuMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtib3JkZXItcmFkaXVzOjUwcHg7bWFyZ2luLWJvdHRvbToxLjVyZW19Ci52dHgtaW5mby1jYXJke2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNFMkU4RjA7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MS44cmVtO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxLjI1cmVtO3RyYW5zaXRpb246YWxsIDAuM3N9Ci52dHgtaW5mby1jYXJkOmhvdmVye2JvcmRlci1jb2xvcjojRDk2QjI3O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpO2JveC1zaGFkb3c6MCAxNXB4IDMwcHggcmdiYSgwLDAsMCwwLjA1KX0KLnZ0eC1pbmZvLWljb257d2lkdGg6NTBweDtoZWlnaHQ6NTBweDtiYWNrZ3JvdW5kOnJnYmEoMjE3LDEwNywzOSwwLjEpO2NvbG9yOiNEOTZCMjc7Ym9yZGVyLXJhZGl1czo2cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxLjRyZW07ZmxleC1zaHJpbms6MH0KLnZ0eC1pbmZvLXRpdGxle2ZvbnQtZmFtaWx5OiJCZWJhcyBOZXVlIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxLjVyZW07Y29sb3I6IzBGMTcyQTttYXJnaW4tYm90dG9tOjAuM3JlbTtsZXR0ZXItc3BhY2luZzowLjAyZW19Ci52dHgtaW5mby10ZXh0e2ZvbnQtc2l6ZTowLjk1cmVtO2NvbG9yOiM0NzU1Njk7bGluZS1oZWlnaHQ6MS42O2Rpc3BsYXk6YmxvY2t9Ci52dHgtaW5mby1saW5re2ZvbnQtc2l6ZTowLjk1cmVtO2NvbG9yOiM0NzU1Njk7dGV4dC1kZWNvcmF0aW9uOm5vbmU7ZGlzcGxheTpibG9jazt0cmFuc2l0aW9uOmNvbG9yIDAuM3N9Ci52dHgtaW5mby1saW5rOmhvdmVye2NvbG9yOiNEOTZCMjd9Ci52dHgtZW1lcmdlbmN5LWNhcmR7YmFja2dyb3VuZDojMEYxNzJBO2NvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MnJlbTtib3JkZXItbGVmdDo0cHggc29saWQgI0Q5NkIyNzttYXJnaW4tdG9wOjAuNXJlbX0KLnZ0eC1lbWVyZ2VuY3ktdGl0bGV7Zm9udC1mYW1pbHk6IkJlYmFzIE5ldWUiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEuOHJlbTtjb2xvcjojZmZmO21hcmdpbi1ib3R0b206MC40cmVtO2xldHRlci1zcGFjaW5nOjAuMDJlbX0KLnZ0eC1lbWVyZ2VuY3ktZGVzY3tmb250LXNpemU6MC45cmVtO2NvbG9yOiM5NEEzQjg7bWFyZ2luLWJvdHRvbToxcmVtfQoudnR4LWVtZXJnZW5jeS1waG9uZXtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LWZhbWlseToiQmViYXMgTmV1ZSIsc2Fucy1zZXJpZjtmb250LXNpemU6MnJlbTtjb2xvcjojRDk2QjI3O3RleHQtZGVjb3JhdGlvbjpub25lO2xldHRlci1zcGFjaW5nOjAuMDVlbTt0cmFuc2l0aW9uOmNvbG9yIDAuM3N9Ci52dHgtZW1lcmdlbmN5LXBob25lOmhvdmVye2NvbG9yOiNmZmZ9Ci52dHgtY29udGFjdC1mb3Jte2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNFMkU4RjA7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6M3JlbTtib3gtc2hhZG93OjAgMTVweCAzNXB4IHJnYmEoMCwwLDAsMC4wMyl9Ci52dHgtY29udGFjdC1mb3JtLXRpdGxle2ZvbnQtZmFtaWx5OiJCZWJhcyBOZXVlIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyLjVyZW07bGluZS1oZWlnaHQ6MTtjb2xvcjojMEYxNzJBO21hcmdpbi1ib3R0b206MC41cmVtO2xldHRlci1zcGFjaW5nOjAuMDJlbX0KLnZ0eC1jb250YWN0LWZvcm0tc3Vie2ZvbnQtc2l6ZTowLjkycmVtO2NvbG9yOiM0NzU1Njk7bWFyZ2luLWJvdHRvbToycmVtfQoudnR4LWNvbnRhY3QtZm9ybSBsYWJlbHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTowLjhyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOjAuMDhlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6IzBGMTcyQTttYXJnaW4tYm90dG9tOjAuNXJlbX0KLnZ0eC1jb250YWN0LWZvcm0gaW5wdXQsLnZ0eC1jb250YWN0LWZvcm0gc2VsZWN0LC52dHgtY29udGFjdC1mb3JtIHRleHRhcmVhe3dpZHRoOjEwMCU7cGFkZGluZzowLjk1cmVtIDEuMXJlbTtiYWNrZ3JvdW5kOiNGQUZBRkM7Ym9yZGVyOjFweCBzb2xpZCAjRTJFOEYwO2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQtZmFtaWx5OiJJbnRlciIsc2Fucy1zZXJpZjtmb250LXNpemU6MC45MnJlbTtjb2xvcjojMEYxNzJBO291dGxpbmU6bm9uZTt0cmFuc2l0aW9uOmFsbCAwLjNzfQoudnR4LWNvbnRhY3QtZm9ybSB0ZXh0YXJlYXtyZXNpemU6dmVydGljYWw7bWluLWhlaWdodDoxNDBweH0KLnZ0eC1jb250YWN0LWZvcm0gaW5wdXQ6Zm9jdXMsLnZ0eC1jb250YWN0LWZvcm0gc2VsZWN0OmZvY3VzLC52dHgtY29udGFjdC1mb3JtIHRleHRhcmVhOmZvY3Vze2JvcmRlci1jb2xvcjojRDk2QjI3O2JhY2tncm91bmQ6I2ZmZjtib3gtc2hhZG93OjAgMCAwIDNweCByZ2JhKDIxNywxMDcsMzksMC4xNSl9Ci52dHgtY29udGFjdC1zdWJtaXR7d2lkdGg6MTAwJTtwYWRkaW5nOjEuMXJlbTtiYWNrZ3JvdW5kOiNEOTZCMjc7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjZweDtmb250LWZhbWlseToiSW50ZXIiLHNhbnMtc2VyaWY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTowLjlyZW07bGV0dGVyLXNwYWNpbmc6MC4xMmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAwLjNzO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MC42cmVtfQoudnR4LWNvbnRhY3Qtc3VibWl0OmhvdmVye2JhY2tncm91bmQ6IzBGMTcyQTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtib3gtc2hhZG93OjAgMTJweCAyNXB4IHJnYmEoMTUsMjMsNDIsMC4yKX0KLnZ0eC1tYXAtZnJhbWV7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjM4MHB4O2JvcmRlcjowfQoudnR4LWFyZWFzLXRpdGxle2ZvbnQtZmFtaWx5OiJCZWJhcyBOZXVlIixzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyLjJyZW07Y29sb3I6IzBGMTcyQTttYXJnaW4tYm90dG9tOjAuOHJlbTtsZXR0ZXItc3BhY2luZzowLjAyZW19Ci52dHgtYXJlYXMtZGVzY3tmb250LXNpemU6MC45MnJlbTtjb2xvcjojNDc1NTY5O21hcmdpbi1ib3R0b206MS41cmVtO2xpbmUtaGVpZ2h0OjEuNn0KLnZ0eC1hcmVhLXRhZ3tkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjAuNHJlbSAxcmVtO2JhY2tncm91bmQ6I0ZBRkFGQztib3JkZXI6MXB4IHNvbGlkICNFMkU4RjA7Ym9yZGVyLXJhZGl1czo1MHB4O2ZvbnQtc2l6ZTowLjgycmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjojMEYxNzJBO3RyYW5zaXRpb246YWxsIDAuM3M7bWFyZ2luOjAuM3JlbX0KLnZ0eC1hcmVhLXRhZzpob3ZlcntiYWNrZ3JvdW5kOiNEOTZCMjc7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6I0Q5NkIyN30KJzsKCi8vIEphdmFTY3JpcHQgZm9yIGFuaW1hdGlvbnMKJHZ0eF9qcyA9ICcKPHNjcmlwdD4KKGZ1bmN0aW9uKCl7CmZ1bmN0aW9uIHZ0eEluaXQoKXsKdmFyIHJldmVhbHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnZ0eC1yZXZlYWwiKTsKaWYocmV2ZWFscy5sZW5ndGg+MCl7CnZhciBvYnM9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpewplbnRyaWVzLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZS5pc0ludGVyc2VjdGluZyllLnRhcmdldC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKX0pOwp9LHt0aHJlc2hvbGQ6MC4wOH0pOwpyZXZlYWxzLmZvckVhY2goZnVuY3Rpb24oZWwpe29icy5vYnNlcnZlKGVsKX0pOwp9CnZhciBjb3VudGVycz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIudnR4LWNvdW50ZXItbnVtIik7CmlmKGNvdW50ZXJzLmxlbmd0aD4wKXsKdmFyIGNvYnM9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMsb2IpewplbnRyaWVzLmZvckVhY2goZnVuY3Rpb24oZSl7CmlmKGUuaXNJbnRlcnNlY3Rpbmcpewp2YXIgdD0rZS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXRhcmdldCIpOwp2YXIgZHVyPTE4MDA7dmFyIHN0ZXA9MjA7dmFyIHN0ZXBzPWR1ci9zdGVwO3ZhciBpbmM9dC9zdGVwczt2YXIgY3VyPTA7CnZhciB0aW1lcj1zZXRJbnRlcnZhbChmdW5jdGlvbigpewpjdXIrPWluYzsKaWYoY3VyPj10KXtlLnRhcmdldC5pbm5lclRleHQ9dDtjbGVhckludGVydmFsKHRpbWVyKX0KZWxzZXtlLnRhcmdldC5pbm5lclRleHQ9TWF0aC5jZWlsKGN1cil9Cn0sc3RlcCk7Cm9iLnVub2JzZXJ2ZShlLnRhcmdldCk7Cn0KfSk7Cn0se3RocmVzaG9sZDowLjJ9KTsKY291bnRlcnMuZm9yRWFjaChmdW5jdGlvbihjKXtjb2JzLm9ic2VydmUoYyl9KTsKfQp9CmlmKGRvY3VtZW50LnJlYWR5U3RhdGU9PT0iaW50ZXJhY3RpdmUifHxkb2N1bWVudC5yZWFkeVN0YXRlPT09ImNvbXBsZXRlIil2dHhJbml0KCk7CmVsc2UgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsdnR4SW5pdCk7Cn0pKCk7Cjwvc2NyaXB0PgonOwoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIEhPTUUgUEFHRSAoSUQ6IDE2KQovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZnVuY3Rpb24gYnVpbGRfaG9tZV9wYWdlKCkgewogICAgJGRhdGEgPSBbXTsKICAgICRjc3MgPSAnJzsKCiAgICAvLyAtLS0tIEhFUk8gU0VDVElPTiAtLS0tCiAgICAkaGVybyA9IHZ0eF9jb250YWluZXIoWwogICAgICAgICdmbGV4X2RpcmVjdGlvbicgPT4gJ2NvbHVtbicsCiAgICAgICAgJ3BhZGRpbmcnID0+IFsndW5pdCc9PidweCcsJ3RvcCc9Pic4OCcsJ3JpZ2h0Jz0+JzI0JywnYm90dG9tJz0+Jzg4JywnbGVmdCc9PicyNCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICdwYWRkaW5nX3RhYmxldCcgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzY0JywncmlnaHQnPT4nMjAnLCdib3R0b20nPT4nNjQnLCdsZWZ0Jz0+JzIwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgJ3BhZGRpbmdfbW9iaWxlJyA9PiBbJ3VuaXQnPT4ncHgnLCd0b3AnPT4nNDgnLCdyaWdodCc9PicxNicsJ2JvdHRvbSc9Pic0OCcsJ2xlZnQnPT4nMTYnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAnYmFja2dyb3VuZF9iYWNrZ3JvdW5kJyA9PiAnY2xhc3NpYycsCiAgICAgICAgJ2JhY2tncm91bmRfaW1hZ2UnID0+IFsndXJsJyA9PiAnaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE2MDA1ODUxNTQzNDAtYmU2MTYxYTU2YTBjP3E9ODAmdz0xOTIwJmF1dG89Zm9ybWF0JmZpdD1jcm9wJ10sCiAgICAgICAgJ2JhY2tncm91bmRfc2l6ZScgPT4gJ2NvdmVyJywKICAgICAgICAnYmFja2dyb3VuZF9wb3NpdGlvbicgPT4gWyd1bml0Jz0+JyUnLCd4Jz0+J2NlbnRlcicsJ3knPT4nY2VudGVyJ10sCiAgICAgICAgJ2JhY2tncm91bmRfb3ZlcmxheV9iYWNrZ3JvdW5kJyA9PiAnY2xhc3NpYycsCiAgICAgICAgJ2JhY2tncm91bmRfb3ZlcmxheV9jb2xvcicgPT4gJyMxMjE0MTYnLAogICAgICAgICdiYWNrZ3JvdW5kX292ZXJsYXlfb3BhY2l0eScgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9PjAuODVdLAogICAgICAgICdiYWNrZ3JvdW5kX2NvbG9yJyA9PiAnIzEyMTQxNicsCiAgICBdLCBbCiAgICAgICAgLy8gQkcgTGV0dGVyIFYKICAgICAgICB2dHhfd2lkZ2V0KCdoZWFkaW5nJywgWwogICAgICAgICAgICAndGl0bGUnID0+ICdWJywKICAgICAgICAgICAgJ2hlYWRlcl9zaXplJyA9PiAnaDEnLAogICAgICAgICAgICAnYWxpZ24nID0+ICdyaWdodCcsCiAgICAgICAgICAgICd0aXRsZV9jb2xvcicgPT4gJ3JnYmEoMjU1LDI1NSwyNTUsMC4wMyknLAogICAgICAgICAgICAndHlwb2dyYXBoeV90eXBvZ3JhcGh5JyA9PiAnY3VzdG9tJywKICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9mYW1pbHknID0+ICdCZWJhcyBOZXVlJywKICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplJyA9PiBbJ3VuaXQnPT4ndncnLCdzaXplJz0+JzMwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICd0eXBvZ3JhcGh5X2xpbmVfaGVpZ2h0JyA9PiBbJ3VuaXQnPT4nZW0nLCdzaXplJz0+JzAuODUnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgJ19jc3NfY2xhc3NlcycgPT4gJ3Z0eC1oZXJvLWJnLWxldHRlcicsCiAgICAgICAgXSksCiAgICAgICAgLy8gSGVybyBJbm5lciBSb3cKICAgICAgICB2dHhfcm93KFsKICAgICAgICAgICAgJ2ZsZXhfZGlyZWN0aW9uJyA9PiAncm93JywKICAgICAgICAgICAgJ2ZsZXhfd3JhcCcgPT4gJ25vd3JhcCcsCiAgICAgICAgICAgICdqdXN0aWZ5X2NvbnRlbnQnID0+ICdzcGFjZS1iZXR3ZWVuJywKICAgICAgICAgICAgJ2FsaWduX2l0ZW1zJyA9PiAnY2VudGVyJywKICAgICAgICAgICAgJ2ZsZXhfZ2FwJyA9PiBbJ3VuaXQnPT4ncHgnLCdjb2x1bW4nPT4nNDAnLCdyb3cnPT4nMCddLAogICAgICAgICAgICAnbWF4X3dpZHRoJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzEzMDAnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgJ21hcmdpbicgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzAnLCdyaWdodCc9PidhdXRvJywnYm90dG9tJz0+JzAnLCdsZWZ0Jz0+J2F1dG8nLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgJ3pfaW5kZXgnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMicsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAncG9zaXRpb24nID0+ICdyZWxhdGl2ZScsCiAgICAgICAgXSwgWwogICAgICAgICAgICAvLyBMZWZ0IENvbHVtbgogICAgICAgICAgICB2dHhfY29sKDU1LCBbCiAgICAgICAgICAgICAgICAnZmxleF9kaXJlY3Rpb24nID0+ICdjb2x1bW4nLAogICAgICAgICAgICAgICAgJ2p1c3RpZnlfY29udGVudCcgPT4gJ2NlbnRlcicsCiAgICAgICAgICAgIF0sIFsKICAgICAgICAgICAgICAgIHZ0eF93aWRnZXQoJ2hlYWRpbmcnLCBbCiAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJyA9PiAnQVJDSElURUNUVVJBTCBQUk9URUNUSU9OJywKICAgICAgICAgICAgICAgICAgICAnaGVhZGVyX3NpemUnID0+ICdoNicsCiAgICAgICAgICAgICAgICAgICAgJ3RpdGxlX2NvbG9yJyA9PiAnI0Q5NkIyNycsCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfdHlwb2dyYXBoeScgPT4gJ2N1c3RvbScsCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9mYW1pbHknID0+ICdJbnRlcicsCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzEyJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF93ZWlnaHQnID0+ICc2MDAnLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2xldHRlcl9zcGFjaW5nJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzMnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnX2Nzc19jbGFzc2VzJyA9PiAndnR4LWhlcm8tZXllYnJvdycsCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIHZ0eF93aWRnZXQoJ2hlYWRpbmcnLCBbCiAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJyA9PiAiQlVJTFQgVE88YnI+PHNwYW4gc3R5bGU9J2NvbG9yOiNEOTZCMjcnPlBST1RFQ1QuPC9zcGFuPiIsCiAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcl9zaXplJyA9PiAnaDEnLAogICAgICAgICAgICAgICAgICAgICd0aXRsZV9jb2xvcicgPT4gJyNmZmYnLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X3R5cG9ncmFwaHknID0+ICdjdXN0b20nLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfZmFtaWx5JyA9PiAnQmViYXMgTmV1ZScsCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+Jzk2JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplX3RhYmxldCcgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9Pic3MicsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfc2l6ZV9tb2JpbGUnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nNTInLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9saW5lX2hlaWdodCcgPT4gWyd1bml0Jz0+J2VtJywnc2l6ZSc9PicwLjknLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgdnR4X3RleHQoIkF0IFZFUlRFWCBSb29maW5nLCB3ZSBlbmdpbmVlciBoaWdoLXBlcmZvcm1hbmNlIHJvb2Ygc3RydWN0dXJlcyBkZXNpZ25lZCBmb3IgbG9uZ2V2aXR5LCBkdXJhYmlsaXR5LCBhbmQgbW9kZXJuIGFyY2hpdGVjdHVyYWwgZWxlZ2FuY2UuIiwgWwogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X3R5cG9ncmFwaHknID0+ICdjdXN0b20nLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfZmFtaWx5JyA9PiAnSW50ZXInLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfc2l6ZScgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9PicxNicsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfd2VpZ2h0JyA9PiAnMzAwJywKICAgICAgICAgICAgICAgICAgICAndGV4dF9jb2xvcicgPT4gJ3JnYmEoMjU1LDI1NSwyNTUsMC44NSknLAogICAgICAgICAgICAgICAgICAgICd0ZXh0X2NvbHVtbnMnID0+ICcxJywKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgdnR4X3JvdyhbCiAgICAgICAgICAgICAgICAgICAgJ2ZsZXhfZ2FwJyA9PiBbJ3VuaXQnPT4ncHgnLCdjb2x1bW4nPT4nMjAnLCdyb3cnPT4nMCddLAogICAgICAgICAgICAgICAgICAgICdqdXN0aWZ5X2NvbnRlbnQnID0+ICdmbGV4LXN0YXJ0JywKICAgICAgICAgICAgICAgIF0sIFsKICAgICAgICAgICAgICAgICAgICB2dHhfd2lkZ2V0KCdidXR0b24nLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0JyA9PiAnT1VSIFNFUlZJQ0VTJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbmsnID0+IFsndXJsJyA9PiAnI3NlcnZpY2VzJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICdidXR0b25fdHlwZScgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICdidXR0b25fdGV4dF9jb2xvcicgPT4gJyNmZmYnLAogICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZF9jb2xvcicgPT4gJyNEOTZCMjcnLAogICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyX2JvcmRlcicgPT4gJ3NvbGlkJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlcl93aWR0aCcgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzAnLCdyaWdodCc9PicwJywnYm90dG9tJz0+JzAnLCdsZWZ0Jz0+JzAnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlcl9yYWRpdXMnID0+IFsndW5pdCc9PidweCcsJ3RvcCc9Pic2JywncmlnaHQnPT4nNicsJ2JvdHRvbSc9Pic2JywnbGVmdCc9Pic2JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X3R5cG9ncmFwaHknID0+ICdjdXN0b20nLAogICAgICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X2ZhbWlseScgPT4gJ0ludGVyJywKICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzEzJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfd2VpZ2h0JyA9PiAnNjAwJywKICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfbGV0dGVyX3NwYWNpbmcnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMS41JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X3RleHRfdHJhbnNmb3JtJyA9PiAndXBwZXJjYXNlJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2J1dHRvbl9wYWRkaW5nJyA9PiBbJ3VuaXQnPT4ncHgnLCd0b3AnPT4nMTQnLCdyaWdodCc9PiczMCcsJ2JvdHRvbSc9PicxNCcsJ2xlZnQnPT4nMzAnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHRfcGFkZGluZycgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzE0JywncmlnaHQnPT4nMzAnLCdib3R0b20nPT4nMTQnLCdsZWZ0Jz0+JzMwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICAgICAgdnR4X3dpZGdldCgnYnV0dG9uJywgWwogICAgICAgICAgICAgICAgICAgICAgICAndGV4dCcgPT4gJ1ZJRVcgUE9SVEZPTElPJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbmsnID0+IFsndXJsJyA9PiAnI3Byb2plY3RzJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICdidXR0b25fdHlwZScgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICdidXR0b25fdGV4dF9jb2xvcicgPT4gJyNmZmYnLAogICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZF9jb2xvcicgPT4gJ3RyYW5zcGFyZW50JywKICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlcl9ib3JkZXInID0+ICdzb2xpZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXJfd2lkdGgnID0+IFsndW5pdCc9PidweCcsJ3RvcCc9PicwJywncmlnaHQnPT4nMCcsJ2JvdHRvbSc9PicyJywnbGVmdCc9PicwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXJfY29sb3InID0+ICcjZmZmJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlcl9yYWRpdXMnID0+IFsndW5pdCc9PidweCcsJ3RvcCc9PicwJywncmlnaHQnPT4nMCcsJ2JvdHRvbSc9PicwJywnbGVmdCc9PicwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X3R5cG9ncmFwaHknID0+ICdjdXN0b20nLAogICAgICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X2ZhbWlseScgPT4gJ0ludGVyJywKICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzEzJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfd2VpZ2h0JyA9PiAnNjAwJywKICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfbGV0dGVyX3NwYWNpbmcnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMS41JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X3RleHRfdHJhbnNmb3JtJyA9PiAndXBwZXJjYXNlJywKICAgICAgICAgICAgICAgICAgICAgICAgJ2J1dHRvbl9wYWRkaW5nJyA9PiBbJ3VuaXQnPT4ncHgnLCd0b3AnPT4nMTQnLCdyaWdodCc9PiczMCcsJ2JvdHRvbSc9PicxMCcsJ2xlZnQnPT4nMzAnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHRfcGFkZGluZycgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzE0JywncmlnaHQnPT4nMzAnLCdib3R0b20nPT4nMTAnLCdsZWZ0Jz0+JzMwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgXSksCiAgICAgICAgICAgIC8vIFJpZ2h0IENvbHVtbiAoSW1hZ2VzKQogICAgICAgICAgICB2dHhfY29sKDQwLCBbCiAgICAgICAgICAgICAgICAnZmxleF9kaXJlY3Rpb24nID0+ICdjb2x1bW4nLAogICAgICAgICAgICAgICAgJ3Bvc2l0aW9uJyA9PiAncmVsYXRpdmUnLAogICAgICAgICAgICAgICAgJ21pbl9oZWlnaHQnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nNDUwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgIF0sIFsKICAgICAgICAgICAgICAgIHZ0eF93aWRnZXQoJ2ltYWdlJywgWwogICAgICAgICAgICAgICAgICAgICdpbWFnZScgPT4gWyd1cmwnID0+ICdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTYwMDU5NjU0MjgxNS1mZmFkNGMxNTM5YTk/dz05MDAmcT04MCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCddLAogICAgICAgICAgICAgICAgICAgICdpbWFnZV9hbHQnID0+ICdWRVJURVggTW9kZXJuIFJvb2ZpbmcgSW5zdGFsbGF0aW9uJywKICAgICAgICAgICAgICAgICAgICAnaW1hZ2Vfc2l6ZScgPT4gJ2Z1bGwnLAogICAgICAgICAgICAgICAgICAgICd3aWR0aCcgPT4gWyd1bml0Jz0+JyUnLCdzaXplJz0+Jzg1JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgJ3Bvc2l0aW9uJyA9PiAnYWJzb2x1dGUnLAogICAgICAgICAgICAgICAgICAgICdvZmZzZXRfb3JpZW50YXRpb24nID0+ICd0b3AnLAogICAgICAgICAgICAgICAgICAgICdvZmZzZXRfeScgPT4gWyd1bml0Jz0+JyUnLCdzaXplJz0+JzAnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnb2Zmc2V0X3gnID0+IFsndW5pdCc9PiclJywnc2l6ZSc9PicxNScsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgICdib3JkZXJfcmFkaXVzJyA9PiBbJ3VuaXQnPT4ncHgnLCd0b3AnPT4nMTInLCdyaWdodCc9PicxMicsJ2JvdHRvbSc9PicxMicsJ2xlZnQnPT4nMTInLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnX2Nzc19jbGFzc2VzJyA9PiAndnR4LWhlcm8tbWFpbi1pbWcnLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICB2dHhfd2lkZ2V0KCdpbWFnZScsIFsKICAgICAgICAgICAgICAgICAgICAnaW1hZ2UnID0+IFsndXJsJyA9PiAnaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE2MDA2MDc2ODc5MzktY2U4YTZjMjUxMThjP3c9NjAwJnE9ODAmYXV0bz1mb3JtYXQmZml0PWNyb3AnXSwKICAgICAgICAgICAgICAgICAgICAnaW1hZ2VfYWx0JyA9PiAnUm9vZiBDcmFmdHNtYW5zaGlwIERldGFpbCcsCiAgICAgICAgICAgICAgICAgICAgJ2ltYWdlX3NpemUnID0+ICdmdWxsJywKICAgICAgICAgICAgICAgICAgICAnd2lkdGgnID0+IFsndW5pdCc9PiclJywnc2l6ZSc9Pic0OCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgICdwb3NpdGlvbicgPT4gJ2Fic29sdXRlJywKICAgICAgICAgICAgICAgICAgICAnb2Zmc2V0X29yaWVudGF0aW9uJyA9PiAnYm90dG9tJywKICAgICAgICAgICAgICAgICAgICAnb2Zmc2V0X3knID0+IFsndW5pdCc9PiclJywnc2l6ZSc9PicwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgJ29mZnNldF94JyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzAnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnYm9yZGVyX3JhZGl1cycgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzEyJywncmlnaHQnPT4nMTInLCdib3R0b20nPT4nMTInLCdsZWZ0Jz0+JzEyJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgJ2JveF9zaGFkb3dfYm94X3NoYWRvdycgPT4gJ3llcycsCiAgICAgICAgICAgICAgICAgICAgJ2JveF9zaGFkb3dfYm94X3NoYWRvd190eXBlJyA9PiAneWVzJywKICAgICAgICAgICAgICAgICAgICAnYm94X3NoYWRvd19ib3hfc2hhZG93X2hvcml6b250YWwnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgICdib3hfc2hhZG93X2JveF9zaGFkb3dfdmVydGljYWwnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMTUnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnYm94X3NoYWRvd19ib3hfc2hhZG93X2JsdXInID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMzUnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnYm94X3NoYWRvd19ib3hfc2hhZG93X2NvbG9yJyA9PiAncmdiYSgwLDAsMCwwLjQpJywKICAgICAgICAgICAgICAgICAgICAnX2Nzc19jbGFzc2VzJyA9PiAndnR4LWhlcm8tYWNjZW50LWltZycsCiAgICAgICAgICAgICAgICAgICAgJ2JvcmRlcl9ib3JkZXInID0+ICdzb2xpZCcsCiAgICAgICAgICAgICAgICAgICAgJ2JvcmRlcl93aWR0aCcgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzQnLCdyaWdodCc9Pic0JywnYm90dG9tJz0+JzQnLCdsZWZ0Jz0+JzQnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnYm9yZGVyX2NvbG9yJyA9PiAnI2ZmZicsCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIC8vIFN0YXQgQmFkZ2UKICAgICAgICAgICAgICAgIHZ0eF9jb2woMzAsIFsKICAgICAgICAgICAgICAgICAgICAncG9zaXRpb24nID0+ICdhYnNvbHV0ZScsCiAgICAgICAgICAgICAgICAgICAgJ29mZnNldF9vcmllbnRhdGlvbicgPT4gJ3RvcCcsCiAgICAgICAgICAgICAgICAgICAgJ29mZnNldF95JyA9PiBbJ3VuaXQnPT4nJScsJ3NpemUnPT4nMzAnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnb2Zmc2V0X3gnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nLTIwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgJ3pfaW5kZXgnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nNCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kX2JhY2tncm91bmQnID0+ICdjbGFzc2ljJywKICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZF9jb2xvcicgPT4gJyNmZmYnLAogICAgICAgICAgICAgICAgICAgICdib3JkZXJfcmFkaXVzJyA9PiBbJ3VuaXQnPT4ncHgnLCd0b3AnPT4nMTInLCdyaWdodCc9PicxMicsJ2JvdHRvbSc9PicxMicsJ2xlZnQnPT4nMTInLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnYm94X3NoYWRvd19ib3hfc2hhZG93JyA9PiAneWVzJywKICAgICAgICAgICAgICAgICAgICAnYm94X3NoYWRvd19ib3hfc2hhZG93X3R5cGUnID0+ICd5ZXMnLAogICAgICAgICAgICAgICAgICAgICdib3hfc2hhZG93X2JveF9zaGFkb3dfdmVydGljYWwnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMTUnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnYm94X3NoYWRvd19ib3hfc2hhZG93X2JsdXInID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMzUnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnYm94X3NoYWRvd19ib3hfc2hhZG93X2NvbG9yJyA9PiAncmdiYSgwLDAsMCwwLjI1KScsCiAgICAgICAgICAgICAgICAgICAgJ3BhZGRpbmcnID0+IFsndW5pdCc9PidweCcsJ3RvcCc9PicxMicsJ3JpZ2h0Jz0+JzIwJywnYm90dG9tJz0+JzEyJywnbGVmdCc9PicyMCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgXSwgWwogICAgICAgICAgICAgICAgICAgIHZ0eF93aWRnZXQoJ2hlYWRpbmcnLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICd0aXRsZScgPT4gJzI1KycsCiAgICAgICAgICAgICAgICAgICAgICAgICdoZWFkZXJfc2l6ZScgPT4gJ2gzJywKICAgICAgICAgICAgICAgICAgICAgICAgJ3RpdGxlX2NvbG9yJyA9PiAnI0Q5NkIyNycsCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X3R5cG9ncmFwaHknID0+ICdjdXN0b20nLAogICAgICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X2ZhbWlseScgPT4gJ0JlYmFzIE5ldWUnLAogICAgICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X3NpemUnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMzInLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfbGluZV9oZWlnaHQnID0+IFsndW5pdCc9PidlbScsJ3NpemUnPT4nMScsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgIHZ0eF93aWRnZXQoJ2hlYWRpbmcnLCBbCiAgICAgICAgICAgICAgICAgICAgICAgICd0aXRsZScgPT4gJ1lFQVJTIEVYUEVSSUVOQ0UnLAogICAgICAgICAgICAgICAgICAgICAgICAnaGVhZGVyX3NpemUnID0+ICdoNicsCiAgICAgICAgICAgICAgICAgICAgICAgICd0aXRsZV9jb2xvcicgPT4gJyM2Qzc1N0QnLAogICAgICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV90eXBvZ3JhcGh5JyA9PiAnY3VzdG9tJywKICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9mYW1pbHknID0+ICdJbnRlcicsCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfc2l6ZScgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9PicxMCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X3dlaWdodCcgPT4gJzYwMCcsCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2xldHRlcl9zcGFjaW5nJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzEnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICBdKSwKICAgICAgICBdKSwKICAgIF0sIFtdKTsKICAgICRkYXRhW10gPSAkaGVybzsKCiAgICAvLyAtLS0tIFRJQ0tFUiAtLS0tCiAgICAkdGlja2VyX2l0ZW1zID0gWydSZXNpZGVudGlhbCBSb29maW5nJywnTWV0YWwgUm9vZmluZyBTeXN0ZW1zJywnQ29tbWVyY2lhbCBQcm9qZWN0cycsJ1N0b3JtIERhbWFnZSBSZXN0b3JhdGlvbicsJ0ZsYXQgUm9vZiBTeXN0ZW1zJ107CiAgICAkdGlja2VyX2h0bWwgPSAnPGRpdiBjbGFzcz0idnR4LXRpY2tlciI+PGRpdiBjbGFzcz0idnR4LXRpY2tlci10cmFjayI+JzsKICAgIGZvciAoJGkgPSAwOyAkaSA8IDI7ICRpKyspIHsKICAgICAgICBmb3JlYWNoICgkdGlja2VyX2l0ZW1zIGFzICRpdGVtKSB7CiAgICAgICAgICAgICR0aWNrZXJfaHRtbCAuPSAnPHNwYW4gY2xhc3M9InZ0eC10aWNrZXItaXRlbSI+PHNwYW4gY2xhc3M9InZ0eC10aWNrZXItZG90Ij48L3NwYW4+ICcgLiAkaXRlbSAuICc8L3NwYW4+JzsKICAgICAgICB9CiAgICB9CiAgICAkdGlja2VyX2h0bWwgLj0gJzwvZGl2PjwvZGl2Pic7CiAgICAkZGF0YVtdID0gdnR4X2NvbnRhaW5lcihbCiAgICAgICAgJ3BhZGRpbmcnID0+IFsndW5pdCc9PidweCcsJ3RvcCc9PicwJywncmlnaHQnPT4nMCcsJ2JvdHRvbSc9PicwJywnbGVmdCc9PicwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgJ21hcmdpbicgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzAnLCdyaWdodCc9PicwJywnYm90dG9tJz0+JzAnLCdsZWZ0Jz0+JzAnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgIF0sIFsKICAgICAgICB2dHhfaHRtbCgkdGlja2VyX2h0bWwpLAogICAgXSk7CgogICAgLy8gLS0tLSBTRVJWSUNFUyBTRUNUSU9OIC0tLS0KICAgICRzZXJ2aWNlcyA9IFsKICAgICAgICBbJ251bScgPT4gJzAxJywgJ25hbWUnID0+ICdSZXNpZGVudGlhbCBSZXBsYWNlbWVudCcsICdkZXNjJyA9PiAnQ29tcGxldGUgYXJjaGl0ZWN0dXJhbCByb29mIGluc3RhbGxhdGlvbnMgZW5naW5lZXJlZCB3aXRoIGhpZ2gtZHVyYWJpbGl0eSBtYXRlcmlhbHMgZm9yIGxvbmctdGVybSBzYWZldHkuJywgJ3RhZycgPT4gJ1BvcHVsYXInXSwKICAgICAgICBbJ251bScgPT4gJzAyJywgJ25hbWUnID0+ICdBcmNoaXRlY3R1cmFsIE1ldGFsIFJvb2ZzJywgJ2Rlc2MnID0+ICdTbGVlayBzdGFuZGluZyBzZWFtIGFuZCBjdXN0b20gbWV0YWwgcGFuZWwgcm9vZnMgd2l0aCBvdmVyIDUwIHllYXJzIG9mIHN0cnVjdHVyYWwgbG9uZ2V2aXR5LicsICd0YWcnID0+ICdQcmVtaXVtJ10sCiAgICAgICAgWydudW0nID0+ICcwMycsICduYW1lJyA9PiAnQ29tbWVyY2lhbCBSb29mIFN5c3RlbXMnLCAnZGVzYycgPT4gJ0luZHVzdHJpYWwtZ3JhZGUgZmxhdCByb29mIHNvbHV0aW9ucyBpbmNsdWRpbmcgVFBPLCBFUERNLCBhbmQgc3BlY2lhbGl6ZWQgd2F0ZXJwcm9vZiBtZW1icmFuZSBjb3ZlcnMuJywgJ3RhZycgPT4gJ0luZHVzdHJpYWwnXSwKICAgIF07CiAgICAkc3ZjX2l0ZW1zID0gJyc7CiAgICBmb3JlYWNoICgkc2VydmljZXMgYXMgJHMpIHsKICAgICAgICAkc3ZjX2l0ZW1zIC49ICc8ZGl2IGNsYXNzPSJ2dHgtc2VydmljZS1pdGVtIHZ0eC1yZXZlYWwiPjxzcGFuIGNsYXNzPSJ2dHgtc2VydmljZS1udW0iPicgLiAkc1snbnVtJ10gLiAnPC9zcGFuPjxkaXY+PGgzIGNsYXNzPSJ2dHgtc2VydmljZS1uYW1lIj4nIC4gJHNbJ25hbWUnXSAuICc8L2gzPjxwIGNsYXNzPSJ2dHgtc2VydmljZS1kZXNjIj4nIC4gJHNbJ2Rlc2MnXSAuICc8L3A+PC9kaXY+PHNwYW4gY2xhc3M9InZ0eC1zZXJ2aWNlLXRhZyI+JyAuICRzWyd0YWcnXSAuICc8L3NwYW4+PC9kaXY+JzsKICAgIH0KICAgICRkYXRhW10gPSB2dHhfY29udGFpbmVyKFsKICAgICAgICAncGFkZGluZycgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzgwJywncmlnaHQnPT4nMjQnLCdib3R0b20nPT4nODAnLCdsZWZ0Jz0+JzI0JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgJ2JhY2tncm91bmRfY29sb3InID0+ICcjRjFGM0Y1JywKICAgICAgICAnY3NzX2NsYXNzZXMnID0+ICd2dHgtc2VydmljZXMtc2VjdGlvbicsCiAgICBdLCBbCiAgICAgICAgdnR4X2NvbnRhaW5lcihbCiAgICAgICAgICAgICdtYXhfd2lkdGgnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMTIwMCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAnbWFyZ2luJyA9PiBbJ3VuaXQnPT4ncHgnLCd0b3AnPT4nMCcsJ3JpZ2h0Jz0+J2F1dG8nLCdib3R0b20nPT4nMCcsJ2xlZnQnPT4nYXV0bycsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAnZmxleF9kaXJlY3Rpb24nID0+ICdjb2x1bW4nLAogICAgICAgICAgICAnYWxpZ25faXRlbXMnID0+ICdjZW50ZXInLAogICAgICAgIF0sIFsKICAgICAgICAgICAgdnR4X3dpZGdldCgnaGVhZGluZycsIFsKICAgICAgICAgICAgICAgICd0aXRsZScgPT4gJ09VUiBDQVBBQklMSVRJRVMnLAogICAgICAgICAgICAgICAgJ2hlYWRlcl9zaXplJyA9PiAnaDYnLAogICAgICAgICAgICAgICAgJ3RpdGxlX2NvbG9yJyA9PiAnI0Q5NkIyNycsCiAgICAgICAgICAgICAgICAnYWxpZ24nID0+ICdjZW50ZXInLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfdHlwb2dyYXBoeScgPT4gJ2N1c3RvbScsCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X2ZhbWlseScgPT4gJ0ludGVyJywKICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfc2l6ZScgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9PicxMicsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF93ZWlnaHQnID0+ICc2MDAnLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfbGV0dGVyX3NwYWNpbmcnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMycsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgJ2Nzc19jbGFzc2VzJyA9PiAndnR4LXJldmVhbCcsCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICB2dHhfd2lkZ2V0KCdoZWFkaW5nJywgWwogICAgICAgICAgICAgICAgJ3RpdGxlJyA9PiAnUFJFTUlVTSBST09GSU5HIFNFUlZJQ0VTJywKICAgICAgICAgICAgICAgICdoZWFkZXJfc2l6ZScgPT4gJ2gyJywKICAgICAgICAgICAgICAgICd0aXRsZV9jb2xvcicgPT4gJyMwRjE3MkEnLAogICAgICAgICAgICAgICAgJ2FsaWduJyA9PiAnY2VudGVyJywKICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X3R5cG9ncmFwaHknID0+ICdjdXN0b20nLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9mYW1pbHknID0+ICdCZWJhcyBOZXVlJywKICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfc2l6ZScgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9Pic1NicsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplX3RhYmxldCcgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9Pic0MicsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfbGluZV9oZWlnaHQnID0+IFsndW5pdCc9PidlbScsJ3NpemUnPT4nMC45NScsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgJ2Nzc19jbGFzc2VzJyA9PiAndnR4LXJldmVhbCcsCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICB2dHhfaHRtbCgnPGRpdiBjbGFzcz0idnR4LXNlcnZpY2VzLWxpc3QiIHN0eWxlPSJ3aWR0aDoxMDAlIj4nIC4gJHN2Y19pdGVtcyAuICc8L2Rpdj4nKSwKICAgICAgICBdKSwKICAgIF0pOwogICAgLy8gU2VjdGlvbiBoZWFkZXIgc3BhY2VyCiAgICAkZGF0YVtjb3VudCgkZGF0YSktMV1bJ2VsZW1lbnRzJ11bMF1bJ2VsZW1lbnRzJ11bMF0gPSAkZGF0YVtjb3VudCgkZGF0YSktMV1bJ2VsZW1lbnRzJ11bMF1bJ2VsZW1lbnRzJ11bMF07IC8vIGZpeCBuZXN0aW5nCgogICAgLy8gLS0tLSBXSFkgQ0hPT1NFIFVTIC0tLS0KICAgICRwaWxsYXJzID0gWwogICAgICAgIFsndGl0bGUnID0+ICdDZXJ0aWZpZWQgQ3JhZnRzbWFuc2hpcCcsICd0ZXh0JyA9PiAnT3VyIHRlYW1zIHVuZGVyZ28gcmlnb3JvdXMgbWFudWZhY3R1cmVyIGNlcnRpZmljYXRpb24gdG8gZW5zdXJlIHRvcC1ncmFkZSBpbnN0YWxsYXRpb24gYWNjdXJhY3kgZXZlcnkgdGltZS4nXSwKICAgICAgICBbJ3RpdGxlJyA9PiAnUHJlbWl1bSBNYXRlcmlhbHMnLCAndGV4dCcgPT4gJ1dlIHNvdXJjZSB3ZWF0aGVyLXRlc3RlZCwgaGlnaC1wZXJmb3JtYW5jZSBhcmNoaXRlY3R1cmFsIG1hdGVyaWFscyBndWFyYW50ZWVkIHRvIGhhbmRsZSBoYXJzaCBlbGVtZW50cy4nXSwKICAgICAgICBbJ3RpdGxlJyA9PiAnU2FmZXR5ICYgQ29tcGxpYW5jZScsICd0ZXh0JyA9PiAnRnVsbHkgbGljZW5zZWQsIGJvbmRlZCwgYW5kIGluc3VyZWQgdGVhbXMgb3BlcmF0aW5nIHN0cmljdGx5IHVuZGVyIE9TSEEgc2FmZXR5IHN0YW5kYXJkcy4nXSwKICAgICAgICBbJ3RpdGxlJyA9PiAnTGlmZXRpbWUgV2FycmFudHknLCAndGV4dCcgPT4gJ0NvbXBsZXRlIHBlYWNlIG9mIG1pbmQgc3VwcG9ydGVkIGJ5IGNvbXByZWhlbnNpdmUgbWF0ZXJpYWwgYW5kIGxhYm9yIGluc3RhbGxhdGlvbiB3YXJyYW50aWVzLiddLAogICAgXTsKICAgICRwaWxsYXJzX2h0bWwgPSAnJzsKICAgIGZvcmVhY2ggKCRwaWxsYXJzIGFzICRwKSB7CiAgICAgICAgJHBpbGxhcnNfaHRtbCAuPSAnPGRpdiBjbGFzcz0idnR4LXdoeS1waWxsYXIiPjxoMyBjbGFzcz0idnR4LXdoeS1waWxsYXItdGl0bGUiPicgLiAkcFsndGl0bGUnXSAuICc8L2gzPjxwIGNsYXNzPSJ2dHgtd2h5LXBpbGxhci10ZXh0Ij4nIC4gJHBbJ3RleHQnXSAuICc8L3A+PC9kaXY+JzsKICAgIH0KICAgICRkYXRhW10gPSB2dHhfY29udGFpbmVyKFsKICAgICAgICAncGFkZGluZycgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzgwJywncmlnaHQnPT4nMjQnLCdib3R0b20nPT4nODAnLCdsZWZ0Jz0+JzI0JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgJ2JhY2tncm91bmRfYmFja2dyb3VuZCcgPT4gJ2NsYXNzaWMnLAogICAgICAgICdiYWNrZ3JvdW5kX2ltYWdlJyA9PiBbJ3VybCcgPT4gJ2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNjAwNTk2NTQyODE1LWZmYWQ0YzE1MzlhOT9xPTgwJnc9MTkyMCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCddLAogICAgICAgICdiYWNrZ3JvdW5kX3NpemUnID0+ICdjb3ZlcicsCiAgICAgICAgJ2JhY2tncm91bmRfcG9zaXRpb24nID0+IFsndW5pdCc9PiclJywneCc9PidjZW50ZXInLCd5Jz0+J2NlbnRlciddLAogICAgICAgICdiYWNrZ3JvdW5kX292ZXJsYXlfYmFja2dyb3VuZCcgPT4gJ2NsYXNzaWMnLAogICAgICAgICdiYWNrZ3JvdW5kX292ZXJsYXlfY29sb3InID0+ICcjMTIxNDE2JywKICAgICAgICAnYmFja2dyb3VuZF9vdmVybGF5X29wYWNpdHknID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4wLjldLAogICAgXSwgWwogICAgICAgIHZ0eF9jb250YWluZXIoWwogICAgICAgICAgICAnZmxleF9kaXJlY3Rpb24nID0+ICdyb3cnLAogICAgICAgICAgICAnZmxleF93cmFwJyA9PiAnbm93cmFwJywKICAgICAgICAgICAgJ2ZsZXhfZ2FwJyA9PiBbJ3VuaXQnPT4ncHgnLCdjb2x1bW4nPT4nNjAnLCdyb3cnPT4nMCddLAogICAgICAgICAgICAnbWF4X3dpZHRoJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzEyMDAnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgJ21hcmdpbicgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzAnLCdyaWdodCc9PidhdXRvJywnYm90dG9tJz0+JzAnLCdsZWZ0Jz0+J2F1dG8nLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICBdLCBbCiAgICAgICAgICAgIHZ0eF9jb2woNTAsIFsKICAgICAgICAgICAgICAgICdmbGV4X2RpcmVjdGlvbicgPT4gJ2NvbHVtbicsCiAgICAgICAgICAgIF0sIFsKICAgICAgICAgICAgICAgIHZ0eF93aWRnZXQoJ2hlYWRpbmcnLCBbCiAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJyA9PiAnQUJPVVQgVkVSVEVYIFJPT0ZJTkcnLAogICAgICAgICAgICAgICAgICAgICdoZWFkZXJfc2l6ZScgPT4gJ2g2JywKICAgICAgICAgICAgICAgICAgICAndGl0bGVfY29sb3InID0+ICcjRDk2QjI3JywKICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV90eXBvZ3JhcGh5JyA9PiAnY3VzdG9tJywKICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X2ZhbWlseScgPT4gJ0ludGVyJywKICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X3NpemUnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMTInLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X3dlaWdodCcgPT4gJzYwMCcsCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfbGV0dGVyX3NwYWNpbmcnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMycsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgICdjc3NfY2xhc3NlcycgPT4gJ3Z0eC1yZXZlYWwnLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICB2dHhfd2lkZ2V0KCdoZWFkaW5nJywgWwogICAgICAgICAgICAgICAgICAgICd0aXRsZScgPT4gIkVOR0lORUVSSU5HIEVYQ0VMTEVOQ0U8YnI+U0lOQ0UgMjAwMSIsCiAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcl9zaXplJyA9PiAnaDInLAogICAgICAgICAgICAgICAgICAgICd0aXRsZV9jb2xvcicgPT4gJyNmZmYnLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X3R5cG9ncmFwaHknID0+ICdjdXN0b20nLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfZmFtaWx5JyA9PiAnQmViYXMgTmV1ZScsCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzQ4JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfbGluZV9oZWlnaHQnID0+IFsndW5pdCc9PidlbScsJ3NpemUnPT4nMC45NScsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgICdjc3NfY2xhc3NlcycgPT4gJ3Z0eC1yZXZlYWwnLAogICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICB2dHhfdGV4dCgiV2UgZWxldmF0ZSBpbmR1c3RyeSBzdGFuZGFyZHMgdGhyb3VnaCBzdXBlcmlvciBjcmFmdHNtYW5zaGlwLCB1bmNvbXByb21pc2VkIGludGVncml0eSwgYW5kIG1vZGVybiBhcmNoaXRlY3R1cmFsIGVuZ2luZWVyaW5nLiBPdXIgZGVkaWNhdGVkIHRlYW0gcHJvdGVjdHMgd2hhdCBtYXR0ZXJzIG1vc3Qgw6LigqzigJ0geW91ciBob21lIGFuZCBidXNpbmVzcy4iLCBbCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfdHlwb2dyYXBoeScgPT4gJ2N1c3RvbScsCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9mYW1pbHknID0+ICdJbnRlcicsCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzE2JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF93ZWlnaHQnID0+ICczMDAnLAogICAgICAgICAgICAgICAgICAgICd0ZXh0X2NvbG9yJyA9PiAncmdiYSgyNTUsMjU1LDI1NSwwLjg1KScsCiAgICAgICAgICAgICAgICAgICAgJ2Nzc19jbGFzc2VzJyA9PiAndnR4LXJldmVhbCcsCiAgICAgICAgICAgICAgICBdKSwKICAgICAgICAgICAgICAgIHZ0eF9odG1sKCc8ZGl2IGNsYXNzPSJ2dHgtcmV2ZWFsIiBzdHlsZT0iZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywxZnIpO2dhcDoxLjI1cmVtO21hcmdpbi10b3A6MS41cmVtO3BhZGRpbmctdG9wOjEuNXJlbTtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIj4KPGRpdj48ZGl2IGNsYXNzPSJ2dHgtY291bnRlci1udW0iIGRhdGEtdGFyZ2V0PSI0IiBzdHlsZT0iZm9udC1mYW1pbHk6QmViYXMgTmV1ZTtmb250LXNpemU6My41cmVtO2xpbmUtaGVpZ2h0OjE7Y29sb3I6I0Q5NkIyNyI+MDwvZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpCZWJhcyBOZXVlO2ZvbnQtc2l6ZTozLjVyZW07bGluZS1oZWlnaHQ6MTtjb2xvcjojRDk2QjI3Ij5LKzwvc3Bhbj48ZGl2IHN0eWxlPSJmb250LXNpemU6MC43NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6MC4wOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuOCk7bWFyZ2luLXRvcDowLjRyZW0iPlJvb2ZzIEluc3RhbGxlZDwvZGl2PjwvZGl2Pgo8ZGl2PjxkaXYgY2xhc3M9InZ0eC1jb3VudGVyLW51bSIgZGF0YS10YXJnZXQ9Ijk4IiBzdHlsZT0iZm9udC1mYW1pbHk6QmViYXMgTmV1ZTtmb250LXNpemU6My41cmVtO2xpbmUtaGVpZ2h0OjE7Y29sb3I6I0Q5NkIyNyI+MDwvZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpCZWJhcyBOZXVlO2ZvbnQtc2l6ZTozLjVyZW07bGluZS1oZWlnaHQ6MTtjb2xvcjojRDk2QjI3Ij4lPC9zcGFuPjxkaXYgc3R5bGU9ImZvbnQtc2l6ZTowLjc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzowLjA4ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMC44KTttYXJnaW4tdG9wOjAuNHJlbSI+Q2xpZW50IFNhdGlzZmFjdGlvbjwvZGl2PjwvZGl2Pgo8ZGl2PjxkaXYgY2xhc3M9InZ0eC1jb3VudGVyLW51bSIgZGF0YS10YXJnZXQ9IjIyIiBzdHlsZT0iZm9udC1mYW1pbHk6QmViYXMgTmV1ZTtmb250LXNpemU6My41cmVtO2xpbmUtaGVpZ2h0OjE7Y29sb3I6I0Q5NkIyNyI+MDwvZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpCZWJhcyBOZXVlO2ZvbnQtc2l6ZTozLjVyZW07bGluZS1oZWlnaHQ6MTtjb2xvcjojRDk2QjI3Ij55cjwvc3Bhbj48ZGl2IHN0eWxlPSJmb250LXNpemU6MC43NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6MC4wOGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuOCk7bWFyZ2luLXRvcDowLjRyZW0iPkluIEJ1c2luZXNzPC9kaXY+PC9kaXY+CjwvZGl2PicpLAogICAgICAgICAgICBdKSwKICAgICAgICAgICAgdnR4X2NvbCg1MCwgWwogICAgICAgICAgICAgICAgJ2ZsZXhfZGlyZWN0aW9uJyA9PiAnY29sdW1uJywKICAgICAgICAgICAgXSwgWwogICAgICAgICAgICAgICAgdnR4X2h0bWwoJzxkaXYgY2xhc3M9InZ0eC1yZXZlYWwiIHN0eWxlPSJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxLjI1cmVtIj4nIC4gJHBpbGxhcnNfaHRtbCAuICc8L2Rpdj4nKSwKICAgICAgICAgICAgXSksCiAgICAgICAgXSksCiAgICBdKTsKCiAgICAvLyAtLS0tIEhPVyBXRSBXT1JLIC0tLS0KICAgICRzdGVwcyA9IFsKICAgICAgICBbJ251bScgPT4gJzEuJywgJ3N1YicgPT4gJ1NURVAgMDEnLCAndGl0bGUnID0+ICdGUkVFIElOU1BFQ1RJT04nLCAnZGVzYycgPT4gJ0EgY2VydGlmaWVkIGluc3BlY3RvciBhc3Nlc3NlcyB5b3VyIHJvb2YgYW5kIHByb3ZpZGVzIGEgZnVsbCBjb25kaXRpb24gcmVwb3J0IGF0IG5vIGNoYXJnZS4nXSwKICAgICAgICBbJ251bScgPT4gJzIuJywgJ3N1YicgPT4gJ1NURVAgMDInLCAndGl0bGUnID0+ICdDVVNUT00gUVVPVEUnLCAnZGVzYycgPT4gJ1dlIGRlbGl2ZXIgYSBkZXRhaWxlZCwgaXRlbWl6ZWQgcHJvcG9zYWwgd2l0aGluIDI0IGhvdXJzIMOi4oKs4oCdIG5vIHZhZ3VlIGxpbmUgaXRlbXMsIG5vIHN1cnByaXNlcy4nXSwKICAgICAgICBbJ251bScgPT4gJzMuJywgJ3N1YicgPT4gJ1NURVAgMDMnLCAndGl0bGUnID0+ICdFWFBFUlQgSU5TVEFMTEFUSU9OJywgJ2Rlc2MnID0+ICdPdXIgZmFjdG9yeS1jZXJ0aWZpZWQgY3Jld3MgY29tcGxldGUgdGhlIGpvYiBvbiBzY2hlZHVsZSB3aXRoIGRhaWx5IGNvbW11bmljYXRpb24gYW5kIHNpdGUgY2xlYW51cC4nXSwKICAgICAgICBbJ251bScgPT4gJzQuJywgJ3N1YicgPT4gJ1NURVAgMDQnLCAndGl0bGUnID0+ICdGSU5BTCBXQUxLVEhST1VHSCcsICdkZXNjJyA9PiAnV2Ugd2FsayB0aGUgcHJvamVjdCB3aXRoIHlvdSwgcmVnaXN0ZXIgeW91ciB3YXJyYW50eSwgYW5kIHJlbWFpbiB5b3VyIGxvbmctdGVybSByb29maW5nIHBhcnRuZXIuJ10sCiAgICBdOwogICAgJHN0ZXBzX2h0bWwgPSAnJzsKICAgIGZvcmVhY2ggKCRzdGVwcyBhcyAkcykgewogICAgICAgICRzdGVwc19odG1sIC49ICc8ZGl2IGNsYXNzPSJ2dHgtc3RlcC1pdGVtIHZ0eC1yZXZlYWwiPjxkaXYgY2xhc3M9InZ0eC1zdGVwLWRvdCI+PC9kaXY+PGRpdiBzdHlsZT0iZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO2dhcDowLjRyZW07bWFyZ2luLWJvdHRvbTowLjRyZW0iPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpJbnRlcjtmb250LXNpemU6MXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6IzBGMTcyQSI+JyAuICRzWydudW0nXSAuICc8L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OkludGVyO2ZvbnQtc2l6ZTowLjdyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOjAuMWVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjojNkM3NTdEIj4nIC4gJHNbJ3N1YiddIC4gJzwvc3Bhbj48L2Rpdj48aDMgY2xhc3M9InZ0eC1zdGVwLXRpdGxlIj4nIC4gJHNbJ3RpdGxlJ10gLiAnPC9oMz48cCBjbGFzcz0idnR4LXN0ZXAtZGVzYyI+JyAuICRzWydkZXNjJ10gLiAnPC9wPjwvZGl2Pic7CiAgICB9CiAgICAkZGF0YVtdID0gdnR4X2NvbnRhaW5lcihbCiAgICAgICAgJ3BhZGRpbmcnID0+IFsndW5pdCc9PidweCcsJ3RvcCc9Pic4MCcsJ3JpZ2h0Jz0+JzI0JywnYm90dG9tJz0+JzgwJywnbGVmdCc9PicyNCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICdiYWNrZ3JvdW5kX2NvbG9yJyA9PiAnI0Y4RjlGQScsCiAgICAgICAgJ2JvcmRlcl9ib3JkZXInID0+ICdzb2xpZCcsCiAgICAgICAgJ2JvcmRlcl93aWR0aCcgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzEnLCdyaWdodCc9PicwJywnYm90dG9tJz0+JzEnLCdsZWZ0Jz0+JzAnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAnYm9yZGVyX2NvbG9yJyA9PiAnI0UyRThGMCcsCiAgICBdLCBbCiAgICAgICAgdnR4X2NvbnRhaW5lcihbCiAgICAgICAgICAgICdmbGV4X2RpcmVjdGlvbicgPT4gJ3JvdycsCiAgICAgICAgICAgICdmbGV4X3dyYXAnID0+ICdub3dyYXAnLAogICAgICAgICAgICAnZmxleF9nYXAnID0+IFsndW5pdCc9PidweCcsJ2NvbHVtbic9Pic0OCcsJ3Jvdyc9PicwJ10sCiAgICAgICAgICAgICdtYXhfd2lkdGgnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMTIwMCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAnbWFyZ2luJyA9PiBbJ3VuaXQnPT4ncHgnLCd0b3AnPT4nMCcsJ3JpZ2h0Jz0+J2F1dG8nLCdib3R0b20nPT4nMCcsJ2xlZnQnPT4nYXV0bycsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAnYWxpZ25faXRlbXMnID0+ICdmbGV4LXN0YXJ0JywKICAgICAgICBdLCBbCiAgICAgICAgICAgIHZ0eF9jb2woMjUsIFsKICAgICAgICAgICAgICAgICdmbGV4X2RpcmVjdGlvbicgPT4gJ2NvbHVtbicsCiAgICAgICAgICAgIF0sIFsKICAgICAgICAgICAgICAgIHZ0eF93aWRnZXQoJ2hlYWRpbmcnLCBbCiAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJyA9PiAnSE9XIFdFIFdPUksnLAogICAgICAgICAgICAgICAgICAgICdoZWFkZXJfc2l6ZScgPT4gJ2gyJywKICAgICAgICAgICAgICAgICAgICAndGl0bGVfY29sb3InID0+ICcjMEYxNzJBJywKICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV90eXBvZ3JhcGh5JyA9PiAnY3VzdG9tJywKICAgICAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X2ZhbWlseScgPT4gJ0JlYmFzIE5ldWUnLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfc2l6ZScgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9Pic0OCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2xpbmVfaGVpZ2h0JyA9PiBbJ3VuaXQnPT4nZW0nLCdzaXplJz0+JzAuOTInLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICAgICAnY3NzX2NsYXNzZXMnID0+ICd2dHgtcmV2ZWFsJywKICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICBdKSwKICAgICAgICAgICAgdnR4X2NvbCg3NSwgWwogICAgICAgICAgICAgICAgJ2ZsZXhfZGlyZWN0aW9uJyA9PiAncm93JywKICAgICAgICAgICAgICAgICdmbGV4X3dyYXAnID0+ICd3cmFwJywKICAgICAgICAgICAgICAgICdmbGV4X2dhcCcgPT4gWyd1bml0Jz0+J3B4JywnY29sdW1uJz0+JzI0Jywncm93Jz0+JzI0J10sCiAgICAgICAgICAgIF0sIFsKICAgICAgICAgICAgICAgIHZ0eF9odG1sKCc8ZGl2IGNsYXNzPSJ2dHgtaG93LXN0ZXBzIiBzdHlsZT0iZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpO2dhcDoxLjVyZW07d2lkdGg6MTAwJSI+JyAuICRzdGVwc19odG1sIC4gJzwvZGl2PicpLAogICAgICAgICAgICBdKSwKICAgICAgICBdKSwKICAgIF0pOwoKICAgIC8vIC0tLS0gUE9SVEZPTElPIC0tLS0KICAgICRwcm9qZWN0cyA9IFsKICAgICAgICBbJ2JhZGdlJyA9PiAnUmVzaWRlbnRpYWwnLCAndGl0bGUnID0+ICdNb2Rlcm4gU2xhdGUgSW5zdGFsbGF0aW9uJywgJ2Rlc2MnID0+ICdBcmNoaXRlY3R1cmFsIGdyYWRlIHNsYXRlIHJvb2ZpbmcgaW5zdGFsbGVkIHdpdGggY3VzdG9tIGNvcHBlciBmbGFzaGluZyBkZXRhaWwuJywgJ2ltZycgPT4gJ2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTcwMTI5NDc3NDkyLTQ1YzAwM2VkZDJiZT93PTgwMCZxPTgwJmF1dG89Zm9ybWF0JmZpdD1jcm9wJ10sCiAgICAgICAgWydiYWRnZScgPT4gJ01ldGFsIFJvb2YnLCAndGl0bGUnID0+ICdTdGFuZGluZyBTZWFtIFN5c3RlbScsICdkZXNjJyA9PiAnTWF0dGUgYmxhY2sgc3RhbmRpbmcgc2VhbSBzdGVlbCBwYW5lbCByb29maW5nIGVuZ2luZWVyZWQgZm9yIGV4dHJlbWUgd2VhdGhlciByZXNpbGllbmNlLicsICdpbWcnID0+ICdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUxMzY5NDIwMzIzMi03MTlhMjgwZTAyMmY/dz04MDAmcT04MCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCddLAogICAgICAgIFsnYmFkZ2UnID0+ICdSZW5vdmF0aW9uJywgJ3RpdGxlJyA9PiAnQXJjaGl0ZWN0dXJhbCBTaGluZ2xlcycsICdkZXNjJyA9PiAnUHJlbWl1bSBjZWRhci1sb29rIGNvbXBvc2l0ZSBzaGluZ2xlIHJlc3RvcmF0aW9uIGZvciBtb2Rlcm4gc3VidXJiYW4gcmVzaWRlbmNlLicsICdpbWcnID0+ICdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTU5MjU5NTg5NjU1MS0xMmIzNzFkNTQ2ZDU/dz04MDAmcT04MCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCddLAogICAgXTsKICAgICRwb3J0Zm9saW9faHRtbCA9ICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLDFmcik7Z2FwOjEuNzVyZW0iPic7CiAgICBmb3JlYWNoICgkcHJvamVjdHMgYXMgJHApIHsKICAgICAgICAkcG9ydGZvbGlvX2h0bWwgLj0gJzxkaXYgY2xhc3M9InZ0eC1wb3J0Zm9saW8tY2FyZCB2dHgtcmV2ZWFsIj48ZGl2IGNsYXNzPSJ2dHgtcG9ydGZvbGlvLWltZyI+PHNwYW4gY2xhc3M9InZ0eC1wb3J0Zm9saW8tYmFkZ2UiPicgLiAkcFsnYmFkZ2UnXSAuICc8L3NwYW4+PGltZyBzcmM9IicgLiAkcFsnaW1nJ10gLiAnIiBhbHQ9IicgLiAkcFsndGl0bGUnXSAuICciIC8+PC9kaXY+PGRpdiBjbGFzcz0idnR4LXBvcnRmb2xpby1ib2R5Ij48aDMgY2xhc3M9InZ0eC1wb3J0Zm9saW8tdGl0bGUiPicgLiAkcFsndGl0bGUnXSAuICc8L2gzPjxwIGNsYXNzPSJ2dHgtcG9ydGZvbGlvLWRlc2MiPicgLiAkcFsnZGVzYyddIC4gJzwvcD48YSBocmVmPSIjIiBjbGFzcz0idnR4LXBvcnRmb2xpby1saW5rIj5WaWV3IENhc2UgU3R1ZHkgw6LigKDigJk8L2E+PC9kaXY+PC9kaXY+JzsKICAgIH0KICAgICRwb3J0Zm9saW9faHRtbCAuPSAnPC9kaXY+JzsKICAgICRkYXRhW10gPSB2dHhfY29udGFpbmVyKFsKICAgICAgICAncGFkZGluZycgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzgwJywncmlnaHQnPT4nMjQnLCdib3R0b20nPT4nODAnLCdsZWZ0Jz0+JzI0JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICBdLCBbCiAgICAgICAgdnR4X2NvbnRhaW5lcihbCiAgICAgICAgICAgICdtYXhfd2lkdGgnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMTIwMCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAnbWFyZ2luJyA9PiBbJ3VuaXQnPT4ncHgnLCd0b3AnPT4nMCcsJ3JpZ2h0Jz0+J2F1dG8nLCdib3R0b20nPT4nMCcsJ2xlZnQnPT4nYXV0bycsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAnZmxleF9kaXJlY3Rpb24nID0+ICdjb2x1bW4nLAogICAgICAgICAgICAnYWxpZ25faXRlbXMnID0+ICdjZW50ZXInLAogICAgICAgIF0sIFsKICAgICAgICAgICAgdnR4X3dpZGdldCgnaGVhZGluZycsIFsKICAgICAgICAgICAgICAgICd0aXRsZScgPT4gJ1BPUlRGT0xJTycsCiAgICAgICAgICAgICAgICAnaGVhZGVyX3NpemUnID0+ICdoNicsCiAgICAgICAgICAgICAgICAndGl0bGVfY29sb3InID0+ICcjRDk2QjI3JywKICAgICAgICAgICAgICAgICdhbGlnbicgPT4gJ2NlbnRlcicsCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV90eXBvZ3JhcGh5JyA9PiAnY3VzdG9tJywKICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfZmFtaWx5JyA9PiAnSW50ZXInLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzEyJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X3dlaWdodCcgPT4gJzYwMCcsCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9sZXR0ZXJfc3BhY2luZycgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9PiczJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAnY3NzX2NsYXNzZXMnID0+ICd2dHgtcmV2ZWFsJywKICAgICAgICAgICAgXSksCiAgICAgICAgICAgIHZ0eF93aWRnZXQoJ2hlYWRpbmcnLCBbCiAgICAgICAgICAgICAgICAndGl0bGUnID0+ICdGRUFUVVJFRCBQUk9KRUNUUycsCiAgICAgICAgICAgICAgICAnaGVhZGVyX3NpemUnID0+ICdoMicsCiAgICAgICAgICAgICAgICAndGl0bGVfY29sb3InID0+ICcjMEYxNzJBJywKICAgICAgICAgICAgICAgICdhbGlnbicgPT4gJ2NlbnRlcicsCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV90eXBvZ3JhcGh5JyA9PiAnY3VzdG9tJywKICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfZmFtaWx5JyA9PiAnQmViYXMgTmV1ZScsCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X3NpemUnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nNTYnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2xpbmVfaGVpZ2h0JyA9PiBbJ3VuaXQnPT4nZW0nLCdzaXplJz0+JzAuOTUnLCdpc0xpbmtlZCc9PmZhbHNlXSwKICAgICAgICAgICAgICAgICdjc3NfY2xhc3NlcycgPT4gJ3Z0eC1yZXZlYWwnLAogICAgICAgICAgICBdKSwKICAgICAgICAgICAgdnR4X2h0bWwoJHBvcnRmb2xpb19odG1sKSwKICAgICAgICBdKSwKICAgIF0pOwoKICAgIC8vIC0tLS0gVEVTVElNT05JQUxTIC0tLS0KICAgICR0ZXN0aW1vbmlhbHMgPSBbCiAgICAgICAgWydzdGFycycgPT4gJ8Oiy5zigKbDosuc4oCmw6LLnOKApsOiy5zigKbDosuc4oCmJywgJ3F1b3RlJyA9PiAnIlZFUlRFWCByZXBsYWNlZCBvdXIgc3Rvcm0tZGFtYWdlZCBtZXRhbCByb29mIGluIGp1c3QgMyBkYXlzLiBQcm9mZXNzaW9uYWwgdGVhbSwgemVybyBtZXNzIGxlZnQgYmVoaW5kLCBhbmQgb3V0c3RhbmRpbmcgcXVhbGl0eSEiJywgJ25hbWUnID0+ICdTYXJhaCBKZW5raW5zJywgJ3JvbGUnID0+ICdIb21lb3duZXIsIEF1c3RpbiBUWCcsICdhdmF0YXInID0+ICdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUzNDUyODc0MTc3NS01Mzk5NGE2OWRhZWI/dz0xNTAmcT04MCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCddLAogICAgICAgIFsnc3RhcnMnID0+ICfDosuc4oCmw6LLnOKApsOiy5zigKbDosuc4oCmw6LLnOKApicsICdxdW90ZScgPT4gJyJBcyBhIGNvbW1lcmNpYWwgZGV2ZWxvcGVyLCBwcmVjaXNpb24gYW5kIHRpbWVsaW5lcyBhcmUgZXZlcnl0aGluZy4gVkVSVEVYIGV4Y2VlZGVkIG91ciBleHBlY3RhdGlvbnMgb24gYSA0MCwwMDAgc3EgZnQgZmxhdCByb29mIHByb2plY3QuIicsICduYW1lJyA9PiAnRGF2aWQgTWlsbGVyJywgJ3JvbGUnID0+ICdDb21tZXJjaWFsIERldmVsb3BlcicsICdhdmF0YXInID0+ICdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNzAwMzIxMTE2OS0wYTFkZDcyMjhmMmQ/dz0xNTAmcT04MCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCddLAogICAgICAgIFsnc3RhcnMnID0+ICfDosuc4oCmw6LLnOKApsOiy5zigKbDosuc4oCmw6LLnOKApicsICdxdW90ZScgPT4gJyJGcm9tIGluaXRpYWwgaW5zcGVjdGlvbiB0byB0aGUgZmluYWwgd2Fsa3Rocm91Z2gsIHRoZWlyIGNvbW11bmljYXRpb24gd2FzIGZsYXdsZXNzLiBUaGUgc3RhbmRpbmcgc2VhbSByb29mIGxvb2tzIGluY3JlZGlibGUuIicsICduYW1lJyA9PiAnRWxlbmEgUm9zdG92YScsICdyb2xlJyA9PiAnQXJjaGl0ZWN0ICYgQ2xpZW50JywgJ2F2YXRhcicgPT4gJ2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTczNDk2MzU5MTQyLWI4ZDg3NzM0YTVhMj93PTE1MCZxPTgwJmF1dG89Zm9ybWF0JmZpdD1jcm9wJ10sCiAgICBdOwogICAgJHRlc3RfaHRtbCA9ICc8ZGl2IHN0eWxlPSJkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLDFmcik7Z2FwOjEuNzVyZW0iPic7CiAgICBmb3JlYWNoICgkdGVzdGltb25pYWxzIGFzICR0KSB7CiAgICAgICAgJHRlc3RfaHRtbCAuPSAnPGRpdiBjbGFzcz0idnR4LXRlc3RpbW9uaWFsLWNhcmQgdnR4LXJldmVhbCI+PGRpdj48ZGl2IGNsYXNzPSJ2dHgtdGVzdGltb25pYWwtc3RhcnMiPicgLiAkdFsnc3RhcnMnXSAuICc8L2Rpdj48cCBjbGFzcz0idnR4LXRlc3RpbW9uaWFsLXF1b3RlIj4nIC4gJHRbJ3F1b3RlJ10gLiAnPC9wPjwvZGl2PjxkaXYgY2xhc3M9InZ0eC10ZXN0aW1vbmlhbC1hdXRob3IiPjxpbWcgc3JjPSInIC4gJHRbJ2F2YXRhciddIC4gJyIgYWx0PSInIC4gJHRbJ25hbWUnXSAuICciIGNsYXNzPSJ2dHgtdGVzdGltb25pYWwtYXZhdGFyIiAvPjxkaXYgY2xhc3M9InRlc3RpbW9uaWFsLWluZm8iPjxoND4nIC4gJHRbJ25hbWUnXSAuICc8L2g0PjxzcGFuPicgLiAkdFsncm9sZSddIC4gJzwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4nOwogICAgfQogICAgJHRlc3RfaHRtbCAuPSAnPC9kaXY+JzsKICAgICRkYXRhW10gPSB2dHhfY29udGFpbmVyKFsKICAgICAgICAncGFkZGluZycgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzgwJywncmlnaHQnPT4nMjQnLCdib3R0b20nPT4nODAnLCdsZWZ0Jz0+JzI0JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgJ2JhY2tncm91bmRfY29sb3InID0+ICcjRjFGM0Y1JywKICAgIF0sIFsKICAgICAgICB2dHhfY29udGFpbmVyKFsKICAgICAgICAgICAgJ21heF93aWR0aCcgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9PicxMjAwJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICdtYXJnaW4nID0+IFsndW5pdCc9PidweCcsJ3RvcCc9PicwJywncmlnaHQnPT4nYXV0bycsJ2JvdHRvbSc9PicwJywnbGVmdCc9PidhdXRvJywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICdmbGV4X2RpcmVjdGlvbicgPT4gJ2NvbHVtbicsCiAgICAgICAgICAgICdhbGlnbl9pdGVtcycgPT4gJ2NlbnRlcicsCiAgICAgICAgXSwgWwogICAgICAgICAgICB2dHhfd2lkZ2V0KCdoZWFkaW5nJywgWwogICAgICAgICAgICAgICAgJ3RpdGxlJyA9PiAnQ0xJRU5UIFNUT1JJRVMnLAogICAgICAgICAgICAgICAgJ2hlYWRlcl9zaXplJyA9PiAnaDYnLAogICAgICAgICAgICAgICAgJ3RpdGxlX2NvbG9yJyA9PiAnI0Q5NkIyNycsCiAgICAgICAgICAgICAgICAnYWxpZ24nID0+ICdjZW50ZXInLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfdHlwb2dyYXBoeScgPT4gJ2N1c3RvbScsCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X2ZhbWlseScgPT4gJ0ludGVyJywKICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfc2l6ZScgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9PicxMicsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF93ZWlnaHQnID0+ICc2MDAnLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfbGV0dGVyX3NwYWNpbmcnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMycsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgJ2Nzc19jbGFzc2VzJyA9PiAndnR4LXJldmVhbCcsCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICB2dHhfd2lkZ2V0KCdoZWFkaW5nJywgWwogICAgICAgICAgICAgICAgJ3RpdGxlJyA9PiAnV0hBVCBPVVIgQ0xJRU5UUyBTQVknLAogICAgICAgICAgICAgICAgJ2hlYWRlcl9zaXplJyA9PiAnaDInLAogICAgICAgICAgICAgICAgJ3RpdGxlX2NvbG9yJyA9PiAnIzBGMTcyQScsCiAgICAgICAgICAgICAgICAnYWxpZ24nID0+ICdjZW50ZXInLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfdHlwb2dyYXBoeScgPT4gJ2N1c3RvbScsCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X2ZhbWlseScgPT4gJ0JlYmFzIE5ldWUnLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzU2JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9saW5lX2hlaWdodCcgPT4gWyd1bml0Jz0+J2VtJywnc2l6ZSc9PicwLjk1JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAnY3NzX2NsYXNzZXMnID0+ICd2dHgtcmV2ZWFsJywKICAgICAgICAgICAgXSksCiAgICAgICAgICAgIHZ0eF9odG1sKCR0ZXN0X2h0bWwpLAogICAgICAgIF0pLAogICAgXSk7CgogICAgLy8gLS0tLSBGQVEgLS0tLQogICAgJGZhcXMgPSBbCiAgICAgICAgWydxJyA9PiAnSG93IGxvbmcgZG9lcyBhIGZ1bGwgcm9vZiByZXBsYWNlbWVudCB0YWtlPycsICdhJyA9PiAnTW9zdCByZXNpZGVudGlhbCByb29mIHJlcGxhY2VtZW50cyB0YWtlIGJldHdlZW4gMSB0byAzIGRheXMgZGVwZW5kaW5nIG9uIHRoZSBzaXplIG9mIHlvdXIgaG9tZSBhbmQgdGhlIG1hdGVyaWFscyBjaG9zZW4uIE91ciBjcmV3cyB3b3JrIGVmZmljaWVudGx5IHRvIG1pbmltaXplIGRpc3R1cmJhbmNlLiddLAogICAgICAgIFsncScgPT4gJ0RvIHlvdSBhc3Npc3Qgd2l0aCBpbnN1cmFuY2UgY2xhaW1zIGZvciBzdG9ybSBkYW1hZ2U/JywgJ2EnID0+ICdZZXMhIFdlIHByb3ZpZGUgY29tcGxldGUgZHJvbmUtYXNzaXN0ZWQgaW5zcGVjdGlvbnMgYW5kIGNvbXByZWhlbnNpdmUgcmVwb3J0cyB0aGF0IHlvdSBjYW4gc3VibWl0IGRpcmVjdGx5IHRvIHlvdXIgaW5zdXJhbmNlIGNvbXBhbnkgdG8gc3RyZWFtbGluZSB5b3VyIGNsYWltLiddLAogICAgICAgIFsncScgPT4gJ1doYXQgd2FycmFudGllcyBkbyB5b3Ugb2ZmZXIgb24gbmV3IHJvb2ZzPycsICdhJyA9PiAnV2UgcHJvdmlkZSBhIDI1LXllYXIgdG8gbGlmZXRpbWUgd2FycmFudHkgb24gcHJlbWl1bSBtYXRlcmlhbHMsIGFsb25nc2lkZSBhIDEwLXllYXIgVkVSVEVYIENyYWZ0c21hbnNoaXAgR3VhcmFudGVlIG9uIGFsbCBzdHJ1Y3R1cmFsIGxhYm9yLiddLAogICAgICAgIFsncScgPT4gJ0FyZSBzdGFuZGluZyBzZWFtIG1ldGFsIHJvb2ZzIG5vaXN5IGR1cmluZyByYWluPycsICdhJyA9PiAnTm90IGF0IGFsbCEgV2hlbiBpbnN0YWxsZWQgb3ZlciBzb2xpZCBwbHl3b29kIGRlY2tpbmcgd2l0aCBtb2Rlcm4gc3ludGhldGljIHVuZGVybGF5bWVudHMsIG1ldGFsIHJvb2ZzIGFyZSBubyBsb3VkZXIgdGhhbiB0cmFkaXRpb25hbCBhc3BoYWx0IHNoaW5nbGUgcm9vZnMuJ10sCiAgICBdOwogICAgJGZhcV9odG1sID0gJzxkaXYgc3R5bGU9ImRpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsMWZyKTtnYXA6MS41cmVtIj4nOwogICAgZm9yZWFjaCAoJGZhcXMgYXMgJGYpIHsKICAgICAgICAkZmFxX2h0bWwgLj0gJzxkaXYgY2xhc3M9InZ0eC1mYXEtY2FyZCB2dHgtcmV2ZWFsIj48aDMgY2xhc3M9InZ0eC1mYXEtcSI+US4gJyAuICRmWydxJ10gLiAnPC9oMz48cCBjbGFzcz0idnR4LWZhcS1hIj4nIC4gJGZbJ2EnXSAuICc8L3A+PC9kaXY+JzsKICAgIH0KICAgICRmYXFfaHRtbCAuPSAnPC9kaXY+JzsKICAgICRkYXRhW10gPSB2dHhfY29udGFpbmVyKFsKICAgICAgICAncGFkZGluZycgPT4gWyd1bml0Jz0+J3B4JywndG9wJz0+JzgwJywncmlnaHQnPT4nMjQnLCdib3R0b20nPT4nODAnLCdsZWZ0Jz0+JzI0JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICBdLCBbCiAgICAgICAgdnR4X2NvbnRhaW5lcihbCiAgICAgICAgICAgICdtYXhfd2lkdGgnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMTEwMCcsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAnbWFyZ2luJyA9PiBbJ3VuaXQnPT4ncHgnLCd0b3AnPT4nMCcsJ3JpZ2h0Jz0+J2F1dG8nLCdib3R0b20nPT4nMCcsJ2xlZnQnPT4nYXV0bycsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAnZmxleF9kaXJlY3Rpb24nID0+ICdjb2x1bW4nLAogICAgICAgICAgICAnYWxpZ25faXRlbXMnID0+ICdjZW50ZXInLAogICAgICAgIF0sIFsKICAgICAgICAgICAgdnR4X3dpZGdldCgnaGVhZGluZycsIFsKICAgICAgICAgICAgICAgICd0aXRsZScgPT4gJ1FVRVNUSU9OUyAmIEFOU1dFUlMnLAogICAgICAgICAgICAgICAgJ2hlYWRlcl9zaXplJyA9PiAnaDYnLAogICAgICAgICAgICAgICAgJ3RpdGxlX2NvbG9yJyA9PiAnI0Q5NkIyNycsCiAgICAgICAgICAgICAgICAnYWxpZ24nID0+ICdjZW50ZXInLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfdHlwb2dyYXBoeScgPT4gJ2N1c3RvbScsCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X2ZhbWlseScgPT4gJ0ludGVyJywKICAgICAgICAgICAgICAgICd0eXBvZ3JhcGh5X2ZvbnRfc2l6ZScgPT4gWyd1bml0Jz0+J3B4Jywnc2l6ZSc9PicxMicsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF93ZWlnaHQnID0+ICc2MDAnLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfbGV0dGVyX3NwYWNpbmcnID0+IFsndW5pdCc9PidweCcsJ3NpemUnPT4nMycsJ2lzTGlua2VkJz0+ZmFsc2VdLAogICAgICAgICAgICAgICAgJ2Nzc19jbGFzc2VzJyA9PiAndnR4LXJldmVhbCcsCiAgICAgICAgICAgIF0pLAogICAgICAgICAgICB2dHhfd2lkZ2V0KCdoZWFkaW5nJywgWwogICAgICAgICAgICAgICAgJ3RpdGxlJyA9PiAnRlJFUVVFTlRMWSBBU0tFRCBRVUVTVElPTlMnLAogICAgICAgICAgICAgICAgJ2hlYWRlcl9zaXplJyA9PiAnaDInLAogICAgICAgICAgICAgICAgJ3RpdGxlX2NvbG9yJyA9PiAnIzBGMTcyQScsCiAgICAgICAgICAgICAgICAnYWxpZ24nID0+ICdjZW50ZXInLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfdHlwb2dyYXBoeScgPT4gJ2N1c3RvbScsCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9mb250X2ZhbWlseScgPT4gJ0JlYmFzIE5ldWUnLAogICAgICAgICAgICAgICAgJ3R5cG9ncmFwaHlfZm9udF9zaXplJyA9PiBbJ3VuaXQnPT4ncHgnLCdzaXplJz0+JzU2JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAndHlwb2dyYXBoeV9saW5lX2hlaWdodCcgPT4gWyd1bml0Jz0+J2VtJywnc2l6ZSc9PicwLjk1JywnaXNMaW5rZWQnPT5mYWxzZV0sCiAgICAgICAgICAgICAgICAnY3NzX2NsYXNzZXMnID0+ICd2dHgtcmV2ZWFsJywKICAgICAgICAgICAgXSksCiAgICAgICAgICAgIHZ0eF9odG1sKCRmYXFfaHRtbCksCiAgICAgICAgXSksCiAgICBdKTsKCiAgICByZXR1cm4gWydkYXRhJyA9PiAkZGF0YSwgJ2NzcycgPT4gJGN1c3RvbV9jc3NfY29tbW9uIC4gJHZ0eF9qc107Cn0KCi8vIEJ1aWxkIGFsbCBwYWdlcwokcGFnZXMgPSBbCiAgICAxNiA9PiBidWlsZF9ob21lX3BhZ2UoKSwKXTsKCi8vIE91dHB1dCBhcyBKU09OIGZvciBlYWNoIHBhZ2UKZWNobyAiPT09IEVMRU1FTlRPUl9EQVRBX1NUQVJUID09PVxuIjsKZm9yZWFjaCAoJHBhZ2VzIGFzICRwYWdlX2lkID0+ICRwYWdlX2RhdGEpIHsKICAgIGVjaG8ganNvbl9lbmNvZGUoWydwYWdlX2lkJyA9PiAkcGFnZV9pZCwgJ2RhdGEnID0+ICRwYWdlX2RhdGFbJ2RhdGEnXSwgJ2NzcycgPT4gJHBhZ2VfZGF0YVsnY3NzJ11dKSAuICJcbj09PVBBR0VfQlJFQUs9PT1cbiI7Cn0KZWNobyAiPT09IEVMRU1FTlRPUl9EQVRBX0VORCA9PT1cbiI7Cj8+Cg== https://roofer.bestlocalseoservices.com/wp-sitemap-posts-page-1.xmlhttps://roofer.bestlocalseoservices.com/wp-sitemap-posts-elementor-hf-1.xmlhttps://roofer.bestlocalseoservices.com/wp-sitemap-users-1.xml