ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL3NwZWxsLnR4dCBiL3J1bnRpbWUvZG9jL3NwZWxsLnR4dAppbmRleCA3MzVhYmU3Li5kNTE5M2E1IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9zcGVsbC50eHQKKysrIGIvcnVudGltZS9kb2Mvc3BlbGwudHh0CkBAIC0xLDQgKzEsNCBAQAotKnNwZWxsLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgTm92IDI2Cisqc3BlbGwudHh0KglGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBEZWMgMDkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMTI0LDggKzEyNCw4IEBACiAKIAogRmluZGluZyBzdWdnZXN0aW9ucyBmb3IgYmFkIHdvcmRzOgotCQkJCQkJCSp6PyoKLXo/CQkJRm9yIHRoZSB3b3JkIHVuZGVyL2FmdGVyIHRoZSBjdXJzb3Igc3VnZ2VzdCBjb3JyZWN0bHkKKwkJCQkJCQkqej0qCit6PQkJCUZvciB0aGUgd29yZCB1bmRlci9hZnRlciB0aGUgY3Vyc29yIHN1Z2dlc3QgY29ycmVjdGx5CiAJCQlzcGVsbGVkIHdvcmRzLiAgVGhpcyBhbHNvIHdvcmtzIHRvIGZpbmQgYWx0ZXJuYXRpdmVzCiAJCQlmb3IgYSB3b3JkIHRoYXQgaXMgbm90IGhpZ2hsaWdodGVkIGFzIGEgYmFkIHdvcmQsCiAJCQllLmcuLCB3aGVuIHRoZSB3b3JkIGFmdGVyIGl0IGlzIGJhZC4KQEAgLTE0Myw3ICsxNDMsNyBAQAogCQkJZmlyc3QgbGluZSAodGhlIGhlYWRlcikgdG8gY2FuY2VsLgogCiAJCQlJZiBhIGNvdW50IGlzIHVzZWQgdGhhdCBzdWdnZXN0aW9uIGlzIHVzZWQsIHdpdGhvdXQKLQkJCXByb21wdGluZy4gIEZvciBleGFtcGxlLCAiMXo/IiBhbHdheXMgdGFrZXMgdGhlIGZpcnN0CisJCQlwcm9tcHRpbmcuICBGb3IgZXhhbXBsZSwgIjF6PSIgYWx3YXlzIHRha2VzIHRoZSBmaXJzdAogCQkJc3VnZ2VzdGlvbi4KIAogCQkJSWYgJ3ZlcmJvc2UnIGlzIG5vbi16ZXJvIGEgc2NvcmUgd2lsbCBiZSBkaXNwbGF5ZWQKQEAgLTE1Niw3ICsxNTYsNyBAQAogCQkJYW5kIG90aGVyIGxhbmd1YWdlcyB3aXRob3V0IHNwYWNlcyBiZXR3ZWVuIHdvcmRzLgogCiAJCQkJCSo6c3BlbGxyKiAqOnNwZWxscmVwYWxsKiAqRTc1MiogKkU3NTMqCi06c3BlbGxyW2VwYWxsXQkJUmVwZWF0IHRoZSByZXBsYWNlbWVudCBkb25lIGJ5IHx6P3wgZm9yIGFsbCBtYXRjaGVzCis6c3BlbGxyW2VwYWxsXQkJUmVwZWF0IHRoZSByZXBsYWNlbWVudCBkb25lIGJ5IHx6PXwgZm9yIGFsbCBtYXRjaGVzCiAJCQl3aXRoIHRoZSByZXBsYWNlZCB3b3JkIGluIHRoZSBjdXJyZW50IHdpbmRvdy4KIAogSW4gSW5zZXJ0IG1vZGUsIHdoZW4gdGhlIGN1cnNvciBpcyBhZnRlciBhIGJhZGx5IHNwZWxsZWQgd29yZCwgeW91IGNhbiB1c2UKQEAgLTExOTQsNyArMTE5NCw3IEBACiBTT0ZPRlJPTSBhcmUgcmVwbGFjZWQgYnkgb25lLgogCiBZb3UgY2FuIHVzZSB0aGUgfHNvdW5kZm9sZCgpfCBmdW5jdGlvbiB0byB0cnkgb3V0IHRoZSByZXN1bHRzLiAgT3Igc2V0IHRoZQotJ3ZlcmJvc2UnIG9wdGlvbiB0byBzZWUgdGhlIHNjb3JlIGluIHRoZSBvdXRwdXQgb2YgdGhlIHx6P3wgY29tbWFuZC4KKyd2ZXJib3NlJyBvcHRpb24gdG8gc2VlIHRoZSBzY29yZSBpbiB0aGUgb3V0cHV0IG9mIHRoZSB8ej18IGNvbW1hbmQuCiAKIAogIHZpbTp0dz03ODpzdz00OnRzPTg6ZnQ9aGVscDpub3JsOgpkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2MvdG9kby50eHQgYi9ydW50aW1lL2RvYy90b2RvLnR4dAppbmRleCBjNGRhZGMxLi5mMjNlNTliIDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy90b2RvLnR4dAorKysgYi9ydW50aW1lL2RvYy90b2RvLnR4dApAQCAtMSw0ICsxLDQgQEAKLSp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBEZWMgMDgKKyp0b2RvLnR4dCogICAgICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBEZWMgMTAKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwJICBieSBCcmFtIE1vb2xlbmFhcgpAQCAtMzAsOCArMzAsOCBAQAogCQkJCQkJCSprbm93bi1idWdzKgogLS0tLS0tLS0tLS0tLS0tLS0tLS0gS25vd24gYnVncyBhbmQgY3VycmVudCB3b3JrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUN5Z3dpbiBhbmQgTWFjIE9TL1ggbWF5IHByZXNlcnZlIGNhc2UgZm9yIGZpbGUgbmFtZXMgYnV0IGlnbm9yZSBjYXNlCi1kaWZmZXJlbmNlcy4gIFVzZSBBbWlnYSBjb2RlPworV2hlbiBhIGJ1ZmZlciBoYXMgbm8gbmFtZSwgIjp3ID4+Zm5hbWUiIHVzZXMgImZuYW1lIiBmb3IgdGhlIGJ1ZmZlciwgdGhhdCBpcworbm90IGxvZ2ljYWwuCiAKIFN3YXBFeGlzdHMgd2l0aCBlZGl0ZXhpc3RpbmcgcGx1Z2luOiBJcyB0aGVyZSBhIHNpbXBsZSB3YXkgdG8gZGV0ZWN0ICI6dGFnCiBmdW5jdGlvbiIgYW5kIGhhdmUgdGhlIHJlbW90ZSBWaW0ganVtcCB0byB0aGUgdGFnPwpAQCAtODYsOSArODYsNiBAQAogLSBwYWdlLXVwIC8gcGFnZS1kb3duCiAKIHNwZWxsaW5nOgotLSAiej8iIHdhcyB0byBiZSB1c2VkIGZvciBzZWFyY2hpbmcgaW4gZm9sZGVkIHRleHQuICBVc2Ugc29tZXRoaW5nIGVsc2UgZm9yCi0gIHN1Z2dlc3Rpb25zLiAgIno9Ij8KLS0gV2hlbiBhIHJlY29nbml6ZWQgd29yZCBlbmRzIGluIGEgLiBkb24ndCBoYXZlICdzcGVsbGNhcGNoZWNrIiBtYXRjaCBpdC4KIC0gVXNlIEtFRVBDQVNFIGluc3RlYWQgb2YgIktFUCIuICBJdCBhcHBsaWVzIHRvIHRoZSB3b3JkIGluY2x1ZGluZyBhZmZpeGVzCiAgIEh1bnNwZWxsIGFsc28gdXNlcyBpdC4KIC0gSHVuc3BlbGwgaGFzIE5PU1VHR0VTVCBmbGFnICh1c2UgZm9yIG9ic2NlbmUgd29yZHM/KQpAQCAtOTYsNyArOTMsNiBAQAogLSBMb29rIGludG8gaHVuZ2FyaWFuIGRpY3Rpb25hcnk6CiAgIGh0dHA6Ly9tYWd5YXJpc3BlbGwuc291cmNlZm9yZ2UubmV0L3JjMy1iZXRhMi56aXAKIC0gU3VwcG9ydCBicmVha3BvaW50IGNoYXJhY3RlciC3IDB4YjcgYW5kIGlnbm9yZSBpdD8KLS0gRHV0Y2ggd29yZCBsaXN0IHNob3VsZCBiZSBhdmFpbGFibGUgaGVyZTogaHR0cDovL3d3dy53b29yZGVubGlqc3Qub3JnLwogOCAgIEFsdGVybmF0ZSBEdXRjaCB3b3JkIGxpc3QgYXQgd3d3Lm5lZGVybGFuZHNld29vcmRlbi5ubCAodXNlIHNjcmlwdCB0bwogICAgIG9idGFpbikuICBCdXQgbmV3IE15c3BlbGwgd29yZGxpc3Qgd2lsbCBjb21lIChIYWdlbikKIC0gRmluZGluZyBzdWdnZXN0aW9ucyB3aXRoIHNvdW5kIGZvbGRpbmcgaXMgc2xvdy4gIFNvbWVob3cgc3RvcmUgdGhlCkBAIC0xOTY1LDcgKzE5NjEsNyBAQAogICAgIC0gaGlnaGxpZ2h0aW5nICJ+L3ZpbS90ZXN0L2xvbmdsaW5lLnRleCIsICJ+L3ZpbS90ZXN0L3Njd29vcC50Y2wiIGFuZAogICAgICAgIn4vdmltL3Rlc3QvbG9ja3VwLnBsIi4KICAgICAtIGxvYWRpbmcgYSBzeW50YXggZmlsZSB0byBoaWdobGlnaHQgYWxsIHdvcmRzIG5vdCBmcm9tIGEgZGljdGlvbmFyeS4KLSAgICAtIGVkaXRpbmcgYSB2aW0gc2NyaXB0IHdpdGggc3ludGF4IGhpZ2hsaWdodGluZyBvbiAobG9hZGluZyB2aW0udmltKS4KKyAgICAtIGVkaXRpbmcgYSBWaW0gc2NyaXB0IHdpdGggc3ludGF4IGhpZ2hsaWdodGluZyBvbiAobG9hZGluZyB2aW0udmltKS4KIDcgICBTY3JlZW4gdXBkYXRpbmcgY2FuIGJlIGZ1cnRoZXIgaW1wcm92ZWQgYnkgb25seSByZWRyYXdpbmcgbGluZXMgdGhhdCB3ZXJlCiAgICAgY2hhbmdlZCAoYW5kIGxpbmVzIGFmdGVyIHRoZW0sIHdoZW4gc3ludGF4IGhpZ2hsaWdodGluZyB3YXMgdXNlZCwgYW5kIGl0CiAgICAgY2hhbmdlZCkuCkBAIC0yMDI2LDcgKzIwMjIsNyBAQAogICAgIHR5cGluZywgZXJyb3IgbWVzc2FnZXMgbXVzdCBiZSBzd2l0Y2hlZCBiYWNrIG9uLgogICAgIEFsc28gYSBmbGFnIHRvIGlnbm9yZSBlcnJvciBtZXNzYWdlcyBmb3Igc2hlbGwgY29tbWFuZHMgKGZvciBtYXBwaW5ncykuCiAtICAgT3B0aW9uIHRvIHNldCB0aW1lIGZvciBlbXNnKCkgc2xlZXAuICBJbnRlcnJ1cHQgc2xlZXAgd2hlbiBrZXkgaXMgdHlwZWQ/Ci0gICAgc2xlZXAgYmVmb3JlIHNlY29uZCBtZXNzYWdlPworICAgIFNsZWVwIGJlZm9yZSBzZWNvbmQgbWVzc2FnZT8KIDggICBJbiBFeCBzaWxlbnQgbW9kZSBvciB3aGVuIHJlYWRpbmcgY29tbWFuZHMgZnJvbSBhIGZpbGUsIHdoYXQgZXhhY3RseSBpcwogICAgIG5vdCBwcmludGVkIGFuZCB3aGF0IGlzPyAgQ2hlY2sgIjpwcmludCIsICI6c2V0IGFsbCIsICI6YXJncyIsICI6dmVycyIsCiAgICAgZXRjLiAgQXQgbGVhc3QgdGhlcmUgc2hvdWxkIGJlIG5vIHByb21wdC4gKFNtdWxkZXJzKSAgQW5kIGRvbid0IGNsZWFyIHRoZQpAQCAtMjYyMCw3ICsyNjE2LDcgQEAKICAgICBjb250aW51YXRpb24gbGluZXMuICBBbGxvd3MgY2hhbmdpbmcgJ3RhYnN0b3AnIHdpdGhvdXQgbWVzc2luZyB1cCB0aGUKICAgICBpbmRlbnRzLgogICAgIEFuZC9vcjogQWRkIG9wdGlvbiB0byBjb3B5IGluZGVudCBhcy1pcywgd2l0aG91dCBjaGFuZ2luZyBzcGFjZXMgdG8gdGFicy4KLSAgICBhbHNvIGZvciAnYXV0b2luZGVudCcuICAna2VlcHRhYnMnOiB3aGVuIHNldCBkb24ndCBjaGFuZ2UgdGhlIHRhYnMgYW5kCisgICAgQWxzbyBmb3IgJ2F1dG9pbmRlbnQnLiAgJ2tlZXB0YWJzJzogd2hlbiBzZXQgZG9uJ3QgY2hhbmdlIHRoZSB0YWJzIGFuZAogICAgIHNwYWNlcyB1c2VkIGZvciBpbmRlbnQsIHdoZW4gdGhlIGluZGVudCByZW1haW5zIHRoZSBzYW1lIG9yIGluY3JlYXNlcy4KIAogCkBAIC0yNzAzLDcgKzI2OTksNyBAQAogICAgIGJlaGF2ZSBsaWtlICdzY3JvbGxvZmYnIGlzIG9uZSwgc28gdGhhdCB0aGUgdGV4dCBzY3JvbGxzIHdoZW4gdGhlIHBvaW50ZXIKICAgICBpcyBpbiB0aGUgdG9wIGxpbmUuCiA4ICAgV2hlbiB1c2luZyAiSSIgb3IgIkEiIGluIFZpc3VhbCBibG9jayBtb2RlLCBzaG9ydCBsaW5lcyBkbyBub3QgZ2V0IHRoZSBuZXcKLSAgICB0ZXh0LiAgbWFrZSBpdCBwb3NzaWJsZSB0byBhZGQgdGhlIHRleHQgdG8gc2hvcnQgbGluZXMgdG9vLCB3aXRoIHBhZGRpbmcKKyAgICB0ZXh0LiAgTWFrZSBpdCBwb3NzaWJsZSB0byBhZGQgdGhlIHRleHQgdG8gc2hvcnQgbGluZXMgdG9vLCB3aXRoIHBhZGRpbmcKICAgICB3aGVyZSBuZWVkZWQuCiA3ICAgV2l0aCBhIFZpc3VhbCBibG9jayBzZWxlY3RlZCwgIjJ4IiBkZWxldGVzIGEgYmxvY2sgb2YgZG91YmxlIHRoZSB3aWR0aCwKICAgICAiM3kiIHlhbmtzIGEgYmxvY2sgb2YgdHJpcGxlIHdpZHRoLCBldGMuCmRpZmYgLS1naXQgYS9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQgYi9ydW50aW1lL2RvYy92ZXJzaW9uNy50eHQKaW5kZXggM2M4Y2Y2OC4uMDk3MDI0OSAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvdmVyc2lvbjcudHh0CisrKyBiL3J1bnRpbWUvZG9jL3ZlcnNpb243LnR4dApAQCAtMSw0ICsxLDQgQEAKLSp2ZXJzaW9uNy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBEZWMgMDcKKyp2ZXJzaW9uNy50eHQqICBGb3IgVmltIHZlcnNpb24gNy4wYWEuICBMYXN0IGNoYW5nZTogMjAwNSBEZWMgMDkKIAogCiAJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKQEAgLTYzMSw2ICs2MzEsMTAgQEAKIFVuaXg6IFdoZW4gbGliY2FsbCgpIGZhaWxzIG9idGFpbiBhbiBlcnJvciBtZXNzYWdlIHdpdGggZGxlcnJvcigpIGFuZCBkaXNwbGF5CiBpdC4gKEpvaGFubmVzIFplbGxuZXIpCiAKK01hYyBhbmQgQ3lnd2luOiBXaGVuIGVkaXRpbmcgYW4gZXhpc3RpbmcgZmlsZSBtYWtlIHRoZSBmaWxlIG5hbWUgdGhlIHNhbWUgY2FzZQorb2YgdGhlIGVkaXRlZCBmaWxlLiAgVGh1cyB3aGVuIHR5cGluZyAiOmUgb3NfVU5JWC5jIiB0aGUgZmlsZSBuYW1lIGJlY29tZXMKKyJvc191bml4LmMiLgorCiBBZGRlZCAibmJzcCIgaW4gJ2xpc3RjaGFycycuIChEYXZpZCBCbGFuY2hldCkKIAogQWRkZWQgdGhlICJhY3dyaXRlIiB2YWx1ZSBmb3IgdGhlICdidWZ0eXBlJyBvcHRpb24uICBUaGlzIGlzIGZvciBhIGJ1ZmZlciB0aGF0CmRpZmYgLS1naXQgYS9ydW50aW1lL3N5bnRheC90ZXgudmltIGIvcnVudGltZS9zeW50YXgvdGV4LnZpbQppbmRleCA0MjRlNjUzLi41NzI4NjMwIDEwMDY0NAotLS0gYS9ydW50aW1lL3N5bnRheC90ZXgudmltCisrKyBiL3J1bnRpbWUvc3ludGF4L3RleC52aW0KQEAgLTEsOCArMSw4IEBACiAiIFZpbSBzeW50YXggZmlsZQogIiBMYW5ndWFnZToJVGVYCiAiIE1haW50YWluZXI6CURyLiBDaGFybGVzIEUuIENhbXBiZWxsLCBKci4gPE5kcmNoaXBPQFNjYW1wYmVsbFBmYW1pbHkuQWJpek0+Ci0iIExhc3QgQ2hhbmdlOglTZXAgMTQsIDIwMDUKLSIgVmVyc2lvbjoJMzAKKyIgTGFzdCBDaGFuZ2U6CURlYyAwNywgMjAwNQorIiBWZXJzaW9uOgkzMQogIiBVUkw6CQlodHRwOi8vbXlzaXRlLnZlcml6b24ubmV0L2FzdHJvbmF1dC92aW0vaW5kZXguaHRtbCN2aW1saW5rc19zeW50YXgKICIKICIgTm90ZXM6IHt7ezEKQEAgLTM5NCwxMCArMzk0LDEyIEBACiBzeW4gcmVnaW9uIHRleFpvbmUJCW1hdGNoZ3JvdXA9dGV4U3RhdGVtZW50IHN0YXJ0PSJAc2FtcHsiCQkJZW5kPSJ9XHwlc3RvcHpvbmVcPiIJY29udGFpbnM9QHRleFJlZkdyb3VwCiBzeW4gcmVnaW9uIHRleFJlZlpvbmUJCW1hdGNoZ3JvdXA9dGV4U3RhdGVtZW50IHN0YXJ0PSJcXG5vY2l0ZXsiCQllbmQ9In1cfCVzdG9wem9uZVw+Igljb250YWlucz1AdGV4UmVmR3JvdXAKIHN5biByZWdpb24gdGV4UmVmWm9uZQkJbWF0Y2hncm91cD10ZXhTdGF0ZW1lbnQgc3RhcnQ9IlxcYmlibGlvZ3JhcGh5eyIJCWVuZD0ifVx8JXN0b3B6b25lXD4iCWNvbnRhaW5zPUB0ZXhSZWZHcm91cAotc3luIHJlZ2lvbiB0ZXhSZWZab25lCQltYXRjaGdyb3VwPXRleFN0YXRlbWVudCBzdGFydD0iXFxjaXRlXChbdHBdXCpcPVwpXD17IgllbmQ9In1cfCVzdG9wem9uZVw+Igljb250YWlucz1AdGV4UmVmR3JvdXAKIHN5biByZWdpb24gdGV4UmVmWm9uZQkJbWF0Y2hncm91cD10ZXhTdGF0ZW1lbnQgc3RhcnQ9IlxcbGFiZWx7IgkJZW5kPSJ9XHwlc3RvcHpvbmVcPiIJY29udGFpbnM9QHRleFJlZkdyb3VwCiBzeW4gcmVnaW9uIHRleFJlZlpvbmUJCW1hdGNoZ3JvdXA9dGV4U3RhdGVtZW50IHN0YXJ0PSJcXFwocGFnZVx8ZXFcKXJlZnsiCWVuZD0ifVx8JXN0b3B6b25lXD4iCWNvbnRhaW5zPUB0ZXhSZWZHcm91cAogc3luIHJlZ2lvbiB0ZXhSZWZab25lCQltYXRjaGdyb3VwPXRleFN0YXRlbWVudCBzdGFydD0iXFx2XD1yZWZ7IgkJZW5kPSJ9XHwlc3RvcHpvbmVcPiIJY29udGFpbnM9QHRleFJlZkdyb3VwCitzeW4gbWF0Y2ggIHRleFJlZlpvbmUJCSdcXGNpdGVcJShbdHBdXCpcPVwpXD0nIG5leHRncm91cD10ZXhSZWZPcHRpb24sdGV4Q2l0ZQorc3luIHJlZ2lvbiB0ZXhSZWZPcHRpb24JY29udGFpbmVkCW1hdGNoZ3JvdXA9RGVsaW1pdGVyIHN0YXJ0PSdcWycgZW5kPSddJwkJY29udGFpbnM9QHRleFJlZkdyb3VwCW5leHRncm91cD10ZXhSZWZPcHRpb24sdGV4Q2l0ZQorc3luIHJlZ2lvbiB0ZXhDaXRlCWNvbnRhaW5lZAltYXRjaGdyb3VwPURlbGltaXRlciBzdGFydD0neycgZW5kPSd9JwkJY29udGFpbnM9QHRleFJlZkdyb3VwCiAKICIgSGFuZGxlIG5ld2NvbW1hbmQsIG5ld2Vudmlyb25tZW50IDoge3t7MQogc3luIG1hdGNoICB0ZXhOZXdDbWQJCQkJIlxcbmV3Y29tbWFuZFw+IgkJCW5leHRncm91cD10ZXhDbWROYW1lIHNraXB3aGl0ZSBza2lwbmwKQEAgLTQ2NSw2ICs0NjcsNyBAQAogICAgSGlMaW5rIHRleEVycm9yCQlFcnJvcgogICBlbmRpZgogCisgIEhpTGluayB0ZXhDaXRlCQl0ZXhSZWZab25lCiAgIEhpTGluayB0ZXhEZWZDbWQJCXRleERlZgogICBIaUxpbmsgdGV4RGVmTmFtZQkJdGV4RGVmCiAgIEhpTGluayB0ZXhEb2NUeXBlCQl0ZXhDbWROYW1lCmRpZmYgLS1naXQgYS9zcmMvZXhfY21kcy5jIGIvc3JjL2V4X2NtZHMuYwppbmRleCBkMWQzYWUxLi4xZGNiYjJiIDEwMDY0NAotLS0gYS9zcmMvZXhfY21kcy5jCisrKyBiL3NyYy9leF9jbWRzLmMKQEAgLTQxMjMsNiArNDEyMyw3IEBACiAJfQogCWRvX2Vycm9yID0gVFJVRTsKIAlkb19wcmludCA9IEZBTFNFOworCWRvX2NvdW50ID0gRkFMU0U7CiAJZG9faWMgPSAwOwogICAgIH0KICAgICB3aGlsZSAoKmNtZCkKZGlmZiAtLWdpdCBhL3NyYy9tYWluLmMgYi9zcmMvbWFpbi5jCmluZGV4IGZkNGY0ZTQuLjE5YmRiMDkgMTAwNjQ0Ci0tLSBhL3NyYy9tYWluLmMKKysrIGIvc3JjL21haW4uYwpAQCAtMjA2MSw2ICsyMDYxLDEyIEBACiAJCSAgICBtY2hfZXhpdCgyKTsKIAkgICAgfQogI2VuZGlmCisKKyNpZmRlZiBVU0VfRk5BTUVfQ0FTRQorCSAgICAvKiBNYWtlIHRoZSBjYXNlIG9mIHRoZSBmaWxlIG5hbWUgbWF0Y2ggdGhlIGFjdHVhbCBmaWxlLiAqLworCSAgICBmbmFtZV9jYXNlKHAsIDApOworI2VuZGlmCisKIAkgICAgYWxpc3RfYWRkKCZnbG9iYWxfYWxpc3QsIHAsCiAjaWYgKCFkZWZpbmVkKFVOSVgpICYmICFkZWZpbmVkKF9fRU1YX18pKSB8fCBkZWZpbmVkKEFSQ0hJRSkKIAkJICAgIHBhcm1wLT5saXRlcmFsID8gMiA6IDAJLyogYWRkIGJ1ZmZlciBuciBhZnRlciBleHAuICovCmRpZmYgLS1naXQgYS9zcmMvbWlzYzEuYyBiL3NyYy9taXNjMS5jCmluZGV4IDJjNDJlYjkuLmJlZjI5N2MgMTAwNjQ0Ci0tLSBhL3NyYy9taXNjMS5jCisrKyBiL3NyYy9taXNjMS5jCkBAIC04NTc2LDcgKzg1NzYsNyBAQAogICAgIH0KIAogICAgIC8qIGNvbXBpbGUgdGhlIHJlZ2V4cCBpbnRvIGEgcHJvZ3JhbSAqLwotI2lmZGVmIE1BQ09TX1ggLyogQ2FuL1Nob3VsZCB3ZSB1c2UgQ0FTRV9JTlNFTlNJVElWRV9GSUxFTkFNRSBpbnN0ZWFkID8qLworI2lmZGVmIENBU0VfSU5TRU5TSVRJVkVfRklMRU5BTUUKICAgICByZWdtYXRjaC5ybV9pYyA9IFRSVUU7CQkvKiBCZWhhdmUgbGlrZSBUZXJtaW5hbC5hcHAgKi8KICNlbHNlCiAgICAgcmVnbWF0Y2gucm1faWMgPSBGQUxTRTsJCS8qIERvbid0IGV2ZXIgaWdub3JlIGNhc2UgKi8KZGlmZiAtLWdpdCBhL3NyYy9wcm90by9vc191bml4LnBybyBiL3NyYy9wcm90by9vc191bml4LnBybwppbmRleCBhNmFlNmVjLi44ZWMzZGI2IDEwMDY0NAotLS0gYS9zcmMvcHJvdG8vb3NfdW5peC5wcm8KKysrIGIvc3JjL3Byb3RvL29zX3VuaXgucHJvCkBAIC0xLDcyICsxLDczIEBACiAvKiBvc191bml4LmMgKi8KLXZvaWQgbWNoX3dyaXRlIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgbGVuKSk7Ci1pbnQgbWNoX2luY2hhciBfX0FSR1MoKGNoYXJfdSAqYnVmLCBpbnQgbWF4bGVuLCBsb25nIHd0aW1lLCBpbnQgdGJfY2hhbmdlX2NudCkpOwotaW50IG1jaF9jaGFyX2F2YWlsIF9fQVJHUygodm9pZCkpOwotbG9uZ191IG1jaF90b3RhbF9tZW0gX19BUkdTKChpbnQgc3BlY2lhbCkpOwotdm9pZCBtY2hfZGVsYXkgX19BUkdTKChsb25nIG1zZWMsIGludCBpZ25vcmVpbnB1dCkpOwotaW50IG1jaF9zdGFja2NoZWNrIF9fQVJHUygoY2hhciAqcCkpOwotdm9pZCBtY2hfc3RhcnRqbXAgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9lbmRqbXAgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9kaWRqbXAgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9zdXNwZW5kIF9fQVJHUygodm9pZCkpOwotdm9pZCBtY2hfaW5pdCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgcmVzZXRfc2lnbmFscyBfX0FSR1MoKHZvaWQpKTsKLWludCB2aW1faGFuZGxlX3NpZ25hbCBfX0FSR1MoKGludCBzaWcpKTsKLWludCBtY2hfY2hlY2tfd2luIF9fQVJHUygoaW50IGFyZ2MsIGNoYXIgKiphcmd2KSk7Ci1pbnQgbWNoX2lucHV0X2lzYXR0eSBfX0FSR1MoKHZvaWQpKTsKLWludCBtY2hfY2FuX3Jlc3RvcmVfdGl0bGUgX19BUkdTKCh2b2lkKSk7Ci1pbnQgbWNoX2Nhbl9yZXN0b3JlX2ljb24gX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9zZXR0aXRsZSBfX0FSR1MoKGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqaWNvbikpOwotdm9pZCBtY2hfcmVzdG9yZV90aXRsZSBfX0FSR1MoKGludCB3aGljaCkpOwotaW50IHZpbV9pc194dGVybSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IHVzZV94dGVybV9tb3VzZSBfX0FSR1MoKHZvaWQpKTsKLWludCB2aW1faXNfaXJpcyBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IHZpbV9pc192dDMwMCBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IHZpbV9pc19mYXN0dGVybSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IG1jaF9nZXRfdXNlcl9uYW1lIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgbGVuKSk7Ci1pbnQgbWNoX2dldF91bmFtZSBfX0FSR1MoKHVpZF90IHVpZCwgY2hhcl91ICpzLCBpbnQgbGVuKSk7Ci12b2lkIG1jaF9nZXRfaG9zdF9uYW1lIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgbGVuKSk7Ci1sb25nIG1jaF9nZXRfcGlkIF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9kaXJuYW1lIF9fQVJHUygoY2hhcl91ICpidWYsIGludCBsZW4pKTsKLXZvaWQgc2xhc2hfYWRqdXN0IF9fQVJHUygoY2hhcl91ICpwKSk7Ci1pbnQgbWNoX0Z1bGxOYW1lIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgY2hhcl91ICpidWYsIGludCBsZW4sIGludCBmb3JjZSkpOwotaW50IG1jaF9pc0Z1bGxOYW1lIF9fQVJHUygoY2hhcl91ICpmbmFtZSkpOwotbG9uZyBtY2hfZ2V0cGVybSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IG1jaF9zZXRwZXJtIF9fQVJHUygoY2hhcl91ICpuYW1lLCBsb25nIHBlcm0pKTsKLXZpbV9hY2xfVCBtY2hfZ2V0X2FjbCBfX0FSR1MoKGNoYXJfdSAqZm5hbWUpKTsKLXZvaWQgbWNoX3NldF9hY2wgX19BUkdTKChjaGFyX3UgKmZuYW1lLCB2aW1fYWNsX1QgYWNsZW50KSk7Ci12b2lkIG1jaF9mcmVlX2FjbCBfX0FSR1MoKHZpbV9hY2xfVCBhY2xlbnQpKTsKLXZvaWQgbWNoX2hpZGUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLWludCBtY2hfaXNkaXIgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKLWludCBtY2hfY2FuX2V4ZSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotaW50IG1jaF9ub2RldHlwZSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOwotdm9pZCBtY2hfZWFybHlfaW5pdCBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbWNoX2ZyZWVfbWVtIF9fQVJHUygodm9pZCkpOwotdm9pZCBtY2hfZXhpdCBfX0FSR1MoKGludCByKSk7Ci12b2lkIG1jaF9zZXR0bW9kZSBfX0FSR1MoKGludCB0bW9kZSkpOwotdm9pZCBnZXRfc3R0eSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbWNoX3NldG1vdXNlIF9fQVJHUygoaW50IG9uKSk7Ci12b2lkIGNoZWNrX21vdXNlX3Rlcm1jb2RlIF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9zY3JlZW5tb2RlIF9fQVJHUygoY2hhcl91ICphcmcpKTsKLWludCBtY2hfZ2V0X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgbWNoX3NldF9zaGVsbHNpemUgX19BUkdTKCh2b2lkKSk7Ci12b2lkIG1jaF9uZXdfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9jYWxsX3NoZWxsIF9fQVJHUygoY2hhcl91ICpjbWQsIGludCBvcHRpb25zKSk7Ci12b2lkIG1jaF9icmVha2NoZWNrIF9fQVJHUygodm9pZCkpOwotaW50IG1jaF9leHBhbmRwYXRoIF9fQVJHUygoZ2FycmF5X1QgKmdhcCwgY2hhcl91ICpwYXRoLCBpbnQgZmxhZ3MpKTsKLWludCBtY2hfZXhwYW5kX3dpbGRjYXJkcyBfX0FSR1MoKGludCBudW1fcGF0LCBjaGFyX3UgKipwYXQsIGludCAqbnVtX2ZpbGUsIGNoYXJfdSAqKipmaWxlLCBpbnQgZmxhZ3MpKTsKLWludCBtY2hfaGFzX2V4cF93aWxkY2FyZCBfX0FSR1MoKGNoYXJfdSAqcCkpOwotaW50IG1jaF9oYXNfd2lsZGNhcmQgX19BUkdTKChjaGFyX3UgKnApKTsKLWludCBtY2hfbGliY2FsbCBfX0FSR1MoKGNoYXJfdSAqbGlibmFtZSwgY2hhcl91ICpmdW5jbmFtZSwgY2hhcl91ICphcmdzdHJpbmcsIGludCBhcmdpbnQsIGNoYXJfdSAqKnN0cmluZ19yZXN1bHQsIGludCAqbnVtYmVyX3Jlc3VsdCkpOwotdm9pZCBzZXR1cF90ZXJtX2NsaXAgX19BUkdTKCh2b2lkKSk7Ci12b2lkIHN0YXJ0X3h0ZXJtX3RyYWNlIF9fQVJHUygoaW50IGJ1dHRvbikpOwotdm9pZCBzdG9wX3h0ZXJtX3RyYWNlIF9fQVJHUygodm9pZCkpOwotdm9pZCBjbGVhcl94dGVybV9jbGlwIF9fQVJHUygodm9pZCkpOwotaW50IGNsaXBfeHRlcm1fb3duX3NlbGVjdGlvbiBfX0FSR1MoKFZpbUNsaXBib2FyZCAqY2JkKSk7Ci12b2lkIGNsaXBfeHRlcm1fbG9zZV9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOwotdm9pZCBjbGlwX3h0ZXJtX3JlcXVlc3Rfc2VsZWN0aW9uIF9fQVJHUygoVmltQ2xpcGJvYXJkICpjYmQpKTsKLXZvaWQgY2xpcF94dGVybV9zZXRfc2VsZWN0aW9uIF9fQVJHUygoVmltQ2xpcGJvYXJkICpjYmQpKTsKLWludCB4c21wX2hhbmRsZV9yZXF1ZXN0cyBfX0FSR1MoKHZvaWQpKTsKLXZvaWQgeHNtcF9pbml0IF9fQVJHUygodm9pZCkpOwotdm9pZCB4c21wX2Nsb3NlIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX3dyaXRlIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgbGVuKSk7CitleHRlcm4gaW50IG1jaF9pbmNoYXIgX19BUkdTKChjaGFyX3UgKmJ1ZiwgaW50IG1heGxlbiwgbG9uZyB3dGltZSwgaW50IHRiX2NoYW5nZV9jbnQpKTsKK2V4dGVybiBpbnQgbWNoX2NoYXJfYXZhaWwgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gbG9uZ191IG1jaF90b3RhbF9tZW0gX19BUkdTKChpbnQgc3BlY2lhbCkpOworZXh0ZXJuIHZvaWQgbWNoX2RlbGF5IF9fQVJHUygobG9uZyBtc2VjLCBpbnQgaWdub3JlaW5wdXQpKTsKK2V4dGVybiBpbnQgbWNoX3N0YWNrY2hlY2sgX19BUkdTKChjaGFyICpwKSk7CitleHRlcm4gdm9pZCBtY2hfc3RhcnRqbXAgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtY2hfZW5kam1wIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX2RpZGptcCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1jaF9zdXNwZW5kIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX2luaXQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCByZXNldF9zaWduYWxzIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCB2aW1faGFuZGxlX3NpZ25hbCBfX0FSR1MoKGludCBzaWcpKTsKK2V4dGVybiBpbnQgbWNoX2NoZWNrX3dpbiBfX0FSR1MoKGludCBhcmdjLCBjaGFyICoqYXJndikpOworZXh0ZXJuIGludCBtY2hfaW5wdXRfaXNhdHR5IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBtY2hfY2FuX3Jlc3RvcmVfdGl0bGUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9jYW5fcmVzdG9yZV9pY29uIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX3NldHRpdGxlIF9fQVJHUygoY2hhcl91ICp0aXRsZSwgY2hhcl91ICppY29uKSk7CitleHRlcm4gdm9pZCBtY2hfcmVzdG9yZV90aXRsZSBfX0FSR1MoKGludCB3aGljaCkpOworZXh0ZXJuIGludCB2aW1faXNfeHRlcm0gX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKK2V4dGVybiBpbnQgdXNlX3h0ZXJtX21vdXNlIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCB2aW1faXNfaXJpcyBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIGludCB2aW1faXNfdnQzMDAgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKK2V4dGVybiBpbnQgdmltX2lzX2Zhc3R0ZXJtIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IG1jaF9nZXRfdXNlcl9uYW1lIF9fQVJHUygoY2hhcl91ICpzLCBpbnQgbGVuKSk7CitleHRlcm4gaW50IG1jaF9nZXRfdW5hbWUgX19BUkdTKCh1aWRfdCB1aWQsIGNoYXJfdSAqcywgaW50IGxlbikpOworZXh0ZXJuIHZvaWQgbWNoX2dldF9ob3N0X25hbWUgX19BUkdTKChjaGFyX3UgKnMsIGludCBsZW4pKTsKK2V4dGVybiBsb25nIG1jaF9nZXRfcGlkIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBtY2hfZGlybmFtZSBfX0FSR1MoKGNoYXJfdSAqYnVmLCBpbnQgbGVuKSk7CitleHRlcm4gdm9pZCBzbGFzaF9hZGp1c3QgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBpbnQgbWNoX0Z1bGxOYW1lIF9fQVJHUygoY2hhcl91ICpmbmFtZSwgY2hhcl91ICpidWYsIGludCBsZW4sIGludCBmb3JjZSkpOworZXh0ZXJuIGludCBtY2hfaXNGdWxsTmFtZSBfX0FSR1MoKGNoYXJfdSAqZm5hbWUpKTsKK2V4dGVybiB2b2lkIGZuYW1lX2Nhc2UgX19BUkdTKChjaGFyX3UgKm5hbWUsIGludCBsZW4pKTsKK2V4dGVybiBsb25nIG1jaF9nZXRwZXJtIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IG1jaF9zZXRwZXJtIF9fQVJHUygoY2hhcl91ICpuYW1lLCBsb25nIHBlcm0pKTsKK2V4dGVybiB2aW1fYWNsX1QgbWNoX2dldF9hY2wgX19BUkdTKChjaGFyX3UgKmZuYW1lKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0X2FjbCBfX0FSR1MoKGNoYXJfdSAqZm5hbWUsIHZpbV9hY2xfVCBhY2xlbnQpKTsKK2V4dGVybiB2b2lkIG1jaF9mcmVlX2FjbCBfX0FSR1MoKHZpbV9hY2xfVCBhY2xlbnQpKTsKK2V4dGVybiB2b2lkIG1jaF9oaWRlIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitleHRlcm4gaW50IG1jaF9pc2RpciBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIGludCBtY2hfY2FuX2V4ZSBfX0FSR1MoKGNoYXJfdSAqbmFtZSkpOworZXh0ZXJuIGludCBtY2hfbm9kZXR5cGUgX19BUkdTKChjaGFyX3UgKm5hbWUpKTsKK2V4dGVybiB2b2lkIG1jaF9lYXJseV9pbml0IF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX2ZyZWVfbWVtIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIHZvaWQgbWNoX2V4aXQgX19BUkdTKChpbnQgcikpOworZXh0ZXJuIHZvaWQgbWNoX3NldHRtb2RlIF9fQVJHUygoaW50IHRtb2RlKSk7CitleHRlcm4gdm9pZCBnZXRfc3R0eSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1jaF9zZXRtb3VzZSBfX0FSR1MoKGludCBvbikpOworZXh0ZXJuIHZvaWQgY2hlY2tfbW91c2VfdGVybWNvZGUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9zY3JlZW5tb2RlIF9fQVJHUygoY2hhcl91ICphcmcpKTsKK2V4dGVybiBpbnQgbWNoX2dldF9zaGVsbHNpemUgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCBtY2hfc2V0X3NoZWxsc2l6ZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIG1jaF9uZXdfc2hlbGxzaXplIF9fQVJHUygodm9pZCkpOworZXh0ZXJuIGludCBtY2hfY2FsbF9zaGVsbCBfX0FSR1MoKGNoYXJfdSAqY21kLCBpbnQgb3B0aW9ucykpOworZXh0ZXJuIHZvaWQgbWNoX2JyZWFrY2hlY2sgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IG1jaF9leHBhbmRwYXRoIF9fQVJHUygoZ2FycmF5X1QgKmdhcCwgY2hhcl91ICpwYXRoLCBpbnQgZmxhZ3MpKTsKK2V4dGVybiBpbnQgbWNoX2V4cGFuZF93aWxkY2FyZHMgX19BUkdTKChpbnQgbnVtX3BhdCwgY2hhcl91ICoqcGF0LCBpbnQgKm51bV9maWxlLCBjaGFyX3UgKioqZmlsZSwgaW50IGZsYWdzKSk7CitleHRlcm4gaW50IG1jaF9oYXNfZXhwX3dpbGRjYXJkIF9fQVJHUygoY2hhcl91ICpwKSk7CitleHRlcm4gaW50IG1jaF9oYXNfd2lsZGNhcmQgX19BUkdTKChjaGFyX3UgKnApKTsKK2V4dGVybiBpbnQgbWNoX2xpYmNhbGwgX19BUkdTKChjaGFyX3UgKmxpYm5hbWUsIGNoYXJfdSAqZnVuY25hbWUsIGNoYXJfdSAqYXJnc3RyaW5nLCBpbnQgYXJnaW50LCBjaGFyX3UgKipzdHJpbmdfcmVzdWx0LCBpbnQgKm51bWJlcl9yZXN1bHQpKTsKK2V4dGVybiB2b2lkIHNldHVwX3Rlcm1fY2xpcCBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIHN0YXJ0X3h0ZXJtX3RyYWNlIF9fQVJHUygoaW50IGJ1dHRvbikpOworZXh0ZXJuIHZvaWQgc3RvcF94dGVybV90cmFjZSBfX0FSR1MoKHZvaWQpKTsKK2V4dGVybiB2b2lkIGNsZWFyX3h0ZXJtX2NsaXAgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gaW50IGNsaXBfeHRlcm1fb3duX3NlbGVjdGlvbiBfX0FSR1MoKFZpbUNsaXBib2FyZCAqY2JkKSk7CitleHRlcm4gdm9pZCBjbGlwX3h0ZXJtX2xvc2Vfc2VsZWN0aW9uIF9fQVJHUygoVmltQ2xpcGJvYXJkICpjYmQpKTsKK2V4dGVybiB2b2lkIGNsaXBfeHRlcm1fcmVxdWVzdF9zZWxlY3Rpb24gX19BUkdTKChWaW1DbGlwYm9hcmQgKmNiZCkpOworZXh0ZXJuIHZvaWQgY2xpcF94dGVybV9zZXRfc2VsZWN0aW9uIF9fQVJHUygoVmltQ2xpcGJvYXJkICpjYmQpKTsKK2V4dGVybiBpbnQgeHNtcF9oYW5kbGVfcmVxdWVzdHMgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB4c21wX2luaXQgX19BUkdTKCh2b2lkKSk7CitleHRlcm4gdm9pZCB4c21wX2Nsb3NlIF9fQVJHUygodm9pZCkpOwogLyogdmltOiBzZXQgZnQ9YyA6ICovCg==