ZGlmZiAtLWdpdCBhL1JFQURNRS50eHQgYi9SRUFETUUudHh0CmluZGV4IDc2NzQyOTkuLmZkYTI3ZWMgMTAwNjQ0Ci0tLSBhL1JFQURNRS50eHQKKysrIGIvUkVBRE1FLnR4dApAQCAtNSw5ICs1LDkgQEAKIAogVmltIGlzIGFuIGFsbW9zdCBjb21wYXRpYmxlIHZlcnNpb24gb2YgdGhlIFVOSVggZWRpdG9yIFZpLiAgTWFueSBuZXcgZmVhdHVyZXMKIGhhdmUgYmVlbiBhZGRlZDogbXVsdGktbGV2ZWwgdW5kbywgc3ludGF4IGhpZ2hsaWdodGluZywgY29tbWFuZCBsaW5lIGhpc3RvcnksCi1vbi1saW5lIGhlbHAsIGZpbGVuYW1lIGNvbXBsZXRpb24sIGJsb2NrIG9wZXJhdGlvbnMsIGV0Yy4gIFRoZXJlIGlzIGFsc28gYQotR3JhcGhpY2FsIFVzZXIgSW50ZXJmYWNlIChHVUkpIGF2YWlsYWJsZS4gIFNlZSAicnVudGltZS9kb2MvdmlfZGlmZi50eHQiIGZvcgotZGlmZmVyZW5jZXMgd2l0aCBWaS4KK29uLWxpbmUgaGVscCwgc3BlbGwgY2hlY2tpbmcsIGZpbGVuYW1lIGNvbXBsZXRpb24sIGJsb2NrIG9wZXJhdGlvbnMsIGV0Yy4KK1RoZXJlIGlzIGFsc28gYSBHcmFwaGljYWwgVXNlciBJbnRlcmZhY2UgKEdVSSkgYXZhaWxhYmxlLiAgU2VlCisicnVudGltZS9kb2MvdmlfZGlmZi50eHQiIGZvciBkaWZmZXJlbmNlcyB3aXRoIFZpLgogCiBUaGlzIGVkaXRvciBpcyB2ZXJ5IHVzZWZ1bCBmb3IgZWRpdGluZyBwcm9ncmFtcyBhbmQgb3RoZXIgcGxhaW4gQVNDSUkgZmlsZXMuCiBBbGwgY29tbWFuZHMgYXJlIGdpdmVuIHdpdGggbm9ybWFsIGtleWJvYXJkIGNoYXJhY3RlcnMsIHNvIHRob3NlIHdobyBjYW4gdHlwZQpAQCAtNTYsMTUgKzU2LDE2IEBACiAKIFNQT05TT1JJTkcKIAotRml4aW5nIGJ1Z3MgYW5kIGFkZGluZyBuZXcgZmVhdHVyZXMgdGFrZXMgYSBsb3Qgb2YgZWZmb3J0LiAgRm9yIGEgZmV3IHllYXJzCi1CcmFtIGhhcyBhdHRlbXB0ZWQgdG8gZG8gdGhpcyBuZXh0IHRvIGEgZnVsbC10aW1lIGpvYi4gIER1cmluZyB0aGF0IHRpbWUgdGhlCi10b2RvIGxpc3Qga2VwdCBnZXR0aW5nIGxvbmdlciBhbmQgbG9uZ2VyLgorRml4aW5nIGJ1Z3MgYW5kIGFkZGluZyBuZXcgZmVhdHVyZXMgdGFrZXMgYSBsb3Qgb2YgdGltZSBhbmQgZWZmb3J0LiAgVG8gc2hvdworeW91ciBhcHByZWNpYXRpb24gZm9yIHRoZSB3b3JrIGFuZCBtb3RpdmF0ZSBCcmFtIGFuZCBvdGhlcnMgdG8gY29udGludWUKK3dvcmtpbmcgb24gVmltIHBsZWFzZSBzZW5kIGEgZG9uYXRpb24uCiAKLUluIG9yZGVyIGZvciBCcmFtIHRvIHN1cHBvcnQgVmltIHByb3Blcmx5IGhlIG5lZWRzIHlvdXIgaGVscC4gIFRocm91Z2ggeW91cgotZG9uYXRpb25zIEJyYW0gd2lsbCBiZSBhYmxlIHRvIGhhdmUgYSBwYXJ0LXRpbWUgam9iIGFuZCBzcGVuZCBtb3JlIHRpbWUgb24KLWZpeGluZyBidWdzIGFuZCBhZGRpbmcgbmV3IGZlYXR1cmVzLgorU2luY2UgQnJhbSBpcyBiYWNrIHRvIGEgcGFpZCBqb2IgdGhlIG1vbmV5IHdpbGwgbm93IGJlIHVzZWQgdG8gaGVscCBjaGlsZHJlbgoraW4gVWdhbmRhLiAgU2VlIHJ1bnRpbWUvZG9jL3VnYW5kYS50eHQuICBCdXQgYXQgdGhlIHNhbWUgdGltZSBkb25hdGlvbnMKK2luY3JlYXNlIEJyYW0ncyBtb3RpdmF0aW9uIHRvIGtlZXAgd29ya2luZyBvbiBWaW0hCiAKIEZvciB0aGUgbW9zdCByZWNlbnQgaW5mb3JtYXRpb24gYWJvdXQgc3BvbnNvcmluZyBsb29rIG9uIHRoZSBWaW0gd2ViIHNpdGU6CisKIAlodHRwOi8vd3d3LnZpbS5vcmcvc3BvbnNvci8KIAogCkBAIC0xMzIsNiArMTMzLDkgQEAKIFNlbmQgYW55IG90aGVyIGNvbW1lbnRzLCBwYXRjaGVzLCBwaXp6YSBhbmQgc3VnZ2VzdGlvbnMgdG86CiAKIAlCcmFtIE1vb2xlbmFhcgkJRS1tYWlsOglCcmFtQHZpbS5vcmcKLQlDbGVtYXRpc3N0cmFhdCAzMAotCTU5MjUgQkUgIFZlbmxvCQlUZWw6ICszMSA3NyAzODcgMjM0MAotCVRoZSBOZXRoZXJsYW5kcwkJRmF4L3ZvaWNlLW1haWw6ICszMSAyMCA3NzMgODI3MgorCU1vbGVuc3RyYWF0IDIKKwkyMTYxIEhQICBMaXNzZQorCVRoZSBOZXRoZXJsYW5kcworCitUaGlzIGlzIHRoZSBhZGRyZXNzIG9mIG15IHBhcmVudHMsIHRoZXkgd2lsbCBmb3J3YXJkIG1haWwgYW5kIGVhdCB0aGUgcGl6emEuCitNeSBhY3R1YWwgYWRkcmVzcyB3aWxsIGNoYW5nZSBhIGNvdXBsZSBvZiB0aW1lcyBpbiAyMDA2LgpkaWZmIC0tZ2l0IGEvcnVudGltZS9hdXRvbG9hZC96aXAudmltIGIvcnVudGltZS9hdXRvbG9hZC96aXAudmltCmluZGV4IDY3OTBmNGYuLmM3MWE0ZGMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvYXV0b2xvYWQvemlwLnZpbQorKysgYi9ydW50aW1lL2F1dG9sb2FkL3ppcC52aW0KQEAgLTEsNyArMSw3IEBACiAiIHppcC52aW06IEhhbmRsZXMgYnJvd3NpbmcgemlwZmlsZXMKICIgICAgICAgICAgICBBVVRPTE9BRCBQT1JUSU9OCi0iIERhdGU6CQkJTWFyIDIyLCAyMDA2Ci0iIFZlcnNpb246CQk3CisiIERhdGU6CQkJQXByIDEwLCAyMDA2CisiIFZlcnNpb246CQk4CiAiIE1haW50YWluZXI6CUNoYXJsZXMgRSBDYW1wYmVsbCwgSnIgPGRyY2hpcE5PU1BBTSBhdCBjYW1wYmVsbGZhbWlseSBkb3QgYml6PgogIiBMaWNlbnNlOgkJVmltIExpY2Vuc2UgIChzZWUgdmltJ3MgOmhlbHAgbGljZW5zZSkKICIgQ29weXJpZ2h0OiAgICBDb3B5cmlnaHQgKEMpIDIwMDUgQ2hhcmxlcyBFLiBDYW1wYmVsbCwgSnIuIHt7ezEKQEAgLTIyLDcgKzIyLDcgQEAKICBmaW5pc2gKIGVuZGlmCiAKLWxldCBnOmxvYWRlZF96aXAgICAgID0gInY3IgorbGV0IGc6bG9hZGVkX3ppcCAgICAgPSAidjgiCiBsZXQgczp6aXBmaWxlX2VzY2FwZSA9ICcgPyY7XCcKIAogIiAtLS0tLS0tLS0tLS0tLS0tCkBAIC04Myw3ICs4Myw5IEBACiAgIDQsJGcvXlxzKi0tLS0vZAogICA0LCRnL15ccypcYS9kCiAgICRkCi0gIGV4ZSAnc2lsZW50IDQsJHMvXi4qXCUnLm5hbWVjb2wuJ2MvLycKKyAgaWYgbmFtZWNvbCA+IDAKKyAgIGV4ZSAnc2lsZW50IDQsJHMvXi4qXCUnLm5hbWVjb2wuJ2MvLycKKyAgZW5kaWYKIAogICBzZXRsb2NhbCBub21hIG5vbW9kIHJvCiAgIG5vcmVtYXAgPHNpbGVudD4gPGJ1ZmZlcj4gPGNyPiA6Y2FsbCA8U0lEPlppcEJyb3dzZVNlbGVjdCgpPGNyPgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvY2hhbmdlLnR4dCBiL3J1bnRpbWUvZG9jL2NoYW5nZS50eHQKaW5kZXggZThlMWNhYS4uNGFlYmUzMCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvY2hhbmdlLnR4dAorKysgYi9ydW50aW1lL2RvYy9jaGFuZ2UudHh0CkBAIC0xLDQgKzEsNCBAQAotKmNoYW5nZS50eHQqICAgIEZvciBWaW0gdmVyc2lvbiA3LjBkLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDA5CisqY2hhbmdlLnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGQuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMTEKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTE1MDgsNyArMTUwOCw3IEBACiBmb3VuZCBoZXJlOiB8c29ydCgpfC4KIAogCQkJCQkJCSo6c29yKiAqOnNvcnQqCi06W3JhbmdlXXNvclt0XVshXSBbaV1bdV1bbl1beF1bb10gWy97cGF0dGVybn0vXQorOltyYW5nZV1zb3JbdF1bIV0gW2ldW3VdW3JdW25dW3hdW29dIFsve3BhdHRlcm59L10KIAkJCVNvcnQgbGluZXMgaW4gW3JhbmdlXS4gIFdoZW4gbm8gcmFuZ2UgaXMgZ2l2ZW4gYWxsCiAJCQlsaW5lcyBhcmUgc29ydGVkLgogCkBAIC0xNTE3LDI0ICsxNTE3LDI1IEBACiAJCQlXaXRoIFtpXSBjYXNlIGlzIGlnbm9yZWQuCiAKIAkJCVdpdGggW25dIHNvcnRpbmcgaXMgZG9uZSBvbiB0aGUgZmlyc3QgZGVjaW1hbCBudW1iZXIKLQkJCWluIHRoZSBsaW5lIChhZnRlciBhIHtwYXR0ZXJufSBtYXRjaCkuCisJCQlpbiB0aGUgbGluZSAoYWZ0ZXIgb3IgaW5zaWRlIGEge3BhdHRlcm59IG1hdGNoKS4KIAogCQkJV2l0aCBbeF0gc29ydGluZyBpcyBkb25lIG9uIHRoZSBmaXJzdCBoZXhhZGVjaW1hbAotCQkJbnVtYmVyIGluIHRoZSBsaW5lIChhZnRlciBhIHtwYXR0ZXJufSBtYXRjaCkuICBBCi0JCQlsZWFkaW5nICIweCIgb3IgIjBYIiBpcyBpZ25vcmVkLgorCQkJbnVtYmVyIGluIHRoZSBsaW5lIChhZnRlciBvciBpbnNpZGUgYSB7cGF0dGVybn0KKwkJCW1hdGNoKS4gIEEgbGVhZGluZyAiMHgiIG9yICIwWCIgaXMgaWdub3JlZC4KIAogCQkJV2l0aCBbb10gc29ydGluZyBpcyBkb25lIG9uIHRoZSBmaXJzdCBvY3RhbCBudW1iZXIgaW4KLQkJCXRoZSBsaW5lIChhZnRlciBhIHtwYXR0ZXJufSBtYXRjaCkuCisJCQl0aGUgbGluZSAoYWZ0ZXIgb3IgaW5zaWRlIGEge3BhdHRlcm59IG1hdGNoKS4KIAogCQkJV2l0aCBbdV0gb25seSBrZWVwIHRoZSBmaXJzdCBvZiBhIHNlcXVlbmNlIG9mCiAJCQlpZGVudGljYWwgbGluZXMgKGlnbm9yaW5nIGNhc2Ugd2hlbiBbaV0gaXMgdXNlZCkuCisJCQlXaXRob3V0IHRoaXMgZmxhZywgYSBzZXF1ZW5jZSBvZiBpZGVudGljYWwgbGluZXMKKwkJCXdpbGwgYmUga2VwdCBpbiB0aGVpciBvcmlnaW5hbCBvcmRlci4KIAkJCU5vdGUgdGhhdCBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZSBzcGFjZSBtYXkgY2F1c2UKIAkJCWxpbmVzIHRvIGJlIGRpZmZlcmVudC4KIAotCQkJV2hlbiAve3BhdHRlcm59LyBpcyBzcGVjaWZpZWQgdGhlIHRleHQgbWF0Y2hlZCB3aXRoCi0JCQl7cGF0dGVybn0gaXMgc2tpcHBlZCwgc28gdGhhdCB5b3Ugc29ydCBvbiB3aGF0IGNvbWVzCi0JCQlhZnRlciB0aGUgbWF0Y2guICBGb3IgbGluZXMgd2l0aG91dCBhIG1hdGNoIHNvcnRpbmcKLQkJCXN0YXJ0cyBpbiB0aGUgZmlyc3QgY29sdW1uIChlLmcuLCBmb3IgZW1wdHkgbGluZXMpLgorCQkJV2hlbiAve3BhdHRlcm59LyBpcyBzcGVjaWZpZWQgYW5kIHRoZXJlIGlzIG5vIFtyXSBmbGFnCisJCQl0aGUgdGV4dCBtYXRjaGVkIHdpdGgge3BhdHRlcm59IGlzIHNraXBwZWQsIHNvIHRoYXQKKwkJCXlvdSBzb3J0IG9uIHdoYXQgY29tZXMgYWZ0ZXIgdGhlIG1hdGNoLgogCQkJSW5zdGVhZCBvZiB0aGUgc2xhc2ggYW55IG5vbi1sZXR0ZXIgY2FuIGJlIHVzZWQuCiAJCQlGb3IgZXhhbXBsZSwgdG8gc29ydCBvbiB0aGUgc2Vjb25kIGNvbW1hLXNlcGFyYXRlZAogCQkJZmllbGQ6ID4KQEAgLTE1NDUsNyArMTU0NiwyMSBAQAogPAkJCVRvIHNvcnQgb24gdGhlIGZpcnN0IG51bWJlciBpbiB0aGUgbGluZSwgbm8gbWF0dGVyCiAJCQl3aGF0IGlzIGluIGZyb250IG9mIGl0OiA+CiAJCQkJOnNvcnQgLy4qXHplXGQvCi08CisKKzwJCQlXaXRoIFtyXSBzb3J0aW5nIGlzIGRvbmUgb24gdGhlIG1hdGNoaW5nIHtwYXR0ZXJufQorCQkJaW5zdGVhZCBvZiBza2lwcGluZyBwYXN0IGl0IGFzIGRlc2NyaWJlZCBhYm92ZS4KKwkJCUZvciBleGFtcGxlLCB0byBzb3J0IG9uIG9ubHkgdGhlIGZpcnN0IHRocmVlIGxldHRlcnMKKwkJCW9mIGVhY2ggbGluZTogPgorCQkJCTpzb3J0IC9cYVxhXGEvIHIKKworPAkJCUlmIGEge3BhdHRlcm59IGlzIHVzZWQsIGFueSBsaW5lcyB3aGljaCBkb24ndCBoYXZlIGEKKwkJCW1hdGNoIGZvciB7cGF0dGVybn0gYXJlIGtlcHQgaW4gdGhlaXIgY3VycmVudCBvcmRlciwKKwkJCWJ1dCBzZXBhcmF0ZSBmcm9tIHRoZSBsaW5lcyB3aGljaCBkbyBtYXRjaCB7cGF0dGVybn0uCisJCQlJZiB5b3Ugc29ydGVkIGluIHJldmVyc2UsIHRoZXkgd2lsbCBiZSBpbiByZXZlcnNlCisJCQlvcmRlciBhZnRlciB0aGUgc29ydGVkIGxpbmVzLCBvdGhlcndpc2UgdGhleSB3aWxsIGJlCisJCQlpbiB0aGVpciBvcmlnaW5hbCBvcmRlciwgcmlnaHQgYmVmb3JlIHRoZSBzb3J0ZWQKKwkJCWxpbmVzLgorCiBOb3RlIHRoYXQgdXNpbmcgIjpzb3J0IiB3aXRoICI6Z2xvYmFsIiBkb2Vzbid0IHNvcnQgdGhlIG1hdGNoaW5nIGxpbmVzLCBpdCdzCiBxdWl0ZSB1c2VsZXNzLgogCkBAIC0xNTUzLDggKzE1NjgsOCBAQAogZ3VhcmFudGVlIHRoYXQgc29ydGluZyBpcyAic3RhYmxlIiBvciBvYmV5cyB0aGUgY3VycmVudCBsb2NhbGUuICBZb3Ugd2lsbCBoYXZlCiB0byB0cnkgaXQgb3V0LgogCi1UaGUgc29ydGluZyBpdHNlbGYgY2Fubm90IGJlIGludGVycnVwdGVkLCBiZWNhdXNlIG9mIHVzaW5nIGEgc3lzdGVtIGxpYnJhcnkKLWZ1bmN0aW9uLiAgWW91IGNhbiBpbnRlcnJ1cHQgdGhlIHByZXBhcmF0aW9uIChmb3IgdW5kbykgYW5kIHB1dHRpbmcgdGhlIHNvcnRlZAotbGluZXMgaW50byB0aGUgYnVmZmVyLiAgSW4gdGhlIGxhc3QgY2FzZSB5b3UgbWF5IGVuZCB1cCB3aXRoIGR1cGxpY2F0ZWQgbGluZXMuCitUaGUgc29ydGluZyBjYW4gYmUgaW50ZXJydXB0ZWQsIGJ1dCBpZiB5b3UgaW50ZXJydXB0IGl0IHRvbyBsYXRlIGluIHRoZQorcHJvY2VzcyB5b3UgbWF5IGVuZCB1cCB3aXRoIGR1cGxpY2F0ZWQgbGluZXMuICBUaGlzIGFsc28gZGVwZW5kcyBvbiB0aGUgc3lzdGVtCitsaWJyYXJ5IGZ1bmN0aW9uIHVzZWQuCiAKICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbmRleC50eHQgYi9ydW50aW1lL2RvYy9pbmRleC50eHQKaW5kZXggNDkxZjRjYS4uODQ4Y2UwYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvaW5kZXgudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luZGV4LnR4dApAQCAtMSw0ICsxLDQgQEAKLSppbmRleC50eHQqICAgICBGb3IgVmltIHZlcnNpb24gNy4wZC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAwNgorKmluZGV4LnR4dCogICAgIEZvciBWaW0gdmVyc2lvbiA3LjBkLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDEwCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC01MjksNiArNTI5LDcgQEAKIHxDVFJMLVdfUHwJQ1RSTC1XIFAJICAgZ28gdG8gcHJldmlldyB3aW5kb3cKIHxDVFJMLVdfUnwJQ1RSTC1XIFIJICAgcm90YXRlIHdpbmRvd3MgdXB3YXJkcyBOIHRpbWVzCiB8Q1RSTC1XX1N8CUNUUkwtVyBTCSAgIHNhbWUgYXMgIkNUUkwtVyBzIgorfENUUkwtV19UfAlDVFJMLVcgVAkgICBtb3ZlIGN1cnJlbnQgd2luZG93IHRvIGEgbmV3IHRhYiBwYWdlCiB8Q1RSTC1XX1d8CUNUUkwtVyBXCSAgIGdvIHRvIE4gcHJldmlvdXMgd2luZG93ICh3cmFwIGFyb3VuZCkKIHxDVFJMLVdfXXwJQ1RSTC1XIF0JICAgc3BsaXQgd2luZG93IGFuZCBqdW1wIHRvIHRhZyB1bmRlciBjdXJzb3IKIHxDVFJMLVdfXnwJQ1RSTC1XIF4JICAgc3BsaXQgY3VycmVudCB3aW5kb3cgYW5kIGVkaXQgYWx0ZXJuYXRlCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0IGIvcnVudGltZS9kb2MvaW5zZXJ0LnR4dAppbmRleCA0MTI3NzFkLi5hZTQ3NDY5IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9pbnNlcnQudHh0CisrKyBiL3J1bnRpbWUvZG9jL2luc2VydC50eHQKQEAgLTEsNCArMSw0IEBACi0qaW5zZXJ0LnR4dCogICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGQuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMTAKKyppbnNlcnQudHh0KiAgICBGb3IgVmltIHZlcnNpb24gNy4wZC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAxMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTQxOSw4ICsxNDE5LDggQEAKICAgYSB0YWcpCiAtIHdoZW4gYXR0cmlidXRlIGhhcyBsaW1pdGVkIG51bWJlciBvZiBwb3NzaWJsZSB2YWx1ZXMgaGVscCB0byBjb21wbGV0ZQogICB0aGVtCi0tIGNvbXBsZXRlIG5hbWVzIG9mIGVudGl0aWVzIChkZWZpbmVkIGluIHx4bWwtb21uaS1kYXRhZmlsZXwgYW5kIGluIGN1cnJlbnQgZmlsZQotICB3aXRoICI8IUVOVElUWSIgZGVjbGFyYXRpb25zCistIGNvbXBsZXRlIG5hbWVzIG9mIGVudGl0aWVzIChkZWZpbmVkIGluIHx4bWwtb21uaS1kYXRhZmlsZXwgYW5kIGluIGN1cnJlbnQKKyAgZmlsZSB3aXRoICI8IUVOVElUWSIgZGVjbGFyYXRpb25zCiAtIHdoZW4gdXNlZCBhZnRlciAiPC8iIENUUkwtWCBDVFJMLU8gd2lsbCBjbG9zZSB0aGUgbGFzdCBvcGVuZWQgdGFnCiAKIEZvcm1hdCBvZiBYTUwgZGF0YSBmaWxlCQkJCQkqeG1sLW9tbmktZGF0YWZpbGUqCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy9tYXAudHh0IGIvcnVudGltZS9kb2MvbWFwLnR4dAppbmRleCAxZWUwZTQwLi40OWUxZmFhIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tYXAudHh0CisrKyBiL3J1bnRpbWUvZG9jL21hcC50eHQKQEAgLTEsNCArMSw0IEBACi0qbWFwLnR4dCogICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGQuICBMYXN0IGNoYW5nZTogMjAwNiBNYXIgMjAKKyptYXAudHh0KiAgICAgICBGb3IgVmltIHZlcnNpb24gNy4wZC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAxMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTCAgICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMjY1LDYgKzI2NSw3IEBACiA6dm1hcCAgOnZub3JlbWFwICA6dnVubWFwICA6dm1hcGNsZWFyICAgICAtICAgICAgICAgeWVzICAgICAgICAgICAgIC0KIDpvbWFwICA6b25vcmVtYXAgIDpvdW5tYXAgIDpvbWFwY2xlYXIgICAgIC0gICAgICAgICAgLSAgICAgICAgICAgICB5ZXMKIAorOm51bm1hcCBjYW4gYWxzbyBiZSB1c2VkIG91dHNpZGUgb2YgYSBtb25hc3RlcnkuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbWFwbW9kZS14KiAqbWFwbW9kZS1zKgogU29tZSBjb21tYW5kcyB3b3JrIGJvdGggaW4gVmlzdWFsIGFuZCBTZWxlY3QgbW9kZSwgc29tZSBpbiBvbmx5IG9uZS4gIE5vdGUKIHRoYXQgcXVpdGUgb2Z0ZW4gIlZpc3VhbCIgaXMgbWVudGlvbmVkIHdoZXJlIGJvdGggVmlzdWFsIGFuZCBTZWxlY3QgbW9kZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvbWVzc2FnZS50eHQgYi9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dAppbmRleCAxMjljNDNlLi43OTBjY2NmIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dAorKysgYi9ydW50aW1lL2RvYy9tZXNzYWdlLnR4dApAQCAtMSw0ICsxLDQgQEAKLSptZXNzYWdlLnR4dCogICBGb3IgVmltIHZlcnNpb24gNy4wZC4gIExhc3QgY2hhbmdlOiAyMDA2IE1hciAwMQorKm1lc3NhZ2UudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBkLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDExCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC00MTMsNyArNDEzLDEwIEBACiAKIFlvdSBoYXZlIHVzZWQgYW4gIjp1bm1hcCIgY29tbWFuZCB3aXRoIGFuIGFyZ3VtZW50IHdoaWNoIGlzIG5vdCBhbiBleGlzdGluZwogbWFwcGluZy4gIEFsbCB2YXJpYXRpb25zIG9mIHRoaXMgY29tbWFuZCBnaXZlIHRoZSBzYW1lIG1lc3NhZ2U6ICI6Y3VubWFwIiwKLSI6dW5tYXAhIiwgZXRjLiAgQ2hlY2sgZm9yIHRyYWlsaW5nIHdoaXRlIHNwYWNlLgorIjp1bm1hcCEiLCBldGMuICBBIGZldyBoaW50czoKKy0gQ2hlY2sgZm9yIHRyYWlsaW5nIHdoaXRlIHNwYWNlLgorLSBJZiB0aGUgbWFwcGluZyBpcyBidWZmZXItbG9jYWwgeW91IG5lZWQgdG8gdXNlICI6dW5tYXAgPGJ1ZmZlcj4iLgorICB8Om1hcC08YnVmZmVyPnwKIAogCQkJCQkJCSpFMzcqICpFODkqICA+CiAgIE5vIHdyaXRlIHNpbmNlIGxhc3QgY2hhbmdlICh1c2UgISB0byBvdmVycmlkZSkKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL29wdGlvbnMudHh0IGIvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQKaW5kZXggNzcxOGE1OC4uZGVhZjU5MCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQKKysrIGIvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQKQEAgLTEsNCArMSw0IEBACi0qb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBkLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDEwCisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBkLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDExCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMCSAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTIwNjgsNiArMjA2OCwxMSBAQAogCUhpZ2hsaWdodCB0aGUgc2NyZWVuIGNvbHVtbiBvZiB0aGUgY3Vyc29yIHdpdGggQ3Vyc29yQ29sdW1uCiAJfGhsLUN1cnNvckNvbHVtbnwuICBVc2VmdWwgdG8gYWxpZ24gdGV4dC4gIFdpbGwgbWFrZSBzY3JlZW4gcmVkcmF3aW5nCiAJc2xvd2VyLgorCUlmIHlvdSBvbmx5IHdhbnQgdGhlIGhpZ2hsaWdodGluZyBpbiB0aGUgY3VycmVudCB3aW5kb3cgeW91IGNhbiB1c2UKKwl0aGVzZSBhdXRvY29tbWFuZHM6ID4KKwkJYXUgV2luTGVhdmUgKiBzZXQgbm9jdXJzb3JsaW5lIG5vY3Vyc29yY29sdW1uCisJCWF1IFdpbkVudGVyICogc2V0IGN1cnNvcmxpbmUgY3Vyc29yY29sdW1uCis8CiAKIAkJCSonY3Vyc29ybGluZScqIConY3VsJyogKidub2N1cnNvcmxpbmUnKiAqJ25vY3VsJyoKICdjdXJzb3JsaW5lJyAnY3VsJwlib29sZWFuCShkZWZhdWx0IG9mZikKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3BpX3ppcC50eHQgYi9ydW50aW1lL2RvYy9waV96aXAudHh0CmluZGV4IGVjYTc3ZGYuLmZhNGYzYjAgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3BpX3ppcC50eHQKKysrIGIvcnVudGltZS9kb2MvcGlfemlwLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp6aXAudHh0KglGb3IgVmltIHZlcnNpb24gNy4wZC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAwMworKnppcC50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBkLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDEwCiAKIAkJCQkrPT09PT09PT09PT09PT09PT09PT0rCiAJCQkJfCBaaXAgRmlsZSBJbnRlcmZhY2UgfApAQCAtMzMsNiArMzMsMTEgQEAKIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAzLiBIaXN0b3J5CQkJCQkqemlwLWhpc3RvcnkqCisgICB2OCBBcHIgMTAsIDIwMDYgKiBCcmFtIE1vb2xlbmFhciByZXBvcnRlZCB0aGF0IGhlIHJlY2VpdmVkIGFuIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgICAgICAgICAgICAgIGR1ZSB0byAiUGF0dGVybiBub3QgZm91bmQ6IF4uKlwlMGMiOyB0aGlzIHdhcyBjYXVzZWQgYnkKKwkJICAgICBzdHJpZHggZmluZGluZyBhIE5hbWUuLi4gYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZTsKKwkJICAgICB6aXAudmltIHRyaWVkIDQsJHMvXi4qXCUwYy8vLCBidXQgdGhhdCBkb2Vzbid0IHdvcmsuCisJCSAgICAgRml4ZWQuCiAgICB2NyBNYXIgMjIsIDIwMDYgKiBlc2NhcGVkIHNvbWUgY2hhcmFjdGVycyB0aGF0IGNhbiBjYXVzZSBmaWxlbmFtZSBoYW5kbGluZwogICAgICAgICAgICAgICAgICAgICAgcHJvYmxlbXMuCiAgICB2NiBEZWMgMjEsIDIwMDUgKiB3cml0aW5nIHRvIGZpbGVzIG5vdCBpbiBkaXJlY3RvcmllcyBjYXVzZWQgcHJvYmxlbXMgLQpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdGFncyBiL3J1bnRpbWUvZG9jL3RhZ3MKaW5kZXggNDEzNGExZC4uN2ZhNDQyZCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdGFncworKysgYi9ydW50aW1lL2RvYy90YWdzCkBAIC0zMTg4LDYgKzMxODgsNyBAQAogQ1RSTC1XX1AJd2luZG93cy50eHQJLypDVFJMLVdfUCoKIENUUkwtV19SCXdpbmRvd3MudHh0CS8qQ1RSTC1XX1IqCiBDVFJMLVdfUwl3aW5kb3dzLnR4dAkvKkNUUkwtV19TKgorQ1RSTC1XX1QJd2luZG93cy50eHQJLypDVFJMLVdfVCoKIENUUkwtV19XCXdpbmRvd3MudHh0CS8qQ1RSTC1XX1cqCiBDVFJMLVdfXQl3aW5kb3dzLnR4dAkvKkNUUkwtV19dKgogQ1RSTC1XX14Jd2luZG93cy50eHQJLypDVFJMLVdfXioKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3RvZG8udHh0IGIvcnVudGltZS9kb2MvdG9kby50eHQKaW5kZXggOTc5OTg4Zi4uNmNhNDdiNiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdG9kby50eHQKKysrIGIvcnVudGltZS9kb2MvdG9kby50eHQKQEAgLTEsNCArMSw0IEBACi0qdG9kby50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGQuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMTAKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wZC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAxMQogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC0zMCw3ICszMCwxMSBAQAogCQkJCQkJCSprbm93bi1idWdzKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0gS25vd24gYnVncyBhbmQgY3VycmVudCB3b3JrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK0luY2x1ZGUgYXV0b2xvYWQveG1sLyoudmltIGZpbGVzPyAgTmVlZCB0byBhZGp1c3QgaW5zdGFsbCBzY3JpcHRzIHRoZW4uCisKICI6bWtzcGVsbCIgc3RpbGwgdGFrZXMgbXVjaCB0b28gbG9uZyBpbiBIdW5nYXJpYW4gZGljdGlvbmFyeS4KKy0gQXJlIGFsbCBwcmVmaXhlcyByZWFsbHkgcG9zdHBvbmVkIG5vdz8KKy0gcG9zdHBvbmUgc2Vjb25kYXJ5IHN1ZmZpeGVzPwogCiBIYW5kbGUgcG9zdHBvbmVkIHByZWZpeCB3aXRoIENPTVBPVU5EUEVSTUlURkxBRyBvciBDT01QT1VOREZPUkJJREZMQUcuCiAgICAgV0ZQX0NPTVBQRVJNSVQgYW5kIFdGUF9DT01QRk9SQklECkBAIC00Nyw4ICs1MSwxNCBAQAogICAgIEhvdyBpcyBpdCBzdXBwb3NlZCB0byB3b3JrPwogLSAgIGltcGxlbWVudCB1c2luZyBDSEVDS0NPTVBPVU5EUEFUVEVSTjogbWF0Y2ggd29yZHMgd2l0aCBzbF9jb21wcGF0W10uCiAKK1VwZGF0ZSB2aV9kaWZmLnR4dCBmb3IgVmltIDcgZmVhdHVyZXMuCisKKzggICB0YWIgcGFnZXMgaW4gdGhlIHNlc3Npb24gZmlsZSwgaWYgInRhYnBhZ2VzIiBpbiAnc2Vzc2lvbm9wdGlvbnMnCisKIEFkZCBtb3JlIHRlc3RzIGZvciBhbGwgbmV3IGZ1bmN0aW9uYWxpdHkgaW4gVmltIDcuICBFc3BlY2lhbGx5IG5ldyBmdW5jdGlvbnMuCiAKK0RvIHNvbWUgb2YgdGhlICdjaW5kZW50JyBidWdzIGJlbG93LgorCiBXaW4zMjogRGVzY3JpYmUgaG93IHRvIGRvIGRlYnVnZ2luZy4gKEdlb3JnZSBSZWlsbHkpCiAKIE1hYyB1bmljb2RlIHBhdGNoIChEYSBXb29uIEp1bmcsIEVja2VoYXJkIEJlcm5zKToKQEAgLTEwOTIsNyArMTEwMiw2IEBACiBUYWIgcGFnZXM6CiA5ICAgR1VJIGltcGxlbWVudGF0aW9uIGZvciB0aGUgdGFiIHBhZ2VzIGxpbmUgZm9yIG90aGVyIHN5c3RlbXMuCiA4ICAgTWFrZSBHVUkgbWVudSBpbiB0YWIgcGFnZXMgbGluZSBjb25maWd1cmFibGUuICBMaWtlIHRoZSBwb3B1cCBtZW51LgotOCAgIHRhYiBwYWdlcyBpbiB0aGUgc2Vzc2lvbiBmaWxlLCBpZiAidGFicGFnZXMiIGluICdzZXNzaW9ub3B0aW9ucycKIDggICA6dGFibW92ZSArTgkgbW92ZSB0YWIgcGFnZSBOIHBhZ2VzIGZvcndhcmQKIDggICA6dGFibW92ZSAtTgkgbW92ZSB0YWIgcGFnZSBOIHBhZ2VzIGJhY2t3YXJkCiA3ICAgOnRhYmR1cAkgZHVwbGljYXRlIHRoZSB0YWIgd2l0aCBhbGwgaXRzIHdpbmRvd3MuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKaW5kZXggYTA3NThhNi4uNGFmYWFlYiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wZC4gIExhc3QgY2hhbmdlOiAyMDA2IEFwciAxMAorKnZlcnNpb243LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjBkLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDExCiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC02MjgsNyArNjI4LDcgQEAKIHw6dml1c2FnZXwJCUhlbHAgZm9yIFZpIGNvbW1hbmRzIChOdmkgY29tbWFuZCkuCiAKIHw6c29ydHwJCQlTb3J0IGxpbmVzIGluIHRoZSBidWZmZXIgd2l0aG91dCBkZXBlbmRpbmcgb24gYW4KLQkJCWV4dGVybmFsIGNvbW1hbmQuCisJCQlleHRlcm5hbCBjb21tYW5kLiAocGFydGx5IGJ5IEJyeWNlIFdhZ25lcikKIAogfDpjYWRkZmlsZXwJCUFkZCBlcnJvciBtZXNzYWdlcyB0byBhbiBleGlzdGluZyBxdWlja2ZpeCBsaXN0CiAJCQkoWWVnYXBwYW4gTGFrc2htYW5hbikuCkBAIC05MTMsNiArOTEzLDcgQEAKIGhlbHAgZnRwbHVnaW4gZmlsZS4gKE5pa29sYWkgV2VpYnVsbCkKIGluZGVudCBmdHBsdWdpbiBmaWxlLiAoTmlrb2xhaSBXZWlidWxsKQogSmF2YXNjcmlwdCBmdHBsdWdpbiBmaWxlLiAoQnJhbSBNb29sZW5hYXIpCitLY29uZmlnIGZ0cGx1Z2luIGFuZCBzeW50YXggZmlsZS4gKE5pa29sYWkgV2VpYnVsbCkKIGxkIHN5bnRheCwgaW5kZW50IGFuZCBmdHBsdWdpbiBmaWxlLiAoTmlrb2xhaSBXZWlidWxsKQogbGZ0cCBmdHBsdWdpbiBmaWxlLiAoTmlrb2xhaSBXZWlidWxsKQogbGliYW8gY29uZmlnIGZ0cGx1Z2luIGZpbGUuIChOaWtvbGFpIFdlaWJ1bGwpCkBAIC0yNDIwLDQgKzI0MjEsMjYgQEAKIAogQWRkZWQgInVzZXRhYiIgdG8gJ3N3aXRjaGJ1ZicuCiAKKworLS0tIGZpeGVzIGFuZCBjaGFuZ2VzIHNpbmNlIFZpbSA3LjBkIC0tLQorCitBZGRlZCBDVFJMLVcgVDogbW92ZSBhIHdpbmRvdyB0byBhIG5ldyB0YWIgcGFnZS4KKworVXNpbmcgQ1RSTC1YIHMgaW4gSW5zZXJ0IG1vZGUgdG8gY29tcGxldGUgc3BlbGxpbmcgc3VnZ2VzdGlvbnMgYW5kIHVzaW5nIEJTCitkZWxldGVkIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBiYWQgd29yZC4KKworQSBmZXcgc21hbGwgZml4ZXMgZm9yIHRoZSBWTVMgbWFrZWZpbGUuIChab2x0YW4gQXJwYWRmZnkpCisKK1dpdGggYSB3aW5kb3cgb2YgOTEgbGluZXMgNDUgY29scywgIjp2c3AiIHNjcm9sbGVkIHRoZSB3aW5kb3cuICBDb3B5IHdfd3Jvdword2hlbiBzcGxpdHRpbmcgYSB3aW5kb3cgYW5kIHNraXAgc2V0dGluZyB0aGUgaGVpZ2h0IHdoZW4gaXQncyBhbHJlYWR5IGF0IHRoZQorcmlnaHQgdmFsdWUuCisKK1VzaW5nIDxzaWxlbnQ+IGluIGEgbWFwcGluZyB3aXRoIGEgc2hlbGwgY29tbWFuZCBhbmQgdGhlIEdVSSBjYXVzZWQgcmVkcmF3Cit0byB1c2Ugd3JvbmcgYXR0cmlidXRlcy4KKworV2luMzI6IFVzaW5nIE1TVkMgNC4xIGZvciBpbnN0YWxsLmV4ZSByZXN1bHRlZCBpbiB0aGUgc3RhcnQgbWVudSBpdGVtcyB0byBiZQorY3JlYXRlZCBpbiB0aGUgYWRtaW5pc3RyYXRvciBkaXJlY3RvcnkgaW5zdGVhZCBvZiAiQWxsIFVzZXJzIi4gIERlZmluZSB0aGUKK0NTSURMXyBpdGVtcyBpZiB0aGV5IGFyZSBtaXNzaW5nLgorCisKICB2aW06dHc9Nzg6dHM9ODpmdD1oZWxwOm5vcmw6CmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aW0tZnIuMSBiL3J1bnRpbWUvZG9jL3ZpbS1mci4xCmluZGV4IDk1NmMxMjAuLjgyMDk4NTcgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZpbS1mci4xCisrKyBiL3J1bnRpbWUvZG9jL3ZpbS1mci4xCkBAIC0xLDcgKzEsNyBAQAogLlwiIFRyYWR1Y3Rpb24gTHVuZGkgNyBhb/t0IDIwMDAgcGFyIFJpY2hhcmQgSGl0aWVyCiAuXCIgKHJpY2hhcmQuaGl0aWVyQGRpYWwub2xlYW5lLmNvbSkKIC5cIiBNaXNlIOAgam91ciBkZSBsYSB0cmFkdWN0aW9uIHBhciBEYXZpZCBCbGFuY2hldAotLlwiIChkYXZpZC5ibGFuY2hldEBmcmVlLmZyKSAyMDA1LTAxLTE3CisuXCIgKGRhdmlkLmJsYW5jaGV0QGZyZWUuZnIpIDIwMDYtMDYtMTAKIC5cIgogLlRIIFZJTSAxICIyMiBG6XZyaWVyIDIwMDIiCiAuU0ggTk9NCkBAIC0zMjUsNiArMzI1LDEwIEBACiBPdXZyZSBOIGZlbup0cmVzIGP0dGUg4CBj9HRlLgogUXVhbmQgTiBlc3Qgb21pcywgb3V2cmUgdW5lIGZlbup0cmUgcG91ciBjaGFxdWUgZmljaGllciBmaWNoaWVyLgogLlRQCitcLXBbTl0KK091dnJlIE4gb25nbGV0cy4KK1F1YW5kIE4gZXN0IG9taXMsIG91dnJlIHVuIG9uZ2xldCBwb3VyIGNoYXF1ZSBmaWNoaWVyIGZpY2hpZXIuCisuVFAKIFwtUgogTW9kZSBMZWN0dXJlLVNldWxlLgogQWN0aXZlIGwnb3B0aW9uICdyZWFkb25seScuCkBAIC01NzksNCArNTgzLDQgQEAKIDxyaWNoYXJkLmhpdGllckBkaWFsLm9sZWFuZS5jb20+IDIwMDAtMDgtMDcuCiAuYnIKIENldHRlIHBhZ2UgZGUgbWFudWVsIGEg6XTpIG1pc2Ug4CBqb3VyIHBhciBEYXZpZCBCbGFuY2hldC4KLTxkYXZpZC5ibGFuY2hldEBmcmVlLmZyPiAyMDA1LTAxLTE3LgorPGRhdmlkLmJsYW5jaGV0QGZyZWUuZnI+IDIwMDYtMDQtMTAuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92aW0tZnIuVVRGLTguMSBiL3J1bnRpbWUvZG9jL3ZpbS1mci5VVEYtOC4xCmluZGV4IGQ5YjdjZjQuLmEyMWFkMDYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3ZpbS1mci5VVEYtOC4xCisrKyBiL3J1bnRpbWUvZG9jL3ZpbS1mci5VVEYtOC4xCkBAIC0xLDcgKzEsNyBAQAogLlwiIFRyYWR1Y3Rpb24gTHVuZGkgNyBhb8O7dCAyMDAwIHBhciBSaWNoYXJkIEhpdGllcgogLlwiIChyaWNoYXJkLmhpdGllckBkaWFsLm9sZWFuZS5jb20pCiAuXCIgTWlzZSDDoCBqb3VyIGRlIGxhIHRyYWR1Y3Rpb24gcGFyIERhdmlkIEJsYW5jaGV0Ci0uXCIgKGRhdmlkLmJsYW5jaGV0QGZyZWUuZnIpIDIwMDUtMDEtMTcKKy5cIiAoZGF2aWQuYmxhbmNoZXRAZnJlZS5mcikgMjAwNi0wNi0xMAogLlwiCiAuVEggVklNIDEgIjIyIEbDqXZyaWVyIDIwMDIiCiAuU0ggTk9NCkBAIC0zMjUsNiArMzI1LDEwIEBACiBPdXZyZSBOIGZlbsOqdHJlcyBjw7R0ZSDDoCBjw7R0ZS4KIFF1YW5kIE4gZXN0IG9taXMsIG91dnJlIHVuZSBmZW7DqnRyZSBwb3VyIGNoYXF1ZSBmaWNoaWVyIGZpY2hpZXIuCiAuVFAKK1wtcFtOXQorT3V2cmUgTiBvbmdsZXRzLgorUXVhbmQgTiBlc3Qgb21pcywgb3V2cmUgdW4gb25nbGV0IHBvdXIgY2hhcXVlIGZpY2hpZXIgZmljaGllci4KKy5UUAogXC1SCiBNb2RlIExlY3R1cmUtU2V1bGUuCiBBY3RpdmUgbCdvcHRpb24gJ3JlYWRvbmx5Jy4KQEAgLTU3OSw0ICs1ODMsNCBAQAogPHJpY2hhcmQuaGl0aWVyQGRpYWwub2xlYW5lLmNvbT4gMjAwMC0wOC0wNy4KIC5icgogQ2V0dGUgcGFnZSBkZSBtYW51ZWwgYSDDqXTDqSBtaXNlIMOgIGpvdXIgcGFyIERhdmlkIEJsYW5jaGV0LgotPGRhdmlkLmJsYW5jaGV0QGZyZWUuZnI+IDIwMDUtMDEtMTcuCis8ZGF2aWQuYmxhbmNoZXRAZnJlZS5mcj4gMjAwNi0wNC0xMC4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3ZpbS4xIGIvcnVudGltZS9kb2MvdmltLjEKaW5kZXggY2RmNzFhYy4uNGU5MGRhMiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmltLjEKKysrIGIvcnVudGltZS9kb2MvdmltLjEKQEAgLTEsNCArMSw0IEBACi0uVEggVklNIDEgIjIwMDIgRmViIDIyIgorLlRIIFZJTSAxICIyMDA2IEFwciAxMSIKIC5TSCBOQU1FCiB2aW0gXC0gVmkgSU1wcm92ZWQsIGEgcHJvZ3JhbW1lcnMgdGV4dCBlZGl0b3IKIC5TSCBTWU5PUFNJUwpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdmltLm1hbiBiL3J1bnRpbWUvZG9jL3ZpbS5tYW4KaW5kZXggOWI3MGU3Zi4uZmE1YzVjOCAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmltLm1hbgorKysgYi9ydW50aW1lL2RvYy92aW0ubWFuCkBAIC00MjUsNCArNDI1LDQgQEAKIAogCiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDAyIEZlYiAyMiAgICAgICAgICAgICAgICAgICAgICAgICAgIFZJTSgxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDYgQXByIDExICAgICAgICAgICAgICAgICAgICAgICAgICAgVklNKDEpCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy93aW5kb3dzLnR4dCBiL3J1bnRpbWUvZG9jL3dpbmRvd3MudHh0CmluZGV4IGM0YWViODcuLjQ5OWI2Y2EgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZG9jL3dpbmRvd3MudHh0CisrKyBiL3J1bnRpbWUvZG9jL3dpbmRvd3MudHh0CkBAIC0xLDQgKzEsNCBAQAotKndpbmRvd3MudHh0KiAgIEZvciBWaW0gdmVyc2lvbiA3LjBkLiAgTGFzdCBjaGFuZ2U6IDIwMDYgQXByIDA2Cisqd2luZG93cy50eHQqICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGQuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMTAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTQzNCw2ICs0MzQsMTMgQEAKIAkJY29udGVudHMgaXMgdXNlZCBmb3IgdGhlIG5ldyB3aW5kb3cuCiAJCXtub3QgYXZhaWxhYmxlIHdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUgK3ZlcnRzcGxpdCBmZWF0dXJlfQogCisJCQkJCQkqQ1RSTC1XX1QqCitDVFJMLVcgVAlNb3ZlIHRoZSBjdXJyZW50IHdpbmRvdyB0byBhIG5ldyB0YWIgcGFnZS4gIFRoaXMgZmFpbHMgaWYKKwkJdGhlcmUgaXMgb25seSBvbmUgd2luZG93IGluIHRoZSBjdXJyZW50IHRhYiBwYWdlLgorCQlXaGVuIGEgY291bnQgaXMgc3BlY2lmaWVkIHRoZSBuZXcgdGFiIHBhZ2Ugd2lsbCBiZSBvcGVuZWQKKwkJYmVmb3JlIHRoZSB0YWIgcGFnZSB3aXRoIHRoaXMgaW5kZXguICBPdGhlcndpc2UgaXQgY29tZXMgYWZ0ZXIKKwkJdGhlIGN1cnJlbnQgdGFiIHBhZ2UuCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogNi4gV2luZG93IHJlc2l6aW5nCQkJCQkqd2luZG93LXJlc2l6ZSoKIApkaWZmIC0tZ2l0IGEvcnVudGltZS9maWxldHlwZS52aW0gYi9ydW50aW1lL2ZpbGV0eXBlLnZpbQppbmRleCA4ZDFmMTU1Li4zYWExZWU3IDEwMDY0NAotLS0gYS9ydW50aW1lL2ZpbGV0eXBlLnZpbQorKysgYi9ydW50aW1lL2ZpbGV0eXBlLnZpbQpAQCAtMSw3ICsxLDcgQEAKICIgVmltIHN1cHBvcnQgZmlsZSB0byBkZXRlY3QgZmlsZSB0eXBlcwogIgogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNiBBcHIgMDQKKyIgTGFzdCBDaGFuZ2U6CTIwMDYgQXByIDExCiAKICIgTGlzdGVuIHZlcnkgY2FyZWZ1bGx5LCBJIHdpbGwgc2F5IHRoaXMgb25seSBvbmNlCiBpZiBleGlzdHMoImRpZF9sb2FkX2ZpbGV0eXBlcyIpCkBAIC03ODQsNiArNzg0LDkgQEAKICIgS0RFIHNjcmlwdAogYXUgQnVmTmV3RmlsZSxCdWZSZWFkICoua3MJCQlzZXRmIGtzY3JpcHQKIAorIiBLY29uZmlnCithdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgS2NvbmZpZyxLY29uZmlnLmRlYnVnCXNldGYga2NvbmZpZworCiAiIExhY2UgKElTRSkKIGF1IEJ1Zk5ld0ZpbGUsQnVmUmVhZCAqLmFjZSwqLkFDRQkJc2V0ZiBsYWNlCiAKQEAgLTE2NjIsMTMgKzE2NjUsMjUgQEAKICIgU3Vkb2VycwogYXUgQnVmTmV3RmlsZSxCdWZSZWFkIC9ldGMvc3Vkb2VycyxzdWRvZXJzLnRtcAlzZXRmIHN1ZG9lcnMKIAorIiBJZiB0aGUgZmlsZSBoYXMgYW4gZXh0ZW5zaW9uIG9mICd0JyBhbmQgaXMgaW4gYSBkaXJlY3RvcnkgJ3QnIHRoZW4gaXQgaXMKKyIgYWxtb3N0IGNlcnRhaW5seSBhIFBlcmwgdGVzdCBmaWxlLgogIiBJZiB0aGUgZmlyc3QgbGluZSBzdGFydHMgd2l0aCAnIycgYW5kIGNvbnRhaW5zICdwZXJsJyBpdCdzIHByb2JhYmx5IGEgUGVybAogIiBmaWxlLgorIiAoU2xvdyB0ZXN0KSBJZiBhIGZpbGUgY29udGFpbnMgYSAndXNlJyBzdGF0ZW1lbnQgdGhlbiBpdCBpcyBhbG1vc3QgY2VydGFpbmx5CisiIGEgUGVybCBmaWxlLgogZnVuISBzOkZUcGVybCgpCisgIGlmIGV4cGFuZCgiJTplIikgPT0gJ3QnICYmIGV4cGFuZCgiJTpwOmg6dCIpID09ICd0JworICAgIHNldGYgcGVybAorICAgIHJldHVybiAxCisgIGVuZGlmCiAgIGlmIGdldGxpbmUoMSlbMF0gPT0gJyMnICYmIGdldGxpbmUoMSkgPX4gJ3BlcmwnCiAgICAgc2V0ZiBwZXJsCiAgICAgcmV0dXJuIDEKICAgZW5kaWYKKyAgaWYgc2VhcmNoKCdedXNlXHNccypcaycsICduYycsIDMwKQorICAgIHNldGYgcGVybAorICAgIHJldHVybiAxCisgIGVuZGlmCiAgIHJldHVybiAwCiBlbmRmdW4KIApAQCAtMTk2MSw3ICsxOTc2LDcgQEAKICIgWm9wZQogIiAgIGR0bWwgKHpvcGUgZHluYW1pYyB0ZW1wbGF0ZSBtYXJrdXAgbGFuZ3VhZ2UpLCBwdCAoem9wZSBwYWdlIHRlbXBsYXRlKSwKICIgICBjcHQgKHpvcGUgZm9ybSBjb250cm9sbGVyIHBhZ2UgdGVtcGxhdGUpCi1hdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi5kdG1sLCoucHQsKi5jcHQJCWNhbGwgPFNJRD5GVENoZWNrX2h0bWwoKQorYXUgQnVmTmV3RmlsZSxCdWZSZWFkICouZHRtbCwqLnB0LCouY3B0CQljYWxsIHM6RlRodG1sKCkKICIgICB6c3FsICh6b3BlIHNxbCBtZXRob2QpCiBhdSBCdWZOZXdGaWxlLEJ1ZlJlYWQgKi56c3FsCQkJY2FsbCBzOlNRTCgpCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvZnRwbHVnaW4va2NvbmZpZy52aW0gYi9ydW50aW1lL2Z0cGx1Z2luL2tjb25maWcudmltCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhMWE1NmIKLS0tIC9kZXYvbnVsbAorKysgYi9ydW50aW1lL2Z0cGx1Z2luL2tjb25maWcudmltCkBAIC0wLDAgKzEsMTQgQEAKKyIgVmltIGZpbGV0eXBlIHBsdWdpbiBmaWxlCisiIE1haW50YWluZXI6ICAgICAgIE5pa29sYWkgV2VpYnVsbCA8bm93QGJpdHdpLnNlPgorIiBMYXRlc3QgUmV2aXNpb246ICAyMDA2LTA0LTEwCisKK2lmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKQorICBmaW5pc2gKK2VuZGlmCitsZXQgYjpkaWRfZnRwbHVnaW4gPSAxCisKK2xldCBiOnVuZG9fZnRwbHVnaW4gPSAic2V0bCBjb208IGNtczwgZm88IgorCitzZXRsb2NhbCBjb21tZW50cz06IyBjb21tZW50c3RyaW5nPSNcICVzIGZvcm1hdG9wdGlvbnMtPXQgZm9ybWF0b3B0aW9ucys9Y3JvcWwKKworCmRpZmYgLS1naXQgYS9ydW50aW1lL2Z0cGx1Z2luL29jYW1sLnZpbSBiL3J1bnRpbWUvZnRwbHVnaW4vb2NhbWwudmltCmluZGV4IDZmMmIxN2MuLjBiOTgxOWEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvZnRwbHVnaW4vb2NhbWwudmltCisrKyBiL3J1bnRpbWUvZnRwbHVnaW4vb2NhbWwudmltCkBAIC00LDExICs0LDEyIEBACiAiICAgICAgICAgICAgICBNYXJrdXMgTW90dGwgICAgICAgIDxtYXJrdXMubW90dGxAZ21haWwuY29tPgogIiAgICAgICAgICAgICAgU3RlZmFubyBaYWNjaGlyb2xpICA8emFja0Bib25vbmlhLml0PgogIiBVUkw6ICAgICAgICAgaHR0cDovL3d3dy5vY2FtbC5pbmZvL3ZpbS9mdHBsdWdpbi9vY2FtbC52aW0KLSIgTGFzdCBDaGFuZ2U6IDIwMDYgRmViIDA1CisiIExhc3QgQ2hhbmdlOiAyMDA2IEFwciAxMSAtIEZpeGVkIGFuIGluaXRpYWxpemF0aW9uIGJ1ZzsgZml4ZWQgQVNTIGFiYnJldiAoTU0pCisiICAgICAgICAgICAgICAyMDA1IE9jdCAxMyAtIHJlbW92ZWQgR1BMOyBiZXR0ZXIgbWF0Y2hpdCBzdXBwb3J0IChNTSwgU1opCiAiCi0iIGlmIGV4aXN0cygiYjpkaWRfZnRwbHVnaW4iKQotIiAgIGZpbmlzaAotIiBlbmRpZgoraWYgZXhpc3RzKCJiOmRpZF9mdHBsdWdpbiIpCisgIGZpbmlzaAorZW5kaWYKIGxldCBiOmRpZF9mdHBsdWdpbj0xCiAKICIgRXJyb3IgaGFuZGxpbmcgLS0gaGVscHMgbW92aW5nIHdoZXJlIHRoZSBjb21waWxlciB3YW50cyB5b3UgdG8gZ28KQEAgLTQ0LDcgKzQ1LDcgQEAKICAgdm5vcmVtYXAgPGJ1ZmZlcj4gPFBsdWc+QlVuY29tT2ZmIDxFU0M+Oic8LCc+PENSPmA8ZGRgPmRkYDwKIAogICBpZiAhaGFzbWFwdG8oJzxQbHVnPkFiYnJldicpCi0gICAgaWFiYnJldiA8YnVmZmVyPiBBU1MgKGFzc2VydCBmYWxzZSAoKiBYWFggKikpCisgICAgaWFiYnJldiA8YnVmZmVyPiBBU1MgKGFzc2VydCAoMD0xKSAoKiBYWFggKikpCiAgIGVuZGlmCiBlbmRpZgogCmRpZmYgLS1naXQgYS9ydW50aW1lL2luZGVudC9odG1sLnZpbSBiL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCmluZGV4IGQ3OGRhMTkuLjZjMmQ0OTkgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCisrKyBiL3J1bnRpbWUvaW5kZW50L2h0bWwudmltCkBAIC0xLDggKzEsOCBAQAogIiBEZXNjcmlwdGlvbjoJaHRtbCBpbmRlbnRlcgogIiBBdXRob3I6CUpvaGFubmVzIFplbGxuZXIgPGpvaGFubmVzQHplbGxuZXIub3JnPgogIiBMYXN0IENoYW5nZToJVHVlLCAyNyBBcHIgMjAwNCAxMDoyODozOSBDRVNUCi0iIEdsb2JhbHM6CWc6aHRtbF9pbmRlbnRfdGFncwkgICAtLSBpbmRlbnRpbmcgdGFncwotIgkJZzpodG1sX2luZGVudF9zdHJpY3QJICAgLS0gaW5oaWJpdCAnTyBPJyBlbGVtZW50cworIiBHbG9iYWxzOglnOmh0bWxfaW5kZW50X3RhZ3MgICAgICAgICAtLSBpbmRlbnRpbmcgdGFncworIgkJZzpodG1sX2luZGVudF9zdHJpY3QgICAgICAgLS0gaW5oaWJpdCAnTyBPJyBlbGVtZW50cwogIgkJZzpodG1sX2luZGVudF9zdHJpY3RfdGFibGUgLS0gaW5oaWJpdCAnTyAtJyBlbGVtZW50cwogCiAiIE9ubHkgbG9hZCB0aGlzIGluZGVudCBmaWxlIHdoZW4gbm8gb3RoZXIgd2FzIGxvYWRlZC4KQEAgLTE0LDcgKzE0LDcgQEAKIAogIiBbLS0gbG9jYWwgc2V0dGluZ3MgKG11c3QgY29tZSBiZWZvcmUgYWJvcnRpbmcgdGhlIHNjcmlwdCkgLS1dCiBzZXRsb2NhbCBpbmRlbnRleHByPUh0bWxJbmRlbnRHZXQodjpsbnVtKQotc2V0bG9jYWwgaW5kZW50a2V5cz1vLE8sKjxSZXR1cm4+LDw+Piw8YnM+LHssfQorc2V0bG9jYWwgaW5kZW50a2V5cz1vLE8sKjxSZXR1cm4+LDw+Pix7LH0KIAogCiBpZiBleGlzdHMoJ2c6aHRtbF9pbmRlbnRfdGFncycpCmRpZmYgLS1naXQgYS9ydW50aW1lL21ha2VtZW51LnZpbSBiL3J1bnRpbWUvbWFrZW1lbnUudmltCmluZGV4IDAyOTA1YzkuLjkxOTRlOWYgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbWFrZW1lbnUudmltCisrKyBiL3J1bnRpbWUvbWFrZW1lbnUudmltCkBAIC0xLDYgKzEsNiBAQAogIiBTY3JpcHQgdG8gZGVmaW5lIHRoZSBzeW50YXggbWVudSBpbiBzeW5tZW51LnZpbQogIiBNYWludGFpbmVyOglCcmFtIE1vb2xlbmFhciA8QnJhbUB2aW0ub3JnPgotIiBMYXN0IENoYW5nZToJMjAwNiBBcHIgMTAKKyIgTGFzdCBDaGFuZ2U6CTIwMDYgQXByIDExCiAKICIgVGhpcyBpcyB1c2VkIGJ5ICJtYWtlIG1lbnUiIGluIHRoZSBzcmMgZGlyZWN0b3J5LgogZWRpdCA8c2ZpbGU+OnA6aC9zeW5tZW51LnZpbQpAQCAtMjM3LDYgKzIzNyw3IEBACiBTeW5NZW51IEhJSksuSmF2YVNjcmlwdDpqYXZhc2NyaXB0CiBTeW5NZW51IEhJSksuSmVzczpqZXNzCiBTeW5NZW51IEhJSksuSmdyYXBoOmpncmFwaAorU3luTWVudSBISUpLLktjb25maWc6a2NvbmZpZwogU3luTWVudSBISUpLLktERVwgc2NyaXB0OmtzY3JpcHQKIFN5bk1lbnUgSElKSy5LaW13aXR1Kys6a3d0CiBTeW5NZW51IEhJSksuS2l4VGFydDpraXgKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3lubWVudS52aW0gYi9ydW50aW1lL3N5bm1lbnUudmltCmluZGV4IGU3YWVjMDkuLjFiZGE1MjEgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3lubWVudS52aW0KKysrIGIvcnVudGltZS9zeW5tZW51LnZpbQpAQCAtMjEzLDkgKzIxMywxMCBAQAogYW4gNTAuNTAuNDUwICZTeW50YXguSElKSy5KYXZhU2NyaXB0IDpjYWwgU2V0U3luKCJqYXZhc2NyaXB0Iik8Q1I+CiBhbiA1MC41MC40NjAgJlN5bnRheC5ISUpLLkplc3MgOmNhbCBTZXRTeW4oImplc3MiKTxDUj4KIGFuIDUwLjUwLjQ3MCAmU3ludGF4LkhJSksuSmdyYXBoIDpjYWwgU2V0U3luKCJqZ3JhcGgiKTxDUj4KLWFuIDUwLjUwLjQ5MCAmU3ludGF4LkhJSksuS0RFXCBzY3JpcHQgOmNhbCBTZXRTeW4oImtzY3JpcHQiKTxDUj4KLWFuIDUwLjUwLjUwMCAmU3ludGF4LkhJSksuS2ltd2l0dSsrIDpjYWwgU2V0U3luKCJrd3QiKTxDUj4KLWFuIDUwLjUwLjUxMCAmU3ludGF4LkhJSksuS2l4VGFydCA6Y2FsIFNldFN5bigia2l4Iik8Q1I+CithbiA1MC41MC40OTAgJlN5bnRheC5ISUpLLktjb25maWcgOmNhbCBTZXRTeW4oImtjb25maWciKTxDUj4KK2FuIDUwLjUwLjUwMCAmU3ludGF4LkhJSksuS0RFXCBzY3JpcHQgOmNhbCBTZXRTeW4oImtzY3JpcHQiKTxDUj4KK2FuIDUwLjUwLjUxMCAmU3ludGF4LkhJSksuS2ltd2l0dSsrIDpjYWwgU2V0U3luKCJrd3QiKTxDUj4KK2FuIDUwLjUwLjUyMCAmU3ludGF4LkhJSksuS2l4VGFydCA6Y2FsIFNldFN5bigia2l4Iik8Q1I+CiBhbiA1MC42MC4xMDAgJlN5bnRheC5MLU1hLkxhY2UgOmNhbCBTZXRTeW4oImxhY2UiKTxDUj4KIGFuIDUwLjYwLjExMCAmU3ludGF4LkwtTWEuTGFtZGFQcm9sb2cgOmNhbCBTZXRTeW4oImxwcm9sb2ciKTxDUj4KIGFuIDUwLjYwLjEyMCAmU3ludGF4LkwtTWEuTGF0dGUgOmNhbCBTZXRTeW4oImxhdHRlIik8Q1I+CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9jbC52aW0gYi9ydW50aW1lL3N5bnRheC9jbC52aW0KaW5kZXggM2M2ZjQxYi4uMzAzMDhlMSAxMDA2NDQKLS0tIGEvcnVudGltZS9zeW50YXgvY2wudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2NsLnZpbQpAQCAtMSw4ICsxLDkgQEAKICIgVmltIHN5bnRheCBmaWxlCiAiIExhbmd1YWdlOgljbCAoIkNsZXZlciBMYW5ndWFnZSIgYnkgTXVsdGliYXNlLCBodHRwOi8vd3d3Lm1iYXNlLmNvbS5hdSkKICIgRmlsZW5hbWUgZXh0ZW5zaW9uczogKi5lbnQsICouZW5pCi0iIE1haW50YWluZXI6CVBoaWxpcCBVcmVuIDxwaGlsdUBzeXN0ZW03Ny5jb20+Ci0iIExhc3QgdXBkYXRlOglXZWQgTWF5ICAyIDEwOjMwOjMwIEVTVCAyMDAxCisiIE1haW50YWluZXI6CVBoaWxpcCBVcmVuIDxwaGlsdVNQQVhAaWVlZS5vcmc+IC0gUmVtb3ZlIFNQQVggc3BhbSBibG9jaworIiBMYXN0IHVwZGF0ZToJVHVlIEFwciAxMSAxMDoxOTowMSBFU1QgMjAwNgorIiAkSWQkCiAKICIgRm9yIHZlcnNpb24gNS54OiBDbGVhciBhbGwgc3ludGF4IGl0ZW1zCiAiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCkBAIC0yOCwxMiArMjksMTUgQEAKIHN5biBtYXRjaCAgIGNsaWZFcnJvcgkJIlw8ZWxzZVw+Igogc3luIG1hdGNoICAgY2xpZkVycm9yCQkiXDxlbmRpZlw+IgogCitzeW4gbWF0Y2ggICBjbFNwYWNlRXJyb3IJIlxzXCskIgorCiAiIElmIGFuZCB3aGlsZSByZWdpb25zCiBzeW4gcmVnaW9uIGNsTG9vcAl0cmFuc3BhcmVudCBtYXRjaGdyb3VwPWNsV2hpbGUgc3RhcnQ9Ilw8d2hpbGVcPiIgbWF0Y2hncm91cD1jbFdoaWxlIGVuZD0iXDx3ZW5kXD4iIGNvbnRhaW5zPUFMTEJVVCxjbEJyZWFrLGNsUHJvY2VkdXJlCiBzeW4gcmVnaW9uIGNsSWYJCXRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9Y2xDb25kaXRpb25hbCBzdGFydD0iXDxpZlw+IiBtYXRjaGdyb3VwPWNsQ29uZGl0aW9uYWwgZW5kPSJcPGVuZGlmXD4iICAgY29udGFpbnM9QUxMQlVULGNsQnJlYWssY2xQcm9jZWR1cmUKIAogIiBNYWtlIHRob3NlIFRPRE8gbm90ZXMgYW5kIGRlYnVnZ2luZyBzdGFuZCBvdXQhCiBzeW4ga2V5d29yZAljbFRvZG8JCQljb250YWluZWQJVE9ETyBCVUcgREVCVUcgRklYCitzeW4gbWF0Y2gJY2xOZWVkc1dvcmsJCWNvbnRhaW5lZAkiTkVFRFtTXSpcc1xzKldPUksiCiBzeW4ga2V5d29yZCBjbERlYnVnCQkJY29udGFpbmVkCWRlYnVnCiAKIHN5biBtYXRjaAljbENvbW1lbnQJCSIjLiokIgkJY29udGFpbnM9Y2xUb2RvLGNsTmVlZHNXb3JrCkBAIC03Nyw2ICs4MSw3IEBACiAJZW5kaWYKIAogCUhpTGluayBjbGlmRXJyb3IJCQlFcnJvcgorCUhpTGluayBjbFNwYWNlRXJyb3IJCQlFcnJvcgogCUhpTGluayBjbFdoaWxlCQkJCVJlcGVhdAogCUhpTGluayBjbENvbmRpdGlvbmFsCQlDb25kaXRpb25hbAogCUhpTGluayBjbERlYnVnCQkJCURlYnVnCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9kdGQudmltIGIvcnVudGltZS9zeW50YXgvZHRkLnZpbQppbmRleCAwZjgwZTE5Li43Njc3OGJhIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9kdGQudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L2R0ZC52aW0KQEAgLTUyLDExICs1MiwxMSBAQAogCiAiIGlmIHRoaXMgaXMgYSBodG1sIGxpa2UgY29tbWVudCBoaWdodGxpZ2h0IGFsc28KICIgdGhlIG9wZW5pbmcgPCEgYW5kIHRoZSBjbG9zaW5nID4gYXMgQ29tbWVudC4KLXN5biByZWdpb24gZHRkQ29tbWVudAkJc3RhcnQ9KzwhWyBcdF0qLS0rIGVuZD0rLS0+KyBjb250YWlucz1kdGRUb2RvCitzeW4gcmVnaW9uIGR0ZENvbW1lbnQJCXN0YXJ0PSs8IVsgXHRdKi0tKyBlbmQ9Ky0tPisgY29udGFpbnM9ZHRkVG9kbyxAU3BlbGwKIAogCiAiIHByb3BlciBEVEQgY29tbWVudAotc3luIHJlZ2lvbiBkdGRDb21tZW50IGNvbnRhaW5lZCBzdGFydD0rLS0rIGVuZD0rLS0rIGNvbnRhaW5zPWR0ZFRvZG8KK3N5biByZWdpb24gZHRkQ29tbWVudCBjb250YWluZWQgc3RhcnQ9Ky0tKyBlbmQ9Ky0tKyBjb250YWlucz1kdGRUb2RvLEBTcGVsbAogCiAKICIgU3RhcnQgdGFncyAoa2V5d29yZHMpLiBUaGlzIGlzIGNvbnRhaW5lZCBpbiBkdGRGdW5jdGlvbi4KZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L2tjb25maWcudmltIGIvcnVudGltZS9zeW50YXgva2NvbmZpZy52aW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjc5MTAxNAotLS0gL2Rldi9udWxsCisrKyBiL3J1bnRpbWUvc3ludGF4L2tjb25maWcudmltCkBAIC0wLDAgKzEsNzI4IEBACisiIFZpbSBzeW50YXggZmlsZQorIiBNYWludGFpbmVyOiAgICAgICBOaWtvbGFpIFdlaWJ1bGwgPG5vd0BiaXR3aS5zZT4KKyIgTGF0ZXN0IFJldmlzaW9uOiAgMjAwNi0wNC0xMQorCitpZiBleGlzdHMoImI6Y3VycmVudF9zeW50YXgiKQorICBmaW5pc2gKK2VuZGlmCisKK2xldCBzOmNwb19zYXZlID0gJmNwbworc2V0IGNwbyZ2aW0KKworaWYgZXhpc3RzKCJnOmtjb25maWdfc3ludGF4X2hlYXZ5IikKKworc3luIG1hdGNoICAga2NvbmZpZ0JlZ2luICAgICAgICAgICAgICAnXicgbmV4dGdyb3VwPWtjb25maWdLZXl3b3JkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBrZXl3b3JkIGtjb25maWdUb2RvICAgICAgICAgICAgICAgY29udGFpbmVkIFRPRE8gRklYTUUgWFhYIE5PVEUKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbW1lbnQgICAgICAgICAgICBkaXNwbGF5ICcjLiokJyBjb250YWlucz1rY29uZmlnVG9kbworCitzeW4ga2V5d29yZCBrY29uZmlnS2V5d29yZCAgICAgICAgICAgIGNvbmZpZyBuZXh0Z3JvdXA9a2NvbmZpZ1N5bWJvbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4ga2V5d29yZCBrY29uZmlnS2V5d29yZCAgICAgICAgICAgIG1lbnVjb25maWcgbmV4dGdyb3VwPWtjb25maWdTeW1ib2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUKKworc3luIGtleXdvcmQga2NvbmZpZ0tleXdvcmQgICAgICAgICAgICBjb21tZW50IG1lbnUgbWFpbm1lbnUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9a2NvbmZpZ0tleXdvcmRQcm9tcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUKKworc3luIGtleXdvcmQga2NvbmZpZ0tleXdvcmQgICAgICAgICAgICBjaG9pY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25maWdPcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4ga2V5d29yZCBrY29uZmlnS2V5d29yZCAgICAgICAgICAgIGVuZG1lbnUgZW5kY2hvaWNlCisKK3N5biBrZXl3b3JkIGtjb25maWdQcmVQcm9jICAgICAgICAgICAgc291cmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdQYXRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKKyIgVE9ETzogVGhpcyBpcyBhIGhhY2suICBUaGUgd2hvIC4qRXhwciBzdHVmZiBzaG91bGQgcmVhbGx5IGJlIGdlbmVyYXRlZCBzbworIiB0aGF0IHdlIGNhbiByZXVzZSBpdCBmb3IgdmFyaW91cyBuZXh0Z3JvdXBzLgorc3luIGtleXdvcmQga2NvbmZpZ0NvbmRpdGlvbmFsICAgICAgICBpZiBlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbklmRXhwcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gbWF0Y2ggICBrY29uZmlnS2V5d29yZFByb21wdCAgICAgICciW14iXFxdKlwlKFxcLlteIlxcXSpcKSoiJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBtYXRjaCAgIGtjb25maWdQYXRoICAgICAgICAgICAgICAgJyJbXiJcXF0qXCUoXFwuW14iXFxdKlwpKiJcfFxTXCsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisKK3N5biBtYXRjaCAgIGtjb25maWdTeW1ib2wgICAgICAgICAgICAgJ1w8XGtcK1w+JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKKyIgRklYTUU6IFRoZXJlIGlzIOKAkyBwcm9iYWJseSDigJMgbm8gcmVhc29uIHRvIGNsdXN0ZXIgdGhlc2UgaW5zdGVhZCBvZiBqdXN0CisiIGRlZmluaW5nIHRoZW0gaW4gdGhlIHNhbWUgZ3JvdXAuCitzeW4gY2x1c3RlciBrY29uZmlnQ29uZmlnT3B0aW9ucyAgICAgIGNvbnRhaW5zPWtjb25maWdUeXBlRGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAga2NvbmZpZ0lucHV0UHJvbXB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnRGVmYXVsdFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnRGVwZW5kZW5jaWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnUmV2ZXJzZURlcGVuZGVuY2llcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAga2NvbmZpZ051bWVyaWNhbFJhbmdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAga2NvbmZpZ0hlbHBUZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnRGVmQm9vbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAga2NvbmZpZ09wdGlvbmFsCisKK3N5biBrZXl3b3JkIGtjb25maWdUeXBlRGVmaW5pdGlvbiAgICAgYm9vbCBib29sZWFuIHRyaXN0YXRlIHN0cmluZyBoZXggaW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdUeXBlRGVmUHJvbXB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBAa2NvbmZpZ0NvbmZpZ09wdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBtYXRjaCAgIGtjb25maWdUeXBlRGVmUHJvbXB0ICAgICAgJyJbXiJcXF0qXCUoXFwuW14iXFxdKlwpKiInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdDb25maWdPcHRpb25JZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgQGtjb25maWdDb25maWdPcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnVHlwZURlZlByb21wdCAgICAgICInW14nXFxdKlwlKFxcLlteJ1xcXSpcKSonIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZmlnT3B0aW9uSWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIEBrY29uZmlnQ29uZmlnT3B0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIGtleXdvcmQga2NvbmZpZ0lucHV0UHJvbXB0ICAgICAgICBwcm9tcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9a2NvbmZpZ1Byb21wdFByb21wdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gbWF0Y2ggICBrY29uZmlnUHJvbXB0UHJvbXB0ICAgICAgICciW14iXFxdKlwlKFxcLlteIlxcXSpcKSoiJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZmlnT3B0aW9uSWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIEBrY29uZmlnQ29uZmlnT3B0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIG1hdGNoICAga2NvbmZpZ1Byb21wdFByb21wdCAgICAgICAiJ1teJ1xcXSpcJShcXC5bXidcXF0qXCkqJyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9a2NvbmZpZ0NvbmZpZ09wdGlvbklmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBAa2NvbmZpZ0NvbmZpZ09wdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBrZXl3b3JkICAga2NvbmZpZ0RlZmF1bHRWYWx1ZSAgICAgZGVmYXVsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbkV4cHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUKKworc3luIG1hdGNoICAga2NvbmZpZ0RlcGVuZGVuY2llcyAgICAgICAnZGVwZW5kcyBvblx8cmVxdWlyZXMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZmlnT3B0aW9uSWZFeHByCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBrZXl3b3JkIGtjb25maWdSZXZlcnNlRGVwZW5kZW5jaWVzIHNlbGVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ1JldkRlcFN5bWJvbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gY2x1c3RlciBrY29uZmlnUmV2RGVwU3ltYm9sICAgICAgIGNvbnRhaW5zPWtjb25maWdSZXZEZXBDU3ltYm9sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnUmV2RGVwTkNTeW1ib2wKKworc3luIG1hdGNoICAga2NvbmZpZ1JldkRlcENTeW1ib2wgICAgICAnIlteIlxcXSpcJShcXC5bXiJcXF0qXCkqIicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9a2NvbmZpZ0NvbmZpZ09wdGlvbklmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBAa2NvbmZpZ0NvbmZpZ09wdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBtYXRjaCAgIGtjb25maWdSZXZEZXBDU3ltYm9sICAgICAgIidbXidcXF0qXCUoXFwuW14nXFxdKlwpKiciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdDb25maWdPcHRpb25JZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgQGtjb25maWdDb25maWdPcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnUmV2RGVwTkNTeW1ib2wgICAgICdcPFxrXCtcPicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9a2NvbmZpZ0NvbmZpZ09wdGlvbklmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBAa2NvbmZpZ0NvbmZpZ09wdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBrZXl3b3JkIGtjb25maWdOdW1lcmljYWxSYW5nZXMgICAgcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdSYW5nZVN5bWJvbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gY2x1c3RlciBrY29uZmlnUmFuZ2VTeW1ib2wgICAgICAgIGNvbnRhaW5zPWtjb25maWdSYW5nZUNTeW1ib2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgIGtjb25maWdSYW5nZU5DU3ltYm9sCisKK3N5biBtYXRjaCAgIGtjb25maWdSYW5nZUNTeW1ib2wgICAgICAgJyJbXiJcXF0qXCUoXFwuW14iXFxdKlwpKiInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnUmFuZ2VTeW1ib2wyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnUmFuZ2VDU3ltYm9sICAgICAgICInW14nXFxdKlwlKFxcLlteJ1xcXSpcKSonIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ1JhbmdlU3ltYm9sMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIG1hdGNoICAga2NvbmZpZ1JhbmdlTkNTeW1ib2wgICAgICAnXDxca1wrXD4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnUmFuZ2VTeW1ib2wyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gY2x1c3RlciBrY29uZmlnUmFuZ2VTeW1ib2wyICAgICAgIGNvbnRhaW5zPWtjb25maWdSYW5nZUNTeW1ib2wyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnUmFuZ2VOQ1N5bWJvbDIKKworc3luIG1hdGNoICAga2NvbmZpZ1JhbmdlQ1N5bWJvbDIgICAgICAiJ1teJ1xcXSpcJShcXC5bXidcXF0qXCkqJyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9a2NvbmZpZ0NvbmZpZ09wdGlvbklmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBAa2NvbmZpZ0NvbmZpZ09wdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBtYXRjaCAgIGtjb25maWdSYW5nZU5DU3ltYm9sMiAgICAgJ1w8XGtcK1w+JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZmlnT3B0aW9uSWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIEBrY29uZmlnQ29uZmlnT3B0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIHJlZ2lvbiAga2NvbmZpZ0hlbHBUZXh0ICAgICAgICAgICBjb250YWluZWQKKyAgICAgIFwgbWF0Y2hncm91cD1rY29uZmlnQ29uZmlnT3B0aW9uCisgICAgICBcIHN0YXJ0PSdcJShoZWxwXHwtLS1oZWxwLS0tXClccypcblx6ZVx6KFxzXCtcKScKKyAgICAgIFwgc2tpcD0nXiQnCisgICAgICBcIGVuZD0nXlx6MVxAIScKKyAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZmlnT3B0aW9ucworICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKKyIgWFhYOiBVbmRvY3VtZW50ZWQKK3N5biBrZXl3b3JkIGtjb25maWdEZWZCb29sICAgICAgICAgICAgZGVmX2Jvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdEZWZCb29sU3ltYm9sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBjbHVzdGVyIGtjb25maWdEZWZCb29sU3ltYm9sICAgICAgY29udGFpbnM9a2NvbmZpZ0RlZkJvb2xDU3ltYm9sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnRGVmQm9vbE5DU3ltYm9sCisKK3N5biBtYXRjaCAgIGtjb25maWdEZWZCb29sQ1N5bWJvbCAgICAgJyJbXiJcXF0qXCUoXFwuW14iXFxdKlwpKiInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdDb25maWdPcHRpb25JZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgQGtjb25maWdDb25maWdPcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnRGVmQm9vbENTeW1ib2wgICAgICInW14nXFxdKlwlKFxcLlteJ1xcXSpcKSonIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZmlnT3B0aW9uSWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIEBrY29uZmlnQ29uZmlnT3B0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIG1hdGNoICAga2NvbmZpZ0RlZkJvb2xOQ1N5bWJvbCAgICAnXDxca1wrXD4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdDb25maWdPcHRpb25JZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgQGtjb25maWdDb25maWdPcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCisiIFhYWDogVGhpcyBpcyBhY3R1YWxseSBvbmx5IGEgdmFsaWQgb3B0aW9uIGZvciDigJxjaG9pY2XigJ0sIGJ1dCB0cmVhdGluZyBpdAorIiBzcGVjaWFsbHkgd291bGQgcmVxdWlyZSBhIGxvdCBvZiBleHRyYSBncm91cHMuCitzeW4ga2V5d29yZCBrY29uZmlnT3B0aW9uYWwgICAgICAgICAgIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZmlnT3B0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIGtleXdvcmQga2NvbmZpZ0NvbmZpZ09wdGlvbklmICAgICBpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbklmRXhwcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gY2x1c3RlciBrY29uZmlnQ29uZmlnT3B0aW9uSWZFeHByIGNvbnRhaW5zPUBrY29uZmlnQ29uZk9wdElmRXhwclN5bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJOZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgIGtjb25maWdDb25mT3B0SWZFeHByR3JvdXAKKworc3luIGNsdXN0ZXIga2NvbmZpZ0NvbmZPcHRJZkV4cHJTeW0gICBjb250YWlucz1rY29uZmlnQ29uZk9wdElmRXhwckNTeW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgIGtjb25maWdDb25mT3B0SWZFeHByTkNTeW0KKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJDU3ltICAnIlteIlxcXSpcJShcXC5bXiJcXF0qXCkqIicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25maWdPcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdElmRXhwckFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJPciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJFcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJORXEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0SWZFeHByQ1N5bSAgIidbXidcXF0qXCUoXFwuW14nXFxdKlwpKiciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZmlnT3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJBbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZFeHByT3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZFeHByRXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZFeHByTkVxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdElmRXhwck5DU3ltICdcPFxrXCtcPicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25maWdPcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdElmRXhwckFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJPciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJFcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJORXEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBjbHVzdGVyIGtjb25maWdDb25mT3B0SWZFeHByU3ltMiAgY29udGFpbnM9a2NvbmZpZ0NvbmZPcHRJZkV4cHJDU3ltMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJOQ1N5bTIKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJFcSAgICAnPScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25mT3B0SWZFeHByU3ltMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdElmRXhwck5FcSAgICchPScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25mT3B0SWZFeHByU3ltMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdElmRXhwckNTeW0yICInW14nXFxdKlwlKFxcLlteJ1xcXSpcKSonIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZFeHByQW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdElmRXhwck9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdElmRXhwck5DU3ltMiAnXDxca1wrXD4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZmlnT3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJBbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZFeHByT3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0SWZFeHByTmVnICAgJyEnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZmlnT3B0aW9uSWZFeHByCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0SWZFeHByQW5kICAgJyYmJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbklmRXhwcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdElmRXhwck9yICAgICd8fCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25maWdPcHRpb25JZkV4cHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRJZkV4cHJHcm91cCAnKCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25maWdPcHRpb25JZkdFeHAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUKKworIiBUT0RPOiBobSwgdGhpcyBraW5kIG9mIHJlY3Vyc2lvbiBkb2Vzbid0IHdvcmsgcmlnaHQuICBXZSBuZWVkIGFub3RoZXIgc2V0IG9mCisiIGV4cHJlc3Npb25zIHRoYXQgaGF2ZSBrY29uZmlnQ29uZmlnT1B0aW9uSWZHRXhwIGFzIG5leHRncm91cCBhbmQgYSBtYXRjaGVyCisiIGZvciAnKCcgdGhhdCBzZXRzIGl0IGFsbCBvZmYuCitzeW4gY2x1c3RlciBrY29uZmlnQ29uZmlnT3B0aW9uSWZHRXhwIGNvbnRhaW5zPUBrY29uZmlnQ29uZk9wdElmR0V4cFN5bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBOZWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgIGtjb25maWdDb25mT3B0SWZFeHByR3JvdXAKKworc3luIGNsdXN0ZXIga2NvbmZpZ0NvbmZPcHRJZkdFeHBTeW0gICBjb250YWlucz1rY29uZmlnQ29uZk9wdElmR0V4cENTeW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgIGtjb25maWdDb25mT3B0SWZHRXhwTkNTeW0KKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBDU3ltICAnIlteIlxcXSpcJShcXC5bXiJcXF0qXCkqIicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25maWdJZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBBbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZHRXhwT3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZHRXhwRXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZHRXhwTkVxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdElmR0V4cENTeW0gICInW14nXFxdKlwlKFxcLlteJ1xcXSpcKSonIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ0lmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdElmR0V4cEFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBPciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBFcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBORXEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0SWZHRXhwTkNTeW0gJ1w8XGtcK1w+JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZk9wdElmRXhwckdycEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZHRXhwQW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdElmR0V4cE9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdElmR0V4cEVxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdElmR0V4cE5FcQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIGNsdXN0ZXIga2NvbmZpZ0NvbmZPcHRJZkdFeHBTeW0yICBjb250YWlucz1rY29uZmlnQ29uZk9wdElmR0V4cENTeW0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnQ29uZk9wdElmR0V4cE5DU3ltMgorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdElmR0V4cEVxICAgICc9JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZPcHRJZkdFeHBTeW0yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0SWZHRXhwTkVxICAgJyE9JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZPcHRJZkdFeHBTeW0yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0SWZHRXhwQ1N5bTIgJyJbXiJcXF0qXCUoXFwuW14iXFxdKlwpKiInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdDb25mT3B0SWZFeHByR3JwRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBBbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZHRXhwT3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0SWZHRXhwQ1N5bTIgIidbXidcXF0qXCUoXFwuW14nXFxdKlwpKiciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdDb25mT3B0SWZFeHByR3JwRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBBbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZHRXhwT3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0SWZHRXhwTkNTeW0yICdcPFxrXCtcPicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9a2NvbmZpZ0NvbmZPcHRJZkV4cHJHcnBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdElmR0V4cEFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBPcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBOZWcgICAnIScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25maWdPcHRpb25JZkdFeHAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRJZkdFeHBBbmQgICAnJiYnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZmlnT3B0aW9uSWZHRXhwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0SWZHRXhwT3IgICAgJ3x8JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbklmR0V4cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdElmRXhwckdycEUgICcpJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0SWZFeHByQW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdElmRXhwck9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCisKK3N5biBjbHVzdGVyIGtjb25maWdDb25maWdPcHRpb25FeHByICAgY29udGFpbnM9QGtjb25maWdDb25mT3B0RXhwclN5bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAga2NvbmZpZ0NvbmZPcHRFeHByTmVnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnQ29uZk9wdEV4cHJHcm91cAorCitzeW4gY2x1c3RlciBrY29uZmlnQ29uZk9wdEV4cHJTeW0gICAgIGNvbnRhaW5zPWtjb25maWdDb25mT3B0RXhwckNTeW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgIGtjb25maWdDb25mT3B0RXhwck5DU3ltCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0RXhwckNTeW0gICAgJyJbXiJcXF0qXCUoXFwuW14iXFxdKlwpKiInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdDb25maWdPcHRpb25JZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRFeHByQW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEV4cHJPciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRFeHByRXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0RXhwck5FcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgQGtjb25maWdDb25maWdPcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEV4cHJDU3ltICAgICInW14nXFxdKlwlKFxcLlteJ1xcXSpcKSonIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZmlnT3B0aW9uSWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0RXhwckFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRFeHByT3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0RXhwckVxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEV4cHJORXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIEBrY29uZmlnQ29uZmlnT3B0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRFeHByTkNTeW0gICAnXDxca1wrXD4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdDb25maWdPcHRpb25JZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRFeHByQW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEV4cHJPciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRFeHByRXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0RXhwck5FcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgQGtjb25maWdDb25maWdPcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gY2x1c3RlciBrY29uZmlnQ29uZk9wdEV4cHJTeW0yICAgIGNvbnRhaW5zPWtjb25maWdDb25mT3B0RXhwckNTeW0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnQ29uZk9wdEV4cHJOQ1N5bTIKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRFeHByRXEgICAgICAnPScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25mT3B0RXhwclN5bTIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRFeHByTkVxICAgICAnIT0nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZk9wdEV4cHJTeW0yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0RXhwckNTeW0yICAgJyJbXiJcXF0qXCUoXFwuW14iXFxdKlwpKiInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdDb25maWdPcHRpb25JZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRFeHByQW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEV4cHJPciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgQGtjb25maWdDb25maWdPcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEV4cHJDU3ltMiAgICInW14nXFxdKlwlKFxcLlteJ1xcXSpcKSonIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZmlnT3B0aW9uSWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0RXhwckFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRFeHByT3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIEBrY29uZmlnQ29uZmlnT3B0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRFeHByTkNTeW0yICAnXDxca1wrXD4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPWtjb25maWdDb25maWdPcHRpb25JZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRFeHByQW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEV4cHJPciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgQGtjb25maWdDb25maWdPcHRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEV4cHJOZWcgICAgICchJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbkV4cHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRFeHByQW5kICAgICAnJiYnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZmlnT3B0aW9uRXhwcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEV4cHJPciAgICAgICd8fCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25maWdPcHRpb25FeHByCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0RXhwckdyb3VwICAgJygnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZmlnT3B0aW9uR0V4cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gY2x1c3RlciBrY29uZmlnQ29uZmlnT3B0aW9uR0V4cCAgIGNvbnRhaW5zPUBrY29uZmlnQ29uZk9wdEdFeHBTeW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgIGtjb25maWdDb25mT3B0R0V4cE5lZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAga2NvbmZpZ0NvbmZPcHRHRXhwR3JvdXAKKworc3luIGNsdXN0ZXIga2NvbmZpZ0NvbmZPcHRHRXhwU3ltICAgICBjb250YWlucz1rY29uZmlnQ29uZk9wdEdFeHBDU3ltLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICBrY29uZmlnQ29uZk9wdEdFeHBOQ1N5bQorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEdFeHBDU3ltICAgICciW14iXFxdKlwlKFxcLlteIlxcXSpcKSoiJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZk9wdEV4cHJHcnBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEdFeHBBbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0R0V4cE9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEdFeHBFcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRHRXhwTkVxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEdFeHBDU3ltICAgICInW14nXFxdKlwlKFxcLlteJ1xcXSpcKSonIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZk9wdEV4cHJHcnBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEdFeHBBbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0R0V4cE9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEdFeHBFcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRHRXhwTkVxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEdFeHBOQ1N5bSAgICdcPFxrXCtcPicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9a2NvbmZpZ0NvbmZPcHRFeHByR3JwRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRHRXhwQW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEdFeHBPciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRHRXhwRXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0R0V4cE5FcQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIGNsdXN0ZXIga2NvbmZpZ0NvbmZPcHRHRXhwU3ltMiAgICBjb250YWlucz1rY29uZmlnQ29uZk9wdEdFeHBDU3ltMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAga2NvbmZpZ0NvbmZPcHRHRXhwTkNTeW0yCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0R0V4cEVxICAgICAgJz0nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZk9wdEdFeHBTeW0yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0R0V4cE5FcSAgICAgJyE9JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZPcHRHRXhwU3ltMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEdFeHBDU3ltMiAgICciW14iXFxdKlwlKFxcLlteIlxcXSpcKSoiJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZk9wdEV4cHJHcnBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEdFeHBBbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0R0V4cE9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEdFeHBDU3ltMiAgICInW14nXFxdKlwlKFxcLlteJ1xcXSpcKSonIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZk9wdEV4cHJHcnBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEdFeHBBbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0R0V4cE9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlIHNraXBubAorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEdFeHBOQ1N5bTIgICdcPFxrXCtcPicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9a2NvbmZpZ0NvbmZPcHRFeHByR3JwRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRHRXhwQW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICBrY29uZmlnQ29uZk9wdEdFeHBPcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZSBza2lwbmwKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRHRXhwTmVnICAgICAnIScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBuZXh0Z3JvdXA9QGtjb25maWdDb25maWdPcHRpb25HRXhwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc2tpcHdoaXRlCisKK3N5biBtYXRjaCAgIGtjb25maWdDb25mT3B0R0V4cEFuZCAgICAgJyYmJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1Aa2NvbmZpZ0NvbmZpZ09wdGlvbkdFeHAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUKKworc3luIG1hdGNoICAga2NvbmZpZ0NvbmZPcHRHRXhwT3IgICAgICAnfHwnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgbmV4dGdyb3VwPUBrY29uZmlnQ29uZmlnT3B0aW9uR0V4cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29uZk9wdEV4cHJHcnBFICAgICcpJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnQ29uZmlnT3B0aW9uSWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgIGtjb25maWdDb25mT3B0RXhwckFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAga2NvbmZpZ0NvbmZPcHRFeHByT3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBza2lwd2hpdGUgc2tpcG5sCisKK2hpIGRlZiBsaW5rIGtjb25maWdUb2RvICAgICAgICAgICAgICAgICBUb2RvCitoaSBkZWYgbGluayBrY29uZmlnQ29tbWVudCAgICAgICAgICAgICAgQ29tbWVudAoraGkgZGVmIGxpbmsga2NvbmZpZ0tleXdvcmQgICAgICAgICAgICAgIEtleXdvcmQKK2hpIGRlZiBsaW5rIGtjb25maWdQcmVQcm9jICAgICAgICAgICAgICBQcmVQcm9jCitoaSBkZWYgbGluayBrY29uZmlnQ29uZGl0aW9uYWwgICAgICAgICAgQ29uZGl0aW9uYWwKK2hpIGRlZiBsaW5rIGtjb25maWdQcm9tcHQgICAgICAgICAgICAgICBTdHJpbmcKK2hpIGRlZiBsaW5rIGtjb25maWdLZXl3b3JkUHJvbXB0ICAgICAgICBrY29uZmlnUHJvbXB0CitoaSBkZWYgbGluayBrY29uZmlnUGF0aCAgICAgICAgICAgICAgICAgU3RyaW5nCitoaSBkZWYgbGluayBrY29uZmlnU3ltYm9sICAgICAgICAgICAgICAgU3RyaW5nCitoaSBkZWYgbGluayBrY29uZmlnQ29uc3RhbnRTeW1ib2wgICAgICAgQ29uc3RhbnQKK2hpIGRlZiBsaW5rIGtjb25maWdDb25maWdPcHRpb24gICAgICAgICBUeXBlCitoaSBkZWYgbGluayBrY29uZmlnVHlwZURlZmluaXRpb24gICAgICAga2NvbmZpZ0NvbmZpZ09wdGlvbgoraGkgZGVmIGxpbmsga2NvbmZpZ1R5cGVEZWZQcm9tcHQgICAgICAgIGtjb25maWdQcm9tcHQKK2hpIGRlZiBsaW5rIGtjb25maWdJbnB1dFByb21wdCAgICAgICAgICBrY29uZmlnQ29uZmlnT3B0aW9uCitoaSBkZWYgbGluayBrY29uZmlnUHJvbXB0UHJvbXB0ICAgICAgICAga2NvbmZpZ1Byb21wdAoraGkgZGVmIGxpbmsga2NvbmZpZ0RlZmF1bHRWYWx1ZSAgICAgICAgIGtjb25maWdDb25maWdPcHRpb24KK2hpIGRlZiBsaW5rIGtjb25maWdEZXBlbmRlbmNpZXMgICAgICAgICBrY29uZmlnQ29uZmlnT3B0aW9uCitoaSBkZWYgbGluayBrY29uZmlnUmV2ZXJzZURlcGVuZGVuY2llcyAga2NvbmZpZ0NvbmZpZ09wdGlvbgoraGkgZGVmIGxpbmsga2NvbmZpZ1JldkRlcENTeW1ib2wgICAgICAgIGtjb25maWdDb25zdGFudFN5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ1JldkRlcE5DU3ltYm9sICAgICAgIGtjb25maWdTeW1ib2wKK2hpIGRlZiBsaW5rIGtjb25maWdOdW1lcmljYWxSYW5nZXMgICAgICBrY29uZmlnQ29uZmlnT3B0aW9uCitoaSBkZWYgbGluayBrY29uZmlnUmFuZ2VDU3ltYm9sICAgICAgICAga2NvbmZpZ0NvbnN0YW50U3ltYm9sCitoaSBkZWYgbGluayBrY29uZmlnUmFuZ2VOQ1N5bWJvbCAgICAgICAga2NvbmZpZ1N5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ1JhbmdlQ1N5bWJvbDIgICAgICAgIGtjb25maWdDb25zdGFudFN5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ1JhbmdlTkNTeW1ib2wyICAgICAgIGtjb25maWdTeW1ib2wKK2hpIGRlZiBsaW5rIGtjb25maWdIZWxwVGV4dCAgICAgICAgICAgICBOb3JtYWwKK2hpIGRlZiBsaW5rIGtjb25maWdEZWZCb29sICAgICAgICAgICAgICBrY29uZmlnQ29uZmlnT3B0aW9uCitoaSBkZWYgbGluayBrY29uZmlnRGVmQm9vbENTeW1ib2wgICAgICAga2NvbmZpZ0NvbnN0YW50U3ltYm9sCitoaSBkZWYgbGluayBrY29uZmlnRGVmQm9vbE5DU3ltYm9sICAgICAga2NvbmZpZ1N5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ09wdGlvbmFsICAgICAgICAgICAgIGtjb25maWdDb25maWdPcHRpb24KK2hpIGRlZiBsaW5rIGtjb25maWdDb25maWdPcHRpb25JZiAgICAgICBDb25kaXRpb25hbAoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRJZkV4cHJDU3ltICAgIGtjb25maWdDb25zdGFudFN5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRJZkV4cHJOQ1N5bSAgIGtjb25maWdTeW1ib2wKK2hpIGRlZiBsaW5rIGtjb25maWdPcGVyYXRvciAgICAgICAgICAgICBPcGVyYXRvcgoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRJZkV4cHJFcSAgICAgIGtjb25maWdPcGVyYXRvcgoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRJZkV4cHJORXEgICAgIGtjb25maWdPcGVyYXRvcgoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRJZkV4cHJDU3ltMiAgIGtjb25maWdDb25zdGFudFN5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRJZkV4cHJOQ1N5bTIgIGtjb25maWdTeW1ib2wKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0SWZFeHByTmVnICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0SWZFeHByQW5kICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0SWZFeHByT3IgICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdEZWxpbWl0ZXIgICAgICAgICAgICBEZWxpbWl0ZXIKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0SWZFeHByR3JvdXAgICBrY29uZmlnRGVsaW1pdGVyCitoaSBkZWYgbGluayBrY29uZmlnQ29uZk9wdElmR0V4cENTeW0gICAga2NvbmZpZ0NvbnN0YW50U3ltYm9sCitoaSBkZWYgbGluayBrY29uZmlnQ29uZk9wdElmR0V4cE5DU3ltICAga2NvbmZpZ1N5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRJZkdFeHBFcSAgICAgIGtjb25maWdPcGVyYXRvcgoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRJZkdFeHBORXEgICAgIGtjb25maWdPcGVyYXRvcgoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRJZkdFeHBDU3ltMiAgIGtjb25maWdDb25zdGFudFN5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRJZkdFeHBOQ1N5bTIgIGtjb25maWdTeW1ib2wKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0SWZHRXhwTmVnICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0SWZHRXhwQW5kICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0SWZHRXhwT3IgICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0SWZFeHByR3JwRSAgICBrY29uZmlnRGVsaW1pdGVyCitoaSBkZWYgbGluayBrY29uZmlnQ29uZk9wdEV4cHJDU3ltICAgICAga2NvbmZpZ0NvbnN0YW50U3ltYm9sCitoaSBkZWYgbGluayBrY29uZmlnQ29uZk9wdEV4cHJOQ1N5bSAgICAga2NvbmZpZ1N5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRFeHByRXEgICAgICAgIGtjb25maWdPcGVyYXRvcgoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRFeHByTkVxICAgICAgIGtjb25maWdPcGVyYXRvcgoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRFeHByQ1N5bTIgICAgIGtjb25maWdDb25zdGFudFN5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRFeHByTkNTeW0yICAgIGtjb25maWdTeW1ib2wKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0RXhwck5lZyAgICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0RXhwckFuZCAgICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0RXhwck9yICAgICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0RXhwckdyb3VwICAgICBrY29uZmlnRGVsaW1pdGVyCitoaSBkZWYgbGluayBrY29uZmlnQ29uZk9wdEdFeHBDU3ltICAgICAga2NvbmZpZ0NvbnN0YW50U3ltYm9sCitoaSBkZWYgbGluayBrY29uZmlnQ29uZk9wdEdFeHBOQ1N5bSAgICAga2NvbmZpZ1N5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRHRXhwRXEgICAgICAgIGtjb25maWdPcGVyYXRvcgoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRHRXhwTkVxICAgICAgIGtjb25maWdPcGVyYXRvcgoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRHRXhwQ1N5bTIgICAgIGtjb25maWdDb25zdGFudFN5bWJvbAoraGkgZGVmIGxpbmsga2NvbmZpZ0NvbmZPcHRHRXhwTkNTeW0yICAgIGtjb25maWdTeW1ib2wKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0R0V4cE5lZyAgICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0R0V4cEFuZCAgICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0R0V4cE9yICAgICAgICBrY29uZmlnT3BlcmF0b3IKK2hpIGRlZiBsaW5rIGtjb25maWdDb25mT3B0RXhwckdycEUgICAgICBrY29uZmlnQ29uZk9wdElmRXhwckdyb3VwCisKK2Vsc2UKKworc3luIGtleXdvcmQga2NvbmZpZ1RvZG8gICAgICAgICAgICAgICBjb250YWluZWQgVE9ETyBGSVhNRSBYWFggTk9URQorCitzeW4gbWF0Y2ggICBrY29uZmlnQ29tbWVudCAgICAgICAgICAgIGRpc3BsYXkgJyMuKiQnIGNvbnRhaW5zPWtjb25maWdUb2RvCisKK3N5biBrZXl3b3JkIGtjb25maWdLZXl3b3JkICAgICAgICAgICAgY29uZmlnIG1lbnVjb25maWcgY29tbWVudCBtZW51IG1haW5tZW51CisKK3N5biBrZXl3b3JkIGtjb25maWdDb25kaXRpb25hbCAgICAgICAgY2hvaWNlIGVuZGNob2ljZSBpZiBlbmRpZgorCitzeW4ga2V5d29yZCBrY29uZmlnUHJlUHJvYyAgICAgICAgICAgIHNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIG5leHRncm91cD1rY29uZmlnUGF0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHNraXB3aGl0ZQorCitzeW4gbWF0Y2ggICBrY29uZmlnU3BlY2lhbENoYXIgICAgICAgIGNvbnRhaW5lZCAnXFwuJworCitzeW4gcmVnaW9uICBrY29uZmlnUGF0aCAgICAgICAgICAgICAgIG1hdGNoZ3JvdXA9a2NvbmZpZ1BhdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBzdGFydD0rIisgc2tpcD0rXFxcXFx8XFxcIisgZW5kPSsiKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5zPWtjb25maWdTcGVjaWFsQ2hhcgorCitzeW4gcmVnaW9uICBrY29uZmlnUGF0aCAgICAgICAgICAgICAgIG1hdGNoZ3JvdXA9a2NvbmZpZ1BhdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBzdGFydD0rJysgc2tpcD0rXFxcXFx8XFxcJysgZW5kPSsnKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5zPWtjb25maWdTcGVjaWFsQ2hhcgorCitzeW4gbWF0Y2ggICBrY29uZmlnUGF0aCAgICAgICAgICAgICAgICdcU1wrJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIGNvbnRhaW5lZAorCitzeW4gcmVnaW9uICBrY29uZmlnU3RyaW5nICAgICAgICAgICAgIG1hdGNoZ3JvdXA9a2NvbmZpZ1N0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIHN0YXJ0PSsiKyBza2lwPStcXFxcXHxcXFwiKyBlbmQ9KyIrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgY29udGFpbnM9a2NvbmZpZ1NwZWNpYWxDaGFyCisKK3N5biByZWdpb24gIGtjb25maWdTdHJpbmcgICAgICAgICAgICAgbWF0Y2hncm91cD1rY29uZmlnU3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgc3RhcnQ9KycrIHNraXA9K1xcXFxcfFxcXCcrIGVuZD0rJysKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBjb250YWlucz1rY29uZmlnU3BlY2lhbENoYXIKKworc3luIGtleXdvcmQga2NvbmZpZ1R5cGUgICAgICAgICAgICAgICBib29sIGJvb2xlYW4gdHJpc3RhdGUgc3RyaW5nIGhleCBpbnQKKworc3luIGtleXdvcmQga2NvbmZpZ09wdGlvbiAgICAgICAgICAgICBwcm9tcHQgZGVmYXVsdCByZXF1aXJlcyBzZWxlY3QgcmFuZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCBvcHRpb25hbAorc3luIG1hdGNoICAga2NvbmZpZ09wdGlvbiAgICAgICAgICAgICAnZGVwZW5kc1wlKCBvblwpJworCitzeW4ga2V5d29yZCBrY29uZmlnTWFjcm8gICAgICAgICAgICAgIGRlZl9ib29sIGRlZl90cmlzdGF0ZQorCitzeW4gcmVnaW9uICBrY29uZmlnSGVscFRleHQgICAgICAgICAgIGNvbnRhaW5lZAorICAgICAgXCBtYXRjaGdyb3VwPWtjb25maWdDb25maWdPcHRpb24KKyAgICAgIFwgc3RhcnQ9J1wlKGhlbHBcfC0tLWhlbHAtLS1cKVxzKlxuXHplXHooXHNcK1wpJworICAgICAgXCBza2lwPSdeJCcKKyAgICAgIFwgZW5kPSdeXHoxXEAhJworCitoaSBkZWYgbGluayBrY29uZmlnVG9kbyAgICAgICAgIFRvZG8KK2hpIGRlZiBsaW5rIGtjb25maWdDb21tZW50ICAgICAgQ29tbWVudAoraGkgZGVmIGxpbmsga2NvbmZpZ0tleXdvcmQgICAgICBLZXl3b3JkCitoaSBkZWYgbGluayBrY29uZmlnQ29uZGl0aW9uYWwgIENvbmRpdGlvbmFsCitoaSBkZWYgbGluayBrY29uZmlnUHJlUHJvYyAgICAgIFByZVByb2MKK2hpIGRlZiBsaW5rIGtjb25maWdTcGVjaWFsQ2hhciAgU3BlY2lhbENoYXIKK2hpIGRlZiBsaW5rIGtjb25maWdQYXRoICAgICAgICAgU3RyaW5nCitoaSBkZWYgbGluayBrY29uZmlnU3RyaW5nICAgICAgIFN0cmluZworaGkgZGVmIGxpbmsga2NvbmZpZ1R5cGUgICAgICAgICBUeXBlCitoaSBkZWYgbGluayBrY29uZmlnT3B0aW9uICAgICAgIElkZW50aWZpZXIKK2hpIGRlZiBsaW5rIGtjb25maWdIZWxwVGV4dCAgICAgTm9ybWFsCitoaSBkZWYgbGluayBrY29uZmlnbWFjcm8gICAgICAgIE1hY3JvCisKK2VuZGlmCisKK2xldCBiOmN1cnJlbnRfc3ludGF4ID0gImtjb25maWciCisKK2xldCAmY3BvID0gczpjcG9fc2F2ZQordW5sZXQgczpjcG9fc2F2ZQpkaWZmIC0tZ2l0IGEvcnVudGltZS9zeW50YXgvb2NhbWwudmltIGIvcnVudGltZS9zeW50YXgvb2NhbWwudmltCmluZGV4IGQ5NWEzYzguLmNkZWY4YzMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L29jYW1sLnZpbQorKysgYi9ydW50aW1lL3N5bnRheC9vY2FtbC52aW0KQEAgLTUsOSArNSw5IEBACiAiICAgICAgICAgICAgICAgS2FybC1IZWlueiBTeWxsYSAgPEthcmwtSGVpbnouU3lsbGFAZ21kLmRlPgogIiAgICAgICAgICAgICAgIElzc2FjIFRyb3R0cyAgICAgIDxpanRyb3R0c0B1Y2RhdmlzLmVkdT4KICIgVVJMOiAgICAgICAgICBodHRwOi8vd3d3Lm9jYW1sLmluZm8vdmltL3N5bnRheC9vY2FtbC52aW0KLSIgTGFzdCBDaGFuZ2U6ICAyMDA1IE1heSAxOCAtIEFkZGVkICdOT1RFJyB0byBoaWdobGlnaHRlZCBjb21tZW50IHdvcmRzIChNTSkKKyIgTGFzdCBDaGFuZ2U6ICAyMDA2IEFwciAxMSAtIEZpeGVkIGFuIGluaXRpYWxpemF0aW9uIGJ1ZyAoTU0pCisiICAgICAgICAgICAgICAgMjAwNSBNYXkgMTggLSBBZGRlZCAnTk9URScgdG8gaGlnaGxpZ2h0ZWQgY29tbWVudCB3b3JkcyAoTU0pCiAiICAgICAgICAgICAgICAgMjAwNSBBcHIgMTQgLSBGaXhlZCBhIHNtYWxsIGJ1ZyBjb25jZXJuaW5nICdpbmNsdWRlJyAoTU0pCi0iICAgICAgICAgICAgICAgMjAwNSBNYXIgMTUgLSBBZGRlZCBhIHBhdGNoIGZyb20gRGF2aWQgQmFlbGRlIChNTSkKIAogIiBBIG1pbm9yIHBhdGNoIHdhcyBhcHBsaWVkIHRvIHRoZSBvZmZpY2lhbCB2ZXJzaW9uIHNvIHRoYXQgb2JqZWN0L2VuZAogIiBjYW4gYmUgZGlzdGluZ3Vpc2hlZCBmcm9tIGJlZ2luL2VuZCwgd2hpY2ggaXMgdXNlZCBmb3IgaW5kZW50YXRpb24sCkBAIC0xNyw3ICsxNyw3IEBACiAiIEZvciB2ZXJzaW9uIDYueDogUXVpdCB3aGVuIGEgc3ludGF4IGZpbGUgd2FzIGFscmVhZHkgbG9hZGVkCiBpZiB2ZXJzaW9uIDwgNjAwCiAgIHN5bnRheCBjbGVhcgotZWxzZWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpICYmIGI6Y3VycmVudF9zeW50YXggIT0gIm9jYW1sIgorZWxzZWlmIGV4aXN0cygiYjpjdXJyZW50X3N5bnRheCIpICYmIGI6Y3VycmVudF9zeW50YXggPT0gIm9jYW1sIgogICBmaW5pc2gKIGVuZGlmCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3Byb2dyZXNzLnZpbSBiL3J1bnRpbWUvc3ludGF4L3Byb2dyZXNzLnZpbQppbmRleCBkZDI5MzEwLi41NzYwNDIzIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC9wcm9ncmVzcy52aW0KKysrIGIvcnVudGltZS9zeW50YXgvcHJvZ3Jlc3MudmltCkBAIC0zLDEyICszLDEyIEBACiAiIEZpbGVuYW1lIGV4dGVuc2lvbnM6CSoucCAoY29sbGlkZXMgd2l0aCBQYXNjYWwpLAogIgkJCQkJCSouaSAoY29sbGlkZXMgd2l0aCBhc3NlbWJsZXIpCiAiCQkJCQkJKi53IChjb2xsaWRlcyB3aXRoIGN3ZWIpCi0iIE1haW50YWluZXI6CQkJUGhpbGlwIFVyZW4JCQk8cGhpbHVAY29tcHV0ZXIub3JnPgotIiBDb250cmlidXRvcnM6CQkJQ2hyaXMgUnVwcmVjaHQJCTxjaHJ1cEBtYWMuY29tPgotIgkJCQkJCVBoaWxpcCBVcmVuCQkJPHBoaWx1QGNvbXB1dGVyLm9yZz4KKyIgTWFpbnRhaW5lcjoJCQlQaGlsaXAgVXJlbgkJCTxwaGlsdVNQQVhAaWVlZS5vcmc+IFJlbW92ZSAiU1BBWCIgc3BhbSBibG9jaworIiBDb250cmlidXRvcnM6ICAgICAgICAgQ2hyaXMgUnVwcmVjaHQJCTxjaHJ1cEBtYWMuY29tPgogIgkJCQkJCU1pa2hhaWwgS3VwZXJibHVtCTxtaWtoYWlsQHdoYXN1cC5jb20+Ci0iIFVSTDoJCQkJCWh0dHA6Ly93d3cuemV0YS5vcmcuYXUvfnBoaWx1L3ZpbS9wcm9ncmVzcy52aW0KLSIgTGFzdCBDaGFuZ2U6CQkJVGh1IE1heSAgMyAwODo0OTo0NyBFU1QgMjAwMQorIgkJCQkJCUpvaG4gRmxvcmlhbgkJPGpmbG9yaWFuQHZveWFnZXIubmV0PgorIiBMYXN0IENoYW5nZToJCQlUdWUgQXByIDExIDEwOjE4OjIzIEVTVCAyMDA2CisiICRJZCQKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKQEAgLTI0LDYgKzI0LDkgQEAKICAgc2V0IGlza2V5d29yZD1ALDQ4LTU3LF8sLSwhLCMsJCwlCiBlbmRpZgogCisiIFRoZSBQcm9ncmVzcyBlZGl0b3IgZG9lc24ndCBjb3BlIHdpdGggdGFicyB2ZXJ5IHdlbGwuCitzZXQgZXhwYW5kdGFiCisKIHN5biBjYXNlIGlnbm9yZQogCiAiIFByb2dyZXNzIEJsb2NrcyBvZiBjb2RlIGFuZCBtaXNtYXRjaGVkICJlbmQuIiBlcnJvcnMuCkBAIC0zMSw3ICszNCw3IEBACiBzeW4gcmVnaW9uIFByb2dyZXNzRG9CbG9jayB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPVByb2dyZXNzRG8gc3RhcnQ9Ilw8ZG9cPiIgbWF0Y2hncm91cD1Qcm9ncmVzc0RvIGVuZD0iXDxlbmRcPiIgY29udGFpbnM9QUxMQlVULFByb2dyZXNzUHJvY2VkdXJlLFByb2dyZXNzRnVuY3Rpb24KIHN5biByZWdpb24gUHJvZ3Jlc3NGb3JCbG9jayB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPVByb2dyZXNzRm9yIHN0YXJ0PSJcPGZvclw+IiBtYXRjaGdyb3VwPVByb2dyZXNzRm9yIGVuZD0iXDxlbmRcPiIgY29udGFpbnM9QUxMQlVULFByb2dyZXNzUHJvY2VkdXJlLFByb2dyZXNzRnVuY3Rpb24KIHN5biByZWdpb24gUHJvZ3Jlc3NSZXBlYXRCbG9jayB0cmFuc3BhcmVudCBtYXRjaGdyb3VwPVByb2dyZXNzUmVwZWF0IHN0YXJ0PSJcPHJlcGVhdFw+IiBtYXRjaGdyb3VwPVByb2dyZXNzUmVwZWF0IGVuZD0iXDxlbmRcPiIgY29udGFpbnM9QUxMQlVULFByb2dyZXNzUHJvY2VkdXJlLFByb2dyZXNzRnVuY3Rpb24KLXN5biByZWdpb24gUHJvZ3Jlc3NDYXNlQmxvY2sgdHJhbnNwYXJlbnQgbWF0Y2hncm91cD1Qcm9ncmVzc0Nhc2Ugc3RhcnQ9Ilw8Y2FzZVw+IiBtYXRjaGdyb3VwPVByb2dyZXNzQ2FzZSBlbmQ9Ilw8ZW5kXHNjYXNlXD4iIGNvbnRhaW5zPUFMTEJVVCxQcm9ncmVzc1Byb2NlZHVyZSxQcm9ncmVzc0Z1bmN0aW9uCitzeW4gcmVnaW9uIFByb2dyZXNzQ2FzZUJsb2NrIHRyYW5zcGFyZW50IG1hdGNoZ3JvdXA9UHJvZ3Jlc3NDYXNlIHN0YXJ0PSJcPGNhc2VcPiIgbWF0Y2hncm91cD1Qcm9ncmVzc0Nhc2UgZW5kPSJcPGVuZFxzY2FzZVw+XHxcPGVuZFw+IiBjb250YWlucz1BTExCVVQsUHJvZ3Jlc3NQcm9jZWR1cmUsUHJvZ3Jlc3NGdW5jdGlvbgogCiAiIFRoZXNlIGFyZSBQcm9ncmVzcyByZXNlcnZlZCB3b3JkcywKICIgYW5kIHRoZXkgY291bGQgZ28gaW4gUHJvZ3Jlc3NSZXNlcnZlZCwKQEAgLTQzLDE0ICs0NiwyMyBAQAogc3luIGtleXdvcmQJUHJvZ3Jlc3NUb2RvCQkJY29udGFpbmVkCVRPRE8gQlVHIEZJWAogc3luIGtleXdvcmQgUHJvZ3Jlc3NEZWJ1ZwkJCWNvbnRhaW5lZAlERUJVRwogc3luIGtleXdvcmQgUHJvZ3Jlc3NEZWJ1ZwkJCQkJCWRlYnVnZ2VyCitzeW4gbWF0Y2ggICBQcm9ncmVzc1RvZG8gICAgICAgICAgICBjb250YWluZWQgICAiTkVFRFtTXSpcc1xzKldPUksiCiAKLXN5biBrZXl3b3JkIFByb2dyZXNzRnVuY3Rpb24JcHJvY2VkdXJlIGZ1bmN0aW9uCisiIElmIHlvdSBsaWtlIHRvIGhpZ2hsaWdodCB0aGUgd2hvbGUgbGluZSBvZgorIiB0aGUgc3RhcnQgYW5kIGVuZCBvZiBwcm9jZWR1cmVzCisiIHRvIG1ha2UgdGhlIHdob2xlIGJsb2NrIG9mIGNvZGUgc3RhbmQgb3V0Ogorc3luIG1hdGNoIFByb2dyZXNzUHJvY2VkdXJlCQkiXlxzKnByb2NlZHVyZS4qIgorc3luIG1hdGNoIFByb2dyZXNzUHJvY2VkdXJlCQkiXlxzKmVuZFxzXHMqcHJvY2VkdXJlLioiCitzeW4gbWF0Y2ggUHJvZ3Jlc3NGdW5jdGlvbgkJIl5ccypmdW5jdGlvbi4qIgorc3luIG1hdGNoIFByb2dyZXNzRnVuY3Rpb24JCSJeXHMqZW5kXHNccypmdW5jdGlvbi4qIgorIiAuLi4gb3RoZXJ3aXNlIHVzZSB0aGlzOgorIiBzeW4ga2V5d29yZCBQcm9ncmVzc0Z1bmN0aW9uCXByb2NlZHVyZSBmdW5jdGlvbgogCiBzeW4ga2V5d29yZCBQcm9ncmVzc1Jlc2VydmVkCWFjY3VtW3VsYXRlXSBhY3RpdmUtd2luZG93IGFkZCBhbGlhcyBhbGwgYWx0ZXIgYW1iaWdbdW91c10gYW5hbHl6W2VdIGFuZCBhbnkgYXBwbHkgYXMgYXNjW2VuZGluZ10gYXNzaWduIGF0IGF0dHJbLXNwYWNlXQogc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAlhdXRob3JpemF0aW9uIGF1dG8tcmV0W3Vybl0gYXZhaWxbYWJsZV0gYmFja1tncm91bmRdIGJlZm9yZS1oW2lkZV0gYmVnaW5zIGJlbGwgYmV0d2VlbiBibGFuayBicmVhayBidG9zIGJ5IGNhbGwgY2FuLWRvIGNhbi1maW5kCi1zeW4ga2V5d29yZCBQcm9ncmVzc1Jlc2VydmVkCWNlbnRlcltlZF0gY2hlY2sgY2hyIGNsZWFyIGNsaXBib2FyZCBjb2wgY29sb24gY29sb3IgY29sW3Vtbl0gY29sdW1uLWxhYltlbF0gY29sW3VtbnNdIGNvbXBpbGVyIGNvbm5lY3RlZCBjb250cm9sIGNvdW50LW9mCitzeW4ga2V5d29yZCBQcm9ncmVzc1Jlc2VydmVkCWNlbnRlcltlZF0gY2hhcmFjdGVyIGNoZWNrIGNociBjbGVhciBjbGlwYm9hcmQgY29sIGNvbG9uIGNvbG9yIGNvbFt1bW5dIGNvbHVtbi1sYWJbZWxdIGNvbFt1bW5zXSBjb21waWxlciBjb25uZWN0ZWQgY29udHJvbCBjb3VudC1vZgogc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAljcHN0cmVhbSBjcmVhdGUgY3RvcyBjdXJyZW50IGN1cnJlbnQtY2hhbmdlZCBjdXJyZW50LWxhbmdbdWFnZV0gY3VycmVudC13aW5kb3cgY3VycmVudF9kYXRlIGN1cnNbb3JdIGRhdGFiYXNlIGRhdGFzZXJ2ZXJzCi1zeW4ga2V5d29yZCBQcm9ncmVzc1Jlc2VydmVkCWRiY29kZXBhZ2UgZGJjb2xsYXRpb24gZGJuYW1lIGRicmVzdFtyaWN0aW9uc10gZGJ0YXNraWQgZGJ0eXBlIGRidmVyc1tpb25dIGRkZSBkZWJsYW5rIGRlYnVnLWxpc3QgZGVidWdnZXIgZGVjaW1hbHMgZGVjbGFyZQorc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAlkYmNvZGVwYWdlIGRiY29sbGF0aW9uIGRibmFtZSBkYnJlc3RbcmljdGlvbnNdIGRidGFza2lkIGRidHlwZSBkYnZlcnNbaW9uXSBkZGUgZGVibGFuayBkZWJ1Zy1saXN0IGRlYnVnZ2VyIGRlY2ltYWwgZGVjaW1hbHMgZGVjbGFyZQogc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAlkZWYgZGVmYXVsdCBkZWZhdWx0LW5veGxbYXRlXSBkZWZhdWx0LXdpbmRvdyBkZWZbaW5lXSBkZWxldGUgZGVsaW1pdGVyIGRlc2NbZW5kaW5nXSBkaWN0W2lvbmFyeV0gZGlzYWJsZSBkaXNjb25bbmVjdF0gZGlzcAogc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAlkaXNwW2xheV0gZGlzdGluY3QgZG9zIGRvd24gZHJvcCBlZGl0aW5nIGVuYWJsZSBlbmNvZGUgZW50cnkgZXJyb3Itc3RhdFt1c10gZXNjYXBlIGV0aW1lIGV4Y2VwdCBleGNsdXNpdmUKIHN5biBrZXl3b3JkIFByb2dyZXNzUmVzZXJ2ZWQJZXhjbHVzaXZlWy1sb2NrXSBleGNsdXNpdmUtd2ViLXVzW2VyXSBleGlzdHMgZXhwb3J0IGZhbHNlIGZldGNoIGZpZWxkIGZpZWxkW3NdIGZpbGUtaW5mb1tybWF0aW9uXSBmaWxsIGZpbmQgZmluZC1jYXNlLXNlbnNpdGl2ZQpAQCAtNTgsNyArNzAsNyBAQAogc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAlmcmFtW2VdIGZyYW1lLWNvbCBmcmFtZS1kYiBmcmFtZS1kb3duIGZyYW1lLWZpZWxkIGZyYW1lLWZpbGUgZnJhbWUtaW5kZVt4XSBmcmFtZS1saW5lIGZyYW1lLW5hbWUgZnJhbWUtcm93IGZyYW1lLXZhbFt1ZV0KIHN5biBrZXl3b3JkIFByb2dyZXNzUmVzZXJ2ZWQJZnJvbSBmcm9tLWNbaGFyc10gZnJvbS1wW2l4ZWxzXSBnYXRld2F5W3NdIGdldC1ieXRlIGdldC1jb2RlcGFnZVtzXSBnZXQtY29sbFthdGlvbnNdIGdldC1rZXktdmFsW3VlXSBnZXRieXRlIGdsb2JhbCBnby1vbgogc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAlnby1wZW5kW2luZ10gZ3JhbnQgZ3JhcGhpYy1lW2RnZV0gZ3JvdXAgaGF2aW5nIGhlYWRlciBoZWxwIGhpZGUgaW1wb3J0IGluIGluZGV4IGluZGljYXRvciBpbnB1dCBpbnB1dC1vW3V0cHV0XSBpbnNlcnQKLXN5biBrZXl3b3JkIFByb2dyZXNzUmVzZXJ2ZWQJaW50byBpcyBpcy1hdHRyWy1zcGFjZV0gam9pbiBrYmxhYmVsIGtleS1jb2RlIGtleS1mdW5jW3Rpb25dIGtleS1sYWJlbCBrZXljb2RlIGtleWZ1bmNbdGlvbl0ga2V5bGFiZWwga2V5cyBrZXl3b3JkIGxhYmVsCitzeW4ga2V5d29yZCBQcm9ncmVzc1Jlc2VydmVkCWludGVnZXIgaW50byBpcyBpcy1hdHRyWy1zcGFjZV0gam9pbiBrYmxhYmVsIGtleS1jb2RlIGtleS1mdW5jW3Rpb25dIGtleS1sYWJlbCBrZXljb2RlIGtleWZ1bmNbdGlvbl0ga2V5bGFiZWwga2V5cyBrZXl3b3JkIGxhYmVsCiBzeW4ga2V5d29yZCBQcm9ncmVzc1Jlc2VydmVkCWxhc3QgbGFzdC1ldmVuW3RdIGxhc3Qta2V5IGxhc3Qtb2YgbGFzdGtleSBsZGJuYW1lIGxlYXZlIGxpYnJhcnkgbGlrZSBsaW5lLWNvdW50W2VyXSBsaXN0aVtuZ10gbG9ja2VkIGxvb2t1cCBtYWNoaW5lLWNsYXNzCiBzeW4ga2V5d29yZCBQcm9ncmVzc1Jlc2VydmVkCW1hcCBtZW1iZXIgbWVzc2FnZSBtZXNzYWdlLWxpbmVzIG1vdXNlIG1wZSBuZXcgbmV4dCBuZXh0LXByb21wdCBubyBuby1hdHRyWy1zcGFjZV0gbm8tZXJyb3Igbm8tZltpbGxdIG5vLWhlbHAgbm8taGlkZSBuby1sYWJlbFtzXQogc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAluby1sb2NrIG5vLW1hcCBuby1tZXNbc2FnZV0gbm8tcGF1c2Ugbm8tcHJlZmVbdGNoXSBuby11bmRvIG5vLXZhbFtpZGF0ZV0gbm8td2FpdCBub3QgbnVsbCBudW0tYWxpW2FzZXNdIG51bS1kYnMgbnVtLWVudHJpZXMKQEAgLTcwLDM5ICs4Miw1MSBAQAogc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAlzY3JvbGwgc2RibmFtZSBzZWFyY2ggc2VlayBzZWxlY3Qgc2VsZiBzZXNzaW9uIHNldCBzZXR1c2VyW2lkXSBzaGFyZVstbG9ja10gc2hhcmVkIHNob3ctc3RhdFtzXSBza2lwIHNvbWUgc3BhY2Ugc3RhdHVzIHN0cmVhbQogc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAlzdHJlYW0taW8gc3RyaW5nLXhyZWYgc3lzdGVtLWRpYWxvZyB0YWJsZSB0ZXJtIHRlcm1baW5hbF0gdGV4dCB0ZXh0LWN1cnNvciB0ZXh0LXNlZ1stZ3Jvd3RoXSB0aGlzLXByb2NlZHVyZSB0aW1lIHRpdGxlCiBzeW4ga2V5d29yZCBQcm9ncmVzc1Jlc2VydmVkCXRvIHRvZGF5IHRvcC1vbmx5IHRyYW5zIHRyYW5zW2FjdGlvbl0gdHJpZ2dlciB0cmlnZ2VycyB0cmltIHRydWUgdW5kZXJsW2luZV0gdW5kbyB1bmZvcm1bYXR0ZWRdIHVuaW9uIHVuaXF1ZSB1bml4IHVwIHVwZGF0ZQotc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAl1c2UtaW5kZXggdXNlLXJldnZpZGVvIHVzZS11bmRlcmxpbmUgdXNlciB1c2VyW2lkXSB1c2luZyB2NmZyYW1lIHZhbHVlIHZhbHVlcyB2aWV3IHZpZXctYXMgdm1zIHdhaXQtZm9yIHdlYi1jb25bdGV4dF0KK3N5biBrZXl3b3JkIFByb2dyZXNzUmVzZXJ2ZWQJdXNlLWluZGV4IHVzZS1yZXZ2aWRlbyB1c2UtdW5kZXJsaW5lIHVzZXIgdXNlcltpZF0gdXNpbmcgdjZmcmFtZSB2YWx1ZSB2YWx1ZXMgdmFyaWFibGUgdmlldyB2aWV3LWFzIHZtcyB3YWl0LWZvciB3ZWItY29uW3RleHRdCiBzeW4ga2V5d29yZCBQcm9ncmVzc1Jlc2VydmVkCXdpbmRvdyB3aW5kb3ctbWF4aW1baXplZF0gd2luZG93LW1pbmltW2l6ZWRdIHdpbmRvdy1ub3JtYWwgd2l0aCB3b3JrLXRhYltsZV0gd29ya2ZpbGUgd3JpdGUgeGNvZGUgeHJlZiB5ZXMgX2NiaXQKLXN5biBrZXl3b3JkIFByb2dyZXNzUmVzZXJ2ZWQJX2NvbnRyb2wgX2xpc3QgX21lbW9yeSBfbXNnIF9wY29udHJvbCBfc2VyaWFsWy1udW1dIF90cmFjZQorc3luIGtleXdvcmQgUHJvZ3Jlc3NSZXNlcnZlZAlfY29udHJvbCBfbGlzdCBfbWVtb3J5IF9tc2cgX3Bjb250cm9sIF9zZXJpYWxbLW51bV0gX3RyYWNlIAogCiAiIFN0cmluZ3MuIEhhbmRsZXMgZW1iZWRkZWQgcXVvdGVzLgogIiBOb3RlIHRoYXQsIGZvciBzb21lIHJlYXNvbiwgUHJvZ3Jlc3MgZG9lc24ndCB1c2UgdGhlIGJhY2tzbGFzaCwgIlwiCiAiIGFzIHRoZSBlc2NhcGUgY2hhcmFjdGVyOyBpdCB1c2VzIHRpbGRlLCAifiIuCi1zeW4gcmVnaW9uIFByb2dyZXNzU3RyaW5nCW1hdGNoZ3JvdXA9UHJvZ3Jlc3NRdW90ZQlzdGFydD0rIisgZW5kPSsiKwlza2lwPStcfiIrCi1zeW4gcmVnaW9uIFByb2dyZXNzU3RyaW5nCW1hdGNoZ3JvdXA9UHJvZ3Jlc3NRdW90ZQlzdGFydD0rJysgZW5kPSsnKwlza2lwPStcficrCitzeW4gcmVnaW9uIFByb2dyZXNzU3RyaW5nCW1hdGNoZ3JvdXA9UHJvZ3Jlc3NRdW90ZQlzdGFydD0rIisgZW5kPSsiKwlza2lwPStcfidcfFx+XH4rCitzeW4gcmVnaW9uIFByb2dyZXNzU3RyaW5nCW1hdGNoZ3JvdXA9UHJvZ3Jlc3NRdW90ZQlzdGFydD0rJysgZW5kPSsnKwlza2lwPStcfidcfFx+XH4rCiAKLXN5biBtYXRjaCAgUHJvZ3Jlc3NJZGVudGlmaWVyCQkJIlw8W2EtekEtWl9dW2EtekEtWjAtOV9dKlw+KCkiCitzeW4gbWF0Y2ggIFByb2dyZXNzSWRlbnRpZmllcgkJCSJcPFthLXpBLVpfJSNdK1w+KCkiCiAKICIgc3luIG1hdGNoICBQcm9ncmVzc0RlbGltaXRlcgkJCSIoKSIKIAotIiBzeW4gbWF0Y2ggIFByb2dyZXNzTWF0cml4RGVsaW1pdGVyCSJbXVtdIgotCitzeW4gbWF0Y2ggIFByb2dyZXNzTWF0cml4RGVsaW1pdGVyCSJbXVtdIgogIiBJZiB5b3UgcHJlZmVyIHlvdSBjYW4gaGlnaGxpZ2h0IHRoZSByYW5nZQogInN5biBtYXRjaCAgUHJvZ3Jlc3NNYXRyaXhEZWxpbWl0ZXIJCSJbXGRcK1wuXC5cZFwrXSIKIAotc3luIG1hdGNoICBQcm9ncmVzc051bWJlcgkJCQkiXDxcZFwrXCh1XD1sXD1cfGx1XHxmXClcPiIKK3N5biBtYXRjaCAgUHJvZ3Jlc3NOdW1iZXIJCQkJIlw8XC1cPVxkXCtcKHVcPWxcPVx8bHVcfGZcKVw+Igogc3luIG1hdGNoICBQcm9ncmVzc0J5dGUJCQkJCSJcJFswLTlhLWZBLUZdXCsiCiAKKyIgTW9yZSB2YWx1ZXM6IExvZ2ljYWxzLCBhbmQgUHJvZ3Jlc3MncyB1bmtub3duIHZhbHVlLCA/Lgorc3luIG1hdGNoICAgUHJvZ3Jlc3NOdW1iZXIJCQkJIj8iCitzeW4ga2V5d29yZCBQcm9ncmVzc051bWJlcgkJCQl0cnVlIGZhbHNlIHllcyBubworCiAiIElmIHlvdSBkb24ndCBsaWtlIHRhYnM6Ci0ic3luIG1hdGNoIFByb2dyZXNzU2hvd1RhYiAiXHQiCi0ic3luIG1hdGNoIFByb2dyZXNzU2hvd1RhYmMgIlx0Igorc3luIG1hdGNoIFByb2dyZXNzU2hvd1RhYiAiXHQiCisKKyIgSWYgeW91IGRvbid0IGxpa2Ugd2hpdGUgc3BhY2Ugb24gdGhlIGVuZCBvZiBsaW5lczoKKyIgc3luIG1hdGNoICAgUHJvZ3Jlc3NTcGFjZUVycm9yICJcc1wrJCIKIAogc3luIHJlZ2lvbiBQcm9ncmVzc0NvbW1lbnQJCXN0YXJ0PSIvXCoiICBlbmQ9IlwqLyIgY29udGFpbnM9UHJvZ3Jlc3NDb21tZW50LFByb2dyZXNzVG9kbyxQcm9ncmVzc0RlYnVnCi1zeW4gbWF0Y2ggUHJvZ3Jlc3NJbmNsdWRlCQkiXlsgCV0qW3tdLipcLmlbfV0iCitzeW4gcmVnaW9uIFByb2dyZXNzSW5jbHVkZQkJc3RhcnQ9Il5bIAldKlt7XVteJl0iIGVuZD0iW31dIiBjb250YWlucz1Qcm9ncmVzc1ByZVByb2MsUHJvZ3Jlc3NPcGVyYXRvcixQcm9ncmVzc1N0cmluZyxQcm9ncmVzc0NvbW1lbnQKK3N5biByZWdpb24gUHJvZ3Jlc3NQcmVQcm9jCQlzdGFydD0iJiIgZW5kPSJcPiIgY29udGFpbmVkCiAKLXN5biBtYXRjaCBQcm9ncmVzc1N1YnN0aXR1dGUJIl5bIAldKlt7XS4qW15pXVt9XSIKLXN5biBtYXRjaCBQcm9ncmVzc1ByZVByb2MJCSJeWyAJXSomLioiCi0KLXN5biBtYXRjaCBQcm9ncmVzc09wZXJhdG9yCQkiWyE7fCkoOi4+PCsqPS1dIgorIiBUaGlzIG5leHQgbGluZSB3b3JrcyByZWFzb25hYmx5IHdlbGwuCisiIHN5biBtYXRjaCBQcm9ncmVzc09wZXJhdG9yICAgICAgICAiWyE7fCkoOi4+PCsqPS1dIgorIgorIiBQcm9ncmVzcyBhbGxvd3MgYSAnLScgdG8gYmUgcGFydCBvZiBhbiBpZGVudGlmaWVyLiAgVG8gYmUgY29uc2lkZXJlZAorIiB0aGUgc3VidHJhY3Rpb24vbmVnYXRpb24gb3BlcmF0aW9uIG9wZXJhdG9yIGl0IG5lZWRzIGEgbm9uLXdvcmQKKyIgY2hhcmFjdGVyIG9uIGVpdGhlciBzaWRlLiAgQWxzbyB2YWxpZCBhcmUgY2FzZXMgd2hlcmUgdGhlIG1pbnVzCisiIG9wZXJhdGlvbiBhcHBlYXJzIGF0IHRoZSBiZWdpbm5pbmcgb3IgZW5kIG9mIGEgbGluZS4KKyIgVGhpcyBuZXh0IGxpbmUgdHJpcHMgdXAgb24gIm5vLXVuZG8iIGV0Yy4KKyIgc3luIG1hdGNoIFByb2dyZXNzT3BlcmF0b3IgICAgIlshO3wpKDouPjwrKj1dXHxcVy1cV1x8Xi1cV1x8XFctJCIKK3N5biBtYXRjaCBQcm9ncmVzc09wZXJhdG9yICAgICAgIlshO3wpKDouPjwrKj1dXHxccy1cc1x8Xi1cc1x8XHMtJCIKIAogc3luIGtleXdvcmQgUHJvZ3Jlc3NPcGVyYXRvcgk8PSA8PiA+PSBhYnNbb2x1dGVdIGFjY2VsZXJhdG9yIGFjcm9zcyBhZGQtZmlyc3QgYWRkLWxhc3QgYWR2aXNlIGFsZXJ0LWJveCBhbGxvdy1yZXBsaWNhdGlvbiBhbnNpLW9ubHkgYW55d2hlcmUgYXBwZW5kIGFwcGwtYWxlcnRbLWJveGVzXSBhcHBsaWNhdGlvbiBhcy1jdXJzb3IgYXNrLW92ZXJ3cml0ZQogc3luIGtleXdvcmQgUHJvZ3Jlc3NPcGVyYXRvcglhdHRhY2hbbWVudF0gYXV0by1lbmQta2V5IGF1dG8tZW5ka2V5IGF1dG8tZ28gYXV0by1pbmRbZW50XSBhdXRvLXJlc2l6ZSBhdXRvLXpbYXBdIGF2YWlsYWJsZS1mb3JtYXRzIGF2ZVtyYWdlXSBhdmcgYmFja3dhcmRbc10gYmFzZS1rZXkgYmF0Y2hbLW1vZGVdIGJnY1tvbG9yXSBiaW5hcnkKQEAgLTExNCw3ICsxMzgsNyBAQAogc3luIGtleXdvcmQgUHJvZ3Jlc3NPcGVyYXRvcgljb25uZWN0IGNvbnN0cmFpbmVkIGNvbnRlbnRzIGNvbnRleHQgY29udGV4dC1wb3BbdXBdIGNvbnRyb2wtY29udGFpbmVbcl0gY1tvbnRyb2wtZm9ybV0gY29udmVydC10by1vZmZzZVt0XSBjb252ZXJ0IGNvdW50IGNwY2FzZSBjcGNvbGwgY3BpbnRbZXJuYWxdIGNwbG9nCiBzeW4ga2V5d29yZCBQcm9ncmVzc09wZXJhdG9yCWNwcHJpbnQgY3ByY29kZWluIGNwcmNvZGVvdXQgY3B0ZXJtIGNyYy12YWxbdWVdIGNbcmVhdGUtY29udHJvbF0gY3JlYXRlLXJlc3VsdC1saXN0LWVudHJ5IGNyZWF0ZS10ZXN0LWZpbGUgY3VycmVudC1jb2x1bW4gY3VycmVudC1lbnZpcm9ubVtlbnRdIGN1cnJlbnQtaXRlcmF0aW9uCiBzeW4ga2V5d29yZCBQcm9ncmVzc09wZXJhdG9yCWN1cnJlbnQtcmVzdWx0LXJvdyBjdXJyZW50LXJvdy1tb2RpZmllZCBjdXJyZW50LXZhbHVlIGN1cnNvci1jaGFyIGN1cnNvci1saW5lIGN1cnNvci1vZmZzZXQgZGF0YS1lbnRyeS1yZXR1cltuXSBkYXRhLXRbeXBlXSBkYXRlIGRhdGUtZltvcm1hdF0gZGF5IGRiLXJlZmVyZW5jZXMKLXN5biBrZXl3b3JkIFByb2dyZXNzT3BlcmF0b3IJZGNvbG9yIGRkZS1lcnJvciBkZGUtaVtkXSBkZGUtaXRlbSBkZGUtbmFtZSBkZGUtdG9waWMgZGVidVtnXSBkZWNbaW1hbF0gZGVmYXVsdC1iW3V0dG9uXSBkZWZhdWx0LWV4dGVuc2lvW25dIGRlZmVyLWxvYi1mZXRjaCBkZWZpbmVkIGRlbGV0ZS1jaGFyIGRlbGV0ZS1jdXJyZW50LXJvdworc3luIGtleXdvcmQgUHJvZ3Jlc3NPcGVyYXRvcglkY29sb3IgZGRlLWVycm9yIGRkZS1pW2RdIGRkZS1pdGVtIGRkZS1uYW1lIGRkZS10b3BpYyBkZWJ1W2ddIGRlY1tpbWFsXSBkZWZhdWx0LWJbdXR0b25dIGRlZmF1bHQtZXh0ZW5zaW9bbl0gZGVmZXItbG9iLWZldGNoIGRlZmluZSBkZWZpbmVkIGRlbGV0ZS1jaGFyIGRlbGV0ZS1jdXJyZW50LXJvdwogc3luIGtleXdvcmQgUHJvZ3Jlc3NPcGVyYXRvcglkZWxldGUtbGluZSBkZWxldGUtc2VsZWN0ZWQtcm93IGRlbGV0ZS1zZWxlY3RlZC1yb3dzIGRlc2VsZWN0LWZvY3VzZWQtcm93IGRlc2VsZWN0LXJvd3MgZGVzZWxlY3Qtc2VsZWN0ZWQtcm93IGRbZXNpZ24tbW9kZV0gZGlhbG9nLWJveCBkaWFsb2ctaGVscCBkaXIgZGlzYWJsZWQgZGlzcGxheS1tZXNzYWdlCiBzeW4ga2V5d29yZCBQcm9ncmVzc09wZXJhdG9yCWRpc3BsYXktdFt5cGVdIGRvdWJsZSBkcmFnLWVuYWJsZWQgZHJvcC1kb3duIGRyb3AtZG93bi1saXN0IGR1bXAgZHluYW1pYyBlY2hvIGVkZ2UgZWRnZVstY2hhcnNdIGVkZ2UtcFtpeGVsc10gZWRpdG9yIGVtcHR5IGVuZC1rZXkgZW5ka2V5IGVudGVyZWQgZXEgZXJyb3IgZXJyb3ItY29sW3Vtbl0KIHN5biBrZXl3b3JkIFByb2dyZXNzT3BlcmF0b3IJZXJyb3Itcm93IGV2ZW50LXRbeXBlXSBldmVudFtzXSBleGNsdXNpdmUtaWQgZXhlY3V0ZSBleHAgZXhwYW5kIGV4dGVuZGVkIGV4dGVudCBleHRlcm5hbCBleHRyYWN0IGZldGNoLXNlbGVjdGVkLXJvdyBmZ2Nbb2xvcl0gZmlsZSBmaWxlLW5hbWUgZmlsZS1vZmZbc2V0XSBmaWxlLXR5cGUKQEAgLTE3NCwzOCArMTk4LDMwIEBACiAgIGVuZGlmCiAKICAgIiBUaGUgZGVmYXVsdCBtZXRob2RzIGZvciBoaWdobGlnaHRpbmcuIENhbiBiZSBvdmVycmlkZGVuIGxhdGVyLgotICBIaUxpbmsgUHJvZ3Jlc3NCeXRlCQkJICAgIE51bWJlcgorICBIaUxpbmsgUHJvZ3Jlc3NCeXRlCQkJCU51bWJlcgogICBIaUxpbmsgUHJvZ3Jlc3NDYXNlCQkJCVJlcGVhdAotICBIaUxpbmsgUHJvZ3Jlc3NDb21tZW50CQkJU3RhdHVzTGluZQorICBIaUxpbmsgUHJvZ3Jlc3NDb21tZW50CQkJQ29tbWVudAogICBIaUxpbmsgUHJvZ3Jlc3NDb25kaXRpb25hbAkJQ29uZGl0aW9uYWwKICAgSGlMaW5rIFByb2dyZXNzRGVidWcJCQkJRGVidWcKICAgSGlMaW5rIFByb2dyZXNzRG8JCQkJCVJlcGVhdAogICBIaUxpbmsgUHJvZ3Jlc3NFbmRFcnJvcgkJCUVycm9yCiAgIEhpTGluayBQcm9ncmVzc0ZvcgkJCQlSZXBlYXQKICAgSGlMaW5rIFByb2dyZXNzRnVuY3Rpb24JCQlQcm9jZWR1cmUKKyAgSGlMaW5rIFByb2dyZXNzSWRlbnRpZmllcgkJCUlkZW50aWZpZXIKICAgSGlMaW5rIFByb2dyZXNzSW5jbHVkZQkJCUluY2x1ZGUKLSAgSGlMaW5rIFByb2dyZXNzTGFiZWwJCQkJTGFiZWwKICAgSGlMaW5rIFByb2dyZXNzTWF0cml4RGVsaW1pdGVyCUlkZW50aWZpZXIKLSAgSGlMaW5rIFByb2dyZXNzTW9kaWZpZXIJCQlUeXBlCiAgIEhpTGluayBQcm9ncmVzc051bWJlcgkJCQlOdW1iZXIKLSAgSGlMaW5rIFByb2dyZXNzT3BlcmF0b3IJCQlGdW5jdGlvbgorICBIaUxpbmsgUHJvZ3Jlc3NPcGVyYXRvcgkJCU9wZXJhdG9yCiAgIEhpTGluayBQcm9ncmVzc1ByZVByb2MJCQlQcmVQcm9jCiAgIEhpTGluayBQcm9ncmVzc1Byb2NlZHVyZQkJCVByb2NlZHVyZQogICBIaUxpbmsgUHJvZ3Jlc3NRdW90ZQkJCQlEZWxpbWl0ZXIKICAgSGlMaW5rIFByb2dyZXNzUmVwZWF0CQkJCVJlcGVhdAotICBIaUxpbmsgUHJvZ3Jlc3NSZXNlcnZlZAkJCUlkZW50aWZpZXIKKyAgSGlMaW5rIFByb2dyZXNzUmVzZXJ2ZWQJCQlTdGF0ZW1lbnQKKyAgSGlMaW5rIFByb2dyZXNzU3BhY2VFcnJvcgkJCUVycm9yCiAgIEhpTGluayBQcm9ncmVzc1N0cmluZwkJCQlTdHJpbmcKLSAgSGlMaW5rIFByb2dyZXNzU3RydWN0dXJlCQkJU3RydWN0dXJlCi0gIEhpTGluayBQcm9ncmVzc1N1YnN0aXR1dGUJCQlQcmVQcm9jCiAgIEhpTGluayBQcm9ncmVzc1RvZG8JCQkJVG9kbwogICBIaUxpbmsgUHJvZ3Jlc3NUeXBlCQkJCVN0YXRlbWVudAotICBIaUxpbmsgUHJvZ3Jlc3NVbmNsYXNzaWZpZWQJCVN0YXRlbWVudAotCi0gICIgT3B0aW9uYWwgaGlnaGxpZ2h0aW5nCi0gICIgSGlMaW5rIFByb2dyZXNzRGVsaW1pdGVyCQlJZGVudGlmaWVyCi0gICIgSGlMaW5rIFByb2dyZXNzU2hvd1RhYgkJCUVycm9yCi0gICIgSGlMaW5rIFByb2dyZXNzU2hvd1RhYmMJCQlFcnJvcgotICAiIEhpTGluayBQcm9ncmVzc0lkZW50aWZpZXIJCUlkZW50aWZpZXIKKyAgSGlMaW5rIFByb2dyZXNzU2hvd1RhYgkJCUVycm9yCiAKICAgZGVsY29tbWFuZCBIaUxpbmsKIGVuZGlmCmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC9yZXh4LnZpbSBiL3J1bnRpbWUvc3ludGF4L3JleHgudmltCmluZGV4IGVmNGIwNTguLjE3OWU0NTMgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3JleHgudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3JleHgudmltCkBAIC0xLDExICsxLDE1IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJUmV4eAogIiBNYWludGFpbmVyOglUaG9tYXMgR2V1bGlnIDxnZXVsaWdAbmVudGVjLmRlPgotIiBMYXN0IENoYW5nZToJMjAwMSBNYXkgMgotIiBVUkw6CQlodHRwOi8vbXl3ZWJwYWdlLm5ldHNjYXBlLmNvbS9zaGFycFBlb3BsZS92aW0vc3ludGF4L3JleHgudmltCisiIExhc3QgQ2hhbmdlOiAgMjAwNSBEZXogIDksIGFkZGVkIHNvbWUgPGh0dHA6Ly93d3cub29SZXh4Lm9yZz4tY29sb3JpbmcsCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgY29tbWVudHMsIGRvICpvdmVyKiwgbWVzc2FnZXMsIGRpcmVjdGl2ZXMsCisiICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGluZyBjbGFzc2VzLCBtZXRob2RzLCByb3V0aW5lcyBhbmQgcmVxdWlyZXMKKyIgICAgICAgICAgICAgICBSb255IEcuIEZsYXRzY2hlciA8cm9ueS5mbGF0c2NoZXJAd3Utd2llbi5hYy5hdD4KICIKLSIgU3BlY2lhbCBUaGFua3MgdG8gRGFuIFNoYXJwIDxkd3NoYXJwQGhvdG1haWwuY29tPiBmb3IgY29tbWVudHMgYW5kIGFkZGl0aW9ucwotIiAoYW5kIHByb3ZpZGluZyB0aGUgd2Vic3BhY2UpCisiIFVSTDoJCWh0dHA6Ly93d3cuZ2V1bGlnLmRlL3ZpbS9yZXh4LnZpbQorIgorIiBTcGVjaWFsIFRoYW5rcyB0byBEYW4gU2hhcnAgPGR3c2hhcnBAaG90bWFpbC5jb20+IGFuZCBSb255IEcuIEZsYXRzY2hlcgorIiA8Um9ueS5GbGF0c2NoZXJAd3Utd2llbi5hYy5hdD4gZm9yIGNvbW1lbnRzIGFuZCBhZGRpdGlvbnMKIAogIiBGb3IgdmVyc2lvbiA1Lng6IENsZWFyIGFsbCBzeW50YXggaXRlbXMKICIgRm9yIHZlcnNpb24gNi54OiBRdWl0IHdoZW4gYSBzeW50YXggZmlsZSB3YXMgYWxyZWFkeSBsb2FkZWQKQEAgLTE3LDY1ICsyMSwxMjYgQEAKIAogc3luIGNhc2UgaWdub3JlCiAKKyIgYWRkIHRvIHZhbGlkIGlkZW50aWZpZXIgY2hhcnMKK3NldGxvY2FsIGlza2V5d29yZCs9Lgorc2V0bG9jYWwgaXNrZXl3b3JkKz0hCitzZXRsb2NhbCBpc2tleXdvcmQrPT8KKworIiAtLS1yZ2YsIHBvc2l0aW9uIGltcG9ydGFudDogbXVzdCBiZSBiZWZvcmUgY29tbWVudHMgZXRjLiAhCitzeW4gbWF0Y2ggcmV4eE9wZXJhdG9yICJbLT18XC9cXFwrXCpcW1xdLDs8PiZcfl0iCisKK3N5biBtYXRjaCByZXh4SWRlbnRpZmllciAgICAgICAgIlw8W2EtekEtWlwhXD9fXVwoW2EtekEtWjAtOS5fPyFdXCkqXD4iCitzeW4gbWF0Y2ggcmV4eEVudmlyb25tZW50U3ltYm9sICJcPFwuXCtcKFthLXpBLVowLTkuXz8hXVwpKlw+IgorCisKICIgQSBLZXl3b3JkIGlzIHRoZSBmaXJzdCBzeW1ib2wgaW4gYSBjbGF1c2UuICBBIGNsYXVzZSBiZWdpbnMgYXQgdGhlIHN0YXJ0CiAiIG9mIGEgbGluZSBvciBhZnRlciBhIHNlbWljb2xvbi4gIFRIRU4sIEVMU0UsIE9USEVSV0lTRSwgYW5kIGNvbG9ucyBhcmUgYWx3YXlzCiAiIGZvbGxvd2VkIGJ5IGFuIGltcGxpZWQgc2VtaWNvbG9uLgotc3luIG1hdGNoIHJleHhDbGF1c2UgIlwoXlx8O1x8Olx8dGhlbiBcfGVsc2UgXHxvdGhlcndpc2UgXClccypcd1wrIiBjb250YWlucz1BTEwKK3N5biBtYXRjaCByZXh4Q2xhdXNlICJcKF5cfDtcfDpcfHRoZW4gXHxlbHNlIFx8b3RoZXJ3aXNlIFwpXHMqXHdcKyIgY29udGFpbnM9QUxMQlVULHJleHhQYXJzZTIscmV4eFJhaXNlMgorCiAKICIgQ29uc2lkZXJlZCBrZXl3b3JkcyB3aGVuIHVzZWQgdG9nZXRoZXIgaW4gYSBwaHJhc2UgYW5kIGJlZ2luIGEgY2xhdXNlCi1zeW4gbWF0Y2ggcmV4eEtleXdvcmQgY29udGFpbmVkICJcPHNpZ25hbFwoIG9uIFwoZXJyb3JcfGZhaWx1cmVcfGhhbHRcfG5vdHJlYWR5XHxub3ZhbHVlXHxzeW50YXhcfGxvc3RkaWdpdHNcKVwoXHNcK25hbWVcKVw9XClcPVw+Igotc3luIG1hdGNoIHJleHhLZXl3b3JkIGNvbnRhaW5lZCAiXDxzaWduYWwgb2ZmIFwoZXJyb3JcfGZhaWx1cmVcfGhhbHRcfG5vdHJlYWR5XHxub3ZhbHVlXHxzeW50YXhcfGxvc3RkaWdpdHNcKVw+Igotc3luIG1hdGNoIHJleHhLZXl3b3JkIGNvbnRhaW5lZCAiXDxjYWxsIG9mZiBcKGVycm9yXHxmYWlsdXJlXHxoYWx0XHxub3RyZWFkeVwpXD4iCi1zeW4gbWF0Y2ggcmV4eEtleXdvcmQgY29udGFpbmVkICJcPHBhcnNlIFwodXBwZXIgXClcPVwoYXJnXHxsaW5laW5cfHB1bGxcfHNvdXJjZVx8dmFyXHx2YWx1ZVx8dmVyc2lvblwpXD4iCitzeW4gbWF0Y2ggcmV4eFBhcnNlICJcPHBhcnNlXHMqXChcKHVwcGVyXHxsb3dlclx8Y2FzZWxlc3NcKVxzKlwpXD1cKGFyZ1x8bGluZWluXHxwdWxsXHxzb3VyY2VcfHZhclx8XDx2YWx1ZVw+XHx2ZXJzaW9uXClcPiIKK3N5biBtYXRjaCByZXh4UGFyc2UyICJcPHdpdGhcPiIgY29udGFpbmVkIGNvbnRhaW5lZGluPXJleHhQYXJzZQorCisKIHN5biBtYXRjaCByZXh4S2V5d29yZCBjb250YWluZWQgIlw8bnVtZXJpYyBcKGRpZ2l0c1x8Zm9ybSBcKHNjaWVudGlmaWNcfGVuZ2luZWVyaW5nXHx2YWx1ZVwpXHxmdXp6XClcPiIKIHN5biBtYXRjaCByZXh4S2V5d29yZCBjb250YWluZWQgIlw8XChhZGRyZXNzXHx0cmFjZVwpXCggdmFsdWVcKVw9XD4iCi1zeW4gbWF0Y2ggcmV4eEtleXdvcmQgY29udGFpbmVkICJcPHByb2NlZHVyZVwoIGV4cG9zZVwpXD1cPiIKLXN5biBtYXRjaCByZXh4S2V5d29yZCBjb250YWluZWQgIlw8ZG9cKCBmb3JldmVyXClcPVw+Igorc3luIG1hdGNoIHJleHhLZXl3b3JkIGNvbnRhaW5lZCAiXDxwcm9jZWR1cmVcKFxzKmV4cG9zZVwpXD1cPiIKK3N5biBtYXRjaCByZXh4S2V5d29yZCBjb250YWluZWQgIlw8ZG9cPlwoXHMqZm9yZXZlclwpXD1cPiIKK3N5biBtYXRjaCByZXh4S2V5d29yZCBjb250YWluZWQgIlw8dXNlXD5ccypcPGFyZ1w+IgogCiAiIEFub3RoZXIga2V5d29yZCBwaHJhc2UsIHNlcGFyYXRlZCB0byBhaWQgaGlnaGxpZ2h0aW5nIGluIHJleHhGdW5jdGlvbgotc3luIG1hdGNoIHJleHhLZXl3b3JkMiBjb250YWluZWQgIlw8Y2FsbFwoIG9uIFwoZXJyb3JcfGZhaWx1cmVcfGhhbHRcfG5vdHJlYWR5XClcKFxzXCtuYW1lXClcPVwpXD1cPiIKK3N5biBtYXRjaCByZXh4S2V5d29yZCBjb250YWluZWQgIlw8c2lnbmFsXChccypcKG9uXHxvZmZcKVxzKlwoYW55XHxlcnJvclx8ZmFpbHVyZVx8aGFsdFx8bG9zdGRpZ2l0c1x8bm9tZXRob2RcfG5vc3RyaW5nXHxub3RyZWFkeVx8bm92YWx1ZVx8c3ludGF4XHx1c2VyXHMqXGsqXClcKFxzXCtuYW1lXClcPVwpXD1cPiIKK3N5biBtYXRjaCByZXh4S2V5d29yZDIgY29udGFpbmVkICJcPGNhbGxcKFxzKlwob25cfG9mZlwpXHMqXChhbnlcfGVycm9yXHxmYWlsdXJlXHxoYWx0XHxub3RyZWFkeVx8dXNlclxzKlxrKlwpXChcc1wrbmFtZVwpXD1cKVw9XD4iCisKIAogIiBDb25zaWRlcmVkIGtleXdvcmRzIHdoZW4gdGhleSBiZWdpbiBhIGNsYXVzZQotc3luIG1hdGNoIHJleHhLZXl3b3JkIGNvbnRhaW5lZCAiXDxcKGFyZ1x8ZHJvcFx8ZW5kXHxleGl0XHxpZlx8aW50ZXJwcmV0XHxpdGVyYXRlXHxsZWF2ZVx8bm9wXClcPiIKLXN5biBtYXRjaCByZXh4S2V5d29yZCBjb250YWluZWQgIlw8XChvcHRpb25zXHxwdWxsXHxwdXNoXHxxdWV1ZVx8cmV0dXJuXHxzYXlcfHNlbGVjdFx8dHJhY2VcKVw+Igorc3luIG1hdGNoIHJleHhLZXl3b3JkIGNvbnRhaW5lZCAiXDxcKGFyZ1x8ZG9cfGRyb3BcfGVuZFx8ZXhpdFx8ZXhwb3NlXHxmb3J3YXJkXHxpZlx8aW50ZXJwcmV0XHxpdGVyYXRlXHxsZWF2ZVx8bm9wXClcPiIKK3N5biBtYXRjaCByZXh4S2V5d29yZCBjb250YWluZWQgIlw8XChvcHRpb25zXHxwdWxsXHxwdXNoXHxxdWV1ZVx8cmFpc2VcfHJlcGx5XHxyZXR1cm5cfHNheVx8c2VsZWN0XHx0cmFjZVwpXD4iCiAKICIgQ29uZGl0aW9uYWwgcGhyYXNlcwotc3luIG1hdGNoIHJleHhDb25kaXRpb25hbCAiXCheXHMqXHwgXClcKHRvXHxieVx8Zm9yXHx1bnRpbFx8d2hpbGVcfHRoZW5cfHdoZW5cfG90aGVyd2lzZVx8ZWxzZVwpXCggXHxccyokXCkiIGNvbnRhaW5zPUFMTEJVVCxyZXh4Q29uZGl0aW9uYWwKLXN5biBtYXRjaCByZXh4Q29uZGl0aW9uYWwgY29udGFpbmVkICJcPFwodG9cfGJ5XHxmb3JcfHVudGlsXHx3aGlsZVx8dGhlblx8d2hlblx8ZWxzZVx8b3RoZXJ3aXNlXClcPiIKK3N5biBtYXRjaCByZXh4Q29uZGl0aW9uYWwgICJcKF5ccypcfCBcKVwodG9cfGJ5XHxmb3JcfHVudGlsXHx3aGlsZVx8dGhlblx8d2hlblx8b3RoZXJ3aXNlXHxlbHNlXHxvdmVyXClcKCBcfFxzKiRcKSIKK3N5biBtYXRjaCByZXh4Q29uZGl0aW9uYWwgY29udGFpbmVkICJcPFwodG9cfGJ5XHxmb3JcfHVudGlsXHx3aGlsZVx8dGhlblx8d2hlblx8b3RoZXJ3aXNlXHxlbHNlXHxvdmVyXClcPiIKIAotIiBBc3NpZ25tZW50cyAtLSBhIGtleXdvcmQgZm9sbG93ZWQgYnkgYW4gZXF1YWwgc2lnbiBiZWNvbWVzIGEgdmFyaWFibGUKLXN5biBtYXRjaCByZXh4QXNzaWduICJcPFx3XCtccyo9XHMqIiBjb250YWlucz1yZXh4U3BlY2lhbFZhcmlhYmxlCisiIG11c3QgYmUgYWZ0ZXIgQ29uZGl0aW9uYWwgcGhyYXNlcyEKK3N5biBtYXRjaCByZXh4S2V5d29yZCAiLipcPFwodGhlblx8ZWxzZVwpXHMqXDxkb1w+IgorCisiIFJhaXNlIHN0YXRlbWVudAorc3luIG1hdGNoIHJleHhSYWlzZSAiXCheXHw7XHw6XClcc1wrXDxyYWlzZVw+XHMqXDxcKHByb3BhZ2F0ZVx8ZXJyb3JcfGZhaWx1cmVcfHN5bnRheFx8dXNlclwpXD5cPSIKK3N5biBtYXRjaCByZXh4UmFpc2UyICJcPFwoYWRkaXRpb25hbFx8YXJyYXlcfGRlc2NyaXB0aW9uXHxleGl0XHxyZXR1cm5cKVw+IiBjb250YWluZWQgY29udGFpbmVkaW49cmV4eFJhaXNlCisKKyIgRm9yd2FyZCBzdGF0ZW1lbnQga2V5d29yZHMKK3N5biBtYXRjaCByZXh4Rm9yd2FyZCAgIlwoXlx8O1x8OlwpXDxmb3J3YXJkXD5ccyoiCitzeW4gbWF0Y2ggcmV4eEZvcndhcmQyICJcPFwoYXJndW1lbnRzXHxhcnJheVx8Y29udGludWVcfG1lc3NhZ2VcfGNsYXNzXHx0b1wpXD4iIGNvbnRhaW5lZCBjb250YWluZWRpbj1yZXh4Rm9yd2FyZAogCiAiIEZ1bmN0aW9ucy9Qcm9jZWR1cmVzCi1zeW4gbWF0Y2ggcmV4eEZ1bmN0aW9uCSJcPFxoXHcqXCgvXCpccypcKi9cKSooIm1lPWUtMSBjb250YWlucz1yZXh4Q29tbWVudCxyZXh4Q29uZGl0aW9uYWwscmV4eEtleXdvcmQKLXN5biBtYXRjaCByZXh4RnVuY3Rpb24JIlw8XChhcmdcfHRyYWNlXClcKC9cKlxzKlwqL1wpKigibWU9ZS0xCi1zeW4gbWF0Y2ggcmV4eEZ1bmN0aW9uCSJcPGNhbGxcKCBvbiBcKGVycm9yXHxmYWlsdXJlXHxoYWx0XHxub3RyZWFkeVwpXChcc1wrbmFtZVwpXD1cKVw9XD5cc1wrXHdcK1w+IiBjb250YWlucz1yZXh4S2V5d29yZDIKK3N5biBtYXRjaCByZXh4RnVuY3Rpb24JIlw8XHcqXCgvXCpccypcKi9cKSooIm1lPWUtMSBjb250YWlucz1yZXh4Q29tbWVudCxyZXh4Q29uZGl0aW9uYWwscmV4eEtleXdvcmQscmV4eElkZW50aWZpZXIKK3N5biBtYXRjaCByZXh4RnVuY3Rpb24gCSJcPFw8W2EtekEtWlwhXD9fXVwoW2EtekEtWjAtOS5fPyFdXCkqXD4oIm1lPWUtMQorc3luIG1hdGNoIHJleHhGdW5jdGlvbgkiXDxjYWxsXHNcK1xrXCtcPiIgIGNvbnRhaW5zPXJleHhLZXl3b3JkMgorc3luIG1hdGNoIHJleHhGdW5jdGlvbiAiWygpXSIKIAogIiBTdHJpbmcgY29uc3RhbnRzCi1zeW4gcmVnaW9uIHJleHhTdHJpbmcJICBzdGFydD0rIisgc2tpcD0rXFxcXFx8XFwnKyBlbmQ9KyIrCi1zeW4gcmVnaW9uIHJleHhTdHJpbmcJICBzdGFydD0rJysgc2tpcD0rXFxcXFx8XFwiKyBlbmQ9KycrCi1zeW4gbWF0Y2ggIHJleHhDaGFyYWN0ZXIgICsiJ1teXFxdJyIrCitzeW4gcmVnaW9uIHJleHhTdHJpbmcJICBzdGFydD0rIisgc2tpcD0rIiIrIGVuZD0rIlwoeFx8YlwpXD0rIG9uZWxpbmUKK3N5biByZWdpb24gcmV4eFN0cmluZwkgIHN0YXJ0PSsnKyBza2lwPSsnJysgZW5kPSsnXCh4XHxiXClcPSsgb25lbGluZQogCiAiIENhdGNoIGVycm9ycyBjYXVzZWQgYnkgd3JvbmcgcGFyZW50aGVzaXMKLXN5biByZWdpb24gcmV4eFBhcmVuIHRyYW5zcGFyZW50IHN0YXJ0PScoJyBlbmQ9JyknIGNvbnRhaW5zPUFMTEJVVCxyZXh4UGFyZW5FcnJvcixyZXh4VG9kbyxyZXh4VXNlckxhYmVsLHJleHhLZXl3b3JkCitzeW4gcmVnaW9uIHJleHhQYXJlbiB0cmFuc3BhcmVudCBzdGFydD0nKCcgZW5kPScpJyBjb250YWlucz1BTExCVVQscmV4eFBhcmVuRXJyb3IscmV4eFRvZG8scmV4eExhYmVsLHJleHhLZXl3b3JkCiBzeW4gbWF0Y2ggcmV4eFBhcmVuRXJyb3IJICIpIgogc3luIG1hdGNoIHJleHhJblBhcmVuCQkiW1xcW1xcXXt9XSIKIAogIiBDb21tZW50cwogc3luIHJlZ2lvbiByZXh4Q29tbWVudAkJc3RhcnQ9Ii9cKiIgZW5kPSJcKi8iIGNvbnRhaW5zPXJleHhUb2RvLHJleHhDb21tZW50CiBzeW4gbWF0Y2ggIHJleHhDb21tZW50RXJyb3IJIlwqLyIKK3N5biBtYXRjaCAgcmV4eExpbmVDb21tZW50ICAgICAgIC8tLS4qLwogCiBzeW4ga2V5d29yZCByZXh4VG9kbyBjb250YWluZWQJVE9ETyBGSVhNRSBYWFgKIAorCisiIG9vUmV4eCBtZXNzYWdlcworc3luIHJlZ2lvbiByZXh4TWVzc2FnZU9wZXJhdG9yIHN0YXJ0PSJcKFx+XHxcflx+XCkiIGVuZD0iXChcU1x8XHNcKSJtZT1lLTEKK3N5biBtYXRjaCByZXh4TWVzc2FnZSAiXChcflx8XH5cflwpXHMqXDxcLipbYS16QS1aXVwoW2EtekEtWjAtOS5fPyFdXCkqXD4iIGNvbnRhaW5zPXJleHhNZXNzYWdlT3BlcmF0b3IKKwogIiBIaWdobGlnaHQgVXNlciBMYWJlbHMKLXN5biBtYXRjaCByZXh4VXNlckxhYmVsCQkgIlw8XElcaSpccyo6Im1lPWUtMQorc3luIG1hdGNoIHJleHhMYWJlbAkJICJeXHMqXGsqXHMqOiJtZT1lLTEKKworc3luIG1hdGNoIHJleHhMaW5lQ29udGludWUgIixcemVccypcKC0tLipcfFwvXCouKlwpKiQiCisiIHRoZSBmb2xsb3dpbmcgaXMgbmVjZXNzYXJ5LCBvdGhlcndpc2UgdGhyZWUgY29uc2VjdXRpdmUgZGFzaGVzIHdpbGwgY2F1c2UgaXQgdG8gaGlnaGxpZ2h0IHRoZSBmaXJzdCBvbmUKK3N5biBtYXRjaCByZXh4TGluZUNvbnRpbnVlICItXHplXChccystLS4qXHxccypcL1wqLipcKSokIgogCiAiIFNwZWNpYWwgVmFyaWFibGVzCi1zeW4ga2V5d29yZCByZXh4U3BlY2lhbFZhcmlhYmxlICBzaWdsIHJjIHJlc3VsdAotc3luIG1hdGNoICAgcmV4eENvbXBvdW5kVmFyaWFibGUgIlw8XHdcK1wuXHcqXD4iCitzeW4ga2V5d29yZCByZXh4U3BlY2lhbFZhcmlhYmxlICBzaWdsIHJjIHJlc3VsdCBzZWxmIHN1cGVyCisKKyIgQ29uc3RhbnRzCitzeW4ga2V5d29yZCByZXh4Q29uc3QgLnRydWUgLmZhbHNlIC5uaWwKKworIiBvb1JleHggYnVpbHRpbiBjbGFzc2VzLCBmaXJzdCBkZWZpbmUgZG90IHRvIGJlIG8uay4gaW4ga2V5d29yZHMKK3N5biBrZXl3b3JkIHJleHhCdWlsdGluQ2xhc3MgLm9iamVjdCAuY2xhc3MgLm1ldGhvZCAubWVzc2FnZQorc3luIGtleXdvcmQgcmV4eEJ1aWx0aW5DbGFzcyAubW9uaXRvciAuYWxhcm0KK3N5biBrZXl3b3JkIHJleHhCdWlsdGluQ2xhc3MgLnN0ZW0gLnN0cmVhbSAuc3RyaW5nCitzeW4ga2V5d29yZCByZXh4QnVpbHRpbkNsYXNzIC5tdXRhYmxlYnVmZmVyCitzeW4ga2V5d29yZCByZXh4QnVpbHRpbkNsYXNzIC5hcnJheSAubGlzdCAucXVldWUgLmRpcmVjdG9yeSAudGFibGUgLnNldAorc3luIGtleXdvcmQgcmV4eEJ1aWx0aW5DbGFzcyAucmVsYXRpb24gLmJhZyAuc3VwcGxpZXIgLnJlZ3VsYXJFeHByZXNzaW9ucworCisiIFdpbmRvd3Mtb25seSBjbGFzc2VzCitzeW4ga2V5d29yZCByZXh4QnVpbHRpbkNsYXNzIC5PTEVPYmplY3QgLk1lbnVPYmplY3QgLldpbmRvd3NDbGlwYm9hcmQgLldpbmRvd3NFdmVudExvZworc3luIGtleXdvcmQgcmV4eEJ1aWx0aW5DbGFzcyAuV2luZG93c01hbmFnZXIgLldpbmRvd09iamVjdCAuV2luZG93c1Byb2dyYW1NYW5hZ2VyCisKKworIiBvb1JleHggZGlyZWN0aXZlcywgLS0tcmdmIGxvY2F0aW9uIGltcG9ydGFudCwgb3RoZXJ3aXNlIGRpcmVjdGl2ZXMgaW4gdG9wIG9mCisiIGZpbGUgbm90IG1hdGNoZWQhCitzeW4gcmVnaW9uIHJleHhDbGFzcyAgICBzdGFydD0iOjpccypjbGFzc1xzKiJtcz1lKzEgICAgZW5kPSJcemVcKFxzXHw7XHwkXCkiCitzeW4gcmVnaW9uIHJleHhNZXRob2QgICBzdGFydD0iOjpccyptZXRob2RccyoibXM9ZSsxICAgZW5kPSJcemVcKFxzXHw7XHwkXCkiCitzeW4gcmVnaW9uIHJleHhSZXF1aXJlcyBzdGFydD0iOjpccypyZXF1aXJlc1xzKiJtcz1lKzEgZW5kPSJcemVcKFxzXHw7XHwkXCkiCitzeW4gcmVnaW9uIHJleHhSb3V0aW5lICBzdGFydD0iOjpccypyb3V0aW5lXHMqIm1zPWUrMSAgZW5kPSJcemVcKFxzXHw7XHwkXCkiCisKK3N5biByZWdpb24gcmV4eERpcmVjdGl2ZSBzdGFydD0iXCheXHw7XClccyo6OlxzKlx3XCsiICBlbmQ9IlwoJFx8O1wpIiBjb250YWlucz1yZXh4U3RyaW5nLHJleHhDb21tZW50LHJleHhMaW5lQ29tbWVudCxyZXh4Q2xhc3MscmV4eE1ldGhvZCxyZXh4Um91dGluZSxyZXh4UmVxdWlyZXMga2VlcGVuZAorCisKIAogaWYgIWV4aXN0cygicmV4eF9taW5saW5lcyIpCi0gIGxldCByZXh4X21pbmxpbmVzID0gMTAKKyIgIGxldCByZXh4X21pbmxpbmVzID0gMTAKKyAgbGV0IHJleHhfbWlubGluZXMgPSA1MDAKIGVuZGlmCiBleGVjICJzeW4gc3luYyBjY29tbWVudCByZXh4Q29tbWVudCBtaW5saW5lcz0iIC4gcmV4eF9taW5saW5lcwogCkBAIC05MCw3ICsxNTUsNyBAQAogICAgIGNvbW1hbmQgLW5hcmdzPSsgSGlMaW5rIGhpIGRlZiBsaW5rIDxhcmdzPgogICBlbmRpZgogCi0gIEhpTGluayByZXh4VXNlckxhYmVsCQlGdW5jdGlvbgorICBIaUxpbmsgcmV4eExhYmVsCQlGdW5jdGlvbgogICBIaUxpbmsgcmV4eENoYXJhY3RlcgkJQ2hhcmFjdGVyCiAgIEhpTGluayByZXh4UGFyZW5FcnJvcgkJcmV4eEVycm9yCiAgIEhpTGluayByZXh4SW5QYXJlbgkJcmV4eEVycm9yCkBAIC0xMDUsNiArMTcwLDM0IEBACiAgIEhpTGluayByZXh4U3BlY2lhbFZhcmlhYmxlCVNwZWNpYWwKICAgSGlMaW5rIHJleHhDb25kaXRpb25hbAlyZXh4S2V5d29yZAogCisgIEhpTGluayByZXh4T3BlcmF0b3IJCU9wZXJhdG9yCisgIEhpTGluayByZXh4TWVzc2FnZU9wZXJhdG9yCXJleHhPcGVyYXRvcgorICBIaUxpbmsgcmV4eExpbmVDb21tZW50CVJleHhDb21tZW50CisKKyAgSGlMaW5rIHJleHhMaW5lQ29udGludWUJV2lsZE1lbnUKKworICBIaUxpbmsgcmV4eERpcmVjdGl2ZQkJcmV4eEtleXdvcmQKKyAgSGlMaW5rIHJleHhDbGFzcyAgICAgICAgICAgICAgVHlwZQorICBIaUxpbmsgcmV4eE1ldGhvZCAgICAgICAgICAgICByZXh4RnVuY3Rpb24KKyAgSGlMaW5rIHJleHhSZXF1aXJlcyAgICAgICAgICAgSW5jbHVkZQorICBIaUxpbmsgcmV4eFJvdXRpbmUgICAgICAgICAgICByZXh4RnVuY3Rpb24KKworICBIaUxpbmsgcmV4eENvbnN0CQlDb25zdGFudAorICBIaUxpbmsgcmV4eFR5cGVTcGVjaWZpZXIJVHlwZQorICBIaUxpbmsgcmV4eEJ1aWx0aW5DbGFzcwlyZXh4VHlwZVNwZWNpZmllcgorCisgIEhpTGluayByZXh4RW52aXJvbm1lbnRTeW1ib2wgIHJleHhDb25zdAorICBIaUxpbmsgcmV4eE1lc3NhZ2UJCXJleHhGdW5jdGlvbgorCisgIEhpTGluayByZXh4UGFyc2UgICAgICAgICAgICAgIHJleHhLZXl3b3JkCisgIEhpTGluayByZXh4UGFyc2UyICAgICAgICAgICAgIHJleHhQYXJzZQorCisgIEhpTGluayByZXh4UmFpc2UgICAgICAgICAgICAgIHJleHhLZXl3b3JkCisgIEhpTGluayByZXh4UmFpc2UyICAgICAgICAgICAgIHJleHhSYWlzZQorCisgIEhpTGluayByZXh4Rm9yd2FyZCAgICAgICAgICAgIHJleHhLZXl3b3JkCisgIEhpTGluayByZXh4Rm9yd2FyZDIgICAgICAgICAgIHJleHhGb3J3YXJkCisKICAgZGVsY29tbWFuZCBIaUxpbmsKIGVuZGlmCiAKZGlmZiAtLWdpdCBhL3J1bnRpbWUvc3ludGF4L3htbC52aW0gYi9ydW50aW1lL3N5bnRheC94bWwudmltCmluZGV4IDI4OGVhNTQuLjhmOGUxNTUgMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvc3ludGF4L3htbC52aW0KKysrIGIvcnVudGltZS9zeW50YXgveG1sLnZpbQpAQCAtNTgsOCArNTgsOCBAQAogIgogIiA8dGFnIGZvby5hdHRyaWJ1dGUgPSAidmFsdWUiPgogIiAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eCi1zeW4gcmVnaW9uICB4bWxTdHJpbmcgY29udGFpbmVkIHN0YXJ0PSsiKyBlbmQ9KyIrIGNvbnRhaW5zPXhtbEVudGl0eSBkaXNwbGF5Ci1zeW4gcmVnaW9uICB4bWxTdHJpbmcgY29udGFpbmVkIHN0YXJ0PSsnKyBlbmQ9KycrIGNvbnRhaW5zPXhtbEVudGl0eSBkaXNwbGF5CitzeW4gcmVnaW9uICB4bWxTdHJpbmcgY29udGFpbmVkIHN0YXJ0PSsiKyBlbmQ9KyIrIGNvbnRhaW5zPXhtbEVudGl0eSxAU3BlbGwgZGlzcGxheQorc3luIHJlZ2lvbiAgeG1sU3RyaW5nIGNvbnRhaW5lZCBzdGFydD0rJysgZW5kPSsnKyBjb250YWlucz14bWxFbnRpdHksQFNwZWxsIGRpc3BsYXkKIAogCiAiIHB1bmN0dWF0aW9uICh3aXRoaW4gYXR0cmlidXRlcykgZS5nLiA8dGFnIHhtbDpmb28uYXR0cmlidXRlIC4uLj4KQEAgLTE4Myw3ICsxODMsNyBAQAogCVwgZW5kPSs8L1x6MVxfXHNcey19PisKIAlcIG1hdGNoZ3JvdXA9eG1sRW5kVGFnIGVuZD0rLz4rCiAJXCBmb2xkCi0JXCBjb250YWlucz14bWxUYWcseG1sRW5kVGFnLHhtbENkYXRhLHhtbFJlZ2lvbix4bWxDb21tZW50LHhtbEVudGl0eSx4bWxQcm9jZXNzaW5nLEB4bWxSZWdpb25Ib29rCisJXCBjb250YWlucz14bWxUYWcseG1sRW5kVGFnLHhtbENkYXRhLHhtbFJlZ2lvbix4bWxDb21tZW50LHhtbEVudGl0eSx4bWxQcm9jZXNzaW5nLEB4bWxSZWdpb25Ib29rLEBTcGVsbAogCVwga2VlcGVuZAogCVwgZXh0ZW5kCiAKQEAgLTIzOSw3ICsyMzksNyBAQAogICAgIFwgc3RhcnQ9Ky0tKwogICAgIFwgZW5kPSstLSsKICAgICBcIGNvbnRhaW5lZAotICAgIFwgY29udGFpbnM9eG1sVG9kbyxAeG1sQ29tbWVudEhvb2sKKyAgICBcIGNvbnRhaW5zPXhtbFRvZG8sQHhtbENvbW1lbnRIb29rLEBTcGVsbAogCiAKICIgQ0RhdGEgc2VjdGlvbnMKQEAgLTI0OSw3ICsyNDksNyBAQAogc3luIHJlZ2lvbiAgICB4bWxDZGF0YQogICAgIFwgc3RhcnQ9KzwhXFtDREFUQVxbKwogICAgIFwgZW5kPStdXT4rCi0gICAgXCBjb250YWlucz14bWxDZGF0YVN0YXJ0LHhtbENkYXRhRW5kLEB4bWxDZGF0YUhvb2sKKyAgICBcIGNvbnRhaW5zPXhtbENkYXRhU3RhcnQseG1sQ2RhdGFFbmQsQHhtbENkYXRhSG9vayxAU3BlbGwKICAgICBcIGtlZXBlbmQKICAgICBcIGV4dGVuZAogCmRpZmYgLS1naXQgYS9zcmMvTWFrZV92bXMubW1zIGIvc3JjL01ha2Vfdm1zLm1tcwppbmRleCA1NTdjYjZkLi44OTViN2JjIDEwMDY0NAotLS0gYS9zcmMvTWFrZV92bXMubW1zCisrKyBiL3NyYy9NYWtlX3Ztcy5tbXMKQEAgLTIsNyArMiw3IEBACiAjIE1ha2VmaWxlIGZvciBWaW0gb24gT3BlblZNUwogIwogIyBNYWludGFpbmVyOiAgIFpvbHRhbiBBcnBhZGZmeSA8YXJwYWRmZnlAcG9sYXJob21lLmNvbT4KLSMgTGFzdCBjaGFuZ2U6ICAyMDA2IE1hciAzMQorIyBMYXN0IGNoYW5nZTogIDIwMDYgQXByIDExCiAjCiAjIFRoaXMgaGFzIHNjcmlwdCBiZWVuIHRlc3RlZCBvbiBWTVMgNi4yIHRvIDguMiBvbiBERUMgQWxwaGEsIFZBWCBhbmQgSUE2NAogIyB3aXRoIE1NUyBhbmQgTU1LCkBAIC00NCw2ICs0NCw3IEBACiAKICMgR1VJIG9yIHRlcm1pbmFsIG1vZGUgZXhlY3V0YWJsZS4KICMgQ29tbWVudCBvdXQgaWYgeW91IHdhbnQganVzdCB0aGUgY2hhcmFjdGVyIHRlcm1pbmFsIG1vZGUgb25seS4KKyMgR1VJIHdpdGggTW90aWYKIEdVSSA9IFlFUwogCiAjIEdVSSB3aXRoIEdUSwpAQCAtMTM2LDEyICsxMzcsMjQgQEAKIAogQ09ORklHX0ggPSBvc192bXNfY29uZi5oCiAKKyMgR1RLIG9yIFhQTSBidXQgbm90IGJvdGgKIC5JRkRFRiBHVEsKIC5JRkRFRiBHVUkKLS5JRkRFRiBYUE0KIC5FTFNFCiBHVUkgPSBZRVMKIC5FTkRJRgorLklGREVGIFhQTQorWFBNID0gIiIKKy5FTkRJRgorLkVORElGCisKKy5JRkRFRiBYUE0KKy5JRkRFRiBHVUkKKy5FTFNFCitHVUkgPSBZRVMKKy5FTkRJRgorLklGREVGIEdUSworR1RLID0gIiIKIC5FTkRJRgogLkVORElGCiAKZGlmZiAtLWdpdCBhL3NyYy9kb3NpbnN0LmggYi9zcmMvZG9zaW5zdC5oCmluZGV4IDQ4NWU3Y2QuLjQ1NWQyYTYgMTAwNjQ0Ci0tLSBhL3NyYy9kb3NpbnN0LmgKKysrIGIvc3JjL2Rvc2luc3QuaApAQCAtMjA3LDYgKzIwNywxNCBAQAogfQogCiAjaWZkZWYgV0lOMzI2NAorCisjaWZuZGVmIENTSURMX0NPTU1PTl9QUk9HUkFNUworIyBkZWZpbmUgQ1NJRExfQ09NTU9OX1BST0dSQU1TIDB4MDAxNworI2VuZGlmCisjaWZuZGVmIENTSURMX0NPTU1PTl9ERVNLVE9QRElSRUNUT1JZCisjIGRlZmluZSBDU0lETF9DT01NT05fREVTS1RPUERJUkVDVE9SWSAweDAwMTkKKyNlbmRpZgorCiAvKgogICogR2V0IHRoZSBwYXRoIHRvIGEgcmVxdWVzdGVkIFdpbmRvd3Mgc2hlbGwgZm9sZGVyLgogICoKQEAgLTIzNCwyMiArMjQyLDE0IEBACiAgICAgaWYgKHN0cmNtcChzaGVsbF9mb2xkZXJfbmFtZSwgImRlc2t0b3AiKSA9PSAwKQogICAgIHsKIAlwY3NpZGwgPSAmZGVza3RvcF9jc2lkbDsKLSNpZmRlZiBDU0lETF9DT01NT05fREVTS1RPUERJUkVDVE9SWQogCWNzaWRsID0gQ1NJRExfQ09NTU9OX0RFU0tUT1BESVJFQ1RPUlk7CiAJYWx0X2NzaWRsID0gQ1NJRExfREVTS1RPUDsKLSNlbHNlCi0JY3NpZGwgPSBDU0lETF9ERVNLVE9QOwotI2VuZGlmCiAgICAgfQogICAgIGVsc2UgaWYgKHN0cm5jbXAoc2hlbGxfZm9sZGVyX25hbWUsICJQcm9ncmFtcyIsIDgpID09IDApCiAgICAgewogCXBjc2lkbCA9ICZwcm9ncmFtc19jc2lkbDsKLSNpZmRlZiBDU0lETF9DT01NT05fUFJPR1JBTVMKIAljc2lkbCA9IENTSURMX0NPTU1PTl9QUk9HUkFNUzsKIAlhbHRfY3NpZGwgPSBDU0lETF9QUk9HUkFNUzsKLSNlbHNlCi0JY3NpZGwgPSBDU0lETF9QUk9HUkFNUzsKLSNlbmRpZgogICAgIH0KICAgICBlbHNlCiAgICAgewpkaWZmIC0tZ2l0IGEvc3JjL2VkaXQuYyBiL3NyYy9lZGl0LmMKaW5kZXggMDhhMjRkNy4uZjJhNWNkYSAxMDA2NDQKLS0tIGEvc3JjL2VkaXQuYworKysgYi9zcmMvZWRpdC5jCkBAIC0yOTY5LDYgKzI5NjksOSBAQAogCSAgICBpbnNfY29tcGxfc2V0X29yaWdpbmFsX3RleHQoY29tcGxfbGVhZGVyKTsKIAllbHNlCiAJeworI2lmZGVmIEZFQVRfU1BFTEwKKwkgICAgc3BlbGxfYmFkX2xlbiA9IDA7CS8qIG5lZWQgdG8gcmVkZXRlY3QgYmFkIHdvcmQgKi8KKyNlbmRpZgogCSAgICAvKiBNYXRjaGVzIHdlcmUgY2xlYXJlZCwgbmVlZCB0byBzZWFyY2ggZm9yIHRoZW0gbm93LiAqLwogCSAgICBpZiAoaW5zX2NvbXBsZXRlKEN0cmxfTikgPT0gRkFJTCkKIAkJY29tcGxfY29udF9zdGF0dXMgPSAwOwpkaWZmIC0tZ2l0IGEvc3JjL2V2YWwuYyBiL3NyYy9ldmFsLmMKaW5kZXggMWI3NTIwMS4uNDVlZmFiNyAxMDA2NDQKLS0tIGEvc3JjL2V2YWwuYworKysgYi9zcmMvZXZhbC5jCkBAIC0xNjIwOCw3ICsxNjIwOCw3IEBACiAJICAgIHJldHVybiBOVUxMOwogCWxlbiA9IChsb25nKVNUUkxFTihtbF9nZXQocG9zLmxudW0pKTsKIAkvKiBBY2NlcHQgYSBwb3NpdGlvbiB1cCB0byB0aGUgTlVMIGFmdGVyIHRoZSBsaW5lLiAqLwotCWlmIChwb3MuY29sIDw9IDAgfHwgKGludClwb3MuY29sID4gbGVuICsgMSkKKwlpZiAocG9zLmNvbCA9PSAwIHx8IChpbnQpcG9zLmNvbCA+IGxlbiArIDEpCiAJICAgIHJldHVybiBOVUxMOwkvKiBpbnZhbGlkIGNvbHVtbiBudW1iZXIgKi8KIAktLXBvcy5jb2w7CiAKZGlmZiAtLWdpdCBhL3NyYy9leF9jbWRzLmMgYi9zcmMvZXhfY21kcy5jCmluZGV4IDkyMDZlMDIuLjliYTNlODEgMTAwNjQ0Ci0tLSBhL3NyYy9leF9jbWRzLmMKKysrIGIvc3JjL2V4X2NtZHMuYwpAQCAtMjYxLDE4ICsyNjEsMjMgQEAKICAgICByZXR1cm4gbGVuOwogfQogCi0vKiBCdWZmZXIgZm9yIG9uZSBsaW5lIHVzZWQgZHVyaW5nIHNvcnRpbmcuICBJdCdzIGFsbG9jYXRlZCB0byBjb250YWluIHRoZQotICogbG9uZ2VzdCBsaW5lIGJlaW5nIHNvcnRlZC4gKi8KLXN0YXRpYyBjaGFyX3UJKnNvcnRidWY7CisvKiBCdWZmZXIgZm9yIHR3byBsaW5lcyB1c2VkIGR1cmluZyBzb3J0aW5nLiAgVGhleSBhcmUgYWxsb2NhdGVkIHRvCisgKiBjb250YWluIHRoZSBsb25nZXN0IGxpbmUgYmVpbmcgc29ydGVkLiAqLworc3RhdGljIGNoYXJfdQkqc29ydGJ1ZjE7CitzdGF0aWMgY2hhcl91CSpzb3J0YnVmMjsKIAogc3RhdGljIGludAlzb3J0X2ljOwkJLyogaWdub3JlIGNhc2UgKi8KIHN0YXRpYyBpbnQJc29ydF9ucjsJCS8qIHNvcnQgb24gbnVtYmVyICovCitzdGF0aWMgaW50CXNvcnRfcng7CQkvKiBzb3J0IG9uIHJlZ2V4IGluc3RlYWQgb2Ygc2tpcHBpbmcgaXQgKi8KKworc3RhdGljIGludAlzb3J0X2Fib3J0OwkJLyogZmxhZyB0byBpbmRpY2F0ZSBpZiBzb3J0aW5nIGhhcyBiZWVuIGludGVycnVwdGVkICovCiAKIC8qIFN0cnVjdCB0byBzdG9yZSBpbmZvIHRvIGJlIHNvcnRlZC4gKi8KIHR5cGVkZWYgc3RydWN0CiB7CiAgICAgbGluZW5yX1QJbG51bTsJCQkvKiBsaW5lIG51bWJlciAqLwotICAgIGxvbmcJY29sX25yOwkJCS8qIGNvbHVtbiBudW1iZXIgb3IgbnVtYmVyICovCisgICAgbG9uZwlzdGFydF9jb2xfbnI7CQkvKiBzdGFydGluZyBjb2x1bW4gbnVtYmVyIG9yIG51bWJlciAqLworICAgIGxvbmcJZW5kX2NvbF9ucjsJCS8qIGVuZGluZyBjb2x1bW4gbnVtYmVyICovCiB9IHNvcnRpX1Q7CiAKIHN0YXRpYyBpbnQKQEAgLTI5MSwxOCArMjk2LDM1IEBACiB7CiAgICAgc29ydGlfVAlsMSA9ICooc29ydGlfVCAqKXMxOwogICAgIHNvcnRpX1QJbDIgPSAqKHNvcnRpX1QgKilzMjsKLSAgICBjaGFyX3UJKnM7CisgICAgaW50CQlyZXN1bHQgPSAwOwogCi0gICAgLyogV2hlbiBzb3J0aW5nIG51bWJlcnMgImNvbF9uciIgaXMgdGhlIG51bWJlciwgbm90IHRoZSBjb2x1bW4gbnVtYmVyLiAqLworICAgIC8qIElmIHRoZSB1c2VyIGludGVycnVwdHMsIHRoZXJlJ3Mgbm8gd2F5IHRvIHN0b3AgcXNvcnQoKSBpbW1lZGlhdGVseSwgYnV0CisgICAgICogaWYgd2UgcmV0dXJuIDAgZXZlcnkgdGltZSwgcXNvcnQgd2lsbCBhc3N1bWUgaXQncyBkb25lIHNvcnRpbmcgYW5kIGV4aXQgKi8KKyAgICBpZiAoc29ydF9hYm9ydCkKKwlyZXR1cm4gMDsKKyAgICBmYXN0X2JyZWFrY2hlY2soKTsKKyAgICBpZiAoZ290X2ludCkKKwlzb3J0X2Fib3J0ID0gVFJVRTsKKworICAgIC8qIFdoZW4gc29ydGluZyBudW1iZXJzICJzdGFydF9jb2xfbnIiIGlzIHRoZSBudW1iZXIsIG5vdCB0aGUgY29sdW1uIG51bWJlci4gKi8KICAgICBpZiAoc29ydF9ucikKLQlyZXR1cm4gbDEuY29sX25yIC0gbDIuY29sX25yOworCXJlc3VsdCA9IGwxLnN0YXJ0X2NvbF9uciAtIGwyLnN0YXJ0X2NvbF9ucjsKKyAgICBlbHNlCisgICAgeworCS8qIFdlIG5lZWQgdG8gY29weSBvbmUgbGluZSBpbnRvICJzb3J0YnVmMSIsIGJlY2F1c2UgdGhlcmUgaXMgbm8gZ3VhcmFudGVlCisJICogdGhhdCB0aGUgZmlyc3QgcG9pbnRlciBiZWNvbWVzIGludmFsaWQgd2hlbiBvYnRhaW5pbmcgdGhlIHNlY29uZCBvbmUuICovCisJU1RSTkNQWShzb3J0YnVmMSwgbWxfZ2V0KGwxLmxudW0pICsgbDEuc3RhcnRfY29sX25yLCBsMS5lbmRfY29sX25yIC0gbDEuc3RhcnRfY29sX25yICsgMSk7CisJc29ydGJ1ZjFbbDEuZW5kX2NvbF9uciAtIGwxLnN0YXJ0X2NvbF9ucl0gPSAwOworCVNUUk5DUFkoc29ydGJ1ZjIsIG1sX2dldChsMi5sbnVtKSArIGwyLnN0YXJ0X2NvbF9uciwgbDIuZW5kX2NvbF9uciAtIGwyLnN0YXJ0X2NvbF9uciArIDEpOworCXNvcnRidWYyW2wyLmVuZF9jb2xfbnIgLSBsMi5zdGFydF9jb2xfbnJdID0gMDsKIAotICAgIC8qIFdlIG5lZWQgdG8gY29weSBvbmUgbGluZSBpbnRvICJzb3J0YnVmIiwgYmVjYXVzZSB0aGVyZSBpcyBubyBndWFyYW50ZWUKLSAgICAgKiB0aGF0IHRoZSBmaXJzdCBwb2ludGVyIGJlY29tZXMgaW52YWxpZCB3aGVuIG9idGFpbmluZyB0aGUgc2Vjb25kIG9uZS4gKi8KLSAgICBTVFJDUFkoc29ydGJ1ZiwgbWxfZ2V0KGwxLmxudW0pICsgbDEuY29sX25yKTsKLSAgICBzID0gbWxfZ2V0KGwyLmxudW0pICsgbDIuY29sX25yOwotCi0gICAgcmV0dXJuIHNvcnRfaWMgPyBTVFJJQ01QKHNvcnRidWYsIHMpIDogU1RSQ01QKHNvcnRidWYsIHMpOworCXJlc3VsdCA9IHNvcnRfaWMgPyBTVFJJQ01QKHNvcnRidWYxLCBzb3J0YnVmMikgOiBTVFJDTVAoc29ydGJ1ZjEsIHNvcnRidWYyKTsKKyAgICB9CisgICAgLyogSWYgdGhlIHR3byBsaW5lcyBoYXZlIHRoZSBzYW1lIHZhbHVlLCBwcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgbGluZSBvcmRlciAqLworICAgIGlmIChyZXN1bHQgPT0gMCkKKwlyZXR1cm4gKGludCkgKGwxLmxudW0gLSBsMi5sbnVtKTsKKyAgICBlbHNlCisJcmV0dXJuIHJlc3VsdDsKIH0KIAogLyoKQEAgLTMyMSwyMSArMzQzLDI1IEBACiAgICAgc2l6ZV90CWk7CiAgICAgY2hhcl91CSpwOwogICAgIGNoYXJfdQkqczsKKyAgICBjaGFyX3UJKnMyOworICAgIGNoYXJfdQljOwkJCS8qIHRlbXBvcmFyeSBjaGFyYWN0ZXIgc3RvcmFnZSAqLwogICAgIGludAkJdW5pcXVlID0gRkFMU0U7CiAgICAgbG9uZwlkZWxldGVkOwotICAgIGNvbG5yX1QJY29sOworICAgIGNvbG5yX1QJc3RhcnRfY29sOworICAgIGNvbG5yX1QJZW5kX2NvbDsKICAgICBpbnQJCXNvcnRfb2N0OwkJLyogc29ydCBvbiBvY3RhbCBudW1iZXIgKi8KICAgICBpbnQJCXNvcnRfaGV4OwkJLyogc29ydCBvbiBoZXggbnVtYmVyICovCiAKICAgICBpZiAodV9zYXZlKChsaW5lbnJfVCkoZWFwLT5saW5lMSAtIDEpLCAobGluZW5yX1QpKGVhcC0+bGluZTIgKyAxKSkgPT0gRkFJTCkKIAlyZXR1cm47Ci0gICAgc29ydGJ1ZiA9IE5VTEw7CisgICAgc29ydGJ1ZjEgPSBOVUxMOworICAgIHNvcnRidWYyID0gTlVMTDsKICAgICByZWdtYXRjaC5yZWdwcm9nID0gTlVMTDsKICAgICBucnMgPSAoc29ydGlfVCAqKWxhbGxvYygobG9uZ191KShjb3VudCAqIHNpemVvZihzb3J0aV9UKSksIFRSVUUpOwogICAgIGlmIChucnMgPT0gTlVMTCkKLQlnb3RvIHRoZWVuZDsKKwlnb3RvIHNvcnRlbmQ7CiAKLSAgICBzb3J0X2ljID0gc29ydF9uciA9IHNvcnRfb2N0ID0gc29ydF9oZXggPSAwOworICAgIHNvcnRfYWJvcnQgPSBzb3J0X2ljID0gc29ydF9yeCA9IHNvcnRfbnIgPSBzb3J0X29jdCA9IHNvcnRfaGV4ID0gMDsKIAogICAgIGZvciAocCA9IGVhcC0+YXJnOyAqcCAhPSBOVUw7ICsrcCkKICAgICB7CkBAIC0zNDMsNiArMzY5LDggQEAKIAkgICAgOwogCWVsc2UgaWYgKCpwID09ICdpJykKIAkgICAgc29ydF9pYyA9IFRSVUU7CisJZWxzZSBpZiAoKnAgPT0gJ3InKQorCSAgICBzb3J0X3J4ID0gVFJVRTsKIAllbHNlIGlmICgqcCA9PSAnbicpCiAJICAgIHNvcnRfbnIgPSAyOwogCWVsc2UgaWYgKCpwID09ICdvJykKQEAgLTM2NCwxOSArMzkyLDE5IEBACiAJICAgIGlmICgqcyAhPSAqcCkKIAkgICAgewogCQlFTVNHKF8oZV9pbnZhbHBhdCkpOwotCQlnb3RvIHRoZWVuZDsKKwkJZ290byBzb3J0ZW5kOwogCSAgICB9CiAJICAgICpzID0gTlVMOwogCSAgICByZWdtYXRjaC5yZWdwcm9nID0gdmltX3JlZ2NvbXAocCArIDEsIFJFX01BR0lDKTsKIAkgICAgaWYgKHJlZ21hdGNoLnJlZ3Byb2cgPT0gTlVMTCkKLQkJZ290byB0aGVlbmQ7CisJCWdvdG8gc29ydGVuZDsKIAkgICAgcCA9IHM7CQkvKiBjb250aW51ZSBhZnRlciB0aGUgcmVnZXhwICovCiAJICAgIHJlZ21hdGNoLnJtX2ljID0gcF9pYzsKIAl9CiAJZWxzZQogCXsKIAkgICAgRU1TRzIoXyhlX2ludmFyZzIpLCBwKTsKLQkgICAgZ290byB0aGVlbmQ7CisJICAgIGdvdG8gc29ydGVuZDsKIAl9CiAgICAgfQogCkBAIC0zODQsNyArNDEyLDcgQEAKICAgICBpZiAoc29ydF9uciArIHNvcnRfb2N0ICsgc29ydF9oZXggPiAyKQogICAgIHsKIAlFTVNHKF8oZV9pbnZhcmcpKTsKLQlnb3RvIHRoZWVuZDsKKwlnb3RvIHNvcnRlbmQ7CiAgICAgfQogCiAgICAgLyogRnJvbSBoZXJlIG9uICJzb3J0X25yIiBpcyB1c2VkIGFzIGEgZmxhZyBmb3IgYW55IG51bWJlciBzb3J0aW5nLiAqLwpAQCAtMzkzLDkgKzQyMSw5IEBACiAgICAgLyoKICAgICAgKiBNYWtlIGFuIGFycmF5IHdpdGggYWxsIGxpbmUgbnVtYmVycy4gIFRoaXMgYXZvaWRzIGhhdmluZyB0byBjb3B5IGFsbAogICAgICAqIHRoZSBsaW5lcyBpbnRvIGFsbG9jYXRlZCBtZW1vcnkuCi0gICAgICogV2hlbiBzb3J0aW5nIG9uIHN0cmluZ3MgImNvbF9uciIgaXMgZGUgb2Zmc2V0IGluIHRoZSBsaW5lLCBmb3IgbnVtYmVycwotICAgICAqIHNvcnRpbmcgaXQncyB0aGUgbnVtYmVyIHRvIHNvcnQgb24uICBUaGlzIG1lYW5zIHRoZSBwYXR0ZXJuIG1hdGNoaW5nCi0gICAgICogYW5kIG51bWJlciBjb252ZXJzaW9uIG9ubHkgaGFzIHRvIGJlIGRvbmUgb25jZSBwZXIgbGluZS4KKyAgICAgKiBXaGVuIHNvcnRpbmcgb24gc3RyaW5ncyAic3RhcnRfY29sX25yIiBpcyB0aGUgb2Zmc2V0IGluIHRoZSBsaW5lLCBmb3IKKyAgICAgKiBudW1iZXJzIHNvcnRpbmcgaXQncyB0aGUgbnVtYmVyIHRvIHNvcnQgb24uICBUaGlzIG1lYW5zIHRoZSBwYXR0ZXJuCisgICAgICogbWF0Y2hpbmcgYW5kIG51bWJlciBjb252ZXJzaW9uIG9ubHkgaGFzIHRvIGJlIGRvbmUgb25jZSBwZXIgbGluZS4KICAgICAgKiBBbHNvIGdldCB0aGUgbG9uZ2VzdCBsaW5lIGxlbmd0aCBmb3IgYWxsb2NhdGluZyAic29ydGJ1ZiIuCiAgICAgICovCiAgICAgZm9yIChsbnVtID0gZWFwLT5saW5lMTsgbG51bSA8PSBlYXAtPmxpbmUyOyArK2xudW0pCkBAIC00MDUsNTcgKzQzMyw4MyBAQAogCWlmIChtYXhsZW4gPCBsZW4pCiAJICAgIG1heGxlbiA9IGxlbjsKIAorCXN0YXJ0X2NvbCA9IDA7CisJZW5kX2NvbCA9IGxlbjsKIAlpZiAocmVnbWF0Y2gucmVncHJvZyAhPSBOVUxMICYmIHZpbV9yZWdleGVjKCZyZWdtYXRjaCwgcywgMCkpCi0JICAgIGNvbCA9IHJlZ21hdGNoLmVuZHBbMF0gLSBzOworCXsKKwkgICAgaWYgKHNvcnRfcngpCisJICAgIHsKKwkJc3RhcnRfY29sID0gcmVnbWF0Y2guc3RhcnRwWzBdIC0gczsKKwkJZW5kX2NvbCA9IHJlZ21hdGNoLmVuZHBbMF0gLSBzOworCSAgICB9CisJICAgIGVsc2UKKwkJc3RhcnRfY29sID0gcmVnbWF0Y2guZW5kcFswXSAtIHM7CisJfQogCWVsc2UKLQkgICAgY29sID0gMDsKKwkgICAgaWYgKHJlZ21hdGNoLnJlZ3Byb2cgIT0gTlVMTCkKKwkJZW5kX2NvbCA9IDA7CiAKIAlpZiAoc29ydF9ucikKIAl7CisJICAgIC8qIE1ha2Ugc3VyZSB2aW1fc3RyMm5yIGRvZXNuJ3QgcmVhZCBhbnkgZGlnaXRzIHBhc3QgdGhlIGVuZAorCSAgICAgKiBvZiB0aGUgbWF0Y2gsIGJ5IHRlbXBvcmFyaWx5IHRlcm1pbmF0aW5nIHRoZSBzdHJpbmcgdGhlcmUgKi8KKwkgICAgczIgPSBzICsgZW5kX2NvbDsKKwkgICAgYyA9ICpzMjsKKwkgICAgKCpzMikgPSAwOwogCSAgICAvKiBTb3J0aW5nIG9uIG51bWJlcjogU3RvcmUgdGhlIG51bWJlciBpdHNlbGYuICovCiAJICAgIGlmIChzb3J0X2hleCkKLQkJcyA9IHNraXB0b2hleChzICsgY29sKTsKKwkJcyA9IHNraXB0b2hleChzICsgc3RhcnRfY29sKTsKIAkgICAgZWxzZQotCQlzID0gc2tpcHRvZGlnaXQocyArIGNvbCk7CisJCXMgPSBza2lwdG9kaWdpdChzICsgc3RhcnRfY29sKTsKIAkgICAgdmltX3N0cjJucihzLCBOVUxMLCBOVUxMLCBzb3J0X29jdCwgc29ydF9oZXgsCi0JCQkJCSZucnNbbG51bSAtIGVhcC0+bGluZTFdLmNvbF9uciwgTlVMTCk7CisJCQkJCSZucnNbbG51bSAtIGVhcC0+bGluZTFdLnN0YXJ0X2NvbF9uciwgTlVMTCk7CisJICAgICgqczIpID0gYzsKIAl9CiAJZWxzZQorCXsKIAkgICAgLyogU3RvcmUgdGhlIGNvbHVtbiB0byBzb3J0IGF0LiAqLwotCSAgICBucnNbbG51bSAtIGVhcC0+bGluZTFdLmNvbF9uciA9IGNvbDsKKwkgICAgbnJzW2xudW0gLSBlYXAtPmxpbmUxXS5zdGFydF9jb2xfbnIgPSBzdGFydF9jb2w7CisJICAgIG5yc1tsbnVtIC0gZWFwLT5saW5lMV0uZW5kX2NvbF9uciA9IGVuZF9jb2w7CisJfQogCiAJbnJzW2xudW0gLSBlYXAtPmxpbmUxXS5sbnVtID0gbG51bTsKIAogCWlmIChyZWdtYXRjaC5yZWdwcm9nICE9IE5VTEwpCiAJICAgIGZhc3RfYnJlYWtjaGVjaygpOwogCWlmIChnb3RfaW50KQotCSAgICBnb3RvIHRoZWVuZDsKKwkgICAgZ290byBzb3J0ZW5kOwogICAgIH0KIAogICAgIC8qIEFsbG9jYXRlIGEgYnVmZmVyIHRoYXQgY2FuIGhvbGQgdGhlIGxvbmdlc3QgbGluZS4gKi8KLSAgICBzb3J0YnVmID0gYWxsb2MoKHVuc2lnbmVkKW1heGxlbiArIDEpOwotICAgIGlmIChzb3J0YnVmID09IE5VTEwpCi0JZ290byB0aGVlbmQ7CisgICAgc29ydGJ1ZjEgPSBhbGxvYygodW5zaWduZWQpbWF4bGVuICsgMSk7CisgICAgaWYgKHNvcnRidWYxID09IE5VTEwpCisJZ290byBzb3J0ZW5kOworICAgIHNvcnRidWYyID0gYWxsb2MoKHVuc2lnbmVkKW1heGxlbiArIDEpOworICAgIGlmIChzb3J0YnVmMiA9PSBOVUxMKQorCWdvdG8gc29ydGVuZDsKIAogICAgIC8qIFNvcnQgdGhlIGFycmF5IG9mIGxpbmUgbnVtYmVycy4gIE5vdGU6IGNhbid0IGJlIGludGVycnVwdGVkISAqLwogICAgIHFzb3J0KCh2b2lkICopbnJzLCBjb3VudCwgc2l6ZW9mKHNvcnRpX1QpLCBzb3J0X2NvbXBhcmUpOwogCisgICAgaWYgKHNvcnRfYWJvcnQpCisJZ290byBzb3J0ZW5kOworCiAgICAgLyogSW5zZXJ0IHRoZSBsaW5lcyBpbiB0aGUgc29ydGVkIG9yZGVyIGJlbG93IHRoZSBsYXN0IG9uZS4gKi8KICAgICBsbnVtID0gZWFwLT5saW5lMjsKICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkKICAgICB7CiAJcyA9IG1sX2dldChucnNbZWFwLT5mb3JjZWl0ID8gY291bnQgLSBpIC0gMSA6IGldLmxudW0pOwogCWlmICghdW5pcXVlIHx8IGkgPT0gMAotCQl8fCAoc29ydF9pYyA/IFNUUklDTVAocywgc29ydGJ1ZikgOiBTVFJDTVAocywgc29ydGJ1ZikpICE9IDApCisJCXx8IChzb3J0X2ljID8gU1RSSUNNUChzLCBzb3J0YnVmMSkgOiBTVFJDTVAocywgc29ydGJ1ZjEpKSAhPSAwKQogCXsKIAkgICAgaWYgKG1sX2FwcGVuZChsbnVtKyssIHMsIChjb2xucl9UKTAsIEZBTFNFKSA9PSBGQUlMKQogCQlicmVhazsKIAkgICAgaWYgKHVuaXF1ZSkKLQkJU1RSQ1BZKHNvcnRidWYsIHMpOworCQlTVFJDUFkoc29ydGJ1ZjEsIHMpOwogCX0KIAlmYXN0X2JyZWFrY2hlY2soKTsKIAlpZiAoZ290X2ludCkKLQkgICAgZ290byB0aGVlbmQ7CisJICAgIGdvdG8gc29ydGVuZDsKICAgICB9CiAKICAgICAvKiBkZWxldGUgdGhlIG9yaWdpbmFsIGxpbmVzIGlmIGFwcGVuZGluZyB3b3JrZWQgKi8KQEAgLTQ3Niw5ICs1MzAsMTAgQEAKICAgICBjdXJ3aW4tPndfY3Vyc29yLmxudW0gPSBlYXAtPmxpbmUxOwogICAgIGJlZ2lubGluZShCTF9XSElURSB8IEJMX0ZJWCk7CiAKLXRoZWVuZDoKK3NvcnRlbmQ6CiAgICAgdmltX2ZyZWUobnJzKTsKLSAgICB2aW1fZnJlZShzb3J0YnVmKTsKKyAgICB2aW1fZnJlZShzb3J0YnVmMSk7CisgICAgdmltX2ZyZWUoc29ydGJ1ZjIpOwogICAgIHZpbV9mcmVlKHJlZ21hdGNoLnJlZ3Byb2cpOwogICAgIGlmIChnb3RfaW50KQogCUVNU0coXyhlX2ludGVycikpOwpkaWZmIC0tZ2l0IGEvc3JjL29wdGlvbi5jIGIvc3JjL29wdGlvbi5jCmluZGV4IDBhNGQ5YzcuLmQyNGIyY2QgMTAwNjQ0Ci0tLSBhL3NyYy9vcHRpb24uYworKysgYi9zcmMvb3B0aW9uLmMKQEAgLTEwMjUyLDcgKzEwMjUyLDcgQEAKICAgICBjaGFyX3UJKmVudm5hbWU7CiB7CiAgICAgaW50CQlvcHRfaWR4OwotICAgIGludAkJZG9mcmVlOworICAgIGludAkJZG9mcmVlID0gRkFMU0U7CiAgICAgY2hhcl91CSpwOwogCiAgICAgaWYgKCFvcHRpb25fd2FzX3NldCgoY2hhcl91ICopImNwIikpCmRpZmYgLS1naXQgYS9zcmMvb3NfbWFjX3JzcmMvZG9jLXR4dC5pY25zIGIvc3JjL29zX21hY19yc3JjL2RvYy10eHQuaWNucwppbmRleCAxMjRhNzMwLi4yMjE5ZTJjIDEwMDY0NAotLS0gYS9zcmMvb3NfbWFjX3JzcmMvZG9jLXR4dC5pY25zCisrKyBiL3NyYy9vc19tYWNfcnNyYy9kb2MtdHh0LmljbnMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3NjcmVlbi5jIGIvc3JjL3NjcmVlbi5jCmluZGV4IGI4MmJkOTguLmQzNzFlZDkgMTAwNjQ0Ci0tLSBhL3NyYy9zY3JlZW4uYworKysgYi9zcmMvc2NyZWVuLmMKQEAgLTIzMSw3ICsyMzEsMTUgQEAKIHJlZHJhd19sYXRlcl9jbGVhcigpCiB7CiAgICAgcmVkcmF3X2FsbF9sYXRlcihDTEVBUik7Ci0gICAgc2NyZWVuX2F0dHIgPSBITF9CT0xEIHwgSExfVU5ERVJMSU5FOworI2lmZGVmIEZFQVRfR1VJCisgICAgaWYgKGd1aS5pbl91c2UpCisJLyogVXNlIGEgY29kZSB0aGF0IHdpbGwgcmVzZXQgZ3VpLmhpZ2hsaWdodF9tYXNrIGluCisJICogZ3VpX3N0b3BfaGlnaGxpZ2h0KCkuICovCisJc2NyZWVuX2F0dHIgPSBITF9BTEwgKyAxOworICAgIGVsc2UKKyNlbmRpZgorCS8qIFVzZSBhdHRyaWJ1dGVzIHRoYXQgaXMgdmVyeSB1bmxpa2VseSB0byBhcHBlYXIgaW4gdGV4dC4gKi8KKwlzY3JlZW5fYXR0ciA9IEhMX0JPTEQgfCBITF9VTkRFUkxJTkUgfCBITF9JTlZFUlNFOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RkaXIvdGVzdDU3LmluIGIvc3JjL3Rlc3RkaXIvdGVzdDU3LmluCmluZGV4IDdlNzAxNjkuLmQ3NGFmNTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0ZGlyL3Rlc3Q1Ny5pbgorKysgYi9zcmMvdGVzdGRpci90ZXN0NTcuaW4KQEAgLTMsNTAgKzMsNDk0IEBACiBTVEFSVFRFU1QKIDpzbyBzbWFsbC52aW0KIDoiCi06L150MTovKzEsL150Mi8tMXNvcnQKLTovXnQyOi8rMSwvXnQzLy0xc29ydCB1Ci06L150MzovKzEsL150NC8tMXNvcnQgdSAvW146XSo6LwotOi9edDQ6LysxLC9edDUvLTFzb3J0IG4KLTovXnQ1Oi8rMSwvXnQ2Ly0xc29ydCBuIC1bXjpdKjotCi06L150NjovKzEsL150Ny8tMXNvcnQgbwotOi9edDc6LysxLC9edDgvLTFzb3J0IHggLC4qLywKLTovXnQ4Oi8rMSwvXnQ5Ly0xc29ydCBuIG8KLTovXnQxOi8sJHdxISB0ZXN0Lm91dAorOi9edDAxOi8rMSwvXnQwMi8tMXNvcnQKKzovXnQwMjovKzEsL150MDMvLTFzb3J0IG4KKzovXnQwMzovKzEsL150MDQvLTFzb3J0IHgKKzovXnQwNDovKzEsL150MDUvLTFzb3J0IHUKKzovXnQwNTovKzEsL150MDYvLTFzb3J0IQorOi9edDA2Oi8rMSwvXnQwNy8tMXNvcnQhIG4gICAgICAgIAorOi9edDA3Oi8rMSwvXnQwOC8tMXNvcnQhIHUKKzovXnQwODovKzEsL150MDkvLTFzb3J0IG8gICAgICAgICAKKzovXnQwOTovKzEsL150MTAvLTFzb3J0ISB4ICAgICAgICAKKzovXnQxMDovKzEsL150MTEvLTFzb3J0Ly4vICAgICAgICAKKzovXnQxMTovKzEsL150MTIvLTFzb3J0Ly4uLyAgICAgICAKKzovXnQxMjovKzEsL150MTMvLTFzb3J0Ly4uL3UKKzovXnQxMzovKzEsL150MTQvLTFzb3J0Ly4vbgorOi9edDE0Oi8rMSwvXnQxNS8tMXNvcnQvLi9yCis6L150MTU6LysxLC9edDE2Ly0xc29ydC8uLi9yCis6L150MTY6LysxLC9edDE3Ly0xc29ydC8uL3JuCis6L150MTc6LysxLC9edDE4Ly0xc29ydC9cZC8KKzovXnQxODovKzEsL150MTkvLTFzb3J0L1xkL3IKKzovXnQxOTovKzEsL150MjAvLTFzb3J0L1xkL24KKzovXnQyMDovKzEsL150MjEvLTFzb3J0L1xkL3JuCis6L150MjE6LysxLC9edDIyLy0xc29ydC9cZFxkLworOi9edDIyOi8rMSwvXnQyMy8tMXNvcnQvXGRcZC9uCis6L150MjM6LysxLC9edDI0Ly0xc29ydC9cZFxkL3gKKzovXnQyNDovKzEsL150MjUvLTFzb3J0L1xkXGQvcgorOi9edDI1Oi8rMSwvXnQyNi8tMXNvcnQvXGRcZC9ybgorOi9edDI2Oi8rMSwvXnQyNy8tMXNvcnQvXGRcZC9yeAorOi9edDI3Oi8rMSwvXnQyOC8tMXNvcnQgbm8KKzovXnQwMTovLCR3cSEgdGVzdC5vdXQKIEVORFRFU1QKIAotdDE6IGFscGhhYmV0aWNhbAotdHdvIHRlc3QKLU9uZSB0ZXN0Ci1vbmUgdGVzdAotVHdvIHRlc3QKLXQyOiBhbHBoYSwgdW5pcXVlCi1PbmUgdGVzdAotb25lIHRlc3QKLVR3byB0ZXN0Ci1vbmUgdGVzdAotVHdvIHRlc3QgCi10MzogYWxwaGEsIHVuaXF1ZSwgc2tpcCBwYXR0ZXJuCi1vbmU6IHhheQotdHdvOiBhYWEKLWFub3RoZXI6IHR1dnkKLXQ0OiBudW1iZXIKLWFzZGYgODMgYXNkCi1vbmUgMzMzICAgCi14Y2UgICA5Ci10NTogbnVtYmVyIGFuZCBza2lwCi1hc2RmIDMgYTogc2QgMTEKLW9uZSAzMzo0ICAgOTkKLTo5IAotdDY6IG9jdGFsCi0yMzg5Ci0xMTEKLWFzZGYgMDAxNAotdDc6IGhleCBhbmQgc2tpcAotc2YvMHgxZDMKLTB4NDQvMWExCi1hc2QvYWQgMTQxMwotdDg6IHdyb25nIGFyZ3VtZW50cwotY2NjCi1iYmIKLWFhYQotdDg6Cit0MDE6IGFscGhlYmV0aWNhbAorYWJjCithYgorYQorYTMyMQorYTEyMworYTEyMgorYjMyMQorYjEyMworYzEyM2QKKyAxMjNiCitjMzIxZAorYjMyMmIKK2IzMjEKK2IzMjFiCisKKwordDAyOiBudW1lcmljCithYmMKK2FiCithCithMzIxCithMTIzCithMTIyCitiMzIxCitiMTIzCitjMTIzZAorIDEyM2IKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKKworCit0MDM6IGhleGFkZWNpbWFsCithYmMKK2FiCithCithMzIxCithMTIzCithMTIyCitiMzIxCitiMTIzCitjMTIzZAorIDEyM2IKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKKworCit0MDQ6IGFscGhhLCB1bmlxdWUKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QwNTogYWxwaGEsIHJldmVyc2UKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QwNjogbnVtZXJpYywgcmV2ZXJzZQorYWJjCithYgorYQorYTMyMQorYTEyMworYTEyMgorYjMyMQorYjEyMworYzEyM2QKKyAxMjNiCitjMzIxZAorYjMyMmIKK2IzMjEKK2IzMjFiCisKKwordDA3OiB1bmlxdWUsIHJldmVyc2UKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QwODogb2N0YWwKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QwOTogcmV2ZXJzZSwgaGV4YWRlY2ltYWwKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QxMDogYWxwaGEsIHNraXAgZmlyc3QgY2hhcmFjdGVyCithYmMKK2FiCithCithMzIxCithMTIzCithMTIyCitiMzIxCitiMTIzCitjMTIzZAorIDEyM2IKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKKworCit0MTE6IGFscGhhLCBza2lwIGZpcnN0IDIgY2hhcmFjdGVycworYWJjCithYgorYQorYTMyMQorYTEyMworYTEyMgorYjMyMQorYjEyMworYzEyM2QKKyAxMjNiCitjMzIxZAorYjMyMmIKK2IzMjEKK2IzMjFiCisKKwordDEyOiBhbHBoYSwgdW5pcXVlLCBza2lwIGZpcnN0IDIgY2hhcmFjdGVycworYWJjCithYgorYQorYTMyMQorYTEyMworYTEyMgorYjMyMQorYjEyMworYzEyM2QKKyAxMjNiCitjMzIxZAorYjMyMmIKK2IzMjEKK2IzMjFiCisKKwordDEzOiBudW1lcmljLCBza2lwIGZpcnN0IGNoYXJhY3RlcgorYWJjCithYgorYQorYTMyMQorYTEyMworYTEyMgorYjMyMQorYjEyMworYzEyM2QKKyAxMjNiCitjMzIxZAorYjMyMmIKK2IzMjEKK2IzMjFiCisKKwordDE0OiBhbHBoYSwgc29ydCBvbiBmaXJzdCBjaGFyYWN0ZXIKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QxNTogYWxwaGEsIHNvcnQgb24gZmlyc3QgMiBjaGFyYWN0ZXJzCithYmMKK2FiCithCithMzIxCithMTIzCithMTIyCitiMzIxCitiMTIzCitjMTIzZAorIDEyM2IKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKKworCit0MTY6IG51bWVyaWMsIHNvcnQgb24gZmlyc3QgY2hhcmFjdGVyCithYmMKK2FiCithCithMzIxCithMTIzCithMTIyCitiMzIxCitiMTIzCitjMTIzZAorIDEyM2IKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKKworCit0MTc6IGFscGhhLCBza2lwIHBhc3QgZmlyc3QgZGlnaXQKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QxODogYWxwaGEsIHNvcnQgb24gZmlyc3QgZGlnaXQKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QxOTogbnVtZXJpYywgc2tpcCBwYXN0IGZpcnN0IGRpZ2l0CithYmMKK2FiCithCithMzIxCithMTIzCithMTIyCitiMzIxCitiMTIzCitjMTIzZAorIDEyM2IKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKKworCit0MjA6IG51bWVyaWMsIHNvcnQgb24gZmlyc3QgZGlnaXQKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QyMTogYWxwaGEsIHNraXAgcGFzdCBmaXJzdCAyIGRpZ2l0cworYWJjCithYgorYQorYTMyMQorYTEyMworYTEyMgorYjMyMQorYjEyMworYzEyM2QKKyAxMjNiCitjMzIxZAorYjMyMmIKK2IzMjEKK2IzMjFiCisKKwordDIyOiBudW1lcmljLCBza2lwIHBhc3QgZmlyc3QgMiBkaWdpdHMKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QyMzogaGV4YWRlY2ltYWwsIHNraXAgcGFzdCBmaXJzdCAyIGRpZ2l0cworYWJjCithYgorYQorYTMyMQorYTEyMworYTEyMgorYjMyMQorYjEyMworYzEyM2QKKyAxMjNiCitjMzIxZAorYjMyMmIKK2IzMjEKK2IzMjFiCisKKwordDI0OiBhbHBoYSwgc29ydCBvbiBmaXJzdCAyIGRpZ2l0cworYWJjCithYgorYQorYTMyMQorYTEyMworYTEyMgorYjMyMQorYjEyMworYzEyM2QKKyAxMjNiCitjMzIxZAorYjMyMmIKK2IzMjEKK2IzMjFiCisKKwordDI1OiBudW1lcmljLCBzb3J0IG9uIGZpcnN0IDIgZGlnaXRzCithYmMKK2FiCithCithMzIxCithMTIzCithMTIyCitiMzIxCitiMTIzCitjMTIzZAorIDEyM2IKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKKworCit0MjY6IGhleGFkZWNpbWFsLCBzb3J0IG9uIGZpcnN0IDIgZGlnaXRzCithYmMKK2FiCithCithMzIxCithMTIzCithMTIyCitiMzIxCitiMTIzCitjMTIzZAorIDEyM2IKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKKworCit0Mjc6IHdyb25nIGFyZ3VtZW50cworYWJjCithYgorYQorYTMyMQorYTEyMworYTEyMgorYjMyMQorYjEyMworYzEyM2QKKyAxMjNiCitjMzIxZAorYjMyMmIKK2IzMjEKK2IzMjFiCisKKwordDI4OiBkb25lCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0ZGlyL3Rlc3Q1Ny5vayBiL3NyYy90ZXN0ZGlyL3Rlc3Q1Ny5vawppbmRleCA2OWI5ODYyLi4xNzc3MTMzIDEwMDY0NAotLS0gYS9zcmMvdGVzdGRpci90ZXN0NTcub2sKKysrIGIvc3JjL3Rlc3RkaXIvdGVzdDU3Lm9rCkBAIC0xLDM1ICsxLDQ1NSBAQAotdDE6IGFscGhhYmV0aWNhbAotT25lIHRlc3QKLVR3byB0ZXN0Ci1vbmUgdGVzdAotdHdvIHRlc3QKLXQyOiBhbHBoYSwgdW5pcXVlCi1PbmUgdGVzdAotVHdvIHRlc3QKLVR3byB0ZXN0IAotb25lIHRlc3QKLXQzOiBhbHBoYSwgdW5pcXVlLCBza2lwIHBhdHRlcm4KLXR3bzogYWFhCi1hbm90aGVyOiB0dXZ5Ci1vbmU6IHhheQotdDQ6IG51bWJlcgoteGNlICAgOQotYXNkZiA4MyBhc2QKLW9uZSAzMzMgICAKLXQ1OiBudW1iZXIgYW5kIHNraXAKLW9uZSAzMzo0ICAgOTkKLTo5IAotYXNkZiAzIGE6IHNkIDExCi10Njogb2N0YWwKLWFzZGYgMDAxNAotMjM4OQotMTExCi10NzogaGV4IGFuZCBza2lwCi1hc2QvYWQgMTQxMwotMHg0NC8xYTEKLXNmLzB4MWQzCi10ODogd3JvbmcgYXJndW1lbnRzCi1jY2MKLWJiYgotYWFhCi10ODoKK3QwMTogYWxwaGViZXRpY2FsCisKKworIDEyM2IKK2EKK2ExMjIKK2ExMjMKK2EzMjEKK2FiCithYmMKK2IxMjMKK2IzMjEKK2IzMjEKK2IzMjFiCitiMzIyYgorYzEyM2QKK2MzMjFkCit0MDI6IG51bWVyaWMKK2FiYworYWIKK2EKKworCithMTIyCithMTIzCitiMTIzCitjMTIzZAorIDEyM2IKK2EzMjEKK2IzMjEKK2MzMjFkCitiMzIxCitiMzIxYgorYjMyMmIKK3QwMzogaGV4YWRlY2ltYWwKKworCithCithYgorYWJjCisgMTIzYgorYTEyMgorYTEyMworYTMyMQorYjEyMworYjMyMQorYjMyMQorYjMyMWIKK2IzMjJiCitjMTIzZAorYzMyMWQKK3QwNDogYWxwaGEsIHVuaXF1ZQorCisgMTIzYgorYQorYTEyMgorYTEyMworYTMyMQorYWIKK2FiYworYjEyMworYjMyMQorYjMyMWIKK2IzMjJiCitjMTIzZAorYzMyMWQKK3QwNTogYWxwaGEsIHJldmVyc2UKK2MzMjFkCitjMTIzZAorYjMyMmIKK2IzMjFiCitiMzIxCitiMzIxCitiMTIzCithYmMKK2FiCithMzIxCithMTIzCithMTIyCithCisgMTIzYgorCisKK3QwNjogbnVtZXJpYywgcmV2ZXJzZQorYjMyMmIKK2IzMjFiCitiMzIxCitjMzIxZAorYjMyMQorYTMyMQorIDEyM2IKK2MxMjNkCitiMTIzCithMTIzCithMTIyCisKKworYQorYWIKK2FiYwordDA3OiB1bmlxdWUsIHJldmVyc2UKK2MzMjFkCitjMTIzZAorYjMyMmIKK2IzMjFiCitiMzIxCitiMTIzCithYmMKK2FiCithMzIxCithMTIzCithMTIyCithCisgMTIzYgorCit0MDg6IG9jdGFsCithYmMKK2FiCithCisKKworYTEyMgorYTEyMworYjEyMworYzEyM2QKKyAxMjNiCithMzIxCitiMzIxCitjMzIxZAorYjMyMQorYjMyMWIKK2IzMjJiCit0MDk6IHJldmVyc2UsIGhleGFkZWNpbWFsCitjMzIxZAorYzEyM2QKK2IzMjJiCitiMzIxYgorYjMyMQorYjMyMQorYjEyMworYTMyMQorYTEyMworYTEyMgorIDEyM2IKK2FiYworYWIKK2EKKworCit0MTA6IGFscGhhLCBza2lwIGZpcnN0IGNoYXJhY3RlcgorYQorCisKK2ExMjIKK2ExMjMKK2IxMjMKKyAxMjNiCitjMTIzZAorYTMyMQorYjMyMQorYjMyMQorYjMyMWIKK2MzMjFkCitiMzIyYgorYWIKK2FiYwordDExOiBhbHBoYSwgc2tpcCBmaXJzdCAyIGNoYXJhY3RlcnMKK2FiCithCisKKworYTMyMQorYjMyMQorYjMyMQorYjMyMWIKK2MzMjFkCithMTIyCitiMzIyYgorYTEyMworYjEyMworIDEyM2IKK2MxMjNkCithYmMKK3QxMjogYWxwaGEsIHVuaXF1ZSwgc2tpcCBmaXJzdCAyIGNoYXJhY3RlcnMKK2FiCithCisKK2EzMjEKK2IzMjEKK2IzMjFiCitjMzIxZAorYTEyMgorYjMyMmIKK2ExMjMKK2IxMjMKKyAxMjNiCitjMTIzZAorYWJjCit0MTM6IG51bWVyaWMsIHNraXAgZmlyc3QgY2hhcmFjdGVyCithYmMKK2FiCithCisKKworYTEyMgorYTEyMworYjEyMworYzEyM2QKKyAxMjNiCithMzIxCitiMzIxCitjMzIxZAorYjMyMQorYjMyMWIKK2IzMjJiCit0MTQ6IGFscGhhLCBzb3J0IG9uIGZpcnN0IGNoYXJhY3RlcgorCisKKyAxMjNiCithYmMKK2FiCithCithMzIxCithMTIzCithMTIyCitiMzIxCitiMTIzCitiMzIyYgorYjMyMQorYjMyMWIKK2MxMjNkCitjMzIxZAordDE1OiBhbHBoYSwgc29ydCBvbiBmaXJzdCAyIGNoYXJhY3RlcnMKK2EKKworCisgMTIzYgorYTEyMworYTEyMgorYTMyMQorYWJjCithYgorYjEyMworYjMyMQorYjMyMmIKK2IzMjEKK2IzMjFiCitjMTIzZAorYzMyMWQKK3QxNjogbnVtZXJpYywgc29ydCBvbiBmaXJzdCBjaGFyYWN0ZXIKK2FiYworYWIKK2EKK2EzMjEKK2ExMjMKK2ExMjIKK2IzMjEKK2IxMjMKK2MxMjNkCisgMTIzYgorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgorCisKK3QxNzogYWxwaGEsIHNraXAgcGFzdCBmaXJzdCBkaWdpdAorYWJjCithYgorYQorCisKK2EzMjEKK2IzMjEKK2IzMjEKK2IzMjFiCitjMzIxZAorYTEyMgorYjMyMmIKK2ExMjMKK2IxMjMKKyAxMjNiCitjMTIzZAordDE4OiBhbHBoYSwgc29ydCBvbiBmaXJzdCBkaWdpdAorYWJjCithYgorYQorCisKK2ExMjMKK2ExMjIKK2IxMjMKK2MxMjNkCisgMTIzYgorYTMyMQorYjMyMQorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgordDE5OiBudW1lcmljLCBza2lwIHBhc3QgZmlyc3QgZGlnaXQKK2FiYworYWIKK2EKKworCithMzIxCitiMzIxCitjMzIxZAorYjMyMQorYjMyMWIKK2ExMjIKK2IzMjJiCithMTIzCitiMTIzCitjMTIzZAorIDEyM2IKK3QyMDogbnVtZXJpYywgc29ydCBvbiBmaXJzdCBkaWdpdAorYWJjCithYgorYQorCisKK2ExMjMKK2ExMjIKK2IxMjMKK2MxMjNkCisgMTIzYgorYTMyMQorYjMyMQorYzMyMWQKK2IzMjJiCitiMzIxCitiMzIxYgordDIxOiBhbHBoYSwgc2tpcCBwYXN0IGZpcnN0IDIgZGlnaXRzCithYmMKK2FiCithCisKKworYTMyMQorYjMyMQorYjMyMQorYjMyMWIKK2MzMjFkCithMTIyCitiMzIyYgorYTEyMworYjEyMworIDEyM2IKK2MxMjNkCit0MjI6IG51bWVyaWMsIHNraXAgcGFzdCBmaXJzdCAyIGRpZ2l0cworYWJjCithYgorYQorCisKK2EzMjEKK2IzMjEKK2MzMjFkCitiMzIxCitiMzIxYgorYTEyMgorYjMyMmIKK2ExMjMKK2IxMjMKK2MxMjNkCisgMTIzYgordDIzOiBoZXhhZGVjaW1hbCwgc2tpcCBwYXN0IGZpcnN0IDIgZGlnaXRzCithYmMKK2FiCithCisKKworYTMyMQorYjMyMQorYjMyMQorYTEyMgorYTEyMworYjEyMworYjMyMWIKK2MzMjFkCitiMzIyYgorIDEyM2IKK2MxMjNkCit0MjQ6IGFscGhhLCBzb3J0IG9uIGZpcnN0IDIgZGlnaXRzCithYmMKK2FiCithCisKKworYTEyMworYTEyMgorYjEyMworYzEyM2QKKyAxMjNiCithMzIxCitiMzIxCitjMzIxZAorYjMyMmIKK2IzMjEKK2IzMjFiCit0MjU6IG51bWVyaWMsIHNvcnQgb24gZmlyc3QgMiBkaWdpdHMKK2FiYworYWIKK2EKKworCithMTIzCithMTIyCitiMTIzCitjMTIzZAorIDEyM2IKK2EzMjEKK2IzMjEKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKK3QyNjogaGV4YWRlY2ltYWwsIHNvcnQgb24gZmlyc3QgMiBkaWdpdHMKK2FiYworYWIKK2EKKworCithMTIzCithMTIyCitiMTIzCitjMTIzZAorIDEyM2IKK2EzMjEKK2IzMjEKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKK3QyNzogd3JvbmcgYXJndW1lbnRzCithYmMKK2FiCithCithMzIxCithMTIzCithMTIyCitiMzIxCitiMTIzCitjMTIzZAorIDEyM2IKK2MzMjFkCitiMzIyYgorYjMyMQorYjMyMWIKKworCit0Mjg6IGRvbmUKKwpkaWZmIC0tZ2l0IGEvc3JjL3ZlcnNpb24uaCBiL3NyYy92ZXJzaW9uLmgKaW5kZXggOTM1ODE2NC4uNGI3YzA1YSAxMDA2NDQKLS0tIGEvc3JjL3ZlcnNpb24uaAorKysgYi9zcmMvdmVyc2lvbi5oCkBAIC0zNSw2ICszNSw2IEBACiAgKi8KICNkZWZpbmUgVklNX1ZFUlNJT05fTk9ET1QJInZpbTcwZCIKICNkZWZpbmUgVklNX1ZFUlNJT05fU0hPUlQJIjcuMGQiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX01FRElVTQkiNy4wZCBCRVRBIgotI2RlZmluZSBWSU1fVkVSU0lPTl9MT05HCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBkIEJFVEEgKDIwMDYgQXByIDEwKSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBkIEJFVEEgKDIwMDYgQXByIDEwLCBjb21waWxlZCAiCisjZGVmaW5lIFZJTV9WRVJTSU9OX01FRElVTQkiNy4wZDAxIEJFVEEiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkcJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGQwMSBCRVRBICgyMDA2IEFwciAxMSkiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkdfREFURQkiVklNIC0gVmkgSU1wcm92ZWQgNy4wZDAxIEJFVEEgKDIwMDYgQXByIDExLCBjb21waWxlZCAiCmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmMgYi9zcmMvd2luZG93LmMKaW5kZXggYjQwMWZjMS4uNWVlODE3MiAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5jCisrKyBiL3NyYy93aW5kb3cuYwpAQCAtOTEsNiArOTEsOSBAQAogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEZFQVRfV0lORE9XUykgfHwgZGVmaW5lZChQUk9UTykKKworc3RhdGljIGNoYXIgKm1fb25seW9uZSA9IE5fKCJBbHJlYWR5IG9ubHkgb25lIHdpbmRvdyIpOworCiAvKgogICogYWxsIENUUkwtVyB3aW5kb3cgY29tbWFuZHMgYXJlIGhhbmRsZWQgaGVyZSwgY2FsbGVkIGZyb20gbm9ybWFsX2NtZCgpLgogICovCkBAIC0zMzAsNiArMzMzLDMxIEBACiAJCWJyZWFrOwogI2VuZGlmCiAKKy8qIG1vdmUgd2luZG93IHRvIG5ldyB0YWIgcGFnZSAqLworICAgIGNhc2UgJ1QnOgorCQlpZiAoZmlyc3R3aW4gPT0gbGFzdHdpbikKKwkJICAgIE1TRyhfKG1fb25seW9uZSkpOworCQllbHNlCisJCXsKKwkJICAgIHRhYnBhZ2VfVAkqb2xkdGFiID0gY3VydGFiOworCQkgICAgdGFicGFnZV9UCSpuZXd0YWI7CisJCSAgICB3aW5fVAkqd3AgPSBjdXJ3aW47CisKKwkJICAgIC8qIEZpcnN0IGNyZWF0ZSBhIG5ldyB0YWIgd2l0aCB0aGUgd2luZG93LCB0aGVuIGdvIGJhY2sgdG8KKwkJICAgICAqIHRoZSBvbGQgdGFiIGFuZCBjbG9zZSB0aGUgd2luZG93IHRoZXJlLiAqLworCQkgICAgaWYgKHdpbl9uZXdfdGFicGFnZSgoaW50KVByZW51bSkgPT0gT0sKKwkJCQkJCSAgICAgJiYgdmFsaWRfdGFicGFnZShvbGR0YWIpKQorCQkgICAgeworCQkJbmV3dGFiID0gY3VydGFiOworCQkJZ290b190YWJwYWdlX3RwKG9sZHRhYik7CisJCQlpZiAoY3Vyd2luID09IHdwKQorCQkJICAgIHdpbl9jbG9zZShjdXJ3aW4sIEZBTFNFKTsKKwkJCWlmICh2YWxpZF90YWJwYWdlKG5ld3RhYikpCisJCQkgICAgZ290b190YWJwYWdlX3RwKG5ld3RhYik7CisJCSAgICB9CisJCX0KKwkJYnJlYWs7CisKIC8qIGN1cnNvciB0byB0b3AtbGVmdCB3aW5kb3cgKi8KICAgICBjYXNlICd0JzoKICAgICBjYXNlIEN0cmxfVDoKQEAgLTExMDIsNiArMTEzMCw3IEBACiAgICAgbmV3cC0+d19wY21hcmsgPSBvbGRwLT53X3BjbWFyazsKICAgICBuZXdwLT53X3ByZXZfcGNtYXJrID0gb2xkcC0+d19wcmV2X3BjbWFyazsKICAgICBuZXdwLT53X2FsdF9mbnVtID0gb2xkcC0+d19hbHRfZm51bTsKKyAgICBuZXdwLT53X3dyb3cgPSBvbGRwLT53X3dyb3c7CiAgICAgbmV3cC0+d19mcmFjdGlvbiA9IG9sZHAtPndfZnJhY3Rpb247CiAgICAgbmV3cC0+d19wcmV2X2ZyYWN0aW9uX3JvdyA9IG9sZHAtPndfcHJldl9mcmFjdGlvbl9yb3c7CiAjaWZkZWYgRkVBVF9KVU1QTElTVApAQCAtMjkzOCw3ICsyOTY3LDcgQEAKIAkJICAgICYmICFhdXRvY21kX2J1c3kKICNlbmRpZgogCQkJCSAgICApCi0JICAgIE1TRyhfKCJBbHJlYWR5IG9ubHkgb25lIHdpbmRvdyIpKTsKKwkgICAgTVNHKF8obV9vbmx5b25lKSk7CiAJcmV0dXJuOwogICAgIH0KIApAQCAtNTE1Myw2ICs1MTgyLDggQEAKICAgICAgKiBXaWxsIGVxdWFsaXplIGhlaWdodHMgc29vbiB0byBmaXggaXQuICovCiAgICAgaWYgKGhlaWdodCA8IDApCiAJaGVpZ2h0ID0gMDsKKyAgICBpZiAod3AtPndfaGVpZ2h0ID09IGhlaWdodCkKKwlyZXR1cm47CSAgICAvKiBub3RoaW5nIHRvIGRvICovCiAKICAgICBpZiAod3AtPndfd3JvdyAhPSB3cC0+d19wcmV2X2ZyYWN0aW9uX3JvdyAmJiB3cC0+d19oZWlnaHQgPiAwKQogCXdwLT53X2ZyYWN0aW9uID0gKChsb25nKXdwLT53X3dyb3cgKiBGUkFDVElPTl9NVUxUCg==