KCkpLCAnYWN0aW9uX2Vycm9yJyk7CiAgICB9Cn0KZW5kaWY7CgppZiAoIWZ1bmN0aW9uX2V4aXN0cygnY2xvbmVyX3NlbmRfYWN0aW9uJykpOgpmdW5jdGlvbiBjbG9uZXJfc2VuZF9hY3Rpb24oQ2xvbmVyVVJMICR1cmwsIENsb25lckFjdGlvbiAkYWN0aW9uKQp7CiAgICBpZiAoaXNzZXQoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSAmJiBpc19zdHJpbmcoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgewogICAgICAgICR1YSA9ICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXTsKICAgIH0gZWxzZSB7CiAgICAgICAgJHVhID0gJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzEzXzYpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS82OC4wLjM0NDAuMTA2IFNhZmFyaS81MzcuMzYnOwogICAgfQogICAgJHJldHJpZWQgPSBmYWxzZTsKICAgICRwcmVmaXggID0gY2xvbmVyX2Jhc2U2NF9yb3RhdGUoJGFjdGlvbi0+aWQpOwogICAgd2hpbGUgKHRydWUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkcGF5bG9hZCA9IGNsb25lcl9iYXNlNjRfcm90YXRlKGpzb25fZW5jb2RlKCRhY3Rpb24pKTsKICAgICAgICAgICAgJHJlcSAgICAgPSBjbG9uZXJfaHR0cF9vcGVuX3JlcXVlc3QoJ1BPU1QnLCAkdXJsLCBhcnJheSgKICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnICAgID0+ICdhcHBsaWNhdGlvbi9qc29uJywKICAgICAgICAgICAgICAgICdDb250ZW50LUxlbmd0aCcgID0+IHN0cmxlbigkcGF5bG9hZCksCiAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbicgICAgICA9PiAnY2xvc2UnLAogICAgICAgICAgICAgICAgJ0hvc3QnICAgICAgICAgICAgPT4gJHVybC0+Z2V