PHN0eWxlPgogICAgLmV4YW1wbGVfcmVzcG9uc2l2ZV81IHsgIHBvc2l0aW9uOmZpeGVkOyBsZWZ0OjA7IH0KICAgIEBtZWRpYShtaW4td2lkdGg6IDEzNDBweCkgeyAuZXhhbXBsZV9yZXNwb25zaXZlXzUgeyB3aWR0aDogMTYwcHg7IGhlaWdodDogNjAwcHg7ICBwb3NpdGlvbjpmaXhlZDsgbGVmdDowO319CiAgICBAbWVkaWEobWluLXdpZHRoOiAxNTAwcHgpIHsgLmV4YW1wbGVfcmVzcG9uc2l2ZV81IHsgd2lkdGg6IDI0MHB4OyBoZWlnaHQ6IDYwMHB4OyAgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6MDt9fQogICAgQG1lZGlhKG1pbi13aWR0aDogMTYyMHB4KSB7IC5leGFtcGxlX3Jlc3BvbnNpdmVfNSB7IHdpZHRoOiAzMDBweDsgaGVpZ2h0OiA2MDBweDsgIHBvc2l0aW9uOmZpeGVkOyBsZWZ0OjA7fX0KCiAgICAuZXhhbXBsZV9yZXNwb25zaXZlXzEgeyAgcG9zaXRpb246Zml4ZWQ7IHJpZ2h0OjA7IH0KICAgIEBtZWRpYShtaW4td2lkdGg6IDEzNDBweCkgeyAuZXhhbXBsZV9yZXNwb25zaXZlXzEgeyB3aWR0aDogMTYwcHg7IGhlaWdodDogNjAwcHg7ICBwb3NpdGlvbjpmaXhlZDsgcmlnaHQ6MDt9fQogICAgQG1lZGlhKG1pbi13aWR0aDogMTUwMHB4KSB7IC5leGFtcGxlX3Jlc3BvbnNpdmVfMSB7IHdpZHRoOiAyNDBweDsgaGVpZ2h0OiA2MDBweDsgIHBvc2l0aW9uOmZpeGVkOyByaWdodDowO319CiAgICBAbWVkaWEobWluLXdpZHRoOiAxNjIwcHgpIHsgLmV4YW1wbGVfcmVzcG9uc2l2ZV8xIHsgd2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDYwMHB4OyAgcG9zaXRpb246Zml4ZWQ7IHJpZ2h0OjA7fX0KPC9zdHlsZT4KPHNjcmlwdD4KICAgIGdvb2dsZXRhZy5jbWQucHVzaChmdW5jdGlvbigpIHsKCiAgICAgICAgc2xvdFN0aWNrTGVmdE1hcHBpbmcgPSBnb29nbGV0YWcuc2l6ZU1hcHBpbmcoKS4KICAgICAgICAgICAgIGFkZFNpemUoWzAsIDBdLCBbXSkuCiAgICAgICAgICAgICBhZGRTaXplKFsxMzQwLCA2MDBdLCBbMTYwLCA2MDBdKS4KICAgICAgICAgICAgIGFkZFNpemUoWzE1MDAsIDYwMF0sIFsyNDAsIDYwMF0pLgogICAgICAgICAgICAgYWRkU2l6ZShbMTYyMCwgNjAwXSwgWzMwMCwgNjAwXSkuCiAgICAgICAgICAgICBidWlsZCgpOwogICAgICAgIGdvb2dsZXRhZy5kZWZpbmVTbG90KAogICAgICAgICAgICAnLzU4MzAyODQ0L1NMRFNfTm92eV9TdGlreV9MZWZ0JywKICAgICAgICAgICAgW1szMDAsIDYwMF0sIFsyNDAsIDYwMF0sIFsxNjAsIDYwMF1dLAogICAgICAgICAgICAnZGl2LWdwdC1hZC0xNTQwNDc2ODYwODA1LTAnKS5hZGRTZXJ2aWNlKGdvb2dsZXRhZy5wdWJhZHMoKSkuc2V0VGFyZ2V0aW5nKCJzdHJhc3RpOTk5MCIsICJhOGQzYWY1NTM1ZTViZmVhYTUzNjkzMGExOWNkNjRjMSIpLnNldFRhcmdldGluZygic3RyYXN0aV9ub3Z5X3R2IiwgInN0cmFzdGkubm92eS50diIpCiAgICAgICAgICAgIC5zZXRUYXJnZXRpbmcoInVybCIsICJhOGQzYWY1NTM1ZTViZmVhYTUzNjkzMGExOWNkNjRjMSIpLmRlZmluZVNpemVNYXBwaW5nKHNsb3RTdGlja0xlZnRNYXBwaW5nKTsKCiAgICAgICAgc2xvdFN0aWNrUmlnaHRNYXBwaW5nID0gZ29vZ2xldGFnLnNpemVNYXBwaW5nKCkuCiAgICAgICAgICAgICBhZGRTaXplKFswLCAwXSwgW10pLgogICAgICAgICAgICAgYWRkU2l6ZShbMTM0MCwgNjAwXSwgWzE2MCwgNjAwXSkuCiAgICAgICAgICAgICBhZGRTaXplKFsxNTAwLCA2MDBdLCBbMjQwLCA2MDBdKS4KICAgICAgICAgICAgIGFkZFNpemUoWzE2MjAsIDYwMF0sIFszMDAsIDYwMF0pLgogICAgICAgICAgICAgYnVpbGQoKTsKICAgICAgICBnb29nbGV0YWcuZGVmaW5lU2xvdCgKICAgICAgICAgICAgJy81ODMwMjg0NC9TTERTX05vdnlfU3Rpa3lfUmlnaHQnLAogICAgICAgICAgICBbWzE2MCwgNjAwXSwgWzMwMCwgNjAwXSwgWzI0MCwgNjAwXV0sCiAgICAgICAgICAgICdkaXYtZ3B0LWFkLTE1NDA0NzY3OTI5NjktMCcpLmFkZFNlcnZpY2UoZ29vZ2xldGFnLnB1YmFkcygpKS5zZXRUYXJnZXRpbmcoInN0cmFzdGk5OTkwIiwgImE4ZDNhZjU1MzVlNWJmZWFhNTM2OTMwYTE5Y2Q2NGMxIikuc2V0VGFyZ2V0aW5nKCJzdHJhc3RpX25vdnlfdHYiLCAic3RyYXN0aS5ub3Z5LnR2IikKICAgICAgICAgICAgLnNldFRhcmdldGluZygidXJsIiwgImE4ZDNhZjU1MzVlNWJmZWFhNTM2OTMwYTE5Y2Q2NGMxIikuZGVmaW5lU2l6ZU1hcHBpbmcoc2xvdFN0aWNrUmlnaHRNYXBwaW5nKTsKICAgICAgICB9KTsKPC9zY3JpcHQ+CjwhLS0gLzU4MzAyODQ0L1NMRFNfTm92eV9TdGlreV9MZWZ0IC0tPgo8ZGl2IGlkPSdkaXYtZ3B0LWFkLTE1NDA0NzY4NjA4MDUtMCcgY2xhc3M9ImV4YW1wbGVfcmVzcG9uc2l2ZV81Ij4KICAgIDxzY3JpcHQ+CiAgICAgICAgZ29vZ2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgeyBnb29nbGV0YWcuZGlzcGxheSgnZGl2LWdwdC1hZC0xNTQwNDc2ODYwODA1LTAnKTsgfSk7CiAgICA8L3NjcmlwdD4KPC9kaXY+CjwhLS0gLzU4MzAyODQ0L1NMRFNfTm92eV9TdGlreV9SaWdodCAtLT4KPGRpdiBpZD0nZGl2LWdwdC1hZC0xNTQwNDc2NzkyOTY5LTAnIGNsYXNzPSJleGFtcGxlX3Jlc3BvbnNpdmVfMSI+CiAgICA8c2NyaXB0PgogICAgICAgIGdvb2dsZXRhZy5jbWQucHVzaChmdW5jdGlvbigpIHsgZ29vZ2xldGFnLmRpc3BsYXkoJ2Rpdi1ncHQtYWQtMTU0MDQ3Njc5Mjk2OS0wJyk7IH0pOwogICAgPC9zY3JpcHQ+CjwvZGl2Pgo=
CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYWRzLW91dHN0cmVhbSI+CiAgICAgICAgCQkJCTxkaXYgY2xhc3M9ImNlbnRlciI+CiAgICAgICAgCQkJCQk8c2NyaXB0IGRhdGEtb3V0c3RyZWFtLWlkPSIxMzE3IiBkYXRhLW91dHN0cmVhbS1mb3JtYXQ9ImZ1bGxzY3JlZW4iIGRhdGEtb3V0c3RyZWFtLXNpdGVfaWQ9Ik5vdnlfRnVsbHNjcmVlbiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtb3V0c3RyZWFtLWNvbnRlbnRfaWQ9Im5vdnkudHYiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9Ii8vcGxheWVyLnZlcnRhbWVkaWEuY29tL291dHN0cmVhbS11bml0LzIuMDEvb3V0c3RyZWFtLXVuaXQubWluLmpzIj48L3NjcmlwdD4KICAgICAgICAJCQkJPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIA==