ZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvbmV0cndGaWxlSGFuZGxlcnMudmltIGIvcnVudGltZS9hdXRvbG9hZC9uZXRyd0ZpbGVIYW5kbGVycy52aW0KaW5kZXggYmFkNmQ4MS4uY2Q2ZGU2NiAxMDA2NDQKLS0tIGEvcnVudGltZS9hdXRvbG9hZC9uZXRyd0ZpbGVIYW5kbGVycy52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC9uZXRyd0ZpbGVIYW5kbGVycy52aW0KQEAgLTEsOCArMSw4IEBACiAiIG5ldHJ3RmlsZUhhbmRsZXJzOiBjb250YWlucyB2YXJpb3VzIGV4dGVuc2lvbi1iYXNlZCBmaWxlIGhhbmRsZXJzIGZvcgogIiAgICAgICAgICAgICAgICAgICAgbmV0cncncyBicm93c2VycycgeCBjb21tYW5kICgiZVhlY3V0ZSBsYXVuY2hlciIpCiAiIEF1dGhvcjoJQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCi0iIERhdGU6CQlGZWIgMTUsIDIwMDYKLSIgVmVyc2lvbjoJOGEJQVNUUk8tT05MWQorIiBEYXRlOgkJTWFyIDIyLCAyMDA2CisiIFZlcnNpb246CTgKICIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwNSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4ge3t7MQogIiAgICAgICAgICAgICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgdG8gdXNlIGFuZCBkaXN0cmlidXRlIHRoaXMgY29kZSwKICIgICAgICAgICAgICAgICB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgcHJvdmlkZWQgdGhhdCB0aGlzIGNvcHlyaWdodApAQCAtMjIsNyArMjIsNyBAQAogZW5kaWYKIGxldCBzOmtlZXBjcG89ICZjcG8KIHNldCBjcG8mdmltCi1sZXQgZzpsb2FkZWRfbmV0cndGaWxlSGFuZGxlcnM9ICJ2OGEiCitsZXQgZzpsb2FkZWRfbmV0cndGaWxlSGFuZGxlcnM9ICJ2OCIKIAogIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICIgbmV0cndGaWxlSGFuZGxlcnMjSW52b2tlOiB7e3syCmRpZmYgLS1naXQgYS9ydW50aW1lL2F1dG9sb2FkL25ldHJ3U2V0dGluZ3MudmltIGIvcnVudGltZS9hdXRvbG9hZC9uZXRyd1NldHRpbmdzLnZpbQppbmRleCBlOGQ2YmQyLi5mNTFhMzI4IDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL25ldHJ3U2V0dGluZ3MudmltCisrKyBiL3J1bnRpbWUvYXV0b2xvYWQvbmV0cndTZXR0aW5ncy52aW0KQEAgLTEsNyArMSw3IEBACiAiIG5ldHJ3U2V0dGluZ3MudmltOiBtYWtlcyBuZXRydyBzZXR0aW5ncyBzaW1wbGVyCi0iIERhdGU6CQlKYW4gMjYsIDIwMDYKKyIgRGF0ZToJCU1hciAyMiwgMjAwNgogIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxkcmNoaXBOT1NQQU0gYXQgY2FtcGJlbGxmYW1pbHkgZG90IGJpej4KLSIgVmVyc2lvbjoJNmEJQVNUUk8tT05MWQorIiBWZXJzaW9uOgk2CiAiIENvcHlyaWdodDogICAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDUgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIHt7ezEKICIgICAgICAgICAgICAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIHRvIHVzZSBhbmQgZGlzdHJpYnV0ZSB0aGlzIGNvZGUsCiAiICAgICAgICAgICAgICAgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIHByb3ZpZGVkIHRoYXQgdGhpcyBjb3B5cmlnaHQKQEAgLTE5LDcgKzE5LDcgQEAKIGlmIGV4aXN0cygiZzpsb2FkZWRfbmV0cndTZXR0aW5ncyIpIHx8ICZjcAogICBmaW5pc2gKIGVuZGlmCi1sZXQgZzpsb2FkZWRfbmV0cndTZXR0aW5ncyAgPSAidjZhIgorbGV0IGc6bG9hZGVkX25ldHJ3U2V0dGluZ3MgID0gInY2IgogCiAiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIiBOZXRyd1NldHRpbmdzOiB7e3sxCkBAIC01NiwxMCArNTYsMTAgQEAKICAgIGxldCBnOm5ldHJ3X2lnbm9yZW5ldHJjPSAwCiAgIGVuZGlmCiAKLSAgcHV0ID0nKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLScKLSAgcHV0ID0nKyBOZXRyd1NldHRpbmdzOiAgYnkgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuJwotICBwdXQgPScrICBQcmVzcyA/IHdpdGggY3Vyc29yIGF0b3AgYW55IGxpbmUgZm9yIGhlbHAgICcKLSAgcHV0ID0nKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLScKKyAgcHV0ID0nKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0nCisgIHB1dCA9JysgIE5ldHJ3U2V0dGluZ3M6ICBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4nCisgIHB1dCA9JysgUHJlc3MgPEYxPiB3aXRoIGN1cnNvciBhdG9wIGFueSBsaW5lIGZvciBoZWxwJworICBwdXQgPScrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLScKICAgbGV0IHM6bmV0cndfc2V0dGluZ3Nfc3RvcD0gbGluZSgiLiIpCiAKICAgcHV0ID0nJwpAQCAtMTMyLDcgKzEzMiw3IEBACiAKICAgc2V0IG5vbW9kCiAKLSAgbWFwIDxidWZmZXI+IDxzaWxlbnQ+ID8gOmNhbGwgTmV0cndTZXR0aW5nSGVscCgpPGNyPgorICBtYXAgPGJ1ZmZlcj4gPHNpbGVudD4gPEYxPiA6Y2FsbCBOZXRyd1NldHRpbmdIZWxwKCk8Y3I+CiAgIGxldCB0bXBmaWxlPSB0ZW1wbmFtZSgpCiAgIGV4ZSAnYXUgQnVmV3JpdGVDbWQJTmV0cndcIFNldHRpbmdzCXNpbGVudCB3ISAnLnRtcGZpbGUuJ3xzbyAnLnRtcGZpbGUuJ3xjYWxsIGRlbGV0ZSgiJy50bXBmaWxlLiciKXxzZXQgbm9tb2QnCiBlbmRmdW4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvYXV0b2xvYWQvemlwLnZpbSBiL3J1bnRpbWUvYXV0b2xvYWQvemlwLnZpbQppbmRleCBiZTM5NzQwLi4yMjQzZWE4IDEwMDY0NAotLS0gYS9ydW50aW1lL2F1dG9sb2FkL3ppcC52aW0KKysrIGIvcnVudGltZS9hdXRvbG9hZC96aXAudmltCkBAIC0xLDcgKzEsNyBAQAogIiB6aXAudmltOiBIYW5kbGVzIGJyb3dzaW5nIHppcGZpbGVzCiAiICAgICAgICAgICAgQVVUT0xPQUQgUE9SVElPTgotIiBEYXRlOgkJCURlYyAyMSwgMjAwNQotIiBWZXJzaW9uOgkJNgorIiBEYXRlOgkJCU1hciAyMiwgMjAwNgorIiBWZXJzaW9uOgkJNwogIiBNYWludGFpbmVyOglDaGFybGVzIEUgQ2FtcGJlbGwsIEpyIDxkcmNoaXBOT1NQQU0gYXQgY2FtcGJlbGxmYW1pbHkgZG90IGJpej4KICIgTGljZW5zZToJCVZpbSBMaWNlbnNlICAoc2VlIHZpbSdzIDpoZWxwIGxpY2Vuc2UpCiAiIENvcHlyaWdodDogICAgQ29weXJpZ2h0IChDKSAyMDA1IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLiB7e3sxCkBAIC0yMiw3ICsyMiw4IEBACiAgZmluaXNoCiBlbmRpZgogCi1sZXQgZzpsb2FkZWRfemlwPSAidjYiCitsZXQgZzpsb2FkZWRfemlwICAgICA9ICJ2NyIKK2xldCBzOnppcGZpbGVfZXNjYXBlID0gJyA/JjtcJwogCiAiIC0tLS0tLS0tLS0tLS0tLS0KICIgIEZ1bmN0aW9uczoge3t7MQpAQCAtNTMsNiArNTQsNyBAQAogIiAgIGNhbGwgRHJldCgiemlwI0Jyb3dzZSA6IGZpbGU8Ii5hOnppcGZpbGUuIj4gbm90IHJlYWRhYmxlIikKICAgIHJldHVybgogICBlbmRpZgorIiAgY2FsbCBEZWNobygicGFzc2VkIHNhbml0eSBjaGVja3MiKQogICBpZiAmbWEgIT0gMQogICAgc2V0IG1hCiAgIGVuZGlmCkBAIC03Myw3ICs3NSw4IEBACiAgIDBkCiAgICQKIAotICBleGUgInNpbGVudCByISB1bnppcCAtbCAiLmE6emlwZmlsZQorICBjYWxsIERlY2hvKCJleGUgc2lsZW50IHIhIHVuemlwIC1sICciLmVzY2FwZShhOnppcGZpbGUsczp6aXBmaWxlX2VzY2FwZSkuIiciKQorICBleGUgInNpbGVudCByISB1bnppcCAtbCAnIi5lc2NhcGUoYTp6aXBmaWxlLHM6emlwZmlsZV9lc2NhcGUpLiInIgogICAkZAogICBzaWxlbnQgNCwkdi9eXHNcK1xkXCtcc1x7MCw1fVxkL2QKICAgc2lsZW50ICA0LCRzL15cJSguKlwpXHNcK1woXFNcKS9cMS8KQEAgLTExMSwxMiArMTE0LDE1IEBACiAKICAgIiBnZXQgemlwZmlsZSB0byB0aGUgbmV3LXdpbmRvdwogICBsZXQgemlwZmlsZT0gc3Vic3RpdHV0ZSh3OnppcGZpbGUsJy56aXAkJywnJywnZScpCi0gIGxldCBjdXJmaWxlPSBleHBhbmQoIiUiKQorICBsZXQgY3VyZmlsZT0gZXNjYXBlKGV4cGFuZCgiJSIpLHM6emlwZmlsZV9lc2NhcGUpCisiICBjYWxsIERlY2hvKCJ6aXBmaWxlPCIuemlwZmlsZS4iPiIpCisiICBjYWxsIERlY2hvKCJjdXJmaWxlPCIuY3VyZmlsZS4iPiIpCiAKICAgbmV3CiAgIHdpbmNtZCBfCiAgIGxldCBzOnppcGZpbGVfe3dpbm5yKCl9PSBjdXJmaWxlCi0gIGV4ZSAiZSB6aXBmaWxlOiIuemlwZmlsZS4nOicuZm5hbWUKKyIgIGNhbGwgRGVjaG8oImV4ZSBlIHppcGZpbGU6Ii5lc2NhcGUoemlwZmlsZSxzOnppcGZpbGVfZXNjYXBlKS4nOicuZm5hbWUpCisgIGV4ZSAiZSB6aXBmaWxlOiIuZXNjYXBlKHppcGZpbGUsczp6aXBmaWxlX2VzY2FwZSkuJzonLmZuYW1lCiAgIGZpbGV0eXBlIGRldGVjdAogCiAgIGxldCAmcmVwb3J0PSByZXBrZWVwCkBAIC0xMzAsMTEgKzEzNiwxMiBAQAogICBsZXQgcmVwa2VlcD0gJnJlcG9ydAogICBzZXQgcmVwb3J0PTEwCiAKLSAgbGV0IHppcGZpbGUgPSBzdWJzdGl0dXRlKGE6Zm5hbWUsJ3ppcGZpbGU6XCguXHstfVwpOi4qJCcsJ1wxJywnJykKLSAgbGV0IGZuYW1lICAgPSBzdWJzdGl0dXRlKGE6Zm5hbWUsJ3ppcGZpbGU6Llx7LX06XCguKlwpJCcsJ1wxJywnJykKKyAgbGV0IHppcGZpbGUgPSBzdWJzdGl0dXRlKGE6Zm5hbWUsJ3ppcGZpbGU6XCguXHstfVwpOlteXFxdLiokJywnXDEnLCcnKQorICBsZXQgZm5hbWUgICA9IHN1YnN0aXR1dGUoYTpmbmFtZSwnemlwZmlsZTouXHstfTpcKFteXFxdLipcKSQnLCdcMScsJycpCiAiICBjYWxsIERlY2hvKCJ6aXBmaWxlPCIuemlwZmlsZS4iPiBmbmFtZTwiLmZuYW1lLiI+IikKIAotICBleGUgInIhIHVuemlwIC1wICIuemlwZmlsZS4iICIuZm5hbWUKKyIgIGNhbGwgRGVjaG8oImV4ZSByISB1bnppcCAtcCAnIi5lc2NhcGUoemlwZmlsZSxzOnppcGZpbGVfZXNjYXBlKS4iJyAiLmZuYW1lKQorICBleGUgInIhIHVuemlwIC1wICciLmVzY2FwZSh6aXBmaWxlLHM6emlwZmlsZV9lc2NhcGUpLiInICIuZm5hbWUKIAogICAiIGNsZWFudXAKICAgMGQKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggMTgzNDJiOC4uYjI1YTg4ZSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDIxCisqZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDYgTWFyIDIyCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zNTkxLDcgKzM1OTEsNyBAQAogCQlUaGlzIGNhbiBiZSB1c2VkIHRvIHNhdmUgYW5kIHJlc3RvcmUgdGhlIGN1cnNvciBwb3NpdGlvbjogPgogCQkJbGV0IHNhdmVfY3Vyc29yID0gZ2V0cG9zKCIuIikKIAkJCU1vdmVUaGVDdXJzb3JBcm91bmQKLQkJCWNhbGwgc2V0cG9zKHNhdmVfY3Vyc29yKQorCQkJY2FsbCBzZXRwb3MoJy4nLCBzYXZlX2N1cnNvcikKIDwJCUFsc28gc2VlIHxzZXRwb3MoKXwuCiAKIHByZXZub25ibGFuayh7bG51bX0pCQkJCQkqcHJldm5vbmJsYW5rKCkqCkBAIC00MjI1LDYgKzQyMjUsNyBAQAogCQl0aGUgY3VycmVudCBidWZmZXIuICBUbyBzZXQgYSBtYXJrIGluIGFub3RoZXIgYnVmZmVyIHlvdSBjYW4KIAkJdXNlIHRoZSB8YnVmbnIoKXwgZnVuY3Rpb24gdG8gdHVybiBhIGZpbGUgbmFtZSBpbnRvIGEgYnVmZmVyCiAJCW51bWJlci4KKwkJRG9lcyBub3QgY2hhbmdlIHRoZSBqdW1wbGlzdC4KIAogCQkibG51bSIgYW5kICJjb2wiIGFyZSB0aGUgcG9zaXRpb24gaW4gdGhlIGJ1ZmZlci4gIFRoZSBmaXJzdAogCQljb2x1bW4gaXMgMS4gIFVzZSBhIHplcm8gImxudW0iIHRvIGRlbGV0ZSBhIG1hcmsuCkBAIC00OTE4LDggKzQ5MTksOCBAQAogCQlUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSBhIG1hcHBpbmcgdGhhdCBqdW1wcyBhcm91bmQgaW4gdGhlCiAJCWJ1ZmZlciBhbmQgeW91IHdhbnQgdG8gZ28gYmFjayB0byB0aGUgb3JpZ2luYWwgdmlldy4KIAkJVGhpcyBkb2VzIG5vdCBzYXZlIGZvbGQgaW5mb3JtYXRpb24uICBVc2UgdGhlICdmb2xkZW5hYmxlJwotCQlvcHRpb24gdG8gdGVtcG9yYXJpbHkgc3dpdGNoIG9mIGZvbGRpbmcsIHNvIHRoYXQgZm9sZHMgYXJlIG5vdAotCQlvcGVuZWQgd2hlbiBtb3ZpbmcgYXJvdW5kLgorCQlvcHRpb24gdG8gdGVtcG9yYXJpbHkgc3dpdGNoIG9mZiBmb2xkaW5nLCBzbyB0aGF0IGZvbGRzIGFyZQorCQlub3Qgb3BlbmVkIHdoZW4gbW92aW5nIGFyb3VuZC4KIAkJVGhlIHJldHVybiB2YWx1ZSBpbmNsdWRlczoKIAkJCWxudW0JCWN1cnNvciBsaW5lIG51bWJlcgogCQkJY29sCQljdXJzb3IgY29sdW1uCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9maWxldHlwZS50eHQgYi9ydW50aW1lL2RvYy9maWxldHlwZS50eHQKaW5kZXggM2E4YjE2NC4uNzc4YjYzOSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZmlsZXR5cGUudHh0CisrKyBiL3J1bnRpbWUvZG9jL2ZpbGV0eXBlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpmaWxldHlwZS50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMDkKKypmaWxldHlwZS50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTE0OCw2ICsxNDgsNyBAQAogCSouaQkJZzpmaWxldHlwZV9pCXxmdC1wcm9ncmVzcy1zeW50YXh8CiAJKi5wCQlnOmZpbGV0eXBlX3AJfGZ0LXBhc2NhbC1zeW50YXh8CiAJKi5zaAkJZzpiYXNoX2lzX3NoCXxmdC1zaC1zeW50YXh8CisJKi50ZXgJCWc6dGV4X2ZsYXZvcgl8ZnQtdGV4LXBsdWdpbnwKIAogCQkJCQkJCSpmaWxldHlwZS1pZ25vcmUqCiBUbyBhdm9pZCB0aGF0IGNlcnRhaW4gZmlsZXMgYXJlIGJlaW5nIGluc3BlY3RlZCwgdGhlIGc6ZnRfaWdub3JlX3BhdCB2YXJpYWJsZQpAQCAtNTQyLDQgKzU0MywxNiBAQAogZmlsZTogfHNxbC50eHR8LgogCiAKK1RFWAkJCQkJCQkqZnQtdGV4LXBsdWdpbioKKworSWYgdGhlIGZpcnN0IGxpbmUgb2YgYSAqLnRleCBmaWxlIGhhcyB0aGUgZm9ybSA+CisJJSY8Zm9ybWF0PgordGhlbiB0aGlzIGRldGVybWluZWQgdGhlIGZpbGUgdHlwZTogIHBsYWludGV4IChmb3IgcGxhaW4gVGVYKSwgY29udGV4dCAoZm9yCitDb25UZVh0KSwgb3IgdGV4IChmb3IgTGFUZVgpLiAgT3RoZXJ3aXNlLCB0aGUgZmlsZSBpcyBzZWFyY2hlZCBmb3Iga2V5d29yZHMgdG8KK2Nob29zZSBjb250ZXh0IG9yIHRleC4gIElmIG5vIGtleXdvcmRzIGFyZSBmb3VuZCwgaXQgZGVmYXVsdHMgdG8gdGV4LiAgWW91IGNhbgorY2hhbmdlIHRoZSBkZWZhdWx0IGJ5IGRlZmluaW5nIHRoZSB2YXJpYWJsZSBnOnRleF9mbGF2b3IgdG8gdGhlIGZvcm1hdCAobm90Cit0aGUgZmlsZSB0eXBlKSB5b3UgdXNlIG1vc3Q6ICBwbGFpbiBvciBjb250ZXh0IG9yIGxhdGV4LiAgKEN1cnJlbnRseSBubyBvdGhlcgorZm9ybWF0cyBhcmUgcmVjb2duaXplZC4pCisKKwogIHZpbTp0dz03ODp0cz04OmZ0PWhlbHA6bm9ybDoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3F1aWNrZml4LnR4dCBiL3J1bnRpbWUvZG9jL3F1aWNrZml4LnR4dAppbmRleCA0ODE0YTA5Li44MWEzODIyIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9xdWlja2ZpeC50eHQKKysrIGIvcnVudGltZS9kb2MvcXVpY2tmaXgudHh0CkBAIC0xLDQgKzEsNCBAQAotKnF1aWNrZml4LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyMAorKnF1aWNrZml4LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyMwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTg5LDYgKzE4OSwxNSBAQAogOmxiW3VmZmVyXSBbYnVmbnJdCVNhbWUgYXMgIjpjYnVmZmVyIiwgZXhjZXB0IHRoZSBsb2NhdGlvbiBsaXN0IGZvciB0aGUKIAkJCWN1cnJlbnQgd2luZG93IGlzIHVzZWQgaW5zdGVhZCBvZiB0aGUgcXVpY2tmaXggbGlzdC4KIAorCQkJCQkJKjpjZ2V0YiogKjpjZ2V0YnVmZmVyKgorOmNnZXRiW3VmZmVyXSBbYnVmbnJdCVJlYWQgdGhlIGVycm9yIGxpc3QgZnJvbSB0aGUgY3VycmVudCBidWZmZXIuICBKdXN0CisJCQlsaWtlICI6Y2J1ZmZlciIgYnV0IGRvbid0IGp1bXAgdG8gdGhlIGZpcnN0IGVycm9yLgorCisJCQkJCQkqOmxnZXRiKiAqOmxnZXRidWZmZXIqCis6bGdldGJbdWZmZXJdIFtidWZucl0JU2FtZSBhcyAiOmNnZXRidWZmZXIiLCBleGNlcHQgdGhlIGxvY2F0aW9uIGxpc3QgZm9yCisJCQl0aGUgY3VycmVudCB3aW5kb3cgaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZSBxdWlja2ZpeAorCQkJbGlzdC4KKwogCQkJCQkJCSo6Y2FkZGIqICo6Y2FkZGJ1ZmZlcioKIDpjYWRkYlt1ZmZlcl0gW2J1Zm5yXQlSZWFkIHRoZSBlcnJvciBsaXN0IGZyb20gdGhlIGN1cnJlbnQgYnVmZmVyIGFuZCBhZGQKIAkJCXRoZSBlcnJvcnMgdG8gdGhlIGN1cnJlbnQgcXVpY2tmaXggbGlzdC4gIElmIGEKQEAgLTIzMSw2ICsyNDAsMTQgQEAKIDpsYWRbZGV4cHJdWyFdIHtleHByfQlTYW1lIGFzICI6Y2FkZGV4cHIiLCBleGNlcHQgdGhlIGxvY2F0aW9uIGxpc3QgZm9yIHRoZQogCQkJY3VycmVudCB3aW5kb3cgaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZSBxdWlja2ZpeCBsaXN0LgogCisJCQkJCQkJKjpjZ2V0ZSogKjpjZ2V0ZXhwcioKKzpjZ2V0ZVt4cHJdWyFdIHtleHByfQlDcmVhdGUgYSBxdWlja2ZpeCBsaXN0IHVzaW5nIHRoZSByZXN1bHQgb2Yge2V4cHJ9LgorCQkJSnVzdCBsaWtlICI6Y2V4cHIiLCBidXQgZG9uJ3QganVtcCB0byB0aGUgZmlyc3QgZXJyb3IuCisKKwkJCQkJCQkqOmxnZXRlKiAqOmxnZXRleHByKgorOmxnZXRlW3hwcl1bIV0ge2V4cHJ9CVNhbWUgYXMgIjpjZ2V0ZXhwciIsIGV4Y2VwdCB0aGUgbG9jYXRpb24gbGlzdCBmb3IgdGhlCisJCQljdXJyZW50IHdpbmRvdyBpcyB1c2VkIGluc3RlYWQgb2YgdGhlIHF1aWNrZml4IGxpc3QuCisKIAkJCQkJCQkqOmNsKiAqOmNsaXN0KgogOmNsW2lzdF0gW2Zyb21dIFssIFt0b11dCiAJCQlMaXN0IGFsbCBlcnJvcnMgdGhhdCBhcmUgdmFsaWQgfHF1aWNrZml4LXZhbGlkfC4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RhZ3MgYi9ydW50aW1lL2RvYy90YWdzCmluZGV4IDRkNmNjNjMuLjVhODA4NmYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RhZ3MKKysrIGIvcnVudGltZS9kb2MvdGFncwpAQCAtMTg0OSw2ICsxODQ5LDEwIEBACiA6Y2ZpcglxdWlja2ZpeC50eHQJLyo6Y2ZpcioKIDpjZmlyc3QJcXVpY2tmaXgudHh0CS8qOmNmaXJzdCoKIDpjZwlxdWlja2ZpeC50eHQJLyo6Y2cqCis6Y2dldGIJcXVpY2tmaXgudHh0CS8qOmNnZXRiKgorOmNnZXRidWZmZXIJcXVpY2tmaXgudHh0CS8qOmNnZXRidWZmZXIqCis6Y2dldGUJcXVpY2tmaXgudHh0CS8qOmNnZXRlKgorOmNnZXRleHByCXF1aWNrZml4LnR4dAkvKjpjZ2V0ZXhwcioKIDpjZ2V0ZmlsZQlxdWlja2ZpeC50eHQJLyo6Y2dldGZpbGUqCiA6Y2gJY2hhbmdlLnR4dAkvKjpjaCoKIDpjaGFuZ2UJY2hhbmdlLnR4dAkvKjpjaGFuZ2UqCkBAIC0yMTg4LDYgKzIxOTIsMTAgQEAKIDpsZmlyCXF1aWNrZml4LnR4dAkvKjpsZmlyKgogOmxmaXJzdAlxdWlja2ZpeC50eHQJLyo6bGZpcnN0KgogOmxnCXF1aWNrZml4LnR4dAkvKjpsZyoKKzpsZ2V0YglxdWlja2ZpeC50eHQJLyo6bGdldGIqCis6bGdldGJ1ZmZlcglxdWlja2ZpeC50eHQJLyo6bGdldGJ1ZmZlcioKKzpsZ2V0ZQlxdWlja2ZpeC50eHQJLyo6bGdldGUqCis6bGdldGV4cHIJcXVpY2tmaXgudHh0CS8qOmxnZXRleHByKgogOmxnZXRmaWxlCXF1aWNrZml4LnR4dAkvKjpsZ2V0ZmlsZSoKIDpsZ3IJcXVpY2tmaXgudHh0CS8qOmxncioKIDpsZ3JlcAlxdWlja2ZpeC50eHQJLyo6bGdyZXAqCkBAIC01Mjk5LDYgKzUzMDcsNyBAQAogZnQtc3ludGF4LW9tbmkJaW5zZXJ0LnR4dAkvKmZ0LXN5bnRheC1vbW5pKgogZnQtdGNzaC1zeW50YXgJc3ludGF4LnR4dAkvKmZ0LXRjc2gtc3ludGF4KgogZnQtdGVybWNhcC1zeW50YXgJc3ludGF4LnR4dAkvKmZ0LXRlcm1jYXAtc3ludGF4KgorZnQtdGV4LXBsdWdpbglmaWxldHlwZS50eHQJLypmdC10ZXgtcGx1Z2luKgogZnQtdGV4LXN5bnRheAlzeW50YXgudHh0CS8qZnQtdGV4LXN5bnRheCoKIGZ0LXRmLXN5bnRheAlzeW50YXgudHh0CS8qZnQtdGYtc3ludGF4KgogZnQtdmItc3ludGF4CXN5bnRheC50eHQJLypmdC12Yi1zeW50YXgqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy90b2RvLnR4dCBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CmluZGV4IGZhYWYyYjIuLjIyZDA2MDggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3RvZG8udHh0CisrKyBiL3J1bnRpbWUvZG9jL3RvZG8udHh0CkBAIC0xLDQgKzEsNCBAQAotKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyMQorKnRvZG8udHh0KiAgICAgIEZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAyMwogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zMCwxMSArMzAsOCBAQAogCQkJCQkJCSprbm93bi1idWdzKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0gS25vd24gYnVncyBhbmQgY3VycmVudCB3b3JrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUhUTUwgaW5kZW50aW5nIGNhbiBiZSBzbG93LCBmaW5kIG91dCB3aHkuCi0KLUFkanVzdCBzcmMvbWFpbi5hYXAgZm9yIGluc3RhbGxpbmcgbWFucGFnZXMgbGlrZSBpbiBNYWtlZmlsZS4KLSAgICBBbmQgZm9yIGdlbmVyYXRpbmcgVmltLmFwcCBmb3IgdGhlIE1hYy4KLSAgICBJbnN0YWxsIHNwZWxsIGZpbGVzIHdpdGggc3JjL21haW4uYWFwLgorSW5jbHVkZSBwYXRjaCBmb3IgcmVjb2duaXppbmcgVGVYIGZsYXZvci4gKEJlbmppIEZpc2hlcikKK0FuZCBuZXcgdGV4LnZpbSBhbmQgcGxhaW50ZXgudmltLgogCiBXaW4zMjogRGVzY3JpYmUgaG93IHRvIGRvIGRlYnVnZ2luZy4gKEdlb3JnZSBSZWlsbHkpCiAKQEAgLTUwLDYgKzQ3LDEyIEBACiBEYXJyZW4gaXMgaW5jbHVkaW5nIHRoZSBwYXRjaCBpbiBjdGFncy4gIFRlc3QgaXQgd2hlbiBpdCdzIHJlYWR5LiAgQ2hhbmdlCiAidHlwZW5hbWUiIHRvICJ0eXBlcmVmIiBpbiBDIGNvbXBsZXRlIGNvZGUuCiAKK0hUTUwgaW5kZW50aW5nIGNhbiBiZSBzbG93LiAgQ2F1c2VkIGJ5IHVzaW5nIHNlYXJjaHBhaXIoKS4gIENhbiBzZWFyY2goKSBiZQordXNlZCBpbnN0ZWFkPworCitjY29tcGxldGU6IHVzZSAic2lnbmF0dXJlOiIgZmllbGQgZnJvbSB0YWdzIGZpbGUgd2hlbiBpdCdzIHByZXNlbnQuCitPciBsaXN0IGFsbCB0aGUgZmllbGRzPyAoTWFydGluIFN0dWJlbnNjaHJvdHQpCisKIEFkZCBtb3JlIHRlc3RzIGZvciBhbGwgbmV3IGZ1bmN0aW9uYWxpdHkgaW4gVmltIDcuICBFc3BlY2lhbGx5IG5ldyBmdW5jdGlvbnMuCiAKIEFkZCB0ZXh0IGluIHVzZXIgbWFudWFsIGZvciB1c2luZyB0aGUgdW5kbyB0cmVlLiAgRXhhbXBsZSB3aXRoIGZpbmRpbmcgdGhlCkBAIC0xMTI5LDcgKzExMzIsNyBAQAogICAgIG1lYW5zIHRoZSBjb21wb3VuZCBmbGFncyBvZiB0aGUgd29yZCBhcmUgbm90IHVzZWQuCiAgICAgSW5zdGVhZCBvZiAiU0ZYIGEgMCBhZGQvRkxBR1MgLiIgd2UgY291bGQgdXNlICJTRlggYSAwIGFkZCAuIC9GTEFHUyIgKG9yCiAgICAgc3VwcG9ydCBib3RoKS4KLS0gICBTdXBwb3J0IGJyZWFrcG9pbnQgY2hhcmFjdGVyILcgMHhiNyBhbmQgaWdub3JlIGl0PyAgTWFrZXMgaXQgcG9zc2libGUgdG8KKy0gICBTdXBwb3J0IGJyZWFrcG9pbnQgY2hhcmFjdGVyID8gMHhiNyBhbmQgaWdub3JlIGl0PyAgTWFrZXMgaXQgcG9zc2libGUgdG8KICAgICB1c2Ugc2FtZSB3b3JkbGlzdCBmb3IgaHlwaGVuYXRpb24uCiAtICAgQ29tcG91bmQgd29yZCBpcyBhY2NlcHRlZCBpZiBuciBvZiB3b3JkcyBpcyA8PSBDT01QT1VORE1BWCBPUiBuciBvZgogICAgIHN5bGxhYmxlcyA8PSBDT01QT1VORFNZTE1BWC4gIFNwZWNpZnkgdXNpbmcgQU5EIGluIHRoZSBhZmZpeCBmaWxlPwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmFyaW91cy50eHQgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAppbmRleCAzOTMwNTQxLi5lM2U4NjU1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy92YXJpb3VzLnR4dAorKysgYi9ydW50aW1lL2RvYy92YXJpb3VzLnR4dApAQCAtNzU2LDYgKzc1NiwxMyBAQAogZmlsZXMuICBWaW0gd2lsbCBzZWFyY2ggZm9yIGFsbCBoZWxwIGluICJkb2MiIGRpcmVjdG9yaWVzIGluICdydW50aW1lcGF0aCcuCiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aCB0aGUgfCttdWx0aV9sYW5nfCBmZWF0dXJlLgogCitBdCB0aGlzIG1vbWVudCB0cmFuc2xhdGlvbnMgYXJlIGF2YWlsYWJsZSBmb3I6CisJQ2hpbmVzZSAtIG11bHRpcGxlIGF1dGhvcnMKKwlGcmVuY2ggIC0gdHJhbnNsYXRlZCBieSBEYXZpZCBCbGFuY2hldAorCUl0YWxpYW4gLSB0cmFuc2xhdGVkIGJ5IEFudG9uaW8gQ29sb21ibworCVJ1c3NpYW4gLSB0cmFuc2xhdGVkIGJ5IFZhc3NpbHkgUmFnb3NpbgorU2VlIHRoZSBWaW0gd2Vic2l0ZSB0byBmaW5kIHRoZW06IGh0dHA6Ly93d3cudmltLm9yZy90cmFuc2xhdGlvbnMucGhwCisKIEEgc2V0IG9mIHRyYW5zbGF0ZWQgaGVscCBmaWxlcyBjb25zaXN0cyBvZiB0aGVzZSBmaWxlczoKIAogCWhlbHAuYWJ4CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKaW5kZXggMDVlZDdkMi4uNzc3ZGZmMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjEKKyp2ZXJzaW9uNy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjMKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTYwOSwyNCArNjA5LDI3IEBACiAKIHw6dml1c2FnZXwJCUhlbHAgZm9yIFZpIGNvbW1hbmRzIChOdmkgY29tbWFuZCkuCiAKLXw6Y2J1ZmZlcnwJCVJlYWQgZXJyb3IgbGluZXMgZnJvbSBhIGJ1ZmZlci4gKHBhcnRseSBieSBZZWdhcHBhbgotCQkJTGFrc2htYW5hbikKLQogfDpzb3J0fAkJCVNvcnQgbGluZXMgaW4gdGhlIGJ1ZmZlciB3aXRob3V0IGRlcGVuZGluZyBvbiBhbgogCQkJZXh0ZXJuYWwgY29tbWFuZC4KIAogfDpjYWRkZmlsZXwJCUFkZCBlcnJvciBtZXNzYWdlcyB0byBhbiBleGlzdGluZyBxdWlja2ZpeCBsaXN0CiAJCQkoWWVnYXBwYW4gTGFrc2htYW5hbikuCi0KLXw6Y2V4cHJ8CQlSZWFkIGVycm9yIG1lc3NhZ2VzIGZyb20gYSBWaW0gZXhwcmVzc2lvbiAoWWVnYXBwYW4KLQkJCUxha3NobWFuYW4pLgotCi18OmNhZGRleHByfAkJQWRkIGVycm9yIG1lc3NhZ2VzIGZyb20gYSBWaW0gZXhwcmVzc2lvbiB0byBhbgotCQkJZXhpc3RpbmcgcXVpY2tmaXggbGlzdC4gKFllZ2FwcGFuIExha3NobWFuYW4pLgorfDpjYnVmZmVyfAkJUmVhZCBlcnJvciBsaW5lcyBmcm9tIGEgYnVmZmVyLiAocGFydGx5IGJ5IFllZ2FwcGFuCisJCQlMYWtzaG1hbmFuKQorfDpjZ2V0YnVmZmVyfAkJQ3JlYXRlIGEgcXVpY2tmaXggbGlzdCBmcm9tIGEgYnVmZmVyIGJ1dCBkb24ndCBqdW1wIHRvCisJCQl0aGUgZmlyc3QgZXJyb3IuCiB8OmNhZGRidWZmZXJ8CQlBZGQgZXJyb3JzIGZyb20gdGhlIGN1cnJlbnQgYnVmZmVyIHRvIHRoZSBxdWlja2ZpeAogCQkJbGlzdC4KK3w6Y2V4cHJ8CQlSZWFkIGVycm9yIG1lc3NhZ2VzIGZyb20gYSBWaW0gZXhwcmVzc2lvbiAoWWVnYXBwYW4KKwkJCUxha3NobWFuYW4pLgorfDpjYWRkZXhwcnwJCUFkZCBlcnJvciBtZXNzYWdlcyBmcm9tIGEgVmltIGV4cHJlc3Npb24gdG8gYW4KKwkJCWV4aXN0aW5nIHF1aWNrZml4IGxpc3QuIChZZWdhcHBhbiBMYWtzaG1hbmFuKS4KK3w6Y2dldGV4cHJ8CQlDcmVhdGUgYSBxdWlja2ZpeCBsaXN0IGZyb20gYSBWaW0gZXhwcmVzc2lvbiwgYnV0CisJCQlkb24ndCBqdW1wIHRvIHRoZSBmaXJzdCBlcnJvci4gKFllZ2FwcGFuIExha3NobWFuYW4pLgogCiB8OmxmaWxlfAkJTGlrZSB8OmNmaWxlfCBidXQgdXNlIHRoZSBsb2NhdGlvbiBsaXN0LgorfDpsZ2V0YnVmZmVyfAkJTGlrZSB8OmNnZXRidWZmZXJ8IGJ1dCB1c2UgdGhlIGxvY2F0aW9uIGxpc3QuCit8OmxnZXRleHByfAkJTGlrZSB8OmNnZXRleHByfCBidXQgdXNlIHRoZSBsb2NhdGlvbiBsaXN0LgogfDpsZ2V0ZmlsZXwJCUxpa2UgfDpjZ2V0ZmlsZXwgYnV0IHVzZSB0aGUgbG9jYXRpb24gbGlzdC4KIHw6bGFkZGZpbGV8CQlMaWtlIHw6Y2FkZGZpbGV8IGJ1dCB1c2UgdGhlIGxvY2F0aW9uIGxpc3QuCiB8OmxidWZmZXJ8CQlMaWtlIHw6Y2J1ZmZlcnwgYnV0IHVzZSB0aGUgbG9jYXRpb24gbGlzdC4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZmlsZXR5cGUudmltIGIvcnVudGltZS9maWxldHlwZS52aW0KaW5kZXggZjI0NWVlYy4uMmFiMDk4NyAxMDA2NDQKLS0tIGEvcnVudGltZS9maWxldHlwZS52aW0KKysrIGIvcnVudGltZS9maWxldHlwZS52aW0KQEAgLTEsNyArMSw3IEBACiAiIFZpbSBzdXBwb3J0IGZpbGUgdG8gZGV0ZWN0IGZpbGUgdHlwZXMKICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDYgTWFyIDIxCisiIExhc3QgQ2hhbmdlOgkyMDA2IE1hciAyMwogCiAiIExpc3RlbiB2ZXJ5IGNhcmVmdWxseSwgSSB3aWxsIHNheSB0aGlzIG9ubHkgb25jZQogaWYgZXhpc3RzKCJkaWRfbG9hZF9maWxldHlwZXMiKQpAQCAtNjM4LDcgKzYzOCw3IEBACiAiIEhUTUwgKC5zaHRtbCBhbmQgLnN0bSBmb3Igc2VydmVyIHNpZGUpCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5odG1sLCouaHRtLCouc2h0bWwsKi5zdG0gIGNhbGwgczpGVGh0bWwoKQogCi0iIERpc3Rpbmd1aXNoIGJldHdlZW4gSFRNTCBhbmQgWEhUTUwKKyIgRGlzdGluZ3Vpc2ggYmV0d2VlbiBIVE1MLCBYSFRNTCBhbmQgRGphbmdvCiBmdW4hIHM6RlRodG1sKCkKICAgbGV0IG4gPSAxCiAgIHdoaWxlIG4gPCAxMCAmJiBuIDwgbGluZSgiJCIpCkBAIC02NDYsNiArNjQ2LDEwIEBACiAgICAgICBzZXRmIHhodG1sCiAgICAgICByZXR1cm4KICAgICBlbmRpZgorICAgIGlmIGdldGxpbmUobikgPX4gJ3slXHMqXChleHRlbmRzXHxibG9ja1wpXD4nCisgICAgICBzZXRmIGh0bWxkamFuZ28KKyAgICAgIHJldHVybgorICAgIGVuZGlmCiAgICAgbGV0IG4gPSBuICsgMQogICBlbmR3aGlsZQogICBzZXRmIGh0bWwKZGlmZiAtLWdpdCBhL3J1bnRpbWUva2V5bWFwL2dyZWVrX2NwNzM3LnZpbSBiL3J1bnRpbWUva2V5bWFwL2dyZWVrX2NwNzM3LnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDExMTRlCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9rZXltYXAvZ3JlZWtfY3A3MzcudmltCkBAIC0wLDAgKzEsMTA0IEBACisiIFZpbSBLZXltYXAgZmlsZSBmb3IgZ3JlZWsgRE9TIGNwNzM3CisiIE1haW50YWluZXI6IFBhbmFnaW90aXMgTG91cmlkYXMgPGxvdXJpZGFzQGFjbS5vcmc+CisiIExhc3QgVXBkYXRlZDogVGh1IE1hciAyMyAxNDowNTo0NSBFRVQgMjAwNgorCisiIFRoaXMga2V5Ym9hcmQgbGF5b3V0IGFsbG93cyBhbGwgR3JlZWsgc3ltYm9scyB0byBiZSB0eXBlZCwKKyIgaW5jbHVkaW5nIGFjY2VudGVkIGNhcGl0YWxzIGFuZCBkaWFlcmVzaXMuIEl0IGRvZXMgbm90CisiIGluY2x1ZGUgZGlhZXJlc2lzIGFuZCBhY2NlbnQgb24gdGhlIHNhbWUgdm93ZWwsIG5vcgorIiB0aGUgZ3JlZWsgcXVvdGVzLCBhcyB0aGVzZSB3ZXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgY29kZXBhZ2UuIAorIiBJdCBpbmNsdWRlcyB0aGUgR3JlZWsgc2VtaWNvbG9uIHNpZ24uCisKKyIKKyIgYWNjZW50CQkJIjsiICsgbGV0dGVyCisiIGRpYWVyZXNpcwkJCSI6IiArIGxldHRlcgorIiBkaWFlcmVzaXMgKyBhY2NlbnQJCSI7IiArICI6IiAob3IgIjoiICsgIjsiKSArIGxldHRlcgorIiBzZW1pY29sb24JCQkicSIKKyIgY29sb24JCQkJIlEiCisiIGdyZWVrIHNlbWljb2xvbgkJIlciCisiIHNpZ21hIGF0IGVuZCBvZiB3b3JkCQkidyIKKworIiBVc2UgdGhpcyBzaG9ydCBuYW1lIGluIHRoZSBzdGF0dXMgbGluZS4KK2xldCBiOmtleW1hcF9uYW1lID0gImdyZWVrIgorCitsb2Fka2V5bWFwCisiIGNhcGl0YWwKK0EJPGNoYXItMTI4PgkiIIAKK0IJPGNoYXItMTI5PgkiIIEKK0cJPGNoYXItMTMwPgkiIIIKK0QJPGNoYXItMTMxPgkiIIMKK0UJPGNoYXItMTMyPgkiIIQKK1oJPGNoYXItMTMzPgkiIIUKK0gJPGNoYXItMTM0PgkiIIYKK1UJPGNoYXItMTM1PgkiIIcKK0kJPGNoYXItMTM2PgkiIIgKK0sJPGNoYXItMTM3PgkiIIkKK0wJPGNoYXItMTM4PgkiIIoKK00JPGNoYXItMTM5PgkiIIsKK04JPGNoYXItMTQwPgkiIIwKK0oJPGNoYXItMTQxPgkiII0KK08JPGNoYXItMTQyPgkiII4KK1AJPGNoYXItMTQzPgkiII8KK1IJPGNoYXItMTQ0PgkiIJAKK1MJPGNoYXItMTQ1PgkiIJEKK1QJPGNoYXItMTQ2PgkiIJIKK1kJPGNoYXItMTQ3PgkiIJMKK0YJPGNoYXItMTQ4PgkiIJQKK1gJPGNoYXItMTQ5PgkiIJUKK0MJPGNoYXItMTUwPgkiIJYKK1YJPGNoYXItMTUxPgkiIJcKKworIiBzbWFsbAorYQk8Y2hhci0xNTI+CSIgmAorYgk8Y2hhci0xNTM+CSIgmQorZwk8Y2hhci0xNTQ+CSIgmgorZAk8Y2hhci0xNTU+CSIgmworZQk8Y2hhci0xNTY+CSIgnAoregk8Y2hhci0xNTc+CSIgnQoraAk8Y2hhci0xNTg+CSIgngordQk8Y2hhci0xNTk+CSIgnworaQk8Y2hhci0xNjA+CSIgoAorawk8Y2hhci0xNjE+CSIgoQorbAk8Y2hhci0xNjI+CSIgogorbQk8Y2hhci0xNjM+CSIgoworbgk8Y2hhci0xNjQ+CSIgpAoragk8Y2hhci0xNjU+CSIgpQorbwk8Y2hhci0xNjY+CSIgpgorcAk8Y2hhci0xNjc+CSIgpworcgk8Y2hhci0xNjg+CSIgqAorcwk8Y2hhci0xNjk+CSIgqQordwk8Y2hhci0xNzA+CSIgqgordAk8Y2hhci0xNzE+CSIgqworeQk8Y2hhci0xNzI+CSIgrAorZgk8Y2hhci0xNzM+CSIgrQoreAk8Y2hhci0xNzQ+CSIgrgorYwk8Y2hhci0xNzU+CSIgrwordgk8Y2hhci0yMjQ+CSIg4AorCisiIGFjY2VudGVkIGNhcGl0YWwKKztBCTxjaGFyLTIzND4JIiDqCis7RQk8Y2hhci0yMzU+CSIg6worO0gJPGNoYXItMjM2PgkiIOwKKztJCTxjaGFyLTIzNz4JIiDtCis7Twk8Y2hhci0yMzg+CSIg7gorO1kJPGNoYXItMjM5PgkiIO8KKztWCTxjaGFyLTI0MD4JIiDwCisiCis6SQk8Y2hhci0yNDQ+CSIg9AorOlkJPGNoYXItMjQ1PgkiIPUKKworIiBhY2NlbnRlZCBzbWFsbAorO2EJPGNoYXItMjI1PgkiIOEKKztlCTxjaGFyLTIyNj4JIiDiCis7aAk8Y2hhci0yMjc+CSIg4worO2kJPGNoYXItMjI5PgkiIOUKKztvCTxjaGFyLTIzMD4JIiDmCis7eQk8Y2hhci0yMzE+CSIg5worO3YJPGNoYXItMjMzPgkiIOkKKyIKKzppCTxjaGFyLTIyOD4JIiDkCis6eQk8Y2hhci0yMzI+CSIg6AorIgorIiBzeW1ib2xzCitxCTsJCSIgOworUQk6CQkiIDoKK1cJPGNoYXItMjUwPgkiIPoKZGlmZiAtLWdpdCBhL3J1bnRpbWUvcGx1Z2luL3ZpbWJhbGwudmltIGIvcnVudGltZS9wbHVnaW4vdmltYmFsbC52aW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5ZDJlZTEuLjAwMDAwMDAKLS0tIGEvcnVudGltZS9wbHVnaW4vdmltYmFsbC52aW0KKysrIC9kZXYvbnVsbApAQCAtMSwyNTYgKzAsMCBAQAotIiB2aW1iYWxsIDogY29uc3RydWN0IGEgZmlsZSBjb250YWluaW5nIGJvdGggcGF0aHMgYW5kIGZpbGVzCi0iIEF1dGhvcjogQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuCi0iIERhdGU6ICAgTWFyIDIwLCAyMDA2Ci0iIFZlcnNpb246IDMKLSIgR2V0TGF0ZXN0VmltU2NyaXB0czogMTUwMiAxIDpBdXRvSW5zdGFsbDogdmltYmFsbC52aW0KLSIgQ29weXJpZ2h0OiAoYykgMjAwNC0yMDA2IGJ5IENoYXJsZXMgRS4gQ2FtcGJlbGwsIEpyLgotIiAgICAgICAgICAgIFRoZSBWSU0gTElDRU5TRSBhcHBsaWVzIHRvIFZpbWJhbGwudmltLCBhbmQgVmltYmFsbC50eHQKLSIgICAgICAgICAgICAoc2VlIHxjb3B5cmlnaHR8KSBleGNlcHQgdXNlICJWaW1iYWxsIiBpbnN0ZWFkIG9mICJWaW0iLgotIiAgICAgICAgICAgIE5vIHdhcnJhbnR5LCBleHByZXNzIG9yIGltcGxpZWQuCi0iICAqKiogKioqICAgVXNlIEF0LVlvdXItT3duLVJpc2shICAgKioqICoqKgotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiAgTG9hZCBPbmNlOiB7e3sxCi1pZiAmY3AgfHwgZXhpc3RzKCJnOmxvYWRlZF92aW1iYWxsIikKLSBmaW5pc2gKLWVuZGlmCi0KLWxldCBzOmtlZXBjcG8gICAgICAgID0gJmNwbwotbGV0IGc6bG9hZGVkX3ZpbWJhbGwgPSAidjMiCi1zZXQgY3BvJnZpbQotCi0iIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIiBQdWJsaWMgSW50ZXJmYWNlOiB7e3sxCi1jb20hIC1yYSAtbmE9KyAtYmFuZyBNa1ZpbWJhbGwgY2FsbCBzOk1rVmltYmFsbCg8bGluZTE+LDxsaW5lMj4sPGJhbmc+MCw8Zi1hcmdzPikKLWNvbSEgLW5hPTAgVXNlVmltYmFsbCAgY2FsbCBzOlZpbWJhbGwoMSkKLWNvbSEgLW5hPTAgVmltYmFsbExpc3QgY2FsbCBzOlZpbWJhbGwoMCkKLWF1IEJ1ZlJlYWRQb3N0ICoudmJhIGVjaG9obCBXYXJuaW5nTXNnIHwgZWNobyAiU291cmNlIHRoaXMgZmlsZSB0byBleHRyYWN0IGl0ISAoOnNvICUpIiB8IGVjaG9obCBOb25lCi0KLSIgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0iICBGdW5jdGlvbnM6IHt7ezEKLQotIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgTWtWaW1iYWxsOiBjcmVhdGVzIGEgdmltYmFsbCBnaXZlbiBhIGxpc3Qgb2YgcGF0aHMgdG8gZmlsZXMge3t7MgotIiBWaW1iYWxsIEZvcm1hdDoKLSIgICAgIHBhdGgKLSIgICAgIGZpbGVzaXplCi0iICAgICBbZmlsZV0KLSIgICAgIHBhdGgKLSIgICAgIGZpbGVzaXplCi0iICAgICBbZmlsZV0KLWZ1biEgczpNa1ZpbWJhbGwobGluZTEsbGluZTIsd3JpdGVsZXZlbCx2aW1iYWxsbmFtZSkgcmFuZ2UKLSIgIGNhbGwgRGZ1bmMoIk1rVmltYmFsbChsaW5lMT0iLmE6bGluZTEuIiBsaW5lMj0iLmE6bGluZTIuIiB3cml0ZWxldmVsPSIuYTp3cml0ZWxldmVsLiIgdmltYmFsbG5hbWU8Ii5hOnZpbWJhbGxuYW1lLiI+IikKLSAgbGV0IHZibmFtZT0gc3Vic3RpdHV0ZShhOnZpbWJhbGxuYW1lLCdcLlteLl0qJCcsJycsJ2UnKS4nLnZiYScKLSAgaWYgIWE6d3JpdGVsZXZlbCAmJiBmaWxlcmVhZGFibGUodmJuYW1lKQotICAgZWNob2hsIEVycm9yIHwgZWNob2VyciAiKE1rVmltYmFsbCkgZmlsZTwiLnZibmFtZS4iPiBleGlzdHM7IHVzZSAhIHRvIGluc2lzdCIgfCBlY2hvaGwgTm9uZQotIiAgIGNhbGwgRHJldCgiTWtWaW1iYWxsIDogZmlsZTwiLnZibmFtZS4iPiBhbHJlYWR5IGV4aXN0czsgdXNlICEgdG8gaW5zaXN0IikKLSAgIHJldHVybgotICBlbmRpZgotCi0gICIgdXNlciBvcHRpb24gYnlwYXNzCi0gIGxldCBlaWtlZXA9ICZlaQotICBzZXQgZWk9YWxsCi0KLSAgbGV0IGhvbWUgICA9IHN1YnN0aXR1dGUoJnJ0cCwnLC4qJCcsJycsJycpCi0gIGxldCBjdXJkaXIgPSBnZXRjd2QoKQotICBleGUgImNkICIuaG9tZQotCi0gICIgcmVjb3JkIGN1cnJlbnQgdGFiLCBpbml0aWFsaXplIHdoaWxlIGxvb3AgaW5kZXgKLSAgbGV0IGN1cnRhYm5yID0gdGFicGFnZW5yKCkKLSAgbGV0IGxpbmVuciAgID0gYTpsaW5lMQotIiAgY2FsbCBEZWNobygiY3VydGFibnI9Ii5jdXJ0YWJucikKLQotICB3aGlsZSBsaW5lbnIgPD0gYTpsaW5lMgotICAgbGV0IHN2ZmlsZSAgPSBnZXRsaW5lKGxpbmVucikKLSIgICBjYWxsIERlY2hvKCJzdmZpbGU8Ii5zdmZpbGUuIj4iKQotIAotICAgaWYgIWZpbGVyZWFkYWJsZShzdmZpbGUpCi0gICAgZWNob2hsIEVycm9yIHwgZWNobyAidW5hYmxlIHRvIHJlYWQgZmlsZTwiLnN2ZmlsZS4iPiIgfCBlY2hvaGwgTm9uZQotICAgIGxldCAmZWk9IGVpa2VlcAotICAgIGV4ZSAiY2QgIi5jdXJkaXIKLSIgICAgY2FsbCBEcmV0KCJNa1ZpbWJhbGwiKQotICAgIHJldHVybgotICAgZW5kaWYKLSAKLSAgICIgY3JlYXRlL3N3aXRjaCB0byBta3ZpbWJhbGwgdGFiCi0gICBpZiAhZXhpc3RzKCJ2YnRhYm5yIikKLSAgICB0YWJuZXcKLSAgICBzaWxlbnQhIGZpbGUgVmltYmFsbAotICAgIGxldCB2YnRhYm5yPSB0YWJwYWdlbnIoKQotICAgZWxzZQotICAgIGV4ZSAidGFibiAiLnZidGFibnIKLSAgIGVuZGlmCi0gCi0gICBsZXQgbGFzdGxpbmU9IGxpbmUoIiQiKSArIDEKLSAgIGlmIGxhc3RsaW5lID09IDIgJiYgZ2V0bGluZSgiJCIpID09ICIiCi0JY2FsbCBzZXRsaW5lKDEsJyIgVmltYmFsbCBBcmNoaXZlciBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4sIFBoLkQuJykKLQljYWxsIHNldGxpbmUoMiwnVXNlVmltYmFsbCcpCi0JY2FsbCBzZXRsaW5lKDMsJ2ZpbmlzaCcpCi0JbGV0IGxhc3RsaW5lPSA0Ci0gICBlbmRpZgotICAgY2FsbCBzZXRsaW5lKGxhc3RsaW5lICAsc3ZmaWxlKQotICAgY2FsbCBzZXRsaW5lKGxhc3RsaW5lKzEsMCkKLSAgIGV4ZSAiJHIgIi5zdmZpbGUKLSAgIGNhbGwgc2V0bGluZShsYXN0bGluZSsxLGxpbmUoIiQiKSAtIGxhc3RsaW5lIC0gMSkKLSIgICBjYWxsIERlY2hvKCJsYXN0bGluZT0iLmxhc3RsaW5lLiIgbGluZSQ9Ii5saW5lKCIkIikpCi0KLSAgIiByZXN0b3JlIHRvIG5vcm1hbCB0YWIKLSAgIGV4ZSAidGFibiAiLmN1cnRhYm5yCi0gICBsZXQgbGluZW5yPSBsaW5lbnIgKyAxCi0gIGVuZHdoaWxlCi0KLSAgIiB3cml0ZSB0aGUgdmltYmFsbAotICBleGUgInRhYm4gIi52YnRhYm5yCi0gIGV4ZSAiY2QgIi5jdXJkaXIKLSAgaWYgYTpyZWFsbHkKLSAgIGlmIGE6d3JpdGVsZXZlbAotICAgIGV4ZSAidyEgIi52Ym5hbWUKLSAgIGVsc2UKLSAgICBleGUgIncgIi52Ym5hbWUKLSAgIGVuZGlmCi0gIGVuZGlmCi0iICBjYWxsIERlY2hvKCJWaW1iYWxsPCIudmJuYW1lLiI+IGNyZWF0ZWQiKQotICBlY2hvICJWaW1iYWxsPCIudmJuYW1lLiI+IGNyZWF0ZWQiCi0KLSAgIiByZW1vdmUgdGhlIGV2aWRlbmNlCi0gIHNldGxvY2FsIG5vbW9kIGJoPXdpcGUKLSAgZXhlICJ0YWJuICIuY3VydGFibnIKLSAgZXhlICJ0YWJjICIudmJ0YWJucgotCi0gICIgcmVzdG9yZSBvcHRpb25zCi0gIGxldCAmZWk9IGVpa2VlcAotCi0iICBjYWxsIERyZXQoIk1rVmltYmFsbCIpCi1lbmRmdW4KLQotIiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSIgVmltYmFsbDoge3t7MgotZnVuISBzOlZpbWJhbGwocmVhbGx5KQotIiAgY2FsbCBEZnVuYygiVmltYmFsbChyZWFsbHk9Ii5hOnJlYWxseS4iKSIpCi0KLSAgaWYgZ2V0bGluZSgxKSAhfiAnXiIgVmltYmFsbCBBcmNoaXZlciBieSBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4sIFBoLkQuJCcKLSAgIGVjaG9lcnIgIihWaW1iYWxsKSBUaGUgY3VycmVudCBmaWxlIGRvZXMgbm90IGFwcGVhciB0byBiZSBhIFZpbWJhbGwhIgotIiAgIGNhbGwgRHJldCgiVmltYmFsbCIpCi0gICByZXR1cm4KLSAgZW5kaWYKLQotICAiIGluaXRpYWxpemUKLSAgbGV0IHJlZ2FrZWVwID0gQGEKLSAgbGV0IGVpa2VlcCAgID0gJmVpCi0gIGxldCB2ZWtlZXAgICA9ICZ2ZQotICBsZXQgbWFrZWVwICAgPSBnZXRwb3MoIidhIikKLSAgbGV0IGN1cnRhYm5yID0gdGFicGFnZW5yKCkKLSAgc2V0IGVpPWFsbCB2ZT1hbGwKLQotICAiIHNldCB1cCB2aW1iYWxsIHRhYgotICB0YWJuZXcKLSAgc2lsZW50ISBmaWxlIFZpbWJhbGwKLSAgbGV0IHZidGFibnI9IHRhYnBhZ2VucigpCi0gIGxldCBkaWRoZWxwPSAiIgotCi0gICIgZ28gdG8gdmltIHBsdWdpbiBob21lCi0gIGxldCBob21lICAgPSBzdWJzdGl0dXRlKCZydHAsJywuKiQnLCcnLCcnKQotICBsZXQgY3VyZGlyID0gZ2V0Y3dkKCkKLSIgIGNhbGwgRGVjaG8oImV4ZSBjZCAiLmhvbWUpCi0gIGV4ZSAiY2QgIi5ob21lCi0gIGxldCBsaW5lbnIgID0gNAotICBsZXQgZmlsZWNudCA9IDAKLQotICAiIGdpdmUgdGl0bGUgdG8gbGlzdGluZyBvZiAoZXh0cmFjdGVkKSBmaWxlcyBmcm9tIFZpbWJhbGwgQXJjaGl2ZQotICBpZiBhOnJlYWxseQotICAgZWNob2hsIFRpdGxlIHwgZWNob21zZyAiVmltYmFsbCBBcmNoaXZlIiB8IGVjaG9obCBOb25lCi0gIGVsc2UKLSAgIGVjaG9obCBUaXRsZSB8IGVjaG9tc2cgIlZpbWJhbGwgQXJjaGl2ZSBMaXN0aW5nIiB8IGVjaG9obCBOb25lCi0gIGVuZGlmCi0KLSAgIiBhcHBvcnRpb24gdmltYmFsbCBjb250ZW50cyB0byB2YXJpb3VzIGZpbGVzCi0iICBjYWxsIERlY2hvKCJleGUgdGFibiAiLmN1cnRhYm5yKQotICBleGUgInRhYm4gIi5jdXJ0YWJucgotIiAgY2FsbCBEZWNobygibGluZW5yPSIubGluZW5yLiIgbGluZSQ9Ii5saW5lKCIkIikpCi0gIHdoaWxlIDEgPCBsaW5lbnIgJiYgbGluZW5yIDwgbGluZSgiJCIpCi0gICBsZXQgZm5hbWUgICA9IGdldGxpbmUobGluZW5yKQotICAgbGV0IGZzaXplICAgPSBnZXRsaW5lKGxpbmVucisxKQotICAgbGV0IGZpbGVjbnQgPSBmaWxlY250ICsgMQotICAgaWYgYTpyZWFsbHkKLSAgICBlY2hvbXNnICJleHRyYWN0ZWQgPCIuZm5hbWUuIj46ICIuZnNpemUuIiBsaW5lcyIKLSAgIGVsc2UKLSAgICBlY2hvbXNnICJ3b3VsZCBleHRyYWN0IDwiLmZuYW1lLiI+OiAiLmZzaXplLiIgbGluZXMiCi0gICBlbmRpZgotIiAgIGNhbGwgRGVjaG8obGluZW5yLiI6IHdpbGwgZXh0cmFjdCBmaWxlPCIuZm5hbWUuIj4iKQotIiAgIGNhbGwgRGVjaG8oKGxpbmVucisxKS4iOiBmc2l6ZT0iLmZzaXplKQotCi0gICAiIG1ha2UgZGlyZWN0b3JpZXMgaWYgdGhleSBkb24ndCBleGlzdCB5ZXQKLSAgIGxldCBmbmFtZWJ1Zj0gZm5hbWUKLSAgIHdoaWxlIGZuYW1lYnVmID1+ICcvJwotICAgCWxldCBkaXJuYW1lICA9IHN1YnN0aXR1dGUoZm5hbWVidWYsJy8uKiQnLCcnLCdlJykKLSAgIAlsZXQgZm5hbWVidWYgPSBzdWJzdGl0dXRlKGZuYW1lYnVmLCdeLlx7LX0vXCguKlwpJCcsJ1wxJywnZScpCi0JaWYgIWlzZGlyZWN0b3J5KGRpcm5hbWUpCi0iCSBjYWxsIERlY2hvKCJtYWtpbmcgPCIuZGlybmFtZS4iPiIpCi0JIGNhbGwgbWtkaXIoZGlybmFtZSkKLQllbmRpZgotCWV4ZSAiY2QgIi5kaXJuYW1lCi0gICBlbmR3aGlsZQotICAgZXhlICJjZCAiLmhvbWUKLQotICAgIiBncmFiIHNwZWNpZmllZCBxdHkgb2YgbGluZXMgYW5kIHBsYWNlIGludG8gImEiIGJ1ZmZlcgotICAgZXhlIGxpbmVucgotICAgbm9ybSEgamptYQotICAgZXhlIChsaW5lbnIgKyBmc2l6ZSArIDEpCi0gICBzaWxlbnQgbm9ybSEgImF5J2EKLSIgICBjYWxsIERlY2hvKCJ5YW5rZWQgIi5mc2l6ZS4iIGxpbmVzIGludG8gcmVnaXN0ZXItYSIpCi0KLSIgICBjYWxsIERlY2hvKCJkaWRoZWxwPCIuZGlkaGVscC4iPiBmbmFtZTwiLmZuYW1lLiI+IikKLSAgIGlmIGRpZGhlbHAgPT0gIiIgJiYgZm5hbWUgPX4gJ2RvYy9bXi9dXCtcLnR4dCQnCi0gICAJbGV0IGRpZGhlbHA9IHN1YnN0aXR1dGUoZm5hbWUsJ15cKC4qXDxkb2NcKVsvXFxdW14uXSpcLnR4dCQnLCdcMScsJ2UnKQotIgljYWxsIERlY2hvKCJkaWRoZWxwPCIuZGlkaGVscC4iPiIpCi0gICBlbmRpZgotCi0gICAiIGNvcHkgImEiIGJ1ZmZlciBpbnRvIHRhYgotIiAgIGNhbGwgRGVjaG8oJ2NvcHkgImEgYnVmZmVyIGludG8gdGFiIycudmJ0YWJucikKLSAgIGV4ZSAidGFibiAiLnZidGFibnIKLSAgIHNpbGVudCEgJWQKLSAgIHNpbGVudCBub3JtISAiYVBHZGQxRwotIiAgIGNhbGwgRGVjaG8oInJlZ2E8Ii5AYS4iPiIpCi0KLSAgICIgd3JpdGUgdGFiIHRvIGZpbGUKLSIgICBjYWxsIERlY2hvKCJleGUgdyEgIi5mbmFtZSkKLSAgIGV4ZSAic2lsZW50IHchICIuZm5hbWUKLQotIiAgIGNhbGwgRGVjaG8oImV4ZSB0YWJuICIuY3VydGFibnIpCi0gICBleGUgInRhYm4gIi5jdXJ0YWJucgotIiAgIGxldCBvbGRsaW5lbnIgPSBsaW5lbnIgIiBEZWNobwotICAgbGV0IGxpbmVuciAgICA9IGxpbmVuciArIGZzaXplICsgMgotIiAgIGNhbGwgRGVjaG8oInVwZGF0ZSBsaW5lbnI9IFtsaW5lbnI9Ii5vbGRsaW5lbnIuIl0gKyBbZnNpemU9Ii5mc2l6ZS4iXSArIDIgPSAiLmxpbmVucikKLSAgZW5kd2hpbGUKLQotICAiIHNldCB1cCBoZWxwCi0iICBjYWxsIERlY2hvKCJhYm91dCB0byBzZXQgdXAgaGVscDogZGlkaGVscDwiLmRpZGhlbHAuIj4iKQotICBpZiBkaWRoZWxwICE9ICIiCi0iICAgY2FsbCBEZWNobygiZXhlIGhlbHB0YWdzICIuaG9tZS4iLyIuZGlkaGVscCkKLSAgIGV4ZSAiaGVscHRhZ3MgIi5ob21lLiIvIi5kaWRoZWxwCi0gICBlY2hvbXNnICJkaWQgaGVscHRhZ3MiCi0gIGVuZGlmCi0KLSAgIiBtYWtlIHN1cmUgYSAiUHJlc3MgRU5URVIuLi4iIHByb21wdCBhcHBlYXJzIHRvIGtlZXAgdGhlIG1lc3NhZ2VzIHNob3dpbmchCi0gIHdoaWxlIGZpbGVjbnQgPCAmY2gKLSAgIGVjaG9tc2cgIiAiCi0gICBsZXQgZmlsZWNudD0gZmlsZWNudCArIDEKLSAgZW5kd2hpbGUKLQotICAiIHJlc3RvcmUgZXZlbnRzLCBkZWxldGUgdGFiIGFuZCBidWZmZXIKLSAgZXhlICJ0YWJuICIudmJ0YWJucgotICBzZXRsb2NhbCBub21vZCBiaD13aXBlCi0gIGV4ZSAidGFibiAiLmN1cnRhYm5yCi0gIGV4ZSAidGFiYyAiLnZidGFibnIKLSAgbGV0ICZlaT0gZWlrZWVwCi0gIGxldCBAYSA9IHJlZ2FrZWVwCi0gIGlmIG1ha2VlcFswXSAhPSAwCi0gICAiIHJlc3RvcmUgbWFyayBhCi0iICAgY2FsbCBEZWNobygicmVzdG9yZSBtYXJrLWE6IG1ha2VlcD0iLnN0cmluZyhtYWtlZXApKQotICAgY2FsbCBzZXRwb3MoIidhIixtYWtlZXApCi0gICBrYQotICBlbmRpZgotICBleGUgImNkICIuY3VyZGlyCi0KLSIgIGNhbGwgRHJldCgiVmltYmFsbCIpCi1lbmRmdW4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2RqYW5nby52aW0gYi9ydW50aW1lL3N5bnRheC9kamFuZ28udmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNDhkMjYKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL3N5bnRheC9kamFuZ28udmltCkBAIC0wLDAgKzEsNzIgQEAKKyIgVmltIHN5bnRheCBmaWxlCisiIExhbmd1YWdlOglEamFuZ28gdGVtcGxhdGUKKyIgTWFpbnRhaW5lcjoJRGF2ZSBIb2RkZXIgPGRtaEBkbWgub3JnLnVrPgorIiBMYXN0IENoYW5nZToJMjAwNiBNYXIgMjMKKworIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKKyIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKK2lmIHZlcnNpb24gPCA2MDAKKyAgc3ludGF4IGNsZWFyCitlbHNlaWYgZXhpc3RzKCJiOmN1cnJlbnRfc3ludGF4IikKKyAgZmluaXNoCitlbmRpZgorCitzeW50YXggY2FzZSBtYXRjaAorCisiIERqYW5nbyB0ZW1wbGF0ZSBidWlsdC1pbiB0YWdzIGFuZCBwYXJhbWV0ZXJzCisiICdjb21tZW50JyBkb2Vzbid0IGFwcGVhciBoZXJlIGJlY2F1c2UgaXQgZ2V0cyBzcGVjaWFsIHRyZWF0bWVudAorc3luIGtleXdvcmQgZGphbmdvU3RhdGVtZW50IGNvbnRhaW5lZCBhcyBibG9jayBlbmRibG9jayBieSBjeWNsZSBkZWJ1ZyBlbHNlCitzeW4ga2V5d29yZCBkamFuZ29TdGF0ZW1lbnQgY29udGFpbmVkIGV4dGVuZHMgZmlsdGVyIGVuZGZpbHRlciBmaXJzdG9mIGZvcgorc3luIGtleXdvcmQgZGphbmdvU3RhdGVtZW50IGNvbnRhaW5lZCBlbmRmb3IgaWYgZW5kaWYgaWZjaGFuZ2VkIGVuZGlmY2hhbmdlZAorc3luIGtleXdvcmQgZGphbmdvU3RhdGVtZW50IGNvbnRhaW5lZCBpZmVxdWFsIGVuZGlmZXF1YWwgaWZub3RlcXVhbAorc3luIGtleXdvcmQgZGphbmdvU3RhdGVtZW50IGNvbnRhaW5lZCBlbmRpZm5vdGVxdWFsIGluIGluY2x1ZGUgbG9hZCBub3Qgbm93IG9yCitzeW4ga2V5d29yZCBkamFuZ29TdGF0ZW1lbnQgY29udGFpbmVkIHBhcnNlZCByZWdyb3VwIHJldmVyc2VkIHNwYWNlbGVzcworc3luIGtleXdvcmQgZGphbmdvU3RhdGVtZW50IGNvbnRhaW5lZCBlbmRzcGFjZWxlc3Mgc3NpIHRlbXBsYXRldGFnIG9wZW5ibG9jaworc3luIGtleXdvcmQgZGphbmdvU3RhdGVtZW50IGNvbnRhaW5lZCBjbG9zZWJsb2NrIG9wZW52YXJpYWJsZSBjbG9zZXZhcmlhYmxlCitzeW4ga2V5d29yZCBkamFuZ29TdGF0ZW1lbnQgY29udGFpbmVkIHdpZHRocmF0aW8gd2l0aAorCisiIERqYW5nbyB0ZW1wbGV0ZSBidWlsdC1pbiBmaWx0ZXJzCitzeW4ga2V5d29yZCBkamFuZ29GaWx0ZXIgY29udGFpbmVkIGFkZCBhZGRzbGFzaGVzIGNhcGZpcnN0IGNlbnRlciBjdXQgZGF0ZQorc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBkZWZhdWx0IGRlZmF1bHRfaWZfbm9uZSBkaWN0c29ydAorc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBkaWN0c29ydHJldmVyc2VkIGRpdmlzaWJsZWJ5IGVzY2FwZQorc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBmaWxlc2l6ZWZvcm1hdCBmaXJzdCBmaXhfYW1wZXJzYW5kcworc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBmbG9hdGZvcm1hdCBnZXRfZGlnaXQgam9pbiBsZW5ndGggbGVuZ3RoX2lzCitzeW4ga2V5d29yZCBkamFuZ29GaWx0ZXIgY29udGFpbmVkIGxpbmVicmVha3MgbGluZWJyZWFrc2JyIGxpbmVudW1iZXJzIGxqdXN0CitzeW4ga2V5d29yZCBkamFuZ29GaWx0ZXIgY29udGFpbmVkIGxvd2VyIG1ha2VfbGlzdCBwaG9uZTJudW1lcmljIHBsdXJhbGl6ZQorc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBwcHJpbnQgcmFuZG9tIHJlbW92ZXRhZ3Mgcmp1c3Qgc2xpY2Ugc2x1Z2lmeQorc3luIGtleXdvcmQgZGphbmdvRmlsdGVyIGNvbnRhaW5lZCBzdHJpbmdmb3JtYXQgc3RyaXB0YWdzIHRpbWUgdGltZXNpbmNlIHRpdGxlCitzeW4ga2V5d29yZCBkamFuZ29GaWx0ZXIgY29udGFpbmVkIHRydW5jYXRld29yZHMgdW5vcmRlcmVkX2xpc3QgdXBwZXIgdXJsZW5jb2RlCitzeW4ga2V5d29yZCBkamFuZ29GaWx0ZXIgY29udGFpbmVkIHVybGl6ZSB1cmxpemV0cnVuYyB3b3JkY291bnQgd29yZHdyYXAgeWVzbm8KKworIiBEamFuZ28gdGVtcGxhdGUgY29uc3RhbnRzIChhbHdheXMgc3Vycm91bmRlZCBieSBkb3VibGUgcXVvdGVzKQorc3luIHJlZ2lvbiBkamFuZ29Bcmd1bWVudCBjb250YWluZWQgc3RhcnQ9LyIvIHNraXA9L1xcIi8gZW5kPS8iLworCisiIERqYW5nbyB0ZW1wbGF0ZSB0YWcgYW5kIHZhcmlhYmxlIGJsb2Nrcworc3luIHJlZ2lvbiBkamFuZ29UYWdCbG9jayBzdGFydD0ieyUiIGVuZD0iJX0iIGNvbnRhaW5zPWRqYW5nb1N0YXRlbWVudCxkamFuZ29GaWx0ZXIsZGphbmdvQXJndW1lbnQgZGlzcGxheQorc3luIHJlZ2lvbiBkamFuZ29WYXJCbG9jayBzdGFydD0ie3siIGVuZD0ifX0iIGNvbnRhaW5zPWRqYW5nb0ZpbHRlcixkamFuZ29Bcmd1bWVudCBkaXNwbGF5CisKKyIgRGphbmdvIHRlbXBsYXRlICdjb21tZW50JyB0YWcKK3N5biByZWdpb24gZGphbmdvQ29tbWVudCBzdGFydD0ieyVccypjb21tZW50XHMqJX0iIGVuZD0ieyVccyplbmRjb21tZW50XHMqJX0iCisKKyIgRGVmaW5lIHRoZSBkZWZhdWx0IGhpZ2hsaWdodGluZy4KKyIgRm9yIHZlcnNpb24gNS43IGFuZCBlYXJsaWVyOiBvbmx5IHdoZW4gbm90IGRvbmUgYWxyZWFkeQorIiBGb3IgdmVyc2lvbiA1LjggYW5kIGxhdGVyOiBvbmx5IHdoZW4gYW4gaXRlbSBkb2Vzbid0IGhhdmUgaGlnaGxpZ2h0aW5nIHlldAoraWYgdmVyc2lvbiA+PSA1MDggfHwgIWV4aXN0cygiZGlkX2RqYW5nb19zeW5faW5pdHMiKQorICBpZiB2ZXJzaW9uIDwgNTA4CisgICAgbGV0IGRpZF9kamFuZ29fc3luX2luaXRzID0gMQorICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGxpbmsgPGFyZ3M+CisgIGVsc2UKKyAgICBjb21tYW5kIC1uYXJncz0rIEhpTGluayBoaSBkZWYgbGluayA8YXJncz4KKyAgZW5kaWYKKworICBIaUxpbmsgZGphbmdvVGFnQmxvY2sgUHJlUHJvYworICBIaUxpbmsgZGphbmdvVmFyQmxvY2sgUHJlUHJvYworICBIaUxpbmsgZGphbmdvU3RhdGVtZW50IFN0YXRlbWVudAorICBIaUxpbmsgZGphbmdvRmlsdGVyIElkZW50aWZpZXIKKyAgSGlMaW5rIGRqYW5nb0FyZ3VtZW50IENvbnN0YW50CisgIEhpTGluayBkamFuZ29Db21tZW50IENvbW1lbnQKKworICBkZWxjb21tYW5kIEhpTGluaworZW5kaWYKKworbGV0IGI6Y3VycmVudF9zeW50YXggPSAiZGphbmdvIgpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvaHRtbGRqYW5nby52aW0gYi9ydW50aW1lL3N5bnRheC9odG1sZGphbmdvLnZpbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2M2NWZkCi0tLSAvZGV2L251bGwKKysrIGIvcnVudGltZS9zeW50YXgvaHRtbGRqYW5nby52aW0KQEAgLTAsMCArMSwzMCBAQAorIiBWaW0gc3ludGF4IGZpbGUKKyIgTGFuZ3VhZ2U6CURqYW5nbyBIVE1MIHRlbXBsYXRlCisiIE1haW50YWluZXI6CURhdmUgSG9kZGVyIDxkbWhAZG1oLm9yZy51az4KKyIgTGFzdCBDaGFuZ2U6CTIwMDYgTWFyIDA2CisKKyIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCisiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCitpZiB2ZXJzaW9uIDwgNjAwCisgIHN5bnRheCBjbGVhcgorZWxzZWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpCisgIGZpbmlzaAorZW5kaWYKKworaWYgIWV4aXN0cygibWFpbl9zeW50YXgiKQorICBsZXQgbWFpbl9zeW50YXggPSAnaHRtbCcKK2VuZGlmCisKK2lmIHZlcnNpb24gPCA2MDAKKyAgc28gPHNmaWxlPjpwOmgvZGphbmdvLnZpbQorICBzbyA8c2ZpbGU+OnA6aC9odG1sLnZpbQorZWxzZQorICBydW50aW1lISBzeW50YXgvZGphbmdvLnZpbQorICBydW50aW1lISBzeW50YXgvaHRtbC52aW0KKyAgdW5sZXQgYjpjdXJyZW50X3N5bnRheAorZW5kaWYKKworc3ludGF4IGNsdXN0ZXIgaHRtbFByZXByb2MgYWRkPWRqYW5nb1BsYWNlSG9sZGVyCitzeW50YXggY2x1c3RlciBodG1sU3RyaW5nIGFkZD1kamFuZ29QbGFjZUhvbGRlcgorCitsZXQgYjpjdXJyZW50X3N5bnRheCA9ICJodG1sZGphbmdvIgo=