ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvcGhwY29tcGxldGUudmltIGIvcnVudGltZS9hdXRvbG9hZC9waHBjb21wbGV0ZS52aW0KaW5kZXggOGUzODg2Ny4uMzc3YmFhOCAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC9waHBjb21wbGV0ZS52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9waHBjb21wbGV0ZS52aW0KQEAgLTMsNyArMyw3IEBACiAiIE1haW50YWluZXI6CUTDoXZpZCBTemFiw7MgKCBjb21wbGV4ODU3IEFUIGdtYWlsIERPVCBjb20gKQogIiBQcmV2aW91cyBNYWludGFpbmVyOglNaWtvbGFqIE1hY2hvd3NraSAoIG1pa21hY2ggQVQgd3AgRE9UIHBsICkKICIgVVJMOiBodHRwczovL2dpdGh1Yi5jb20vc2hhd25jcGx1cy9waHBjb21wbGV0ZS52aW0KLSIgTGFzdCBDaGFuZ2U6ICAyMDE2IE9jdCAxMAorIiBMYXN0IENoYW5nZTogIDIwMTggT2N0IDEwCiAiCiAiCU9QVElPTlM6CiAiCkBAIC0xNDYsNiArMTQ2LDggQEAKIAllbmQKIAogCXRyeQorCQlsZXQgZXZlbnRpZ25vcmUgPSAmZXZlbnRpZ25vcmUKKwkJbGV0ICZldmVudGlnbm9yZSA9ICdhbGwnCiAJCWxldCB3aW5oZWlnaHQgPSB3aW5oZWlnaHQoMCkKIAkJbGV0IHdpbm5yID0gd2lubnIoKQogCkBAIC0yMTYsNiArMjE4LDcgQEAKIAkJZW5kaWYKIAlmaW5hbGx5CiAJCXNpbGVudCEgZXhlYyB3aW5uci4ncmVzaXplICcud2luaGVpZ2h0CisJCWxldCAmZXZlbnRpZ25vcmUgPSBldmVudGlnbm9yZQogCWVuZHRyeQogZW5kZnVuY3Rpb24KICIgfX19CkBAIC0xMzkzLDIzICsxMzk2LDI4IEBACiAJCQlmb3IgY2xhc3NzdHJ1Y3R1cmUgaW4gY2xhc3Njb250ZW50cwogCQkJCWxldCBkb2NibG9ja190YXJnZXRfcGF0dGVybiA9ICdmdW5jdGlvblxzXCsmXD8nLm1ldGhvZC4nXD5cfFwocHVibGljXHxwcml2YXRlXHxwcm90ZWN0ZWRcfHZhclwpLlwrXCQnLm1ldGhvZC4nXD5cfEBwcm9wZXJ0eS5cK1wkJy5tZXRob2QuJ1w+JwogCQkJCWxldCBkb2Nfc3RyID0gcGhwY29tcGxldGUjR2V0RG9jQmxvY2soc3BsaXQoY2xhc3NzdHJ1Y3R1cmUuY29udGVudCwgJ1xuJyksIGRvY2Jsb2NrX3RhcmdldF9wYXR0ZXJuKQotCQkJCWlmIGRvY19zdHIgIT0gJycKKwkJCQlsZXQgcmV0dXJuX3R5cGVfaGludCA9IHBocGNvbXBsZXRlI0dldEZ1bmN0aW9uUmV0dXJuVHlwZUhpbnQoc3BsaXQoY2xhc3NzdHJ1Y3R1cmUuY29udGVudCwgJ1xuJyksICdmdW5jdGlvblxzXCsmXD8nLm1ldGhvZC4nXD4nKQorCQkJCWlmIGRvY19zdHIgIT0gJycgfHwgcmV0dXJuX3R5cGVfaGludCAhPSAnJwogCQkJCQlicmVhawogCQkJCWVuZGlmCiAJCQllbmRmb3IKLQkJCWlmIGRvY19zdHIgIT0gJycKKwkJCWlmIGRvY19zdHIgIT0gJycgfHwgcmV0dXJuX3R5cGVfaGludCAhPSAnJwogCQkJCWxldCBkb2NibG9jayA9IHBocGNvbXBsZXRlI1BhcnNlRG9jQmxvY2soZG9jX3N0cikKLQkJCQlpZiBoYXNfa2V5KGRvY2Jsb2NrLnJldHVybiwgJ3R5cGUnKSB8fCBoYXNfa2V5KGRvY2Jsb2NrLnZhciwgJ3R5cGUnKSB8fCBsZW4oZG9jYmxvY2sucHJvcGVydGllcykgPiAwCi0JCQkJCWxldCB0eXBlID0gaGFzX2tleShkb2NibG9jay5yZXR1cm4sICd0eXBlJykgPyBkb2NibG9jay5yZXR1cm4udHlwZSA6IGhhc19rZXkoZG9jYmxvY2sudmFyLCAndHlwZScpID8gZG9jYmxvY2sudmFyLnR5cGUgOiAnJworCQkJCWlmIGhhc19rZXkoZG9jYmxvY2sucmV0dXJuLCAndHlwZScpIHx8IGhhc19rZXkoZG9jYmxvY2sudmFyLCAndHlwZScpIHx8IGxlbihkb2NibG9jay5wcm9wZXJ0aWVzKSA+IDAgfHwgcmV0dXJuX3R5cGVfaGludCAhPSAnJworCQkJCQlpZiByZXR1cm5fdHlwZV9oaW50ID09ICcnCisJCQkJCQlsZXQgdHlwZSA9IGhhc19rZXkoZG9jYmxvY2sucmV0dXJuLCAndHlwZScpID8gZG9jYmxvY2sucmV0dXJuLnR5cGUgOiBoYXNfa2V5KGRvY2Jsb2NrLnZhciwgJ3R5cGUnKSA/IGRvY2Jsb2NrLnZhci50eXBlIDogJycKIAotCQkJCQlpZiB0eXBlID09ICcnCi0JCQkJCQlmb3IgcHJvcGVydHkgaW4gZG9jYmxvY2sucHJvcGVydGllcwotCQkJCQkJCWlmIHByb3BlcnR5LmRlc2NyaXB0aW9uID1+PyBtZXRob2QKLQkJCQkJCQkJbGV0IHR5cGUgPSBwcm9wZXJ0eS50eXBlCi0JCQkJCQkJCWJyZWFrCi0JCQkJCQkJZW5kaWYKLQkJCQkJCWVuZGZvcgotCQkJCQllbmRpZgorCQkJCQkJaWYgdHlwZSA9PSAnJworCQkJCQkJCWZvciBwcm9wZXJ0eSBpbiBkb2NibG9jay5wcm9wZXJ0aWVzCisJCQkJCQkJCWlmIHByb3BlcnR5LmRlc2NyaXB0aW9uID1+PyBtZXRob2QKKwkJCQkJCQkJCWxldCB0eXBlID0gcHJvcGVydHkudHlwZQorCQkJCQkJCQkJYnJlYWsKKwkJCQkJCQkJZW5kaWYKKwkJCQkJCQllbmRmb3IKKwkJCQkJCWVuZGlmCisJCQkJCWVsc2UKKwkJCQkJCWxldCB0eXBlID0gcmV0dXJuX3R5cGVfaGludAorCQkJCQllbmQKIAogCQkJCQkiIHRoZXJlJ3MgYSBuYW1lc3BhY2UgaW4gdGhlIHR5cGUsIHRocmVhdCB0aGUgdHlwZSBhcyBGUUNOCiAJCQkJCWlmIHR5cGUgPX4gJ1xcJwpAQCAtMTQ4Myw3ICsxNDkxLDcgQEAKIAkJCWNvbnRpbnVlCiAJCWVuZGlmCiAKLQkJIiBpZiBpdCdzIGxvb2tzIGxpa2UgYSBzdHJpbmcKKwkJIiBpZiBpdCBsb29rcyBsaWtlIGEgc3RyaW5nCiAJCWlmIGN1cnJlbnRfY2hhciA9PSAiJyIgfHwgY3VycmVudF9jaGFyID09ICciJwogCQkJIiBhbmQgaXQgaXMgbm90IGVzY2FwZWQKIAkJCWlmIHByZXZfY2hhciAhPSAnXCcgfHwgKHByZXZfY2hhciA9PSAnXCcgJiYgcHJldl9wcmV2X2NoYXIgPT0gJ1wnKQpAQCAtMTU4Nyw5ICsxNTk1LDExIEBACiAJCWVsc2VpZiBmdW5jdGlvbl9maWxlICE9ICcnICYmIGZpbGVyZWFkYWJsZShmdW5jdGlvbl9maWxlKQogCQkJbGV0IGZpbGVfbGluZXMgPSByZWFkZmlsZShmdW5jdGlvbl9maWxlKQogCQkJbGV0IGRvY2Jsb2NrX3N0ciA9IHBocGNvbXBsZXRlI0dldERvY0Jsb2NrKGZpbGVfbGluZXMsICdmdW5jdGlvblxzKiZcP1w8Jy5mdW5jdGlvbl9uYW1lLidcPicpCisJCQlsZXQgcmV0dXJuX3R5cGVfaGludCA9IHBocGNvbXBsZXRlI0dldEZ1bmN0aW9uUmV0dXJuVHlwZUhpbnQoZmlsZV9saW5lcywgJ2Z1bmN0aW9uXHMqJlw/Jy5mdW5jdGlvbl9uYW1lLidcPicpCiAJCQlsZXQgZG9jYmxvY2sgPSBwaHBjb21wbGV0ZSNQYXJzZURvY0Jsb2NrKGRvY2Jsb2NrX3N0cikKLQkJCWlmIGhhc19rZXkoZG9jYmxvY2sucmV0dXJuLCAndHlwZScpCi0JCQkJbGV0IGNsYXNzbmFtZV9jYW5kaWRhdGUgPSBkb2NibG9jay5yZXR1cm4udHlwZQorCQkJbGV0IHR5cGUgPSBoYXNfa2V5KGRvY2Jsb2NrLnJldHVybiwgJ3R5cGUnKSA/IGRvY2Jsb2NrLnJldHVybi50eXBlIDogcmV0dXJuX3R5cGVfaGludAorCQkJaWYgdHlwZSAhPSAnJworCQkJCWxldCBjbGFzc25hbWVfY2FuZGlkYXRlID0gdHlwZQogCQkJCWxldCBbY2xhc3NfY2FuZGlkYXRlX25hbWVzcGFjZSwgZnVuY3Rpb25faW1wb3J0c10gPSBwaHBjb21wbGV0ZSNHZXRDdXJyZW50TmFtZVNwYWNlKGZpbGVfbGluZXMpCiAJCQkJIiB0cnkgdG8gZXhwYW5kIHRoZSBjbGFzc25hbWUgb2YgdGhlIHJldHVybmVkIHR5cGUgd2l0aCB0aGUgY29udGV4dCBnb3QgZnJvbSB0aGUgZnVuY3Rpb24ncyBzb3VyY2UgZmlsZQogCkBAIC0xODIxLDkgKzE4MzEsMTEgQEAKIAkJCQllbHNlaWYgZnVuY3Rpb25fZmlsZSAhPSAnJyAmJiBmaWxlcmVhZGFibGUoZnVuY3Rpb25fZmlsZSkKIAkJCQkJbGV0IGZpbGVfbGluZXMgPSByZWFkZmlsZShmdW5jdGlvbl9maWxlKQogCQkJCQlsZXQgZG9jYmxvY2tfc3RyID0gcGhwY29tcGxldGUjR2V0RG9jQmxvY2soZmlsZV9saW5lcywgJ2Z1bmN0aW9uXHMqJlw/XDwnLmZ1bmN0aW9uX25hbWUuJ1w+JykKKwkJCQkJbGV0IHJldHVybl90eXBlX2hpbnQgPSBwaHBjb21wbGV0ZSNHZXRGdW5jdGlvblJldHVyblR5cGVIaW50KGZpbGVfbGluZXMsICdmdW5jdGlvblxzKiZcPycuZnVuY3Rpb25fbmFtZS4nXD4nKQogCQkJCQlsZXQgZG9jYmxvY2sgPSBwaHBjb21wbGV0ZSNQYXJzZURvY0Jsb2NrKGRvY2Jsb2NrX3N0cikKLQkJCQkJaWYgaGFzX2tleShkb2NibG9jay5yZXR1cm4sICd0eXBlJykKLQkJCQkJCWxldCBjbGFzc25hbWVfY2FuZGlkYXRlID0gZG9jYmxvY2sucmV0dXJuLnR5cGUKKwkJCQkJbGV0IHR5cGUgPSBoYXNfa2V5KGRvY2Jsb2NrLnJldHVybiwgJ3R5cGUnKSA/IGRvY2Jsb2NrLnJldHVybi50eXBlIDogcmV0dXJuX3R5cGVfaGludAorCQkJCQlpZiB0eXBlICE9ICcnCisJCQkJCQlsZXQgY2xhc3NuYW1lX2NhbmRpZGF0ZSA9IHR5cGUKIAkJCQkJCWxldCBbY2xhc3NfY2FuZGlkYXRlX25hbWVzcGFjZSwgZnVuY3Rpb25faW1wb3J0c10gPSBwaHBjb21wbGV0ZSNHZXRDdXJyZW50TmFtZVNwYWNlKGZpbGVfbGluZXMpCiAJCQkJCQkiIHRyeSB0byBleHBhbmQgdGhlIGNsYXNzbmFtZSBvZiB0aGUgcmV0dXJuZWQgdHlwZSB3aXRoIHRoZSBjb250ZXh0IGdvdCBmcm9tIHRoZSBmdW5jdGlvbidzIHNvdXJjZSBmaWxlCiAJCQkJCQlsZXQgW2NsYXNzbmFtZV9jYW5kaWRhdGUsIGNsYXNzX2NhbmRpZGF0ZV9uYW1lc3BhY2VdID0gcGhwY29tcGxldGUjRXhwYW5kQ2xhc3NOYW1lKGNsYXNzbmFtZV9jYW5kaWRhdGUsIGNsYXNzX2NhbmRpZGF0ZV9uYW1lc3BhY2UsIGZ1bmN0aW9uX2ltcG9ydHMpCkBAIC0yNDEzLDYgKzI0MjUsNDQgQEAKIGVuZGZ1bmN0aW9uCiAiIH19fQogCitmdW5jdGlvbiEgcGhwY29tcGxldGUjR2V0RnVuY3Rpb25SZXR1cm5UeXBlSGludChzY2NvbnRlbnQsIHNlYXJjaCkKKwlsZXQgaSA9IDAKKwlsZXQgbCA9IDAKKwlsZXQgZnVuY3Rpb25fbGluZV9zdGFydCA9IC0xCisJbGV0IGZ1bmN0aW9uX2xpbmVfZW5kID0gLTEKKwlsZXQgc2Njb250ZW50X2xlbiA9IGxlbihhOnNjY29udGVudCkKKwlsZXQgcmV0dXJuX3R5cGUgPSAnJworCisJd2hpbGUgKGkgPCBzY2NvbnRlbnRfbGVuKQorCQlsZXQgbGluZSA9IGE6c2Njb250ZW50W2ldCisJCSIgc2VhcmNoIGZvciBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCisJCWlmIGxpbmUgPX4/IGE6c2VhcmNoCisJCQlsZXQgbCA9IGkKKwkJCWxldCBmdW5jdGlvbl9saW5lX3N0YXJ0ID0gaQorCQkJIiBub3cgc2VhcmNoIGZvciB0aGUgZmlyc3QgeyB3aGVyZSB0aGUgZnVuY3Rpb24gYm9keSBzdGFydHMKKwkJCXdoaWxlIGwgPCBzY2NvbnRlbnRfbGVuCisJCQkJbGV0IGxpbmUgPSBhOnNjY29udGVudFtsXQorCQkJCWlmIGxpbmUgPX4/ICdcVnsnCisJCQkJCWxldCBmdW5jdGlvbl9saW5lX2VuZCA9IGwKKwkJCQkJYnJlYWsKKwkJCQllbmRpZgorCQkJCWxldCBsICs9IDEKKwkJCWVuZHdoaWxlCisJCQlicmVhaworCQllbmRpZgorCQlsZXQgaSArPSAxCisJZW5kd2hpbGUKKworCSIgbm93IGdyYWIgdGhlIGxpbmVzIHRoYXQgaG9sZHMgdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGxpbmUKKwlpZiBmdW5jdGlvbl9saW5lX3N0YXJ0ICE9IC0xICYmIGZ1bmN0aW9uX2xpbmVfZW5kICE9IC0xCisJCWxldCBmdW5jdGlvbl9saW5lID0gam9pbihhOnNjY29udGVudFtmdW5jdGlvbl9saW5lX3N0YXJ0IDpmdW5jdGlvbl9saW5lX2VuZF0sICIgIikKKwkJbGV0IGNsYXNzX25hbWVfcGF0dGVybiA9ICdbYS16QS1aX1x4N2YtXHhmZlxcXVthLXpBLVpfMC05XHg3Zi1ceGZmXFxdKicKKwkJbGV0IHJldHVybl90eXBlID0gbWF0Y2hzdHIoZnVuY3Rpb25fbGluZSwgJ1xjXHMqOlxzKlx6cycuY2xhc3NfbmFtZV9wYXR0ZXJuLidcemVccyp7JykKKwllbmRpZgorCXJldHVybiByZXR1cm5fdHlwZQorCitlbmRmdW5jdGlvbgorCiBmdW5jdGlvbiEgcGhwY29tcGxldGUjR2V0VHlwZUZyb21Eb2NCbG9ja1BhcmFtKGRvY2Jsb2NrX3R5cGUpICIge3t7CiAJaWYgYTpkb2NibG9ja190eXBlICF+ICd8JwogCQlyZXR1cm4gYTpkb2NibG9ja190eXBlCkBAIC0yNTcyLDcgKzI2MjIsNyBAQAogCQkJIiBmaW5kIGtpbmQgZmxhZ3MgZnJvbSB0YWdzIG9yIGJ1aWx0IGluIG1ldGhvZHMgZm9yIHRoZSBvYmplY3RzIHdlIGV4dHJhY3RlZAogCQkJIiB0aGV5IGNhbiBiZSBlaXRoZXIgY2xhc3NlcywgaW50ZXJmYWNlcyBvciBuYW1lc3BhY2VzLCBubyBvdGhlciB0aGluZyBpcyBpbXBvcnRhYmxlIGluIHBocAogCQkJZm9yIFtrZXksIGltcG9ydF0gaW4gaXRlbXMoaW1wb3J0cykKLQkJCQkiIGlmIHRoZXJlcyBhIFwgaW4gdGhlIG5hbWUgd2UgaGF2ZSBpdCdzIGRlZmluZXRseSBub3QgYSBidWlsdCBpbiB0aGluZywgbG9vayBmb3IgdGFncworCQkJCSIgaWYgdGhlcmVzIGEgXCBpbiB0aGUgbmFtZSB3ZSBoYXZlIGl0J3MgZGVmaW5pdGVseSBub3QgYSBidWlsdCBpbiB0aGluZywgbG9vayBmb3IgdGFncwogCQkJCWlmIGltcG9ydC5uYW1lID1+ICdcXCcKIAkJCQkJbGV0IHBhdGNoZWRfY3RhZ3NfZGV0ZWN0ZWQgPSAwCiAJCQkJCWxldCBbY2xhc3NuYW1lLCBuYW1lc3BhY2VfZm9yX2NsYXNzZXNdID0gcGhwY29tcGxldGUjRXhwYW5kQ2xhc3NOYW1lKGltcG9ydC5uYW1lLCAnXCcsIHt9KQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvYXV0b2NtZC50eHQgYi9ydW50aW1lL2RvYy9hdXRvY21kLnR4dAppbmRleCBlMDA0MDEwLi5iNmU1MDIzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9hdXRvY21kLnR4dAorKysgYi9ydW50aW1lL2RvYy9hdXRvY21kLnR4dApAQCAtMzAxLDYgKzMwMSw3IEBACiB8RmlsZUNoYW5nZWRTaGVsbFBvc3R8CUFmdGVyIGhhbmRsaW5nIGEgZmlsZSBjaGFuZ2VkIHNpbmNlIGVkaXRpbmcgc3RhcnRlZAogfEZpbGVDaGFuZ2VkUk98CQliZWZvcmUgbWFraW5nIHRoZSBmaXJzdCBjaGFuZ2UgdG8gYSByZWFkLW9ubHkgZmlsZQogCit8RGlmZlVwZGF0ZWR8CQlhZnRlciBkaWZmcyBoYXZlIGJlZW4gdXBkYXRlZAogfERpckNoYW5nZWR8CQlhZnRlciB0aGUgd29ya2luZyBkaXJlY3RvcnkgaGFzIGNoYW5nZWQKIAogfFNoZWxsQ21kUG9zdHwJCWFmdGVyIGV4ZWN1dGluZyBhIHNoZWxsIGNvbW1hbmQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2NtZGxpbmUudHh0IGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKaW5kZXggM2IyZGQzMi4uMGQyYjBkYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvY21kbGluZS50eHQKKysrIGIvcnVudGltZS9kb2MvY21kbGluZS50eHQKQEAgLTUzNCw4ICs1MzQsNDYgQEAKIHRvIGFkZCBjb21tZW50cy4gIEV4YW1wbGU6ID4KIAk6c2V0IGFpCQkic2V0ICdhdXRvaW5kZW50JyBvcHRpb24KIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBhZGQgYSBjb21tZW50IHRvIGEgc2hlbGwgY29tbWFuZCAiOiFjbWQiIG9yIHRvIHRoZQotIjptYXAiIGNvbW1hbmQgYW5kIGEgZmV3IG90aGVycywgYmVjYXVzZSB0aGV5IHNlZSB0aGUgJyInIGFzIHBhcnQgb2YgdGhlaXIKLWFyZ3VtZW50LiAgVGhpcyBpcyBtZW50aW9uZWQgd2hlcmUgdGhlIGNvbW1hbmQgaXMgZXhwbGFpbmVkLgorIjptYXAiIGNvbW1hbmQgYW5kIGEgZmV3IG90aGVycyAobWFpbmx5IGNvbW1hbmRzIHRoYXQgZXhwZWN0IGV4cHJlc3Npb25zKQordGhhdCBzZWUgdGhlICciJyBhcyBwYXJ0IG9mIHRoZWlyIGFyZ3VtZW50OgorCisgICAgOmFyZ2RvCisgICAgOmF1dG9jbWQKKyAgICA6YnVmZG8KKyAgICA6Y2V4cHIgKGFuZCB0aGUgbGlrZSkKKyAgICA6Y2FsbAorICAgIDpjZG8gKGFuZCB0aGUgbGlrZSkKKyAgICA6Y29tbWFuZAorICAgIDpjc2NvcGUgKGFuZCB0aGUgbGlrZSkKKyAgICA6ZGVidWcKKyAgICA6ZGlzcGxheQorICAgIDplY2hvIChhbmQgdGhlIGxpa2UpCisgICAgOmVsc2VpZgorICAgIDpleGVjdXRlCisgICAgOmZvbGRkb29wZW4KKyAgICA6Zm9sZGRvY2xvc2VkCisgICAgOmZvcgorICAgIDpncmVwIChhbmQgdGhlIGxpa2UpCisgICAgOmhlbHAgKGFuZCB0aGUgbGlrZSkKKyAgICA6aWYKKyAgICA6bGV0CisgICAgOm1ha2UKKyAgICA6bWFwIChhbmQgdGhlIGxpa2UgaW5jbHVkaW5nIDphYmJyZXYgY29tbWFuZHMpCisgICAgOm1lbnUgKGFuZCB0aGUgbGlrZSkKKyAgICA6bWtzcGVsbAorICAgIDpub3JtYWwKKyAgICA6b3duc3ludGF4CisgICAgOnBvcHVwCisgICAgOnByb21wdGZpbmQgKGFuZCB0aGUgbGlrZSkKKyAgICA6cmVnaXN0ZXJzCisgICAgOnJldHVybgorICAgIDpzb3J0CisgICAgOnN5bnRheAorICAgIDp0YWJkbworICAgIDp0ZWFyb2ZmCisgICAgOnZpbWdyZXAgKGFuZCB0aGUgbGlrZSkKKyAgICA6d2hpbGUKKyAgICA6d2luZG8KIAogCQkJCQkJCSo6YmFyKiAqOlxiYXIqCiAnfCcgY2FuIGJlIHVzZWQgdG8gc2VwYXJhdGUgY29tbWFuZHMsIHNvIHlvdSBjYW4gZ2l2ZSBtdWx0aXBsZSBjb21tYW5kcyBpbiBvbmUKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggZmRhM2JkMC4uZDUxZGE2MCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTIwMzgsNyArMjAzOCw4IEBACiAJCQkJTnVtYmVyCWFzc2VydCBmaWxlIGNvbnRlbnRzIGlzIGVxdWFsCiBhc3NlcnRfZXhjZXB0aW9uKHtlcnJvcn0gWywge21zZ31dKQogCQkJCU51bWJlcglhc3NlcnQge2Vycm9yfSBpcyBpbiB2OmV4Y2VwdGlvbgotYXNzZXJ0X2ZhaWxzKHtjbWR9IFssIHtlcnJvcn1dKQlOdW1iZXIJYXNzZXJ0IHtjbWR9IGZhaWxzCithc3NlcnRfZmFpbHMoe2NtZH0gWywge2Vycm9yfSBbLCB7bXNnfV1dKQorCQkJCU51bWJlcglhc3NlcnQge2NtZH0gZmFpbHMKIGFzc2VydF9mYWxzZSh7YWN0dWFsfSBbLCB7bXNnfV0pCiAJCQkJTnVtYmVyCWFzc2VydCB7YWN0dWFsfSBpcyBmYWxzZQogYXNzZXJ0X2lucmFuZ2Uoe2xvd2VyfSwge3VwcGVyfSwge2FjdHVhbH0gWywge21zZ31dKQpAQCAtMjQ2MSw3ICsyNDYyLDcgQEAKIHRlcm1fc2V0cmVzdG9yZSh7YnVmfSwge2NvbW1hbmR9KSBub25lCXNldCBjb21tYW5kIHRvIHJlc3RvcmUgdGVybWluYWwKIHRlcm1fc2V0c2l6ZSh7YnVmfSwge3Jvd3N9LCB7Y29sc30pCiAJCQkJbm9uZQlzZXQgdGhlIHNpemUgb2YgYSB0ZXJtaW5hbAotdGVybV9zdGFydCh7Y21kfSwge29wdGlvbnN9KQlKb2IJb3BlbiBhIHRlcm1pbmFsIHdpbmRvdyBhbmQgcnVuIGEgam9iCit0ZXJtX3N0YXJ0KHtjbWR9LCB7b3B0aW9uc30pCU51bWJlcglvcGVuIGEgdGVybWluYWwgd2luZG93IGFuZCBydW4gYSBqb2IKIHRlcm1fd2FpdCh7YnVmfSBbLCB7dGltZX1dKQlOdW1iZXIgIHdhaXQgZm9yIHNjcmVlbiB0byBiZSB1cGRhdGVkCiB0ZXN0X2FsbG9jX2ZhaWwoe2lkfSwge2NvdW50ZG93bn0sIHtyZXBlYXR9KQogCQkJCW5vbmUJbWFrZSBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsCkBAIC0yNDc1LDggKzI0NzYsOCBAQAogdGVzdF9udWxsX2xpc3QoKQkJTGlzdAludWxsIHZhbHVlIGZvciB0ZXN0aW5nCiB0ZXN0X251bGxfcGFydGlhbCgpCQlGdW5jcmVmCW51bGwgdmFsdWUgZm9yIHRlc3RpbmcKIHRlc3RfbnVsbF9zdHJpbmcoKQkJU3RyaW5nCW51bGwgdmFsdWUgZm9yIHRlc3RpbmcKLXRlc3Rfb3B0aW9uX25vdF9zZXQoe25hbWV9KSAgICBub25lCXJlc2V0IGZsYWcgaW5kaWNhdGluZyBvcHRpb24gd2FzIHNldAotdGVzdF9vdmVycmlkZSh7ZXhwcn0sIHt2YWx9KSAgICBub25lCXRlc3Qgd2l0aCBWaW0gaW50ZXJuYWwgb3ZlcnJpZGVzCit0ZXN0X29wdGlvbl9ub3Rfc2V0KHtuYW1lfSkJbm9uZQlyZXNldCBmbGFnIGluZGljYXRpbmcgb3B0aW9uIHdhcyBzZXQKK3Rlc3Rfb3ZlcnJpZGUoe2V4cHJ9LCB7dmFsfSkJbm9uZQl0ZXN0IHdpdGggVmltIGludGVybmFsIG92ZXJyaWRlcwogdGVzdF9zY3JvbGxiYXIoe3doaWNofSwge3ZhbHVlfSwge2RyYWdnaW5nfSkKIAkJCQlub25lCXNjcm9sbCBpbiB0aGUgR1VJIGZvciB0ZXN0aW5nCiB0ZXN0X3NldHRpbWUoe2V4cHJ9KQkJbm9uZQlzZXQgY3VycmVudCB0aW1lIGZvciB0ZXN0aW5nCkBAIC0yNjcxLDcgKzI2NzIsNyBAQAogCQkJICBjYWxsIGFzc2VydF9leGNlcHRpb24oJ0U0OTI6JykKIAkJCWVuZHRyeQogCi1hc3NlcnRfZmFpbHMoe2NtZH0gWywge2Vycm9yfV0pCQkJCQkqYXNzZXJ0X2ZhaWxzKCkqCithc3NlcnRfZmFpbHMoe2NtZH0gWywge2Vycm9yfSBbLCB7bXNnfV1dKQkJCSphc3NlcnRfZmFpbHMoKSoKIAkJUnVuIHtjbWR9IGFuZCBhZGQgYW4gZXJyb3IgbWVzc2FnZSB0byB8djplcnJvcnN8IGlmIGl0IGRvZXMKIAkJTk9UIHByb2R1Y2UgYW4gZXJyb3IuICBBbHNvIHNlZSB8YXNzZXJ0LXJldHVybnwuCiAJCVdoZW4ge2Vycm9yfSBpcyBnaXZlbiBpdCBtdXN0IG1hdGNoIGluIHx2OmVycm1zZ3wuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9ndWlfeDExLnR4dCBiL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0CmluZGV4IGE5NWI5ZmQuLjc2ZTJhYzIgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0CisrKyBiL3J1bnRpbWUvZG9jL2d1aV94MTEudHh0CkBAIC00OTYsNyArNDk2LDcgQEAKIGluIG1pbmQgYWx3YXlzIHdoZW4geW91IHRyeSBpbXByb3ZpbmcgYSB0aGVtZS4KIAogCi1FeGFtcGxlIDMuICBib3JkZXIgY29sb3IKK0V4YW1wbGUgMy4gIGJvcmRlciBjb2xvciB+CiAKIFRvIGVsaW1pbmF0ZSBib3JkZXJzIHdoZW4gbWF4aW1pemVkOiA+CiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2hlbHAudHh0IGIvcnVudGltZS9kb2MvaGVscC50eHQKaW5kZXggMjM5ZGU5ZC4uMjBlNmMxNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaGVscC50eHQKKysrIGIvcnVudGltZS9kb2MvaGVscC50eHQKQEAgLTIyNSw0ICsyMjUsNCBAQAogJ2NvbXBhdGlibGUnLgogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB2aW06dHc9Nzg6Zm89dGNxMjppc2s9IS1+LF4qLF5cfCxeXCI6dHM9ODpub2V0OmZ0PWhlbHA6bm9ybDoKKyB2aW06dHc9Nzg6aXNrPSEtfixeKixeXHwsXlwiOnRzPTg6bm9ldDpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbmRlbnQudHh0IGIvcnVudGltZS9kb2MvaW5kZW50LnR4dAppbmRleCBiMWY0NGI3Li5hOGQ1OWUzIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbmRlbnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luZGVudC50eHQKQEAgLTk0MSw2ICs5NDEsMTEgQEAKIEluZGVudCBmb3IgYSBjb250aW51YXRpb24gbGluZTogPgogCWxldCBnOnB5aW5kZW50X2NvbnRpbnVlID0gJyZzdyAqIDInCiAKK1RoZSBtZXRob2QgdXNlcyBzZWFyY2hwYWlyKCkgdG8gbG9vayBiYWNrIGZvciB1bmNsb3NlZCBwYXJlbnRoZXNpcy4gIFRoaXMgY2FuCitzb21ldGltZXMgYmUgc2xvdywgdGh1cyBpdCB0aW1lb3V0cyBhZnRlciAxNTAgbXNlYy4gIElmIHlvdSBub3RpY2UgdGhlCitpbmRlbnRpbmcgaXNuJ3QgY29ycmVjdCwgeW91IGNhbiBzZXQgYSBsYXJnZXIgdGltZW91dCBpbiBtc2VjOiA+CisJbGV0IGc6cHlpbmRlbnRfc2VhcmNocGFpcl90aW1lb3V0ID0gNTAwCisKIAogUgkJCQkJCQkJKmZ0LXItaW5kZW50KgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dCBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CmluZGV4IDZhMzRiNzcuLjBkYjJkNDYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CisrKyBiL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0CkBAIC0zODk1LDggKzM4OTUsOCBAQAogCXNjcmVlbi4KIAogCQkJCQkJKidndWlvcHRpb25zJyogKidnbycqCi0nZ3Vpb3B0aW9ucycgJ2dvJwlzdHJpbmcJKGRlZmF1bHQgImVnbXJMdFQiICAgKE1TLVdpbmRvd3MsICJ0IiBpcwotCQkJCQkJICAgcmVtb3ZlZCBpbiB8ZGVmYXVsdHMudmltfCksCisnZ3Vpb3B0aW9ucycgJ2dvJwlzdHJpbmcJKGRlZmF1bHQgImVnbXJMdFQiICAgKE1TLVdpbmRvd3MsCisJCQkJCSAgICJ0IiBpcyByZW1vdmVkIGluIHxkZWZhdWx0cy52aW18KSwKIAkJCQkJICJhZWdpbXJMdFQiIChHVEssIE1vdGlmIGFuZCBBdGhlbmEpLAogCQkJCQkgKQogCQkJZ2xvYmFsCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9vc18zOTAudHh0IGIvcnVudGltZS9kb2Mvb3NfMzkwLnR4dAppbmRleCBhYjg4Y2M2Li43YjZlYmQ0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc18zOTAudHh0CisrKyBiL3J1bnRpbWUvZG9jL29zXzM5MC50eHQKQEAgLTgzLDEwICs4MywxMCBAQAogICBjdGFncyBvdXQgdGhlcmUsIHRoYXQgZG9lcyBpdCByaWdodCwgYnV0IHdlIGNhbid0IGJlIHN1cmUuICBTbyB0aGlzIHNlZW1zIHRvCiAgIGJlIGEgcGVybWFuZW50IHJlc3RyaWN0aW9uLgogCi0tIFRoZSBjc2NvcGUgaW50ZXJmYWNlICh8Y3Njb3BlfCkgZG9lc24ndCB3b3JrIGZvciB0aGUgdmVyc2lvbiBvZiBjc2NvcGUKLSAgdGhhdCB3ZSB1c2Ugb24gb3VyIG1haW5mcmFtZS4gIFdlIGhhdmUgYSBjb3B5IG9mIHZlcnNpb24gMTUuMGIxMiwgYW5kIGl0Ci0gIGNhdXNlcyBWaW0gdG8gaGFuZyB3aGVuIHVzaW5nIHRoZSAiY3Njb3BlIGFkZCIgY29tbWFuZC4gIEknbSBndWVzc2luZyB0aGF0Ci0gIHRoZSBiaW5hcnkgZm9ybWF0IG9mIHRoZSBjc2NvcGUgZGF0YWJhc2UgaXNuJ3QgcXVpdGUgd2hhdCBWaW0gaXMgZXhwZWN0aW5nLgorLSBUaGUgY3Njb3BlIGludGVyZmFjZSAofGNzY29wZXwpIGRvZXNuJ3Qgd29yayBmb3IgdGhlIHZlcnNpb24gb2YgY3Njb3BlIHRoYXQKKyAgd2UgdXNlIG9uIG91ciBtYWluZnJhbWUuICBXZSBoYXZlIGEgY29weSBvZiB2ZXJzaW9uIDE1LjBiMTIsIGFuZCBpdCBjYXVzZXMKKyAgVmltIHRvIGhhbmcgd2hlbiB1c2luZyB0aGUgImNzY29wZSBhZGQiIGNvbW1hbmQuICBJJ20gZ3Vlc3NpbmcgdGhhdCB0aGUKKyAgYmluYXJ5IGZvcm1hdCBvZiB0aGUgY3Njb3BlIGRhdGFiYXNlIGlzbid0IHF1aXRlIHdoYXQgVmltIGlzIGV4cGVjdGluZy4KICAgSSd2ZSB0cmllZCB0byBwb3J0IHRoZSBjdXJyZW50IHZlcnNpb24gb2YgY3Njb3BlICgxNS4zKSB0byB6L09TLCB3aXRob3V0CiAgIG11Y2ggc3VjY2Vzcy4gIElmIGFueW9uZSBpcyBpbnRlcmVzdGVkIGluIHRyeWluZywgZHJvcCBtZSBhIGxpbmUgaWYgeW91CiAgIG1ha2UgYW55IHByb2dyZXNzLgpAQCAtMTMxLDQgKzEzMSw0IEBACiAKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gdmltOnR3PTc4OmZvPXRjcTI6dHM9ODpub2V0OmZ0PWhlbHA6bm9ybDoKKyB2aW06dHc9Nzg6dHM9ODpub2V0OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29zX3dpbjMyLnR4dCBiL3J1bnRpbWUvZG9jL29zX3dpbjMyLnR4dAppbmRleCA5YTVmNzQ4Li5jODQxN2UwIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vc193aW4zMi50eHQKKysrIGIvcnVudGltZS9kb2Mvb3Nfd2luMzIudHh0CkBAIC0zMDMsNCArMzAzLDQgQEAKICAgICdydW50aW1lcGF0aCcuICBGb3IgZXhhbXBsZSB+L3ZpbWZpbGVzL2JpdG1hcHMvdmltLmljby4KIAogCi0gdmltOnR3PTc4OmZvPXRjcTI6dHM9ODpub2V0OmZ0PWhlbHA6bm9ybDoKKyB2aW06dHc9Nzg6dHM9ODpub2V0OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggNmEzNmIxMy4uZWExZTAwYSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTM4LDE3ICszOCw4IEBACiAJCQkJCQkJKmtub3duLWJ1Z3MqCiAtLS0tLS0tLS0tLS0tLS0tLS0tLSBLbm93biBidWdzIGFuZCBjdXJyZW50IHdvcmsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotVGVzdF9zY3JvbGxiYXJzKCkgZmFpbHMgd2l0aCBYMTEtQXRoZW5hIEdVSSBvciBYMTEtTW90aWYgR1VJCi0oRG9taW5pcXVlLCAjMzQ1MSkKLQotRmxhc2hpbmcgaGlnaGxpZ2h0aW5nIHdpdGggJ3JudScgYW5kIGZvbGRpbmcuCi0oVml0YWx5IFlhc2hpbiwgMjAxOCBTZXAgMjYsICMzNDg0KQotCi1TdGlsbCBhIGN1cnNvcmxpbmUgcHJvYmxlbS4gKEp1c3RpbiBLZXllcywgIzM0ODgpCi0KLUNyYXNoIHdpdGggcmVjdXJzaXZlIHVzZSBvZiBnZXRjbWRsaW5lKCkgZnJvbSBUaW1lci4gIHNhdmVfY2NsaW5lIGlzbid0IHVzZWQKLXRoZW4uICBUdXJuIGl0IGFyb3VuZDogV2hlbiBnZXRjbWRsaW5lKCkgaXMgY2FsbGVkIGl0IGNoZWNrcyBpZiBpdCBpcyBhCi1yZWN1cnNpdmUgY2FsbCwgYW5kIHNhdmVzIHRoZSBjbWRsaW5lIHRoZW4uICgjMzQ5MykKK1VzaW5nIGZyZWVkIG1lbW9yeSBpbiBxdWlja2ZpeC4gKERvbWluaXF1ZSBQZWxsZSwgWWVnYXBwYW4gaXMgbG9va2luZyBpbnRvIGEKK2ZpeCkuCiAKICdpbmNzZWFyY2gnIHdpdGggOnM6ICgjMzMyMSkKIC0gOnMvZm9vICB1c2luZyBDVFJMLUcgbW92ZXMgdG8gYW5vdGhlciBsaW5lLCBzaG91bGQgbm90IGhhcHBlbiwgb3IgdXNlIHRoZQpAQCAtNTksOCArNTAsNiBAQAogICBpc24ndCBvbmU/CiAgIFRoZW4gOiVzP2ZvbyBzaG91bGQgdGFrZSB0aGUgZmlyc3QgbWF0Y2ggYWJvdmUgdGhlIGN1cnNvciBsaW5lLgogCi1Eb24ndCBzZXQgZGlmZmV4cHIgd2hlbiBnZW5lcmF0aW5nIF92aW1yYyBmb3IgTVMtV2luZG93cy4KLQogUHJvbXB0IGJ1ZmZlcjoKIC0gQWRkIGEgY29tbWFuZCBsaW5lIGhpc3RvcnkuCiAtIGRlbGF5IG5leHQgcHJvbXB0IHVudGlsIHBsdWdpbiBnaXZlcyBPSz8KQEAgLTc1LDYgKzY0LDcgQEAKIFRlcm1pbmFsIGVtdWxhdG9yIHdpbmRvdzoKIC0gR1VJOiBXaGVuIHVzaW5nICI6c2V0IGdvKz0hIiBhIHN5c3RlbSgpIGNhbGwgY2F1c2VzIHRoZSBoaXQtZW50ZXIgcHJvbXB0LgogICAoIzMzMjcpCistIEdVSTogaGFuZyB1bnRpbCBrZXkgdHlwZWQuICgjMzUzMCkKIC0gV2hlbiB0aGUgam9iIGluIHRoZSB0ZXJtaW5hbCBkb2Vzbid0IHVzZSBtb3VzZSBldmVudHMsIGxldCB0aGUgc2Nyb2xsIHdoZWVsCiAgIHNjcm9sbCB0aGUgc2Nyb2xsYmFjaywgbGlrZSBhIHRlcm1pbmFsIGRvZXMgYXQgdGhlIHNoZWxsIHByb21wdC4gIzI0OTAKICAgQW5kIHVzZSBtb2RlbGVzcyBzZWxlY3Rpb24uICAjMjk2MgpAQCAtMTA1LDYgKzk1LDkgQEAKIEtleSBtYXBwaW5nIHRpbWVzIG91dCB3aGVuIHVzaW5nIGEgdGltZXIgaW4gR3ZpbS4gKE1pY2hhZWwgSGVucnksIDIwMTggU2VwIDksCiAjMzQxNykKIAorUGF0Y2ggdG8gY2hlY2sgZm9yIGRpcmVjdG9yeSBhY2Nlc3MgaW4gdGVybV9zdGFydCgpLiAoSmFzb24gRnJhbmtsaW4sIDIwMTggT2N0CisxNSkKKwogRG9lcyBub3QgYnVpbGQgd2l0aCBNaW5HVyBvdXQgb2YgdGhlIGJveDoKIC0gX3N0YXQ2NCBpcyBub3QgZGVmaW5lZCwgbmVlZCB0byB1c2UgInN0cnVjdCBzdGF0IiBpbiB2aW0uaAogLSBXSU5WRVIgY29uZmxpY3QsIHNob3VsZCB1c2UgMHgwNjAwIGJ5IGRlZmF1bHQ/CkBAIC0xMTUsMzMgKzEwOCw1NSBAQAogRXJyb3JzIGZvdW5kIHdpdGggcmFuZG9tIGRhdGE6CiAgICAgaGVhcC1idWZmZXItb3ZlcmZsb3cgaW4gYWxpc3RfYWRkICgjMjQ3MikKIAorV2luMzIga2V5IGNvZGVzIGFyZSBtZXNzeS4gIE1pa2UgV2lsbGlhbXMgdHJpZWQgdG8gZml4IHRoYXQsIGJ1dCBub3cgb2xkCittYXBwaW5ncyBubyBsb25nZXIgd29yay4gIENyZWF0ZSBhIG5ldyB0ZXJtaW5hbCBmb3IgdGhlIGJldHRlciBzb2x1dGlvbj8KKwogSW1wcm92ZSBmYWxsYmFjayBmb3IgbWVudSB0cmFuc2xhdGlvbnMsIHRvIGF2b2lkIGhhdmluZyB0byBjcmVhdGUgbG90cyBvZgogZmlsZXMgdGhhdCBzb3VyY2UgdGhlIGFjdHVhbCBmaWxlLiAgRS5nLiBtZW51X2RhX2RlIC0+IG1lbnVfZGEKIEluY2x1ZGUgcGFydCBvZiAjMzI0Mj8KIAorV2hlbiBhIHRlcm1pbmFsIGV4aXRfY2IgY2xvc2VzIHRoZSB3aW5kb3csIGEgZm9sbG93aW5nIHR5cGVkIGtleSBpcyBsb3N0LCBpZgoraXQncyBpbiBhIG1hcHBpbmcuICgyMDE4IE9jdCA2LCAjMjMwMiwgIzM1MjIpCisKIENvbXBsZXRpb24gbWl4ZXMgcmVzdWx0cyBmcm9tIHRoZSBjdXJyZW50IGJ1ZmZlciB3aXRoIHRhZ3MgYW5kIG90aGVyIGZpbGVzLgogSGFwcGVucyB3aGVuIHR5cGluZyBDVFJMLU4gd2hpbGUgc3RpbGwgc2VhcmNoIGZvciByZXN1bHRzLiAgRS5nLiwgdHlwZSAiYl8iIGluCiB0ZXJtaW5hbC5jIGFuZCB0aGVuIENUUkwtTiB0d2ljZS4KIFNob3VsZCBkbyBjdXJyZW50IGZpbGUgZmlyc3QgYW5kIG5vdCBzcGxpdCBpdCB1cCB3aGVuIG1vcmUgcmVzdWx0cyBhcmUgZm91bmQuCiAoQWxzbyAjMTg5MCkKIAorQyBzeW50YXg6IHt9IGluc2lkZSAoKSBjYXVzZXMgZm9sbG93aW5nIHt9IHRvIGJlIGhpZ2hsaWdodGVkIGFzIGVycm9yLgorKE1pY2hhbGlzIEdpYW5uYWtpZGlzLCAyMDA2IEp1biAxKQorCiBNb3JlIHdhcm5pbmdzIGZyb20gc3RhdGljIGFuYWx5c2lzOgogaHR0cHM6Ly9sZ3RtLmNvbS9wcm9qZWN0cy9nL3ZpbS92aW0vYWxlcnRzLz9tb2RlPWxpc3QKIAorUXVpY2tmaXggYWNjZXNzaW5nIGZyZWUgbWVtb3J5LiAoRG9taW5pcXVlLCAyMDE4IE9jdCAxMywgIzM1MzgpCitZZWdhcHBhbiB3aWxsIGxvb2sgaW50byBpdC4KKworUGF0Y2ggZm9yIHRoaXM6IChBcm9uIFdpZGZvcnNzLCAyMDE4IE9jdCAxMywgIzM1MzkpCisgICAgbWlzc2luZyBhIHRlc3QuCis3ICAgTWFrZSAnc2Nyb2xsb2ZmJyBhIGdsb2JhbC1sb2NhbCBvcHRpb24sIHNvIHRoYXQgaXQgY2FuIGJlIGRpZmZlcmVudCBpbiB0aGUKKyAgICBxdWlja2ZpeCB3aW5kb3csIGZvciBleGFtcGxlLiAoR2FyeSBIb2xsb3dheSkKKyAgICBBbHNvIGRvICdzaWRlc2Nyb2xsb2ZmJy4KKwogUGFzdGluZyBmb299IGNhdXNlcyBWaW0gdG8gYmVoYXZlIHdlaXJkLiAoSm9obiBMaXR0bGUsIDIwMTggSnVuIDE3KQogUmVsYXRlZCB0byBicmFja2V0ZWQgcGFzdGUuICBJIGNhbm5vdCByZXByb2R1Y2UgaXQuCiAKICI6bWtzZXNzaW9uIiBjYW5ub3QgaGFuZGxlIGEgdmVyeSBsb25nICdydW50aW1lcGF0aCcuIChUaW1vdGh5IE1hZGRlbiwgMjEgU2VwCi0yMDE4LCAjMzQ2NikKKzIwMTgsICMzNDY2KSAgQ2hyaXN0aWFuIGlzIHdvcmtpbmcgb24gYSBwYXRjaC4KIAogUGF0Y2ggaW4gcHVsbCByZXF1ZXN0ICMyOTY3OiBBbGxvdyB3aGl0ZSBzcGFjZSBpbiBzaWduIHRleHQuIChCZW4gSmFja3NvbikKIFRlc3QgZmFpbHMgaW4gQXBwVmV5b3IuCiAKLUpvYl9pbmZvKCkgcmV0dXJucyBjb21tYW5kIHdpdGhvdXQgYmFja3NsYXNoZXMuIChEYW5pZWwgSGFobGVyLCAyMDE4IFNlcCAzLAotIzM0MDQpCi0KIFBhdGNoIHRvIHNpbXBsaWZ5IG5zaXMgaW5zdGFsbGVyLiAoS2VuIFRha2F0YSwgMjAxOCBTZXAgMjQsIHdhcyAjMzQ3OSkKLU5vdyBpbmNsdWRlZCBpbiAjMzUwMSwgdXNpbmcgTVVJMi4KK05vdyBpbmNsdWRlZCBpbiAjMzUwMSwgdXNpbmcgTVVJMi4gIFVzZSB0aGUgemlwIGZpbGUgdG8gZ2V0IHRoZSBiaW5hcnkgZmlsZXM6CitodHRwczovL2dpdGh1Yi5jb20vdmltL3ZpbS9maWxlcy8yNDc1NjIxL25zaXMtaWNvbnMuemlwCitTdGlsbCBiZWluZyB3b3JrZWQgb24uCisKK21sX2dldCBlcnJvcjogKElzcmFlbCBDaGF1Y2EgRnVlbnRlcywgMjAxOCBPY3QgMTcsICMzNTUwKS4KKworUGF0Y2ggdG8gY29udmVydCB0ZW1wIGZpbGUgbmFtZS4gKFlhc3VoaXJvIE1hdHN1bW90bywgIzM1MjApCitOb3QgcmVhZHkgdG8gaW5jbHVkZSB5ZXQuCiAKIFJlbW92aW5nIGZsYWdzIGZyb20gJ2Nwb3B0aW9ucycgYnJlYWtzIHRoZSBXaW5iYXIgYnV0dG9ucyBpbiB0ZXJtZGVidWcuCiAoRG9taW5pcXVlIFBlbGxlLCAyMDE4IEp1bCAxNikKQEAgLTE1NiwyNCArMTcxLDExIEBACiBBZGQgZnVuY3Rpb24gdG8gbWFrZSB1c2Ugb2YgaW50ZXJuYWwgZGlmZiwgd29ya2luZyBvbiB0d28gbGlzdHMgYW5kIHJldHVybmluZwogdW5pZmllZCBkaWZmIChsaXN0IG9mIGxpbmVzKS4KIAotTWVtb3J5IGxlYWsgaW4gdGVzdF9hc3NlcnQ6Ci09PTE5MTI3PT0gICAgYnkgMHgyNjQwRDc6IGFsbG9jIChtaXNjMi5jOjg3NCkKLT09MTkxMjc9PSAgICBieSAweDI2NDZENjogdmltX3N0cnNhdmUgKG1pc2MyLmM6MTMxNSkKLT09MTkxMjc9PSAgICBieSAweDFCNjhEMjogZl9nZXRjd2QgKGV2YWxmdW5jLmM6NDk1MCkKLUFuZDoKLT09MTkxMjc9PSAgICBieSAweDI2NDBENzogYWxsb2MgKG1pc2MyLmM6ODc0KQotPT0xOTEyNz09ICAgIGJ5IDB4MUE5NDc3OiBzZXRfdmFyIChldmFsLmM6NzYwMSkKLT09MTkxMjc9PSAgICBieSAweDE5Rjk2Rjogc2V0X3Zhcl9sdmFsIChldmFsLmM6MjIzMykKLT09MTkxMjc9PSAgICBieSAweDE5RUEzQTogZXhfbGV0X29uZSAoZXZhbC5jOjE4MTApCi09PTE5MTI3PT0gICAgYnkgMHgxOUQ3Mzc6IGV4X2xldF92YXJzIChldmFsLmM6MTI5NCkKLT09MTkxMjc9PSAgICBieSAweDE5RDZCNDogZXhfbGV0IChldmFsLmM6MTI1OSkKK1BhdGNoIHRvIGltcGxlbWVudCAnZGlmZnJlZicgb3B0aW9uLiAoIzM1MzUpCisgIEVhc2llciB0byB1c2UgYSAnZGlmZm1hc3Rlcicgb3B0aW9uLCBpcyB0aGUgZXh0cmEgY29tcGxleGl0eSBuZWVkZWQ/CisKIE1lbW9yeSBsZWFrcyBpbiB0ZXN0X2NoYW5uZWw/IChvciBpcyBpdCBiZWNhdXNlIG9mIGZvcmsoKSkKIFVzaW5nIHVuaW5pdGlhbGl6ZWQgdmFsdWUgaW4gdGVzdF9jcnlwdC4KLU1lbW9yeSBsZWFrcyBpbiB0ZXN0X2VzY2FwZWRfZ2xvYgotPT0yMDY1MT09ICAgIGJ5IDB4MjY0MEQ3OiBhbGxvYyAobWlzYzIuYzo4NzQpCi09PTIwNjUxPT0gICAgYnkgMHgyNjQ2RDY6IHZpbV9zdHJzYXZlIChtaXNjMi5jOjEzMTUpCi09PTIwNjUxPT0gICAgYnkgMHgzNzQxRUE6IGdldF9mdW5jdGlvbl9hcmdzICh1c2VyZnVuYy5jOjEzMSkKLT09MjA2NTE9PSAgICBieSAweDM3ODc3OTogZXhfZnVuY3Rpb24gKHVzZXJmdW5jLmM6MjAzNikKIE1lbW9yeSBsZWFrIGluIHRlc3RfdGVybWluYWw6CiA9PTIzNTMwPT0gICAgYnkgMHgyNjQwRDc6IGFsbG9jIChtaXNjMi5jOjg3NCkKID09MjM1MzA9PSAgICBieSAweDI2NDZENjogdmltX3N0cnNhdmUgKG1pc2MyLmM6MTMxNSkKQEAgLTE5OCw2ICsyMDAsOSBAQAogCiBQYXRjaCB0byBzdXBwb3J0IG1lbnVzIGluIHRlcm1pbmFsOiAiOnRsbWVudSIuIChZZWUgQ2hlbmcgQ2hpbiwgIzM0MzkpCiAKKzpwZWRpdCByZXNldHMgdGhlICdidWZsaXN0ZWQnIG9wdGlvbiB1bmV4cGVjdGVkbHkuIChXYW5nIFNoaWRvbmcsIDIwMTggT2N0IDEyLAorIzM1MzYpCisKIGhvbWVfcmVwbGFjZSgpIHVzZXMgJEhPTUUgaW5zdGVhZCBvZiAiaG9tZWRpciIuIChDZXNhciBNYXJ0aW5zLCAyMDE4IEF1ZyA5KQogCiBXaGVuIHRoZSBzdGF0dXMgbGluZSB1c2VzIHRlcm1fZ2V0dGl0bGUoKSwgaXQgZG9lcyBub3QgZ2V0IHVwZGF0ZWQgd2hlbiB0aGUKQEAgLTIzMyw2ICsyMzgsOSBAQAogV2hlbiB0aGUgbGFzdCBsaW5lIHdyYXBzLCBzZWxlY3Rpbmcgd2l0aCB0aGUgbW91c2UgYmVsb3cgdGhhdCBsaW5lIG9ubHkKIGluY2x1ZGVzIHRoZSBmaXJzdCBzY3JlZW4gbGluZS4gKDIwMTggQXVnIDIzLCAjMzM2OCkKIAorQWRkIGA6ZmlsdGVyYCBzdXBwb3J0IGZvciB2YXJpb3VzIGNvbW1hbmRzIChNYXJjaW4gU3phbW90dWxza2ksIDIwMTcgTm92IDEyCisjMjMyMikgIFBhdGNoIG5vdyBpbiAjMjg1Ni4KKwogUmVmYWN0b3JlZCBIVE1MIGluZGVudCBmaWxlLiAoTWljaGFlbCBMZWUsICMxODIxKQogCiBQYXRjaCB0byBhZGQgZ2V0cmVncG9pbnQoKSBhbmQgc2V0cmVnKCkgd2l0aCBhbiBvcHRpb24gdG8gc2V0ICIiLgpAQCAtMjYwLDYgKzI2OCwxMSBAQAogCiAnZm9sZHRleHQnIGlzIGV2YWx1YXRlZCB0b28gb2Z0ZW4uIChEYW5pZWwgSGFobGVyLCAjMjc3MykKIAorbWxfZ2V0IGVycm9yIHdoZW4gdXNpbmcgYSBQeXRob24gc2NyaXB0LiAoWWdnZHJvb3QsIDIwMTcgSnVuIDEsICMxNzM3KQorTGVtb25ib3kgY2FuIHJlcHJvZHVjZSAoMjAxNyBKdW4gNSkKK0Fsc28gcmVwcm9kdWNlZCBieSBCZW5qYW1pbiBEb2hlcnR5LCAyMDE4IE9jdCA0LgorU2ltcGxlciB3YXk6IEtlbiBUYWthdGEsIE9jdCA2LgorCiBIZWlnaHQgb2YgcXVpY2tmaXggd2luZG93IGlzIG5vdCByZXRhaW5lZCB3aXRoIHZlcnRpY2FsIHNwbGl0cy4gKExpZmVwaWxsYXIsCiAyMDE4IEF1ZyAyNCwgIzI5OTgpCiAKQEAgLTI3NSw2ICsyODgsOSBAQAogd2luZG93cyB3aXRoIGl0KS4gIENhbiB3ZSBqdXN0IHJlbW92ZSB0aGUganVtcCBsaXN0IGVudHJpZXMgZm9yIHRoZSBxdWlja2ZpeAogYnVmZmVyPwogCitQYXRjaCB0byBmaXggdGhhdCBleGVjdXRhYmxlKCkgbWF5IGZhaWwgb24gdmVyeSBsb25nIGZpbGVuYW1lIGluIE1TLVdpbmRvd3MuCisoS2VuIFRha2F0YSwgMjAxNiBGZWIgMSwgdXBkYXRlIDIwMTggT2N0IDcpCisKIFBhdGNoIHRvIGJlIGFibGUgdG8gdXNlIGhleCBudW1iZXJzIHdpdGggOmRpZ3JhcGguIChMY2QsIDIwMTUgU2VwIDYpCiBVcGRhdGUgU2VwIDcuICBVcGRhdGUgYnkgQ2hyaXN0aWFuIEJyYWJhbmR0LCAyMDE1IFNlcCA4LCAyMDE2IEZlYiAxLgogCkBAIC0yOTIsOSArMzA4LDYgQEAKIE1heWJlIGNhbGwgaXQgdjptb3Rpb250eXBlLiAgVXBkYXRlIGluICMzNDkwKQogQWx0ZXJuYWl0dmU6IGFkZCB0aGUgZm9yY2UgZmxhZyB0byBtb2RlKCksIGFmdGVyICJubyIuCiAKLVBhdGNoIHRvIGZpeCB0aGF0IGV4ZWN1dGFibGUoKSBtYXkgZmFpbCBvbiB2ZXJ5IGxvbmcgZmlsZW5hbWUgaW4gTVMtV2luZG93cy4KLShLZW4gVGFrYXRhLCAyMDE2IEZlYiAxKQotCiBUcnkgb3V0IGJhY2tncm91bmQgbWFrZSBwbHVnaW46IAogICBodHRwczovL2dpdGh1Yi5jb20vQW5kcmV3Vm9zL3ZpbS1tYWtlLWJhY2tncm91bmQKIG9yIGFzeW5jbWFrZTogCkBAIC00NTAsOSArNDYzLDYgQEAKIGRpcmVjdG9yeSAoUGF1bG8gTWFyY2VsIENvZWxobyBBcmFiaWMsIDIwMTcgT2N0IDMwLCAjMjI2NikKIEFsc28gc2VlICMxNjg5LgogCi1tbF9nZXQgZXJyb3Igd2hlbiB1c2luZyBhIFB5dGhvbiBzY3JpcHQuIChZZ2dkcm9vdCwgMjAxNyBKdW4gMSwgIzE3MzcpCi1MZW1vbmJveSBjYW4gcmVwcm9kdWNlICgyMDE3IEp1biA1KQotCiBjcmFzaCB3aGVuIHJlbW92aW5nIGFuIGVsZW1lbnQgd2hpbGUgaW5zaWRlIG1hcCgpLiAoTmlrb2xhaSBQYXZsb3YsIDIwMTggRmViCiAxNywgIzI2NTIpCiAKQEAgLTYzNiw5ICs2NDYsNiBAQAogUHJvZmlsZSBvZiBhIGRpY3QgZnVuY3Rpb24gaXMgbG9zdCB3aGVuIHRoZSBkaWN0IGlzIGRlbGV0ZWQuICBXb3VsZCBpdCBiZQogcG9zc2libGUgdG8gY29sbGVjdCB0aGlzPyAgKERhbmllbCBIYWhsZXIsICMyMzUwKQogCi1BZGQgYDpmaWx0ZXJgIHN1cHBvcnQgZm9yIHZhcmlvdXMgY29tbWFuZHMgKE1hcmNpbiBTemFtb3R1bHNraSwgMjAxNyBOb3YgMTIKLSMyMzIyKSAgUGF0Y2ggbm93IGluICMyODU2LgotCiBXaGVuIGNoZWNraW5nIGlmIGEgYnVmcmVmIGlzIHZhbGlkLCBhbHNvIGNoZWNrIHRoZSBidWZmZXIgbnVtYmVyLCB0byBjYXRjaCB0aGUKIGNhc2Ugb2YgOmJ3aXBlIGZvbGxvd2VkIGJ5IDpuZXcuCiAKQEAgLTI0MTIsOSArMjQxOSw2IEBACiBCdWcgaW4gdXNpbmcgYSB0cmFuc3BhcmVudCBzeW50YXggcmVnaW9uLiAoSGFubGVuIGluIHZpbS1kZXYgbWFpbGxpc3QsIDIwMDcKIEp1bCAzMSkKIAotQyBzeW50YXg6IHt9IGluc2lkZSAoKSBjYXVzZXMgZm9sbG93aW5nIHt9IHRvIGJlIGhpZ2hsaWdodGVkIGFzIGVycm9yLgotKE1pY2hhbGlzIEdpYW5uYWtpZGlzLCAyMDA2IEp1biAxKQotCiBXaGVuICdkaWZmb3B0JyBoYXMgImNvbnRleHQ6MCIgYSBzaW5nbGUgZGVsZXRlZCBsaW5lIGNhdXNlcyB0d28gZm9sZHMgdG8gbWVyZ2UKIGFuZCBtZXNzIHVwIHN5bmNpbmcuIChBdXN0aW4gSmVubmluZ3MsIDIwMDggSmFuIDMxKQogCkBAIC0yODc3LDggKzI4ODEsNiBAQAogLSAgIEFub3RoZXIgcGF0Y2ggZm9yIEphdmFzY3JpcHQgaW5kZW50aW5nLiAoSGFyaSBLdW1hciwgMjAxMCBKdWwgMTEpCiAgICAgTmVlZHMgYSBmZXcgdGVzdHMuCiAtICAgQWRkICdjc2NvcGVpZ25vcmVjYXNlJyBvcHRpb24uIChMaWFuZyBXZW56aGksIDIwMDYgU2VwdCAzKQotLSAgIExvYWQgaW50bC5kbGwgdG9vLCBub3Qgb25seSBsaWJpbnRsLmRsbC4gKE1pa2UgV2lsbGlhbXMsIDIwMDYgTWF5IDksIGRvY3MKLSAgICBwYXRjaCBNYXkgMTApCiAtICAgRXh0cmEgYXJndW1lbnQgdG8gc3RydHJhbnMoKSB0byB0cmFuc2xhdGUgc3BlY2lhbCBrZXlzIHRvIHRoZWlyIG5hbWUgKEVyaWMKICAgICBBcm5vbGQsIDIwMDYgTWF5IDIyKQogLSAgICd0aHJlZ2xvb2tleHAnIG9wdGlvbjogb25seSBtYXRjaCB3aXRoIGZpcnN0IHdvcmQgaW4gdGhlc2F1cnVzIGZpbGUuCkBAIC01NTc0LDkgKzU1NzYsNiBAQAogICAgIHRoYXQgbWFya3MgaWYgdGhlIG9wdGlvbiB3YXMgc2V0LiAgVXNlZnVsIHRvIGtlZXAgdGhlIGVmZmVjdCBvZiBzZXR0aW5nCiAgICAgJ2NvbXBhdGlibGUnIGFmdGVyICI6c3ludGF4IG9uIiBoYXMgYmVlbiB1c2VkLgogNyAgIFRoZXJlIGlzICd0aXRsZW9sZCcsIHdoeSBpcyB0aGVyZSBubyAnaWNvbm9sZCc/IChDaGF6ZWxhcykKLTcgICBNYWtlICdzY3JvbGxvZmYnIGEgZ2xvYmFsLWxvY2FsIG9wdGlvbiwgc28gdGhhdCBpdCBjYW4gYmUgZGlmZmVyZW50IGluIHRoZQotICAgIHF1aWNrZml4IHdpbmRvdywgZm9yIGV4YW1wbGUuIChHYXJ5IEhvbGxvd2F5KQotICAgIEFsc28gZG8gJ3NpZGVzY3JvbGxvZmYnLgogCiAKIEV4dGVybmFsIGNvbW1hbmRzOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9pbmRlbnQvcHl0aG9uLnZpbSBiL3J1bnRpbWUvaW5kZW50L3B5dGhvbi52aW0KaW5kZXggNGNlM2MyMy4uN2FiM2NiOSAxMDA2NDQKLS0tIGEvcnVudGltZS9pbmRlbnQvcHl0aG9uLnZpbQorKysgYi9ydW50aW1lL2luZGVudC9weXRob24udmltCkBAIC01Myw2ICs1MywxMSBAQAogICAgIHJldHVybiAwCiAgIGVuZGlmCiAKKyAgIiBzZWFyY2hwYWlyKCkgY2FuIGJlIHNsb3cgc29tZXRpbWVzLCBsaW1pdCB0aGUgdGltZSB0byAxMDAgbXNlYyBvciB3aGF0IGlzCisgICIgcHV0IGluIGc6cHlpbmRlbnRfc2VhcmNocGFpcl90aW1lb3V0CisgIGxldCBzZWFyY2hwYWlyX3N0b3BsaW5lID0gMAorICBsZXQgc2VhcmNocGFpcl90aW1lb3V0ID0gZ2V0KGc6LCAncHlpbmRlbnRfc2VhcmNocGFpcl90aW1lb3V0JywgMTUwKQorCiAgICIgSWYgdGhlIHByZXZpb3VzIGxpbmUgaXMgaW5zaWRlIHBhcmVudGhlc2lzLCB1c2UgdGhlIGluZGVudCBvZiB0aGUgc3RhcnRpbmcKICAgIiBsaW5lLgogICAiIFRyaWNrOiB1c2UgdGhlIG5vbi1leGlzdGluZyAiZHVtbXkiIHZhcmlhYmxlIHRvIGJyZWFrIG91dCBvZiB0aGUgbG9vcCB3aGVuCkBAIC02MSw3ICs2Niw4IEBACiAgIGxldCBwYXJsbnVtID0gc2VhcmNocGFpcignKFx8e1x8XFsnLCAnJywgJylcfH1cfFxdJywgJ25iVycsCiAJICBcICJsaW5lKCcuJykgPCAiIC4gKHBsbnVtIC0gczptYXhvZmYpIC4gIiA/IGR1bW15IDoiCiAJICBcIC4gIiBzeW5JRGF0dHIoc3luSUQobGluZSgnLicpLCBjb2woJy4nKSwgMSksICduYW1lJykiCi0JICBcIC4gIiA9fiAnXFwoQ29tbWVudFxcfFRvZG9cXHxTdHJpbmdcXCkkJyIpCisJICBcIC4gIiA9fiAnXFwoQ29tbWVudFxcfFRvZG9cXHxTdHJpbmdcXCkkJyIsCisJICBcIHNlYXJjaHBhaXJfc3RvcGxpbmUsIHNlYXJjaHBhaXJfdGltZW91dCkKICAgaWYgcGFybG51bSA+IDAKICAgICBsZXQgcGxpbmRlbnQgPSBpbmRlbnQocGFybG51bSkKICAgICBsZXQgcGxudW1zdGFydCA9IHBhcmxudW0KQEAgLTgwLDE0ICs4NiwxNiBAQAogICBsZXQgcCA9IHNlYXJjaHBhaXIoJyhcfHtcfFxbJywgJycsICcpXHx9XHxcXScsICdiVycsCiAJICBcICJsaW5lKCcuJykgPCAiIC4gKGE6bG51bSAtIHM6bWF4b2ZmKSAuICIgPyBkdW1teSA6IgogCSAgXCAuICIgc3luSURhdHRyKHN5bklEKGxpbmUoJy4nKSwgY29sKCcuJyksIDEpLCAnbmFtZScpIgotCSAgXCAuICIgPX4gJ1xcKENvbW1lbnRcXHxUb2RvXFx8U3RyaW5nXFwpJCciKQorCSAgXCAuICIgPX4gJ1xcKENvbW1lbnRcXHxUb2RvXFx8U3RyaW5nXFwpJCciLAorCSAgXCBzZWFyY2hwYWlyX3N0b3BsaW5lLCBzZWFyY2hwYWlyX3RpbWVvdXQpCiAgIGlmIHAgPiAwCiAgICAgaWYgcCA9PSBwbG51bQogICAgICAgIiBXaGVuIHRoZSBzdGFydCBpcyBpbnNpZGUgcGFyZW50aGVzaXMsIG9ubHkgaW5kZW50IG9uZSAnc2hpZnR3aWR0aCcuCiAgICAgICBsZXQgcHAgPSBzZWFyY2hwYWlyKCcoXHx7XHxcWycsICcnLCAnKVx8fVx8XF0nLCAnYlcnLAogCSAgXCAibGluZSgnLicpIDwgIiAuIChhOmxudW0gLSBzOm1heG9mZikgLiAiID8gZHVtbXkgOiIKIAkgIFwgLiAiIHN5bklEYXR0cihzeW5JRChsaW5lKCcuJyksIGNvbCgnLicpLCAxKSwgJ25hbWUnKSIKLQkgIFwgLiAiID1+ICdcXChDb21tZW50XFx8VG9kb1xcfFN0cmluZ1xcKSQnIikKKwkgIFwgLiAiID1+ICdcXChDb21tZW50XFx8VG9kb1xcfFN0cmluZ1xcKSQnIiwKKwkgIFwgc2VhcmNocGFpcl9zdG9wbGluZSwgc2VhcmNocGFpcl90aW1lb3V0KQogICAgICAgaWYgcHAgPiAwCiAJcmV0dXJuIGluZGVudChwbG51bSkgKyAoZXhpc3RzKCJnOnB5aW5kZW50X25lc3RlZF9wYXJlbiIpID8gZXZhbChnOnB5aW5kZW50X25lc3RlZF9wYXJlbikgOiBzaGlmdHdpZHRoKCkpCiAgICAgICBlbmRpZgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvbmFtZWQudmltIGIvcnVudGltZS9zeW50YXgvbmFtZWQudmltCmluZGV4IGE1NzU3ZDUuLjIxMGQzODcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L25hbWVkLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9uYW1lZC52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJQklORCBjb25maWd1cmF0aW9uIGZpbGUKICIgTWFpbnRhaW5lcjoJTmljayBIaWJtYSA8bmlja0B2YW4tbGFhcmhvdmVuLm9yZz4KLSIgTGFzdCBjaGFuZ2U6CTIwMDctMDEtMzAKKyIgTGFzdCBDaGFuZ2U6CTIwMDctMDEtMzAKICIgRmlsZW5hbWVzOgluYW1lZC5jb25mLCBybmRjLmNvbmYKICIgTG9jYXRpb246CWh0dHA6Ly93d3cudmFuLWxhYXJob3Zlbi5vcmcvdmltL3N5bnRheC9uYW1lZC52aW0KICIKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L25zaXMudmltIGIvcnVudGltZS9zeW50YXgvbnNpcy52aW0KaW5kZXggZjZkNWNhYi4uMzM4OTc3MSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvbnNpcy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvbnNpcy52aW0KQEAgLTMsNyArMyw3IEBACiAiIE1haW50YWluZXI6CQlLZW4gVGFrYXRhCiAiIFVSTDoJCQlodHRwczovL2dpdGh1Yi5jb20vay10YWthdGEvdmltLW5zaXMKICIgUHJldmlvdXMgTWFpbnRhaW5lcjoJQWxleCBKYWt1c2hldiA8QWxleC5KYWt1c2hldkBrZW1lay5sdD4KLSIgTGFzdCBDaGFuZ2U6CQkyMDE4LTAyLTA3CisiIExhc3QgQ2hhbmdlOgkJMjAxOC0xMC0wMgogCiAiIHF1aXQgd2hlbiBhIHN5bnRheCBmaWxlIHdhcyBhbHJlYWR5IGxvYWRlZAogaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKQEAgLTEwNCw4ICsxMDQsOCBAQAogc3luIG1hdGNoIG5zaXNTeXNWYXIJCSIkXFxbIidgXSIKIAogIkxBQkVMUyAoNC4zKQotc3luIG1hdGNoIG5zaXNMb2NhbExhYmVsCWNvbnRhaW5lZCAiW14tKyEkMC05OyMuIFx0LypdW14gXHQ6OyNdKjpcemVcJSgkXHxbIFx0OyNdXHxcL1wqXCkiCi1zeW4gbWF0Y2ggbnNpc0dsb2JhbExhYmVsCWNvbnRhaW5lZCAiXC5bXi0rISQwLTk7IyBcdC8qXVteIFx0OjsjXSo6XHplXCUoJFx8WyBcdDsjXVx8XC9cKlwpIgorc3luIG1hdGNoIG5zaXNMb2NhbExhYmVsCWNvbnRhaW5lZCAiW14tKyEkMC05OyInIy4gXHQvKl1bXiBcdDo7I10qOlx6ZVwlKCRcfFsgXHQ7I11cfFwvXCpcKSIKK3N5biBtYXRjaCBuc2lzR2xvYmFsTGFiZWwJY29udGFpbmVkICJcLlteLSshJDAtOTsiJyMgXHQvKl1bXiBcdDo7I10qOlx6ZVwlKCRcfFsgXHQ7I11cfFwvXCpcKSIKIAogIkNPTlNUQU5UUwogc3luIGtleXdvcmQgbnNpc0Jvb2xlYW4JCWNvbnRhaW5lZCB0cnVlIGZhbHNlCmRpZmYgLS1naXQgYS9ydW50aW1lL3R1dG9yL3R1dG9yLmRlIGIvcnVudGltZS90dXRvci90dXRvci5kZQppbmRleCA3MjU1YWViLi45Mjk4OGI2IDEwMDY0NAotLS0gYS9ydW50aW1lL3R1dG9yL3R1dG9yLmRlCisrKyBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZGUKQEAgLTkwNSw3ICs5MDUsNyBAQAogCiAgIDEuIFN0ZWxsZSBzaWNoZXIsIGRhc3MgVmltIG5pY2h0IGltIFZpLUtvbXBhdGliaWxpdOR0c21vZHVzIGlzdDogIDpzZXQgbm9jcAogCi0gIDIuIFNpZWhlIG5hY2gsIHdlbGNoZSBEYXRlaWVuIGltIFZlcnplaWNobmlzIGV4aXN0aWVyZW46ICA6IWxzICBvZGVyICA6ZGlyCisgIDIuIFNpZWhlIG5hY2gsIHdlbGNoZSBEYXRlaWVuIGltIFZlcnplaWNobmlzIGV4aXN0aWVyZW46ICA6IWxzICBvZGVyICA6IWRpcgogCiAgIDMuIFRpcHBlIGRlbiBCZWdpbm4gZWluZXMgS29tbWFuZG9zOiAgOmUKIApkaWZmIC0tZ2l0IGEvcnVudGltZS90dXRvci90dXRvci5kZS51dGYtOCBiL3J1bnRpbWUvdHV0b3IvdHV0b3IuZGUudXRmLTgKaW5kZXggZmU3YTU5MC4uMjgzNTUwYSAxMDA2NDQKLS0tIGEvcnVudGltZS90dXRvci90dXRvci5kZS51dGYtOAorKysgYi9ydW50aW1lL3R1dG9yL3R1dG9yLmRlLnV0Zi04CkBAIC05MDUsNyArOTA1LDcgQEAKIAogICAxLiBTdGVsbGUgc2ljaGVyLCBkYXNzIFZpbSBuaWNodCBpbSBWaS1Lb21wYXRpYmlsaXTDpHRzbW9kdXMgaXN0OiAgOnNldCBub2NwCiAKLSAgMi4gU2llaGUgbmFjaCwgd2VsY2hlIERhdGVpZW4gaW0gVmVyemVpY2huaXMgZXhpc3RpZXJlbjogIDohbHMgIG9kZXIgIDpkaXIKKyAgMi4gU2llaGUgbmFjaCwgd2VsY2hlIERhdGVpZW4gaW0gVmVyemVpY2huaXMgZXhpc3RpZXJlbjogIDohbHMgIG9kZXIgIDohZGlyCiAKICAgMy4gVGlwcGUgZGVuIEJlZ2lubiBlaW5lcyBLb21tYW5kb3M6ICA6ZQogCg==