ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkZDFlOGQxLi4wNTQyMWVmIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDcgKzEsOSBAQAotMjAwMi0wMS0wNiAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgorMjAwMi0wMS0wNyAgRGF2aWQgVHVybmVyICA8ZGF2aWRAZnJlZXR5cGUub3JnPgogCiAgICAgICAgICogZG9jcy9CVUdTLCBkb2NzL0NIQU5HRVM6IHVwZGF0aW5nIGRvY3VtZW50YXRpb24gZm9yIDIuMC42IHJlbGVhc2UKIAorICAgICAgICAqIHNyYy90b29scy9kb2NtYWtlci5weTogZml4ZWQgSFRNTCBxdW90aW5nIGluIHNvdXJjZXMKKwogICAgICAgICAqIGluY2x1ZGUvZnJlZXR5cGUvY29uZmlnL2Z0b3B0aW9uLmg6IHNldHRpbmcgZGVmYXVsdCBvcHRpb25zIGZvcgogICAgICAgICBhIHJlbGVhc2UgYnVpbGQgKGRlYnVnZ2luZyBvZmYsIGJ5dGVjb2RlIGludGVycHJldGVyIG9mZikKIApkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL2RvY21ha2VyLnB5IGIvc3JjL3Rvb2xzL2RvY21ha2VyLnB5CmluZGV4IGEyMGYyMmIuLmE4MThkMWEgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9kb2NtYWtlci5weQorKysgYi9zcmMvdG9vbHMvZG9jbWFrZXIucHkKQEAgLTE3MSwxMiArMTcxLDE3IEBACiAjIFRyYW5zbGF0ZSBhIHNpbmdsZSBsaW5lIG9mIHNvdXJjZSB0byBIVE1MLiAgVGhpcyB3aWxsIGNvbnZlcnQKICMgYSAiPCIgaW50byAiJmx0LiIsICI+IiBpbnRvICImZ3QuIiwgZXRjLgogIwotZGVmIGh0bWxfZm9ybWF0KCBsaW5lICk6Ci0gICAgcmVzdWx0ID0gc3RyaW5nLnJlcGxhY2UoIGxpbmUsICI8IiwgIiZsdC4iICkKLSAgICByZXN1bHQgPSBzdHJpbmcucmVwbGFjZSggbGluZSwgIj4iLCAiJmd0LiIgKQotICAgIHJlc3VsdCA9IHN0cmluZy5yZXBsYWNlKCBsaW5lLCAiJiIsICImYW1wLiIgKQorZGVmIGh0bWxfcXVvdGUoIGxpbmUgKToKKyAgICByZXN1bHQgPSBzdHJpbmcucmVwbGFjZSggbGluZSwgICAiJiIsICImYW1wOyIgKQorICAgIHJlc3VsdCA9IHN0cmluZy5yZXBsYWNlKCByZXN1bHQsICI8IiwgIiZsdDsiICkKKyAgICByZXN1bHQgPSBzdHJpbmcucmVwbGFjZSggcmVzdWx0LCAiPiIsICImZ3Q7IiApCiAgICAgcmV0dXJuIHJlc3VsdAogCisjIHNhbWUgYXMgJ2h0bWxfcXVvdGUnLCBidXQgaWdub3JlcyBsZWZ0IGFuZCByaWdodCBicmFja2V0cworIworZGVmIGh0bWxfcXVvdGUwKCBsaW5lICk6CisgICAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKCBsaW5lLCAiJiIsICImYW1wOyIgKQorCiAKICMgT3BlbiB0aGUgc3RhbmRhcmQgb3V0cHV0IHRvIGEgZ2l2ZW4gcHJvamVjdCBkb2N1bWVudGF0aW9uIGZpbGUuICBVc2UKICMgIm91dHB1dF9kaXIiIHRvIGRldGVybWluZSB0aGUgZmlsZW5hbWUgbG9jYXRpb24gaWYgbmVjZXNzYXJ5IGFuZCBzYXZlIHRoZQpAQCAtMzU1LDEwICszNjAsMTAgQEAKICAgICAgICAgIyBUaGUgY29kZSBmb290ZXIgc2hvdWxkIGJlIGRpcmVjdGx5IGFwcGVuZGVkIHRvIHRoZSBsYXN0IGNvZGUKICAgICAgICAgIyBsaW5lIHRvIGF2b2lkIGFuIGFkZGl0aW9uYWwgYmxhbmsgbGluZS4KICAgICAgICAgIwotICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCBjb2RlX2hlYWRlciApCisgICAgICAgIHByaW50IGNvZGVfaGVhZGVyLAogICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmxpbmVzWzAgOiBsKzFdOgotICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSggJ1xuJyArIGh0bWxfZm9ybWF0KGxpbmUpICkKLSAgICAgICAgc3lzLnN0ZG91dC53cml0ZSggY29kZV9mb290ZXIgKQorICAgICAgICAgICAgcHJpbnQgJ1xuJyArIGh0bWxfcXVvdGUobGluZSksCisgICAgICAgIHByaW50IGNvZGVfZm9vdGVyLAogCiAKIApAQCAtNDM1LDcgKzQ0MCw3IEBACiAgICAgICAgICAgICAgICAgICAgIHdvcmQgPSAnPycgKyB3b3JkCiAKICAgICAgICAgICAgIGlmIGN1cnNvciArIGxlbiggd29yZCApICsgMSA+IG1heF93aWR0aDoKLSAgICAgICAgICAgICAgICBwcmludCBodG1sX2Zvcm1hdCggbGluZSApCisgICAgICAgICAgICAgICAgcHJpbnQgaHRtbF9xdW90ZTAobGluZSkKICAgICAgICAgICAgICAgICBjdXJzb3IgPSAwCiAgICAgICAgICAgICAgICAgbGluZSAgID0gIiIKIApAQCAtNDUxLDcgKzQ1Niw3IEBACiAgICAgICAgICAgICAjCiAgICAgICAgICAgICBpZiBleHRyYToKICAgICAgICAgICAgICAgICBpZiBjdXJzb3IgKyBsZW4oIGV4dHJhICkgKyAxID4gbWF4X3dpZHRoOgotICAgICAgICAgICAgICAgICAgICBwcmludCBodG1sX2Zvcm1hdCggbGluZSApCisgICAgICAgICAgICAgICAgICAgIHByaW50IGh0bWxfcXVvdGUwKGxpbmUpCiAgICAgICAgICAgICAgICAgICAgIGN1cnNvciA9IDAKICAgICAgICAgICAgICAgICAgICAgbGluZSAgID0gIiIKIApAQCAtNDYwLDcgKzQ2NSw3IEBACiAgICAgICAgICAgICAgICAgZXh0cmEgID0gTm9uZQogCiAgICAgICAgIGlmIGN1cnNvciA+IDA6Ci0gICAgICAgICAgICBwcmludCBodG1sX2Zvcm1hdChsaW5lKQorICAgICAgICAgICAgcHJpbnQgaHRtbF9xdW90ZTAobGluZSkKIAogICAgICAgICAjIHByaW50ICKnIiAjIGZvciBkZWJ1Z2dpbmcgb25seQogCkBAIC04NzcsNyArODgyLDcgQEAKICAgICAgICAgcHJpbnQgc291cmNlX2hlYWRlcgogICAgICAgICBwcmludCAiIgogICAgICAgICBmb3IgbGluZSBpbiBsaW5lc1swIDogbCsxXToKLSAgICAgICAgICAgIHByaW50IGxpbmUKKyAgICAgICAgICAgIHByaW50IGh0bWxfcXVvdGUobGluZSkKICAgICAgICAgcHJpbnQgc291cmNlX2Zvb3RlcgogCiAgICAgICAgIGluX3RhYmxlID0gMAo=